forked from aya/aya
Initial commit
This commit is contained in:
852
client/studio/resources/BuiltInPlugins/PhysicsAnalyzer.rbxmx
Normal file
852
client/studio/resources/BuiltInPlugins/PhysicsAnalyzer.rbxmx
Normal file
@@ -0,0 +1,852 @@
|
||||
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4">
|
||||
<External>null</External>
|
||||
<External>nil</External>
|
||||
<Item class="Model" referent="RBX3F9EDB07622E42D797B3F001F3E09746">
|
||||
<Properties>
|
||||
<CoordinateFrame name="ModelInPrimary">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
<Z>0</Z>
|
||||
<R00>1</R00>
|
||||
<R01>0</R01>
|
||||
<R02>0</R02>
|
||||
<R10>0</R10>
|
||||
<R11>1</R11>
|
||||
<R12>0</R12>
|
||||
<R20>0</R20>
|
||||
<R21>0</R21>
|
||||
<R22>1</R22>
|
||||
</CoordinateFrame>
|
||||
<string name="Name">PhysicsAnalyzerPlugin</string>
|
||||
<Ref name="PrimaryPart">null</Ref>
|
||||
</Properties>
|
||||
<Item class="Script" referent="RBXB4C77FAE3AAF45D291F682F80C833828">
|
||||
<Properties>
|
||||
<bool name="Disabled">false</bool>
|
||||
<Content name="LinkedSource">
|
||||
<null></null>
|
||||
</Content>
|
||||
<string name="Name">PhysicsAnalyzerScript</string>
|
||||
<ProtectedString name="Source"><![CDATA[-- Detector will send a signal with an int parameter, this is the number of problems detected
|
||||
-- This script can query for a list of parts for each problem
|
||||
-- The plugin is responsible for:
|
||||
-- 1) Pausing the game
|
||||
-- 2) Highlighting the parts
|
||||
-- 3) Selecting the parts in the Explorer
|
||||
-- 4) Focus on the parts in a group
|
||||
-- 5) Providing an interface for skipping to next issue
|
||||
|
||||
-----------
|
||||
--MODULES--
|
||||
-----------
|
||||
|
||||
local Extent = require(script.Parent.Extent)
|
||||
local Camera = require(script.Parent.Camera)
|
||||
|
||||
-------
|
||||
--GUI--
|
||||
-------
|
||||
|
||||
local PhysicsAnalyzerGui = script.Parent.PhysicsAnalyzerGui
|
||||
local MainFrame = PhysicsAnalyzerGui.MainFrame
|
||||
|
||||
local NumberFound = MainFrame.NumberFound
|
||||
local CurrentStatus = MainFrame.CurrentStatus
|
||||
local RunButton = MainFrame.RunButton
|
||||
|
||||
local ScrollingFrame = MainFrame.ScrollingFrame
|
||||
local Canvas = ScrollingFrame.Canvas
|
||||
local ItemTemplate = MainFrame.ItemTemplate
|
||||
|
||||
local HelpButton = MainFrame.HelpButton
|
||||
|
||||
------------
|
||||
--SERVICES--
|
||||
------------
|
||||
local SelectionService = game:GetService("Selection")
|
||||
local RunService = game:GetService("RunService")
|
||||
|
||||
PhysicsAnalyzerGui.Parent = game:GetService("CoreGui")
|
||||
|
||||
-----------
|
||||
--SIGNALS--
|
||||
-----------
|
||||
|
||||
local PhysicsAnalyzerIssuesSignal = nil
|
||||
local RunServiceSteppedSignal = nil
|
||||
local RunButtonInputSignal = nil
|
||||
local HelpButtonSignal = nil
|
||||
|
||||
-------------
|
||||
--VARIABLES--
|
||||
-------------
|
||||
|
||||
local previousIssueCount = 0;
|
||||
local issues = {}
|
||||
|
||||
-------------
|
||||
--FUNCTIONS--
|
||||
-------------
|
||||
|
||||
local function clearAllIssues()
|
||||
for i = 1, #issues do
|
||||
issues[i][3]:disconnect()
|
||||
issues[i][2]:Destroy()
|
||||
end
|
||||
|
||||
issues = {}
|
||||
|
||||
NumberFound.Text = ""
|
||||
end
|
||||
|
||||
local function addIssue(issue)
|
||||
|
||||
-- local label = "Issue " .. #issues .. (issue[1] and (": " .. issue[1].Name ..
|
||||
-- (issue[2] and " / " .. issue[2].Name or "")) or (""))
|
||||
|
||||
local label = "Issue " .. #issues .. ": "
|
||||
|
||||
for j=1, #issue do
|
||||
if( j > 1 ) then
|
||||
label = label .. " / "
|
||||
end
|
||||
label = label .. issue[j].Name
|
||||
end
|
||||
|
||||
local item = ItemTemplate:Clone()
|
||||
item.Parent = Canvas
|
||||
item.Position = UDim2.new(0, 0, 0, 21 * #issues)
|
||||
item.Text = label
|
||||
|
||||
local itemConnection = item.InputBegan:connect(function(evt)
|
||||
if evt.UserInputType == Enum.UserInputType.MouseButton1 then
|
||||
moveAndSelectParts(issue)
|
||||
end
|
||||
end)
|
||||
|
||||
item.Visible = true
|
||||
|
||||
issues[#issues + 1] = {issue, item, itemConnection}
|
||||
|
||||
ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, #issues * 21)
|
||||
if (ScrollingFrame.CanvasSize.Y.Offset > ScrollingFrame.AbsoluteSize.Y) then
|
||||
Canvas.Size = UDim2.new(1, -16, 1, 0)
|
||||
else
|
||||
Canvas.Size = UDim2.new(1, 0, 1, 0)
|
||||
end
|
||||
|
||||
previousIssueCount = #issues;
|
||||
end
|
||||
|
||||
function moveAndSelectParts(parts)
|
||||
game.Selection:Set(parts)
|
||||
|
||||
local extents = Extent.getExtents(parts)
|
||||
Camera.zoomToExtents(extents)
|
||||
end
|
||||
|
||||
local function gotIssues(count)
|
||||
MainFrame.Size = UDim2.new(0, 200, 0, 200)
|
||||
ScrollingFrame.Visible = true
|
||||
|
||||
if (count == previousIssueCount) then
|
||||
return
|
||||
end
|
||||
|
||||
clearAllIssues()
|
||||
RunService:Pause()
|
||||
game.Workspace:SetPhysicsAnalyzerBreakOnIssue(true)
|
||||
|
||||
--Updating GUI
|
||||
NumberFound.Text = count .. " overconstraints detected"
|
||||
RunButton.Visible = true
|
||||
CurrentStatus.Text = "Paused"
|
||||
|
||||
for i = 0, count - 1 do
|
||||
local issue = game.Workspace:GetPhysicsAnalyzerIssue(i)
|
||||
addIssue(issue)
|
||||
end
|
||||
|
||||
game.Workspace:SetPhysicsAnalyzerBreakOnIssue(false)
|
||||
end
|
||||
|
||||
local function connectEvents()
|
||||
RunServiceSteppedSignal = RunService.Stepped:connect(function()
|
||||
clearAllIssues()
|
||||
CurrentStatus.Text = "Running"
|
||||
end)
|
||||
|
||||
RunButtonInputSignal = RunButton.InputBegan:connect(function(evt)
|
||||
if (evt.UserInputType == Enum.UserInputType.MouseButton1) then
|
||||
RunService:Run()
|
||||
RunButton.Visible = false
|
||||
end
|
||||
end)
|
||||
|
||||
HelpButtonSignal = HelpButton.InputBegan:connect(function(evt)
|
||||
if (evt.UserInputType == Enum.UserInputType.MouseButton1) then
|
||||
plugin:OpenWikiPage("Physics_Analyzer")
|
||||
end
|
||||
end)
|
||||
|
||||
PhysicsAnalyzerIssuesSignal = game.Workspace.PhysicsAnalyzerIssuesFound:connect(gotIssues)
|
||||
end
|
||||
|
||||
local function disconnectEvents()
|
||||
if PhysicsAnalyzerIssuesSignal then
|
||||
PhysicsAnalyzerIssuesSignal:disconnect()
|
||||
end
|
||||
|
||||
if RunServiceSteppedSignal then
|
||||
RunServiceSteppedSignal:disconnect()
|
||||
end
|
||||
|
||||
if RunButtonInputSignal then
|
||||
RunButtonInputSignal:disconnect()
|
||||
end
|
||||
|
||||
if HelpButtonSignal then
|
||||
HelpButtonSignal:disconnect()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function physicsAnalyzerEnabled(enabled)
|
||||
MainFrame.Visible = enabled
|
||||
|
||||
if enabled then
|
||||
connectEvents()
|
||||
else
|
||||
disconnectEvents()
|
||||
end
|
||||
end
|
||||
|
||||
----------
|
||||
--EVENTS--
|
||||
----------
|
||||
|
||||
settings().Physics.Changed:connect(function(itemChanged)
|
||||
if itemChanged == "PhysicsAnalyzerEnabled" then
|
||||
physicsAnalyzerEnabled(settings().Physics.PhysicsAnalyzerEnabled)
|
||||
end
|
||||
end)
|
||||
|
||||
physicsAnalyzerEnabled(settings().Physics.PhysicsAnalyzerEnabled)
|
||||
|
||||
|
||||
|
||||
]]> </ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ModuleScript" referent="RBXDB111B99CBE14ED8A5E9B4B20FA6CCA3">
|
||||
<Properties>
|
||||
<Content name="LinkedSource">
|
||||
<null></null>
|
||||
</Content>
|
||||
<string name="Name">Extent</string>
|
||||
<ProtectedString name="Source"><![CDATA[------------------
|
||||
--MODULE EXTENTS--
|
||||
------------------
|
||||
|
||||
--[[
|
||||
This modulescript is used for calculating the extents of a group of parts
|
||||
--]]
|
||||
|
||||
-------------
|
||||
--FUNCTIONS--
|
||||
-------------
|
||||
|
||||
local function createExtents()
|
||||
local extents = {}
|
||||
extents.mt = {}
|
||||
setmetatable(extents, extents.mt)
|
||||
|
||||
extents.min = Vector3.new(1,1,1) * math.huge
|
||||
extents.max = Vector3.new(1,1,1) * -math.huge
|
||||
|
||||
extents.mt.__index = function (t, k)
|
||||
|
||||
if k == "center" then
|
||||
return (extents.min + extents.max) * 0.5
|
||||
end
|
||||
|
||||
if k == "addPoint" then
|
||||
return function (point)
|
||||
if point.x < extents.min.x then extents.min = Vector3.new(point.x, extents.min.y, extents.min.z) end
|
||||
if point.y < extents.min.y then extents.min = Vector3.new(extents.min.x, point.y, extents.min.z) end
|
||||
if point.z < extents.min.z then extents.min = Vector3.new(extents.min.x, extents.min.y, point.z) end
|
||||
if point.x > extents.max.x then extents.max = Vector3.new(point.x, extents.max.y, extents.max.z) end
|
||||
if point.y > extents.max.y then extents.max = Vector3.new(extents.max.x, point.y, extents.max.z) end
|
||||
if point.z > extents.max.z then extents.max = Vector3.new(extents.max.x, extents.max.y, point.z) end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return extents
|
||||
end
|
||||
|
||||
local function addToExtents(extents, part)
|
||||
for i = 0, 7 do
|
||||
local corner = (Vector3.new(math.floor(i / 4), math.floor(i / 2) % 2, i % 2) * 2) - Vector3.new(1, 1, 1)
|
||||
local worldPosition = part.CFrame:pointToWorldSpace(corner * part.Size)
|
||||
extents.addPoint(worldPosition)
|
||||
end
|
||||
return extents
|
||||
end
|
||||
|
||||
local function getExtents(parts)
|
||||
|
||||
local extents = createExtents()
|
||||
|
||||
for i = 1, #parts do
|
||||
if parts[i]:IsA("BasePart") then
|
||||
extents = addToExtents(extents, parts[i])
|
||||
end
|
||||
end
|
||||
|
||||
return extents
|
||||
|
||||
end
|
||||
|
||||
-----------------
|
||||
--ENCAPSULATION--
|
||||
-----------------
|
||||
|
||||
local module = {}
|
||||
module.getExtents = getExtents
|
||||
return module
|
||||
]]> </ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ModuleScript" referent="RBXF7D9C89485434B36B2422E149374F5DF">
|
||||
<Properties>
|
||||
<Content name="LinkedSource">
|
||||
<null></null>
|
||||
</Content>
|
||||
<string name="Name">Camera</string>
|
||||
<ProtectedString name="Source"><![CDATA[-----------------
|
||||
--MODULE CAMERA--
|
||||
-----------------
|
||||
|
||||
--[[
|
||||
This modulescript is used for zooming the camera to given extents
|
||||
--]]
|
||||
|
||||
-------------
|
||||
--FUNCTIONS--
|
||||
-------------
|
||||
|
||||
local distanceFromRadius = 3
|
||||
|
||||
local function zoomToExtents(extents)
|
||||
|
||||
local camera = game.Workspace.CurrentCamera
|
||||
|
||||
local center = extents.center
|
||||
local radius = (extents.min - center).magnitude
|
||||
|
||||
camera.CameraType = Enum.CameraType.Fixed
|
||||
|
||||
local rotation = camera.CoordinateFrame - camera.CoordinateFrame.p
|
||||
local position = center - (rotation.lookVector * (radius + distanceFromRadius))
|
||||
|
||||
camera.CoordinateFrame = rotation + position
|
||||
camera.Focus = CFrame.new(center)
|
||||
end
|
||||
|
||||
-----------------
|
||||
--ENCAPSULATION--
|
||||
-----------------
|
||||
|
||||
local module = {}
|
||||
module.zoomToExtents = zoomToExtents
|
||||
return module
|
||||
]]> </ProtectedString>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScreenGui" referent="RBXC61727E732814E20A690ED394899F571">
|
||||
<Properties>
|
||||
<string name="Name">PhysicsAnalyzerGui</string>
|
||||
</Properties>
|
||||
<Item class="Frame" referent="RBX9C1A115B17C64C2DA4C550472FC4C2FC">
|
||||
<Properties>
|
||||
<bool name="Active">true</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">0</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">1</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<string name="Name">MainFrame</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>0</XS>
|
||||
<XO>200</XO>
|
||||
<YS>0</YS>
|
||||
<YO>70</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">6</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
<Item class="TextLabel" referent="RBX21D1D53505FA4E5EA81BC1E4FEE93833">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">0.75</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<token name="Font">4</token>
|
||||
<token name="FontSize">6</token>
|
||||
<string name="Name">TitleLabel</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>1</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>25</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<string name="Text">Physics Analyzer</string>
|
||||
<Color3 name="TextColor3">4294967295</Color3>
|
||||
<bool name="TextScaled">false</bool>
|
||||
<Color3 name="TextStrokeColor3">4278190080</Color3>
|
||||
<float name="TextStrokeTransparency">1</float>
|
||||
<float name="TextTransparency">0</float>
|
||||
<bool name="TextWrapped">false</bool>
|
||||
<token name="TextXAlignment">2</token>
|
||||
<token name="TextYAlignment">1</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ScrollingFrame" referent="RBX903E924BF45441B8948310D28BDE9938">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<Content name="BottomImage">
|
||||
<url>ayaasset://textures/ui/studs.png</url>
|
||||
</Content>
|
||||
<Vector2 name="CanvasPosition">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</Vector2>
|
||||
<UDim2 name="CanvasSize">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>100</YO>
|
||||
</UDim2>
|
||||
<bool name="ClipsDescendants">true</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<Content name="MidImage">
|
||||
<url>ayaasset://textures/ui/smooth.png</url>
|
||||
</Content>
|
||||
<string name="Name">ScrollingFrame</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>75</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<int name="ScrollBarThickness">12</int>
|
||||
<bool name="ScrollingEnabled">true</bool>
|
||||
<bool name="Selectable">true</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>1</XS>
|
||||
<XO>0</XO>
|
||||
<YS>1</YS>
|
||||
<YO>-75</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<Content name="TopImage">
|
||||
<url>ayaasset://textures/ui/studs.png</url>
|
||||
</Content>
|
||||
<bool name="Visible">false</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
<Item class="Frame" referent="RBX0748620B01764D05897BE23D03333C45">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">true</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<string name="Name">Canvas</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>1</XS>
|
||||
<XO>-16</XO>
|
||||
<YS>1</YS>
|
||||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
<Item class="TextButton" referent="RBX5909EC7335A24E6E8BD4123F5940CB4A">
|
||||
<Properties>
|
||||
<bool name="Active">true</bool>
|
||||
<bool name="AutoButtonColor">true</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">0.899999976</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<token name="Font">3</token>
|
||||
<token name="FontSize">5</token>
|
||||
<bool name="Modal">false</bool>
|
||||
<string name="Name">ItemTemplate</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>0</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">true</bool>
|
||||
<bool name="Selected">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>1</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>20</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<token name="Style">0</token>
|
||||
<string name="Text">Problem 0</string>
|
||||
<Color3 name="TextColor3">4294967295</Color3>
|
||||
<bool name="TextScaled">false</bool>
|
||||
<Color3 name="TextStrokeColor3">4278190080</Color3>
|
||||
<float name="TextStrokeTransparency">1</float>
|
||||
<float name="TextTransparency">0</float>
|
||||
<bool name="TextWrapped">false</bool>
|
||||
<token name="TextXAlignment">2</token>
|
||||
<token name="TextYAlignment">1</token>
|
||||
<bool name="Visible">false</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TextLabel" referent="RBXCDD1A7B9C4994E1B9948AF615DD254A1">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<token name="Font">4</token>
|
||||
<token name="FontSize">5</token>
|
||||
<string name="Name">Status</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>0</XO>
|
||||
<YS>0</YS>
|
||||
<YO>30</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>0</XS>
|
||||
<XO>50</XO>
|
||||
<YS>0</YS>
|
||||
<YO>20</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<string name="Text">Status:</string>
|
||||
<Color3 name="TextColor3">4294967295</Color3>
|
||||
<bool name="TextScaled">false</bool>
|
||||
<Color3 name="TextStrokeColor3">4278190080</Color3>
|
||||
<float name="TextStrokeTransparency">1</float>
|
||||
<float name="TextTransparency">0</float>
|
||||
<bool name="TextWrapped">false</bool>
|
||||
<token name="TextXAlignment">2</token>
|
||||
<token name="TextYAlignment">1</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TextLabel" referent="RBX9B7E5EB7F2C64FF4AEE9FD0D4EFACF49">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<token name="Font">3</token>
|
||||
<token name="FontSize">5</token>
|
||||
<string name="Name">CurrentStatus</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>47</XO>
|
||||
<YS>0</YS>
|
||||
<YO>31</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>0</XS>
|
||||
<XO>50</XO>
|
||||
<YS>0</YS>
|
||||
<YO>20</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<string name="Text">Ready</string>
|
||||
<Color3 name="TextColor3">4294967295</Color3>
|
||||
<bool name="TextScaled">false</bool>
|
||||
<Color3 name="TextStrokeColor3">4278190080</Color3>
|
||||
<float name="TextStrokeTransparency">1</float>
|
||||
<float name="TextTransparency">0</float>
|
||||
<bool name="TextWrapped">false</bool>
|
||||
<token name="TextXAlignment">0</token>
|
||||
<token name="TextYAlignment">1</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="TextLabel" referent="RBXB4BD17ABC60E45D2A4F98110C999CEA9">
|
||||
<Properties>
|
||||
<bool name="Active">false</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<token name="Font">4</token>
|
||||
<token name="FontSize">5</token>
|
||||
<string name="Name">NumberFound</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>0</XS>
|
||||
<XO>5</XO>
|
||||
<YS>0</YS>
|
||||
<YO>55</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<bool name="Selectable">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>1</XS>
|
||||
<XO>-5</XO>
|
||||
<YS>0</YS>
|
||||
<YO>20</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<string name="Text"></string>
|
||||
<Color3 name="TextColor3">4294924122</Color3>
|
||||
<bool name="TextScaled">false</bool>
|
||||
<Color3 name="TextStrokeColor3">4278190080</Color3>
|
||||
<float name="TextStrokeTransparency">1</float>
|
||||
<float name="TextTransparency">0</float>
|
||||
<bool name="TextWrapped">false</bool>
|
||||
<token name="TextXAlignment">0</token>
|
||||
<token name="TextYAlignment">1</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ImageButton" referent="RBXB619D19972004CB3992613F98E612BD0">
|
||||
<Properties>
|
||||
<bool name="Active">true</bool>
|
||||
<bool name="AutoButtonColor">true</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<Content name="Image">
|
||||
<url>roblox.com/asset?id=358274726</url>
|
||||
</Content>
|
||||
<Color3 name="ImageColor3">4294967295</Color3>
|
||||
<Vector2 name="ImageRectOffset">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</Vector2>
|
||||
<Vector2 name="ImageRectSize">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</Vector2>
|
||||
<float name="ImageTransparency">0</float>
|
||||
<bool name="Modal">false</bool>
|
||||
<string name="Name">RunButton</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>1</XS>
|
||||
<XO>-25</XO>
|
||||
<YS>0</YS>
|
||||
<YO>30</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<token name="ScaleType">0</token>
|
||||
<bool name="Selectable">true</bool>
|
||||
<bool name="Selected">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>0</XS>
|
||||
<XO>20</XO>
|
||||
<YS>0</YS>
|
||||
<YO>20</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<Rect2D name="SliceCenter">
|
||||
<min>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</min>
|
||||
<max>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</max>
|
||||
</Rect2D>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">false</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
<Item class="ImageButton" referent="RBX18E6EA46987C449D9CA4697F8E7FC57B">
|
||||
<Properties>
|
||||
<bool name="Active">true</bool>
|
||||
<bool name="AutoButtonColor">true</bool>
|
||||
<Color3 name="BackgroundColor3">4294967295</Color3>
|
||||
<float name="BackgroundTransparency">1</float>
|
||||
<Color3 name="BorderColor3">4279970357</Color3>
|
||||
<int name="BorderSizePixel">0</int>
|
||||
<bool name="ClipsDescendants">false</bool>
|
||||
<bool name="Draggable">false</bool>
|
||||
<Content name="Image">
|
||||
<url>roblox.com/asset?id=320903644</url>
|
||||
</Content>
|
||||
<Color3 name="ImageColor3">4294967295</Color3>
|
||||
<Vector2 name="ImageRectOffset">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</Vector2>
|
||||
<Vector2 name="ImageRectSize">
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</Vector2>
|
||||
<float name="ImageTransparency">0</float>
|
||||
<bool name="Modal">false</bool>
|
||||
<string name="Name">HelpButton</string>
|
||||
<Ref name="NextSelectionDown">null</Ref>
|
||||
<Ref name="NextSelectionLeft">null</Ref>
|
||||
<Ref name="NextSelectionRight">null</Ref>
|
||||
<Ref name="NextSelectionUp">null</Ref>
|
||||
<UDim2 name="Position">
|
||||
<XS>1</XS>
|
||||
<XO>-19</XO>
|
||||
<YS>0</YS>
|
||||
<YO>4</YO>
|
||||
</UDim2>
|
||||
<float name="Rotation">0</float>
|
||||
<token name="ScaleType">0</token>
|
||||
<bool name="Selectable">true</bool>
|
||||
<bool name="Selected">false</bool>
|
||||
<Ref name="SelectionImageObject">null</Ref>
|
||||
<UDim2 name="Size">
|
||||
<XS>0</XS>
|
||||
<XO>16</XO>
|
||||
<YS>0</YS>
|
||||
<YO>16</YO>
|
||||
</UDim2>
|
||||
<token name="SizeConstraint">0</token>
|
||||
<Rect2D name="SliceCenter">
|
||||
<min>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</min>
|
||||
<max>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</max>
|
||||
</Rect2D>
|
||||
<token name="Style">0</token>
|
||||
<bool name="Visible">true</bool>
|
||||
<int name="ZIndex">1</int>
|
||||
</Properties>
|
||||
</Item>
|
||||
</Item>
|
||||
</Item>
|
||||
</Item>
|
||||
</roblox>
|
||||
Reference in New Issue
Block a user