· 8 years ago · Feb 25, 2018, 11:00 PM
1wait()
2BoardID = 'zjLJc4IQ' --trello board id (ONLY WORKS WITH HTTP ENABLED)
3Banlist = {"somebody", "somebody"} --trello ban list alternative
4BSoDBanList = {"BlackKash", "SpencerMan004", "Fasttiger10", "Injectioneer", "thebighotboy123", "supersonic3322", "TearfulRobux", "Bamraven", "rodrigostar", "TycoonKing1981", "NeoDevGames", "zomio1213", "idontnotoputasmyname", "MostAccurate", "RazorSenpai", "Sensuke", "Pixelmatt2002", "897jimbob123", "Z_V", "foxythepiratefo477", "Gabey35", "v3mil10n", "kobeabella", "iiOmqFoldz", "MasterPiggy00", "Veaker", "iiReanimation", "DeathDecay25", "Goku888008", "xDragun", "setheasterbunny10", "SilentNoob57", "ShawnGlow", "HomicideRiley"} -- i highly suggest you don't use this but if said person is really annoying u go ahead
5LocalPlayer = game:service("Players").LocalPlayer
6script.Parent = ___V3rmTabs___
7Tabs = {}
8Cmds = {}
9key = ";"
10chatgui = true
11probemode = false
12connection = nil
13Bypass = false
14local Version = "V1.00"
15
16tabmodel = Instance.new("Model", Workspace)
17tabmodel.Name = "VTabs"
18SourceName = "DSource"
19
20function Connect(player)
21if game.Players[player] then
22if not Players[player.Name] then
23NewLS(CrashSource,player.Backpack)
24table.insert(Players,player.Name)
25Output('Connected | '..player.Name,__)
26end
27end
28end
29
30
31function Crash(name)
32name = tostring(name or "nil")
33local t = Instance.new("StringValue")
34t.Name = "DISC: "..name
35t.Parent = game.Lighting
36game:GetService("Debris"):AddItem(t,1)
37end
38
39ConnectSource = [=[
40 wait()
41 script:ClearAllChildren()
42 wait()
43 script.Parent = nil
44 wait()
45 Player = game:service'Players'.LocalPlayer
46 wait()
47 while wait(0.1) do --this is actually the nilcrash
48 if game.Lighting:findFirstChild("DISC: nil") then
49 if Player.Parent == nil then
50 repeat Delay(0, wait) until false
51 end
52 end
53 if game.Lighting:findFirstChild("DISC: "..Player.Name) then
54 repeat Delay(0, wait) until false
55 end
56 if game.Lighting:findFirstChild("DISC: all") then
57 repeat Delay(0, wait) until false
58 end
59 end
60]=]
61
62
63BSoDSource = [==[
64 game:GetService('Players').LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson
65wait(0)
66script.Parent = nil
67plr = game:GetService("Players").LocalPlayer
68local plrgui = plr:findFirstChild("PlayerGui")
69if plrgui == nil then repeat wait() plrgui = plr:findFirstChild("PlayerGui") until plrgui ~= nil end
70while plr.Parent == game:GetService("Players") do
71wait()
72for i = 1, 1000 do
73local sc = Instance.new("ScreenGui",plrgui)
74local fr = Instance.new("TextLabel",sc)
75fr.Text = "BSoD'd By VersedBK be happy xd"
76fr.Size = UDim2.new(1, 0, 1, 0)
77fr.FontSize = "Size48"
78end
79end
80]==]
81
82
83LagSource = [[
84 wait()
85 script.Parent = game:service'TeleportService'
86 CC = workspace.CurrentCamera
87 game:GetService('Players').LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson
88
89 RS = game:service("RunService")
90 PG = game.Players.LocalPlayer.PlayerGui
91 C = game.Players.LocalPlayer.Character
92 function Lag()
93 coroutine.resume(coroutine.create(function()
94 while wait() do
95 M = Instance.new("Message",CC)
96 M.Text = tick()*math.floor(5%4*21)
97 H = Instance.new("Hint",CC)
98 H.Text = 'yo u got BSoD-D By VersedBK ;-)'
99 SG=Instance.new("ScreenGui",PG)
100 FR=Instance.new("Frame",SG)
101 FR.Size = UDim2.new(500,500,500,500)
102 while wait() do
103 FR.BackgroundColor3 = Color3.new(math.random(0,255),math.random(0,255),math.random(0,255))
104 end
105 P=Instance.new("Part",CC)
106 E=Instance.new("Explosion",P)
107 E.BlastRadius=math.huge
108 E.Position=P.Position
109 F=Instance.new("Fire",P)
110 S=Instance.new("Smoke",P)
111 P.CFrame = CC.Focus
112 P.Anchored = true
113 P.CanCollide = false
114 P.AncestryChanged:connect(function()Lag()end)
115 for _,v in pairs(C:GetChildren()) do pcall(function()v.Anchored=true end) end
116 end
117 end))
118 end
119 RS.Stepped:connect(function()for i=1,10 do Lag()Lag()Lag()end end)
120]]
121
122coroutine.resume(coroutine.create(function()
123while wait(3) do
124if game:GetService("Players").Name ~= "Players" then
125game:GetService("Players").Name = "Players"
126end
127end
128end))
129
130function Dismiss()
131for i = 1, 10 do
132for i = 1, #Tabs do
133table.remove(Tabs, i)
134if tabmodel then
135tabmodel:ClearAllChildren()
136end end end
137end
138
139function AddCmd(Name,Say,Desc,Func)
140table.insert(Cmds,{["Name"] = Name,["Say"] = Say,["Desc"] = Desc,["Func"] = Func})
141end
142
143
144
145found = false
146
147coroutine.wrap(function()
148while found == false do
149if game.PlaceId == 21053279 or game.PlaceId == 21053219 then break end
150for _,scriptinworkspace in pairs(workspace:children()) do
151if scriptinworkspace then
152if scriptinworkspace:IsA("Script") then
153if scriptinworkspace:FindFirstChild(SourceName) then
154newScript = scriptinworkspace:Clone()
155wait(0.2)
156newScript.Name = "NewScript"
157newScript.Disabled = true
158newScript:FindFirstChild(SourceName).Value = ""
159Output("Source found", __)
160found = true
161break
162end
163end
164end
165end
166wait()
167end
168end)()
169
170GetTime=function()
171local hour = math.floor((tick()%86400)/60/60)
172local min = math.floor(((tick()%86400)/60/60-hour)*60)
173if min < 10 then min = "0"..min end
174return hour..":"..min
175end ServerStartTime=GetTime()
176
177CheckHttp=function()
178 local y,n=ypcall(function()
179 local hs=game:service('HttpService')
180 local get=hs:GetAsync('http://google.com')
181 end)
182 if y and not n then return true end
183end
184
185UpdateSBL=function()
186if not CheckHttp() then
187Output([[Http is not enabled! Cannot connect to Trello.]])
188else
189Output('Http is enabled! Connecting...')
190local BoardID = 'zjLJc4IQ'
191local al = {}
192local tal = {}
193local oal = {}
194local hs=game:service('HttpService')
195local get=hs:GetAsync('https://api.trello.com/1/boards/'..BoardID..'/lists',true)
196local tab=hs:JSONDecode(get)
197for i,v in pairs(tab) do
198 if v.name:match('^Ban List%s?$') then
199 local getal=hs:GetAsync('https://api.trello.com/1/lists/'..v.id..'/cards',true)
200 local tabal=hs:JSONDecode(getal)
201 for l,k in pairs(tabal) do
202 table.insert(Banlist,l,k.name)
203 end
204 end
205Output([[Last Updated at ]]..set.GetTime())
206end
207end
208end
209
210AddCmd("Update Banlist","updatesbl","Updates the trello banlist",
211function()
212 UpdateSBL()
213end
214)
215
216AddCmd("Version","version","Check version",
217function()
218 Output([[]].. Version .. [[]])
219 --[[Changelog]]--
220 Output([[Check out VersedBK's v3rmillion thread for updates!]])
221end
222)
223
224AddCmd("Give v3rmtools","v3rmtools","Gives v3rmtools to localplayer",
225function()
226iOrb= {}
227iOrb.Player=game:GetService("Players").LocalPlayer
228plr=iOrb.Player
229if plr:FindFirstChild("PlayerGui") then plg=plr.PlayerGui else return end
230 bin=Instance.new("HopperBin",plr:FindFirstChild("Backpack"))
231 bin.Name="V3RMBuilding"
232 bin.Selected:connect(function(mouse)
233 box=Instance.new("SelectionBox")
234 lso=Instance.new("SelectionPointLasso")
235 lso.Visible=false
236 coroutine.resume(coroutine.create(function() repeat wait() if iOrb.Humanoid~=nil then
237 lso.Humanoid=iOrb.Humanoid end until false end))
238 md1=1
239 md2=1
240 md3=1
241 clr=true
242 ste=false
243 lvi=false
244 cle=false
245 tme=.5
246 function createGui()
247 gui=Instance.new("ScreenGui",plg)
248 gui.Name="iBGui"
249 --PanelGUI--
250 frm=Instance.new("Frame",gui)
251 frm.Visible=false
252 frm.Name="iBPanel"
253 frm.Position=UDim2.new(0.0199999996,0,0.400000006,0)
254 frm.Size=UDim2.new(0.150000006,0,0.400000006,0)
255 frm.Style="RobloxRound"
256 frm.ZIndex=8
257 lab=Instance.new("TextLabel",frm)
258 lab.Name="iBTitle"
259 lab.BackgroundTransparency=1
260 lab.Size=UDim2.new(1,0,0.150000006,0)
261 lab.ZIndex=9
262 lab.Font="ArialBold"
263 lab.FontSize="Size18"
264 lab.Text="iBuildTools Panel"
265 lab.TextColor3=Color3.new(1,1,1)
266 lab.TextStrokeTransparency=0
267 lab.TextStrokeColor3=Color3.new(0,0,0)
268 del=Instance.new("TextButton",frm)
269 del.Name="iBDelete"
270 del.BackgroundTransparency=1
271 del.Position=UDim2.new(0,0,0.200000003,0)
272 del.Size=UDim2.new(1,0,0.119999997,0)
273 del.Style="RobloxButtonDefault"
274 del.ZIndex=9
275 del.Font="ArialBold"
276 del.FontSize="Size12"
277 del.Text="Delete"
278 del.TextColor3=Color3.new(1,1,1)
279 del.Selected=true
280 ach=Instance.new("TextButton",frm)
281 ach.Name="iBAnchor"
282 ach.BackgroundTransparency=1
283 ach.Position=UDim2.new(0,0,0.330000013,0)
284 ach.Size=UDim2.new(1,0,0.119999997,0)
285 ach.Style="RobloxButton"
286 ach.ZIndex=9
287 ach.Font="ArialBold"
288 ach.FontSize="Size12"
289 ach.Text="Anchor"
290 ach.TextColor3=Color3.new(1,1,1)
291 col=Instance.new("TextButton",frm)
292 col.Name="iBCanCollide"
293 col.BackgroundTransparency=1
294 col.Position=UDim2.new(0,0,0.460000008,0)
295 col.Size=UDim2.new(1,0,0.119999997,0)
296 col.Style="RobloxButton"
297 col.ZIndex=9
298 col.Font="ArialBold"
299 col.FontSize="Size12"
300 col.Text="CanCollide"
301 col.TextColor3=Color3.new(1,1,1)
302 lck=Instance.new("TextButton",frm)
303 lck.Name="iBLock"
304 lck.BackgroundTransparency=1
305 lck.Position=UDim2.new(0,0,0.579999983,0)
306 lck.Size=UDim2.new(1,0,0.119999997,0)
307 lck.Style="RobloxButton"
308 lck.ZIndex=9
309 lck.Font="ArialBold"
310 lck.FontSize="Size12"
311 lck.Text="Lock"
312 lck.TextColor3=Color3.new(1,1,1)
313 brk=Instance.new("TextButton",frm)
314 brk.Name="iBBreak"
315 brk.BackgroundTransparency=1
316 brk.Position=UDim2.new(0,0,0.699999988,0)
317 brk.Size=UDim2.new(1,0,0.119999997,0)
318 brk.Style="RobloxButton"
319 brk.ZIndex=9
320 brk.Font="ArialBold"
321 brk.FontSize="Size12"
322 brk.Text="BreakJoints"
323 brk.TextColor3=Color3.new(1,1,1)
324 set=Instance.new("TextButton",frm)
325 set.Name="iBSettings"
326 set.BackgroundTransparency=1
327 set.Position=UDim2.new(0,0,0.829999983,0)
328 set.Size=UDim2.new(1,0,0.119999997,0)
329 set.Style="RobloxButton"
330 set.ZIndex=9
331 set.Font="ArialBold"
332 set.FontSize="Size12"
333 set.Text="Settings"
334 set.TextColor3=Color3.new(1,1,1)
335 frm.Visible=true
336 --SettingsGUI--
337 frs=Instance.new("Frame",gui)
338 frs.Visible=false
339 frs.Name="iBSettings"
340 frs.Position=UDim2.new(0.389999986,0,0.400000006,0)
341 frs.Size=UDim2.new(0.25,0,0.25,0)
342 frs.Style="RobloxRound"
343 frs.ZIndex=8
344 frw=Instance.new("Frame",frs)
345 frw.Name="iBWindow"
346 frw.Position=UDim2.new(0,0,0.25999999,0)
347 frw.Size=UDim2.new(1,0,0.74000001,0)
348 frw.Style="RobloxRound"
349 frw.ZIndex=8
350 cls=Instance.new("TextButton",frs)
351 cls.Name="iBClose"
352 cls.Position=UDim2.new(0.850000024,0,-0.00999999978,0)
353 cls.Size=UDim2.new(0.150000006,0,0.219999999,0)
354 cls.Style="RobloxButtonDefault"
355 cls.ZIndex=10
356 cls.Font="ArialBold"
357 cls.FontSize="Size12"
358 cls.Text="X"
359 cls.TextColor3=Color3.new(1,0,0)
360 wtl=Instance.new("TextLabel",frs)
361 wtl.Name="iBTitle"
362 wtl.BackgroundTransparency=1
363 wtl.Size=UDim2.new(1,0,0.25,0)
364 wtl.ZIndex=9
365 wtl.Font="ArialBold"
366 wtl.FontSize="Size14"
367 wtl.Text="iBuildTools Settings Window"
368 wtl.TextColor3=Color3.new(1,1,1)
369 wtl.TextStrokeColor3=Color3.new(0,0,0)
370 wtl.TextStrokeTransparency=0
371 wtl.TextXAlignment="Left"
372 clk=Instance.new("TextLabel",frw)
373 clk.Name="iBClick"
374 clk.BackgroundTransparency=1
375 clk.Size=UDim2.new(1,0,0.330000013,0)
376 clk.ZIndex=10
377 clk.Font="ArialBold"
378 clk.FontSize="Size12"
379 clk.TextColor3=Color3.new(1,1,1)
380 clk.Text=" - Click Mode : "
381 clk.TextStrokeColor3=Color3.new(0,0,0)
382 clk.TextStrokeTransparency=0
383 clk.TextXAlignment="Left"
384 ray=Instance.new("TextLabel",frw)
385 ray.Name="iBRay"
386 ray.BackgroundTransparency=1
387 ray.Position=UDim2.new(0,0,0.330000013,0)
388 ray.Size=UDim2.new(1,0,0.330000013,0)
389 ray.ZIndex=10
390 ray.Font="ArialBold"
391 ray.FontSize="Size12"
392 ray.TextColor3=Color3.new(1,1,1)
393 ray.Text=" - Ray Mode : "
394 ray.TextStrokeColor3=Color3.new(0,0,0)
395 ray.TextStrokeTransparency=0
396 ray.TextXAlignment="Left"
397 rfc=Instance.new("TextLabel",frw)
398 rfc.Name="iBRayFunction"
399 rfc.BackgroundTransparency=1
400 rfc.Position=UDim2.new(0,0,0.660000013,0)
401 rfc.Size=UDim2.new(1,0,0.330000013,0)
402 rfc.ZIndex=10
403 rfc.Font="ArialBold"
404 rfc.FontSize="Size12"
405 rfc.TextColor3=Color3.new(1,1,1)
406 rfc.Text=" - Ray Function : "
407 rfc.TextStrokeColor3=Color3.new(0,0,0)
408 rfc.TextStrokeTransparency=0
409 rfc.TextXAlignment="Left"
410 ckb=Instance.new("TextButton",frw)
411 ckb.Name="iBClickButton"
412 ckb.Position=UDim2.new(0.400000006,0,0,0)
413 ckb.Size=UDim2.new(0.600000024,0,0.330000013,0)
414 ckb.ZIndex=10
415 ckb.Selected=true
416 ckb.Style="RobloxButtonDefault"
417 ckb.Font="ArialBold"
418 ckb.FontSize="Size12"
419 ckb.Text="Enabled"
420 ckb.TextColor3=Color3.new(0,1,0)
421 ryb=Instance.new("TextButton",frw)
422 ryb.Name="iBRayButton"
423 ryb.Position=UDim2.new(0.400000006,0,0.330000013,0)
424 ryb.Size=UDim2.new(0.600000024,0,0.330000013,0)
425 ryb.Style="RobloxButton"
426 ryb.ZIndex=10
427 ryb.Font="ArialBold"
428 ryb.FontSize="Size12"
429 ryb.Text="Disabled"
430 ryb.TextColor3=Color3.new(1,0,0)
431 rfb=Instance.new("TextButton",frw)
432 rfb.Name="iBRayFButton"
433 rfb.Position=UDim2.new(0.400000006,0,0.660000013,0)
434 rfb.Size=UDim2.new(0.600000024,0,0.330000013,0)
435 rfb.Style="RobloxButtonDefault"
436 rfb.ZIndex=10
437 rfb.Font="ArialBold"
438 rfb.FontSize="Size12"
439 rfb.Text="Enable Propertie"
440 rfb.TextColor3=Color3.new(0,1,0)
441 end createGui()
442 coroutine.resume(coroutine.create(function()
443 while(mouse)and wait() do
444 if(box)and(ray)then
445 if(lvi)then
446 lso.Visible=true
447 else
448 lso.Visible=false
449 end
450 if(md1==1)then
451 if(clr)then
452 if(mouse.Target~=nil)then
453 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
454 box.Visible=true
455 box.Parent=game.Workspace.CurrentCamera
456 box.Adornee=mouse.Target
457 if(md2==1)then
458 box.Color=BrickColor.new("Bright red")
459 elseif(md2==2)then
460 if(mouse.Target.Anchored)then
461 box.Color=BrickColor.new("Camo")
462 else
463 box.Color=BrickColor.new("Bright red")
464 end
465 elseif(md2==3)then
466 if(mouse.Target.CanCollide)then
467 box.Color=BrickColor.new("Camo")
468 else
469 box.Color=BrickColor.new("Bright red")
470 end
471 elseif(md2==4)then
472 if(mouse.Target.Locked)then
473 box.Color=BrickColor.new("Camo")
474 else
475 box.Color=BrickColor.new("Bright red")
476 end
477 elseif(md2==5)then
478 box.Color=BrickColor.new("Bright blue")
479 end
480 end
481 else
482 box.Visible=false
483 box.Parent=nil
484 box.Adornee=nil
485 end
486 end
487 elseif(md1==2)then
488 lso.Point=mouse.Hit.p
489 box.Visible=false
490 box.Parent=nil
491 box.Adornee=nil
492 if(md2~=1)and(md2~=5)then
493 if(md3==1)then
494 lso.Color=BrickColor.new("Camo")
495 elseif(md3==2)then
496 lso.Color=BrickColor.new("Bright red")
497 end
498 elseif(md2==1)then
499 if(cle)then
500 lso.Color=BrickColor.new("Bright red")
501 else
502 lso.Color=BrickColor.new("Bright blue")
503 end
504 elseif(md2==5)then
505 if(cle)then
506 lso.Color=BrickColor.new("Bright red")
507 else
508 lso.Color=BrickColor.new("Bright blue")
509 end
510 end
511 end
512 end
513 end
514 end))
515 function delDown()
516 del_downFunc=mouse.Button1Down:connect(function()
517 md2=1
518 if(md2==1)then
519 if(md1==1)then
520 if(mouse.Target~=nil)then
521 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
522 mouse.Target:remove()
523 end
524 end
525 elseif(md1==2)then
526 lvi=true
527 lso.Parent=game.Workspace.CurrentCamera
528 while(lvi)and wait() do
529 if(mouse.Target~=nil)then
530 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
531 mouse.Target:remove()
532 cle=true
533 wait(tme)
534 cle=false
535 else
536 cle=false
537 end
538 else
539 cle=false
540 end
541 end
542 end
543 end
544 end)
545 end
546 function delUp()
547 del_upFunc=mouse.Button1Up:connect(function()
548 lvi=false
549 cle=false
550 lso.Parent=nil
551 end)
552 end
553 function achDown()
554 ach_downFunc=mouse.Button1Down:connect(function()
555 md2=2
556 if(md2==2)then
557 if(md1==1)then
558 if(mouse.Target~=nil)then
559 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
560 if(mouse.Target.Anchored)then
561 mouse.Target.Anchored=false
562 else
563 mouse.Target.Anchored=true
564 end
565 end
566 end
567 elseif(md1==2)then
568 lvi=true
569 lso.Parent=game.Workspace.CurrentCamera
570 while(lvi)and wait() do
571 if(mouse.Target~=nil)then
572 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
573 if(md3==1)then
574 mouse.Target.Anchored=true
575 elseif(md3==2)then
576 mouse.Target.Anchored=false
577 end
578 end
579 end
580 end
581 end
582 end
583 end)
584 end
585 function achUp()
586 ach_upFunc=mouse.Button1Up:connect(function()
587 lvi=false
588 lso.Parent=nil
589 end)
590 end
591 function colDown()
592 col_downFunc=mouse.Button1Down:connect(function()
593 md2=3
594 if(md2==3)then
595 if(md1==1)then
596 if(mouse.Target~=nil)then
597 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
598 if(mouse.Target.CanCollide)then
599 mouse.Target.CanCollide=false
600 else
601 mouse.Target.CanCollide=true
602 end
603 end
604 end
605 elseif(md1==2)then
606 lvi=true
607 lso.Parent=game.Workspace.CurrentCamera
608 while(lvi)and wait() do
609 if(mouse.Target~=nil)then
610 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
611 if(md3==1)then
612 mouse.Target.CanCollide=true
613 elseif(md3==2)then
614 mouse.Target.CanCollide=false
615 end
616 end
617 end
618 end
619 end
620 end
621 end)
622 end
623 function colUp()
624 col_upFunc=mouse.Button1Up:connect(function()
625 lvi=false
626 lso.Parent=nil
627 end)
628 end
629 function lckDown()
630 lck_downFunc=mouse.Button1Down:connect(function()
631 md2=4
632 if(md2==4)then
633 if(md1==1)then
634 if(mouse.Target~=nil)then
635 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
636 if(mouse.Target.Locked)then
637 mouse.Target.Locked=false
638 else
639 mouse.Target.Locked=true
640 end
641 end
642 end
643 elseif(md1==2)then
644 lvi=true
645 lso.Parent=game.Workspace.CurrentCamera
646 while(lvi)and wait() do
647 if(mouse.Target~=nil)then
648 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
649 if(md3==1)then
650 mouse.Target.Locked=true
651 elseif(md3==2)then
652 mouse.Target.Locked=false
653 end
654 end
655 end
656 end
657 end
658 end
659 end)
660 end
661 function lckUp()
662 lck_upFunc=mouse.Button1Up:connect(function()
663 lvi=false
664 lso.Parent=nil
665 end)
666 end
667 function brkDown()
668 brk_downFunc=mouse.Button1Down:connect(function()
669 md2=5
670 if(md2==5)then
671 if(md1==1)then
672 if(mouse.Target~=nil)then
673 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
674 clr=false
675 box.Color=BrickColor.new("Bright red")
676 mouse.Target:BreakJoints()
677 end
678 end
679 elseif(md1==2)then
680 lvi=true
681 lso.Parent=game.Workspace.CurrentCamera
682 while(lvi)and wait() do
683 if(mouse.Target~=nil)then
684 if(mouse.Target:IsA("BasePart"))and(mouse.Target~=iOrb.Orb)or(mouse.Target.Name~="cParticle")or(mouse.Target.Name~="cParticle2")then
685 mouse.Target:BreakJoints()
686 cle=true
687 else
688 cle=true
689 end
690 else
691 cle=false
692 end
693 end
694 end
695 end
696 end)
697 end
698 function brkUp()
699 brk_upFunc=mouse.Button1Up:connect(function()
700 clr=true
701 lvi=false
702 cle=false
703 end)
704 end
705 delDown()
706 delUp()
707 achDown()
708 achUp()
709 colDown()
710 colUp()
711 lckDown()
712 lckUp()
713 brkDown()
714 brkUp()
715 del.MouseButton1Click:connect(function()
716 md2=1
717 del_downFunc:disconnect()
718 del_upFunc:disconnect()
719 ach_downFunc:disconnect()
720 ach_upFunc:disconnect()
721 col_downFunc:disconnect()
722 col_upFunc:disconnect()
723 lck_downFunc:disconnect()
724 lck_upFunc:disconnect()
725 brk_downFunc:disconnect()
726 brk_upFunc:disconnect()
727 del.Style="RobloxButtonDefault"
728 del.Selected=true
729 ach.Style="RobloxButton"
730 ach.Selected=false
731 col.Style="RobloxButton"
732 col.Selected=false
733 lck.Style="RobloxButton"
734 lck.Selected=false
735 brk.Style="RobloxButton"
736 brk.Selected=false
737 delDown()
738 delUp()
739 end)
740 ach.MouseButton1Click:connect(function()
741 md2=2
742 del_downFunc:disconnect()
743 del_upFunc:disconnect()
744 ach_downFunc:disconnect()
745 ach_upFunc:disconnect()
746 col_downFunc:disconnect()
747 col_upFunc:disconnect()
748 lck_downFunc:disconnect()
749 lck_upFunc:disconnect()
750 brk_downFunc:disconnect()
751 brk_upFunc:disconnect()
752 del.Style="RobloxButton"
753 del.Selected=false
754 ach.Style="RobloxButtonDefault"
755 ach.Selected=true
756 col.Style="RobloxButton"
757 col.Selected=false
758 lck.Style="RobloxButton"
759 lck.Selected=false
760 brk.Style="RobloxButton"
761 brk.Selected=false
762 achDown()
763 achUp()
764 end)
765 col.MouseButton1Click:connect(function()
766 md2=3
767 del_downFunc:disconnect()
768 del_upFunc:disconnect()
769 ach_downFunc:disconnect()
770 ach_upFunc:disconnect()
771 col_downFunc:disconnect()
772 col_upFunc:disconnect()
773 lck_downFunc:disconnect()
774 lck_upFunc:disconnect()
775 brk_downFunc:disconnect()
776 brk_upFunc:disconnect()
777 del.Style="RobloxButton"
778 del.Selected=false
779 ach.Style="RobloxButton"
780 ach.Selected=false
781 col.Style="RobloxButtonDefault"
782 col.Selected=true
783 lck.Style="RobloxButton"
784 lck.Selected=false
785 brk.Style="RobloxButton"
786 brk.Selected=false
787 colDown()
788 colUp()
789 end)
790 lck.MouseButton1Click:connect(function()
791 md2=4
792 del_downFunc:disconnect()
793 del_upFunc:disconnect()
794 ach_downFunc:disconnect()
795 ach_upFunc:disconnect()
796 col_downFunc:disconnect()
797 col_upFunc:disconnect()
798 lck_downFunc:disconnect()
799 lck_upFunc:disconnect()
800 brk_downFunc:disconnect()
801 brk_upFunc:disconnect()
802 del.Style="RobloxButton"
803 del.Selected=false
804 ach.Style="RobloxButton"
805 ach.Selected=false
806 col.Style="RobloxButton"
807 col.Selected=false
808 lck.Style="RobloxButtonDefault"
809 lck.Selected=true
810 brk.Style="RobloxButton"
811 brk.Selected=false
812 lckDown()
813 lckUp()
814 end)
815 brk.MouseButton1Click:connect(function()
816 md2=5
817 del_downFunc:disconnect()
818 del_upFunc:disconnect()
819 ach_downFunc:disconnect()
820 ach_upFunc:disconnect()
821 col_downFunc:disconnect()
822 col_upFunc:disconnect()
823 lck_downFunc:disconnect()
824 lck_upFunc:disconnect()
825 brk_downFunc:disconnect()
826 brk_upFunc:disconnect()
827 del.Style="RobloxButton"
828 del.Selected=false
829 ach.Style="RobloxButton"
830 ach.Selected=false
831 col.Style="RobloxButton"
832 col.Selected=false
833 lck.Style="RobloxButton"
834 lck.Selected=false
835 brk.Style="RobloxButtonDefault"
836 brk.Selected=true
837 brkDown()
838 brkUp()
839 end)
840 set.MouseButton1Click:connect(function()
841 if(ste)then
842 ste=false
843 frs.Visible=false
844 set.Style="RobloxButton"
845 else
846 ste=true
847 frs.Visible=true
848 set.Style="RobloxButtonDefault"
849 end
850 end)
851 cls.MouseButton1Click:connect(function()
852 ste=false
853 frs.Visible=false
854 set.Style="RobloxButton"
855 end)
856 ckb.MouseButton1Click:connect(function()
857 md1=1
858 ckb.Style="RobloxButtonDefault"
859 ckb.Selected=true
860 ckb.Text="Enabled"
861 ckb.TextColor3=Color3.new(0,1,0)
862 ryb.Style="RobloxButton"
863 ryb.Selected=false
864 ryb.Text="Disabled"
865 ryb.TextColor3=Color3.new(1,0,0)
866 end)
867 ryb.MouseButton1Click:connect(function()
868 md1=2
869 ryb.Style="RobloxButtonDefault"
870 ryb.Selected=true
871 ryb.Text="Enabled"
872 ryb.TextColor3=Color3.new(0,1,0)
873 ckb.Style="RobloxButton"
874 ckb.Selected=false
875 ckb.Text="Disabled"
876 ckb.TextColor3=Color3.new(1,0,0)
877 end)
878 rfb.MouseButton1Click:connect(function()
879 if(md3==1)then
880 md3=2
881 rfb.Style="RobloxButton"
882 rfb.Text="Disable Propertie"
883 rfb.TextColor3=Color3.new(1,0,0)
884 elseif(md3==2)then
885 md3=1
886 rfb.Style="RobloxButtonDefault"
887 rfb.Text="Enable Propertie"
888 rfb.TextColor3=Color3.new(0,1,0)
889 end
890 end)
891 end)
892 bin.Deselected:connect(function()
893 clr=false
894 if(box~=nil)then
895 box:Destroy()
896 end
897 if(lso~=nil)then
898 lso:Destroy()
899 end
900 if(gui~=nil)then
901 gui:Destroy()
902 end
903 end)
904 plr=plr.Name
905 Output([[Gave v3rmtools to ]] .. plr .. "")
906 end
907)
908
909function NewS(sourcevalue, parent)
910if game.PlaceId == 21053279 or game.PlaceId == 21053219 then
911NS(sourcevalue, parent)
912else
913if newScript then
914local scr = newScript:Clone()
915if scr:FindFirstChild(SourceName) then
916if scr:FindFirstChild(SourceName) then
917scr:FindFirstChild(SourceName).Value = sourcevalue
918scr.Parent = parent
919wait(0.5)
920scr.Disabled = false
921return scr
922end
923end
924end
925end
926end
927
928sorcery = script:Clone()
929
930function NewLS(sourcevalue, parent)
931if game.PlaceId == 21053279 or game.PlaceId == 21053219 then
932NLS(sourcevalue, parent)
933else
934local NS = sorcery:Clone()
935NS.Name = "NewLocal"
936local Source = NS:findFirstChild(SourceName)
937if Source == nil then Instance.new('StringValue',NS).Name = SourceName end Source = NS:findFirstChild(SourceName)
938Source.Value = sourcevalue
939NS.Parent = parent
940NS.Disabled = false
941return NS
942end
943end
944
945Clothes = {}
946
947for _,Item in pairs(LocalPlayer.Character:GetChildren()) do
948if Item:IsA('CharacterMesh') or Item:IsA('Hat') or Item:IsA('Shirt') or Item:IsA('Pants') then
949table.insert(Clothes,Item:Clone())
950end
951end
952for i,v in pairs(LocalPlayer.Character:GetChildren()) do
953if v:IsA("BodyColors") then
954body = v
955torsocolor = body.TorsoColor
956leftlegcolor = body.LeftLegColor
957rightlegcolor = body.RightLegColor
958leftarmcolor = body.LeftArmColor
959rightarmcolor = body.RightArmColor
960headcolor = body.HeadColor
961end
962end
963
964mouse = LocalPlayer:GetMouse()
965
966mouse.KeyDown:connect(function(key)
967if key == "z" then
968game:service'StarterGui':SetCoreGuiEnabled(4, true)
969end
970end)
971
972AddCmd("chat;on/off","chat","ChatGUI on/off",
973function(plrs, msg)
974if msg == "off" then
975chatgui = false
976elseif msg == "on" then
977chatgui = true
978end
979end
980)
981
982AddCmd("Music","music","Add some beatz",
983function(plrs, msg)
984local keypos = msg:find(key)
985local id = msg
986local name = math.random(999999999)
987for i, v in pairs(game.Workspace:children()) do if v:IsA("Sound") then v:Destroy() end end
988for i, v in pairs(game.Players.LocalPlayer:children()) do if v:IsA("Sound") then v:Destroy() end end
989local pitch = 1
990local s = Instance.new("Sound", game.Players.LocalPlayer) s.SoundId = "http://www.roblox.com/asset/?id=" .. id
991s.Volume = 1
992s.Name=([[]]..name)
993s.Pitch = pitch
994s.Looped = true
995s.archivable = false
996repeat s:Play() wait() s:Stop() wait() s:Play() until s.IsPlaying
997end
998)
999
1000AddCmd("Brightness","brightness","Change the brightness",
1001function(plrs, msg)
1002local keypos = msg:find(key)
1003local value = msg
1004game.Lighting.Brightness=value
1005end
1006)
1007
1008-- don't question how i done this xD
1009AddCmd("Ambient","ambient","Change the ambient",
1010function(plrs, msg)
1011local keypos = msg:find(key)
1012local value = msg:sub(1,keypos-1)
1013local chk2 = msg:sub(keypos+1):find(";") + keypos
1014game.Lighting.Ambient = Color3.fromRGB(value,msg:sub(keypos+1,chk2-1),msg:sub(chk2+1))
1015end
1016)
1017
1018-- don't question how i done this xD
1019AddCmd("FogColor","fogcolor","Change the fogcolor",
1020function(plrs, msg)
1021local keypos = msg:find(key)
1022local value = msg:sub(1,keypos-1)
1023local chk2 = msg:sub(keypos+1):find(";") + keypos
1024game.Lighting.FogColor = Color3.fromRGB(value,msg:sub(keypos+1,chk2-1),msg:sub(chk2+1))
1025end
1026)
1027
1028AddCmd("Fogend","fogend","Change the fogend",
1029function(plrs, msg)
1030local keypos = msg:find(key)
1031local value = msg
1032game.Lighting.FogEnd=value
1033end
1034)
1035
1036AddCmd("Fogstart","fogstart","Change the fogstart",
1037function(plrs, msg)
1038local keypos = msg:find(key)
1039local value = msg
1040game.Lighting.FogStart=value
1041end
1042)
1043
1044AddCmd("Time","time","Change the time",
1045function(plrs, msg)
1046local keypos = msg:find(key)
1047local value = msg
1048game.Lighting.TimeOfDay=value
1049end
1050)
1051
1052AddCmd("Gravity","grav","Change the player's gravity",
1053function(plrs, msg)
1054local keypos = msg:find(key)
1055local targPlayers = msg:sub(1,keypos-1)
1056local plrs = getPlayers(targPlayers)
1057local speed = msg:sub(tonumber(keypos+1))
1058for _,v in pairs(plrs) do
1059coroutine.resume(coroutine.create(function()
1060if v.Character ~= nil and v.Character:findFirstChild("Humanoid") and v.Character:FindFirstChild("Torso") then
1061for a, frc in pairs(v.Character.Torso:children()) do if frc.Name == "BFRC" then frc:Destroy() end end
1062local frc = Instance.new("BodyForce", v.Character.Torso) frc.Name = "BFRC" frc.force = Vector3.new(0,0,0)
1063for a, prt in pairs(v.Character:children()) do if prt:IsA("BasePart") then frc.force = frc.force - Vector3.new(0,prt:GetMass()*speed,0) elseif prt:IsA("Hat") then frc.force = frc.force - Vector3.new(0,prt.Handle:GetMass()*speed,0) end end
1064end
1065end))
1066end
1067end
1068)
1069
1070AddCmd("Health","health","Sets a player's health",
1071function(plrs, msg)
1072local keypos = msg:find(key)
1073local targPlayers = msg:sub(1,keypos-1)
1074local plrs = getPlayers(targPlayers)
1075local speed = msg:sub(tonumber(keypos+1))
1076if speed=="math.huge" then
1077 speed = math.huge
1078end
1079for _,v in pairs(plrs) do
1080coroutine.resume(coroutine.create(function()
1081if v.Character ~= nil and v.Character:findFirstChild("Humanoid") ~= nil then
1082v.Character.Humanoid.MaxHealth=speed
1083v.Character.Humanoid.Health=speed
1084end
1085end))
1086end
1087end
1088)
1089
1090AddCmd("Damage","damage","Damage a player",
1091function(plrs, msg)
1092local keypos = msg:find(key)
1093local targPlayers = msg:sub(1,keypos-1)
1094local plrs = getPlayers(targPlayers)
1095local speed = msg:sub(tonumber(keypos+1))
1096for _,v in pairs(plrs) do
1097coroutine.resume(coroutine.create(function()
1098if v.Character ~= nil and v.Character:findFirstChild("Humanoid") ~= nil then
1099v.Character.Humanoid:TakeDamage(speed)
1100end
1101end))
1102end
1103end
1104)
1105
1106AddCmd("Set WalkSpeed","ws","Set the walkspeed of player",
1107function(plrs, msg)
1108local keypos = msg:find(key)
1109local targPlayers = msg:sub(1,keypos-1)
1110local plrs = getPlayers(targPlayers)
1111local speed = msg:sub(tonumber(keypos+1))
1112for _,v in pairs(plrs) do
1113if v.Character ~= nil and v.Character:findFirstChild("Humanoid") ~= nil then
1114v.Character:findFirstChild("Humanoid").WalkSpeed = speed
1115end
1116end
1117end
1118)
1119
1120AddCmd("Teleport to playr","tp","Teleport to the player",
1121function(plrs, msg)
1122local keypos = msg:find(key)
1123local targPlayers = msg:sub(1,keypos-1)
1124local speed = msg:sub(tonumber(keypos+1))
1125local plrs = getPlayers(targPlayers)
1126local plrs2 = getPlayers(speed)
1127for _,v2 in pairs(plrs2) do
1128for _,v in pairs(plrs) do
1129 if v.Character ~= nil and v.Character:findFirstChild("Humanoid") ~= nil then
1130 if v2.Character ~= nil and v2.Character:findFirstChild("Humanoid") ~= nil then
1131 v.Character.Torso.Anchored=true
1132 wait(0.1)
1133 v.Character.Torso.CFrame=v2.Character.Torso.CFrame+Vector3.new(math.random(-1, 1),0,math.random(-1, 1))
1134 wait(0.1)
1135 v.Character.Torso.Anchored=false
1136 v=v.Name
1137 v2=v2.Name
1138 Output([[Teleported ]] .. v .. [[ to ]] .. v2 .."")
1139end
1140end
1141end
1142end
1143end
1144)
1145
1146AddCmd("Gear","gear","Give a player a gear",
1147function(plrs, msg)
1148local keypos = msg:find(key)
1149local targPlayers = msg:sub(1,keypos-1)
1150local plr = getPlayers(targPlayers)
1151local id = msg:sub(tonumber(keypos+1))
1152for _,v in pairs(plr) do
1153coroutine.resume(coroutine.create(function()
1154if v and v:findFirstChild("Backpack") then
1155local obj = game:service("InsertService"):LoadAsset(id)
1156for a,g in pairs(obj:children()) do if g:IsA("Tool") or g:IsA("HopperBin") then g.Parent = v.Backpack end end
1157obj:Destroy()
1158end
1159end))
1160end
1161end
1162)
1163
1164AddCmd("Hat","hat","Give a player a nice hat",
1165function(plrs, msg)
1166local keypos = msg:find(key)
1167local targPlayers = msg:sub(1,keypos-1)
1168local plr = getPlayers(targPlayers)
1169local id = msg:sub(tonumber(keypos+1))
1170for _,v in pairs(plr) do
1171coroutine.resume(coroutine.create(function()
1172if v and v.Character then
1173local obj = game:service("InsertService"):LoadAsset(id)
1174for a,hat in pairs(obj:children()) do if hat:IsA("Hat") then hat.Parent = v.Character end end
1175obj:Destroy()
1176end
1177end))
1178end
1179end
1180)
1181
1182AddCmd("UnName","unname","Removes a player's name",
1183function(plrs)
1184for _, plr in pairs(plrs) do
1185if plr and plr.Character then
1186if plr and plr.Character and plr.Character:findFirstChild("Head") then
1187for a, mod in pairs(plr.Character:children()) do if mod:findFirstChild("NameTag") then plr.Character.Head.Transparency = 0 mod:Destroy() end end
1188end
1189end
1190end
1191end
1192)
1193
1194AddCmd("Name","name","Name a player",
1195function(plrs, msg)
1196local keypos = msg:find(key)
1197local targPlayers = msg:sub(1,keypos-1)
1198local plr = getPlayers(targPlayers)
1199local name = msg:sub(tonumber(keypos+1))
1200for _,v in pairs(plr) do
1201coroutine.resume(coroutine.create(function()
1202if v and v.Character and v.Character:findFirstChild("Head") then
1203for a, mod in pairs(v.Character:GetChildren()) do if mod:findFirstChild("NameTag") then v.Character.Head.Transparency = 0 mod:Destroy() end end
1204local char = v.Character
1205local mod = Instance.new("Model", char)
1206mod.Name = [[]].. name
1207local cl = char.Head:Clone() cl.Parent = mod
1208local hum = Instance.new("Humanoid", mod)
1209hum.Name = "NameTag" hum.MaxHealth = 0
1210hum.Health = 0
1211local weld = Instance.new("Weld", cl) weld.Part0 = cl weld.Part1 = char.Head
1212char.Head.Transparency = 1
1213end
1214end))
1215end
1216end
1217)
1218
1219AddCmd("BuildTools","btools","Gives a player building tools",
1220function(plrs)
1221for _, plr in pairs(plrs) do
1222Output([[Gave btools to ]] .. plr.Name .. "")
1223coroutine.resume(coroutine.create(function()
1224if plr and plr:findFirstChild("Backpack") then
1225local t1 = Instance.new("HopperBin", plr.Backpack) t1.Name = "Move" t1.BinType = "GameTool"
1226local t2 = Instance.new("HopperBin", plr.Backpack) t2.Name = "Clone" t2.BinType = "Clone"
1227local t3 = Instance.new("HopperBin", plr.Backpack) t3.Name = "Delete" t3.BinType = "Hammer"
1228local t4= Instance.new("HopperBin", plr.Backpack) t4.Name = "Resize"
1229sb= [[]]
1230hs= [[]]
1231pdist= [[]]
1232t4.Selected:connect(function(mouse)
1233if not mouse then return end
1234sb = Instance.new("SelectionBox", plr.PlayerGui) sb.Color = BrickColor.new("Bright blue") sb.Adornee = nil
1235hs = Instance.new("Handles", plr.PlayerGui) hs.Color = BrickColor.new("Bright blue") hs.Adornee = nil
1236mouse.Button1Down:connect(function() if not mouse.Target or mouse.Target.Locked then sb.Adornee = nil hs.Adornee = nil else sb.Adornee = mouse.Target hs.Adornee = mouse.Target hs.Faces = mouse.Target.ResizeableFaces end end)
1237hs.MouseDrag:connect(function(old,dist) if hs.Adornee and math.abs(dist-pdist) >= 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)
1238hs.MouseButton1Down:connect(function() pdist = 0 end)
1239end)
1240
1241t4.Selected:connect(function() sb:Destroy() hs:Destroy() end) t4.Disabled = false
1242end
1243end))
1244end
1245end
1246)
1247
1248AddCmd("Freeze","freeze","Brrrrr....",
1249function(plrs)
1250for _, v in pairs(plrs) do
1251if v and v.Character then
1252coroutine.resume(coroutine.create(function()
1253if v and v.Character and v.Character:findFirstChild("Humanoid") then
1254for a, obj in pairs(v.Character:children()) do
1255if obj:IsA("BasePart") then obj.Anchored = true end v.Character.Humanoid.WalkSpeed = 0
1256end
1257end
1258end))
1259end
1260end
1261end
1262)
1263
1264AddCmd("Thaw","thaw","Thaws a player",
1265function(plrs)
1266for _, v in pairs(plrs) do
1267if v and v.Character then
1268coroutine.resume(coroutine.create(function()
1269if v and v.Character and v.Character:findFirstChild("Humanoid") then
1270for a, obj in pairs(v.Character:children()) do
1271if obj:IsA("BasePart") then obj.Anchored = false end v.Character.Humanoid.WalkSpeed = 16
1272end
1273end
1274end))
1275end
1276end
1277end
1278)
1279
1280AddCmd("Invisible","invis","Spooky ghost",
1281function(plrs)
1282for _, v in pairs(plrs) do
1283coroutine.resume(coroutine.create(function()
1284if v and v.Character then
1285for a, obj in pairs(v.Character:children()) do
1286if obj:IsA("BasePart") then obj.Transparency = 1 if obj:findFirstChild("face") then obj.face.Transparency = 1 end elseif obj:IsA("Hat") and obj:findFirstChild("Handle") then obj.Handle.Transparency = 1 end
1287end
1288end
1289end))
1290end
1291end
1292)
1293
1294AddCmd("Visible","visible","Makes player visible",
1295function(plrs)
1296for _, v in pairs(plrs) do
1297coroutine.resume(coroutine.create(function()
1298if v and v.Character then
1299for a, obj in pairs(v.Character:GetChildren()) do
1300if obj:IsA("BasePart") then obj.Transparency = 0 if obj.Name=="HumanoidRootPart" then obj.Transparency=1 end if obj:findFirstChild("face") then obj.face.Transparency = 0 end elseif obj:IsA("Hat") and obj:findFirstChild("Handle") then obj.Handle.Transparency = 0 end
1301end
1302end
1303end))
1304end
1305end
1306)
1307
1308AddCmd("Explode","explode","Boom boom xd",
1309function(plrs)
1310for _, v in pairs(plrs) do
1311coroutine.resume(coroutine.create(function()
1312if v and v.Character and v.Character:findFirstChild("Torso") then
1313local ex = Instance.new("Explosion", game.Workspace) ex.Position = v.Character.Torso.Position
1314end
1315end))
1316end
1317end
1318)
1319
1320AddCmd("Fire","fire","420blazeit",
1321function(plrs)
1322for _, v in pairs(plrs) do
1323coroutine.resume(coroutine.create(function()
1324if v and v.Character and v.Character:findFirstChild("Torso") then
1325local cl = Instance.new("Fire", v.Character.Torso)
1326end
1327end))
1328end
1329end
1330)
1331
1332AddCmd("UnFire","unfire","Remove fire",
1333function(plrs)
1334for _, v in pairs(plrs) do
1335coroutine.resume(coroutine.create(function()
1336if v and v.Character and v.Character:findFirstChild("Torso") then
1337for z, cl in pairs(v.Character.Torso:children()) do if cl:IsA("Fire") then cl:Destroy() end end
1338end
1339end))
1340end
1341end
1342)
1343
1344AddCmd("Smoke","smoke","woo smokey bacon",
1345function(plrs)
1346for _, v in pairs(plrs) do
1347coroutine.resume(coroutine.create(function()
1348if v and v.Character and v.Character:findFirstChild("Torso") then
1349local cl = Instance.new("Smoke", v.Character.Torso)
1350end
1351end))
1352end
1353end
1354)
1355
1356AddCmd("Unsmoke","unsmoke","Remove smoke",
1357function(plrs)
1358for _, v in pairs(plrs) do
1359coroutine.resume(coroutine.create(function()
1360if v and v.Character and v.Character:findFirstChild("Torso") then
1361for z, cl in pairs(v.Character.Torso:children()) do if cl:IsA("Smoke") then cl:Destroy() end end
1362end
1363end))
1364end
1365end
1366)
1367
1368AddCmd("Sparkles","sparkles","oo sparkly",
1369function(plrs)
1370for _, v in pairs(plrs) do
1371coroutine.resume(coroutine.create(function()
1372if v and v.Character and v.Character:findFirstChild("Torso") then
1373local cl = Instance.new("Sparkles", v.Character.Torso)
1374end
1375end))
1376end
1377end
1378)
1379
1380AddCmd("Unsparkle","unsparkle","Remove sparkles",
1381function(plrs)
1382for _, v in pairs(plrs) do
1383coroutine.resume(coroutine.create(function()
1384if v and v.Character and v.Character:findFirstChild("Torso") then
1385for z, cl in pairs(v.Character.Torso:children()) do if cl:IsA("Sparkles") then cl:Destroy() end end
1386end
1387end))
1388end
1389end
1390)
1391
1392AddCmd("Removetools","removetools","Removes a player's tools",
1393function(plrs)
1394for _, v in pairs(plrs) do
1395if v and v.Character then
1396coroutine.resume(coroutine.create(function()
1397if v and v.Character and v:findFirstChild("Backpack") then
1398for a, tool in pairs(v.Character:children()) do if tool:IsA("Tool") or tool:IsA("HopperBin") then tool:Destroy() end end
1399for a, tool in pairs(v.Backpack:children()) do if tool:IsA("Tool") or tool:IsA("HopperBin") then tool:Destroy() end end
1400end
1401end))
1402end
1403end
1404end
1405)
1406
1407AddCmd("Lock","lock","Locks a player",
1408function(plrs)
1409for _, v in pairs(plrs) do
1410coroutine.resume(coroutine.create(function()
1411if v and v.Character then
1412for a, obj in pairs(v.Character:children()) do
1413if obj:IsA("BasePart") then obj.Locked = true elseif obj:IsA("Hat") and obj:findFirstChild("Handle") then obj.Handle.Locked = true end
1414end
1415end
1416end))
1417end
1418end
1419)
1420
1421AddCmd("Blind","blind","Blind a player",
1422function(plrs)
1423for _, v in pairs(plrs) do
1424local function popup()
1425local g=Instance.new('ScreenGui')
1426local z=Instance.new('ImageLabel', g)
1427z.BackgroundTransparency = 0
1428z.BackgroundColor3=Color3.fromRGB(0,0,0)
1429z.Image='rbxassetid://0'
1430z.Size=UDim2.new(50,0,50,0)
1431z.Position=UDim2.new(0, 0, 0, 0)
1432b=Instance.new('TextLabel', g)
1433b.ZIndex=5000000
1434return g
1435end
1436
1437local giveGUI = function(plr, g)
1438if _G.Spray == nil then
1439_G.Spray = game.InsertService:LoadAsset(80576967)
1440end
1441local spray = _G.Spray:WaitForChild('Spray'):Clone()
1442spray.Parent = game.Workspace
1443spray.SprayGui:Remove()
1444local gClone = g:Clone()
1445gClone.Parent = spray
1446gClone.Name = 'SprayGui'
1447local f = Instance.new('Frame', gClone)
1448f.Visible = false
1449local ff = Instance.new('Frame', f)
1450ff.Visible = false
1451local fff = Instance.new('TextBox', ff)
1452fff.Visible = false
1453v.Character.Humanoid:EquipTool(spray)
1454game:service('Debris'):AddItem(spray, 1)
1455end
1456if v:FindFirstChild("PlayerGui") then
1457giveGUI(v, popup())
1458end
1459end
1460end
1461)
1462
1463AddCmd("Unlock","unlock","Unlocks a player",
1464function(plrs)
1465for _, v in pairs(plrs) do
1466coroutine.resume(coroutine.create(function()
1467if v and v.Character then
1468for a, obj in pairs(v.Character:children()) do
1469if obj:IsA("BasePart") then obj.Locked = false elseif obj:IsA("Hat") and obj:findFirstChild("Handle") then obj.Handle.Locked = false end
1470end
1471end
1472end))
1473end
1474end
1475)
1476
1477AddCmd("Sword","sword","Slashy slash cutty cut >:D",
1478function(plrs)
1479for _, v in pairs(plrs) do
1480coroutine.resume(coroutine.create(function()
1481if v and v:findFirstChild("Backpack") then
1482local sword = Instance.new("Tool", v.Backpack) sword.Name = "Sword" sword.TextureId = "rbxasset://Textures/Sword128.png"
1483sword.GripForward = Vector3.new(-1,0,0)
1484sword.GripPos = Vector3.new(0,0,-1.5)
1485sword.GripRight = Vector3.new(0,1,0)
1486sword.GripUp = Vector3.new(0,0,1)
1487local handle = Instance.new("Part", sword) handle.Name = "Handle" handle.FormFactor = "Plate" handle.Size = Vector3.new(1,.8,4) handle.TopSurface = 0 handle.BottomSurface = 0
1488local msh = Instance.new("SpecialMesh", handle) msh.MeshId = "rbxasset://fonts/sword.mesh" msh.TextureId = "rbxasset://textures/SwordTexture.png"
1489repeat wait() until v and v.Character and v.Character:findFirstChild("Humanoid")
1490local Damage = 15
1491local SlashSound = Instance.new("Sound", handle)
1492SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
1493SlashSound.Volume = 1
1494local LungeSound = Instance.new("Sound", handle)
1495LungeSound.SoundId = "rbxasset://sounds\\swordlunge.wav"
1496LungeSound.Volume = 1
1497local UnsheathSound = Instance.new("Sound", handle)
1498UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
1499UnsheathSound.Volume = 1
1500local last = 0
1501handle.Touched:connect(function(hit)
1502if hit and hit.Parent and hit.Parent:findFirstChild("Humanoid") and game.Players:findFirstChild(hit.Parent.Name) and v.Character.Humanoid.Health > 0 and hit.Parent.Humanoid ~= v.Character.Humanoid then
1503local tag = Instance.new("ObjectValue", hit.Parent.Humanoid) tag.Value = plr1 tag.Name = "creator" game:service("Debris"):AddItem(tag, 3)
1504hit.Parent.Humanoid:TakeDamage(Damage)
1505end
1506end)
1507sword.Activated:connect(function()
1508if not sword.Enabled or v.Character.Humanoid.Health <= 0 then return end
1509sword.Enabled = false
1510local tick = game:service("RunService").Stepped:wait()
1511if tick - last <= .2 then
1512LungeSound:play()
1513local lunge = Instance.new("StringValue", sword) lunge.Name = "toolanim" lunge.Value = "Lunge"
1514local frc = Instance.new("BodyVelocity", v.Character.Torso) frc.Name = "SwordForce" frc.velocity = Vector3.new(0,10,0)
1515wait(.2)
1516sword.GripForward = Vector3.new(0,0,1)
1517sword.GripRight = Vector3.new(0,-1,0)
1518sword.GripUp = Vector3.new(-1,0,0)
1519wait(.3)
1520frc:Destroy() wait(.5)
1521sword.GripForward = Vector3.new(-1,0,0)
1522sword.GripRight = Vector3.new(0,1,0)
1523sword.GripUp = Vector3.new(0,0,1)
1524else
1525SlashSound:play()
1526local slash = Instance.new("StringValue", sword) slash.Name = "toolanim" slash.Value = "Slash"
1527end
1528last = tick
1529sword.Enabled = true
1530end)
1531sword.Equipped:connect(function(mouse)
1532for i,vee in pairs(v.Character.Torso:children()) do if vee.Name == "SwordForce" then v:Destroy() end end
1533UnsheathSound:play()
1534sword.Enabled = true
1535if not mouse then return end
1536mouse.Icon = "http://www.roblox.com/asset/?id=103593352"
1537end)
1538end
1539end))
1540end
1541end
1542)
1543
1544AddCmd("Fly","fly","Lets a player fly",
1545function(plrs)
1546for _, plr in pairs(plrs) do
1547if plr and plr.Character then
1548 plr=plr.Name
1549Output([[]].. plr ..[[ is soaring to the heavens!]])
1550repeat wait() until game.Players[plr] and game.Players[plr].Character and game.Players[plr].Character:findFirstChild("Torso") and game.Players[plr].Character:findFirstChild("Humanoid")
1551local mouse = game.Players[plr]:GetMouse()
1552repeat wait() until mouse
1553local plr = game.Players[plr]
1554local torso = plr.Character.Torso
1555local flying = true
1556local deb = true
1557local ctrl = {f = 0, b = 0, l = 0, r = 0}
1558local lastctrl = {f = 0, b = 0, l = 0, r = 0}
1559local maxspeed = 50
1560local speed = 0
1561function Fly()
1562local bg = Instance.new("BodyGyro", torso)
1563bg.P = 9e4
1564bg.maxTorque = Vector3.new(9e9, 9e9, 9e9)
1565bg.cframe = torso.CFrame
1566local bv = Instance.new("BodyVelocity", torso)
1567bv.velocity = Vector3.new(0,0.1,0)
1568bv.maxForce = Vector3.new(9e9, 9e9, 9e9)
1569repeat wait()
1570plr.Character.Humanoid.PlatformStand = true
1571if ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0 then
1572speed = speed+.5+(speed/maxspeed)
1573if speed > maxspeed then
1574speed = maxspeed
1575end
1576elseif not (ctrl.l + ctrl.r ~= 0 or ctrl.f + ctrl.b ~= 0) and speed ~= 0 then
1577speed = speed-1
1578if speed < 0 then
1579speed = 0
1580end
1581end
1582if (ctrl.l + ctrl.r) ~= 0 or (ctrl.f + ctrl.b) ~= 0 then
1583bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (ctrl.f+ctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(ctrl.l+ctrl.r,(ctrl.f+ctrl.b)*.2,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
1584lastctrl = {f = ctrl.f, b = ctrl.b, l = ctrl.l, r = ctrl.r}
1585elseif (ctrl.l + ctrl.r) == 0 and (ctrl.f + ctrl.b) == 0 and speed ~= 0 then
1586bv.velocity = ((game.Workspace.CurrentCamera.CoordinateFrame.lookVector * (lastctrl.f+lastctrl.b)) + ((game.Workspace.CurrentCamera.CoordinateFrame * CFrame.new(lastctrl.l+lastctrl.r,(lastctrl.f+lastctrl.b)*.2,0).p) - game.Workspace.CurrentCamera.CoordinateFrame.p))*speed
1587else
1588bv.velocity = Vector3.new(0,0.1,0)
1589end
1590bg.cframe = game.Workspace.CurrentCamera.CoordinateFrame * CFrame.Angles(-math.rad((ctrl.f+ctrl.b)*50*speed/maxspeed),0,0)
1591until not flying
1592ctrl = {f = 0, b = 0, l = 0, r = 0}
1593lastctrl = {f = 0, b = 0, l = 0, r = 0}
1594speed = 0
1595bg:Destroy()
1596bv:Destroy()
1597plr.Character.Humanoid.PlatformStand = false
1598end
1599mouse.KeyDown:connect(function(key)
1600if key:lower() == "e" then
1601if flying then flying = false
1602else
1603flying = true
1604Fly()
1605end
1606elseif key:lower() == "w" then
1607ctrl.f = 1
1608elseif key:lower() == "s" then
1609ctrl.b = -1
1610elseif key:lower() == "a" then
1611ctrl.l = -1
1612elseif key:lower() == "d" then
1613ctrl.r = 1
1614end
1615end)
1616mouse.KeyUp:connect(function(key)
1617if key:lower() == "w" then
1618ctrl.f = 0
1619elseif key:lower() == "s" then
1620ctrl.b = 0
1621elseif key:lower() == "a" then
1622ctrl.l = 0
1623elseif key:lower() == "d" then
1624ctrl.r = 0
1625end
1626end)
1627Fly()
1628end
1629end
1630end
1631)
1632
1633Bad_Char = " "
1634
1635function chatgui(msg)
1636if not chatgui then return end
1637if probemode == false then
1638if LocalPlayer.Character:findFirstChild("Head") then
1639mainPart = LocalPlayer.Character:findFirstChild("Head")
1640end
1641end
1642if probemode == true then
1643if game.Workspace:findFirstChild(LocalPlayer.Name.."'s probe") then
1644mainPart = game.Workspace:findFirstChild(LocalPlayer.Name.."'s probe")
1645end
1646end
1647local bg = Instance.new("BillboardGui", mainPart)
1648bg.Adornee = mainPart
1649bg.Name = "CHATGUIBG"
1650bg.Size = UDim2.new(4, 0, 2.5, 0)
1651bg.StudsOffset = Vector3.new(-4, 2, 0)
1652local bg2 = Instance.new("BillboardGui", mainPart)
1653bg2.Adornee = mainPart
1654bg2.Name = "CHATGUIBG2"
1655bg2.Size = UDim2.new(4, 0, 2.5, 0)
1656bg2.StudsOffset = Vector3.new(-4, 4.5, 0)
1657local text = Instance.new("TextLabel", bg)
1658text.Size = UDim2.new(3, 0, 0.5, 0)
1659text.FontSize = "Size18"
1660text.TextScaled = true
1661text.TextTransparency = 0
1662text.BackgroundTransparency = 1
1663text.TextTransparency = 0
1664text.TextStrokeTransparency = 0
1665text.Font = "SourceSans"
1666text.TextColor3 = Color3.new(0, 255, 255)
1667text.Text = " "
1668Message = msg:gsub("","")
1669if #Message >50 then return end
1670for i = 0, #Message, 1 do
1671wait(0.01)
1672text.Text = string.gsub("("..LocalPlayer.Name.."): "..Message:gsub(0, i),'fuck','fu ck')
1673end
1674wait()
1675coroutine.resume(coroutine.create(function()
1676for i = 0, 5, 0.05 do
1677if bg ~= nil then
1678if bg2 ~= nil then
1679wait()
1680bg2.StudsOffset = bg2.StudsOffset + Vector3.new(0, 0.05, 0)
1681end
1682bg.StudsOffset = bg.StudsOffset + Vector3.new(0, 0.05, 0)
1683end
1684end
1685end))
1686for i=text.TextTransparency,1,0.02 do
1687wait()
1688text.TextTransparency = i
1689text.TextStrokeTransparency = i
1690end
1691if bg == nil then return end
1692bg:Destroy()
1693if bg2 == nil then return end
1694bg2:Destroy()
1695end
1696
1697LocalPlayer.Chatted:connect(chatgui)
1698
1699AddCmd("Commands","cmds","Show the list of commands",
1700function()
1701Dismiss()
1702for i, v in pairs(Cmds) do
1703Output(v["Name"],
1704function()
1705Output("Description: "..v["Desc"], __)
1706Output("Usage: "..v["Say"], __)
1707Output("Name: "..v["Name"], __)
1708end)
1709end
1710end
1711)
1712
1713AddCmd("Rejoin player","rejoin","Rejoin the player",
1714function(plrs)
1715for _, plr in pairs(plrs) do
1716if plr and plr.Backpack then
1717NewLS("game:service'TeleportService':Teleport(game.PlaceId)", plr.Backpack)
1718end
1719end
1720end
1721)
1722
1723AddCmd("Execute", "exe","Execute a LocalScript for admin",
1724function(plrs, msg)
1725a,b = ypcall(function()
1726loadstring(msg)()
1727end) if not a then Output(b,"Bright red") end
1728end
1729)
1730
1731AddCmd("Clean workspace", "clean","Cleans the mess nobs made",
1732function ()
1733local Base = Instance.new("Part",game.Workspace.Terrain)
1734 Base.Name = "Base"
1735 Base.Anchored = true
1736 Base.Locked = true
1737 Base.BrickColor = BrickColor.new("Bright green")
1738 Base.Size = Vector3.new(2048,2,2048)
1739 Base.CFrame = CFrame.new(0,-0.5,0)
1740
1741if game.Lighting:FindFirstChild("Backup1234567890") then
1742game.Lighting:FindFirstChild("Backup1234567890"):Destroy()
1743else
1744end
1745
1746local aaaa=Instance.new("Model", game.Lighting)
1747aaaa.Name="Backup1234567890"
1748
1749for i, v in pairs (game.Workspace:GetChildren()) do
1750if v.ClassName=="Part" or v.ClassName=="TrussPart" then
1751v.Parent=aaaa
1752end
1753end
1754end
1755)
1756
1757AddCmd("Revert clean", "revert","why'd you even clean if ur gonna revert scrub",
1758 function()
1759 if game.Lighting:FindFirstChild("Backup1234567890") then
1760 for _, v in pairs(game.Lighting:FindFirstChild("Backup1234567890"):GetChildren()) do
1761 v:Clone().Parent=game.Workspace
1762 end
1763 wait()
1764 game.Lighting.Backup1234567890:Destroy()
1765 end
1766 wait(.4)
1767 if game.Workspace.Terrain:FindFirstChild("Base") then
1768 game.Workspace.Terrain.Base:Destroy()
1769 end
1770end
1771)
1772
1773AddCmd("Kohls Admin Mod", "adminhousemod","Move pads for Kohl's Admin House",
1774function ()
1775local Tabby=game.Workspace.Terrain.Tabby
1776
1777if Tabby.Admin_House:FindFirstChild("Jumps") then
1778Tabby.Admin_House.Jumps:Destroy()
1779else
1780end
1781if Tabby.Admin_House:FindFirstChild("Barriers") then
1782Tabby.Admin_House.Barriers:Destroy()
1783else
1784end
1785if Tabby.Admins:FindFirstChild("Regen_Button") then
1786a=Tabby.Admins:FindFirstChild("Regen_Button")
1787a.CFrame=CFrame.new(-31.0000019, 0.100000069, -22.9900017, -1, 0, 0, 0, 1, 0, 0, 0, -1)+Vector3.new(-9, 40, 50)
1788a.Material="Neon"
1789else
1790end
1791
1792for i, player in pairs(Tabby.Admins.Admin_Givers:GetChildren()) do
1793 player.Head.Material="Neon"
1794 player.Head.CFrame=CFrame.new(-31.0000019, 0.100000069, -22.9900017, -1, 0, 0, 0, 1, 0, 0, 0, -1)+Vector3.new(-30 + i * 4,math.random(1, 10),0)
1795 wait()
1796end
1797
1798a=Instance.new("Message")
1799a.Parent=game.Workspace
1800a.Text="Modded by " .. game.Players.LocalPlayer.Name
1801wait(3)
1802a:Destroy()
1803end
1804)
1805
1806AddCmd("Anchor", "anchor","Anchor all parts",
1807function()
1808 g = game.Workspace:GetChildren () do
1809for i = 1, #g do
1810if g[i].ClassName == "Part" then
1811g[i].Anchored = true else if
1812g[i].ClassName == "Model" then
1813y = g[i]:GetChildren ()
1814for i = 1, #y do
1815if y[i].ClassName == "Part" then
1816y[i].Anchored = true
1817end
1818end
1819end
1820end
1821end
1822end
1823end
1824)
1825
1826AddCmd("UnAnchor", "unanchor","UnAnchor all parts",
1827function()
1828 g = game.Workspace:GetChildren () do
1829for i = 1, #g do
1830if g[i].ClassName == "Part" then
1831g[i].Anchored = false else if
1832g[i].ClassName == "Model" then
1833y = g[i]:GetChildren ()
1834for i = 1, #y do
1835if y[i].ClassName == "Part" then
1836y[i].Anchored = false
1837end
1838end
1839end
1840end
1841end
1842end
1843end
1844)
1845
1846AddCmd("Admin a player","vtabs","Give admin to a player",
1847function(plrs)
1848for _, plr in pairs(plrs) do
1849if plr and plr.Backpack then
1850script.Parent = plr.Backpack
1851Output("You gave admin to: "..plr.Name, __)
1852end
1853end
1854end
1855)
1856
1857AddCmd("AFK","afk","Ping yourself as afk",
1858function()
1859Dismiss()
1860for i = 1,8 do
1861wait()
1862Output(''..LocalPlayer.Name.." is afk")
1863end
1864end
1865)
1866
1867AddCmd("Back","back","Ping yourself as back",
1868function()
1869Dismiss()
1870for i = 1,8 do
1871wait()
1872Output(''..LocalPlayer.Name.." is back bby")
1873end
1874wait(3)
1875Dismiss()
1876end
1877)
1878
1879AddCmd("Ban a player","ban","Kicks a player when he enters",
1880function(plrs, msg)
1881for _,v in pairs(plrs) do
1882if v then
1883table.insert(Banlist,v.Name)
1884Output('Banned | '..v.Name,__)
1885else
1886Output("Error")
1887end
1888end
1889end
1890)
1891
1892AddCmd("Kick a player","kick","Kicks a player",
1893function(plrs, msg)
1894for _,v in pairs(plrs) do
1895if v then
1896v:Destroy()
1897v=v.Name
1898Output([[Kicked ]] .. v .. "")
1899end
1900end
1901end
1902)
1903
1904AddCmd("Unpunish a player","unpunish","Unpunishes a player",
1905function(plrs)
1906for _, plr in pairs(plrs) do
1907if plr and plr.Character then
1908plr.Character.Parent = game:service("Workspace") plr.Character:MakeJoints()
1909plr=plr.Name
1910Output([[Unpunished]] .. plr .."")
1911end
1912end
1913end
1914)
1915
1916AddCmd("Punish a player","punish","Remove a player from the workspace",
1917function(plrs)
1918for _, plr in pairs(plrs) do
1919if plr and plr.Character then
1920plr.Character.Parent = nil
1921plr=plr.Name
1922Output([[Punished]] .. plr .."")
1923end
1924end
1925end
1926)
1927
1928AddCmd("Info","vinfo","info pwns k",
1929function()
1930Dismiss()
1931for i = 1,2 do
1932wait()
1933Output("Kent Tabs Created by V3rmilli0n", __)
1934Output("Kent Tabs Created by V3rmilli0n", __)
1935Output("Kent Tabs Created by V3rmilli0n", __)
1936Output("Kent Tabs Created by V3rmilli0n", __)
1937Output("Kent Tabs Created by V3rmilli0n", __)
1938end
1939end
1940)
1941
1942AddCmd("Fix Lighting","fix","Fix the Lighting",
1943function()
1944function dtr()
1945 local sk = game.Lighting:findFirstChild("Sky")
1946 if sk ~= nil then
1947 sk:Remove()
1948 end
1949 game.Lighting.FogEnd = 10011111111
1950 game.Lighting.Ambient = Color3.new(0.5,0.5,0.5)
1951 game.Lighting.TimeOfDay = "14:00:00"
1952 game.Lighting.Ambient = Color3.new(0.5,0.5,0.5)
1953 game.Lighting.Brightness = 1
1954 game.Lighting.ColorShift_Bottom = Color3.new(0,0,0)
1955 game.Lighting.ColorShift_Top = Color3.new(0,0,0)
1956 game.Lighting.ShadowColor = Color3.new(0.7,0.7,0.7)
1957end
1958dtr()
1959end
1960)
1961
1962AddCmd("Set SkyBox","skybox","et Skybox l0l",
1963function()
1964function getAll(obj)
1965for i, v in pairs(obj:getChildren()) do
1966if v:IsA("BasePart") then
1967v.Anchored = false
1968v.BrickColor = BrickColor.new(0)
1969bv = Instance.new("BodyVelocity")
1970bv.Parent = v
1971bv.maxForce = Vector3.new(100000000,100000000,100000000)
1972end
1973getAll(v)
1974end
1975end
1976getAll(workspace)
1977game.Lighting.TimeOfDay = "07:00:00"
1978game.Lighting.Ambient = Color3.new(0,0,0)
1979sky = Instance.new("Sky")
1980sky.Parent = game.Lighting
1981sky.SkyboxBk = "http://www.roblox.com/asset/?id=122579628"
1982sky.SkyboxDn = "http://www.roblox.com/asset/?id=122579628"
1983sky.SkyboxFt = "http://www.roblox.com/asset/?id=122579628"
1984sky.SkyboxLf = "http://www.roblox.com/asset/?id=122579628"
1985sky.SkyboxRt = "http://www.roblox.com/asset/?id=122579628"
1986sky.SkyboxUp = "http://www.roblox.com/asset/?id=122579628"
1987end
1988)
1989
1990
1991AddCmd("Shutdown","sd","Shuts the server down",
1992 function()
1993 Output("Shutting down server!","Really red")
1994 wait(1)
1995 for i,v in pairs(game.Players:GetPlayers()) do
1996 v:Kick()
1997 end
1998 end
1999)
2000
2001AddCmd("RuinSB","rsb","Ruins a not-saveplace protected scriptbuilder",
2002 function()
2003 if SourceName == "source" then
2004 Output("This is Alakazards scriptbuilder, can't use SavePlace here!","Really red")
2005 else
2006 NewS([[game:SavePlace()]],Workspace)
2007 end
2008 end
2009)
2010
2011AddCmd("Connect","connect","Connect a player",
2012 function(plrs)
2013 for _,plr in pairs(plrs) do
2014 if plr and plr.Backpack then
2015 Connect(plr)
2016 end
2017 end
2018 end
2019)
2020
2021AddCmd("Night","night","Makes it night",
2022 function()
2023 game.Lighting.TimeOfDay = "00:00:00"
2024 end
2025)
2026
2027AddCmd("Day","day","Makes it day",
2028 function()
2029 game.Lighting.TimeOfDay = "12:00:00"
2030 end
2031)
2032
2033AddCmd("Disc","dc","Disconnects a player form the game",
2034function(plrs)
2035for _,plr in pairs(plrs) do
2036if plr and plr.Backpack then
2037NewLS([[local lp = game.Players.LocalPlayer;lp.Parent = nil;wait();lp.Parent = game.Players]],plr.Backpack)
2038end
2039end
2040end)
2041
2042AddCmd("LocalScript","ls","LocalScript",
2043 function(nothing, msg)
2044 if LocalPlayer.Parent ~= nil then
2045 NewLS(msg, LocalPlayer.Backpack)
2046 end
2047 end
2048)
2049
2050AddCmd("Playerinfo","pinfo","Shows info on a player",
2051 function(plrs)
2052 for _,plr in pairs(plrs) do
2053 if plr then
2054Output("Age: "..plr.AccountAge,"noncolar")
2055Output("Membership: "..plr.MembershipType.Name,"Hot pink")
2056Output("Player: "..plr.Name,"Really red")
2057Output("Id: "..plr.userId,"New Yeller")
2058Output("Camera Mode: "..plr.CameraMode.Name,"Dark green")
2059end
2060end
2061end)
2062
2063AddCmd("Force shutdown","fsd","Forces shutdown with a ManualSurfaceJoint",
2064 function(nothing, msg)
2065 NewS([[local b = Instance.new ("ManualSurfaceJointInstance",Workspace)]],workspace)
2066 end
2067)
2068
2069AddCmd("Message","m","Show a message",
2070 function(nothing, msg)
2071 if found then
2072 NewS([[
2073 a = Instance.new("Message", workspace)
2074 msg = "]]..msg..[["
2075 msg = msg:gsub("","\5")
2076 game:service'Debris':AddItem(a, 5)
2077 while wait() do
2078 for i = 30,0,-1 do
2079 a.Text = "-->"..string.rep(" ",i)..msg..string.rep(" ",i).."<--"
2080 wait()
2081 end
2082 for i = 0,30,1 do
2083 a.Text = "-->"..string.rep(" ",i)..msg..string.rep(" ",i).."<--"
2084 wait()
2085 end
2086 end
2087 ]], workspace)
2088 end
2089 end
2090)
2091
2092AddCmd("Create base","base","Create the base",
2093function()
2094local Base = Instance.new("Part",game.Workspace.Terrain)
2095 Base.Name = "Base"
2096 Base.Anchored = true
2097 Base.Locked = true
2098 Base.BrickColor = BrickColor.new("Bright green")
2099 Base.Size = Vector3.new(2048,2,2048)
2100 Base.CFrame = CFrame.new(0,-0.5,0)
2101end
2102)
2103
2104AddCmd("Ping","ping","Ping something",
2105function(plrs, msg)
2106if msg == "" then
2107Output("pong", __)
2108else
2109Output(msg, __)
2110end
2111end
2112)
2113
2114AddCmd("Dismiss","dt","Dismiss tabs",
2115function()
2116Dismiss()
2117end
2118)
2119
2120AddCmd("God player","god","Give a player godlike health",
2121function(plrs)
2122for _, plr in pairs(plrs) do
2123if plr and plr.Character and plr.Character.Humanoid then
2124local me = plr
2125me.Character.Humanoid.MaxHealth=math.huge
2126end
2127end
2128end
2129)
2130
2131AddCmd("BSoD","bsod","BSoD a player",
2132 function(Plrs)
2133 for _, plr in pairs(Plrs) do
2134 if plr and plr.Backpack then
2135 for i = 0,7,1 do
2136 NewLS(BSoDSource, plr.Backpack)
2137 Output("You BSoD'D "..plr.Name, __)
2138
2139 end
2140 end
2141 end
2142 end
2143)
2144
2145
2146
2147AddCmd("Nilp","nils","see who is nil *BETA*",
2148 function()
2149 NewS([[
2150 Model = Instance.new("Model", game.Lighting)
2151 Model.Name = "Kent Tabs"
2152 for _,v in pairs(game:service'NetworkServer':children()) do
2153 if v:GetPlayer() then
2154 if v:GetPlayer().Parent ~= game:service'Players' then
2155 Instance.new("StringValue",Model).Value = v:GetPlayer().Name
2156 end
2157 end
2158 end
2159 ]], workspace)
2160 wait()
2161 np = nil
2162 for i = 0,5,1 do
2163 if game.Lighting:findFirstChild("Kent Tabs") then
2164 np = game.Lighting:findFirstChild("Kent Tabs")
2165 break
2166 end
2167 wait(0.1)
2168 end
2169 if np ~= nil then
2170 Dismiss()
2171 for _,v in pairs(np:children()) do
2172 if v:IsA("StringValue") then
2173 Output(v.Value,"Really red")
2174 end
2175 end
2176 elseif np == nil then
2177 Output("Something went wrong.","Really red")
2178 end
2179 end
2180)
2181
2182AddCmd("Probe mode", "probe", "temp nil",
2183function()
2184probemode = true
2185Dismiss()
2186if LocalPlayer.Character then LocalPlayer.Character = nil end
2187if workspace.CurrentCamera == nil then return end
2188local camera = workspace.CurrentCamera
2189local probe = Instance.new("Part", workspace)
2190probe.Shape = "Block"
2191probe.Color = Color3.new(170, 0, 255)
2192probe.Anchored = true
2193probe.Transparency = (0)
2194probe.Size = Vector3.new(8.6, 7.8, 7.8)
2195probe.CanCollide = true
2196M = Instance.new("SpecialMesh",probe)
2197M.MeshId = "http://www.roblox.com/Asset/?id=9756362"
2198M.Scale = Vector3.new(1.25, 3, 1.25)
2199P.Color = Color3.new(170, 0, 255)
2200
2201One = Instance.new("Decal", probe)
2202Two = Instance.new("Decal", probe)
2203Three = Instance.new("Decal", probe)
2204Four = Instance.new("Decal", probe)
2205Five = Instance.new("Decal", probe)
2206Six = Instance.new("Decal", probe)
2207One.Texture = "http://www.roblox.com/asset/?id=124865736"
2208Two.Texture = "http://www.roblox.com/asset/?id=124865736"
2209Three.Texture = "http://www.roblox.com/asset/?id=124865736"
2210Four.Texture = "http://www.roblox.com/asset/?id=124865736"
2211Five.Texture = "http://www.roblox.com/asset/?id=124865736"
2212Six.Texture = "http://www.roblox.com/asset/?id=124865736"
2213One.Face = "Front"
2214Two.Face = "Back"
2215Three.Face = "Right"
2216Four.Face = "Left"
2217Five.Face = "Top"
2218Six.Face = "Bottom"
2219
2220local s = Instance.new("SelectionBox")
2221
2222s.Color = BrickColor.new("Really black")
2223s.Adornee = probe
2224s.Parent = probe
2225s.Transparency = (0.4)
2226probe.TopSurface = 0
2227probe.Color = Color3.new(170, 0, 255)
2228probe.Anchored = true
2229probe.BottomSurface = 0
2230probe.Name = LocalPlayer.Name.."'s probe"
2231local rotation = 0
2232local bbg = Instance.new("BillboardGui", probe)
2233bbg.Size = UDim2.new(3, 0, 3 ,0)
2234bbg.ExtentsOffset = Vector3.new(0, 2, 0)
2235local txt = Instance.new("TextLabel", bbg)
2236txt.FontSize = "Size24"
2237txt.Font = "SourceSansBold"
2238txt.Text = LocalPlayer.Name
2239txt.BackgroundTransparency = 1
2240txt.TextColor3 = Color3.new(255, 0, 0)
2241txt.TextStrokeTransparency = 0
2242txt.Size = UDim2.new(1,0,1,0)
2243local pl = Instance.new("PointLight", probe)
2244pl.Shadows = true
2245pl.Range = 20
2246coroutine.wrap(function()
2247while pl ~= nil do
2248pl.Color = Color3.new(math.random(), math.random(), math.random())
2249wait(0.8)
2250end
2251end)()
2252coroutine.wrap(function()
2253while LocalPlayer.Character == nil and probe.Parent == workspace and probe ~= nil and game:service'RunService'.Stepped:wait() do
2254probe.CFrame = camera.Focus * CFrame.Angles(0, rotation, 0)
2255end
2256if camera then
2257camera:Destroy()
2258end
2259probe:Destroy()
2260end)()
2261end
2262)
2263
2264AddCmd("stop plsplspls","vremove","Remove Admin",
2265function()
2266Output("y u remove dis",
2267function()
2268Output("fine...qq",
2269function()
2270for i,v in pairs(getfenv(1)) do
2271getfenv(1)[i] = nil
2272end
2273script.Disabled = true
2274LocalPlayer = NO_PLAYER
2275script:findFirstChild(SourceName).Value = " "
2276script.Disabled = true
2277tabmodel:ClearAllChildren()
2278tabmodel:Destroy()
2279connection:disconnect()
2280Tabs = {}
2281Cmds = {}
2282Banlist = {}
2283fukhed.all = true
2284coroutine.resume(coroutine.create(function()
2285while wait(0.1) do
2286Dismiss()
2287end
2288end))
2289end)
2290end)
2291end
2292)
2293
2294AddCmd("ForceField","ff","Give forcefield to player",
2295function(plrs)
2296for _, plr in pairs(plrs) do
2297if plr and plr.Character then
2298Instance.new("ForceField", plr.Character)
2299end
2300end
2301end
2302)
2303
2304function ShowBL()
2305 Dismiss()
2306 for _,v in pairs(Banlist) do
2307 Output(v, "Really red", function()
2308 Dismiss()
2309 Output("Un-ban", "Black", function() table.remove(Banlist,_) end)
2310 Output("Back", "Really red", function() ShowBL() end)
2311 end)
2312 end
2313end
2314
2315AddCmd("Banlist","banlist","Show banned players",
2316 function()
2317 ShowBL()
2318 end
2319)
2320
2321AddCmd("Lag player","lg","Lag a player",
2322function(plrs)
2323for _, plr in pairs(plrs) do
2324if plr and plr.Backpack then
2325NewLS(LagSource, plr.Backpack)
2326end
2327end
2328end
2329)
2330
2331AddCmd("Crash player","crash","Crash the player",
2332function(plrs)
2333for _, plr in pairs(plrs) do
2334if plr and plr.Backpack then
2335NewLS([==[
2336 game:GetService("RunService").RenderStepped(function()
2337 Delay(0, function() return end)
2338 end)]==], plr.Backpack)
2339end
2340end
2341end
2342)
2343
2344AddCmd("Kill player","kill","Kill a player",
2345function(plrs)
2346for _, plr in pairs(plrs) do
2347if plr and plr.Character then
2348plr.Character:BreakJoints()
2349plr=plr.Name
2350Output([[Killed ]] .. plr .. "")
2351end
2352end
2353end
2354)
2355
2356AddCmd("Char player","char","Change players' appearance",
2357function(plrs, msg)
2358local keypos = msg:find(key)
2359local targPlayers = msg:sub(1,keypos-1)
2360local plrs = getPlayers(targPlayers)
2361local speed = msg:sub(tonumber(keypos+1))
2362for _,v in pairs(plrs) do
2363v.CharacterAppearance = "http://www.roblox.com/asset/CharacterFetch.ashx?userId=" ..speed
2364--v:LoadCharacter()
2365end
2366end
2367)
2368
2369AddCmd("Unchar player","unchar","Reverts character's appearance",
2370function(plrs)
2371for _, plr in pairs(plrs) do
2372if plr and plr.Character then
2373plr.CharacterAppearance = "http://www.roblox.com/asset/CharacterFetch.ashx?userId=" .. plr.userId
2374--plr:LoadCharacter()
2375end
2376end
2377end
2378)
2379
2380AddCmd("Mute player","mute","Block the player chat",
2381function(plrs)
2382for _, plr in pairs(plrs) do
2383if plr and plr.Backpack then
2384NewLS("game:service'StarterGui':SetCoreGuiEnabled(3, false)", plr.Backpack)
2385end
2386end
2387end
2388)
2389
2390AddCmd("Unmute player","unmute","Unblock the player chat",
2391function(plrs)
2392for _, plr in pairs(plrs) do
2393if plr and plr.Backpack then
2394NewLS("game:service'StarterGui':SetCoreGuiEnabled(3, true)", plr.Backpack)
2395end
2396end
2397end
2398)
2399
2400AddCmd("Un-ForceField","unff","Remove the forcefield that you gave to player",
2401function(plrs)
2402for _, plr in pairs(plrs) do
2403if plr and plr.Character then
2404pcall(function()
2405for _,v in pairs(plr.Character:GetChildren()) do
2406if v:IsA("ForceField") then
2407v:Destroy()
2408end
2409end
2410end)
2411end
2412end
2413end
2414)
2415
2416AddCmd("Bsod Spam","dsz","Make everything bsod",
2417function()
2418function meands(obj)
2419for i,v in pairs(obj:GetChildren()) do
2420if v:IsA("BasePart") then
2421One = Instance.new("Decal", v)
2422Two = Instance.new("Decal", v)
2423Three = Instance.new("Decal", v)
2424Four = Instance.new("Decal", v)
2425Five = Instance.new("Decal", v)
2426Six = Instance.new("Decal", v)
2427One.Texture = "http://www.roblox.com/asset/?id=3529576"
2428Two.Texture = "http://www.roblox.com/asset/?id=3529576"
2429Three.Texture = "http://www.roblox.com/asset/?id=3529576"
2430Four.Texture = "http://www.roblox.com/asset/?id=3529576"
2431Five.Texture = "http://www.roblox.com/asset/?id=3529576"
2432Six.Texture = "http://www.roblox.com/asset/?id=3529576"
2433One.Face = "Front"
2434Two.Face = "Back"
2435Three.Face = "Right"
2436Four.Face = "Left"
2437Five.Face = "Top"
2438Six.Face = "Bottom"
2439end
2440meands(v)
2441end
2442end
2443meands(workspace)
2444end
2445)
2446
2447AddCmd("Decal Spam","ds","Make everything decal",
2448function()
2449function meands(obj)
2450for i,v in pairs(obj:GetChildren()) do
2451if v:IsA("BasePart") then
2452One = Instance.new("Decal", v)
2453Two = Instance.new("Decal", v)
2454Three = Instance.new("Decal", v)
2455Four = Instance.new("Decal", v)
2456Five = Instance.new("Decal", v)
2457Six = Instance.new("Decal", v)
2458One.Texture = "http://www.roblox.com/asset/?id=124865736"
2459Two.Texture = "http://www.roblox.com/asset/?id=124865736"
2460Three.Texture = "http://www.roblox.com/asset/?id=124865736"
2461Four.Texture = "http://www.roblox.com/asset/?id=124865736"
2462Five.Texture = "http://www.roblox.com/asset/?id=124865736"
2463Six.Texture = "http://www.roblox.com/asset/?id=124865736"
2464One.Face = "Front"
2465Two.Face = "Back"
2466Three.Face = "Right"
2467Four.Face = "Left"
2468Five.Face = "Top"
2469Six.Face = "Bottom"
2470end
2471meands(v)
2472end
2473end
2474meands(workspace)
2475end
2476)
2477
2478AddCmd("brick spam all","bs","Brick Spam da game",
2479function()
2480while true do
2481wait()
2482p = Instance.new("Part")
2483p.Size = Vector3.new(math.random(1,30),math.random(1,30),math.random(1,30))
2484p.BrickColor = BrickColor.random()
2485p.Position = Vector3.new(math.random(-200,200),100,math.random(-200,200))
2486p.Reflectance = (math.random(0,100) / 100)
2487p.Locked = false
2488p.Name = "VersedBK was here"
2489p.Parent = game.Workspace
2490One = Instance.new("Decal", p)
2491Two = Instance.new("Decal", p)
2492Three = Instance.new("Decal", p)
2493Four = Instance.new("Decal", p)
2494Five = Instance.new("Decal", p)
2495Six = Instance.new("Decal", p)
2496One.Texture = "http://www.roblox.com/asset/?id=124865736"
2497Two.Texture = "http://www.roblox.com/asset/?id=124865736"
2498Three.Texture = "http://www.roblox.com/asset/?id=124865736"
2499Four.Texture = "http://www.roblox.com/asset/?id=124865736"
2500Five.Texture = "http://www.roblox.com/asset/?id=124865736"
2501Six.Texture = "http://www.roblox.com/asset/?id=124865736"
2502One.Face = "Front"
2503Two.Face = "Back"
2504Three.Face = "Right"
2505Four.Face = "Left"
2506Five.Face = "Top"
2507Six.Face = "Bottom"
2508
2509local s = Instance.new("SelectionBox")
2510
2511s.Color = BrickColor.random()
2512s.Adornee = p
2513s.Parent = p
2514s.Transparency = (0.4)
2515end
2516end
2517)
2518
2519AddCmd("FClean","fclean","Fully clear",
2520 function()
2521 for i,s in pairs(workspace:GetChildren()) do
2522if game:GetService("Players"):GetPlayerFromCharacter(s) == nil then
2523if s.className ~= "Terrain" then
2524if s.className ~= "Camera" then
2525pcall(function() s:Destroy() end)
2526end end end end
2527local b = Instance.new("Part", Game:GetService("Workspace"))
2528b.Size = Vector3.new(3000, 1, 3000)
2529b.CFrame = CFrame.new(0, 0, 0)
2530b.Name = "Base"
2531b.BrickColor = BrickColor.new("Earth green")
2532b.TopSurface = "Smooth"
2533b.BottomSurface = "Smooth"
2534b.LeftSurface = "Smooth"
2535b.RightSurface = "Smooth"
2536b.FrontSurface = "Smooth"
2537b.BackSurface = "Smooth"
2538b.Anchored = true
2539b.Locked = true
2540local sl = Instance.new("SpawnLocation", workspace)
2541sl.Anchored = true
2542sl.Locked = true
2543sl.formFactor = "Plate"
2544sl.Size = Vector3.new(6, 0.4, 6)
2545sl.CFrame = CFrame.new(0, 0.6, 0)
2546sl.BrickColor = BrickColor.new("Really blue")
2547sl.TopSurface = "Smooth"
2548sl.BottomSurface = "Smooth"
2549sl.LeftSurface = "Smooth"
2550sl.RightSurface = "Smooth"
2551sl.FrontSurface = "Smooth"
2552sl.BackSurface = "Smooth"
2553game.Lighting.FogEnd = 10011111111
2554 game.Lighting.Ambient = Color3.new(0.5,0.5,0.5)
2555 game.Lighting.TimeOfDay = "14:00:00"
2556 game.Lighting.Ambient = Color3.new(0.5,0.5,0.5)
2557 game.Lighting.Brightness = 1
2558 game.Lighting.ColorShift_Bottom = Color3.new(0,0,0)
2559 game.Lighting.ColorShift_Top = Color3.new(0,0,0)
2560 game.Lighting.ShadowColor = Color3.new(0.7,0.7,0.7)
2561 end
2562)
2563
2564
2565AddCmd("BSoD BanList","bbl","Show BSod banned players",
2566 function()
2567 Showbb()
2568 end
2569)
2570
2571AddCmd("'BSoD' ban","bb","BSoD ban a player",
2572function(plrs, msg)
2573for _,v in pairs(plrs) do
2574if v then
2575table.insert(BSoDBanList,v.Name)
2576Output('|BSoD Banned | '..v.Name,__)
2577for _, plr in pairs(plrs) do
2578if plr and plr.Backpack then
2579NewLS(BSoDSource, plr.Backpack)
2580else
2581Output(Error)
2582end
2583end
2584end
2585end
2586end
2587)
2588
2589function Showbb()
2590 Dismiss()
2591 for _,v in pairs(BSoDBanList) do
2592 Output(v,nil, function()
2593 Dismiss()
2594 Output(v)
2595 Output("Un-Ban","Really red", function()
2596 table.remove(BSoDBanList, _)
2597 end)
2598 Output("Back","Really red", function()
2599 Showbb()
2600 end)
2601 end)
2602 end
2603end
2604
2605AddCmd("Number of commands","ncmds","0var 9000 qq not rlly soon tho",
2606function()
2607Output(#Cmds, __)
2608end
2609)
2610
2611
2612
2613AddCmd("GetAge","age","Get age of a player",
2614 function(Plrs)
2615 for _, plr in pairs(Plrs) do
2616 if plr then
2617 Output(plr.Name..": "..tostring(plr.AccountAge))
2618 end
2619 end
2620end)
2621
2622
2623AddCmd("StampTools","stools","StamperTools lel",
2624function()
2625x = game:GetService("InsertService"):LoadAsset(73089166) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2626x = game:GetService("InsertService"):LoadAsset(73089204) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2627x = game:GetService("InsertService"):LoadAsset(73089190) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2628x = game:GetService("InsertService"):LoadAsset(58880579) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2629x = game:GetService("InsertService"):LoadAsset(60791062) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2630x = game:GetService("InsertService"):LoadAsset(73089239) x.Parent = game.Workspace x:makeJoints() x:MoveTo(game.Players.LocalPlayer.Character.Head.Position)
2631end
2632)
2633
2634AddCmd("Teapot turret","teapot","Teapot turret tools",
2635function(plrs)
2636for _, plr in pairs(plrs) do
2637if plr and plr.Character then
2638local Player=plr.Name
2639a=game:GetService("InsertService"):LoadAsset(1055299)
2640a.Parent=game.Workspace
2641a.Name="aaaa"
2642game.Workspace.aaaa.TeapotTurret.Handle.Tools:FindFirstChild("Fire Shield"):Clone().Parent=game.Players[Player].Backpack
2643game.Workspace.aaaa.TeapotTurret.Handle.Tools:FindFirstChild("Katon Goukakyou No Jutsu"):Clone().Parent=game.Players[Player].Backpack
2644game.Workspace.aaaa.TeapotTurret.Handle.Tools:FindFirstChild("SpinFire"):Clone().Parent=game.Players[Player].Backpack
2645game.Workspace.aaaa.TeapotTurret.GravityHammer:Clone().Parent=game.Players[Player].Backpack
2646game.Workspace.aaaa:Destroy()
2647Output([[Gave ]] ..Player.. [[ teapot turret tools]])
2648end
2649end
2650end
2651)
2652
2653AddCmd("Box","box","Box of doom",
2654function(plrs)
2655for _, plr in pairs(plrs) do
2656if plr and plr.Character then
2657plr=plr.Name
2658boom=game.Players[plr].Character
2659boom.Torso.Anchored=true
2660boom.Torso.CFrame=boom.Torso.CFrame+Vector3.new(0, 1000, 0)
2661boom.Torso.Anchored=false
2662boom.Torso.Anchored=true
2663box=Instance.new("Part")
2664box.Parent=game.Workspace
2665box.Name="box"
2666box.CanCollide=true
2667box.Anchored=true
2668box.Size=Vector3.new(7,1,7)
2669box.CFrame=boom.Torso.CFrame-Vector3.new(0, 2, 0)
2670box.Rotation=Vector3.new(0,0,0)
2671box3=Instance.new("Part")
2672box3.Parent=game.Workspace
2673box3.Name="box"
2674box3.CanCollide=true
2675box3.Anchored=true
2676box3.Size=Vector3.new(1,8,7)
2677box3.CFrame=boom.Torso.CFrame+Vector3.new(3, 0, 0)
2678box3.Rotation=Vector3.new(0,0,0)
2679box4=Instance.new("Part")
2680box4.Parent=game.Workspace
2681box4.Name="box"
2682box4.CanCollide=true
2683box4.Anchored=true
2684box4.Size=Vector3.new(1,8,7)
2685box4.CFrame=boom.Torso.CFrame-Vector3.new(3, 0, 0)
2686box4.Rotation=Vector3.new(0,0,0)
2687box5=Instance.new("Part")
2688box5.Parent=game.Workspace
2689box5.Name="box"
2690box5.CanCollide=true
2691box5.Anchored=true
2692box5.Size=Vector3.new(5,8,1)
2693box5.CFrame=boom.Torso.CFrame+Vector3.new(0, 0, 3)
2694box5.Rotation=Vector3.new(0,0,0)
2695box6=Instance.new("Part")
2696box6.Parent=game.Workspace
2697box6.Name="box"
2698box6.CanCollide=true
2699box6.Anchored=true
2700box6.Size=Vector3.new(5,8,1)
2701box6.CFrame=boom.Torso.CFrame-Vector3.new(0, 0, 3)
2702box6.Rotation=Vector3.new(0,0,0)
2703box2=Instance.new("Part")
2704box2.Parent=game.Workspace
2705box2.Name="box"
2706box2.CanCollide=true
2707box2.Anchored=true
2708box2.Size=Vector3.new(7,1,7)
2709box2.CFrame=boom.Torso.CFrame+Vector3.new(0, 4, 0)
2710box2.Rotation=Vector3.new(0,0,0)
2711for i = 1, 1000 do
2712 a=Instance.new("Explosion")
2713 a.Parent=game.Workspace
2714 a.BlastPressure=0
2715 a.BlastRadius=0
2716 a.DestroyJointRadiusPercent=0
2717 a.ExplosionType="NoCraters"
2718 a.Position=boom.Torso.Position
2719 b=Instance.new("Explosion")
2720 b.Parent=game.Workspace
2721 b.BlastPressure=0
2722 b.BlastRadius=0
2723 b.DestroyJointRadiusPercent=0
2724 b.ExplosionType="NoCraters"
2725 b.Position=boom.Torso.Position
2726 c=Instance.new("Explosion")
2727 c.Parent=game.Workspace
2728 c.BlastPressure=0
2729 c.BlastRadius=0
2730 c.DestroyJointRadiusPercent=0
2731 c.ExplosionType="NoCraters"
2732 c.Position=boom.Torso.Position
2733 d=Instance.new("ForceField")
2734 d.Parent=boom
2735 wait()
2736end
2737for i, v in pairs(game.Workspace:GetChildren()) do
2738if v.Name=="box" then
2739game.Workspace.box:Destroy()
2740wait()
2741end
2742end
2743for i, v in pairs(boom:GetChildren()) do
2744if v.Name=="ForceField" then
2745boom.ForceField:Destroy()
2746wait()
2747end
2748end
2749boom.Torso.Anchored=false
2750end
2751end
2752end
2753)
2754
2755AddCmd("Explorer","explore","Dex explorer",
2756function()
2757CreateGui = function()
2758 local NewGuiPart1 = Instance.new("ScreenGui")
2759 NewGuiPart1.Name = "Dex"
2760 -------
2761 local NewGuiPart2 = Instance.new("Frame")
2762 NewGuiPart2.Active = true
2763 NewGuiPart2.BackgroundTransparency = 0.1
2764 NewGuiPart2.BackgroundColor3=Color3.fromRGB(255, 255, 255)
2765 NewGuiPart2.BorderColor3 = Color3.fromRGB(191, 191, 191)
2766 NewGuiPart2.Name = "PropertiesFrame"
2767 NewGuiPart2.Position = UDim2.new(1, -300, 0.5, 21)
2768 NewGuiPart2.Size = UDim2.new(0, 300, 0.5, -3)
2769 NewGuiPart2.Parent = NewGuiPart1
2770 -------
2771 local NewGuiPart3 = Instance.new("Frame")
2772 NewGuiPart3.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
2773 NewGuiPart3.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
2774 NewGuiPart3.Name = "Header"
2775 NewGuiPart3.Position = UDim2.new(0, 0, 0, -36)
2776 NewGuiPart3.Size = UDim2.new(1, 0, 0, 35)
2777 NewGuiPart3.Parent = NewGuiPart2
2778 -------
2779 local NewGuiPart4 = Instance.new("TextLabel")
2780 NewGuiPart4.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
2781 NewGuiPart4.BackgroundTransparency = 1
2782 NewGuiPart4.Position = UDim2.new(0, 4, 0, 0)
2783 NewGuiPart4.Size = UDim2.new(1, -4, 0.5, 0)
2784 NewGuiPart4.FontSize = Enum.FontSize.Size14
2785 NewGuiPart4.Font="SourceSans"
2786 NewGuiPart4.Text = "Properties"
2787 NewGuiPart4.TextColor3 = Color3.new(0, 0, 0)
2788 NewGuiPart4.TextXAlignment = Enum.TextXAlignment.Left
2789 NewGuiPart4.Parent = NewGuiPart3
2790 -------
2791 local NewGuiPart5 = Instance.new("TextBox")
2792 NewGuiPart5.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
2793 NewGuiPart5.BackgroundTransparency = 0.80000001192093
2794 NewGuiPart5.Position = UDim2.new(0, 4, 0.5, 0)
2795 NewGuiPart5.Size = UDim2.new(1, -8, 0.5, -3)
2796 NewGuiPart5.Font="SourceSans"
2797 NewGuiPart5.FontSize = Enum.FontSize.Size14
2798 NewGuiPart5.Text = "Search Properties"
2799 NewGuiPart5.TextColor3 = Color3.new(0, 0, 0)
2800 NewGuiPart5.TextXAlignment = Enum.TextXAlignment.Left
2801 NewGuiPart5.Parent = NewGuiPart3
2802 -------
2803 local NewGuiPart6 = Instance.new("Frame")
2804 NewGuiPart6.BackgroundTransparency = 0.10000000149012
2805 NewGuiPart6.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
2806 NewGuiPart6.Name = "ExplorerPanel"
2807 NewGuiPart6.Position = UDim2.new(1, -300, 0, 0)
2808 NewGuiPart6.Size = UDim2.new(0, 300, 0.5, -15)
2809 NewGuiPart6.Parent = NewGuiPart1
2810 -------
2811 local NewGuiPart7 = Instance.new("Frame")
2812 NewGuiPart7.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
2813 NewGuiPart7.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
2814 NewGuiPart7.Name = "SideMenu"
2815 NewGuiPart7.Position = UDim2.new(1, -330, 0, 0)
2816 NewGuiPart7.Size = UDim2.new(0, 30, 0, 150)
2817 NewGuiPart7.ZIndex = 2
2818 NewGuiPart7.Parent = NewGuiPart1
2819 -------
2820 local NewGuiPart8 = Instance.new("TextButton")
2821 NewGuiPart8.Active = true
2822 NewGuiPart8.BackgroundTransparency = 1
2823 NewGuiPart8.Name = "Toggle"
2824 NewGuiPart8.Position = UDim2.new(0, 0, 0, 120)
2825 NewGuiPart8.Selectable = true
2826 NewGuiPart8.Size = UDim2.new(0, 30, 0, 30)
2827 NewGuiPart8.Style = Enum.ButtonStyle.Custom
2828 NewGuiPart8.ZIndex = 2
2829 NewGuiPart8.Font="SourceSans"
2830 NewGuiPart8.FontSize = Enum.FontSize.Size24
2831 NewGuiPart8.Text = ">"
2832 NewGuiPart8.Parent = NewGuiPart7
2833 -------
2834 local NewGuiPart9 = Instance.new("TextButton")
2835 NewGuiPart9.Active = true
2836 NewGuiPart9.BackgroundTransparency = 1
2837 NewGuiPart9.Name = "Explorer"
2838 NewGuiPart9.Position = UDim2.new(0, 0, 0, 90)
2839 NewGuiPart9.Selectable = true
2840 NewGuiPart9.Size = UDim2.new(0, 30, 0, 30)
2841 NewGuiPart9.Style = Enum.ButtonStyle.Custom
2842 NewGuiPart9.ZIndex = 2
2843 NewGuiPart9.FontSize = Enum.FontSize.Size24
2844 NewGuiPart9.Font="SourceSans"
2845 NewGuiPart9.Text = "E"
2846 NewGuiPart9.Parent = NewGuiPart7
2847 -------
2848 local NewGuiPart10 = Instance.new("TextButton")
2849 NewGuiPart10.Active = true
2850 NewGuiPart10.BackgroundTransparency = 1
2851 NewGuiPart10.Name = "Settings"
2852 NewGuiPart10.Position = UDim2.new(0, 0, 0, 60)
2853 NewGuiPart10.Selectable = true
2854 NewGuiPart10.Size = UDim2.new(0, 30, 0, 30)
2855 NewGuiPart10.Style = Enum.ButtonStyle.Custom
2856 NewGuiPart10.ZIndex = 2
2857 NewGuiPart10.FontSize = Enum.FontSize.Size24
2858 NewGuiPart10.Font="SourceSans"
2859 NewGuiPart10.Text = "S"
2860 NewGuiPart10.Parent = NewGuiPart7
2861 -------
2862 local NewGuiPart11 = Instance.new("TextLabel")
2863 NewGuiPart11.BackgroundTransparency = 1
2864 NewGuiPart11.Name = "Title"
2865 NewGuiPart11.Size = UDim2.new(0, 30, 0, 20)
2866 NewGuiPart11.ZIndex = 2
2867 NewGuiPart11.Font = Enum.Font.SourceSansBold
2868 NewGuiPart11.FontSize = Enum.FontSize.Size14
2869 NewGuiPart11.Text = "DEX"
2870 NewGuiPart11.TextWrapped = true
2871 NewGuiPart11.Parent = NewGuiPart7
2872 -------
2873 local NewGuiPart12 = Instance.new("TextLabel")
2874 NewGuiPart12.BackgroundTransparency = 1
2875 NewGuiPart12.Name = "Version"
2876 NewGuiPart12.Position = UDim2.new(0, 0, 0, 15)
2877 NewGuiPart12.Size = UDim2.new(0, 30, 0, 20)
2878 NewGuiPart12.ZIndex = 2
2879 NewGuiPart12.Font = Enum.Font.SourceSansBold
2880 NewGuiPart12.FontSize = Enum.FontSize.Size12
2881 NewGuiPart12.Text = "V0.98"
2882 NewGuiPart12.TextWrapped = true
2883 NewGuiPart12.Parent = NewGuiPart7
2884 -------
2885 local NewGuiPart13 = Instance.new("TextButton")
2886 NewGuiPart13.Active = true
2887 NewGuiPart13.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
2888 NewGuiPart13.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
2889 NewGuiPart13.Name = "Toggle"
2890 NewGuiPart13.Position = UDim2.new(1, 0, 0, 0)
2891 NewGuiPart13.Selectable = true
2892 NewGuiPart13.Size = UDim2.new(0, 30, 0, 30)
2893 NewGuiPart13.Style = Enum.ButtonStyle.Custom
2894 NewGuiPart13.Font="SourceSans"
2895 NewGuiPart13.FontSize = Enum.FontSize.Size24
2896 NewGuiPart13.Text = "<"
2897 NewGuiPart13.Parent = NewGuiPart1
2898 -------
2899 local NewGuiPart14 = Instance.new("Frame")
2900 NewGuiPart14.BackgroundTransparency = 0.10000000149012
2901 NewGuiPart14.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
2902 NewGuiPart14.Name = "SettingsPanel"
2903 NewGuiPart14.Position = UDim2.new(1, 0, 0, 0)
2904 NewGuiPart14.Size = UDim2.new(0, 300, 1, 0)
2905 NewGuiPart14.Parent = NewGuiPart1
2906 -------
2907 local NewGuiPart15 = Instance.new("Frame")
2908 NewGuiPart15.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
2909 NewGuiPart15.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
2910 NewGuiPart15.Name = "Header"
2911 NewGuiPart15.Size = UDim2.new(1, 0, 0, 17)
2912 NewGuiPart15.Parent = NewGuiPart14
2913 -------
2914 local NewGuiPart16 = Instance.new("TextLabel")
2915 NewGuiPart16.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
2916 NewGuiPart16.BackgroundTransparency = 1
2917 NewGuiPart16.Position = UDim2.new(0, 4, 0, 0)
2918 NewGuiPart16.Size = UDim2.new(1, -4, 1, 0)
2919 NewGuiPart16.FontSize = Enum.FontSize.Size14
2920 NewGuiPart16.Text = "Settings"
2921 NewGuiPart16.TextColor3 = Color3.new(0, 0, 0)
2922 NewGuiPart16.TextXAlignment = Enum.TextXAlignment.Left
2923 NewGuiPart16.Parent = NewGuiPart15
2924 -------
2925 local NewGuiPart17 = Instance.new("Frame")
2926 NewGuiPart17.BackgroundTransparency = 1
2927 NewGuiPart17.Name = "ClickSelect"
2928 NewGuiPart17.Position = UDim2.new(0, 0, 0, 18)
2929 NewGuiPart17.Size = UDim2.new(1, 0, 0, 30)
2930 NewGuiPart17.Parent = NewGuiPart14
2931 -------
2932 local NewGuiPart18 = Instance.new("TextLabel")
2933 NewGuiPart18.BackgroundTransparency = 0.5
2934 NewGuiPart18.Name = "Name"
2935 NewGuiPart18.Size = UDim2.new(0.5, 0, 1, 0)
2936 NewGuiPart18.FontSize = Enum.FontSize.Size14
2937 NewGuiPart18.Text = "Click Part to Select"
2938 NewGuiPart18.Parent = NewGuiPart17
2939 -------
2940 local NewGuiPart19 = Instance.new("TextButton")
2941 NewGuiPart19.Active = true
2942 NewGuiPart19.BackgroundTransparency = 0.5
2943 NewGuiPart19.BorderColor3 = Color3.new(0, 0, 0)
2944 NewGuiPart19.Name = "Change"
2945 NewGuiPart19.Position = UDim2.new(0.5, 0, 0, 0)
2946 NewGuiPart19.Selectable = true
2947 NewGuiPart19.Size = UDim2.new(0.5, 0, 1, 0)
2948 NewGuiPart19.Style = Enum.ButtonStyle.Custom
2949 NewGuiPart19.FontSize = Enum.FontSize.Size18
2950 NewGuiPart19.Text = "OFF"
2951 NewGuiPart19.Parent = NewGuiPart17
2952 -------
2953 local NewGuiPart20 = Instance.new("Frame")
2954 NewGuiPart20.BackgroundTransparency = 1
2955 NewGuiPart20.Name = "ClearProperties"
2956 NewGuiPart20.Position = UDim2.new(0, 0, 0, 78)
2957 NewGuiPart20.Size = UDim2.new(1, 0, 0, 30)
2958 NewGuiPart20.Parent = NewGuiPart14
2959 -------
2960 local NewGuiPart21 = Instance.new("TextLabel")
2961 NewGuiPart21.BackgroundTransparency = 0.5
2962 NewGuiPart21.Name = "Name"
2963 NewGuiPart21.Size = UDim2.new(0.5, 0, 1, 0)
2964 NewGuiPart21.FontSize = Enum.FontSize.Size14
2965 NewGuiPart21.Text = "Clear Property on Focus"
2966 NewGuiPart21.Parent = NewGuiPart20
2967 -------
2968 local NewGuiPart22 = Instance.new("TextButton")
2969 NewGuiPart22.Active = true
2970 NewGuiPart22.BackgroundTransparency = 0.5
2971 NewGuiPart22.BorderColor3 = Color3.new(0, 0, 0)
2972 NewGuiPart22.Name = "Change"
2973 NewGuiPart22.Position = UDim2.new(0.5, 0, 0, 0)
2974 NewGuiPart22.Selectable = true
2975 NewGuiPart22.Size = UDim2.new(0.5, 0, 1, 0)
2976 NewGuiPart22.Style = Enum.ButtonStyle.Custom
2977 NewGuiPart22.FontSize = Enum.FontSize.Size18
2978 NewGuiPart22.Text = "OFF"
2979 NewGuiPart22.Parent = NewGuiPart20
2980 -------
2981 local NewGuiPart23 = Instance.new("Frame")
2982 NewGuiPart23.BackgroundTransparency = 1
2983 NewGuiPart23.Name = "SelectionBox"
2984 NewGuiPart23.Position = UDim2.new(0, 0, 0, 48)
2985 NewGuiPart23.Size = UDim2.new(1, 0, 0, 30)
2986 NewGuiPart23.Parent = NewGuiPart14
2987 -------
2988 local NewGuiPart24 = Instance.new("TextLabel")
2989 NewGuiPart24.BackgroundTransparency = 0.5
2990 NewGuiPart24.Name = "Name"
2991 NewGuiPart24.Size = UDim2.new(0.5, 0, 1, 0)
2992 NewGuiPart24.FontSize = Enum.FontSize.Size14
2993 NewGuiPart24.Text = "Selection Box"
2994 NewGuiPart24.Parent = NewGuiPart23
2995 -------
2996 local NewGuiPart25 = Instance.new("TextButton")
2997 NewGuiPart25.Active = true
2998 NewGuiPart25.BackgroundTransparency = 0.5
2999 NewGuiPart25.BorderColor3 = Color3.new(0, 0, 0)
3000 NewGuiPart25.Name = "Change"
3001 NewGuiPart25.Position = UDim2.new(0.5, 0, 0, 0)
3002 NewGuiPart25.Selectable = true
3003 NewGuiPart25.Size = UDim2.new(0.5, 0, 1, 0)
3004 NewGuiPart25.Style = Enum.ButtonStyle.Custom
3005 NewGuiPart25.FontSize = Enum.FontSize.Size18
3006 NewGuiPart25.Text = "OFF"
3007 NewGuiPart25.Parent = NewGuiPart23
3008 -------
3009 local NewGuiPart26 = Instance.new("Frame")
3010 NewGuiPart26.BackgroundTransparency = 1
3011 NewGuiPart26.Name = "SelectUngrouped"
3012 NewGuiPart26.Position = UDim2.new(0, 0, 0, 108)
3013 NewGuiPart26.Size = UDim2.new(1, 0, 0, 30)
3014 NewGuiPart26.Parent = NewGuiPart14
3015 -------
3016 local NewGuiPart27 = Instance.new("TextLabel")
3017 NewGuiPart27.BackgroundTransparency = 0.5
3018 NewGuiPart27.Name = "Name"
3019 NewGuiPart27.Size = UDim2.new(0.5, 0, 1, 0)
3020 NewGuiPart27.FontSize = Enum.FontSize.Size14
3021 NewGuiPart27.Text = "Select Ungrouped"
3022 NewGuiPart27.Parent = NewGuiPart26
3023 -------
3024 local NewGuiPart28 = Instance.new("TextButton")
3025 NewGuiPart28.Active = true
3026 NewGuiPart28.BackgroundTransparency = 0.5
3027 NewGuiPart28.BorderColor3 = Color3.new(0, 0, 0)
3028 NewGuiPart28.Name = "Change"
3029 NewGuiPart28.Position = UDim2.new(0.5, 0, 0, 0)
3030 NewGuiPart28.Selectable = true
3031 NewGuiPart28.Size = UDim2.new(0.5, 0, 1, 0)
3032 NewGuiPart28.Style = Enum.ButtonStyle.Custom
3033 NewGuiPart28.FontSize = Enum.FontSize.Size18
3034 NewGuiPart28.Text = "ON"
3035 NewGuiPart28.Parent = NewGuiPart26
3036 -------
3037 local NewGuiPart29 = Instance.new("Frame")
3038 NewGuiPart29.Active = true
3039 NewGuiPart29.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
3040 NewGuiPart29.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
3041 NewGuiPart29.Name = "SaveInstance"
3042 NewGuiPart29.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
3043 NewGuiPart29.Size = UDim2.new(0, 350, 0, 20)
3044 NewGuiPart29.Visible = false
3045 NewGuiPart29.ZIndex = 2
3046 NewGuiPart29.Draggable = true
3047 NewGuiPart29.Parent = NewGuiPart1
3048 -------
3049 local NewGuiPart30 = Instance.new("TextLabel")
3050 NewGuiPart30.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
3051 NewGuiPart30.BackgroundTransparency = 1
3052 NewGuiPart30.Name = "Title"
3053 NewGuiPart30.Size = UDim2.new(1, 0, 1, 0)
3054 NewGuiPart30.ZIndex = 2
3055 NewGuiPart30.FontSize = Enum.FontSize.Size14
3056 NewGuiPart30.Text = "Save Instance"
3057 NewGuiPart30.TextColor3 = Color3.new(0, 0, 0)
3058 NewGuiPart30.TextXAlignment = Enum.TextXAlignment.Left
3059 NewGuiPart30.Parent = NewGuiPart29
3060 -------
3061 local NewGuiPart31 = Instance.new("Frame")
3062 NewGuiPart31.BackgroundTransparency = 0.10000000149012
3063 NewGuiPart31.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3064 NewGuiPart31.Name = "MainWindow"
3065 NewGuiPart31.Size = UDim2.new(1, 0, 0, 200)
3066 NewGuiPart31.Parent = NewGuiPart29
3067 -------
3068 local NewGuiPart32 = Instance.new("TextButton")
3069 NewGuiPart32.Active = true
3070 NewGuiPart32.BackgroundTransparency = 0.5
3071 NewGuiPart32.BorderColor3 = Color3.new(0, 0, 0)
3072 NewGuiPart32.Name = "Save"
3073 NewGuiPart32.Position = UDim2.new(0.075000003, 0, 1, -40)
3074 NewGuiPart32.Selectable = true
3075 NewGuiPart32.Size = UDim2.new(0.400000006, 0, 0, 30)
3076 NewGuiPart32.Style = Enum.ButtonStyle.Custom
3077 NewGuiPart32.FontSize = Enum.FontSize.Size18
3078 NewGuiPart32.Text = "Save"
3079 NewGuiPart32.Parent = NewGuiPart31
3080 -------
3081 local NewGuiPart33 = Instance.new("TextLabel")
3082 NewGuiPart33.BackgroundTransparency = 1
3083 NewGuiPart33.Name = "Desc"
3084 NewGuiPart33.Position = UDim2.new(0, 0, 0, 20)
3085 NewGuiPart33.Size = UDim2.new(1, 0, 0, 40)
3086 NewGuiPart33.FontSize = Enum.FontSize.Size14
3087 NewGuiPart33.Text = "This will save an instance to your PC. Type in the name for your instance. (.rbxmx will be added automatically.)"
3088 NewGuiPart33.TextWrapped = true
3089 NewGuiPart33.Parent = NewGuiPart31
3090 -------
3091 local NewGuiPart34 = Instance.new("TextButton")
3092 NewGuiPart34.Active = true
3093 NewGuiPart34.BackgroundTransparency = 0.5
3094 NewGuiPart34.BorderColor3 = Color3.new(0, 0, 0)
3095 NewGuiPart34.Name = "Cancel"
3096 NewGuiPart34.Position = UDim2.new(0.524999976, 0, 1, -40)
3097 NewGuiPart34.Selectable = true
3098 NewGuiPart34.Size = UDim2.new(0.400000006, 0, 0, 30)
3099 NewGuiPart34.Style = Enum.ButtonStyle.Custom
3100 NewGuiPart34.FontSize = Enum.FontSize.Size18
3101 NewGuiPart34.Text = "Cancel"
3102 NewGuiPart34.Parent = NewGuiPart31
3103 -------
3104 local NewGuiPart35 = Instance.new("TextBox")
3105 NewGuiPart35.BackgroundTransparency = 0.20000000298023
3106 NewGuiPart35.Name = "FileName"
3107 NewGuiPart35.Position = UDim2.new(0.075000003, 0, 0.400000006, 0)
3108 NewGuiPart35.Size = UDim2.new(0.850000024, 0, 0, 30)
3109 NewGuiPart35.FontSize = Enum.FontSize.Size18
3110 NewGuiPart35.Text = ""
3111 NewGuiPart35.TextXAlignment = Enum.TextXAlignment.Left
3112 NewGuiPart35.Parent = NewGuiPart31
3113 -------
3114 local NewGuiPart36 = Instance.new("TextButton")
3115 NewGuiPart36.Active = true
3116 NewGuiPart36.BackgroundTransparency = 0.60000002384186
3117 NewGuiPart36.Name = "SaveObjects"
3118 NewGuiPart36.Position = UDim2.new(0.075000003, 0, 0.625, 0)
3119 NewGuiPart36.Selectable = true
3120 NewGuiPart36.Size = UDim2.new(0, 20, 0, 20)
3121 NewGuiPart36.Style = Enum.ButtonStyle.Custom
3122 NewGuiPart36.ZIndex = 2
3123 NewGuiPart36.FontSize = Enum.FontSize.Size18
3124 NewGuiPart36.Text = ""
3125 NewGuiPart36.TextColor3 = Color3.new(1, 1, 1)
3126 NewGuiPart36.Parent = NewGuiPart31
3127 -------
3128 local NewGuiPart37 = Instance.new("TextLabel")
3129 NewGuiPart37.BackgroundColor3 = Color3.new(0.380392, 0.380392, 0.380392)
3130 NewGuiPart37.BackgroundTransparency = 0.40000000596046
3131 NewGuiPart37.BorderSizePixel = 0
3132 NewGuiPart37.Name = "enabled"
3133 NewGuiPart37.Position = UDim2.new(0, 3, 0, 3)
3134 NewGuiPart37.Size = UDim2.new(0, 14, 0, 14)
3135 NewGuiPart37.FontSize = Enum.FontSize.Size14
3136 NewGuiPart37.Text = ""
3137 NewGuiPart37.Parent = NewGuiPart36
3138 -------
3139 local NewGuiPart38 = Instance.new("TextLabel")
3140 NewGuiPart38.BackgroundTransparency = 1
3141 NewGuiPart38.Name = "Desc2"
3142 NewGuiPart38.Position = UDim2.new(0.075000003, 30, 0.625, 0)
3143 NewGuiPart38.Size = UDim2.new(0.925000012, -30, 0, 20)
3144 NewGuiPart38.FontSize = Enum.FontSize.Size14
3145 NewGuiPart38.Text = "Save 'Object' type values"
3146 NewGuiPart38.TextXAlignment = Enum.TextXAlignment.Left
3147 NewGuiPart38.Parent = NewGuiPart31
3148 -------
3149 local NewGuiPart39 = Instance.new("Frame")
3150 NewGuiPart39.Active = true
3151 NewGuiPart39.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
3152 NewGuiPart39.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
3153 NewGuiPart39.Name = "Confirmation"
3154 NewGuiPart39.Position = UDim2.new(0.300000012, 0, 0.349999994, 0)
3155 NewGuiPart39.Size = UDim2.new(0, 350, 0, 20)
3156 NewGuiPart39.Visible = false
3157 NewGuiPart39.ZIndex = 3
3158 NewGuiPart39.Draggable = true
3159 NewGuiPart39.Parent = NewGuiPart1
3160 -------
3161 local NewGuiPart40 = Instance.new("TextLabel")
3162 NewGuiPart40.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
3163 NewGuiPart40.BackgroundTransparency = 1
3164 NewGuiPart40.Name = "Title"
3165 NewGuiPart40.Size = UDim2.new(1, 0, 1, 0)
3166 NewGuiPart40.ZIndex = 3
3167 NewGuiPart40.FontSize = Enum.FontSize.Size14
3168 NewGuiPart40.Text = "Confirm"
3169 NewGuiPart40.TextColor3 = Color3.new(0, 0, 0)
3170 NewGuiPart40.TextXAlignment = Enum.TextXAlignment.Left
3171 NewGuiPart40.Parent = NewGuiPart39
3172 -------
3173 local NewGuiPart41 = Instance.new("Frame")
3174 NewGuiPart41.BackgroundTransparency = 0.10000000149012
3175 NewGuiPart41.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3176 NewGuiPart41.Name = "MainWindow"
3177 NewGuiPart41.Size = UDim2.new(1, 0, 0, 150)
3178 NewGuiPart41.ZIndex = 2
3179 NewGuiPart41.Parent = NewGuiPart39
3180 -------
3181 local NewGuiPart42 = Instance.new("TextButton")
3182 NewGuiPart42.Active = true
3183 NewGuiPart42.BackgroundTransparency = 0.5
3184 NewGuiPart42.BorderColor3 = Color3.new(0, 0, 0)
3185 NewGuiPart42.Name = "Yes"
3186 NewGuiPart42.Position = UDim2.new(0.075000003, 0, 1, -40)
3187 NewGuiPart42.Selectable = true
3188 NewGuiPart42.Size = UDim2.new(0.400000006, 0, 0, 30)
3189 NewGuiPart42.Style = Enum.ButtonStyle.Custom
3190 NewGuiPart42.ZIndex = 2
3191 NewGuiPart42.FontSize = Enum.FontSize.Size18
3192 NewGuiPart42.Text = "Yes"
3193 NewGuiPart42.Parent = NewGuiPart41
3194 -------
3195 local NewGuiPart43 = Instance.new("TextLabel")
3196 NewGuiPart43.BackgroundTransparency = 1
3197 NewGuiPart43.Name = "Desc"
3198 NewGuiPart43.Position = UDim2.new(0, 0, 0, 20)
3199 NewGuiPart43.Size = UDim2.new(1, 0, 0, 40)
3200 NewGuiPart43.ZIndex = 2
3201 NewGuiPart43.FontSize = Enum.FontSize.Size14
3202 NewGuiPart43.Text = "The file, FILENAME, already exists. Overwrite?"
3203 NewGuiPart43.TextWrapped = true
3204 NewGuiPart43.Parent = NewGuiPart41
3205 -------
3206 local NewGuiPart44 = Instance.new("TextButton")
3207 NewGuiPart44.Active = true
3208 NewGuiPart44.BackgroundTransparency = 0.5
3209 NewGuiPart44.BorderColor3 = Color3.new(0, 0, 0)
3210 NewGuiPart44.Name = "No"
3211 NewGuiPart44.Position = UDim2.new(0.524999976, 0, 1, -40)
3212 NewGuiPart44.Selectable = true
3213 NewGuiPart44.Size = UDim2.new(0.400000006, 0, 0, 30)
3214 NewGuiPart44.Style = Enum.ButtonStyle.Custom
3215 NewGuiPart44.ZIndex = 2
3216 NewGuiPart44.FontSize = Enum.FontSize.Size18
3217 NewGuiPart44.Text = "No"
3218 NewGuiPart44.Parent = NewGuiPart41
3219 -------
3220 local NewGuiPart45 = Instance.new("Frame")
3221 NewGuiPart45.Active = true
3222 NewGuiPart45.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
3223 NewGuiPart45.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
3224 NewGuiPart45.Name = "Caution"
3225 NewGuiPart45.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
3226 NewGuiPart45.Size = UDim2.new(0, 350, 0, 20)
3227 NewGuiPart45.Visible = false
3228 NewGuiPart45.ZIndex = 5
3229 NewGuiPart45.Draggable = true
3230 NewGuiPart45.Parent = NewGuiPart1
3231 -------
3232 local NewGuiPart46 = Instance.new("TextLabel")
3233 NewGuiPart46.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
3234 NewGuiPart46.BackgroundTransparency = 1
3235 NewGuiPart46.Name = "Title"
3236 NewGuiPart46.Size = UDim2.new(1, 0, 1, 0)
3237 NewGuiPart46.ZIndex = 5
3238 NewGuiPart46.FontSize = Enum.FontSize.Size14
3239 NewGuiPart46.Text = "Caution"
3240 NewGuiPart46.TextColor3 = Color3.new(0, 0, 0)
3241 NewGuiPart46.TextXAlignment = Enum.TextXAlignment.Left
3242 NewGuiPart46.Parent = NewGuiPart45
3243 -------
3244 local NewGuiPart47 = Instance.new("Frame")
3245 NewGuiPart47.BackgroundTransparency = 0.10000000149012
3246 NewGuiPart47.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3247 NewGuiPart47.Name = "MainWindow"
3248 NewGuiPart47.Size = UDim2.new(1, 0, 0, 150)
3249 NewGuiPart47.ZIndex = 4
3250 NewGuiPart47.Parent = NewGuiPart45
3251 -------
3252 local NewGuiPart48 = Instance.new("TextLabel")
3253 NewGuiPart48.BackgroundTransparency = 1
3254 NewGuiPart48.Name = "Desc"
3255 NewGuiPart48.Position = UDim2.new(0, 0, 0, 20)
3256 NewGuiPart48.Size = UDim2.new(1, 0, 0, 42)
3257 NewGuiPart48.ZIndex = 4
3258 NewGuiPart48.FontSize = Enum.FontSize.Size14
3259 NewGuiPart48.Text = "The file, FILENAME, already exists. Overwrite?"
3260 NewGuiPart48.TextWrapped = true
3261 NewGuiPart48.Parent = NewGuiPart47
3262 -------
3263 local NewGuiPart49 = Instance.new("TextButton")
3264 NewGuiPart49.Active = true
3265 NewGuiPart49.BackgroundTransparency = 0.5
3266 NewGuiPart49.BorderColor3 = Color3.new(0, 0, 0)
3267 NewGuiPart49.Name = "Ok"
3268 NewGuiPart49.Position = UDim2.new(0.300000012, 0, 1, -40)
3269 NewGuiPart49.Selectable = true
3270 NewGuiPart49.Size = UDim2.new(0.400000006, 0, 0, 30)
3271 NewGuiPart49.Style = Enum.ButtonStyle.Custom
3272 NewGuiPart49.ZIndex = 4
3273 NewGuiPart49.FontSize = Enum.FontSize.Size18
3274 NewGuiPart49.Text = "Ok"
3275 NewGuiPart49.Parent = NewGuiPart47
3276 -------
3277 local NewGuiPart50 = Instance.new("Frame")
3278 NewGuiPart50.Active = true
3279 NewGuiPart50.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
3280 NewGuiPart50.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
3281 NewGuiPart50.Name = "CallRemote"
3282 NewGuiPart50.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
3283 NewGuiPart50.Size = UDim2.new(0, 350, 0, 20)
3284 NewGuiPart50.Visible = false
3285 NewGuiPart50.ZIndex = 2
3286 NewGuiPart50.Draggable = true
3287 NewGuiPart50.Parent = NewGuiPart1
3288 -------
3289 local NewGuiPart51 = Instance.new("TextLabel")
3290 NewGuiPart51.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
3291 NewGuiPart51.BackgroundTransparency = 1
3292 NewGuiPart51.Name = "Title"
3293 NewGuiPart51.Size = UDim2.new(1, 0, 1, 0)
3294 NewGuiPart51.ZIndex = 2
3295 NewGuiPart51.FontSize = Enum.FontSize.Size14
3296 NewGuiPart51.Text = "Call Remote"
3297 NewGuiPart51.TextColor3 = Color3.new(0, 0, 0)
3298 NewGuiPart51.TextXAlignment = Enum.TextXAlignment.Left
3299 NewGuiPart51.Parent = NewGuiPart50
3300 -------
3301 local NewGuiPart52 = Instance.new("Frame")
3302 NewGuiPart52.BackgroundTransparency = 0.10000000149012
3303 NewGuiPart52.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3304 NewGuiPart52.Name = "MainWindow"
3305 NewGuiPart52.Size = UDim2.new(1, 0, 0, 200)
3306 NewGuiPart52.Parent = NewGuiPart50
3307 -------
3308 local NewGuiPart53 = Instance.new("TextLabel")
3309 NewGuiPart53.BackgroundTransparency = 1
3310 NewGuiPart53.Name = "Desc"
3311 NewGuiPart53.Position = UDim2.new(0, 0, 0, 20)
3312 NewGuiPart53.Size = UDim2.new(1, 0, 0, 20)
3313 NewGuiPart53.FontSize = Enum.FontSize.Size14
3314 NewGuiPart53.Text = "Arguments"
3315 NewGuiPart53.TextWrapped = true
3316 NewGuiPart53.Parent = NewGuiPart52
3317 -------
3318 local NewGuiPart54 = Instance.new("ScrollingFrame")
3319 NewGuiPart54.BackgroundTransparency = 1
3320 NewGuiPart54.Name = "Arguments"
3321 NewGuiPart54.Position = UDim2.new(0, 0, 0, 40)
3322 NewGuiPart54.Selectable = true
3323 NewGuiPart54.Size = UDim2.new(1, 0, 0, 80)
3324 NewGuiPart54.BottomImage = "rbxasset://textures/blackBkg_square.png"
3325 NewGuiPart54.CanvasSize = UDim2.new(0, 0, 0, 0)
3326 NewGuiPart54.MidImage = "rbxasset://textures/blackBkg_square.png"
3327 NewGuiPart54.TopImage = "rbxasset://textures/blackBkg_square.png"
3328 NewGuiPart54.ClipsDescendants = true
3329 NewGuiPart54.Parent = NewGuiPart52
3330 -------
3331 local NewGuiPart55 = Instance.new("TextButton")
3332 NewGuiPart55.Active = true
3333 NewGuiPart55.BackgroundTransparency = 0.60000002384186
3334 NewGuiPart55.Name = "DisplayReturned"
3335 NewGuiPart55.Position = UDim2.new(0.075000003, 0, 0.625, 0)
3336 NewGuiPart55.Selectable = true
3337 NewGuiPart55.Size = UDim2.new(0, 20, 0, 20)
3338 NewGuiPart55.Style = Enum.ButtonStyle.Custom
3339 NewGuiPart55.ZIndex = 2
3340 NewGuiPart55.FontSize = Enum.FontSize.Size18
3341 NewGuiPart55.Text = ""
3342 NewGuiPart55.TextColor3 = Color3.new(1, 1, 1)
3343 NewGuiPart55.Parent = NewGuiPart52
3344 -------
3345 local NewGuiPart56 = Instance.new("TextLabel")
3346 NewGuiPart56.BackgroundColor3 = Color3.new(0.380392, 0.380392, 0.380392)
3347 NewGuiPart56.BackgroundTransparency = 0.40000000596046
3348 NewGuiPart56.BorderSizePixel = 0
3349 NewGuiPart56.Name = "enabled"
3350 NewGuiPart56.Position = UDim2.new(0, 3, 0, 3)
3351 NewGuiPart56.Size = UDim2.new(0, 14, 0, 14)
3352 NewGuiPart56.Visible = false
3353 NewGuiPart56.FontSize = Enum.FontSize.Size14
3354 NewGuiPart56.Text = ""
3355 NewGuiPart56.Parent = NewGuiPart55
3356 -------
3357 local NewGuiPart57 = Instance.new("TextLabel")
3358 NewGuiPart57.BackgroundTransparency = 1
3359 NewGuiPart57.Name = "Desc2"
3360 NewGuiPart57.Position = UDim2.new(0.075000003, 30, 0.625, 0)
3361 NewGuiPart57.Size = UDim2.new(0.925000012, -30, 0, 20)
3362 NewGuiPart57.FontSize = Enum.FontSize.Size14
3363 NewGuiPart57.Text = "Display values returned"
3364 NewGuiPart57.TextXAlignment = Enum.TextXAlignment.Left
3365 NewGuiPart57.Parent = NewGuiPart52
3366 -------
3367 local NewGuiPart58 = Instance.new("TextButton")
3368 NewGuiPart58.Active = true
3369 NewGuiPart58.BackgroundTransparency = 0.5
3370 NewGuiPart58.BorderColor3 = Color3.new(0, 0, 0)
3371 NewGuiPart58.Name = "Add"
3372 NewGuiPart58.Position = UDim2.new(0.800000012, 0, 0.625, 0)
3373 NewGuiPart58.Selectable = true
3374 NewGuiPart58.Size = UDim2.new(0, 20, 0, 20)
3375 NewGuiPart58.Style = Enum.ButtonStyle.Custom
3376 NewGuiPart58.Font = Enum.Font.SourceSansBold
3377 NewGuiPart58.FontSize = Enum.FontSize.Size24
3378 NewGuiPart58.Text = "+"
3379 NewGuiPart58.Parent = NewGuiPart52
3380 -------
3381 local NewGuiPart59 = Instance.new("TextButton")
3382 NewGuiPart59.Active = true
3383 NewGuiPart59.BackgroundTransparency = 0.5
3384 NewGuiPart59.BorderColor3 = Color3.new(0, 0, 0)
3385 NewGuiPart59.Name = "Subtract"
3386 NewGuiPart59.Position = UDim2.new(0.899999976, 0, 0.625, 0)
3387 NewGuiPart59.Selectable = true
3388 NewGuiPart59.Size = UDim2.new(0, 20, 0, 20)
3389 NewGuiPart59.Style = Enum.ButtonStyle.Custom
3390 NewGuiPart59.Font = Enum.Font.SourceSansBold
3391 NewGuiPart59.FontSize = Enum.FontSize.Size24
3392 NewGuiPart59.Text = "-"
3393 NewGuiPart59.Parent = NewGuiPart52
3394 -------
3395 local NewGuiPart60 = Instance.new("Frame")
3396 NewGuiPart60.BackgroundTransparency = 0.5
3397 NewGuiPart60.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3398 NewGuiPart60.Name = "ArgumentTemplate"
3399 NewGuiPart60.Size = UDim2.new(1, 0, 0, 20)
3400 NewGuiPart60.Visible = false
3401 NewGuiPart60.Parent = NewGuiPart52
3402 -------
3403 local NewGuiPart61 = Instance.new("TextButton")
3404 NewGuiPart61.Active = true
3405 NewGuiPart61.BackgroundTransparency = 0.89999997615814
3406 NewGuiPart61.BorderColor3 = Color3.new(0, 0, 0)
3407 NewGuiPart61.Name = "Type"
3408 NewGuiPart61.Selectable = true
3409 NewGuiPart61.Size = UDim2.new(0.400000006, 0, 0, 20)
3410 NewGuiPart61.Style = Enum.ButtonStyle.Custom
3411 NewGuiPart61.FontSize = Enum.FontSize.Size18
3412 NewGuiPart61.Text = "Script"
3413 NewGuiPart61.Parent = NewGuiPart60
3414 -------
3415 local NewGuiPart62 = Instance.new("TextBox")
3416 NewGuiPart62.BackgroundTransparency = 0.89999997615814
3417 NewGuiPart62.Name = "Value"
3418 NewGuiPart62.Position = UDim2.new(0.400000006, 0, 0, 0)
3419 NewGuiPart62.Size = UDim2.new(0.600000024, -12, 0, 20)
3420 NewGuiPart62.FontSize = Enum.FontSize.Size14
3421 NewGuiPart62.Text = ""
3422 NewGuiPart62.TextXAlignment = Enum.TextXAlignment.Left
3423 NewGuiPart62.Parent = NewGuiPart60
3424 -------
3425 local NewGuiPart63 = Instance.new("TextButton")
3426 NewGuiPart63.Active = true
3427 NewGuiPart63.BackgroundTransparency = 0.5
3428 NewGuiPart63.BorderColor3 = Color3.new(0, 0, 0)
3429 NewGuiPart63.Name = "Cancel"
3430 NewGuiPart63.Position = UDim2.new(0.524999976, 0, 1, -40)
3431 NewGuiPart63.Selectable = true
3432 NewGuiPart63.Size = UDim2.new(0.400000006, 0, 0, 30)
3433 NewGuiPart63.Style = Enum.ButtonStyle.Custom
3434 NewGuiPart63.FontSize = Enum.FontSize.Size18
3435 NewGuiPart63.Text = "Cancel"
3436 NewGuiPart63.Parent = NewGuiPart52
3437 -------
3438 local NewGuiPart64 = Instance.new("TextButton")
3439 NewGuiPart64.Active = true
3440 NewGuiPart64.BackgroundTransparency = 0.5
3441 NewGuiPart64.BorderColor3 = Color3.new(0, 0, 0)
3442 NewGuiPart64.Name = "Ok"
3443 NewGuiPart64.Position = UDim2.new(0.075000003, 0, 1, -40)
3444 NewGuiPart64.Selectable = true
3445 NewGuiPart64.Size = UDim2.new(0.400000006, 0, 0, 30)
3446 NewGuiPart64.Style = Enum.ButtonStyle.Custom
3447 NewGuiPart64.FontSize = Enum.FontSize.Size18
3448 NewGuiPart64.Text = "Call"
3449 NewGuiPart64.Parent = NewGuiPart52
3450 -------
3451 local NewGuiPart65 = Instance.new("Frame")
3452 NewGuiPart65.Active = true
3453 NewGuiPart65.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
3454 NewGuiPart65.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
3455 NewGuiPart65.Name = "TableCaution"
3456 NewGuiPart65.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
3457 NewGuiPart65.Size = UDim2.new(0, 350, 0, 20)
3458 NewGuiPart65.Visible = false
3459 NewGuiPart65.ZIndex = 2
3460 NewGuiPart65.Draggable = true
3461 NewGuiPart65.Parent = NewGuiPart1
3462 -------
3463 local NewGuiPart66 = Instance.new("Frame")
3464 NewGuiPart66.BackgroundTransparency = 0.10000000149012
3465 NewGuiPart66.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3466 NewGuiPart66.Name = "MainWindow"
3467 NewGuiPart66.Size = UDim2.new(1, 0, 0, 150)
3468 NewGuiPart66.Parent = NewGuiPart65
3469 -------
3470 local NewGuiPart67 = Instance.new("TextButton")
3471 NewGuiPart67.Active = true
3472 NewGuiPart67.BackgroundTransparency = 0.5
3473 NewGuiPart67.BorderColor3 = Color3.new(0, 0, 0)
3474 NewGuiPart67.Name = "Ok"
3475 NewGuiPart67.Position = UDim2.new(0.300000012, 0, 1, -40)
3476 NewGuiPart67.Selectable = true
3477 NewGuiPart67.Size = UDim2.new(0.400000006, 0, 0, 30)
3478 NewGuiPart67.Style = Enum.ButtonStyle.Custom
3479 NewGuiPart67.FontSize = Enum.FontSize.Size18
3480 NewGuiPart67.Text = "Ok"
3481 NewGuiPart67.Parent = NewGuiPart66
3482 -------
3483 local NewGuiPart68 = Instance.new("ScrollingFrame")
3484 NewGuiPart68.BackgroundTransparency = 1
3485 NewGuiPart68.Name = "TableResults"
3486 NewGuiPart68.Position = UDim2.new(0, 0, 0, 20)
3487 NewGuiPart68.Selectable = true
3488 NewGuiPart68.Size = UDim2.new(1, 0, 0, 80)
3489 NewGuiPart68.BottomImage = "rbxasset://textures/blackBkg_square.png"
3490 NewGuiPart68.CanvasSize = UDim2.new(0, 0, 0, 0)
3491 NewGuiPart68.MidImage = "rbxasset://textures/blackBkg_square.png"
3492 NewGuiPart68.TopImage = "rbxasset://textures/blackBkg_square.png"
3493 NewGuiPart68.ClipsDescendants = true
3494 NewGuiPart68.Parent = NewGuiPart66
3495 -------
3496 local NewGuiPart69 = Instance.new("Frame")
3497 NewGuiPart69.BackgroundTransparency = 0.5
3498 NewGuiPart69.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
3499 NewGuiPart69.Name = "TableTemplate"
3500 NewGuiPart69.Size = UDim2.new(1, 0, 0, 20)
3501 NewGuiPart69.Visible = false
3502 NewGuiPart69.Parent = NewGuiPart66
3503 -------
3504 local NewGuiPart70 = Instance.new("TextLabel")
3505 NewGuiPart70.BackgroundTransparency = 0.89999997615814
3506 NewGuiPart70.Name = "Type"
3507 NewGuiPart70.Size = UDim2.new(0.400000006, 0, 0, 20)
3508 NewGuiPart70.FontSize = Enum.FontSize.Size18
3509 NewGuiPart70.Text = "Script"
3510 NewGuiPart70.Parent = NewGuiPart69
3511 -------
3512 local NewGuiPart71 = Instance.new("TextLabel")
3513 NewGuiPart71.BackgroundTransparency = 0.89999997615814
3514 NewGuiPart71.Name = "Value"
3515 NewGuiPart71.Position = UDim2.new(0.400000006, 0, 0, 0)
3516 NewGuiPart71.Size = UDim2.new(0.600000024, -12, 0, 20)
3517 NewGuiPart71.FontSize = Enum.FontSize.Size14
3518 NewGuiPart71.Text = "Script"
3519 NewGuiPart71.Parent = NewGuiPart69
3520 -------
3521 local NewGuiPart72 = Instance.new("TextLabel")
3522 NewGuiPart72.BackgroundColor3 = Color3.new(0.639216, 0.635294, 0.647059)
3523 NewGuiPart72.BackgroundTransparency = 1
3524 NewGuiPart72.Name = "Title"
3525 NewGuiPart72.Size = UDim2.new(1, 0, 1, 0)
3526 NewGuiPart72.ZIndex = 2
3527 NewGuiPart72.FontSize = Enum.FontSize.Size14
3528 NewGuiPart72.Text = "Caution"
3529 NewGuiPart72.TextColor3 = Color3.new(0, 0, 0)
3530 NewGuiPart72.TextXAlignment = Enum.TextXAlignment.Left
3531 NewGuiPart72.Parent = NewGuiPart65
3532
3533 return NewGuiPart1
3534end
3535
3536local D_E_X = CreateGui()
3537
3538local what = Instance.new("BindableFunction",D_E_X.ExplorerPanel)
3539what.Name = "GetOption"
3540local what = Instance.new("BindableFunction",D_E_X.ExplorerPanel)
3541what.Name = "SetOption"
3542local what = Instance.new("BindableFunction",D_E_X.ExplorerPanel)
3543what.Name = "GetSelection"
3544local what = Instance.new("BindableFunction",D_E_X.ExplorerPanel)
3545what.Name = "SetSelection"
3546local what = Instance.new("BindableEvent",D_E_X.ExplorerPanel)
3547what.Name = "SelectionChanged"
3548
3549local what = Instance.new("BindableFunction",D_E_X.PropertiesFrame)
3550what.Name = "GetApi"
3551local what = Instance.new("BindableFunction",D_E_X.PropertiesFrame)
3552what.Name = "GetAwaiting"
3553local what = Instance.new("BindableEvent",D_E_X.PropertiesFrame)
3554what.Name = "SetAwaiting"
3555
3556local what = Instance.new("BindableFunction",D_E_X.SettingsPanel)
3557what.Name = "GetSetting"
3558
3559D_E_X.Parent = game.Players.LocalPlayer.PlayerGui
3560
3561spawn(function()
3562 local Gui = D_E_X
3563
3564local SideMenu = Gui:WaitForChild("SideMenu")
3565local OpenToggleButton = Gui:WaitForChild("Toggle")
3566local CloseToggleButton = SideMenu:WaitForChild("Toggle")
3567local ExplorerButton = SideMenu:WaitForChild("Explorer")
3568local SettingsButton = SideMenu:WaitForChild("Settings")
3569
3570local SelectionBox = Instance.new("SelectionBox")
3571SelectionBox.Parent = Gui
3572
3573local ExplorerPanel = Gui:WaitForChild("ExplorerPanel")
3574local PropertiesFrame = Gui:WaitForChild("PropertiesFrame")
3575local SettingsPanel = Gui:WaitForChild("SettingsPanel")
3576
3577local SettingsListener = SettingsPanel:WaitForChild("GetSetting")
3578
3579local ClickSelectOption = SettingsPanel:WaitForChild("ClickSelect"):WaitForChild("Change")
3580local SelectionBoxOption = SettingsPanel:WaitForChild("SelectionBox"):WaitForChild("Change")
3581local ClearPropsOption = SettingsPanel:WaitForChild("ClearProperties"):WaitForChild("Change")
3582local SelectUngroupedOption = SettingsPanel:WaitForChild("SelectUngrouped"):WaitForChild("Change")
3583
3584local SelectionChanged = ExplorerPanel:WaitForChild("SelectionChanged")
3585local GetSelection = ExplorerPanel:WaitForChild("GetSelection")
3586local SetSelection = ExplorerPanel:WaitForChild("SetSelection")
3587
3588local Player = game:GetService("Players").LocalPlayer
3589local Mouse = Player:GetMouse()
3590
3591local CurrentWindow = "Explorer"
3592
3593local Settings = {
3594 ClickSelect = false,
3595 SelBox = false,
3596 ClearProps = false,
3597 SelectUngrouped = true
3598}
3599
3600function ReturnSetting(set)
3601 if set == "ClearProps" then
3602 return Settings.ClearProps
3603 elseif set == "SelectUngrouped" then
3604 return Settings.SelectUngrouped
3605 end
3606end
3607
3608OpenToggleButton.MouseButton1Up:connect(function()
3609 SideMenu:TweenPosition(UDim2.new(1, -330, 0, 0), "Out", "Quad", 0.5, true)
3610
3611 if CurrentWindow == "Explorer" then
3612 ExplorerPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
3613 PropertiesFrame:TweenPosition(UDim2.new(1, -300, 0.5, 21), "Out", "Quad", 0.5, true)
3614 else
3615 SettingsPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
3616 end
3617
3618 OpenToggleButton:TweenPosition(UDim2.new(1,0,0,0), "Out", "Quad", 0.5, true)
3619end)
3620
3621CloseToggleButton.MouseButton1Up:connect(function()
3622 SideMenu:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)
3623
3624 ExplorerPanel:TweenPosition(UDim2.new(1, 30, 0, 0), "Out", "Quad", 0.5, true)
3625 PropertiesFrame:TweenPosition(UDim2.new(1, 30, 0.5, 21), "Out", "Quad", 0.5, true)
3626 SettingsPanel:TweenPosition(UDim2.new(1, 30, 0, 0), "Out", "Quad", 0.5, true)
3627
3628 OpenToggleButton:TweenPosition(UDim2.new(1,-30,0,0), "Out", "Quad", 0.5, true)
3629end)
3630
3631ExplorerButton.MouseButton1Up:connect(function()
3632 if CurrentWindow ~= "Explorer" then
3633 CurrentWindow = "Explorer"
3634
3635 ExplorerPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
3636 PropertiesFrame:TweenPosition(UDim2.new(1, -300, 0.5, 21), "Out", "Quad", 0.5, true)
3637 SettingsPanel:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)
3638 end
3639end)
3640
3641SettingsButton.MouseButton1Up:connect(function()
3642 if CurrentWindow ~= "Settings" then
3643 CurrentWindow = "Settings"
3644
3645 ExplorerPanel:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)
3646 PropertiesFrame:TweenPosition(UDim2.new(1, 0, 0.5, 21), "Out", "Quad", 0.5, true)
3647 SettingsPanel:TweenPosition(UDim2.new(1, -300, 0, 0), "Out", "Quad", 0.5, true)
3648 end
3649end)
3650
3651ClickSelectOption.MouseButton1Up:connect(function()
3652 if Settings.ClickSelect then
3653 Settings.ClickSelect = false
3654 ClickSelectOption.Text = "OFF"
3655 else
3656 Settings.ClickSelect = true
3657 ClickSelectOption.Text = "ON"
3658 end
3659end)
3660
3661SelectionBoxOption.MouseButton1Up:connect(function()
3662 if Settings.SelBox then
3663 Settings.SelBox = false
3664 SelectionBox.Adornee = nil
3665 SelectionBoxOption.Text = "OFF"
3666 else
3667 Settings.SelBox = true
3668 SelectionBoxOption.Text = "ON"
3669 end
3670end)
3671
3672ClearPropsOption.MouseButton1Up:connect(function()
3673 if Settings.ClearProps then
3674 Settings.ClearProps = false
3675 ClearPropsOption.Text = "OFF"
3676 else
3677 Settings.ClearProps = true
3678 ClearPropsOption.Text = "ON"
3679 end
3680end)
3681
3682SelectUngroupedOption.MouseButton1Up:connect(function()
3683 if Settings.SelectUngrouped then
3684 Settings.SelectUngrouped = false
3685 SelectUngroupedOption.Text = "OFF"
3686 else
3687 Settings.SelectUngrouped = true
3688 SelectUngroupedOption.Text = "ON"
3689 end
3690end)
3691
3692local function getSelection()
3693 local t = GetSelection:Invoke()
3694 if t and #t > 0 then
3695 return t[1]
3696 else
3697 return nil
3698 end
3699end
3700
3701Mouse.Button1Down:connect(function()
3702 if CurrentWindow == "Explorer" and Settings.ClickSelect then
3703 local target = Mouse.Target
3704 if target then
3705 SetSelection:Invoke({target})
3706 end
3707 end
3708end)
3709
3710SelectionChanged.Event:connect(function()
3711 if Settings.SelBox then
3712 local success,err = pcall(function()
3713 local selection = getSelection()
3714 SelectionBox.Adornee = selection
3715 end)
3716 if err then
3717 SelectionBox.Adornee = nil
3718 end
3719 end
3720end)
3721
3722SettingsListener.OnInvoke = ReturnSetting
3723end)
3724
3725spawn(function()
3726 -- initial states
3727local Option = {
3728 -- can modify object parents in the hierarchy
3729 Modifiable = false;
3730 -- can select objects
3731 Selectable = true;
3732}
3733
3734-- MERELY
3735
3736Option.Modifiable = true
3737
3738-- END MERELY
3739
3740-- general size of GUI objects, in pixels
3741local GUI_SIZE = 16
3742-- padding between items within each entry
3743local ENTRY_PADDING = 1
3744-- padding between each entry
3745local ENTRY_MARGIN = 1
3746
3747local Input = game:GetService("UserInputService")
3748local HoldingCtrl = false
3749local HoldingShift = false
3750
3751--[[
3752
3753# Explorer Panel
3754
3755A GUI panel that displays the game hierarchy.
3756
3757
3758## Selection Bindables
3759
3760- `Function GetSelection ( )`
3761
3762 Returns an array of objects representing the objects currently
3763 selected in the panel.
3764
3765- `Function SetSelection ( Objects selection )`
3766
3767 Sets the objects that are selected in the panel. `selection` is an array
3768 of objects.
3769
3770- `Event SelectionChanged ( )`
3771
3772 Fired after the selection changes.
3773
3774
3775## Option Bindables
3776
3777- `Function GetOption ( string optionName )`
3778
3779 If `optionName` is given, returns the value of that option. Otherwise,
3780 returns a table of options and their current values.
3781
3782- `Function SetOption ( string optionName, bool value )`
3783
3784 Sets `optionName` to `value`.
3785
3786 Options:
3787
3788 - Modifiable
3789
3790 Whether objects can be modified by the panel.
3791
3792 Note that modifying objects depends on being able to select them. If
3793 Selectable is false, then Actions will not be available. Reparenting
3794 is still possible, but only for the dragged object.
3795
3796 - Selectable
3797
3798 Whether objects can be selected.
3799
3800 If Modifiable is false, then left-clicking will perform a drag
3801 selection.
3802
3803## Updates
3804
3805- 2013-09-18
3806 - Fixed explorer icons to match studio explorer.
3807
3808- 2013-09-14
3809 - Added GetOption and SetOption bindables.
3810 - Option: Modifiable; sets whether objects can be modified by the panel.
3811 - Option: Selectable; sets whether objects can be selected.
3812 - Slight modification to left-click selection behavior.
3813 - Improved layout and scaling.
3814
3815- 2013-09-13
3816 - Added drag to reparent objects.
3817 - Left-click to select/deselect object.
3818 - Left-click and drag unselected object to reparent single object.
3819 - Left-click and drag selected object to move reparent entire selection.
3820 - Right-click while dragging to cancel.
3821
3822- 2013-09-11
3823 - Added explorer panel header with actions.
3824 - Added Cut action.
3825 - Added Copy action.
3826 - Added Paste action.
3827 - Added Delete action.
3828 - Added drag selection.
3829 - Left-click: Add to selection on drag.
3830 - Right-click: Add to or remove from selection on drag.
3831 - Ensured SelectionChanged fires only when the selection actually changes.
3832 - Added documentation and change log.
3833 - Fixed thread issue.
3834
3835- 2013-09-09
3836 - Added basic multi-selection.
3837 - Left-click to set selection.
3838 - Right-click to add to or remove from selection.
3839 - Removed "Selection" ObjectValue.
3840 - Added GetSelection BindableFunction.
3841 - Added SetSelection BindableFunction.
3842 - Added SelectionChanged BindableEvent.
3843 - Changed font to SourceSans.
3844
3845- 2013-08-31
3846 - Improved GUI sizing based off of `GUI_SIZE` constant.
3847 - Automatic font size detection.
3848
3849- 2013-08-27
3850 - Initial explorer panel.
3851
3852
3853## Todo
3854
3855- Sorting
3856 - by ExplorerOrder
3857 - by children
3858 - by name
3859- Drag objects to reparent
3860
3861]]
3862
3863local ENTRY_SIZE = GUI_SIZE + ENTRY_PADDING*2
3864local ENTRY_BOUND = ENTRY_SIZE + ENTRY_MARGIN
3865local HEADER_SIZE = ENTRY_SIZE*2
3866
3867local FONT = 'SourceSans'
3868local FONT_SIZE do
3869 local size = {8,9,10,11,12,14,18,24,36,48}
3870 local s
3871 local n = math.huge
3872 for i = 1,#size do
3873 if size[i] <= GUI_SIZE then
3874 FONT_SIZE = i - 1
3875 end
3876 end
3877end
3878
3879local GuiColor = {
3880 Background = Color3.new(233/255, 233/255, 233/255);
3881 Border = Color3.new(149/255, 149/255, 149/255);
3882 Selected = Color3.new( 96/255, 140/255, 211/255);
3883 BorderSelected = Color3.new( 86/255, 125/255, 188/255);
3884 Text = Color3.new( 0/255, 0/255, 0/255);
3885 TextDisabled = Color3.new(128/255, 128/255, 128/255);
3886 TextSelected = Color3.new(255/255, 255/255, 255/255);
3887 Button = Color3.new(221/255, 221/255, 221/255);
3888 ButtonBorder = Color3.new(149/255, 149/255, 149/255);
3889 ButtonSelected = Color3.new(255/255, 0/255, 0/255);
3890 Field = Color3.new(255/255, 255/255, 255/255);
3891 FieldBorder = Color3.new(191/255, 191/255, 191/255);
3892 TitleBackground = Color3.new(178/255, 178/255, 178/255);
3893}
3894
3895----------------------------------------------------------------
3896----------------------------------------------------------------
3897----------------------------------------------------------------
3898----------------------------------------------------------------
3899---- Icon map constants
3900
3901local MAP_ID = 418720155
3902
3903-- Indices based on implementation of Icon function.
3904local ACTION_CUT = 160
3905local ACTION_COPY = 161
3906local ACTION_PASTE = 162
3907local ACTION_DELETE = 163
3908local ACTION_SORT = 164
3909local ACTION_CUT_OVER = 174
3910local ACTION_COPY_OVER = 175
3911local ACTION_PASTE_OVER = 176
3912local ACTION_DELETE_OVER = 177
3913local ACTION_SORT_OVER = 178
3914
3915local NODE_COLLAPSED = 165
3916local NODE_EXPANDED = 166
3917local NODE_COLLAPSED_OVER = 179
3918local NODE_EXPANDED_OVER = 180
3919
3920local ExplorerIndex = {
3921 ["Accessory"] = 32;
3922 ["Accoutrement"] = 32;
3923 ["AdService"] = 73;
3924 ["Animation"] = 60;
3925 ["AnimationController"] = 60;
3926 ["AnimationTrack"] = 60;
3927 ["Animator"] = 60;
3928 ["ArcHandles"] = 56;
3929 ["AssetService"] = 72;
3930 ["Attachment"] = 34;
3931 ["Backpack"] = 20;
3932 ["BadgeService"] = 75;
3933 ["BallSocketConstraint"] = 89;
3934 ["BillboardGui"] = 64;
3935 ["BinaryStringValue"] = 4;
3936 ["BindableEvent"] = 67;
3937 ["BindableFunction"] = 66;
3938 ["BlockMesh"] = 8;
3939 ["BloomEffect"] = 90;
3940 ["BlurEffect"] = 90;
3941 ["BodyAngularVelocity"] = 14;
3942 ["BodyForce"] = 14;
3943 ["BodyGyro"] = 14;
3944 ["BodyPosition"] = 14;
3945 ["BodyThrust"] = 14;
3946 ["BodyVelocity"] = 14;
3947 ["BoolValue"] = 4;
3948 ["BoxHandleAdornment"] = 54;
3949 ["BrickColorValue"] = 4;
3950 ["Camera"] = 5;
3951 ["CFrameValue"] = 4;
3952 ["CharacterMesh"] = 60;
3953 ["Chat"] = 33;
3954 ["ClickDetector"] = 41;
3955 ["CollectionService"] = 30;
3956 ["Color3Value"] = 4;
3957 ["ColorCorrectionEffect"] = 90;
3958 ["ConeHandleAdornment"] = 54;
3959 ["Configuration"] = 58;
3960 ["ContentProvider"] = 72;
3961 ["ContextActionService"] = 41;
3962 ["CoreGui"] = 46;
3963 ["CoreScript"] = 18;
3964 ["CornerWedgePart"] = 1;
3965 ["CustomEvent"] = 4;
3966 ["CustomEventReceiver"] = 4;
3967 ["CylinderHandleAdornment"] = 54;
3968 ["CylinderMesh"] = 8;
3969 ["CylindricalConstraint"] = 89;
3970 ["Debris"] = 30;
3971 ["Decal"] = 7;
3972 ["Dialog"] = 62;
3973 ["DialogChoice"] = 63;
3974 ["DoubleConstrainedValue"] = 4;
3975 ["Explosion"] = 36;
3976 ["FileMesh"] = 8;
3977 ["Fire"] = 61;
3978 ["Flag"] = 38;
3979 ["FlagStand"] = 39;
3980 ["FloorWire"] = 4;
3981 ["Folder"] = 70;
3982 ["ForceField"] = 37;
3983 ["Frame"] = 48;
3984 ["GamePassService"] = 19;
3985 ["Glue"] = 34;
3986 ["GuiButton"] = 52;
3987 ["GuiMain"] = 47;
3988 ["GuiService"] = 47;
3989 ["Handles"] = 53;
3990 ["HapticService"] = 84;
3991 ["Hat"] = 45;
3992 ["HingeConstraint"] = 89;
3993 ["Hint"] = 33;
3994 ["HopperBin"] = 22;
3995 ["HttpService"] = 76;
3996 ["Humanoid"] = 9;
3997 ["ImageButton"] = 52;
3998 ["ImageLabel"] = 49;
3999 ["InsertService"] = 72;
4000 ["IntConstrainedValue"] = 4;
4001 ["IntValue"] = 4;
4002 ["JointInstance"] = 34;
4003 ["JointsService"] = 34;
4004 ["Keyframe"] = 60;
4005 ["KeyframeSequence"] = 60;
4006 ["KeyframeSequenceProvider"] = 60;
4007 ["Lighting"] = 13;
4008 ["LineHandleAdornment"] = 54;
4009 ["LocalScript"] = 18;
4010 ["LogService"] = 87;
4011 ["MarketplaceService"] = 46;
4012 ["Message"] = 33;
4013 ["Model"] = 2;
4014 ["ModuleScript"] = 71;
4015 ["Motor"] = 34;
4016 ["Motor6D"] = 34;
4017 ["MoveToConstraint"] = 89;
4018 ["NegateOperation"] = 78;
4019 ["NetworkClient"] = 16;
4020 ["NetworkReplicator"] = 29;
4021 ["NetworkServer"] = 15;
4022 ["NumberValue"] = 4;
4023 ["ObjectValue"] = 4;
4024 ["Pants"] = 44;
4025 ["ParallelRampPart"] = 1;
4026 ["Part"] = 1;
4027 ["ParticleEmitter"] = 69;
4028 ["PartPairLasso"] = 57;
4029 ["PathfindingService"] = 37;
4030 ["Platform"] = 35;
4031 ["Player"] = 12;
4032 ["PlayerGui"] = 46;
4033 ["Players"] = 21;
4034 ["PlayerScripts"] = 82;
4035 ["PointLight"] = 13;
4036 ["PointsService"] = 83;
4037 ["Pose"] = 60;
4038 ["PrismaticConstraint"] = 89;
4039 ["PrismPart"] = 1;
4040 ["PyramidPart"] = 1;
4041 ["RayValue"] = 4;
4042 ["ReflectionMetadata"] = 86;
4043 ["ReflectionMetadataCallbacks"] = 86;
4044 ["ReflectionMetadataClass"] = 86;
4045 ["ReflectionMetadataClasses"] = 86;
4046 ["ReflectionMetadataEnum"] = 86;
4047 ["ReflectionMetadataEnumItem"] = 86;
4048 ["ReflectionMetadataEnums"] = 86;
4049 ["ReflectionMetadataEvents"] = 86;
4050 ["ReflectionMetadataFunctions"] = 86;
4051 ["ReflectionMetadataMember"] = 86;
4052 ["ReflectionMetadataProperties"] = 86;
4053 ["ReflectionMetadataYieldFunctions"] = 86;
4054 ["RemoteEvent"] = 80;
4055 ["RemoteFunction"] = 79;
4056 ["ReplicatedFirst"] = 72;
4057 ["ReplicatedStorage"] = 72;
4058 ["RightAngleRampPart"] = 1;
4059 ["RocketPropulsion"] = 14;
4060 ["RodConstraint"] = 89;
4061 ["RopeConstraint"] = 89;
4062 ["Rotate"] = 34;
4063 ["RotateP"] = 34;
4064 ["RotateV"] = 34;
4065 ["RunService"] = 66;
4066 ["ScreenGui"] = 47;
4067 ["Script"] = 6;
4068 ["ScrollingFrame"] = 48;
4069 ["Seat"] = 35;
4070 ["Selection"] = 55;
4071 ["SelectionBox"] = 54;
4072 ["SelectionPartLasso"] = 57;
4073 ["SelectionPointLasso"] = 57;
4074 ["SelectionSphere"] = 54;
4075 ["ServerScriptService"] = 0;
4076 ["ServerStorage"] = 74;
4077 ["Shirt"] = 43;
4078 ["ShirtGraphic"] = 40;
4079 ["SkateboardPlatform"] = 35;
4080 ["Sky"] = 28;
4081 ["SlidingBallConstraint"] = 89;
4082 ["Smoke"] = 59;
4083 ["Snap"] = 34;
4084 ["Sound"] = 11;
4085 ["SoundService"] = 31;
4086 ["Sparkles"] = 42;
4087 ["SpawnLocation"] = 25;
4088 ["SpecialMesh"] = 8;
4089 ["SphereHandleAdornment"] = 54;
4090 ["SpotLight"] = 13;
4091 ["SpringConstraint"] = 89;
4092 ["StarterCharacterScripts"] = 82;
4093 ["StarterGear"] = 20;
4094 ["StarterGui"] = 46;
4095 ["StarterPack"] = 20;
4096 ["StarterPlayer"] = 88;
4097 ["StarterPlayerScripts"] = 82;
4098 ["Status"] = 2;
4099 ["StringValue"] = 4;
4100 ["SunRaysEffect"] = 90;
4101 ["SurfaceGui"] = 64;
4102 ["SurfaceLight"] = 13;
4103 ["SurfaceSelection"] = 55;
4104 ["Team"] = 24;
4105 ["Teams"] = 23;
4106 ["TeleportService"] = 81;
4107 ["Terrain"] = 65;
4108 ["TerrainRegion"] = 65;
4109 ["TestService"] = 68;
4110 ["TextBox"] = 51;
4111 ["TextButton"] = 51;
4112 ["TextLabel"] = 50;
4113 ["Texture"] = 10;
4114 ["TextureTrail"] = 4;
4115 ["Tool"] = 17;
4116 ["TouchTransmitter"] = 37;
4117 ["TrussPart"] = 1;
4118 ["UnionOperation"] = 77;
4119 ["UserInputService"] = 84;
4120 ["Vector3Value"] = 4;
4121 ["VehicleSeat"] = 35;
4122 ["VelocityMotor"] = 34;
4123 ["WedgePart"] = 1;
4124 ["Weld"] = 34;
4125 ["Workspace"] = 19;
4126}
4127
4128----------------------------------------------------------------
4129----------------------------------------------------------------
4130----------------------------------------------------------------
4131----------------------------------------------------------------
4132----------------------------------------------------------------
4133
4134function Create(ty,data)
4135 local obj
4136 if type(ty) == 'string' then
4137 obj = Instance.new(ty)
4138 else
4139 obj = ty
4140 end
4141 for k, v in pairs(data) do
4142 if type(k) == 'number' then
4143 v.Parent = obj
4144 else
4145 obj[k] = v
4146 end
4147 end
4148 return obj
4149end
4150
4151local barActive = false
4152local activeOptions = {}
4153
4154function createDDown(dBut, callback,...)
4155 if barActive then
4156 for i,v in pairs(activeOptions) do
4157 v:Destroy()
4158 end
4159 activeOptions = {}
4160 barActive = false
4161 return
4162 else
4163 barActive = true
4164 end
4165 local slots = {...}
4166 local base = dBut
4167 for i,v in pairs(slots) do
4168 local newOption = base:Clone()
4169 newOption.ZIndex = 5
4170 newOption.Name = "Option "..tostring(i)
4171 newOption.Parent = base.Parent.Parent.Parent
4172 newOption.BackgroundTransparency = 0
4173 newOption.ZIndex = 2
4174 table.insert(activeOptions,newOption)
4175 newOption.Position = UDim2.new(-0.4, dBut.Position.X.Offset, dBut.Position.Y.Scale, dBut.Position.Y.Offset + (#activeOptions * dBut.Size.Y.Offset))
4176 newOption.Text = slots[i]
4177 newOption.MouseButton1Down:connect(function()
4178 dBut.Text = slots[i]
4179 callback(slots[i])
4180 for i,v in pairs(activeOptions) do
4181 v:Destroy()
4182 end
4183 activeOptions = {}
4184 barActive = false
4185 end)
4186 end
4187end
4188
4189-- Connects a function to an event such that it fires asynchronously
4190function Connect(event,func)
4191 return event:connect(function(...)
4192 local a = {...}
4193 spawn(function() func(unpack(a)) end)
4194 end)
4195end
4196
4197-- returns the ascendant ScreenGui of an object
4198function GetScreen(screen)
4199 if screen == nil then return nil end
4200 while not screen:IsA("ScreenGui") do
4201 screen = screen.Parent
4202 if screen == nil then return nil end
4203 end
4204 return screen
4205end
4206
4207do
4208 local ZIndexLock = {}
4209 -- Sets the ZIndex of an object and its descendants. Objects are locked so
4210 -- that SetZIndexOnChanged doesn't spawn multiple threads that set the
4211 -- ZIndex of the same object.
4212 function SetZIndex(object,z)
4213 if not ZIndexLock[object] then
4214 ZIndexLock[object] = true
4215 if object:IsA'GuiObject' then
4216 object.ZIndex = z
4217 end
4218 local children = object:GetChildren()
4219 for i = 1,#children do
4220 SetZIndex(children[i],z)
4221 end
4222 ZIndexLock[object] = nil
4223 end
4224 end
4225
4226 function SetZIndexOnChanged(object)
4227 return object.Changed:connect(function(p)
4228 if p == "ZIndex" then
4229 SetZIndex(object,object.ZIndex)
4230 end
4231 end)
4232 end
4233end
4234
4235---- IconMap ----
4236-- Image size: 256px x 256px
4237-- Icon size: 16px x 16px
4238-- Padding between each icon: 2px
4239-- Padding around image edge: 1px
4240-- Total icons: 14 x 14 (196)
4241local Icon do
4242 local iconMap = 'http://www.roblox.com/asset/?id=' .. MAP_ID
4243 game:GetService('ContentProvider'):Preload(iconMap)
4244 local iconDehash do
4245 -- 14 x 14, 0-based input, 0-based output
4246 local f=math.floor
4247 function iconDehash(h)
4248 return f(h/14%14),f(h%14)
4249 end
4250 end
4251
4252 function Icon(IconFrame,index)
4253 local row,col = iconDehash(index)
4254 local mapSize = Vector2.new(256,256)
4255 local pad,border = 2,1
4256 local iconSize = 16
4257
4258 local class = 'Frame'
4259 if type(IconFrame) == 'string' then
4260 class = IconFrame
4261 IconFrame = nil
4262 end
4263
4264 if not IconFrame then
4265 IconFrame = Create(class,{
4266 Name = "Icon";
4267 BackgroundTransparency = 1;
4268 ClipsDescendants = true;
4269 Create('ImageLabel',{
4270 Name = "IconMap";
4271 Active = false;
4272 BackgroundTransparency = 1;
4273 Image = iconMap;
4274 Size = UDim2.new(mapSize.x/iconSize,0,mapSize.y/iconSize,0);
4275 });
4276 })
4277 end
4278
4279 IconFrame.IconMap.Position = UDim2.new(-col - (pad*(col+1) + border)/iconSize,0,-row - (pad*(row+1) + border)/iconSize,0)
4280 return IconFrame
4281 end
4282end
4283
4284----------------------------------------------------------------
4285----------------------------------------------------------------
4286----------------------------------------------------------------
4287----------------------------------------------------------------
4288---- ScrollBar
4289do
4290 -- AutoButtonColor doesn't always reset properly
4291 local function ResetButtonColor(button)
4292 local active = button.Active
4293 button.Active = not active
4294 button.Active = active
4295 end
4296
4297 local function ArrowGraphic(size,dir,scaled,template)
4298 local Frame = Create('Frame',{
4299 Name = "Arrow Graphic";
4300 BorderSizePixel = 0;
4301 Size = UDim2.new(0,size,0,size);
4302 Transparency = 1;
4303 })
4304 if not template then
4305 template = Instance.new("Frame")
4306 template.BorderSizePixel = 0
4307 end
4308
4309 local transform
4310 if dir == nil or dir == 'Up' then
4311 function transform(p,s) return p,s end
4312 elseif dir == 'Down' then
4313 function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
4314 elseif dir == 'Left' then
4315 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
4316 elseif dir == 'Right' then
4317 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
4318 end
4319
4320 local scale
4321 if scaled then
4322 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
4323 else
4324 function scale(p,s) return p,s end
4325 end
4326
4327 local o = math.floor(size/4)
4328 if size%2 == 0 then
4329 local n = size/2-1
4330 for i = 0,n do
4331 local t = template:Clone()
4332 local p,s = scale(transform(
4333 UDim2.new(0,n-i,0,o+i),
4334 UDim2.new(0,(i+1)*2,0,1)
4335 ))
4336 t.Position = p
4337 t.Size = s
4338 t.Parent = Frame
4339 end
4340 else
4341 local n = (size-1)/2
4342 for i = 0,n do
4343 local t = template:Clone()
4344 local p,s = scale(transform(
4345 UDim2.new(0,n-i,0,o+i),
4346 UDim2.new(0,i*2+1,0,1)
4347 ))
4348 t.Position = p
4349 t.Size = s
4350 t.Parent = Frame
4351 end
4352 end
4353 if size%4 > 1 then
4354 local t = template:Clone()
4355 local p,s = scale(transform(
4356 UDim2.new(0,0,0,size-o-1),
4357 UDim2.new(0,size,0,1)
4358 ))
4359 t.Position = p
4360 t.Size = s
4361 t.Parent = Frame
4362 end
4363 return Frame
4364 end
4365
4366
4367 local function GripGraphic(size,dir,spacing,scaled,template)
4368 local Frame = Create('Frame',{
4369 Name = "Grip Graphic";
4370 BorderSizePixel = 0;
4371 Size = UDim2.new(0,size.x,0,size.y);
4372 Transparency = 1;
4373 })
4374 if not template then
4375 template = Instance.new("Frame")
4376 template.BorderSizePixel = 0
4377 end
4378
4379 spacing = spacing or 2
4380
4381 local scale
4382 if scaled then
4383 function scale(p) return UDim2.new(p.X.Offset/size.x,0,p.Y.Offset/size.y,0) end
4384 else
4385 function scale(p) return p end
4386 end
4387
4388 if dir == 'Vertical' then
4389 for i=0,size.x-1,spacing do
4390 local t = template:Clone()
4391 t.Size = scale(UDim2.new(0,1,0,size.y))
4392 t.Position = scale(UDim2.new(0,i,0,0))
4393 t.Parent = Frame
4394 end
4395 elseif dir == nil or dir == 'Horizontal' then
4396 for i=0,size.y-1,spacing do
4397 local t = template:Clone()
4398 t.Size = scale(UDim2.new(0,size.x,0,1))
4399 t.Position = scale(UDim2.new(0,0,0,i))
4400 t.Parent = Frame
4401 end
4402 end
4403
4404 return Frame
4405 end
4406
4407 local mt = {
4408 __index = {
4409 GetScrollPercent = function(self)
4410 return self.ScrollIndex/(self.TotalSpace-self.VisibleSpace)
4411 end;
4412 CanScrollDown = function(self)
4413 return self.ScrollIndex + self.VisibleSpace < self.TotalSpace
4414 end;
4415 CanScrollUp = function(self)
4416 return self.ScrollIndex > 0
4417 end;
4418 ScrollDown = function(self)
4419 self.ScrollIndex = self.ScrollIndex + self.PageIncrement
4420 self:Update()
4421 end;
4422 ScrollUp = function(self)
4423 self.ScrollIndex = self.ScrollIndex - self.PageIncrement
4424 self:Update()
4425 end;
4426 ScrollTo = function(self,index)
4427 self.ScrollIndex = index
4428 self:Update()
4429 end;
4430 SetScrollPercent = function(self,percent)
4431 self.ScrollIndex = math.floor((self.TotalSpace - self.VisibleSpace)*percent + 0.5)
4432 self:Update()
4433 end;
4434 };
4435 }
4436 mt.__index.CanScrollRight = mt.__index.CanScrollDown
4437 mt.__index.CanScrollLeft = mt.__index.CanScrollUp
4438 mt.__index.ScrollLeft = mt.__index.ScrollUp
4439 mt.__index.ScrollRight = mt.__index.ScrollDown
4440
4441 function ScrollBar(horizontal)
4442 -- create row scroll bar
4443 local ScrollFrame = Create('Frame',{
4444 Name = "ScrollFrame";
4445 Position = horizontal and UDim2.new(0,0,1,-GUI_SIZE) or UDim2.new(1,-GUI_SIZE,0,0);
4446 Size = horizontal and UDim2.new(1,0,0,GUI_SIZE) or UDim2.new(0,GUI_SIZE,1,0);
4447 BackgroundTransparency = 1;
4448 Create('ImageButton',{
4449 Name = "ScrollDown";
4450 Position = horizontal and UDim2.new(1,-GUI_SIZE,0,0) or UDim2.new(0,0,1,-GUI_SIZE);
4451 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
4452 BackgroundColor3 = GuiColor.Button;
4453 BorderColor3 = GuiColor.Border;
4454 --BorderSizePixel = 0;
4455 });
4456 Create('ImageButton',{
4457 Name = "ScrollUp";
4458 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
4459 BackgroundColor3 = GuiColor.Button;
4460 BorderColor3 = GuiColor.Border;
4461 --BorderSizePixel = 0;
4462 });
4463 Create('ImageButton',{
4464 Name = "ScrollBar";
4465 Size = horizontal and UDim2.new(1,-GUI_SIZE*2,1,0) or UDim2.new(1,0,1,-GUI_SIZE*2);
4466 Position = horizontal and UDim2.new(0,GUI_SIZE,0,0) or UDim2.new(0,0,0,GUI_SIZE);
4467 AutoButtonColor = false;
4468 BackgroundColor3 = Color3.new(0.94902, 0.94902, 0.94902);
4469 BorderColor3 = GuiColor.Border;
4470 --BorderSizePixel = 0;
4471 Create('ImageButton',{
4472 Name = "ScrollThumb";
4473 AutoButtonColor = false;
4474 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
4475 BackgroundColor3 = GuiColor.Button;
4476 BorderColor3 = GuiColor.Border;
4477 --BorderSizePixel = 0;
4478 });
4479 });
4480 })
4481
4482 local graphicTemplate = Create('Frame',{
4483 Name="Graphic";
4484 BorderSizePixel = 0;
4485 BackgroundColor3 = GuiColor.Border;
4486 })
4487 local graphicSize = GUI_SIZE/2
4488
4489 local ScrollDownFrame = ScrollFrame.ScrollDown
4490 local ScrollDownGraphic = ArrowGraphic(graphicSize,horizontal and 'Right' or 'Down',true,graphicTemplate)
4491 ScrollDownGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
4492 ScrollDownGraphic.Parent = ScrollDownFrame
4493 local ScrollUpFrame = ScrollFrame.ScrollUp
4494 local ScrollUpGraphic = ArrowGraphic(graphicSize,horizontal and 'Left' or 'Up',true,graphicTemplate)
4495 ScrollUpGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
4496 ScrollUpGraphic.Parent = ScrollUpFrame
4497 local ScrollBarFrame = ScrollFrame.ScrollBar
4498 local ScrollThumbFrame = ScrollBarFrame.ScrollThumb
4499 do
4500 local size = GUI_SIZE*3/8
4501 local Decal = GripGraphic(Vector2.new(size,size),horizontal and 'Vertical' or 'Horizontal',2,graphicTemplate)
4502 Decal.Position = UDim2.new(0.5,-size/2,0.5,-size/2)
4503 Decal.Parent = ScrollThumbFrame
4504 end
4505
4506 local Class = setmetatable({
4507 GUI = ScrollFrame;
4508 ScrollIndex = 0;
4509 VisibleSpace = 0;
4510 TotalSpace = 0;
4511 PageIncrement = 1;
4512 },mt)
4513
4514 local UpdateScrollThumb
4515 if horizontal then
4516 function UpdateScrollThumb()
4517 ScrollThumbFrame.Size = UDim2.new(Class.VisibleSpace/Class.TotalSpace,0,0,GUI_SIZE)
4518 if ScrollThumbFrame.AbsoluteSize.x < GUI_SIZE then
4519 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
4520 end
4521 local barSize = ScrollBarFrame.AbsoluteSize.x
4522 ScrollThumbFrame.Position = UDim2.new(Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.x)/barSize,0,0,0)
4523 end
4524 else
4525 function UpdateScrollThumb()
4526 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,Class.VisibleSpace/Class.TotalSpace,0)
4527 if ScrollThumbFrame.AbsoluteSize.y < GUI_SIZE then
4528 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
4529 end
4530 local barSize = ScrollBarFrame.AbsoluteSize.y
4531 ScrollThumbFrame.Position = UDim2.new(0,0,Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.y)/barSize,0)
4532 end
4533 end
4534
4535 local lastDown
4536 local lastUp
4537 local scrollStyle = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0}
4538 local scrollStyle_ds = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0.7}
4539
4540 local function Update()
4541 local t = Class.TotalSpace
4542 local v = Class.VisibleSpace
4543 local s = Class.ScrollIndex
4544 if v <= t then
4545 if s > 0 then
4546 if s + v > t then
4547 Class.ScrollIndex = t - v
4548 end
4549 else
4550 Class.ScrollIndex = 0
4551 end
4552 else
4553 Class.ScrollIndex = 0
4554 end
4555
4556 if Class.UpdateCallback then
4557 if Class.UpdateCallback(Class) == false then
4558 return
4559 end
4560 end
4561
4562 local down = Class:CanScrollDown()
4563 local up = Class:CanScrollUp()
4564 if down ~= lastDown then
4565 lastDown = down
4566 ScrollDownFrame.Active = down
4567 ScrollDownFrame.AutoButtonColor = down
4568 local children = ScrollDownGraphic:GetChildren()
4569 local style = down and scrollStyle or scrollStyle_ds
4570 for i = 1,#children do
4571 Create(children[i],style)
4572 end
4573 end
4574 if up ~= lastUp then
4575 lastUp = up
4576 ScrollUpFrame.Active = up
4577 ScrollUpFrame.AutoButtonColor = up
4578 local children = ScrollUpGraphic:GetChildren()
4579 local style = up and scrollStyle or scrollStyle_ds
4580 for i = 1,#children do
4581 Create(children[i],style)
4582 end
4583 end
4584 ScrollThumbFrame.Visible = down or up
4585 UpdateScrollThumb()
4586 end
4587 Class.Update = Update
4588
4589 SetZIndexOnChanged(ScrollFrame)
4590
4591 local MouseDrag = Create('ImageButton',{
4592 Name = "MouseDrag";
4593 Position = UDim2.new(-0.25,0,-0.25,0);
4594 Size = UDim2.new(1.5,0,1.5,0);
4595 Transparency = 1;
4596 AutoButtonColor = false;
4597 Active = true;
4598 ZIndex = 10;
4599 })
4600
4601 local scrollEventID = 0
4602 ScrollDownFrame.MouseButton1Down:connect(function()
4603 scrollEventID = tick()
4604 local current = scrollEventID
4605 local up_con
4606 up_con = MouseDrag.MouseButton1Up:connect(function()
4607 scrollEventID = tick()
4608 MouseDrag.Parent = nil
4609 ResetButtonColor(ScrollDownFrame)
4610 up_con:disconnect(); drag = nil
4611 end)
4612 MouseDrag.Parent = GetScreen(ScrollFrame)
4613 Class:ScrollDown()
4614 wait(0.2) -- delay before auto scroll
4615 while scrollEventID == current do
4616 Class:ScrollDown()
4617 if not Class:CanScrollDown() then break end
4618 wait()
4619 end
4620 end)
4621
4622 ScrollDownFrame.MouseButton1Up:connect(function()
4623 scrollEventID = tick()
4624 end)
4625
4626 ScrollUpFrame.MouseButton1Down:connect(function()
4627 scrollEventID = tick()
4628 local current = scrollEventID
4629 local up_con
4630 up_con = MouseDrag.MouseButton1Up:connect(function()
4631 scrollEventID = tick()
4632 MouseDrag.Parent = nil
4633 ResetButtonColor(ScrollUpFrame)
4634 up_con:disconnect(); drag = nil
4635 end)
4636 MouseDrag.Parent = GetScreen(ScrollFrame)
4637 Class:ScrollUp()
4638 wait(0.2)
4639 while scrollEventID == current do
4640 Class:ScrollUp()
4641 if not Class:CanScrollUp() then break end
4642 wait()
4643 end
4644 end)
4645
4646 ScrollUpFrame.MouseButton1Up:connect(function()
4647 scrollEventID = tick()
4648 end)
4649
4650 if horizontal then
4651 ScrollBarFrame.MouseButton1Down:connect(function(x,y)
4652 scrollEventID = tick()
4653 local current = scrollEventID
4654 local up_con
4655 up_con = MouseDrag.MouseButton1Up:connect(function()
4656 scrollEventID = tick()
4657 MouseDrag.Parent = nil
4658 ResetButtonColor(ScrollUpFrame)
4659 up_con:disconnect(); drag = nil
4660 end)
4661 MouseDrag.Parent = GetScreen(ScrollFrame)
4662 if x > ScrollThumbFrame.AbsolutePosition.x then
4663 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
4664 wait(0.2)
4665 while scrollEventID == current do
4666 if x < ScrollThumbFrame.AbsolutePosition.x + ScrollThumbFrame.AbsoluteSize.x then break end
4667 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
4668 wait()
4669 end
4670 else
4671 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
4672 wait(0.2)
4673 while scrollEventID == current do
4674 if x > ScrollThumbFrame.AbsolutePosition.x then break end
4675 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
4676 wait()
4677 end
4678 end
4679 end)
4680 else
4681 ScrollBarFrame.MouseButton1Down:connect(function(x,y)
4682 scrollEventID = tick()
4683 local current = scrollEventID
4684 local up_con
4685 up_con = MouseDrag.MouseButton1Up:connect(function()
4686 scrollEventID = tick()
4687 MouseDrag.Parent = nil
4688 ResetButtonColor(ScrollUpFrame)
4689 up_con:disconnect(); drag = nil
4690 end)
4691 MouseDrag.Parent = GetScreen(ScrollFrame)
4692 if y > ScrollThumbFrame.AbsolutePosition.y then
4693 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
4694 wait(0.2)
4695 while scrollEventID == current do
4696 if y < ScrollThumbFrame.AbsolutePosition.y + ScrollThumbFrame.AbsoluteSize.y then break end
4697 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
4698 wait()
4699 end
4700 else
4701 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
4702 wait(0.2)
4703 while scrollEventID == current do
4704 if y > ScrollThumbFrame.AbsolutePosition.y then break end
4705 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
4706 wait()
4707 end
4708 end
4709 end)
4710 end
4711
4712 if horizontal then
4713 ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
4714 scrollEventID = tick()
4715 local mouse_offset = x - ScrollThumbFrame.AbsolutePosition.x
4716 local drag_con
4717 local up_con
4718 drag_con = MouseDrag.MouseMoved:connect(function(x,y)
4719 local bar_abs_pos = ScrollBarFrame.AbsolutePosition.x
4720 local bar_drag = ScrollBarFrame.AbsoluteSize.x - ScrollThumbFrame.AbsoluteSize.x
4721 local bar_abs_one = bar_abs_pos + bar_drag
4722 x = x - mouse_offset
4723 x = x < bar_abs_pos and bar_abs_pos or x > bar_abs_one and bar_abs_one or x
4724 x = x - bar_abs_pos
4725 Class:SetScrollPercent(x/(bar_drag))
4726 end)
4727 up_con = MouseDrag.MouseButton1Up:connect(function()
4728 scrollEventID = tick()
4729 MouseDrag.Parent = nil
4730 ResetButtonColor(ScrollThumbFrame)
4731 drag_con:disconnect(); drag_con = nil
4732 up_con:disconnect(); drag = nil
4733 end)
4734 MouseDrag.Parent = GetScreen(ScrollFrame)
4735 end)
4736 else
4737 ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
4738 scrollEventID = tick()
4739 local mouse_offset = y - ScrollThumbFrame.AbsolutePosition.y
4740 local drag_con
4741 local up_con
4742 drag_con = MouseDrag.MouseMoved:connect(function(x,y)
4743 local bar_abs_pos = ScrollBarFrame.AbsolutePosition.y
4744 local bar_drag = ScrollBarFrame.AbsoluteSize.y - ScrollThumbFrame.AbsoluteSize.y
4745 local bar_abs_one = bar_abs_pos + bar_drag
4746 y = y - mouse_offset
4747 y = y < bar_abs_pos and bar_abs_pos or y > bar_abs_one and bar_abs_one or y
4748 y = y - bar_abs_pos
4749 Class:SetScrollPercent(y/(bar_drag))
4750 end)
4751 up_con = MouseDrag.MouseButton1Up:connect(function()
4752 scrollEventID = tick()
4753 MouseDrag.Parent = nil
4754 ResetButtonColor(ScrollThumbFrame)
4755 drag_con:disconnect(); drag_con = nil
4756 up_con:disconnect(); drag = nil
4757 end)
4758 MouseDrag.Parent = GetScreen(ScrollFrame)
4759 end)
4760 end
4761
4762 function Class:Destroy()
4763 ScrollFrame:Destroy()
4764 MouseDrag:Destroy()
4765 for k in pairs(Class) do
4766 Class[k] = nil
4767 end
4768 setmetatable(Class,nil)
4769 end
4770
4771 Update()
4772
4773 return Class
4774 end
4775end
4776
4777----------------------------------------------------------------
4778----------------------------------------------------------------
4779----------------------------------------------------------------
4780----------------------------------------------------------------
4781---- Explorer panel
4782
4783local explorerPanel = D_E_X.ExplorerPanel
4784Create(explorerPanel,{
4785 BackgroundColor3 = GuiColor.Field;
4786 BorderColor3 = GuiColor.Border;
4787 Active = true;
4788})
4789
4790local SettingsRemote = explorerPanel.Parent:WaitForChild("SettingsPanel"):WaitForChild("GetSetting")
4791local GetApiRemote = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("GetApi")
4792local GetAwaitRemote = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("GetAwaiting")
4793local bindSetAwaiting = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("SetAwaiting")
4794
4795local SaveInstanceWindow = explorerPanel.Parent:WaitForChild("SaveInstance")
4796local ConfirmationWindow = explorerPanel.Parent:WaitForChild("Confirmation")
4797local CautionWindow = explorerPanel.Parent:WaitForChild("Caution")
4798local TableCautionWindow = explorerPanel.Parent:WaitForChild("TableCaution")
4799
4800local RemoteWindow = explorerPanel.Parent:WaitForChild("CallRemote")
4801
4802local CurrentSaveInstanceWindow
4803local CurrentRemoteWindow
4804
4805local lastSelectedNode
4806
4807local listFrame = Create('Frame',{
4808 Name = "List";
4809 BackgroundTransparency = 1;
4810 ClipsDescendants = true;
4811 Position = UDim2.new(0,0,0,HEADER_SIZE);
4812 Size = UDim2.new(1,-GUI_SIZE,1,-HEADER_SIZE);
4813 Parent = explorerPanel;
4814})
4815
4816local scrollBar = ScrollBar(false)
4817scrollBar.PageIncrement = 1
4818Create(scrollBar.GUI,{
4819 Position = UDim2.new(1,-GUI_SIZE,0,HEADER_SIZE);
4820 Size = UDim2.new(0,GUI_SIZE,1,-HEADER_SIZE);
4821 Parent = explorerPanel;
4822})
4823
4824local scrollBarH = ScrollBar(true)
4825scrollBarH.PageIncrement = GUI_SIZE
4826Create(scrollBarH.GUI,{
4827 Position = UDim2.new(0,0,1,-GUI_SIZE);
4828 Size = UDim2.new(1,-GUI_SIZE,0,GUI_SIZE);
4829 Visible = false;
4830 Parent = explorerPanel;
4831})
4832
4833local headerFrame = Create('Frame',{
4834 Name = "Header";
4835 BackgroundColor3 = GuiColor.Background;
4836 BorderColor3 = GuiColor.Border;
4837 Position = UDim2.new(0,0,0,0);
4838 Size = UDim2.new(1,0,0,HEADER_SIZE);
4839 Parent = explorerPanel;
4840 Create('TextLabel',{
4841 Text = "Explorer";
4842 BackgroundTransparency = 1;
4843 TextColor3 = GuiColor.Text;
4844 TextXAlignment = 'Left';
4845 Font = FONT;
4846 FontSize = FONT_SIZE;
4847 Position = UDim2.new(0,4,0,0);
4848 Size = UDim2.new(1,-4,0.5,0);
4849 });
4850})
4851
4852local explorerFilter = Create('TextBox',{
4853 Text = "Filter Workspace";
4854 BackgroundTransparency = 0.8;
4855 TextColor3 = GuiColor.Text;
4856 TextXAlignment = 'Left';
4857 Font = FONT;
4858 FontSize = FONT_SIZE;
4859 Position = UDim2.new(0,4,0.5,0);
4860 Size = UDim2.new(1,-8,0.5,-2);
4861});
4862explorerFilter.Parent = headerFrame
4863
4864SetZIndexOnChanged(explorerPanel)
4865
4866local function CreateColor3(r, g, b) return Color3.new(r/255,g/255,b/255) end
4867
4868local Styles = {
4869 Font = Enum.Font.Arial;
4870 Margin = 5;
4871 Black = CreateColor3(0,0,0);
4872 White = CreateColor3(255,255,255);
4873}
4874
4875local DropDown = {
4876 Font = Styles.Font;
4877 FontSize = Enum.FontSize.Size14;
4878 TextColor = CreateColor3(0,0,0);
4879 TextColorOver = Styles.White;
4880 TextXAlignment = Enum.TextXAlignment.Left;
4881 Height = 20;
4882 BackColor = Styles.White;
4883 BackColorOver = CreateColor3(86,125,188);
4884 BorderColor = CreateColor3(216,216,216);
4885 BorderSizePixel = 2;
4886 ArrowColor = CreateColor3(160,160,160);
4887 ArrowColorOver = Styles.Black;
4888}
4889
4890local Row = {
4891 Font = Styles.Font;
4892 FontSize = Enum.FontSize.Size14;
4893 TextXAlignment = Enum.TextXAlignment.Left;
4894 TextColor = Styles.Black;
4895 TextColorOver = Styles.White;
4896 TextLockedColor = CreateColor3(120,120,120);
4897 Height = 24;
4898 BorderColor = CreateColor3(216,216,216);
4899 BackgroundColor = Styles.White;
4900 BackgroundColorAlternate = CreateColor3(246,246,246);
4901 BackgroundColorMouseover = CreateColor3(211,224,244);
4902 TitleMarginLeft = 15;
4903}
4904
4905local currentRightClickMenu
4906local CurrentInsertObjectWindow
4907local CurrentFunctionCallerWindow
4908
4909local RbxApi
4910
4911function ClassCanCreate(IName)
4912 local success,err = pcall(function() Instance.new(IName) end)
4913 if err then
4914 return false
4915 else
4916 return true
4917 end
4918end
4919
4920function GetClasses()
4921 if RbxApi == nil then return {} end
4922 local classTable = {}
4923 for i,v in pairs(RbxApi.Classes) do
4924 if ClassCanCreate(v.Name) then
4925 table.insert(classTable,v.Name)
4926 end
4927 end
4928 return classTable
4929end
4930
4931local function sortAlphabetic(t, property)
4932 table.sort(t,
4933 function(x,y) return x[property] < y[property]
4934 end)
4935end
4936
4937local function FunctionIsHidden(functionData)
4938 local tags = functionData["tags"]
4939 for _,name in pairs(tags) do
4940 if name == "deprecated"
4941 or name == "hidden"
4942 or name == "writeonly" then
4943 return true
4944 end
4945 end
4946 return false
4947end
4948
4949local function GetAllFunctions(className)
4950 local class = RbxApi.Classes[className]
4951 local functions = {}
4952
4953 if not class then return functions end
4954
4955 while class do
4956 if class.Name == "Instance" then break end
4957 for _,nextFunction in pairs(class.Functions) do
4958 if not FunctionIsHidden(nextFunction) then
4959 table.insert(functions, nextFunction)
4960 end
4961 end
4962 class = RbxApi.Classes[class.Superclass]
4963 end
4964
4965 sortAlphabetic(functions, "Name")
4966
4967 return functions
4968end
4969
4970function GetFunctions()
4971 if RbxApi == nil then return {} end
4972 local List = SelectionVar():Get()
4973
4974 if #List == 0 then return end
4975
4976 local MyObject = List[1]
4977
4978 local functionTable = {}
4979 for i,v in pairs(GetAllFunctions(MyObject.ClassName)) do
4980 table.insert(functionTable,v)
4981 end
4982 return functionTable
4983end
4984
4985function CreateInsertObjectMenu(choices, currentChoice, readOnly, onClick)
4986 local mouse = game.Players.LocalPlayer:GetMouse()
4987 local totalSize = explorerPanel.Parent.AbsoluteSize.y
4988 if #choices == 0 then return end
4989
4990 table.sort(choices, function(a,b) return a < b end)
4991
4992 local frame = Instance.new("Frame")
4993 frame.Name = "InsertObject"
4994 frame.Size = UDim2.new(0, 200, 1, 0)
4995 frame.BackgroundTransparency = 1
4996 frame.Active = true
4997
4998 local menu = nil
4999 local arrow = nil
5000 local expanded = false
5001 local margin = DropDown.BorderSizePixel;
5002
5003 --[[
5004 local button = Instance.new("TextButton")
5005 button.Font = Row.Font
5006 button.FontSize = Row.FontSize
5007 button.TextXAlignment = Row.TextXAlignment
5008 button.BackgroundTransparency = 1
5009 button.TextColor3 = Row.TextColor
5010 if readOnly then
5011 button.TextColor3 = Row.TextLockedColor
5012 end
5013 button.Text = currentChoice
5014 button.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
5015 button.Position = UDim2.new(0, Styles.Margin, 0, 0)
5016 button.Parent = frame
5017 --]]
5018
5019 local function hideMenu()
5020 expanded = false
5021 --showArrow(DropDown.ArrowColor)
5022 if frame then
5023 --frame:Destroy()
5024 CurrentInsertObjectWindow.Visible = false
5025 end
5026 end
5027
5028 local function showMenu()
5029 expanded = true
5030 menu = Instance.new("ScrollingFrame")
5031 menu.Size = UDim2.new(0,200,1,0)
5032 menu.CanvasSize = UDim2.new(0, 200, 0, #choices * DropDown.Height)
5033 menu.Position = UDim2.new(0, margin, 0, 0)
5034 menu.BackgroundTransparency = 0
5035 menu.BackgroundColor3 = DropDown.BackColor
5036 menu.BorderColor3 = DropDown.BorderColor
5037 menu.BorderSizePixel = DropDown.BorderSizePixel
5038 menu.TopImage = "rbxasset://textures/blackBkg_square.png"
5039 menu.MidImage = "rbxasset://textures/blackBkg_square.png"
5040 menu.BottomImage = "rbxasset://textures/blackBkg_square.png"
5041 menu.Active = true
5042 menu.ZIndex = 5
5043 menu.Parent = frame
5044
5045 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
5046 --local rowHeight = mouse.Y
5047 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
5048 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
5049 --end
5050
5051 local function choice(name)
5052 onClick(name)
5053 hideMenu()
5054 end
5055
5056 for i,name in pairs(choices) do
5057 local option = CreateRightClickMenuItem(name, function()
5058 choice(name)
5059 end,1)
5060 option.Size = UDim2.new(1, 0, 0, 20)
5061 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
5062 option.ZIndex = menu.ZIndex
5063 option.Parent = menu
5064 end
5065 end
5066
5067
5068 showMenu()
5069
5070
5071 return frame
5072end
5073
5074function CreateFunctionCallerMenu(choices, currentChoice, readOnly, onClick)
5075 local mouse = game.Players.LocalPlayer:GetMouse()
5076 local totalSize = explorerPanel.Parent.AbsoluteSize.y
5077 if #choices == 0 then return end
5078
5079 table.sort(choices, function(a,b) return a.Name < b.Name end)
5080
5081 local frame = Instance.new("Frame")
5082 frame.Name = "InsertObject"
5083 frame.Size = UDim2.new(0, 200, 1, 0)
5084 frame.BackgroundTransparency = 1
5085 frame.Active = true
5086
5087 local menu = nil
5088 local arrow = nil
5089 local expanded = false
5090 local margin = DropDown.BorderSizePixel;
5091
5092 local function hideMenu()
5093 expanded = false
5094 --showArrow(DropDown.ArrowColor)
5095 if frame then
5096 --frame:Destroy()
5097 CurrentInsertObjectWindow.Visible = false
5098 end
5099 end
5100
5101 local function showMenu()
5102 expanded = true
5103 menu = Instance.new("ScrollingFrame")
5104 menu.Size = UDim2.new(0,300,1,0)
5105 menu.CanvasSize = UDim2.new(0, 300, 0, #choices * DropDown.Height)
5106 menu.Position = UDim2.new(0, margin, 0, 0)
5107 menu.BackgroundTransparency = 0
5108 menu.BackgroundColor3 = DropDown.BackColor
5109 menu.BorderColor3 = DropDown.BorderColor
5110 menu.BorderSizePixel = DropDown.BorderSizePixel
5111 menu.TopImage = "rbxasset://textures/blackBkg_square.png"
5112 menu.MidImage = "rbxasset://textures/blackBkg_square.png"
5113 menu.BottomImage = "rbxasset://textures/blackBkg_square.png"
5114 menu.Active = true
5115 menu.ZIndex = 5
5116 menu.Parent = frame
5117
5118 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
5119 --local rowHeight = mouse.Y
5120 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
5121 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
5122 --end
5123
5124 local function GetParameters(functionData)
5125 local paraString = ""
5126 paraString = paraString.."("
5127 for i,v in pairs(functionData.Arguments) do
5128 paraString = paraString..v.Type.." "..v.Name
5129 if i < #functionData.Arguments then
5130 paraString = paraString..", "
5131 end
5132 end
5133 paraString = paraString..")"
5134 return paraString
5135 end
5136
5137 local function choice(name)
5138 onClick(name)
5139 hideMenu()
5140 end
5141
5142 for i,name in pairs(choices) do
5143 local option = CreateRightClickMenuItem(name.ReturnType.." "..name.Name..GetParameters(name), function()
5144 choice(name)
5145 end,2)
5146 option.Size = UDim2.new(1, 0, 0, 20)
5147 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
5148 option.ZIndex = menu.ZIndex
5149 option.Parent = menu
5150 end
5151 end
5152
5153
5154 showMenu()
5155
5156
5157 return frame
5158end
5159
5160function CreateInsertObject()
5161 if not CurrentInsertObjectWindow then return end
5162 CurrentInsertObjectWindow.Visible = true
5163 if currentRightClickMenu and CurrentInsertObjectWindow.Visible then
5164 CurrentInsertObjectWindow.Position = UDim2.new(0,currentRightClickMenu.Position.X.Offset-currentRightClickMenu.Size.X.Offset-2,0,0)
5165 end
5166 if CurrentInsertObjectWindow.Visible then
5167 CurrentInsertObjectWindow.Parent = explorerPanel.Parent
5168 end
5169end
5170
5171function CreateFunctionCaller()
5172 if CurrentFunctionCallerWindow then
5173 CurrentFunctionCallerWindow:Destroy()
5174 CurrentFunctionCallerWindow = nil
5175 end
5176 CurrentFunctionCallerWindow = CreateFunctionCallerMenu(
5177 GetFunctions(),
5178 "",
5179 false,
5180 function(option)
5181 CurrentFunctionCallerWindow:Destroy()
5182 CurrentFunctionCallerWindow = nil
5183 local list = SelectionVar():Get()
5184 for i = 1,#list do
5185 pcall(function() Instance.new(option,list[i]) end)
5186 end
5187 print(option.Name .. " selected to be called. Function caller being added soon, please wait!")
5188 --CallFunction()
5189 DestroyRightClick()
5190 end
5191 )
5192 if currentRightClickMenu and CurrentFunctionCallerWindow then
5193 CurrentFunctionCallerWindow.Position = UDim2.new(0,currentRightClickMenu.Position.X.Offset-currentRightClickMenu.Size.X.Offset*1.5-2,0,0)
5194 end
5195 if CurrentFunctionCallerWindow then
5196 CurrentFunctionCallerWindow.Parent = explorerPanel.Parent
5197 end
5198end
5199
5200function CreateRightClickMenuItem(text, onClick, insObj)
5201 local button = Instance.new("TextButton")
5202 button.Font = DropDown.Font
5203 button.FontSize = DropDown.FontSize
5204 button.TextColor3 = DropDown.TextColor
5205 button.TextXAlignment = DropDown.TextXAlignment
5206 button.BackgroundColor3 = DropDown.BackColor
5207 button.AutoButtonColor = false
5208 button.BorderSizePixel = 0
5209 button.Active = true
5210 button.Text = text
5211
5212 if insObj == 1 then
5213 local newIcon = Icon(nil,ExplorerIndex[text] or 0)
5214 newIcon.Position = UDim2.new(0,0,0,2)
5215 newIcon.Size = UDim2.new(0,16,0,16)
5216 newIcon.IconMap.ZIndex = 5
5217 newIcon.Parent = button
5218 button.Text = "\t\t"..button.Text
5219 elseif insObj == 2 then
5220 button.FontSize = Enum.FontSize.Size11
5221 end
5222
5223 button.MouseEnter:connect(function()
5224 button.TextColor3 = DropDown.TextColorOver
5225 button.BackgroundColor3 = DropDown.BackColorOver
5226 if not insObj and CurrentInsertObjectWindow then
5227 if CurrentInsertObjectWindow.Visible == false and button.Text == "Insert Object" then
5228 CreateInsertObject()
5229 elseif CurrentInsertObjectWindow.Visible and button.Text ~= "Insert Object" then
5230 CurrentInsertObjectWindow.Visible = false
5231 end
5232 end
5233 if not insObj then
5234 if CurrentFunctionCallerWindow and button.Text ~= "Call Function" then
5235 CurrentFunctionCallerWindow:Destroy()
5236 CurrentFunctionCallerWindow = nil
5237 elseif button.Text == "Call Function" then
5238 CreateFunctionCaller()
5239 end
5240 end
5241 end)
5242 button.MouseLeave:connect(function()
5243 button.TextColor3 = DropDown.TextColor
5244 button.BackgroundColor3 = DropDown.BackColor
5245 end)
5246 button.MouseButton1Click:connect(function()
5247 button.TextColor3 = DropDown.TextColor
5248 button.BackgroundColor3 = DropDown.BackColor
5249 onClick(text)
5250 end)
5251 return button
5252end
5253
5254function CreateRightClickMenu(choices, currentChoice, readOnly, onClick)
5255 local mouse = game.Players.LocalPlayer:GetMouse()
5256
5257 local frame = Instance.new("Frame")
5258 frame.Name = "DropDown"
5259 frame.Size = UDim2.new(0, 200, 1, 0)
5260 frame.BackgroundTransparency = 1
5261 frame.Active = true
5262
5263 local menu = nil
5264 local arrow = nil
5265 local expanded = false
5266 local margin = DropDown.BorderSizePixel;
5267
5268 --[[
5269 local button = Instance.new("TextButton")
5270 button.Font = Row.Font
5271 button.FontSize = Row.FontSize
5272 button.TextXAlignment = Row.TextXAlignment
5273 button.BackgroundTransparency = 1
5274 button.TextColor3 = Row.TextColor
5275 if readOnly then
5276 button.TextColor3 = Row.TextLockedColor
5277 end
5278 button.Text = currentChoice
5279 button.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
5280 button.Position = UDim2.new(0, Styles.Margin, 0, 0)
5281 button.Parent = frame
5282 --]]
5283
5284 local function hideMenu()
5285 expanded = false
5286 --showArrow(DropDown.ArrowColor)
5287 if frame then
5288 frame:Destroy()
5289 DestroyRightClick()
5290 end
5291 end
5292
5293 local function showMenu()
5294 expanded = true
5295 menu = Instance.new("Frame")
5296 menu.Size = UDim2.new(0, 200, 0, #choices * DropDown.Height)
5297 menu.Position = UDim2.new(0, margin, 0, 5)
5298 menu.BackgroundTransparency = 0
5299 menu.BackgroundColor3 = DropDown.BackColor
5300 menu.BorderColor3 = DropDown.BorderColor
5301 menu.BorderSizePixel = DropDown.BorderSizePixel
5302 menu.Active = true
5303 menu.ZIndex = 5
5304 menu.Parent = frame
5305
5306 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
5307 --local rowHeight = mouse.Y
5308 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
5309 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
5310 --end
5311
5312 local function choice(name)
5313 onClick(name)
5314 hideMenu()
5315 end
5316
5317 for i,name in pairs(choices) do
5318 local option = CreateRightClickMenuItem(name, function()
5319 choice(name)
5320 end)
5321 option.Size = UDim2.new(1, 0, 0, 20)
5322 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
5323 option.ZIndex = menu.ZIndex
5324 option.Parent = menu
5325 end
5326 end
5327
5328
5329 showMenu()
5330
5331
5332 return frame
5333end
5334
5335function checkMouseInGui(gui)
5336 if gui == nil then return false end
5337 local plrMouse = game.Players.LocalPlayer:GetMouse()
5338 local guiPosition = gui.AbsolutePosition
5339 local guiSize = gui.AbsoluteSize
5340
5341 if plrMouse.X >= guiPosition.x and plrMouse.X <= guiPosition.x + guiSize.x and plrMouse.Y >= guiPosition.y and plrMouse.Y <= guiPosition.y + guiSize.y then
5342 return true
5343 else
5344 return false
5345 end
5346end
5347
5348local clipboard = {}
5349local function delete(o)
5350 o.Parent = nil
5351end
5352
5353local getTextWidth do
5354 local text = Create('TextLabel',{
5355 Name = "TextWidth";
5356 TextXAlignment = 'Left';
5357 TextYAlignment = 'Center';
5358 Font = FONT;
5359 FontSize = FONT_SIZE;
5360 Text = "";
5361 Position = UDim2.new(0,0,0,0);
5362 Size = UDim2.new(1,0,1,0);
5363 Visible = false;
5364 Parent = explorerPanel;
5365 })
5366 function getTextWidth(s)
5367 text.Text = s
5368 return text.TextBounds.x
5369 end
5370end
5371
5372local nameScanned = false
5373-- Holds the game tree converted to a list.
5374local TreeList = {}
5375-- Matches objects to their tree node representation.
5376local NodeLookup = {}
5377
5378local nodeWidth = 0
5379
5380function filteringWorkspace()
5381 if explorerFilter.Text ~= "" and explorerFilter.Text ~= "Filter Workspace" then
5382 return true
5383 end
5384 return false
5385end
5386
5387function lookForAName(obj,name)
5388 for i,v in pairs(obj:GetChildren()) do
5389 if string.find(string.lower(v.Name),string.lower(name)) then nameScanned = true end
5390 lookForAName(v,name)
5391 end
5392end
5393
5394function scanName(obj)
5395 nameScanned = false
5396 if string.find(string.lower(obj.Name),string.lower(explorerFilter.Text)) then
5397 nameScanned = true
5398 else
5399 lookForAName(obj,explorerFilter.Text)
5400 end
5401 return nameScanned
5402end
5403
5404local updateList,rawUpdateList,updateScroll,rawUpdateSize do
5405 local function r(t)
5406 for i = 1,#t do
5407 if not filteringWorkspace() or scanName(t[i].Object) then
5408 TreeList[#TreeList+1] = t[i]
5409
5410 local w = (t[i].Depth)*(2+ENTRY_PADDING+GUI_SIZE) + 2 + ENTRY_SIZE + 4 + getTextWidth(t[i].Object.Name) + 4
5411 if w > nodeWidth then
5412 nodeWidth = w
5413 end
5414 if t[i].Expanded or filteringWorkspace() then
5415 r(t[i])
5416 end
5417 end
5418 end
5419 end
5420
5421 function rawUpdateSize()
5422 scrollBarH.TotalSpace = nodeWidth
5423 scrollBarH.VisibleSpace = listFrame.AbsoluteSize.x
5424 scrollBarH:Update()
5425 local visible = scrollBarH:CanScrollDown() or scrollBarH:CanScrollUp()
5426 scrollBarH.GUI.Visible = visible
5427
5428 listFrame.Size = UDim2.new(1,-GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)
5429
5430 scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
5431 scrollBar.GUI.Size = UDim2.new(0,GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)
5432
5433 scrollBar.TotalSpace = #TreeList+1
5434 scrollBar:Update()
5435 end
5436
5437 function rawUpdateList()
5438 -- Clear then repopulate the entire list. It appears to be fast enough.
5439 TreeList = {}
5440 nodeWidth = 0
5441 r(NodeLookup[workspace.Parent])
5442 rawUpdateSize()
5443 end
5444
5445 -- Adding or removing large models will cause many updates to occur. We
5446 -- can reduce the number of updates by creating a delay, then dropping any
5447 -- updates that occur during the delay.
5448 local updatingList = false
5449 function updateList()
5450 if updatingList then return end
5451 updatingList = true
5452 wait(0.25)
5453 updatingList = false
5454 rawUpdateList()
5455 end
5456
5457 local updatingScroll = false
5458 function updateScroll()
5459 if updatingScroll then return end
5460 updatingScroll = true
5461 wait(0.25)
5462 updatingScroll = false
5463 scrollBar:Update()
5464 end
5465end
5466
5467local Selection do
5468 local bindGetSelection = explorerPanel:FindFirstChild("GetSelection")
5469 if not bindGetSelection then
5470 bindGetSelection = Create('BindableFunction',{Name = "GetSelection"})
5471 bindGetSelection.Parent = explorerPanel
5472 end
5473
5474 local bindSetSelection = explorerPanel:FindFirstChild("SetSelection")
5475 if not bindSetSelection then
5476 bindSetSelection = Create('BindableFunction',{Name = "SetSelection"})
5477 bindSetSelection.Parent = explorerPanel
5478 end
5479
5480 local bindSelectionChanged = explorerPanel:FindFirstChild("SelectionChanged")
5481 if not bindSelectionChanged then
5482 bindSelectionChanged = Create('BindableEvent',{Name = "SelectionChanged"})
5483 bindSelectionChanged.Parent = explorerPanel
5484 end
5485
5486 local SelectionList = {}
5487 local SelectionSet = {}
5488 local Updates = true
5489 Selection = {
5490 Selected = SelectionSet;
5491 List = SelectionList;
5492 }
5493
5494 local function addObject(object)
5495 -- list update
5496 local lupdate = false
5497 -- scroll update
5498 local supdate = false
5499
5500 if not SelectionSet[object] then
5501 local node = NodeLookup[object]
5502 if node then
5503 table.insert(SelectionList,object)
5504 SelectionSet[object] = true
5505 node.Selected = true
5506
5507 -- expand all ancestors so that selected node becomes visible
5508 node = node.Parent
5509 while node do
5510 if not node.Expanded then
5511 node.Expanded = true
5512 lupdate = true
5513 end
5514 node = node.Parent
5515 end
5516 supdate = true
5517 end
5518 end
5519 return lupdate,supdate
5520 end
5521
5522 function Selection:Set(objects)
5523 local lupdate = false
5524 local supdate = false
5525
5526 if #SelectionList > 0 then
5527 for i = 1,#SelectionList do
5528 local object = SelectionList[i]
5529 local node = NodeLookup[object]
5530 if node then
5531 node.Selected = false
5532 SelectionSet[object] = nil
5533 end
5534 end
5535
5536 SelectionList = {}
5537 Selection.List = SelectionList
5538 supdate = true
5539 end
5540
5541 for i = 1,#objects do
5542 local l,s = addObject(objects[i])
5543 lupdate = l or lupdate
5544 supdate = s or supdate
5545 end
5546
5547 if lupdate then
5548 rawUpdateList()
5549 supdate = true
5550 elseif supdate then
5551 scrollBar:Update()
5552 end
5553
5554 if supdate then
5555 bindSelectionChanged:Fire()
5556 end
5557 end
5558
5559 function Selection:Add(object)
5560 local l,s = addObject(object)
5561 if l then
5562 rawUpdateList()
5563 if Updates then
5564 bindSelectionChanged:Fire()
5565 end
5566 elseif s then
5567 scrollBar:Update()
5568 if Updates then
5569 bindSelectionChanged:Fire()
5570 end
5571 end
5572 end
5573
5574 function Selection:StopUpdates()
5575 Updates = false
5576 end
5577
5578 function Selection:ResumeUpdates()
5579 Updates = true
5580 bindSelectionChanged:Fire()
5581 end
5582
5583 function Selection:Remove(object,noupdate)
5584 if SelectionSet[object] then
5585 local node = NodeLookup[object]
5586 if node then
5587 node.Selected = false
5588 SelectionSet[object] = nil
5589 for i = 1,#SelectionList do
5590 if SelectionList[i] == object then
5591 table.remove(SelectionList,i)
5592 break
5593 end
5594 end
5595
5596 if not noupdate then
5597 scrollBar:Update()
5598 end
5599 bindSelectionChanged:Fire()
5600 end
5601 end
5602 end
5603
5604 function Selection:Get()
5605 local list = {}
5606 for i = 1,#SelectionList do
5607 list[i] = SelectionList[i]
5608 end
5609 return list
5610 end
5611
5612 bindSetSelection.OnInvoke = function(...)
5613 Selection:Set(...)
5614 end
5615
5616 bindGetSelection.OnInvoke = function()
5617 return Selection:Get()
5618 end
5619end
5620
5621function CreateCaution(title,msg)
5622 local newCaution = CautionWindow:Clone()
5623 newCaution.Title.Text = title
5624 newCaution.MainWindow.Desc.Text = msg
5625 newCaution.Parent = explorerPanel.Parent
5626 newCaution.Visible = true
5627 newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
5628 newCaution:Destroy()
5629 end)
5630end
5631
5632function CreateTableCaution(title,msg)
5633 if type(msg) ~= "table" then return CreateCaution(title,tostring(msg)) end
5634 local newCaution = TableCautionWindow:Clone()
5635 newCaution.Title.Text = title
5636
5637 local TableList = newCaution.MainWindow.TableResults
5638 local TableTemplate = newCaution.MainWindow.TableTemplate
5639
5640 for i,v in pairs(msg) do
5641 local newResult = TableTemplate:Clone()
5642 newResult.Type.Text = type(v)
5643 newResult.Value.Text = tostring(v)
5644 newResult.Position = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
5645 newResult.Parent = TableList
5646 TableList.CanvasSize = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
5647 newResult.Visible = true
5648 end
5649 newCaution.Parent = explorerPanel.Parent
5650 newCaution.Visible = true
5651 newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
5652 newCaution:Destroy()
5653 end)
5654end
5655
5656local function Split(str, delimiter)
5657 local start = 1
5658 local t = {}
5659 while true do
5660 local pos = string.find (str, delimiter, start, true)
5661 if not pos then
5662 break
5663 end
5664 table.insert (t, string.sub (str, start, pos - 1))
5665 start = pos + string.len (delimiter)
5666 end
5667 table.insert (t, string.sub (str, start))
5668 return t
5669end
5670
5671local function ToValue(value,type)
5672 if type == "Vector2" then
5673 local list = Split(value,",")
5674 if #list < 2 then return nil end
5675 local x = tonumber(list[1]) or 0
5676 local y = tonumber(list[2]) or 0
5677 return Vector2.new(x,y)
5678 elseif type == "Vector3" then
5679 local list = Split(value,",")
5680 if #list < 3 then return nil end
5681 local x = tonumber(list[1]) or 0
5682 local y = tonumber(list[2]) or 0
5683 local z = tonumber(list[3]) or 0
5684 return Vector3.new(x,y,z)
5685 elseif type == "Color3" then
5686 local list = Split(value,",")
5687 if #list < 3 then return nil end
5688 local r = tonumber(list[1]) or 0
5689 local g = tonumber(list[2]) or 0
5690 local b = tonumber(list[3]) or 0
5691 return Color3.new(r/255,g/255, b/255)
5692 elseif type == "UDim2" then
5693 local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
5694 if #list < 4 then return nil end
5695 local xScale = tonumber(list[1]) or 0
5696 local xOffset = tonumber(list[2]) or 0
5697 local yScale = tonumber(list[3]) or 0
5698 local yOffset = tonumber(list[4]) or 0
5699 return UDim2.new(xScale, xOffset, yScale, yOffset)
5700 elseif type == "Number" then
5701 return tonumber(value)
5702 elseif type == "String" then
5703 return value
5704 elseif type == "NumberRange" then
5705 local list = Split(value,",")
5706 if #list == 1 then
5707 if tonumber(list[1]) == nil then return nil end
5708 local newVal = tonumber(list[1]) or 0
5709 return NumberRange.new(newVal)
5710 end
5711 if #list < 2 then return nil end
5712 local x = tonumber(list[1]) or 0
5713 local y = tonumber(list[2]) or 0
5714 return NumberRange.new(x,y)
5715 elseif type == "Script" then
5716 local success,err = ypcall(function()
5717 _G.D_E_X_DONOTUSETHISPLEASE = nil
5718 loadstring(
5719 "_G.D_E_X_DONOTUSETHISPLEASE = "..value
5720 )()
5721 return _G.D_E_X_DONOTUSETHISPLEASE
5722 end)
5723 if err then
5724 return nil
5725 end
5726 else
5727 return nil
5728 end
5729end
5730
5731function PromptRemoteCaller(inst)
5732 if CurrentRemoteWindow then
5733 CurrentRemoteWindow:Destroy()
5734 CurrentRemoteWindow = nil
5735 end
5736 CurrentRemoteWindow = RemoteWindow:Clone()
5737 CurrentRemoteWindow.Parent = explorerPanel.Parent
5738 CurrentRemoteWindow.Visible = true
5739
5740 local displayValues = false
5741
5742 local ArgumentList = CurrentRemoteWindow.MainWindow.Arguments
5743 local ArgumentTemplate = CurrentRemoteWindow.MainWindow.ArgumentTemplate
5744
5745 if inst:IsA("RemoteEvent") then
5746 CurrentRemoteWindow.Title.Text = "Fire Event"
5747 CurrentRemoteWindow.MainWindow.Ok.Text = "Fire"
5748 CurrentRemoteWindow.MainWindow.DisplayReturned.Visible = false
5749 CurrentRemoteWindow.MainWindow.Desc2.Visible = false
5750 end
5751
5752 local newArgument = ArgumentTemplate:Clone()
5753 newArgument.Parent = ArgumentList
5754 newArgument.Visible = true
5755 newArgument.Type.MouseButton1Down:connect(function()
5756 createDDown(newArgument.Type,function(choice)
5757 newArgument.Type.Text = choice
5758 end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
5759 end)
5760
5761 CurrentRemoteWindow.MainWindow.Ok.MouseButton1Up:connect(function()
5762 if CurrentRemoteWindow and inst.Parent ~= nil then
5763 local MyArguments = {}
5764 for i,v in pairs(ArgumentList:GetChildren()) do
5765 table.insert(MyArguments,ToValue(v.Value.Text,v.Type.Text))
5766 end
5767 if inst:IsA("RemoteFunction") then
5768 if displayValues then
5769 spawn(function()
5770 local myResults = inst:InvokeServer(unpack(MyArguments))
5771 if myResults then
5772 CreateTableCaution("Remote Caller",myResults)
5773 else
5774 CreateCaution("Remote Caller","This remote did not return anything.")
5775 end
5776 end)
5777 else
5778 spawn(function()
5779 inst:InvokeServer(unpack(MyArguments))
5780 end)
5781 end
5782 else
5783 inst:FireServer(unpack(MyArguments))
5784 end
5785 CurrentRemoteWindow:Destroy()
5786 CurrentRemoteWindow = nil
5787 end
5788 end)
5789
5790 CurrentRemoteWindow.MainWindow.Add.MouseButton1Up:connect(function()
5791 if CurrentRemoteWindow then
5792 local newArgument = ArgumentTemplate:Clone()
5793 newArgument.Position = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
5794 newArgument.Parent = ArgumentList
5795 ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
5796 newArgument.Visible = true
5797 newArgument.Type.MouseButton1Down:connect(function()
5798 createDDown(newArgument.Type,function(choice)
5799 newArgument.Type.Text = choice
5800 end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
5801 end)
5802 end
5803 end)
5804
5805 CurrentRemoteWindow.MainWindow.Subtract.MouseButton1Up:connect(function()
5806 if CurrentRemoteWindow then
5807 if #ArgumentList:GetChildren() > 1 then
5808 ArgumentList:GetChildren()[#ArgumentList:GetChildren()]:Destroy()
5809 ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
5810 end
5811 end
5812 end)
5813
5814 CurrentRemoteWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
5815 if CurrentRemoteWindow then
5816 CurrentRemoteWindow:Destroy()
5817 CurrentRemoteWindow = nil
5818 end
5819 end)
5820
5821 CurrentRemoteWindow.MainWindow.DisplayReturned.MouseButton1Up:connect(function()
5822 if displayValues then
5823 displayValues = false
5824 CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = false
5825 else
5826 displayValues = true
5827 CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = true
5828 end
5829 end)
5830end
5831
5832function PromptSaveInstance(inst)
5833 if not SaveInstance and not _G.SaveInstance then CreateCaution("SaveInstance Missing","You do not have the SaveInstance function installed. Please go to RaspberryPi's thread to retrieve it.") return end
5834 if CurrentSaveInstanceWindow then
5835 CurrentSaveInstanceWindow:Destroy()
5836 CurrentSaveInstanceWindow = nil
5837 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
5838 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
5839 end
5840 end
5841 CurrentSaveInstanceWindow = SaveInstanceWindow:Clone()
5842 CurrentSaveInstanceWindow.Parent = explorerPanel.Parent
5843 CurrentSaveInstanceWindow.Visible = true
5844
5845 local filename = CurrentSaveInstanceWindow.MainWindow.FileName
5846 local saveObjects = true
5847 local overwriteCaution = false
5848
5849 CurrentSaveInstanceWindow.MainWindow.Save.MouseButton1Up:connect(function()
5850 if readfile and getelysianpath then
5851 if readfile(getelysianpath()..filename.Text..".rbxmx") then
5852 if not overwriteCaution then
5853 overwriteCaution = true
5854 local newCaution = ConfirmationWindow:Clone()
5855 newCaution.Name = "SaveInstanceOverwriteCaution"
5856 newCaution.MainWindow.Desc.Text = "The file, "..filename.Text..".rbxmx, already exists. Overwrite?"
5857 newCaution.Parent = explorerPanel.Parent
5858 newCaution.Visible = true
5859 newCaution.MainWindow.Yes.MouseButton1Up:connect(function()
5860 ypcall(function()
5861 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
5862 end)
5863 overwriteCaution = false
5864 newCaution:Destroy()
5865 if CurrentSaveInstanceWindow then
5866 CurrentSaveInstanceWindow:Destroy()
5867 CurrentSaveInstanceWindow = nil
5868 end
5869 end)
5870 newCaution.MainWindow.No.MouseButton1Up:connect(function()
5871 overwriteCaution = false
5872 newCaution:Destroy()
5873 end)
5874 end
5875 else
5876 ypcall(function()
5877 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
5878 end)
5879 if CurrentSaveInstanceWindow then
5880 CurrentSaveInstanceWindow:Destroy()
5881 CurrentSaveInstanceWindow = nil
5882 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
5883 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
5884 end
5885 end
5886 end
5887 else
5888 ypcall(function()
5889 if SaveInstance then
5890 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
5891 else
5892 _G.SaveInstance(inst,filename.Text,not saveObjects)
5893 end
5894 end)
5895 if CurrentSaveInstanceWindow then
5896 CurrentSaveInstanceWindow:Destroy()
5897 CurrentSaveInstanceWindow = nil
5898 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
5899 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
5900 end
5901 end
5902 end
5903 end)
5904 CurrentSaveInstanceWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
5905 if CurrentSaveInstanceWindow then
5906 CurrentSaveInstanceWindow:Destroy()
5907 CurrentSaveInstanceWindow = nil
5908 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
5909 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
5910 end
5911 end
5912 end)
5913 CurrentSaveInstanceWindow.MainWindow.SaveObjects.MouseButton1Up:connect(function()
5914 if saveObjects then
5915 saveObjects = false
5916 CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = false
5917 else
5918 saveObjects = true
5919 CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = true
5920 end
5921 end)
5922end
5923
5924function DestroyRightClick()
5925 if currentRightClickMenu then
5926 currentRightClickMenu:Destroy()
5927 currentRightClickMenu = nil
5928 end
5929 if CurrentInsertObjectWindow and CurrentInsertObjectWindow.Visible then
5930 CurrentInsertObjectWindow.Visible = false
5931 end
5932end
5933
5934function rightClickMenu(sObj)
5935 local mouse = game.Players.LocalPlayer:GetMouse()
5936
5937 currentRightClickMenu = CreateRightClickMenu(
5938 {"Cut","Copy","Paste Into","Duplicate","Delete","Group","Ungroup","Select Children","Teleport To","Insert Part","Insert Object","Save Instance","Call Function","Call Remote"},
5939 "",
5940 false,
5941 function(option)
5942 if option == "Cut" then
5943 if not Option.Modifiable then return end
5944 clipboard = {}
5945 local list = Selection.List
5946 local cut = {}
5947 for i = 1,#list do
5948 local obj = list[i]:Clone()
5949 if obj then
5950 table.insert(clipboard,obj)
5951 table.insert(cut,list[i])
5952 end
5953 end
5954 for i = 1,#cut do
5955 pcall(delete,cut[i])
5956 end
5957 elseif option == "Copy" then
5958 if not Option.Modifiable then return end
5959 clipboard = {}
5960 local list = Selection.List
5961 for i = 1,#list do
5962 table.insert(clipboard,list[i]:Clone())
5963 end
5964 elseif option == "Paste Into" then
5965 if not Option.Modifiable then return end
5966 local parent = Selection.List[1] or workspace
5967 for i = 1,#clipboard do
5968 clipboard[i]:Clone().Parent = parent
5969 end
5970 elseif option == "Duplicate" then
5971 if not Option.Modifiable then return end
5972 local list = Selection:Get()
5973 for i = 1,#list do
5974 list[i]:Clone().Parent = Selection.List[1].Parent or workspace
5975 end
5976 elseif option == "Delete" then
5977 if not Option.Modifiable then return end
5978 local list = Selection:Get()
5979 for i = 1,#list do
5980 pcall(delete,list[i])
5981 end
5982 Selection:Set({})
5983 elseif option == "Group" then
5984 if not Option.Modifiable then return end
5985 local newModel = Instance.new("Model")
5986 local list = Selection:Get()
5987 newModel.Parent = Selection.List[1].Parent or workspace
5988 for i = 1,#list do
5989 list[i].Parent = newModel
5990 end
5991 Selection:Set({})
5992 elseif option == "Ungroup" then
5993 if not Option.Modifiable then return end
5994 local ungrouped = {}
5995 local list = Selection:Get()
5996 for i = 1,#list do
5997 if list[i]:IsA("Model") then
5998 for i2,v2 in pairs(list[i]:GetChildren()) do
5999 v2.Parent = list[i].Parent or workspace
6000 table.insert(ungrouped,v2)
6001 end
6002 pcall(delete,list[i])
6003 end
6004 end
6005 Selection:Set({})
6006 if SettingsRemote:Invoke("SelectUngrouped") then
6007 for i,v in pairs(ungrouped) do
6008 Selection:Add(v)
6009 end
6010 end
6011 elseif option == "Select Children" then
6012 if not Option.Modifiable then return end
6013 local list = Selection:Get()
6014 Selection:Set({})
6015 Selection:StopUpdates()
6016 for i = 1,#list do
6017 for i2,v2 in pairs(list[i]:GetChildren()) do
6018 Selection:Add(v2)
6019 end
6020 end
6021 Selection:ResumeUpdates()
6022 elseif option == "Teleport To" then
6023 if not Option.Modifiable then return end
6024 local list = Selection:Get()
6025 for i = 1,#list do
6026 if list[i]:IsA("BasePart") then
6027 pcall(function()
6028 game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = list[i].CFrame
6029 end)
6030 break
6031 end
6032 end
6033 elseif option == "Insert Part" then
6034 if not Option.Modifiable then return end
6035 local insertedParts = {}
6036 local list = Selection:Get()
6037 for i = 1,#list do
6038 pcall(function()
6039 local newPart = Instance.new("Part")
6040 newPart.Parent = list[i]
6041 newPart.CFrame = CFrame.new(game.Players.LocalPlayer.Character.Head.Position) + Vector3.new(0,3,0)
6042 table.insert(insertedParts,newPart)
6043 end)
6044 end
6045 elseif option == "Save Instance" then
6046 if not Option.Modifiable then return end
6047 local list = Selection:Get()
6048 if #list == 1 then
6049 list[1].Archivable = true
6050 ypcall(function()PromptSaveInstance(list[1]:Clone())end)
6051 elseif #list > 1 then
6052 local newModel = Instance.new("Model")
6053 newModel.Name = "SavedInstances"
6054 for i = 1,#list do
6055 ypcall(function()
6056 list[i].Archivable = true
6057 list[i]:Clone().Parent = newModel
6058 end)
6059 end
6060 PromptSaveInstance(newModel)
6061 end
6062 elseif option == "Call Remote" then
6063 if not Option.Modifiable then return end
6064 local list = Selection:Get()
6065 for i = 1,#list do
6066 if list[i]:IsA("RemoteFunction") or list[i]:IsA("RemoteEvent") then
6067 PromptRemoteCaller(list[i])
6068 break
6069 end
6070 end
6071 end
6072 end)
6073 currentRightClickMenu.Parent = explorerPanel.Parent
6074 currentRightClickMenu.Position = UDim2.new(0,mouse.X,0,mouse.Y)
6075 if currentRightClickMenu.AbsolutePosition.X + currentRightClickMenu.AbsoluteSize.X > explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X then
6076 currentRightClickMenu.Position = UDim2.new(0, explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X - currentRightClickMenu.AbsoluteSize.X, 0, mouse.Y)
6077 end
6078end
6079
6080local function cancelReparentDrag()end
6081local function cancelSelectDrag()end
6082do
6083 local listEntries = {}
6084 local nameConnLookup = {}
6085
6086 local mouseDrag = Create('ImageButton',{
6087 Name = "MouseDrag";
6088 Position = UDim2.new(-0.25,0,-0.25,0);
6089 Size = UDim2.new(1.5,0,1.5,0);
6090 Transparency = 1;
6091 AutoButtonColor = false;
6092 Active = true;
6093 ZIndex = 10;
6094 })
6095 local function dragSelect(last,add,button)
6096 local connDrag
6097 local conUp
6098
6099 conDrag = mouseDrag.MouseMoved:connect(function(x,y)
6100 local pos = Vector2.new(x,y) - listFrame.AbsolutePosition
6101 local size = listFrame.AbsoluteSize
6102 if pos.x < 0 or pos.x > size.x or pos.y < 0 or pos.y > size.y then return end
6103
6104 local i = math.ceil(pos.y/ENTRY_BOUND) + scrollBar.ScrollIndex
6105 -- Mouse may have made a large step, so interpolate between the
6106 -- last index and the current.
6107 for n = i<last and i or last, i>last and i or last do
6108 local node = TreeList[n]
6109 if node then
6110 if add then
6111 Selection:Add(node.Object)
6112 else
6113 Selection:Remove(node.Object)
6114 end
6115 end
6116 end
6117 last = i
6118 end)
6119
6120 function cancelSelectDrag()
6121 mouseDrag.Parent = nil
6122 conDrag:disconnect()
6123 conUp:disconnect()
6124 function cancelSelectDrag()end
6125 end
6126
6127 conUp = mouseDrag[button]:connect(cancelSelectDrag)
6128
6129 mouseDrag.Parent = GetScreen(listFrame)
6130 end
6131
6132 local function dragReparent(object,dragGhost,clickPos,ghostOffset)
6133 local connDrag
6134 local conUp
6135 local conUp2
6136
6137 local parentIndex = nil
6138 local dragged = false
6139
6140 local parentHighlight = Create('Frame',{
6141 Transparency = 1;
6142 Visible = false;
6143 Create('Frame',{
6144 BorderSizePixel = 0;
6145 BackgroundColor3 = Color3.new(0,0,0);
6146 BackgroundTransparency = 0.1;
6147 Position = UDim2.new(0,0,0,0);
6148 Size = UDim2.new(1,0,0,1);
6149 });
6150 Create('Frame',{
6151 BorderSizePixel = 0;
6152 BackgroundColor3 = Color3.new(0,0,0);
6153 BackgroundTransparency = 0.1;
6154 Position = UDim2.new(1,0,0,0);
6155 Size = UDim2.new(0,1,1,0);
6156 });
6157 Create('Frame',{
6158 BorderSizePixel = 0;
6159 BackgroundColor3 = Color3.new(0,0,0);
6160 BackgroundTransparency = 0.1;
6161 Position = UDim2.new(0,0,1,0);
6162 Size = UDim2.new(1,0,0,1);
6163 });
6164 Create('Frame',{
6165 BorderSizePixel = 0;
6166 BackgroundColor3 = Color3.new(0,0,0);
6167 BackgroundTransparency = 0.1;
6168 Position = UDim2.new(0,0,0,0);
6169 Size = UDim2.new(0,1,1,0);
6170 });
6171 })
6172 SetZIndex(parentHighlight,9)
6173
6174 conDrag = mouseDrag.MouseMoved:connect(function(x,y)
6175 local dragPos = Vector2.new(x,y)
6176 if dragged then
6177 local pos = dragPos - listFrame.AbsolutePosition
6178 local size = listFrame.AbsoluteSize
6179
6180 parentIndex = nil
6181 parentHighlight.Visible = false
6182 if pos.x >= 0 and pos.x <= size.x and pos.y >= 0 and pos.y <= size.y + ENTRY_SIZE*2 then
6183 local i = math.ceil(pos.y/ENTRY_BOUND-2)
6184 local node = TreeList[i + scrollBar.ScrollIndex]
6185 if node and node.Object ~= object and not object:IsAncestorOf(node.Object) then
6186 parentIndex = i
6187 local entry = listEntries[i]
6188 if entry then
6189 parentHighlight.Visible = true
6190 parentHighlight.Position = UDim2.new(0,1,0,entry.AbsolutePosition.y-listFrame.AbsolutePosition.y)
6191 parentHighlight.Size = UDim2.new(0,size.x-4,0,entry.AbsoluteSize.y)
6192 end
6193 end
6194 end
6195
6196 dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
6197 elseif (clickPos-dragPos).magnitude > 8 then
6198 dragged = true
6199 SetZIndex(dragGhost,9)
6200 dragGhost.IndentFrame.Transparency = 0.25
6201 dragGhost.IndentFrame.EntryText.TextColor3 = GuiColor.TextSelected
6202 dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
6203 dragGhost.Parent = GetScreen(listFrame)
6204 parentHighlight.Parent = listFrame
6205 end
6206 end)
6207
6208 function cancelReparentDrag()
6209 mouseDrag.Parent = nil
6210 conDrag:disconnect()
6211 conUp:disconnect()
6212 conUp2:disconnect()
6213 dragGhost:Destroy()
6214 parentHighlight:Destroy()
6215 function cancelReparentDrag()end
6216 end
6217
6218 local wasSelected = Selection.Selected[object]
6219 if not wasSelected and Option.Selectable then
6220 Selection:Set({object})
6221 end
6222
6223 conUp = mouseDrag.MouseButton1Up:connect(function()
6224 cancelReparentDrag()
6225 if dragged then
6226 if parentIndex then
6227 local parentNode = TreeList[parentIndex + scrollBar.ScrollIndex]
6228 if parentNode then
6229 parentNode.Expanded = true
6230
6231 local parentObj = parentNode.Object
6232 local function parent(a,b)
6233 a.Parent = b
6234 end
6235 if Option.Selectable then
6236 local list = Selection.List
6237 for i = 1,#list do
6238 pcall(parent,list[i],parentObj)
6239 end
6240 else
6241 pcall(parent,object,parentObj)
6242 end
6243 end
6244 end
6245 else
6246 -- do selection click
6247 if wasSelected and Option.Selectable then
6248 Selection:Set({})
6249 end
6250 end
6251 end)
6252 conUp2 = mouseDrag.MouseButton2Down:connect(function()
6253 cancelReparentDrag()
6254 end)
6255
6256 mouseDrag.Parent = GetScreen(listFrame)
6257 end
6258
6259 local entryTemplate = Create('ImageButton',{
6260 Name = "Entry";
6261 Transparency = 1;
6262 AutoButtonColor = false;
6263 Position = UDim2.new(0,0,0,0);
6264 Size = UDim2.new(1,0,0,ENTRY_SIZE);
6265 Create('Frame',{
6266 Name = "IndentFrame";
6267 BackgroundTransparency = 1;
6268 BackgroundColor3 = GuiColor.Selected;
6269 BorderColor3 = GuiColor.BorderSelected;
6270 Position = UDim2.new(0,0,0,0);
6271 Size = UDim2.new(1,0,1,0);
6272 Create(Icon('ImageButton',0),{
6273 Name = "Expand";
6274 AutoButtonColor = false;
6275 Position = UDim2.new(0,-GUI_SIZE,0.5,-GUI_SIZE/2);
6276 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
6277 });
6278 Create(Icon(nil,0),{
6279 Name = "ExplorerIcon";
6280 Position = UDim2.new(0,2+ENTRY_PADDING,0.5,-GUI_SIZE/2);
6281 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
6282 });
6283 Create('TextLabel',{
6284 Name = "EntryText";
6285 BackgroundTransparency = 1;
6286 TextColor3 = GuiColor.Text;
6287 TextXAlignment = 'Left';
6288 TextYAlignment = 'Center';
6289 Font = FONT;
6290 FontSize = FONT_SIZE;
6291 Text = "";
6292 Position = UDim2.new(0,2+ENTRY_SIZE+4,0,0);
6293 Size = UDim2.new(1,-2,1,0);
6294 });
6295 });
6296 })
6297
6298 function scrollBar.UpdateCallback(self)
6299 for i = 1,self.VisibleSpace do
6300 local node = TreeList[i + self.ScrollIndex]
6301 if node then
6302 local entry = listEntries[i]
6303 if not entry then
6304 entry = Create(entryTemplate:Clone(),{
6305 Position = UDim2.new(0,2,0,ENTRY_BOUND*(i-1)+2);
6306 Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE);
6307 ZIndex = listFrame.ZIndex;
6308 })
6309 listEntries[i] = entry
6310
6311 local expand = entry.IndentFrame.Expand
6312 expand.MouseEnter:connect(function()
6313 local node = TreeList[i + self.ScrollIndex]
6314 if #node > 0 then
6315 if node.Expanded then
6316 Icon(expand,NODE_EXPANDED_OVER)
6317 else
6318 Icon(expand,NODE_COLLAPSED_OVER)
6319 end
6320 end
6321 end)
6322 expand.MouseLeave:connect(function()
6323 local node = TreeList[i + self.ScrollIndex]
6324 if #node > 0 then
6325 if node.Expanded then
6326 Icon(expand,NODE_EXPANDED)
6327 else
6328 Icon(expand,NODE_COLLAPSED)
6329 end
6330 end
6331 end)
6332 expand.MouseButton1Down:connect(function()
6333 local node = TreeList[i + self.ScrollIndex]
6334 if #node > 0 then
6335 node.Expanded = not node.Expanded
6336 -- use raw update so the list updates instantly
6337 rawUpdateList()
6338 end
6339 end)
6340
6341 entry.MouseButton1Down:connect(function(x,y)
6342 local node = TreeList[i + self.ScrollIndex]
6343 DestroyRightClick()
6344 if GetAwaitRemote:Invoke() then
6345 bindSetAwaiting:Fire(node.Object)
6346 return
6347 end
6348
6349 if not HoldingShift then
6350 lastSelectedNode = i + self.ScrollIndex
6351 end
6352
6353 if HoldingShift and not filteringWorkspace() then
6354 if lastSelectedNode then
6355 if i + self.ScrollIndex - lastSelectedNode > 0 then
6356 Selection:StopUpdates()
6357 for i2 = 1, i + self.ScrollIndex - lastSelectedNode do
6358 local newNode = TreeList[lastSelectedNode + i2]
6359 if newNode then
6360 Selection:Add(newNode.Object)
6361 end
6362 end
6363 Selection:ResumeUpdates()
6364 else
6365 Selection:StopUpdates()
6366 for i2 = i + self.ScrollIndex - lastSelectedNode, 1 do
6367 local newNode = TreeList[lastSelectedNode + i2]
6368 if newNode then
6369 Selection:Add(newNode.Object)
6370 end
6371 end
6372 Selection:ResumeUpdates()
6373 end
6374 end
6375 return
6376 end
6377
6378 if HoldingCtrl then
6379 if Selection.Selected[node.Object] then
6380 Selection:Remove(node.Object)
6381 else
6382 Selection:Add(node.Object)
6383 end
6384 return
6385 end
6386 if Option.Modifiable then
6387 local pos = Vector2.new(x,y)
6388 dragReparent(node.Object,entry:Clone(),pos,entry.AbsolutePosition-pos)
6389 elseif Option.Selectable then
6390 if Selection.Selected[node.Object] then
6391 Selection:Set({})
6392 else
6393 Selection:Set({node.Object})
6394 end
6395 dragSelect(i+self.ScrollIndex,true,'MouseButton1Up')
6396 end
6397 end)
6398
6399 entry.MouseButton2Down:connect(function()
6400 if not Option.Selectable then return end
6401
6402 DestroyRightClick()
6403
6404 curSelect = entry
6405
6406 local node = TreeList[i + self.ScrollIndex]
6407
6408 if GetAwaitRemote:Invoke() then
6409 bindSetAwaiting:Fire(node.Object)
6410 return
6411 end
6412
6413 if not Selection.Selected[node.Object] then
6414 Selection:Set({node.Object})
6415 end
6416 end)
6417
6418
6419 entry.MouseButton2Up:connect(function()
6420 if not Option.Selectable then return end
6421
6422 local node = TreeList[i + self.ScrollIndex]
6423
6424 if checkMouseInGui(curSelect) then
6425 rightClickMenu(node.Object)
6426 end
6427 end)
6428
6429 entry.Parent = listFrame
6430 end
6431
6432 entry.Visible = true
6433
6434 local object = node.Object
6435
6436 -- update expand icon
6437 if #node == 0 then
6438 entry.IndentFrame.Expand.Visible = false
6439 elseif node.Expanded then
6440 Icon(entry.IndentFrame.Expand,NODE_EXPANDED)
6441 entry.IndentFrame.Expand.Visible = true
6442 else
6443 Icon(entry.IndentFrame.Expand,NODE_COLLAPSED)
6444 entry.IndentFrame.Expand.Visible = true
6445 end
6446
6447 -- update explorer icon
6448 Icon(entry.IndentFrame.ExplorerIcon,ExplorerIndex[object.ClassName] or 0)
6449
6450 -- update indentation
6451 local w = (node.Depth)*(2+ENTRY_PADDING+GUI_SIZE)
6452 entry.IndentFrame.Position = UDim2.new(0,w,0,0)
6453 entry.IndentFrame.Size = UDim2.new(1,-w,1,0)
6454
6455 -- update name change detection
6456 if nameConnLookup[entry] then
6457 nameConnLookup[entry]:disconnect()
6458 end
6459 local text = entry.IndentFrame.EntryText
6460 text.Text = object.Name
6461 nameConnLookup[entry] = node.Object.Changed:connect(function(p)
6462 if p == 'Name' then
6463 text.Text = object.Name
6464 end
6465 end)
6466
6467 -- update selection
6468 entry.IndentFrame.Transparency = node.Selected and 0 or 1
6469 text.TextColor3 = GuiColor[node.Selected and 'TextSelected' or 'Text']
6470
6471 entry.Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE)
6472 elseif listEntries[i] then
6473 listEntries[i].Visible = false
6474 end
6475 end
6476 for i = self.VisibleSpace+1,self.TotalSpace do
6477 local entry = listEntries[i]
6478 if entry then
6479 listEntries[i] = nil
6480 entry:Destroy()
6481 end
6482 end
6483 end
6484
6485 function scrollBarH.UpdateCallback(self)
6486 for i = 1,scrollBar.VisibleSpace do
6487 local node = TreeList[i + scrollBar.ScrollIndex]
6488 if node then
6489 local entry = listEntries[i]
6490 if entry then
6491 entry.Position = UDim2.new(0,2 - scrollBarH.ScrollIndex,0,ENTRY_BOUND*(i-1)+2)
6492 end
6493 end
6494 end
6495 end
6496
6497 Connect(listFrame.Changed,function(p)
6498 if p == 'AbsoluteSize' then
6499 rawUpdateSize()
6500 end
6501 end)
6502
6503 local wheelAmount = 6
6504 explorerPanel.MouseWheelForward:connect(function()
6505 if scrollBar.VisibleSpace - 1 > wheelAmount then
6506 scrollBar:ScrollTo(scrollBar.ScrollIndex - wheelAmount)
6507 else
6508 scrollBar:ScrollTo(scrollBar.ScrollIndex - scrollBar.VisibleSpace)
6509 end
6510 end)
6511 explorerPanel.MouseWheelBackward:connect(function()
6512 if scrollBar.VisibleSpace - 1 > wheelAmount then
6513 scrollBar:ScrollTo(scrollBar.ScrollIndex + wheelAmount)
6514 else
6515 scrollBar:ScrollTo(scrollBar.ScrollIndex + scrollBar.VisibleSpace)
6516 end
6517 end)
6518end
6519
6520----------------------------------------------------------------
6521----------------------------------------------------------------
6522----------------------------------------------------------------
6523----------------------------------------------------------------
6524---- Object detection
6525
6526-- Inserts `v` into `t` at `i`. Also sets `Index` field in `v`.
6527local function insert(t,i,v)
6528 for n = #t,i,-1 do
6529 local v = t[n]
6530 v.Index = n+1
6531 t[n+1] = v
6532 end
6533 v.Index = i
6534 t[i] = v
6535end
6536
6537-- Removes `i` from `t`. Also sets `Index` field in removed value.
6538local function remove(t,i)
6539 local v = t[i]
6540 for n = i+1,#t do
6541 local v = t[n]
6542 v.Index = n-1
6543 t[n-1] = v
6544 end
6545 t[#t] = nil
6546 v.Index = 0
6547 return v
6548end
6549
6550-- Returns how deep `o` is in the tree.
6551local function depth(o)
6552 local d = -1
6553 while o do
6554 o = o.Parent
6555 d = d + 1
6556 end
6557 return d
6558end
6559
6560
6561local connLookup = {}
6562
6563-- Returns whether a node would be present in the tree list
6564local function nodeIsVisible(node)
6565 local visible = true
6566 node = node.Parent
6567 while node and visible do
6568 visible = visible and node.Expanded
6569 node = node.Parent
6570 end
6571 return visible
6572end
6573
6574-- Removes an object's tree node. Called when the object stops existing in the
6575-- game tree.
6576local function removeObject(object)
6577 local objectNode = NodeLookup[object]
6578 if not objectNode then
6579 return
6580 end
6581
6582 local visible = nodeIsVisible(objectNode)
6583
6584 Selection:Remove(object,true)
6585
6586 local parent = objectNode.Parent
6587 remove(parent,objectNode.Index)
6588 NodeLookup[object] = nil
6589 connLookup[object]:disconnect()
6590 connLookup[object] = nil
6591
6592 if visible then
6593 updateList()
6594 elseif nodeIsVisible(parent) then
6595 updateScroll()
6596 end
6597end
6598
6599-- Moves a tree node to a new parent. Called when an existing object's parent
6600-- changes.
6601local function moveObject(object,parent)
6602 local objectNode = NodeLookup[object]
6603 if not objectNode then
6604 return
6605 end
6606
6607 local parentNode = NodeLookup[parent]
6608 if not parentNode then
6609 return
6610 end
6611
6612 local visible = nodeIsVisible(objectNode)
6613
6614 remove(objectNode.Parent,objectNode.Index)
6615 objectNode.Parent = parentNode
6616
6617 objectNode.Depth = depth(object)
6618 local function r(node,d)
6619 for i = 1,#node do
6620 node[i].Depth = d
6621 r(node[i],d+1)
6622 end
6623 end
6624 r(objectNode,objectNode.Depth+1)
6625
6626 insert(parentNode,#parentNode+1,objectNode)
6627
6628 if visible or nodeIsVisible(objectNode) then
6629 updateList()
6630 elseif nodeIsVisible(objectNode.Parent) then
6631 updateScroll()
6632 end
6633end
6634
6635-- ScriptContext['/Libraries/LibraryRegistration/LibraryRegistration']
6636-- This RobloxLocked object lets me index its properties for some reason
6637
6638local function check(object)
6639 return object.AncestryChanged
6640end
6641
6642-- Creates a new tree node from an object. Called when an object starts
6643-- existing in the game tree.
6644local function addObject(object,noupdate)
6645 if script then
6646 -- protect against naughty RobloxLocked objects
6647 local s = pcall(check,object)
6648 if not s then
6649 return
6650 end
6651 end
6652
6653 local parentNode = NodeLookup[object.Parent]
6654 if not parentNode then
6655 return
6656 end
6657
6658 local objectNode = {
6659 Object = object;
6660 Parent = parentNode;
6661 Index = 0;
6662 Expanded = false;
6663 Selected = false;
6664 Depth = depth(object);
6665 }
6666
6667 connLookup[object] = Connect(object.AncestryChanged,function(c,p)
6668 if c == object then
6669 if p == nil then
6670 removeObject(c)
6671 else
6672 moveObject(c,p)
6673 end
6674 end
6675 end)
6676
6677 NodeLookup[object] = objectNode
6678 insert(parentNode,#parentNode+1,objectNode)
6679
6680 if not noupdate then
6681 if nodeIsVisible(objectNode) then
6682 updateList()
6683 elseif nodeIsVisible(objectNode.Parent) then
6684 updateScroll()
6685 end
6686 end
6687end
6688
6689do
6690 NodeLookup[workspace.Parent] = {
6691 Object = workspace.Parent;
6692 Parent = nil;
6693 Index = 0;
6694 Expanded = true;
6695 }
6696
6697 Connect(game.DescendantAdded,addObject)
6698 Connect(game.DescendantRemoving,removeObject)
6699
6700 local function get(o)
6701 return o:GetChildren()
6702 end
6703
6704 local function r(o)
6705 local s,children = pcall(get,o)
6706 if s then
6707 for i = 1,#children do
6708 addObject(children[i],true)
6709 r(children[i])
6710 end
6711 end
6712 end
6713
6714 r(workspace.Parent)
6715
6716 scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
6717 updateList()
6718end
6719
6720----------------------------------------------------------------
6721----------------------------------------------------------------
6722----------------------------------------------------------------
6723----------------------------------------------------------------
6724---- Actions
6725
6726local actionButtons do
6727 actionButtons = {}
6728
6729 local totalActions = (4) + 1
6730 local currentActions = totalActions
6731 local function makeButton(icon,over,name)
6732 local button = Create(Icon('ImageButton',icon),{
6733 Name = name .. "Button";
6734 Visible = Option.Modifiable and Option.Selectable;
6735 Position = UDim2.new(1,-(GUI_SIZE+2)*currentActions+2,0.5,-GUI_SIZE/2);
6736 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
6737 Parent = headerFrame;
6738 })
6739
6740 local tipText = Create('TextLabel',{
6741 Name = name .. "Text";
6742 Text = name;
6743 Visible = false;
6744 BackgroundTransparency = 1;
6745 TextXAlignment = 'Right';
6746 Font = FONT;
6747 FontSize = FONT_SIZE;
6748 Position = UDim2.new(0,0,0,0);
6749 Size = UDim2.new(1,-(GUI_SIZE+2)*totalActions,1,0);
6750 Parent = headerFrame;
6751 })
6752
6753
6754 button.MouseEnter:connect(function()
6755 Icon(button,over)
6756 tipText.Visible = true
6757 end)
6758 button.MouseLeave:connect(function()
6759 Icon(button,icon)
6760 tipText.Visible = false
6761 end)
6762
6763 currentActions = currentActions - 1
6764 actionButtons[#actionButtons+1] = button
6765 return button
6766 end
6767
6768 local clipboard = {}
6769 local function delete(o)
6770 o.Parent = nil
6771 end
6772
6773 --[[
6774 -- CUT
6775 makeButton(ACTION_CUT,ACTION_CUT_OVER,"Cut").MouseButton1Click:connect(function()
6776 if not Option.Modifiable then return end
6777 clipboard = {}
6778 local list = Selection.List
6779 local cut = {}
6780 for i = 1,#list do
6781 local obj = list[i]:Clone()
6782 if obj then
6783 table.insert(clipboard,obj)
6784 table.insert(cut,list[i])
6785 end
6786 end
6787 for i = 1,#cut do
6788 pcall(delete,cut[i])
6789 end
6790 end)
6791
6792 -- COPY
6793 makeButton(ACTION_COPY,ACTION_COPY_OVER,"Copy").MouseButton1Click:connect(function()
6794 if not Option.Modifiable then return end
6795 clipboard = {}
6796 local list = Selection.List
6797 for i = 1,#list do
6798 table.insert(clipboard,list[i]:Clone())
6799 end
6800 end)
6801
6802 -- PASTE
6803 makeButton(ACTION_PASTE,ACTION_PASTE_OVER,"Paste").MouseButton1Click:connect(function()
6804 if not Option.Modifiable then return end
6805 local parent = Selection.List[1] or workspace
6806 for i = 1,#clipboard do
6807 clipboard[i]:Clone().Parent = parent
6808 end
6809 end)
6810
6811 -- DELETE
6812 makeButton(ACTION_DELETE,ACTION_DELETE_OVER,"Delete").MouseButton1Click:connect(function()
6813 if not Option.Modifiable then return end
6814 local list = Selection:Get()
6815 for i = 1,#list do
6816 pcall(delete,list[i])
6817 end
6818 Selection:Set({})
6819 end)
6820 ]]--
6821
6822 -- SORT
6823 -- local actionSort = makeButton(ACTION_SORT,ACTION_SORT_OVER,"Sort")
6824end
6825
6826----------------------------------------------------------------
6827----------------------------------------------------------------
6828----------------------------------------------------------------
6829----------------------------------------------------------------
6830---- Option Bindables
6831
6832do
6833 local optionCallback = {
6834 Modifiable = function(value)
6835 for i = 1,#actionButtons do
6836 actionButtons[i].Visible = value and Option.Selectable
6837 end
6838 cancelReparentDrag()
6839 end;
6840 Selectable = function(value)
6841 for i = 1,#actionButtons do
6842 actionButtons[i].Visible = value and Option.Modifiable
6843 end
6844 cancelSelectDrag()
6845 Selection:Set({})
6846 end;
6847 }
6848
6849 local bindSetOption = explorerPanel:FindFirstChild("SetOption")
6850 if not bindSetOption then
6851 bindSetOption = Create('BindableFunction',{Name = "SetOption"})
6852 bindSetOption.Parent = explorerPanel
6853 end
6854
6855 bindSetOption.OnInvoke = function(optionName,value)
6856 if optionCallback[optionName] then
6857 Option[optionName] = value
6858 optionCallback[optionName](value)
6859 end
6860 end
6861
6862 local bindGetOption = explorerPanel:FindFirstChild("GetOption")
6863 if not bindGetOption then
6864 bindGetOption = Create('BindableFunction',{Name = "GetOption"})
6865 bindGetOption.Parent = explorerPanel
6866 end
6867
6868 bindGetOption.OnInvoke = function(optionName)
6869 if optionName then
6870 return Option[optionName]
6871 else
6872 local options = {}
6873 for k,v in pairs(Option) do
6874 options[k] = v
6875 end
6876 return options
6877 end
6878 end
6879end
6880
6881function SelectionVar()
6882 return Selection
6883end
6884
6885Input.InputBegan:connect(function(key)
6886 if key.KeyCode == Enum.KeyCode.LeftControl then
6887 HoldingCtrl = true
6888 end
6889 if key.KeyCode == Enum.KeyCode.LeftShift then
6890 HoldingShift = true
6891 end
6892end)
6893
6894Input.InputEnded:connect(function(key)
6895 if key.KeyCode == Enum.KeyCode.LeftControl then
6896 HoldingCtrl = false
6897 end
6898 if key.KeyCode == Enum.KeyCode.LeftShift then
6899 HoldingShift = false
6900 end
6901end)
6902
6903while RbxApi == nil do
6904 RbxApi = GetApiRemote:Invoke()
6905 wait()
6906end
6907
6908explorerFilter.Changed:connect(function(prop)
6909 if prop == "Text" then
6910 rawUpdateList()
6911 end
6912end)
6913
6914CurrentInsertObjectWindow = CreateInsertObjectMenu(
6915 GetClasses(),
6916 "",
6917 false,
6918 function(option)
6919 CurrentInsertObjectWindow.Visible = false
6920 local list = SelectionVar():Get()
6921 for i = 1,#list do
6922 pcall(function() Instance.new(option,list[i]) end)
6923 end
6924 DestroyRightClick()
6925 end
6926)
6927end)
6928
6929spawn(function()
6930 --[[
6931
6932Change log:
6933
693409/18
6935 Fixed checkbox mouseover sprite
6936 Encapsulated checkbox creation into separate method
6937 Fixed another checkbox issue
6938
693909/15
6940 Invalid input is ignored instead of setting to default of that data type
6941 Consolidated control methods and simplified them
6942 All input goes through ToValue method
6943 Fixed position of BrickColor palette
6944 Made DropDown appear above row if it would otherwise exceed the page height
6945 Cleaned up stylesheets
6946
694709/14
6948 Made properties window scroll when mouse wheel scrolled
6949 Object/Instance and Color3 data types handled properly
6950 Multiple BrickColor controls interfering with each other fixed
6951 Added support for Content data type
6952
6953--]]
6954
6955wait(0.2)
6956
6957local print = function(s)
6958 print(tostring(s))
6959end
6960
6961-- Services
6962local Teams = game:GetService("Teams")
6963local Workspace = game:GetService("Workspace")
6964local Debris = game:GetService("Debris")
6965local ContentProvider = game:GetService("ContentProvider")
6966local Players = game:GetService("Players")
6967local ReplicatedStorage = game:GetService("ReplicatedStorage")
6968
6969-- Functions
6970function httpGet(url)
6971 return game:HttpGet(url,true)
6972end
6973
6974-- RbxApi Stuff
6975
6976local apiUrl = "http://anaminus.github.io/rbx/json/api/latest.json"
6977local maxChunkSize = 100 * 1000
6978local ApiJson
6979if script:FindFirstChild("RawApiJson") then
6980 ApiJson = script.RawApiJson
6981else
6982 ApiJson = ""
6983end
6984
6985
6986function getLocalApiJson()
6987 local rawApiJson = require(ApiJson)()
6988 return rawApiJson
6989end
6990
6991function getCurrentApiJson()
6992 local jsonStr = [===[
6993 [{"Superclass":null,"type":"Class","Name":"Instance","tags":["notbrowsable"]},{"ValueType":"bool","type":"Property","Name":"Archivable","tags":[],"Class":"Instance"},{"ValueType":"string","type":"Property","Name":"ClassName","tags":["readonly"],"Class":"Instance"},{"ValueType":"int","type":"Property","Name":"DataCost","tags":["RobloxPlaceSecurity","readonly"],"Class":"Instance"},{"ValueType":"string","type":"Property","Name":"Name","tags":[],"Class":"Instance"},{"ValueType":"Object","type":"Property","Name":"Parent","tags":[],"Class":"Instance"},{"ValueType":"bool","type":"Property","Name":"RobloxLocked","tags":["PluginSecurity"],"Class":"Instance"},{"ValueType":"bool","type":"Property","Name":"archivable","tags":["hidden"],"Class":"Instance"},{"ValueType":"string","type":"Property","Name":"className","tags":["deprecated","readonly"],"Class":"Instance"},{"ReturnType":"void","Arguments":[],"Name":"ClearAllChildren","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"Instance","Arguments":[],"Name":"Clone","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Destroy","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"name","Default":null},{"Type":"bool","Name":"recursive","Default":"false"}],"Name":"FindFirstChild","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"Objects","Arguments":[],"Name":"GetChildren","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"string","Arguments":[{"Type":"int","Name":"scopeLength","Default":"4"}],"Name":"GetDebugId","tags":["PluginSecurity","notbrowsable"],"Class":"Instance","type":"Function"},{"ReturnType":"string","Arguments":[],"Name":"GetFullName","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"string","Name":"className","Default":null}],"Name":"IsA","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Instance","Name":"descendant","Default":null}],"Name":"IsAncestorOf","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Instance","Name":"ancestor","Default":null}],"Name":"IsDescendantOf","tags":[],"Class":"Instance","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Remove","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"Objects","Arguments":[],"Name":"children","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"Instance","Arguments":[],"Name":"clone","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"destroy","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"name","Default":null},{"Type":"bool","Name":"recursive","Default":"false"}],"Name":"findFirstChild","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"Objects","Arguments":[],"Name":"getChildren","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"string","Name":"className","Default":null}],"Name":"isA","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Instance","Name":"ancestor","Default":null}],"Name":"isDescendantOf","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"remove","tags":["deprecated"],"Class":"Instance","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"childName","Default":null}],"Name":"WaitForChild","tags":[],"Class":"Instance","type":"YieldFunction"},{"Arguments":[{"Name":"child","Type":"Instance"},{"Name":"parent","Type":"Instance"}],"Name":"AncestryChanged","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"property","Type":"Property"}],"Name":"Changed","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"child","Type":"Instance"}],"Name":"ChildAdded","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"child","Type":"Instance"}],"Name":"ChildRemoved","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"descendant","Type":"Instance"}],"Name":"DescendantAdded","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"descendant","Type":"Instance"}],"Name":"DescendantRemoving","tags":[],"Class":"Instance","type":"Event"},{"Arguments":[{"Name":"child","Type":"Instance"}],"Name":"childAdded","tags":["deprecated"],"Class":"Instance","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Accoutrement","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"AttachmentForward","tags":[],"Class":"Accoutrement"},{"ValueType":"CoordinateFrame","type":"Property","Name":"AttachmentPoint","tags":[],"Class":"Accoutrement"},{"ValueType":"Vector3","type":"Property","Name":"AttachmentPos","tags":[],"Class":"Accoutrement"},{"ValueType":"Vector3","type":"Property","Name":"AttachmentRight","tags":[],"Class":"Accoutrement"},{"ValueType":"Vector3","type":"Property","Name":"AttachmentUp","tags":[],"Class":"Accoutrement"},{"Superclass":"Accoutrement","type":"Class","Name":"Accessory","tags":[]},{"Superclass":"Accoutrement","type":"Class","Name":"Hat","tags":["deprecated"]},{"Superclass":"Instance","type":"Class","Name":"AdService","tags":["notCreatable"]},{"ReturnType":"void","Arguments":[],"Name":"ShowVideoAd","tags":[],"Class":"AdService","type":"Function"},{"Arguments":[{"Name":"adShown","Type":"bool"}],"Name":"VideoAdClosed","tags":[],"Class":"AdService","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"AdvancedDragger","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Animation","tags":[]},{"ValueType":"Content","type":"Property","Name":"AnimationId","tags":[],"Class":"Animation"},{"Superclass":"Instance","type":"Class","Name":"AnimationController","tags":[]},{"ReturnType":"Array","Arguments":[],"Name":"GetPlayingAnimationTracks","tags":[],"Class":"AnimationController","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"Instance","Name":"animation","Default":null}],"Name":"LoadAnimation","tags":[],"Class":"AnimationController","type":"Function"},{"Arguments":[{"Name":"animationTrack","Type":"Instance"}],"Name":"AnimationPlayed","tags":[],"Class":"AnimationController","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"AnimationTrack","tags":[]},{"ValueType":"Object","type":"Property","Name":"Animation","tags":["readonly"],"Class":"AnimationTrack"},{"ValueType":"bool","type":"Property","Name":"IsPlaying","tags":["readonly"],"Class":"AnimationTrack"},{"ValueType":"float","type":"Property","Name":"Length","tags":["readonly"],"Class":"AnimationTrack"},{"ValueType":"AnimationPriority","type":"Property","Name":"Priority","tags":[],"Class":"AnimationTrack"},{"ValueType":"float","type":"Property","Name":"TimePosition","tags":[],"Class":"AnimationTrack"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"speed","Default":"1"}],"Name":"AdjustSpeed","tags":[],"Class":"AnimationTrack","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"weight","Default":"1"},{"Type":"float","Name":"fadeTime","Default":"0.100000001"}],"Name":"AdjustWeight","tags":[],"Class":"AnimationTrack","type":"Function"},{"ReturnType":"double","Arguments":[{"Type":"string","Name":"keyframeName","Default":null}],"Name":"GetTimeOfKeyframe","tags":[],"Class":"AnimationTrack","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"fadeTime","Default":"0.100000001"},{"Type":"float","Name":"weight","Default":"1"},{"Type":"float","Name":"speed","Default":"1"}],"Name":"Play","tags":[],"Class":"AnimationTrack","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"fadeTime","Default":"0.100000001"}],"Name":"Stop","tags":[],"Class":"AnimationTrack","type":"Function"},{"Arguments":[{"Name":"keyframeName","Type":"string"}],"Name":"KeyframeReached","tags":[],"Class":"AnimationTrack","type":"Event"},{"Arguments":[],"Name":"Stopped","tags":["deprecated"],"Class":"AnimationTrack","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"AnimationTrackState","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Animator","tags":[]},{"ReturnType":"Instance","Arguments":[{"Type":"Instance","Name":"animation","Default":null}],"Name":"LoadAnimation","tags":[],"Class":"Animator","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"AssetService","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"revertUrl","Default":null}],"Name":"SetAssetRevertUrl","tags":["LocalUserSecurity"],"Class":"AssetService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"versionsUrl","Default":null}],"Name":"SetAssetVersionsUrl","tags":["LocalUserSecurity"],"Class":"AssetService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"accessUrl","Default":null}],"Name":"SetPlaceAccessUrl","tags":["LocalUserSecurity"],"Class":"AssetService","type":"Function"},{"ReturnType":"int","Arguments":[{"Type":"string","Name":"placeName","Default":null},{"Type":"int","Name":"templatePlaceID","Default":null},{"Type":"string","Name":"description","Default":""}],"Name":"CreatePlaceAsync","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"int","Arguments":[{"Type":"Instance","Name":"player","Default":null},{"Type":"string","Name":"placeName","Default":null},{"Type":"int","Name":"templatePlaceID","Default":null},{"Type":"string","Name":"description","Default":""}],"Name":"CreatePlaceInPlayerInventoryAsync","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"Dictionary","Arguments":[{"Type":"int","Name":"placeId","Default":null},{"Type":"int","Name":"pageNum","Default":"1"}],"Name":"GetAssetVersions","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"int","Arguments":[{"Type":"int","Name":"creationID","Default":null}],"Name":"GetCreatorAssetID","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"Instance","Arguments":[],"Name":"GetGamePlacesAsync","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"Dictionary","Arguments":[{"Type":"int","Name":"placeId","Default":null}],"Name":"GetPlacePermissions","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"placeId","Default":null},{"Type":"int","Name":"versionNumber","Default":null}],"Name":"RevertAsset","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"void","Arguments":[],"Name":"SavePlaceAsync","tags":[],"Class":"AssetService","type":"YieldFunction"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"placeId","Default":null},{"Type":"AccessType","Name":"accessType","Default":"Everyone"},{"Type":"Array","Name":"inviteList","Default":"{}"}],"Name":"SetPlacePermissions","tags":[],"Class":"AssetService","type":"YieldFunction"},{"Superclass":"Instance","type":"Class","Name":"Attachment","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"Axis","tags":[],"Class":"Attachment"},{"ValueType":"CoordinateFrame","type":"Property","Name":"CFrame","tags":[],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"Position","tags":[],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"Rotation","tags":[],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"SecondaryAxis","tags":[],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"WorldAxis","tags":["readonly"],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"WorldPosition","tags":["readonly"],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"WorldRotation","tags":["readonly"],"Class":"Attachment"},{"ValueType":"Vector3","type":"Property","Name":"WorldSecondaryAxis","tags":["readonly"],"Class":"Attachment"},{"ReturnType":"Vector3","Arguments":[],"Name":"GetAxis","tags":[],"Class":"Attachment","type":"Function"},{"ReturnType":"Vector3","Arguments":[],"Name":"GetSecondaryAxis","tags":[],"Class":"Attachment","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Vector3","Name":"axis","Default":null}],"Name":"SetAxis","tags":[],"Class":"Attachment","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Vector3","Name":"axis","Default":null}],"Name":"SetSecondaryAxis","tags":[],"Class":"Attachment","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"BadgeService","tags":["notCreatable"]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetAwardBadgeUrl","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"seconds","Default":null}],"Name":"SetHasBadgeCooldown","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetHasBadgeUrl","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetIsBadgeDisabledUrl","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetIsBadgeLegalUrl","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"placeId","Default":null}],"Name":"SetPlaceId","tags":["LocalUserSecurity"],"Class":"BadgeService","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"userId","Default":null},{"Type":"int","Name":"badgeId","Default":null}],"Name":"AwardBadge","tags":[],"Class":"BadgeService","type":"YieldFunction"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"badgeId","Default":null}],"Name":"IsDisabled","tags":[],"Class":"BadgeService","type":"YieldFunction"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"badgeId","Default":null}],"Name":"IsLegal","tags":[],"Class":"BadgeService","type":"YieldFunction"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"userId","Default":null},{"Type":"int","Name":"badgeId","Default":null}],"Name":"UserHasBadge","tags":[],"Class":"BadgeService","type":"YieldFunction"},{"Arguments":[{"Name":"message","Type":"string"},{"Name":"userId","Type":"int"},{"Name":"badgeId","Type":"int"}],"Name":"BadgeAwarded","tags":["RobloxScriptSecurity"],"Class":"BadgeService","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"BasePlayerGui","tags":[]},{"Superclass":"BasePlayerGui","type":"Class","Name":"CoreGui","tags":["notCreatable","notbrowsable"]},{"ValueType":"Object","type":"Property","Name":"SelectionImageObject","tags":["RobloxScriptSecurity"],"Class":"CoreGui"},{"ValueType":"int","type":"Property","Name":"Version","tags":["readonly"],"Class":"CoreGui"},{"Superclass":"BasePlayerGui","type":"Class","Name":"PlayerGui","tags":["notCreatable"]},{"ValueType":"Object","type":"Property","Name":"SelectionImageObject","tags":[],"Class":"PlayerGui"},{"ReturnType":"float","Arguments":[],"Name":"GetTopbarTransparency","tags":[],"Class":"PlayerGui","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"transparency","Default":null}],"Name":"SetTopbarTransparency","tags":[],"Class":"PlayerGui","type":"Function"},{"Arguments":[{"Name":"transparency","Type":"float"}],"Name":"TopbarTransparencyChangedSignal","tags":[],"Class":"PlayerGui","type":"Event"},{"Superclass":"BasePlayerGui","type":"Class","Name":"StarterGui","tags":[]},{"ValueType":"bool","type":"Property","Name":"ResetPlayerGuiOnSpawn","tags":[],"Class":"StarterGui"},{"ValueType":"bool","type":"Property","Name":"ShowDevelopmentGui","tags":[],"Class":"StarterGui"},{"ReturnType":"bool","Arguments":[{"Type":"CoreGuiType","Name":"coreGuiType","Default":null}],"Name":"GetCoreGuiEnabled","tags":[],"Class":"StarterGui","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"parameterName","Default":null},{"Type":"Function","Name":"getFunction","Default":null}],"Name":"RegisterGetCore","tags":["RobloxScriptSecurity"],"Class":"StarterGui","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"parameterName","Default":null},{"Type":"Function","Name":"setFunction","Default":null}],"Name":"RegisterSetCore","tags":["RobloxScriptSecurity"],"Class":"StarterGui","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"parameterName","Default":null},{"Type":"Variant","Name":"value","Default":null}],"Name":"SetCore","tags":[],"Class":"StarterGui","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"CoreGuiType","Name":"coreGuiType","Default":null},{"Type":"bool","Name":"enabled","Default":null}],"Name":"SetCoreGuiEnabled","tags":[],"Class":"StarterGui","type":"Function"},{"ReturnType":"Variant","Arguments":[{"Type":"string","Name":"parameterName","Default":null}],"Name":"GetCore","tags":[],"Class":"StarterGui","type":"YieldFunction"},{"Arguments":[{"Name":"coreGuiType","Type":"CoreGuiType"},{"Name":"enabled","Type":"bool"}],"Name":"CoreGuiChangedSignal","tags":["RobloxScriptSecurity"],"Class":"StarterGui","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"BinaryStringValue","tags":[]},{"Superclass":"Instance","type":"Class","Name":"BindableEvent","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"Tuple","Name":"arguments","Default":null}],"Name":"Fire","tags":[],"Class":"BindableEvent","type":"Function"},{"Arguments":[{"Name":"arguments","Type":"Tuple"}],"Name":"Event","tags":[],"Class":"BindableEvent","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"BindableFunction","tags":[]},{"ReturnType":"Tuple","Arguments":[{"Type":"Tuple","Name":"arguments","Default":null}],"Name":"Invoke","tags":[],"Class":"BindableFunction","type":"YieldFunction"},{"ReturnType":"Tuple","Arguments":[{"Name":"arguments","Type":"Tuple"}],"Name":"OnInvoke","tags":[],"Class":"BindableFunction","type":"Callback"},{"Superclass":"Instance","type":"Class","Name":"BodyMover","tags":[]},{"Superclass":"BodyMover","type":"Class","Name":"BodyAngularVelocity","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"AngularVelocity","tags":[],"Class":"BodyAngularVelocity"},{"ValueType":"Vector3","type":"Property","Name":"MaxTorque","tags":[],"Class":"BodyAngularVelocity"},{"ValueType":"float","type":"Property","Name":"P","tags":[],"Class":"BodyAngularVelocity"},{"ValueType":"Vector3","type":"Property","Name":"angularvelocity","tags":["deprecated"],"Class":"BodyAngularVelocity"},{"ValueType":"Vector3","type":"Property","Name":"maxTorque","tags":["deprecated"],"Class":"BodyAngularVelocity"},{"Superclass":"BodyMover","type":"Class","Name":"BodyForce","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"Force","tags":[],"Class":"BodyForce"},{"ValueType":"Vector3","type":"Property","Name":"force","tags":["deprecated"],"Class":"BodyForce"},{"Superclass":"BodyMover","type":"Class","Name":"BodyGyro","tags":[]},{"ValueType":"CoordinateFrame","type":"Property","Name":"CFrame","tags":[],"Class":"BodyGyro"},{"ValueType":"float","type":"Property","Name":"D","tags":[],"Class":"BodyGyro"},{"ValueType":"Vector3","type":"Property","Name":"MaxTorque","tags":[],"Class":"BodyGyro"},{"ValueType":"float","type":"Property","Name":"P","tags":[],"Class":"BodyGyro"},{"ValueType":"CoordinateFrame","type":"Property","Name":"cframe","tags":["deprecated"],"Class":"BodyGyro"},{"ValueType":"Vector3","type":"Property","Name":"maxTorque","tags":["deprecated"],"Class":"BodyGyro"},{"Superclass":"BodyMover","type":"Class","Name":"BodyPosition","tags":[]},{"ValueType":"float","type":"Property","Name":"D","tags":[],"Class":"BodyPosition"},{"ValueType":"Vector3","type":"Property","Name":"MaxForce","tags":[],"Class":"BodyPosition"},{"ValueType":"float","type":"Property","Name":"P","tags":[],"Class":"BodyPosition"},{"ValueType":"Vector3","type":"Property","Name":"Position","tags":[],"Class":"BodyPosition"},{"ValueType":"Vector3","type":"Property","Name":"maxForce","tags":["deprecated"],"Class":"BodyPosition"},{"ValueType":"Vector3","type":"Property","Name":"position","tags":["deprecated"],"Class":"BodyPosition"},{"ReturnType":"Vector3","Arguments":[],"Name":"GetLastForce","tags":[],"Class":"BodyPosition","type":"Function"},{"ReturnType":"Vector3","Arguments":[],"Name":"lastForce","tags":["deprecated"],"Class":"BodyPosition","type":"Function"},{"Arguments":[],"Name":"ReachedTarget","tags":[],"Class":"BodyPosition","type":"Event"},{"Superclass":"BodyMover","type":"Class","Name":"BodyThrust","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"Force","tags":[],"Class":"BodyThrust"},{"ValueType":"Vector3","type":"Property","Name":"Location","tags":[],"Class":"BodyThrust"},{"ValueType":"Vector3","type":"Property","Name":"force","tags":["deprecated"],"Class":"BodyThrust"},{"ValueType":"Vector3","type":"Property","Name":"location","tags":["deprecated"],"Class":"BodyThrust"},{"Superclass":"BodyMover","type":"Class","Name":"BodyVelocity","tags":[]},{"ValueType":"Vector3","type":"Property","Name":"MaxForce","tags":[],"Class":"BodyVelocity"},{"ValueType":"float","type":"Property","Name":"P","tags":[],"Class":"BodyVelocity"},{"ValueType":"Vector3","type":"Property","Name":"Velocity","tags":[],"Class":"BodyVelocity"},{"ValueType":"Vector3","type":"Property","Name":"maxForce","tags":["deprecated"],"Class":"BodyVelocity"},{"ValueType":"Vector3","type":"Property","Name":"velocity","tags":["deprecated"],"Class":"BodyVelocity"},{"ReturnType":"Vector3","Arguments":[],"Name":"GetLastForce","tags":[],"Class":"BodyVelocity","type":"Function"},{"ReturnType":"Vector3","Arguments":[],"Name":"lastForce","tags":[],"Class":"BodyVelocity","type":"Function"},{"Superclass":"BodyMover","type":"Class","Name":"RocketPropulsion","tags":[]},{"ValueType":"float","type":"Property","Name":"CartoonFactor","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"MaxSpeed","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"MaxThrust","tags":[],"Class":"RocketPropulsion"},{"ValueType":"Vector3","type":"Property","Name":"MaxTorque","tags":[],"Class":"RocketPropulsion"},{"ValueType":"Object","type":"Property","Name":"Target","tags":[],"Class":"RocketPropulsion"},{"ValueType":"Vector3","type":"Property","Name":"TargetOffset","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"TargetRadius","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"ThrustD","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"ThrustP","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"TurnD","tags":[],"Class":"RocketPropulsion"},{"ValueType":"float","type":"Property","Name":"TurnP","tags":[],"Class":"RocketPropulsion"},{"ReturnType":"void","Arguments":[],"Name":"Abort","tags":[],"Class":"RocketPropulsion","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Fire","tags":[],"Class":"RocketPropulsion","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"fire","tags":["deprecated"],"Class":"RocketPropulsion","type":"Function"},{"Arguments":[],"Name":"ReachedTarget","tags":[],"Class":"RocketPropulsion","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"BoolValue","tags":[]},{"ValueType":"bool","type":"Property","Name":"Value","tags":[],"Class":"BoolValue"},{"Arguments":[{"Name":"value","Type":"bool"}],"Name":"Changed","tags":[],"Class":"BoolValue","type":"Event"},{"Arguments":[{"Name":"value","Type":"bool"}],"Name":"changed","tags":["deprecated"],"Class":"BoolValue","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"BrickColorValue","tags":[]},{"ValueType":"BrickColor","type":"Property","Name":"Value","tags":[],"Class":"BrickColorValue"},{"Arguments":[{"Name":"value","Type":"BrickColor"}],"Name":"Changed","tags":[],"Class":"BrickColorValue","type":"Event"},{"Arguments":[{"Name":"value","Type":"BrickColor"}],"Name":"changed","tags":["deprecated"],"Class":"BrickColorValue","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Button","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"bool","Name":"active","Default":null}],"Name":"SetActive","tags":["PluginSecurity"],"Class":"Button","type":"Function"},{"Arguments":[],"Name":"Click","tags":["PluginSecurity"],"Class":"Button","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"CFrameValue","tags":[]},{"ValueType":"CoordinateFrame","type":"Property","Name":"Value","tags":[],"Class":"CFrameValue"},{"Arguments":[{"Name":"value","Type":"CoordinateFrame"}],"Name":"Changed","tags":[],"Class":"CFrameValue","type":"Event"},{"Arguments":[{"Name":"value","Type":"CoordinateFrame"}],"Name":"changed","tags":["deprecated"],"Class":"CFrameValue","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"CacheableContentProvider","tags":[]},{"Superclass":"CacheableContentProvider","type":"Class","Name":"MeshContentProvider","tags":[]},{"Superclass":"CacheableContentProvider","type":"Class","Name":"SolidModelContentProvider","tags":[]},{"Superclass":"CacheableContentProvider","type":"Class","Name":"TextureContentProvider","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Camera","tags":[]},{"ValueType":"CoordinateFrame","type":"Property","Name":"CFrame","tags":[],"Class":"Camera"},{"ValueType":"Object","type":"Property","Name":"CameraSubject","tags":[],"Class":"Camera"},{"ValueType":"CameraType","type":"Property","Name":"CameraType","tags":[],"Class":"Camera"},{"ValueType":"CoordinateFrame","type":"Property","Name":"CoordinateFrame","tags":["deprecated","hidden"],"Class":"Camera"},{"ValueType":"float","type":"Property","Name":"FieldOfView","tags":[],"Class":"Camera"},{"ValueType":"CoordinateFrame","type":"Property","Name":"Focus","tags":[],"Class":"Camera"},{"ValueType":"bool","type":"Property","Name":"HeadLocked","tags":[],"Class":"Camera"},{"ValueType":"float","type":"Property","Name":"HeadScale","tags":[],"Class":"Camera"},{"ValueType":"Vector2","type":"Property","Name":"ViewportSize","tags":["readonly"],"Class":"Camera"},{"ValueType":"CoordinateFrame","type":"Property","Name":"focus","tags":["deprecated"],"Class":"Camera"},{"ReturnType":"float","Arguments":[],"Name":"GetPanSpeed","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"CoordinateFrame","Arguments":[],"Name":"GetRenderCFrame","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"float","Arguments":[],"Name":"GetRoll","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"float","Arguments":[],"Name":"GetTiltSpeed","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"CoordinateFrame","Name":"endPos","Default":null},{"Type":"CoordinateFrame","Name":"endFocus","Default":null},{"Type":"float","Name":"duration","Default":null}],"Name":"Interpolate","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"units","Default":null}],"Name":"PanUnits","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"Ray","Arguments":[{"Type":"float","Name":"x","Default":null},{"Type":"float","Name":"y","Default":null},{"Type":"float","Name":"depth","Default":"0"}],"Name":"ScreenPointToRay","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"CameraPanMode","Name":"mode","Default":"Classic"}],"Name":"SetCameraPanMode","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"rollAngle","Default":null}],"Name":"SetRoll","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"int","Name":"units","Default":null}],"Name":"TiltUnits","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"Ray","Arguments":[{"Type":"float","Name":"x","Default":null},{"Type":"float","Name":"y","Default":null},{"Type":"float","Name":"depth","Default":"0"}],"Name":"ViewportPointToRay","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"Tuple","Arguments":[{"Type":"Vector3","Name":"worldPoint","Default":null}],"Name":"WorldToScreenPoint","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"Tuple","Arguments":[{"Type":"Vector3","Name":"worldPoint","Default":null}],"Name":"WorldToViewportPoint","tags":[],"Class":"Camera","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"float","Name":"distance","Default":null}],"Name":"Zoom","tags":["RobloxScriptSecurity"],"Class":"Camera","type":"Function"},{"Arguments":[{"Name":"entering","Type":"bool"}],"Name":"FirstPersonTransition","tags":["RobloxPlaceSecurity"],"Class":"Camera","type":"Event"},{"Arguments":[],"Name":"InterpolationFinished","tags":[],"Class":"Camera","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"ChangeHistoryService","tags":["notCreatable"]},{"ReturnType":"Tuple","Arguments":[],"Name":"GetCanRedo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"Tuple","Arguments":[],"Name":"GetCanUndo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Redo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"ResetWaypoints","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"bool","Name":"state","Default":null}],"Name":"SetEnabled","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"name","Default":null}],"Name":"SetWaypoint","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Undo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Function"},{"Arguments":[{"Name":"waypoint","Type":"string"}],"Name":"OnRedo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Event"},{"Arguments":[{"Name":"waypoint","Type":"string"}],"Name":"OnUndo","tags":["PluginSecurity"],"Class":"ChangeHistoryService","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"CharacterAppearance","tags":[]},{"Superclass":"CharacterAppearance","type":"Class","Name":"BodyColors","tags":[]},{"ValueType":"BrickColor","type":"Property","Name":"HeadColor","tags":[],"Class":"BodyColors"},{"ValueType":"BrickColor","type":"Property","Name":"LeftArmColor","tags":[],"Class":"BodyColors"},{"ValueType":"BrickColor","type":"Property","Name":"LeftLegColor","tags":[],"Class":"BodyColors"},{"ValueType":"BrickColor","type":"Property","Name":"RightArmColor","tags":[],"Class":"BodyColors"},{"ValueType":"BrickColor","type":"Property","Name":"RightLegColor","tags":[],"Class":"BodyColors"},{"ValueType":"BrickColor","type":"Property","Name":"TorsoColor","tags":[],"Class":"BodyColors"},{"Superclass":"CharacterAppearance","type":"Class","Name":"CharacterMesh","tags":[]},{"ValueType":"int","type":"Property","Name":"BaseTextureId","tags":[],"Class":"CharacterMesh"},{"ValueType":"BodyPart","type":"Property","Name":"BodyPart","tags":[],"Class":"CharacterMesh"},{"ValueType":"int","type":"Property","Name":"MeshId","tags":[],"Class":"CharacterMesh"},{"ValueType":"int","type":"Property","Name":"OverlayTextureId","tags":[],"Class":"CharacterMesh"},{"Superclass":"CharacterAppearance","type":"Class","Name":"Clothing","tags":[]},{"Superclass":"Clothing","type":"Class","Name":"Pants","tags":[]},{"ValueType":"Content","type":"Property","Name":"PantsTemplate","tags":[],"Class":"Pants"},{"Superclass":"Clothing","type":"Class","Name":"Shirt","tags":[]},{"ValueType":"Content","type":"Property","Name":"ShirtTemplate","tags":[],"Class":"Shirt"},{"Superclass":"CharacterAppearance","type":"Class","Name":"ShirtGraphic","tags":[]},{"ValueType":"Content","type":"Property","Name":"Graphic","tags":[],"Class":"ShirtGraphic"},{"Superclass":"CharacterAppearance","type":"Class","Name":"Skin","tags":["deprecated"]},{"ValueType":"BrickColor","type":"Property","Name":"SkinColor","tags":[],"Class":"Skin"},{"Superclass":"Instance","type":"Class","Name":"Chat","tags":["notCreatable"]},{"ReturnType":"void","Arguments":[{"Type":"Instance","Name":"partOrCharacter","Default":null},{"Type":"string","Name":"message","Default":null},{"Type":"ChatColor","Name":"color","Default":"Blue"}],"Name":"Chat","tags":[],"Class":"Chat","type":"Function"},{"ReturnType":"string","Arguments":[{"Type":"string","Name":"stringToFilter","Default":null},{"Type":"Instance","Name":"playerFrom","Default":null},{"Type":"Instance","Name":"playerTo","Default":null}],"Name":"FilterStringAsync","tags":[],"Class":"Chat","type":"YieldFunction"},{"ReturnType":"string","Arguments":[{"Type":"string","Name":"stringToFilter","Default":null},{"Type":"Instance","Name":"playerToFilterFor","Default":null}],"Name":"FilterStringForPlayerAsync","tags":[],"Class":"Chat","type":"YieldFunction"},{"Arguments":[{"Name":"part","Type":"Instance"},{"Name":"message","Type":"string"},{"Name":"color","Type":"ChatColor"}],"Name":"Chatted","tags":[],"Class":"Chat","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"ChatFilter","tags":["notCreatable"]},{"Superclass":"Instance","type":"Class","Name":"ClickDetector","tags":[]},{"ValueType":"float","type":"Property","Name":"MaxActivationDistance","tags":[],"Class":"ClickDetector"},{"Arguments":[{"Name":"playerWhoClicked","Type":"Instance"}],"Name":"MouseClick","tags":[],"Class":"ClickDetector","type":"Event"},{"Arguments":[{"Name":"playerWhoHovered","Type":"Instance"}],"Name":"MouseHoverEnter","tags":[],"Class":"ClickDetector","type":"Event"},{"Arguments":[{"Name":"playerWhoHovered","Type":"Instance"}],"Name":"MouseHoverLeave","tags":[],"Class":"ClickDetector","type":"Event"},{"Arguments":[{"Name":"playerWhoClicked","Type":"Instance"}],"Name":"mouseClick","tags":["deprecated"],"Class":"ClickDetector","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"ClusterPacketCache","tags":[]},{"Superclass":"Instance","type":"Class","Name":"CollectionService","tags":[]},{"ReturnType":"Objects","Arguments":[{"Type":"string","Name":"class","Default":null}],"Name":"GetCollection","tags":[],"Class":"CollectionService","type":"Function"},{"Arguments":[{"Name":"instance","Type":"Instance"}],"Name":"ItemAdded","tags":[],"Class":"CollectionService","type":"Event"},{"Arguments":[{"Name":"instance","Type":"Instance"}],"Name":"ItemRemoved","tags":[],"Class":"CollectionService","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Color3Value","tags":[]},{"ValueType":"Color3","type":"Property","Name":"Value","tags":[],"Class":"Color3Value"},{"Arguments":[{"Name":"value","Type":"Color3"}],"Name":"Changed","tags":[],"Class":"Color3Value","type":"Event"},{"Arguments":[{"Name":"value","Type":"Color3"}],"Name":"changed","tags":["deprecated"],"Class":"Color3Value","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Configuration","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Constraint","tags":[]},{"ValueType":"Object","type":"Property","Name":"Attachment0","tags":[],"Class":"Constraint"},{"ValueType":"Object","type":"Property","Name":"Attachment1","tags":[],"Class":"Constraint"},{"ValueType":"bool","type":"Property","Name":"Enabled","tags":[],"Class":"Constraint"},{"Superclass":"Constraint","type":"Class","Name":"BallSocketConstraint","tags":[]},{"ValueType":"bool","type":"Property","Name":"LimitsEnabled","tags":[],"Class":"BallSocketConstraint"},{"ValueType":"float","type":"Property","Name":"Restitution","tags":[],"Class":"BallSocketConstraint"},{"ValueType":"float","type":"Property","Name":"UpperAngle","tags":[],"Class":"BallSocketConstraint"},{"Superclass":"Constraint","type":"Class","Name":"HingeConstraint","tags":[]},{"ValueType":"ActuatorType","type":"Property","Name":"ActuatorType","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"AngularSpeed","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"AngularVelocity","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"CurrentAngle","tags":["readonly"],"Class":"HingeConstraint"},{"ValueType":"bool","type":"Property","Name":"LimitsEnabled","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"LowerAngle","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"MotorMaxAcceleration","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"MotorMaxTorque","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"Restitution","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"ServoMaxTorque","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"TargetAngle","tags":[],"Class":"HingeConstraint"},{"ValueType":"float","type":"Property","Name":"UpperAngle","tags":[],"Class":"HingeConstraint"},{"Superclass":"Constraint","type":"Class","Name":"MoveToConstraint","tags":[]},{"ValueType":"float","type":"Property","Name":"MaxForce","tags":[],"Class":"MoveToConstraint"},{"ValueType":"float","type":"Property","Name":"StabilizingDistance","tags":[],"Class":"MoveToConstraint"},{"ValueType":"float","type":"Property","Name":"Velocity","tags":[],"Class":"MoveToConstraint"},{"Superclass":"Constraint","type":"Class","Name":"RodConstraint","tags":[]},{"ValueType":"float","type":"Property","Name":"CurrentDistance","tags":["readonly"],"Class":"RodConstraint"},{"ValueType":"float","type":"Property","Name":"Length","tags":[],"Class":"RodConstraint"},{"Superclass":"Constraint","type":"Class","Name":"RopeConstraint","tags":[]},{"ValueType":"float","type":"Property","Name":"CurrentLength","tags":["readonly"],"Class":"RopeConstraint"},{"ValueType":"float","type":"Property","Name":"Length","tags":[],"Class":"RopeConstraint"},{"ValueType":"float","type":"Property","Name":"Restitution","tags":[],"Class":"RopeConstraint"},{"Superclass":"Constraint","type":"Class","Name":"SlidingBallConstraint","tags":[]},{"ValueType":"ActuatorType","type":"Property","Name":"ActuatorType","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"CurrentPosition","tags":["readonly"],"Class":"SlidingBallConstraint"},{"ValueType":"bool","type":"Property","Name":"LimitsEnabled","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"LowerLimit","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"MotorMaxAcceleration","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"MotorMaxForce","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"Restitution","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"ServoMaxForce","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"Speed","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"TargetPosition","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"UpperLimit","tags":[],"Class":"SlidingBallConstraint"},{"ValueType":"float","type":"Property","Name":"Velocity","tags":[],"Class":"SlidingBallConstraint"},{"Superclass":"SlidingBallConstraint","type":"Class","Name":"CylindricalConstraint","tags":[]},{"ValueType":"float","type":"Property","Name":"AzimuthalAngle","tags":[],"Class":"CylindricalConstraint"},{"ValueType":"float","type":"Property","Name":"InclinationAngle","tags":[],"Class":"CylindricalConstraint"},{"Superclass":"SlidingBallConstraint","type":"Class","Name":"PrismaticConstraint","tags":[]},{"Superclass":"Constraint","type":"Class","Name":"SpringConstraint","tags":[]},{"ValueType":"float","type":"Property","Name":"CurrentLength","tags":["readonly"],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"Damping","tags":[],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"FreeLength","tags":[],"Class":"SpringConstraint"},{"ValueType":"bool","type":"Property","Name":"LimitsEnabled","tags":[],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"MaxForce","tags":[],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"MaxLength","tags":[],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"MinLength","tags":[],"Class":"SpringConstraint"},{"ValueType":"float","type":"Property","Name":"Stiffness","tags":[],"Class":"SpringConstraint"},{"Superclass":"Instance","type":"Class","Name":"ContentFilter","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"outstandingRequests","Default":null},{"Type":"int","Name":"cacheSize","Default":null}],"Name":"SetFilterLimits","tags":["LocalUserSecurity"],"Class":"ContentFilter","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetFilterUrl","tags":["LocalUserSecurity"],"Class":"ContentFilter","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"ContentProvider","tags":[]},{"ValueType":"string","type":"Property","Name":"BaseUrl","tags":["readonly"],"Class":"ContentProvider"},{"ValueType":"int","type":"Property","Name":"RequestQueueSize","tags":["readonly"],"Class":"ContentProvider"},{"ReturnType":"void","Arguments":[{"Type":"Content","Name":"contentId","Default":null}],"Name":"Preload","tags":[],"Class":"ContentProvider","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetAssetUrl","tags":["LocalUserSecurity"],"Class":"ContentProvider","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetBaseUrl","tags":["LocalUserSecurity"],"Class":"ContentProvider","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"count","Default":null}],"Name":"SetCacheSize","tags":["LocalUserSecurity"],"Class":"ContentProvider","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"int","Name":"count","Default":null}],"Name":"SetThreadPool","tags":["LocalUserSecurity"],"Class":"ContentProvider","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Array","Name":"contentIdList","Default":null}],"Name":"PreloadAsync","tags":[],"Class":"ContentProvider","type":"YieldFunction"},{"Superclass":"Instance","type":"Class","Name":"ContextActionService","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"Function","Name":"functionToBind","Default":null},{"Type":"bool","Name":"createTouchButton","Default":null},{"Type":"Tuple","Name":"inputTypes","Default":null}],"Name":"BindAction","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"Function","Name":"functionToBind","Default":null},{"Type":"bool","Name":"createTouchButton","Default":null},{"Type":"Tuple","Name":"inputTypes","Default":null}],"Name":"BindActionToInputTypes","tags":["deprecated"],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"UserInputType","Name":"userInputTypeForActivation","Default":null},{"Type":"KeyCode","Name":"keyCodeForActivation","Default":"Unknown"}],"Name":"BindActivate","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"Function","Name":"functionToBind","Default":null},{"Type":"bool","Name":"createTouchButton","Default":null},{"Type":"Tuple","Name":"inputTypes","Default":null}],"Name":"BindCoreAction","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"UserInputState","Name":"state","Default":null},{"Type":"Instance","Name":"inputObject","Default":null}],"Name":"CallFunction","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"Instance","Name":"actionButton","Default":null}],"Name":"FireActionButtonFoundSignal","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Function"},{"ReturnType":"Dictionary","Arguments":[],"Name":"GetAllBoundActionInfo","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"Dictionary","Arguments":[{"Type":"string","Name":"actionName","Default":null}],"Name":"GetBoundActionInfo","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"string","Arguments":[],"Name":"GetCurrentLocalToolIcon","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"string","Name":"description","Default":null}],"Name":"SetDescription","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"string","Name":"image","Default":null}],"Name":"SetImage","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"UDim2","Name":"position","Default":null}],"Name":"SetPosition","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null},{"Type":"string","Name":"title","Default":null}],"Name":"SetTitle","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null}],"Name":"UnbindAction","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"UserInputType","Name":"userInputTypeForActivation","Default":null},{"Type":"KeyCode","Name":"keyCodeForActivation","Default":"Unknown"}],"Name":"UnbindActivate","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"UnbindAllActions","tags":[],"Class":"ContextActionService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"actionName","Default":null}],"Name":"UnbindCoreAction","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"actionName","Default":null}],"Name":"GetButton","tags":[],"Class":"ContextActionService","type":"YieldFunction"},{"Arguments":[{"Name":"actionAdded","Type":"string"},{"Name":"createTouchButton","Type":"bool"},{"Name":"functionInfoTable","Type":"Dictionary"}],"Name":"BoundActionAdded","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Event"},{"Arguments":[{"Name":"actionChanged","Type":"string"},{"Name":"changeName","Type":"string"},{"Name":"changeTable","Type":"Dictionary"}],"Name":"BoundActionChanged","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Event"},{"Arguments":[{"Name":"actionRemoved","Type":"string"},{"Name":"functionInfoTable","Type":"Dictionary"}],"Name":"BoundActionRemoved","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Event"},{"Arguments":[{"Name":"actionName","Type":"string"}],"Name":"GetActionButtonEvent","tags":["RobloxScriptSecurity"],"Class":"ContextActionService","type":"Event"},{"Arguments":[{"Name":"toolEquipped","Type":"Instance"}],"Name":"LocalToolEquipped","tags":[],"Class":"ContextActionService","type":"Event"},{"Arguments":[{"Name":"toolUnequipped","Type":"Instance"}],"Name":"LocalToolUnequipped","tags":[],"Class":"ContextActionService","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Controller","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"Button","Name":"button","Default":null},{"Type":"string","Name":"caption","Default":null}],"Name":"BindButton","tags":[],"Class":"Controller","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Button","Name":"button","Default":null}],"Name":"GetButton","tags":[],"Class":"Controller","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Button","Name":"button","Default":null}],"Name":"UnbindButton","tags":[],"Class":"Controller","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Button","Name":"button","Default":null},{"Type":"string","Name":"caption","Default":null}],"Name":"bindButton","tags":["deprecated"],"Class":"Controller","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Button","Name":"button","Default":null}],"Name":"getButton","tags":["deprecated"],"Class":"Controller","type":"Function"},{"Arguments":[{"Name":"button","Type":"Button"}],"Name":"ButtonChanged","tags":[],"Class":"Controller","type":"Event"},{"Superclass":"Controller","type":"Class","Name":"HumanoidController","tags":[]},{"Superclass":"Controller","type":"Class","Name":"SkateboardController","tags":[]},{"ValueType":"float","type":"Property","Name":"Steer","tags":["readonly"],"Class":"SkateboardController"},{"ValueType":"float","type":"Property","Name":"Throttle","tags":["readonly"],"Class":"SkateboardController"},{"Arguments":[{"Name":"axis","Type":"string"}],"Name":"AxisChanged","tags":[],"Class":"SkateboardController","type":"Event"},{"Superclass":"Controller","type":"Class","Name":"VehicleController","tags":[]},{"Superclass":"Instance","type":"Class","Name":"ControllerService","tags":["notCreatable"]},{"Superclass":"Instance","type":"Class","Name":"CookiesService","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"key","Default":null}],"Name":"DeleteCookieValue","tags":["RobloxSecurity"],"Class":"CookiesService","type":"Function"},{"ReturnType":"string","Arguments":[{"Type":"string","Name":"key","Default":null}],"Name":"GetCookieValue","tags":["RobloxSecurity"],"Class":"CookiesService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"key","Default":null},{"Type":"string","Name":"value","Default":null}],"Name":"SetCookieValue","tags":["RobloxSecurity"],"Class":"CookiesService","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"CustomEvent","tags":["deprecated"]},{"ReturnType":"Objects","Arguments":[],"Name":"GetAttachedReceivers","tags":[],"Class":"CustomEvent","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"float","Name":"newValue","Default":null}],"Name":"SetValue","tags":[],"Class":"CustomEvent","type":"Function"},{"Arguments":[{"Name":"receiver","Type":"Instance"}],"Name":"ReceiverConnected","tags":[],"Class":"CustomEvent","type":"Event"},{"Arguments":[{"Name":"receiver","Type":"Instance"}],"Name":"ReceiverDisconnected","tags":[],"Class":"CustomEvent","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"CustomEventReceiver","tags":["deprecated"]},{"ValueType":"Object","type":"Property","Name":"Source","tags":[],"Class":"CustomEventReceiver"},{"ReturnType":"float","Arguments":[],"Name":"GetCurrentValue","tags":[],"Class":"CustomEventReceiver","type":"Function"},{"Arguments":[{"Name":"event","Type":"Instance"}],"Name":"EventConnected","tags":[],"Class":"CustomEventReceiver","type":"Event"},{"Arguments":[{"Name":"event","Type":"Instance"}],"Name":"EventDisconnected","tags":[],"Class":"CustomEventReceiver","type":"Event"},{"Arguments":[{"Name":"newValue","Type":"float"}],"Name":"SourceValueChanged","tags":[],"Class":"CustomEventReceiver","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"DataModelMesh","tags":["notbrowsable"]},{"ValueType":"Vector3","type":"Property","Name":"Offset","tags":[],"Class":"DataModelMesh"},{"ValueType":"Vector3","type":"Property","Name":"Scale","tags":[],"Class":"DataModelMesh"},{"ValueType":"Vector3","type":"Property","Name":"VertexColor","tags":[],"Class":"DataModelMesh"},{"Superclass":"DataModelMesh","type":"Class","Name":"BevelMesh","tags":["deprecated","notbrowsable"]},{"Superclass":"BevelMesh","type":"Class","Name":"BlockMesh","tags":[]},{"Superclass":"BevelMesh","type":"Class","Name":"CylinderMesh","tags":[]},{"Superclass":"DataModelMesh","type":"Class","Name":"FileMesh","tags":[]},{"ValueType":"Content","type":"Property","Name":"MeshId","tags":[],"Class":"FileMesh"},{"ValueType":"Content","type":"Property","Name":"TextureId","tags":[],"Class":"FileMesh"},{"Superclass":"FileMesh","type":"Class","Name":"SpecialMesh","tags":[]},{"ValueType":"MeshType","type":"Property","Name":"MeshType","tags":[],"Class":"SpecialMesh"},{"Superclass":"Instance","type":"Class","Name":"DataStoreService","tags":["notCreatable"]},{"ValueType":"bool","type":"Property","Name":"LegacyNamingScheme","tags":["LocalUserSecurity"],"Class":"DataStoreService"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"name","Default":null},{"Type":"string","Name":"scope","Default":"global"}],"Name":"GetDataStore","tags":[],"Class":"DataStoreService","type":"Function"},{"ReturnType":"Instance","Arguments":[],"Name":"GetGlobalDataStore","tags":[],"Class":"DataStoreService","type":"Function"},{"ReturnType":"Instance","Arguments":[{"Type":"string","Name":"name","Default":null},{"Type":"string","Name":"scope","Default":"global"}],"Name":"GetOrderedDataStore","tags":[],"Class":"DataStoreService","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"Debris","tags":[]},{"ValueType":"int","type":"Property","Name":"MaxItems","tags":["deprecated"],"Class":"Debris"},{"ReturnType":"void","Arguments":[{"Type":"Instance","Name":"item","Default":null},{"Type":"double","Name":"lifetime","Default":"10"}],"Name":"AddItem","tags":[],"Class":"Debris","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"bool","Name":"enabled","Default":null}],"Name":"SetLegacyMaxItems","tags":["LocalUserSecurity"],"Class":"Debris","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Instance","Name":"item","Default":null},{"Type":"double","Name":"lifetime","Default":"10"}],"Name":"addItem","tags":["deprecated"],"Class":"Debris","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"DebugSettings","tags":["notbrowsable"]},{"ValueType":"int","type":"Property","Name":"AltCdnFailureCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":