· 6 years ago · Apr 30, 2019, 10:30 AM
1
2CreateGui = function()
3local NewGuiPart1 = Instance.new("ScreenGui")
4local NewGuiPart2 = Instance.new("Frame")
5local NewGuiPart3 = Instance.new("Frame")
6local NewGuiPart4 = Instance.new("TextLabel")
7local NewGuiPart5 = Instance.new("TextBox")
8local NewGuiPart6 = Instance.new("Frame")
9local NewGuiPart7 = Instance.new("Frame")
10local NewGuiPart8 = Instance.new("TextButton")
11local NewGuiPart9 = Instance.new("TextLabel")
12local NewGuiPart10 = Instance.new("TextLabel")
13local NewGuiPart11 = Instance.new("ImageLabel")
14local NewGuiPart12 = Instance.new("Frame")
15local NewGuiPart13 = Instance.new("Frame")
16local NewGuiPart14 = Instance.new("Frame")
17local NewGuiPart15 = Instance.new("TextButton")
18local NewGuiPart16 = Instance.new("ImageLabel")
19local NewGuiPart17 = Instance.new("TextButton")
20local NewGuiPart18 = Instance.new("ImageLabel")
21local NewGuiPart19 = Instance.new("TextButton")
22local NewGuiPart20 = Instance.new("ImageLabel")
23local NewGuiPart21 = Instance.new("TextButton")
24local NewGuiPart22 = Instance.new("ImageLabel")
25local NewGuiPart23 = Instance.new("TextButton")
26local NewGuiPart24 = Instance.new("ImageLabel")
27local NewGuiPart25 = Instance.new("TextButton")
28local NewGuiPart26 = Instance.new("ImageLabel")
29local NewGuiPart27 = Instance.new("TextButton")
30local NewGuiPart28 = Instance.new("Frame")
31local NewGuiPart29 = Instance.new("Frame")
32local NewGuiPart30 = Instance.new("TextLabel")
33local NewGuiPart31 = Instance.new("Frame")
34local NewGuiPart32 = Instance.new("TextLabel")
35local NewGuiPart33 = Instance.new("TextLabel")
36local NewGuiPart34 = Instance.new("TextButton")
37local NewGuiPart35 = Instance.new("TextLabel")
38local NewGuiPart36 = Instance.new("TextLabel")
39local NewGuiPart37 = Instance.new("Frame")
40local NewGuiPart38 = Instance.new("Frame")
41local NewGuiPart39 = Instance.new("TextLabel")
42local NewGuiPart40 = Instance.new("Frame")
43local NewGuiPart41 = Instance.new("TextButton")
44local NewGuiPart42 = Instance.new("TextLabel")
45local NewGuiPart43 = Instance.new("TextButton")
46local NewGuiPart44 = Instance.new("TextBox")
47local NewGuiPart45 = Instance.new("TextButton")
48local NewGuiPart46 = Instance.new("TextLabel")
49local NewGuiPart47 = Instance.new("TextLabel")
50local NewGuiPart48 = Instance.new("Frame")
51local NewGuiPart49 = Instance.new("TextLabel")
52local NewGuiPart50 = Instance.new("Frame")
53local NewGuiPart51 = Instance.new("TextButton")
54local NewGuiPart52 = Instance.new("TextLabel")
55local NewGuiPart53 = Instance.new("TextButton")
56local NewGuiPart54 = Instance.new("Frame")
57local NewGuiPart55 = Instance.new("TextLabel")
58local NewGuiPart56 = Instance.new("Frame")
59local NewGuiPart57 = Instance.new("TextLabel")
60local NewGuiPart58 = Instance.new("TextButton")
61local NewGuiPart59 = Instance.new("Frame")
62local NewGuiPart60 = Instance.new("TextLabel")
63local NewGuiPart61 = Instance.new("Frame")
64local NewGuiPart62 = Instance.new("TextLabel")
65local NewGuiPart63 = Instance.new("ScrollingFrame")
66local NewGuiPart64 = Instance.new("TextButton")
67local NewGuiPart65 = Instance.new("TextLabel")
68local NewGuiPart66 = Instance.new("TextLabel")
69local NewGuiPart67 = Instance.new("TextButton")
70local NewGuiPart68 = Instance.new("TextButton")
71local NewGuiPart69 = Instance.new("Frame")
72local NewGuiPart70 = Instance.new("TextButton")
73local NewGuiPart71 = Instance.new("TextBox")
74local NewGuiPart72 = Instance.new("TextButton")
75local NewGuiPart73 = Instance.new("TextButton")
76local NewGuiPart74 = Instance.new("Frame")
77local NewGuiPart75 = Instance.new("Frame")
78local NewGuiPart76 = Instance.new("TextButton")
79local NewGuiPart77 = Instance.new("ScrollingFrame")
80local NewGuiPart78 = Instance.new("Frame")
81local NewGuiPart79 = Instance.new("TextLabel")
82local NewGuiPart80 = Instance.new("TextLabel")
83local NewGuiPart81 = Instance.new("TextLabel")
84local NewGuiPart82 = Instance.new("Frame")
85local NewGuiPart83 = Instance.new("TextLabel")
86local NewGuiPart84 = Instance.new("Frame")
87local NewGuiPart85 = Instance.new("Frame")
88local NewGuiPart86 = Instance.new("Frame")
89local NewGuiPart87 = Instance.new("ImageButton")
90local NewGuiPart88 = Instance.new("Frame")
91local NewGuiPart89 = Instance.new("Frame")
92local NewGuiPart90 = Instance.new("Frame")
93local NewGuiPart91 = Instance.new("Frame")
94local NewGuiPart92 = Instance.new("Frame")
95local NewGuiPart93 = Instance.new("ImageButton")
96local NewGuiPart94 = Instance.new("Frame")
97local NewGuiPart95 = Instance.new("Frame")
98local NewGuiPart96 = Instance.new("Frame")
99local NewGuiPart97 = Instance.new("Frame")
100local NewGuiPart98 = Instance.new("Frame")
101local NewGuiPart99 = Instance.new("TextButton")
102local NewGuiPart100 = Instance.new("Frame")
103local NewGuiPart101 = Instance.new("Frame")
104local NewGuiPart102 = Instance.new("TextButton")
105local NewGuiPart103 = Instance.new("TextButton")
106local NewGuiPart104 = Instance.new("TextButton")
107local NewGuiPart105 = Instance.new("Frame")
108local NewGuiPart106 = Instance.new("Frame")
109local NewGuiPart107 = Instance.new("TextLabel")
110local NewGuiPart108 = Instance.new("TextLabel")
111local NewGuiPart109 = Instance.new("TextLabel")
112local NewGuiPart110 = Instance.new("ImageLabel")
113local NewGuiPart111 = Instance.new("Frame")
114local NewGuiPart112 = Instance.new("Frame")
115local NewGuiPart113 = Instance.new("TextLabel")
116local NewGuiPart114 = Instance.new("Frame")
117local NewGuiPart115 = Instance.new("Frame")
118local NewGuiPart116 = Instance.new("TextLabel")
119local NewGuiPart117 = Instance.new("TextLabel")
120local NewGuiPart118 = Instance.new("TextButton")
121local NewGuiPart119 = Instance.new("TextLabel")
122local NewGuiPart120 = Instance.new("TextLabel")
123local NewGuiPart121 = Instance.new("Frame")
124local NewGuiPart122 = Instance.new("TextLabel")
125local NewGuiPart123 = Instance.new("TextLabel")
126local NewGuiPart124 = Instance.new("TextButton")
127local NewGuiPart125 = Instance.new("TextLabel")
128local NewGuiPart126 = Instance.new("TextLabel")
129local NewGuiPart127 = Instance.new("Frame")
130local NewGuiPart128 = Instance.new("TextLabel")
131local NewGuiPart129 = Instance.new("TextLabel")
132local NewGuiPart130 = Instance.new("TextButton")
133local NewGuiPart131 = Instance.new("TextLabel")
134local NewGuiPart132 = Instance.new("TextLabel")
135local NewGuiPart133 = Instance.new("Frame")
136local NewGuiPart134 = Instance.new("TextLabel")
137local NewGuiPart135 = Instance.new("TextLabel")
138local NewGuiPart136 = Instance.new("TextButton")
139local NewGuiPart137 = Instance.new("TextLabel")
140local NewGuiPart138 = Instance.new("TextLabel")
141local NewGuiPart139 = Instance.new("TextLabel")
142local NewGuiPart140 = Instance.new("Frame")
143local NewGuiPart141 = Instance.new("Frame")
144local NewGuiPart142 = Instance.new("TextLabel")
145local NewGuiPart143 = Instance.new("TextButton")
146local NewGuiPart144 = Instance.new("TextBox")
147local NewGuiPart145 = Instance.new("Frame")
148local NewGuiPart146 = Instance.new("TextButton")
149local NewGuiPart147 = Instance.new("TextLabel")
150local NewGuiPart148 = Instance.new("TextLabel")
151local NewGuiPart149 = Instance.new("Frame")
152local NewGuiPart150 = Instance.new("Frame")
153local NewGuiPart151 = Instance.new("TextLabel")
154local NewGuiPart152 = Instance.new("TextLabel")
155local NewGuiPart153 = Instance.new("BindableFunction")
156local NewGuiPart154 = Instance.new("BindableFunction")
157local NewGuiPart155 = Instance.new("BindableFunction")
158local NewGuiPart156 = Instance.new("BindableFunction")
159local NewGuiPart157 = Instance.new("BindableEvent")
160local NewGuiPart158 = Instance.new("BindableFunction")
161local NewGuiPart159 = Instance.new("BindableFunction")
162local NewGuiPart160 = Instance.new("BindableEvent")
163local NewGuiPart161 = Instance.new("BindableFunction")
164local NewGuiPart162 = Instance.new("BindableFunction")
165local NewGuiPart163 = Instance.new("BindableEvent")
166-- Properties
167
168NewGuiPart1.Name = "Dex"
169
170NewGuiPart2.Name = "PropertiesFrame"
171NewGuiPart2.Parent = NewGuiPart1
172NewGuiPart2.Active = true
173NewGuiPart2.BackgroundColor3 = Color3.new(1, 1, 1)
174NewGuiPart2.BackgroundTransparency = 0.10000000149012
175NewGuiPart2.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
176NewGuiPart2.Position = UDim2.new(1, 0, 0.5, 36)
177NewGuiPart2.Size = UDim2.new(0, 300, 0.5, -36)
178
179NewGuiPart158.Name = "GetApi"
180NewGuiPart158.Parent = NewGuiPart2
181NewGuiPart158.Archivable = true
182
183NewGuiPart159.Name = "GetAwaiting"
184NewGuiPart159.Parent = NewGuiPart2
185NewGuiPart159.Archivable = true
186
187NewGuiPart160.Name = "SetAwaiting"
188NewGuiPart160.Parent = NewGuiPart2
189NewGuiPart160.Archivable = true
190
191NewGuiPart3.Name = "Header"
192NewGuiPart3.Parent = NewGuiPart2
193NewGuiPart3.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
194NewGuiPart3.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
195NewGuiPart3.Position = UDim2.new(0, 0, 0, -36)
196NewGuiPart3.Size = UDim2.new(1, 0, 0, 35)
197
198NewGuiPart4.Parent = NewGuiPart3
199NewGuiPart4.BackgroundTransparency = 1
200NewGuiPart4.Position = UDim2.new(0, 4, 0, 0)
201NewGuiPart4.Size = UDim2.new(1, -4, 0.5, 0)
202NewGuiPart4.Font = Enum.Font.SourceSans
203NewGuiPart4.FontSize = Enum.FontSize.Size14
204NewGuiPart4.Text = "Properties"
205NewGuiPart4.TextColor3 = Color3.new(0, 0, 0)
206NewGuiPart4.TextXAlignment = Enum.TextXAlignment.Left
207
208NewGuiPart5.Parent = NewGuiPart3
209NewGuiPart5.BackgroundTransparency = 0.80000001192093
210NewGuiPart5.Position = UDim2.new(0, 4, 0.5, 0)
211NewGuiPart5.Size = UDim2.new(1, -8, 0.5, -3)
212NewGuiPart5.Font = Enum.Font.SourceSans
213NewGuiPart5.FontSize = Enum.FontSize.Size14
214NewGuiPart5.Text = "Search Properties"
215--NewGuiPart5.TextColor3 = Color3.new(0, 0, 0)
216NewGuiPart5.TextXAlignment = Enum.TextXAlignment.Left
217
218NewGuiPart6.Name = "ExplorerPanel"
219NewGuiPart6.Parent = NewGuiPart1
220NewGuiPart6.BackgroundColor3 = Color3.new(1, 1, 1)
221NewGuiPart6.BackgroundTransparency = 0.10000000149012
222NewGuiPart6.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
223NewGuiPart6.Position = UDim2.new(1, 0, 0, 0)
224NewGuiPart6.Size = UDim2.new(0, 300, 0.5, 0)
225
226NewGuiPart153.Name = "GetOption"
227NewGuiPart153.Parent = NewGuiPart6
228NewGuiPart153.Archivable = true
229
230NewGuiPart154.Name = "GetSelection"
231NewGuiPart154.Parent = NewGuiPart6
232NewGuiPart154.Archivable = true
233
234NewGuiPart155.Name = "SetOption"
235NewGuiPart155.Parent = NewGuiPart6
236NewGuiPart155.Archivable = true
237
238NewGuiPart156.Name = "SetSelection"
239NewGuiPart156.Parent = NewGuiPart6
240NewGuiPart156.Archivable = true
241
242NewGuiPart157.Name = "SelectionChanged"
243NewGuiPart157.Parent = NewGuiPart6
244NewGuiPart157.Archivable = true
245
246NewGuiPart7.Name = "SideMenu"
247NewGuiPart7.Parent = NewGuiPart1
248NewGuiPart7.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
249NewGuiPart7.BackgroundTransparency = 1
250NewGuiPart7.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
251NewGuiPart7.BorderSizePixel = 0
252NewGuiPart7.Position = UDim2.new(1, -330, 0, 0)
253NewGuiPart7.Size = UDim2.new(0, 30, 0, 180)
254NewGuiPart7.Visible = false
255NewGuiPart7.ZIndex = 2
256
257NewGuiPart8.Name = "Toggle"
258NewGuiPart8.Parent = NewGuiPart7
259NewGuiPart8.Active = false
260NewGuiPart8.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
261NewGuiPart8.BorderSizePixel = 0
262NewGuiPart8.Position = UDim2.new(0, 0, 0, 60)
263NewGuiPart8.Size = UDim2.new(0, 30, 0, 30)
264NewGuiPart8.AutoButtonColor = false
265NewGuiPart8.Font = Enum.Font.SourceSans
266NewGuiPart8.FontSize = Enum.FontSize.Size24
267NewGuiPart8.Text = ">"
268NewGuiPart8.TextTransparency = 1
269NewGuiPart8.TextWrapped = true
270
271NewGuiPart9.Name = "Title"
272NewGuiPart9.Parent = NewGuiPart7
273NewGuiPart9.BackgroundColor3 = Color3.new(1, 1, 1)
274NewGuiPart9.BackgroundTransparency = 1
275NewGuiPart9.Size = UDim2.new(0, 30, 0, 20)
276NewGuiPart9.ZIndex = 2
277NewGuiPart9.Font = Enum.Font.SourceSansBold
278NewGuiPart9.FontSize = Enum.FontSize.Size14
279NewGuiPart9.Text = "DEX"
280NewGuiPart9.TextWrapped = true
281
282NewGuiPart10.Name = "Version"
283NewGuiPart10.Parent = NewGuiPart7
284NewGuiPart10.BackgroundColor3 = Color3.new(1, 1, 1)
285NewGuiPart10.BackgroundTransparency = 1
286NewGuiPart10.Position = UDim2.new(0, 0, 0, 15)
287NewGuiPart10.Size = UDim2.new(0, 30, 0, 20)
288NewGuiPart10.ZIndex = 2
289NewGuiPart10.Font = Enum.Font.SourceSansBold
290NewGuiPart10.FontSize = Enum.FontSize.Size12
291NewGuiPart10.Text = "V2.0.0"
292NewGuiPart10.TextWrapped = true
293
294NewGuiPart11.Name = "Slant"
295NewGuiPart11.Parent = NewGuiPart7
296NewGuiPart11.BackgroundColor3 = Color3.new(1, 1, 1)
297NewGuiPart11.BackgroundTransparency = 1
298NewGuiPart11.Position = UDim2.new(0, 0, 0, 90)
299NewGuiPart11.Rotation = 180
300NewGuiPart11.Size = UDim2.new(0, 30, 0, 30)
301NewGuiPart11.Image = "rbxassetid://474172996"
302NewGuiPart11.ImageColor3 = Color3.new(0.913726, 0.913726, 0.913726)
303
304NewGuiPart12.Name = "Main"
305NewGuiPart12.Parent = NewGuiPart7
306NewGuiPart12.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
307NewGuiPart12.BorderSizePixel = 0
308NewGuiPart12.Size = UDim2.new(0, 30, 0, 30)
309
310NewGuiPart13.Name = "SlideOut"
311NewGuiPart13.Parent = NewGuiPart7
312NewGuiPart13.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
313NewGuiPart13.BackgroundTransparency = 1
314NewGuiPart13.BorderSizePixel = 0
315NewGuiPart13.ClipsDescendants = true
316NewGuiPart13.Position = UDim2.new(0, 0, 0, 30)
317NewGuiPart13.Size = UDim2.new(0, 30, 0, 150)
318
319NewGuiPart14.Name = "SlideFrame"
320NewGuiPart14.Parent = NewGuiPart13
321NewGuiPart14.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
322NewGuiPart14.BorderSizePixel = 0
323NewGuiPart14.Position = UDim2.new(0, 0, 0, -150)
324NewGuiPart14.Size = UDim2.new(0, 30, 0, 150)
325
326NewGuiPart15.Name = "Explorer"
327NewGuiPart15.Parent = NewGuiPart14
328NewGuiPart15.BackgroundColor3 = Color3.new(1, 1, 1)
329NewGuiPart15.BackgroundTransparency = 1
330NewGuiPart15.BorderSizePixel = 0
331NewGuiPart15.Position = UDim2.new(0, 0, 0, 120)
332NewGuiPart15.Size = UDim2.new(0, 30, 0, 30)
333NewGuiPart15.ZIndex = 2
334NewGuiPart15.AutoButtonColor = false
335NewGuiPart15.Font = Enum.Font.SourceSans
336NewGuiPart15.FontSize = Enum.FontSize.Size24
337NewGuiPart15.Text = ""
338
339NewGuiPart16.Name = "Icon"
340NewGuiPart16.Parent = NewGuiPart15
341NewGuiPart16.BackgroundColor3 = Color3.new(1, 1, 1)
342NewGuiPart16.BackgroundTransparency = 1
343NewGuiPart16.Position = UDim2.new(0, 5, 0, 5)
344NewGuiPart16.Size = UDim2.new(0, 20, 0, 20)
345NewGuiPart16.ZIndex = 2
346NewGuiPart16.Image = "rbxassetid://472635937"
347NewGuiPart16.ImageColor3 = Color3.new(0.27451, 0.27451, 0.27451)
348
349NewGuiPart17.Name = "SaveMap"
350NewGuiPart17.Parent = NewGuiPart14
351NewGuiPart17.BackgroundColor3 = Color3.new(1, 1, 1)
352NewGuiPart17.BackgroundTransparency = 1
353NewGuiPart17.BorderSizePixel = 0
354NewGuiPart17.Position = UDim2.new(0, 0, 0, 90)
355NewGuiPart17.Size = UDim2.new(0, 30, 0, 30)
356NewGuiPart17.ZIndex = 2
357NewGuiPart17.AutoButtonColor = false
358NewGuiPart17.Font = Enum.Font.SourceSans
359NewGuiPart17.FontSize = Enum.FontSize.Size24
360NewGuiPart17.Text = ""
361
362NewGuiPart18.Name = "Icon"
363NewGuiPart18.Parent = NewGuiPart17
364NewGuiPart18.BackgroundColor3 = Color3.new(1, 1, 1)
365NewGuiPart18.BackgroundTransparency = 1
366NewGuiPart18.Position = UDim2.new(0, 5, 0, 5)
367NewGuiPart18.Size = UDim2.new(0, 20, 0, 20)
368NewGuiPart18.ZIndex = 2
369NewGuiPart18.Image = "rbxassetid://472636337"
370NewGuiPart18.ImageColor3 = Color3.new(0.27451, 0.27451, 0.27451)
371
372NewGuiPart19.Name = "Settings"
373NewGuiPart19.Parent = NewGuiPart14
374NewGuiPart19.BackgroundColor3 = Color3.new(1, 1, 1)
375NewGuiPart19.BackgroundTransparency = 1
376NewGuiPart19.BorderSizePixel = 0
377NewGuiPart19.Position = UDim2.new(0, 0, 0, 30)
378NewGuiPart19.Size = UDim2.new(0, 30, 0, 30)
379NewGuiPart19.ZIndex = 2
380NewGuiPart19.AutoButtonColor = false
381NewGuiPart19.Font = Enum.Font.SourceSans
382NewGuiPart19.FontSize = Enum.FontSize.Size24
383NewGuiPart19.Text = ""
384
385NewGuiPart20.Name = "Icon"
386NewGuiPart20.Parent = NewGuiPart19
387NewGuiPart20.BackgroundColor3 = Color3.new(1, 1, 1)
388NewGuiPart20.BackgroundTransparency = 1
389NewGuiPart20.Position = UDim2.new(0, 5, 0, 5)
390NewGuiPart20.Size = UDim2.new(0, 20, 0, 20)
391NewGuiPart20.ZIndex = 2
392NewGuiPart20.Image = "rbxassetid://472635774"
393NewGuiPart20.ImageColor3 = Color3.new(0.27451, 0.27451, 0.27451)
394
395NewGuiPart21.Name = "Remotes"
396NewGuiPart21.Parent = NewGuiPart14
397NewGuiPart21.BackgroundColor3 = Color3.new(1, 1, 1)
398NewGuiPart21.BackgroundTransparency = 1
399NewGuiPart21.BorderSizePixel = 0
400NewGuiPart21.Position = UDim2.new(0, 0, 0, 60)
401NewGuiPart21.Size = UDim2.new(0, 30, 0, 30)
402NewGuiPart21.ZIndex = 2
403NewGuiPart21.AutoButtonColor = false
404NewGuiPart21.Font = Enum.Font.SourceSans
405NewGuiPart21.FontSize = Enum.FontSize.Size24
406NewGuiPart21.Text = ""
407
408NewGuiPart22.Name = "Icon"
409NewGuiPart22.Parent = NewGuiPart21
410NewGuiPart22.BackgroundColor3 = Color3.new(1, 1, 1)
411NewGuiPart22.BackgroundTransparency = 1
412NewGuiPart22.Position = UDim2.new(0, 5, 0, 5)
413NewGuiPart22.Size = UDim2.new(0, 20, 0, 20)
414NewGuiPart22.ZIndex = 2
415NewGuiPart22.Image = "rbxassetid://472636187"
416NewGuiPart22.ImageColor3 = Color3.new(0.27451, 0.27451, 0.27451)
417
418NewGuiPart23.Name = "About"
419NewGuiPart23.Parent = NewGuiPart14
420NewGuiPart23.BackgroundColor3 = Color3.new(1, 1, 1)
421NewGuiPart23.BackgroundTransparency = 1
422NewGuiPart23.BorderSizePixel = 0
423NewGuiPart23.Size = UDim2.new(0, 30, 0, 30)
424NewGuiPart23.ZIndex = 2
425NewGuiPart23.AutoButtonColor = false
426NewGuiPart23.Font = Enum.Font.SourceSans
427NewGuiPart23.FontSize = Enum.FontSize.Size24
428NewGuiPart23.Text = ""
429
430NewGuiPart24.Name = "Icon"
431NewGuiPart24.Parent = NewGuiPart23
432NewGuiPart24.BackgroundColor3 = Color3.new(1, 1, 1)
433NewGuiPart24.BackgroundTransparency = 1
434NewGuiPart24.Position = UDim2.new(0, 5, 0, 5)
435NewGuiPart24.Size = UDim2.new(0, 20, 0, 20)
436NewGuiPart24.ZIndex = 2
437NewGuiPart24.Image = "rbxassetid://476354004"
438NewGuiPart24.ImageColor3 = Color3.new(0.27451, 0.27451, 0.27451)
439
440NewGuiPart25.Name = "OpenScriptEditor"
441NewGuiPart25.Parent = NewGuiPart7
442NewGuiPart25.Active = false
443NewGuiPart25.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
444NewGuiPart25.BorderSizePixel = 0
445NewGuiPart25.Position = UDim2.new(0, 0, 0, 30)
446NewGuiPart25.Size = UDim2.new(0, 30, 0, 30)
447NewGuiPart25.ZIndex = 2
448NewGuiPart25.AutoButtonColor = false
449NewGuiPart25.Font = Enum.Font.SourceSans
450NewGuiPart25.FontSize = Enum.FontSize.Size24
451NewGuiPart25.Text = ""
452
453NewGuiPart26.Name = "Icon"
454NewGuiPart26.Parent = NewGuiPart25
455NewGuiPart26.BackgroundColor3 = Color3.new(1, 1, 1)
456NewGuiPart26.BackgroundTransparency = 1
457NewGuiPart26.Position = UDim2.new(0, 5, 0, 5)
458NewGuiPart26.Size = UDim2.new(0, 20, 0, 20)
459NewGuiPart26.ZIndex = 2
460NewGuiPart26.Image = "rbxassetid://475456048"
461NewGuiPart26.ImageColor3 = Color3.new(0.105882, 0.164706, 0.207843)
462NewGuiPart26.ImageTransparency = 1
463
464NewGuiPart27.Name = "Toggle"
465NewGuiPart27.Parent = NewGuiPart1
466NewGuiPart27.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
467NewGuiPart27.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
468NewGuiPart27.Position = UDim2.new(1, 0, 0, 0)
469NewGuiPart27.Size = UDim2.new(0, 30, 0, 30)
470NewGuiPart27.Font = Enum.Font.SourceSans
471NewGuiPart27.FontSize = Enum.FontSize.Size24
472NewGuiPart27.Text = "<"
473
474NewGuiPart28.Name = "SettingsPanel"
475NewGuiPart28.Parent = NewGuiPart1
476NewGuiPart28.BackgroundColor3 = Color3.new(1, 1, 1)
477NewGuiPart28.BackgroundTransparency = 0.10000000149012
478NewGuiPart28.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
479NewGuiPart28.Position = UDim2.new(1, 0, 0, 0)
480NewGuiPart28.Size = UDim2.new(0, 300, 1, 0)
481
482NewGuiPart162.Name = "GetSetting"
483NewGuiPart162.Parent = NewGuiPart28
484NewGuiPart162.Archivable = true
485
486NewGuiPart29.Name = "Header"
487NewGuiPart29.Parent = NewGuiPart28
488NewGuiPart29.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
489NewGuiPart29.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
490NewGuiPart29.Size = UDim2.new(1, 0, 0, 17)
491
492NewGuiPart30.Parent = NewGuiPart29
493NewGuiPart30.BackgroundTransparency = 1
494NewGuiPart30.Position = UDim2.new(0, 4, 0, 0)
495NewGuiPart30.Size = UDim2.new(1, -4, 1, 0)
496NewGuiPart30.Font = Enum.Font.SourceSans
497NewGuiPart30.FontSize = Enum.FontSize.Size14
498NewGuiPart30.Text = "Settings"
499NewGuiPart30.TextColor3 = Color3.new(0, 0, 0)
500NewGuiPart30.TextXAlignment = Enum.TextXAlignment.Left
501
502NewGuiPart31.Name = "SettingTemplate"
503NewGuiPart31.Parent = NewGuiPart28
504NewGuiPart31.BackgroundColor3 = Color3.new(1, 1, 1)
505NewGuiPart31.BackgroundTransparency = 1
506NewGuiPart31.Position = UDim2.new(0, 0, 0, 18)
507NewGuiPart31.Size = UDim2.new(1, 0, 0, 60)
508NewGuiPart31.Visible = false
509
510NewGuiPart32.Name = "SName"
511NewGuiPart32.Parent = NewGuiPart31
512NewGuiPart32.BackgroundColor3 = Color3.new(1, 1, 1)
513NewGuiPart32.BackgroundTransparency = 1
514NewGuiPart32.Position = UDim2.new(0, 10, 0, 0)
515NewGuiPart32.Size = UDim2.new(1, -20, 0, 30)
516NewGuiPart32.Font = Enum.Font.SourceSans
517NewGuiPart32.FontSize = Enum.FontSize.Size18
518NewGuiPart32.Text = "SettingName"
519NewGuiPart32.TextXAlignment = Enum.TextXAlignment.Left
520
521NewGuiPart33.Name = "Status"
522NewGuiPart33.Parent = NewGuiPart31
523NewGuiPart33.BackgroundColor3 = Color3.new(1, 1, 1)
524NewGuiPart33.BackgroundTransparency = 1
525NewGuiPart33.Position = UDim2.new(0, 60, 0, 30)
526NewGuiPart33.Size = UDim2.new(0, 50, 0, 15)
527NewGuiPart33.Font = Enum.Font.SourceSans
528NewGuiPart33.FontSize = Enum.FontSize.Size18
529NewGuiPart33.Text = "Off"
530NewGuiPart33.TextXAlignment = Enum.TextXAlignment.Left
531
532NewGuiPart34.Name = "Change"
533NewGuiPart34.Parent = NewGuiPart31
534NewGuiPart34.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
535NewGuiPart34.BorderSizePixel = 0
536NewGuiPart34.Position = UDim2.new(0, 10, 0, 30)
537NewGuiPart34.Size = UDim2.new(0, 40, 0, 15)
538NewGuiPart34.Font = Enum.Font.SourceSans
539NewGuiPart34.FontSize = Enum.FontSize.Size14
540NewGuiPart34.Text = ""
541
542NewGuiPart35.Name = "OnBar"
543NewGuiPart35.Parent = NewGuiPart34
544NewGuiPart35.BackgroundColor3 = Color3.new(0, 0.576471, 0.862745)
545NewGuiPart35.BorderSizePixel = 0
546NewGuiPart35.Size = UDim2.new(0, 0, 0, 15)
547NewGuiPart35.Font = Enum.Font.SourceSans
548NewGuiPart35.FontSize = Enum.FontSize.Size14
549NewGuiPart35.Text = ""
550
551NewGuiPart36.Name = "Bar"
552NewGuiPart36.Parent = NewGuiPart34
553NewGuiPart36.BackgroundColor3 = Color3.new(0, 0, 0)
554NewGuiPart36.BorderSizePixel = 0
555NewGuiPart36.ClipsDescendants = true
556NewGuiPart36.Position = UDim2.new(0, -2, 0, -2)
557NewGuiPart36.Size = UDim2.new(0, 10, 0, 19)
558NewGuiPart36.Font = Enum.Font.SourceSans
559NewGuiPart36.FontSize = Enum.FontSize.Size14
560NewGuiPart36.Text = ""
561
562NewGuiPart37.Name = "SettingList"
563NewGuiPart37.Parent = NewGuiPart28
564NewGuiPart37.BackgroundColor3 = Color3.new(1, 1, 1)
565NewGuiPart37.BackgroundTransparency = 1
566NewGuiPart37.Position = UDim2.new(0, 0, 0, 17)
567NewGuiPart37.Size = UDim2.new(1, 0, 1, -17)
568
569NewGuiPart38.Name = "SaveInstance"
570NewGuiPart38.Parent = NewGuiPart1
571NewGuiPart38.Active = true
572NewGuiPart38.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
573NewGuiPart38.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
574NewGuiPart38.Draggable = true
575NewGuiPart38.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
576NewGuiPart38.Size = UDim2.new(0, 350, 0, 20)
577NewGuiPart38.Visible = false
578NewGuiPart38.ZIndex = 2
579
580NewGuiPart39.Name = "Title"
581NewGuiPart39.Parent = NewGuiPart38
582NewGuiPart39.BackgroundTransparency = 1
583NewGuiPart39.Size = UDim2.new(1, 0, 1, 0)
584NewGuiPart39.ZIndex = 2
585NewGuiPart39.Font = Enum.Font.SourceSans
586NewGuiPart39.FontSize = Enum.FontSize.Size14
587NewGuiPart39.Text = "Save Instance"
588NewGuiPart39.TextColor3 = Color3.new(0, 0, 0)
589NewGuiPart39.TextXAlignment = Enum.TextXAlignment.Left
590
591NewGuiPart40.Name = "MainWindow"
592NewGuiPart40.Parent = NewGuiPart38
593NewGuiPart40.BackgroundColor3 = Color3.new(1, 1, 1)
594NewGuiPart40.BackgroundTransparency = 0.10000000149012
595NewGuiPart40.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
596NewGuiPart40.Size = UDim2.new(1, 0, 0, 200)
597
598NewGuiPart41.Name = "Save"
599NewGuiPart41.Parent = NewGuiPart40
600NewGuiPart41.BackgroundColor3 = Color3.new(1, 1, 1)
601NewGuiPart41.BackgroundTransparency = 0.5
602NewGuiPart41.BorderColor3 = Color3.new(0, 0, 0)
603NewGuiPart41.Position = UDim2.new(0.075000003, 0, 1, -40)
604NewGuiPart41.Size = UDim2.new(0.400000006, 0, 0, 30)
605NewGuiPart41.Font = Enum.Font.SourceSans
606NewGuiPart41.FontSize = Enum.FontSize.Size18
607NewGuiPart41.Text = "Save"
608
609NewGuiPart42.Name = "Desc"
610NewGuiPart42.Parent = NewGuiPart40
611NewGuiPart42.BackgroundColor3 = Color3.new(1, 1, 1)
612NewGuiPart42.BackgroundTransparency = 1
613NewGuiPart42.Position = UDim2.new(0, 0, 0, 20)
614NewGuiPart42.Size = UDim2.new(1, 0, 0, 40)
615NewGuiPart42.Font = Enum.Font.SourceSans
616NewGuiPart42.FontSize = Enum.FontSize.Size14
617NewGuiPart42.Text = "This will save an instance to your PC. Type in the name for your instance. (.rbxmx will be added automatically.)"
618NewGuiPart42.TextWrapped = true
619
620NewGuiPart43.Name = "Cancel"
621NewGuiPart43.Parent = NewGuiPart40
622NewGuiPart43.BackgroundColor3 = Color3.new(1, 1, 1)
623NewGuiPart43.BackgroundTransparency = 0.5
624NewGuiPart43.BorderColor3 = Color3.new(0, 0, 0)
625NewGuiPart43.Position = UDim2.new(0.524999976, 0, 1, -40)
626NewGuiPart43.Size = UDim2.new(0.400000006, 0, 0, 30)
627NewGuiPart43.Font = Enum.Font.SourceSans
628NewGuiPart43.FontSize = Enum.FontSize.Size18
629NewGuiPart43.Text = "Cancel"
630
631NewGuiPart44.Name = "FileName"
632NewGuiPart44.Parent = NewGuiPart40
633NewGuiPart44.BackgroundColor3 = Color3.new(1, 1, 1)
634NewGuiPart44.BackgroundTransparency = 0.20000000298023
635NewGuiPart44.Position = UDim2.new(0.075000003, 0, 0.400000006, 0)
636NewGuiPart44.Size = UDim2.new(0.850000024, 0, 0, 30)
637NewGuiPart44.Font = Enum.Font.SourceSans
638NewGuiPart44.FontSize = Enum.FontSize.Size18
639NewGuiPart44.Text = ""
640NewGuiPart44.TextXAlignment = Enum.TextXAlignment.Left
641
642NewGuiPart45.Name = "SaveObjects"
643NewGuiPart45.Parent = NewGuiPart40
644NewGuiPart45.BackgroundColor3 = Color3.new(1, 1, 1)
645NewGuiPart45.BackgroundTransparency = 0.60000002384186
646NewGuiPart45.Position = UDim2.new(0.075000003, 0, 0.625, 0)
647NewGuiPart45.Size = UDim2.new(0, 20, 0, 20)
648NewGuiPart45.ZIndex = 2
649NewGuiPart45.Font = Enum.Font.SourceSans
650NewGuiPart45.FontSize = Enum.FontSize.Size18
651NewGuiPart45.Text = ""
652NewGuiPart45.TextColor3 = Color3.new(1, 1, 1)
653
654NewGuiPart46.Name = "enabled"
655NewGuiPart46.Parent = NewGuiPart45
656NewGuiPart46.BackgroundColor3 = Color3.new(0.380392, 0.380392, 0.380392)
657NewGuiPart46.BackgroundTransparency = 0.40000000596046
658NewGuiPart46.BorderSizePixel = 0
659NewGuiPart46.Position = UDim2.new(0, 3, 0, 3)
660NewGuiPart46.Size = UDim2.new(0, 14, 0, 14)
661NewGuiPart46.Font = Enum.Font.SourceSans
662NewGuiPart46.FontSize = Enum.FontSize.Size14
663NewGuiPart46.Text = ""
664
665NewGuiPart47.Name = "Desc2"
666NewGuiPart47.Parent = NewGuiPart40
667NewGuiPart47.BackgroundColor3 = Color3.new(1, 1, 1)
668NewGuiPart47.BackgroundTransparency = 1
669NewGuiPart47.Position = UDim2.new(0.075000003, 30, 0.625, 0)
670NewGuiPart47.Size = UDim2.new(0.925000012, -30, 0, 20)
671NewGuiPart47.Font = Enum.Font.SourceSans
672NewGuiPart47.FontSize = Enum.FontSize.Size14
673NewGuiPart47.Text = "Save \"Object\" type values"
674NewGuiPart47.TextXAlignment = Enum.TextXAlignment.Left
675
676NewGuiPart48.Name = "Confirmation"
677NewGuiPart48.Parent = NewGuiPart1
678NewGuiPart48.Active = true
679NewGuiPart48.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
680NewGuiPart48.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
681NewGuiPart48.Draggable = true
682NewGuiPart48.Position = UDim2.new(0.300000012, 0, 0.349999994, 0)
683NewGuiPart48.Size = UDim2.new(0, 350, 0, 20)
684NewGuiPart48.Visible = false
685NewGuiPart48.ZIndex = 3
686
687NewGuiPart49.Name = "Title"
688NewGuiPart49.Parent = NewGuiPart48
689NewGuiPart49.BackgroundTransparency = 1
690NewGuiPart49.Size = UDim2.new(1, 0, 1, 0)
691NewGuiPart49.ZIndex = 3
692NewGuiPart49.Font = Enum.Font.SourceSans
693NewGuiPart49.FontSize = Enum.FontSize.Size14
694NewGuiPart49.Text = "Confirm"
695NewGuiPart49.TextColor3 = Color3.new(0, 0, 0)
696NewGuiPart49.TextXAlignment = Enum.TextXAlignment.Left
697
698NewGuiPart50.Name = "MainWindow"
699NewGuiPart50.Parent = NewGuiPart48
700NewGuiPart50.BackgroundColor3 = Color3.new(1, 1, 1)
701NewGuiPart50.BackgroundTransparency = 0.10000000149012
702NewGuiPart50.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
703NewGuiPart50.Size = UDim2.new(1, 0, 0, 150)
704NewGuiPart50.ZIndex = 2
705
706NewGuiPart51.Name = "Yes"
707NewGuiPart51.Parent = NewGuiPart50
708NewGuiPart51.BackgroundColor3 = Color3.new(1, 1, 1)
709NewGuiPart51.BackgroundTransparency = 0.5
710NewGuiPart51.BorderColor3 = Color3.new(0, 0, 0)
711NewGuiPart51.Position = UDim2.new(0.075000003, 0, 1, -40)
712NewGuiPart51.Size = UDim2.new(0.400000006, 0, 0, 30)
713NewGuiPart51.ZIndex = 2
714NewGuiPart51.Font = Enum.Font.SourceSans
715NewGuiPart51.FontSize = Enum.FontSize.Size18
716NewGuiPart51.Text = "Yes"
717
718NewGuiPart52.Name = "Desc"
719NewGuiPart52.Parent = NewGuiPart50
720NewGuiPart52.BackgroundColor3 = Color3.new(1, 1, 1)
721NewGuiPart52.BackgroundTransparency = 1
722NewGuiPart52.Position = UDim2.new(0, 0, 0, 20)
723NewGuiPart52.Size = UDim2.new(1, 0, 0, 40)
724NewGuiPart52.ZIndex = 2
725NewGuiPart52.Font = Enum.Font.SourceSans
726NewGuiPart52.FontSize = Enum.FontSize.Size14
727NewGuiPart52.Text = "The file, FILENAME, already exists. Overwrite?"
728NewGuiPart52.TextWrapped = true
729
730NewGuiPart53.Name = "No"
731NewGuiPart53.Parent = NewGuiPart50
732NewGuiPart53.BackgroundColor3 = Color3.new(1, 1, 1)
733NewGuiPart53.BackgroundTransparency = 0.5
734NewGuiPart53.BorderColor3 = Color3.new(0, 0, 0)
735NewGuiPart53.Position = UDim2.new(0.524999976, 0, 1, -40)
736NewGuiPart53.Size = UDim2.new(0.400000006, 0, 0, 30)
737NewGuiPart53.ZIndex = 2
738NewGuiPart53.Font = Enum.Font.SourceSans
739NewGuiPart53.FontSize = Enum.FontSize.Size18
740NewGuiPart53.Text = "No"
741
742NewGuiPart54.Name = "Caution"
743NewGuiPart54.Parent = NewGuiPart1
744NewGuiPart54.Active = true
745NewGuiPart54.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
746NewGuiPart54.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
747NewGuiPart54.Draggable = true
748NewGuiPart54.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
749NewGuiPart54.Size = UDim2.new(0, 350, 0, 20)
750NewGuiPart54.Visible = false
751NewGuiPart54.ZIndex = 5
752
753NewGuiPart55.Name = "Title"
754NewGuiPart55.Parent = NewGuiPart54
755NewGuiPart55.BackgroundTransparency = 1
756NewGuiPart55.Size = UDim2.new(1, 0, 1, 0)
757NewGuiPart55.ZIndex = 5
758NewGuiPart55.Font = Enum.Font.SourceSans
759NewGuiPart55.FontSize = Enum.FontSize.Size14
760NewGuiPart55.Text = "Caution"
761NewGuiPart55.TextColor3 = Color3.new(0, 0, 0)
762NewGuiPart55.TextXAlignment = Enum.TextXAlignment.Left
763
764NewGuiPart56.Name = "MainWindow"
765NewGuiPart56.Parent = NewGuiPart54
766NewGuiPart56.BackgroundColor3 = Color3.new(1, 1, 1)
767NewGuiPart56.BackgroundTransparency = 0.10000000149012
768NewGuiPart56.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
769NewGuiPart56.Size = UDim2.new(1, 0, 0, 150)
770NewGuiPart56.ZIndex = 4
771
772NewGuiPart57.Name = "Desc"
773NewGuiPart57.Parent = NewGuiPart56
774NewGuiPart57.BackgroundColor3 = Color3.new(1, 1, 1)
775NewGuiPart57.BackgroundTransparency = 1
776NewGuiPart57.Position = UDim2.new(0, 0, 0, 20)
777NewGuiPart57.Size = UDim2.new(1, 0, 0, 42)
778NewGuiPart57.ZIndex = 4
779NewGuiPart57.Font = Enum.Font.SourceSans
780NewGuiPart57.FontSize = Enum.FontSize.Size14
781NewGuiPart57.Text = "The file, FILENAME, already exists. Overwrite?"
782NewGuiPart57.TextWrapped = true
783
784NewGuiPart58.Name = "Ok"
785NewGuiPart58.Parent = NewGuiPart56
786NewGuiPart58.BackgroundColor3 = Color3.new(1, 1, 1)
787NewGuiPart58.BackgroundTransparency = 0.5
788NewGuiPart58.BorderColor3 = Color3.new(0, 0, 0)
789NewGuiPart58.Position = UDim2.new(0.300000012, 0, 1, -40)
790NewGuiPart58.Size = UDim2.new(0.400000006, 0, 0, 30)
791NewGuiPart58.ZIndex = 4
792NewGuiPart58.Font = Enum.Font.SourceSans
793NewGuiPart58.FontSize = Enum.FontSize.Size18
794NewGuiPart58.Text = "Ok"
795
796NewGuiPart59.Name = "CallRemote"
797NewGuiPart59.Parent = NewGuiPart1
798NewGuiPart59.Active = true
799NewGuiPart59.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
800NewGuiPart59.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
801NewGuiPart59.Draggable = true
802NewGuiPart59.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
803NewGuiPart59.Size = UDim2.new(0, 350, 0, 20)
804NewGuiPart59.Visible = false
805NewGuiPart59.ZIndex = 2
806
807NewGuiPart60.Name = "Title"
808NewGuiPart60.Parent = NewGuiPart59
809NewGuiPart60.BackgroundTransparency = 1
810NewGuiPart60.Size = UDim2.new(1, 0, 1, 0)
811NewGuiPart60.ZIndex = 2
812NewGuiPart60.Font = Enum.Font.SourceSans
813NewGuiPart60.FontSize = Enum.FontSize.Size14
814NewGuiPart60.Text = "Call Remote"
815NewGuiPart60.TextColor3 = Color3.new(0, 0, 0)
816NewGuiPart60.TextXAlignment = Enum.TextXAlignment.Left
817
818NewGuiPart61.Name = "MainWindow"
819NewGuiPart61.Parent = NewGuiPart59
820NewGuiPart61.BackgroundColor3 = Color3.new(1, 1, 1)
821NewGuiPart61.BackgroundTransparency = 0.10000000149012
822NewGuiPart61.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
823NewGuiPart61.Size = UDim2.new(1, 0, 0, 200)
824
825NewGuiPart62.Name = "Desc"
826NewGuiPart62.Parent = NewGuiPart61
827NewGuiPart62.BackgroundColor3 = Color3.new(1, 1, 1)
828NewGuiPart62.BackgroundTransparency = 1
829NewGuiPart62.Position = UDim2.new(0, 0, 0, 20)
830NewGuiPart62.Size = UDim2.new(1, 0, 0, 20)
831NewGuiPart62.Font = Enum.Font.SourceSans
832NewGuiPart62.FontSize = Enum.FontSize.Size14
833NewGuiPart62.Text = "Arguments"
834NewGuiPart62.TextWrapped = true
835
836NewGuiPart63.Name = "Arguments"
837NewGuiPart63.Parent = NewGuiPart61
838NewGuiPart63.BackgroundColor3 = Color3.new(1, 1, 1)
839NewGuiPart63.BackgroundTransparency = 1
840NewGuiPart63.Position = UDim2.new(0, 0, 0, 40)
841NewGuiPart63.Size = UDim2.new(1, 0, 0, 80)
842NewGuiPart63.BottomImage = "rbxasset://textures/blackBkg_square.png"
843NewGuiPart63.CanvasSize = UDim2.new(0, 0, 0, 0)
844NewGuiPart63.MidImage = "rbxasset://textures/blackBkg_square.png"
845NewGuiPart63.TopImage = "rbxasset://textures/blackBkg_square.png"
846
847NewGuiPart64.Name = "DisplayReturned"
848NewGuiPart64.Parent = NewGuiPart61
849NewGuiPart64.BackgroundColor3 = Color3.new(1, 1, 1)
850NewGuiPart64.BackgroundTransparency = 0.60000002384186
851NewGuiPart64.Position = UDim2.new(0.075000003, 0, 0.625, 0)
852NewGuiPart64.Size = UDim2.new(0, 20, 0, 20)
853NewGuiPart64.ZIndex = 2
854NewGuiPart64.Font = Enum.Font.SourceSans
855NewGuiPart64.FontSize = Enum.FontSize.Size18
856NewGuiPart64.Text = ""
857NewGuiPart64.TextColor3 = Color3.new(1, 1, 1)
858
859NewGuiPart65.Name = "enabled"
860NewGuiPart65.Parent = NewGuiPart64
861NewGuiPart65.BackgroundColor3 = Color3.new(0.380392, 0.380392, 0.380392)
862NewGuiPart65.BackgroundTransparency = 0.40000000596046
863NewGuiPart65.BorderSizePixel = 0
864NewGuiPart65.Position = UDim2.new(0, 3, 0, 3)
865NewGuiPart65.Size = UDim2.new(0, 14, 0, 14)
866NewGuiPart65.Visible = false
867NewGuiPart65.Font = Enum.Font.SourceSans
868NewGuiPart65.FontSize = Enum.FontSize.Size14
869NewGuiPart65.Text = ""
870
871NewGuiPart66.Name = "Desc2"
872NewGuiPart66.Parent = NewGuiPart61
873NewGuiPart66.BackgroundColor3 = Color3.new(1, 1, 1)
874NewGuiPart66.BackgroundTransparency = 1
875NewGuiPart66.Position = UDim2.new(0.075000003, 30, 0.625, 0)
876NewGuiPart66.Size = UDim2.new(0.925000012, -30, 0, 20)
877NewGuiPart66.Font = Enum.Font.SourceSans
878NewGuiPart66.FontSize = Enum.FontSize.Size14
879NewGuiPart66.Text = "Display values returned"
880NewGuiPart66.TextXAlignment = Enum.TextXAlignment.Left
881
882NewGuiPart67.Name = "Add"
883NewGuiPart67.Parent = NewGuiPart61
884NewGuiPart67.BackgroundColor3 = Color3.new(1, 1, 1)
885NewGuiPart67.BackgroundTransparency = 0.5
886NewGuiPart67.BorderColor3 = Color3.new(0, 0, 0)
887NewGuiPart67.Position = UDim2.new(0.800000012, 0, 0.625, 0)
888NewGuiPart67.Size = UDim2.new(0, 20, 0, 20)
889NewGuiPart67.Font = Enum.Font.SourceSansBold
890NewGuiPart67.FontSize = Enum.FontSize.Size24
891NewGuiPart67.Text = "+"
892
893NewGuiPart68.Name = "Subtract"
894NewGuiPart68.Parent = NewGuiPart61
895NewGuiPart68.BackgroundColor3 = Color3.new(1, 1, 1)
896NewGuiPart68.BackgroundTransparency = 0.5
897NewGuiPart68.BorderColor3 = Color3.new(0, 0, 0)
898NewGuiPart68.Position = UDim2.new(0.899999976, 0, 0.625, 0)
899NewGuiPart68.Size = UDim2.new(0, 20, 0, 20)
900NewGuiPart68.Font = Enum.Font.SourceSansBold
901NewGuiPart68.FontSize = Enum.FontSize.Size24
902NewGuiPart68.Text = "-"
903
904NewGuiPart69.Name = "ArgumentTemplate"
905NewGuiPart69.Parent = NewGuiPart61
906NewGuiPart69.BackgroundColor3 = Color3.new(1, 1, 1)
907NewGuiPart69.BackgroundTransparency = 0.5
908NewGuiPart69.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
909NewGuiPart69.Size = UDim2.new(1, 0, 0, 20)
910NewGuiPart69.Visible = false
911
912NewGuiPart70.Name = "Type"
913NewGuiPart70.Parent = NewGuiPart69
914NewGuiPart70.BackgroundColor3 = Color3.new(1, 1, 1)
915NewGuiPart70.BackgroundTransparency = 0.89999997615814
916NewGuiPart70.BorderColor3 = Color3.new(0, 0, 0)
917NewGuiPart70.Size = UDim2.new(0.400000006, 0, 0, 20)
918NewGuiPart70.Font = Enum.Font.SourceSans
919NewGuiPart70.FontSize = Enum.FontSize.Size18
920NewGuiPart70.Text = "Script"
921
922NewGuiPart71.Name = "Value"
923NewGuiPart71.Parent = NewGuiPart69
924NewGuiPart71.BackgroundColor3 = Color3.new(1, 1, 1)
925NewGuiPart71.BackgroundTransparency = 0.89999997615814
926NewGuiPart71.Position = UDim2.new(0.400000006, 0, 0, 0)
927NewGuiPart71.Size = UDim2.new(0.600000024, -12, 0, 20)
928NewGuiPart71.Font = Enum.Font.SourceSans
929NewGuiPart71.FontSize = Enum.FontSize.Size14
930NewGuiPart71.Text = ""
931NewGuiPart71.TextXAlignment = Enum.TextXAlignment.Left
932
933NewGuiPart72.Name = "Cancel"
934NewGuiPart72.Parent = NewGuiPart61
935NewGuiPart72.BackgroundColor3 = Color3.new(1, 1, 1)
936NewGuiPart72.BackgroundTransparency = 0.5
937NewGuiPart72.BorderColor3 = Color3.new(0, 0, 0)
938NewGuiPart72.Size = UDim2.new(0.400000006, 0, 0, 30)
939NewGuiPart72.Font = Enum.Font.SourceSans
940NewGuiPart72.FontSize = Enum.FontSize.Size18
941NewGuiPart72.Text = "Cancel"
942
943NewGuiPart73.Name = "Ok"
944NewGuiPart73.Parent = NewGuiPart61
945NewGuiPart73.BackgroundColor3 = Color3.new(1, 1, 1)
946NewGuiPart73.BackgroundTransparency = 0.5
947NewGuiPart73.BorderColor3 = Color3.new(0, 0, 0)
948NewGuiPart73.Position = UDim2.new(0.075000003, 0, 1, -40)
949NewGuiPart73.Size = UDim2.new(0.400000006, 0, 0, 30)
950NewGuiPart73.Font = Enum.Font.SourceSans
951NewGuiPart73.FontSize = Enum.FontSize.Size18
952NewGuiPart73.Text = "Call"
953
954NewGuiPart74.Name = "TableCaution"
955NewGuiPart74.Parent = NewGuiPart1
956NewGuiPart74.Active = true
957NewGuiPart74.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
958NewGuiPart74.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
959NewGuiPart74.Draggable = true
960NewGuiPart74.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
961NewGuiPart74.Size = UDim2.new(0, 350, 0, 20)
962NewGuiPart74.Visible = false
963NewGuiPart74.ZIndex = 2
964
965NewGuiPart75.Name = "MainWindow"
966NewGuiPart75.Parent = NewGuiPart74
967NewGuiPart75.BackgroundColor3 = Color3.new(1, 1, 1)
968NewGuiPart75.BackgroundTransparency = 0.10000000149012
969NewGuiPart75.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
970NewGuiPart75.Size = UDim2.new(1, 0, 0, 150)
971
972NewGuiPart76.Name = "Ok"
973NewGuiPart76.Parent = NewGuiPart75
974NewGuiPart76.BackgroundColor3 = Color3.new(1, 1, 1)
975NewGuiPart76.BackgroundTransparency = 0.5
976NewGuiPart76.BorderColor3 = Color3.new(0, 0, 0)
977NewGuiPart76.Position = UDim2.new(0.300000012, 0, 1, -40)
978NewGuiPart76.Size = UDim2.new(0.400000006, 0, 0, 30)
979NewGuiPart76.Font = Enum.Font.SourceSans
980NewGuiPart76.FontSize = Enum.FontSize.Size18
981NewGuiPart76.Text = "Ok"
982
983NewGuiPart77.Name = "TableResults"
984NewGuiPart77.Parent = NewGuiPart75
985NewGuiPart77.BackgroundColor3 = Color3.new(1, 1, 1)
986NewGuiPart77.BackgroundTransparency = 1
987NewGuiPart77.Position = UDim2.new(0, 0, 0, 20)
988NewGuiPart77.Size = UDim2.new(1, 0, 0, 80)
989NewGuiPart77.BottomImage = "rbxasset://textures/blackBkg_square.png"
990NewGuiPart77.CanvasSize = UDim2.new(0, 0, 0, 0)
991NewGuiPart77.MidImage = "rbxasset://textures/blackBkg_square.png"
992NewGuiPart77.TopImage = "rbxasset://textures/blackBkg_square.png"
993
994NewGuiPart78.Name = "TableTemplate"
995NewGuiPart78.Parent = NewGuiPart75
996NewGuiPart78.BackgroundColor3 = Color3.new(1, 1, 1)
997NewGuiPart78.BackgroundTransparency = 0.5
998NewGuiPart78.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
999NewGuiPart78.Size = UDim2.new(1, 0, 0, 20)
1000NewGuiPart78.Visible = false
1001
1002NewGuiPart79.Name = "Type"
1003NewGuiPart79.Parent = NewGuiPart78
1004NewGuiPart79.BackgroundColor3 = Color3.new(1, 1, 1)
1005NewGuiPart79.BackgroundTransparency = 0.89999997615814
1006NewGuiPart79.Size = UDim2.new(0.400000006, 0, 0, 20)
1007NewGuiPart79.Font = Enum.Font.SourceSans
1008NewGuiPart79.FontSize = Enum.FontSize.Size18
1009NewGuiPart79.Text = "Script"
1010
1011NewGuiPart80.Name = "Value"
1012NewGuiPart80.Parent = NewGuiPart78
1013NewGuiPart80.BackgroundColor3 = Color3.new(1, 1, 1)
1014NewGuiPart80.BackgroundTransparency = 0.89999997615814
1015NewGuiPart80.Position = UDim2.new(0.400000006, 0, 0, 0)
1016NewGuiPart80.Size = UDim2.new(0.600000024, -12, 0, 20)
1017NewGuiPart80.Font = Enum.Font.SourceSans
1018NewGuiPart80.FontSize = Enum.FontSize.Size14
1019NewGuiPart80.Text = "Script"
1020
1021NewGuiPart81.Name = "Title"
1022NewGuiPart81.Parent = NewGuiPart74
1023NewGuiPart81.BackgroundTransparency = 1
1024NewGuiPart81.Size = UDim2.new(1, 0, 1, 0)
1025NewGuiPart81.ZIndex = 2
1026NewGuiPart81.Font = Enum.Font.SourceSans
1027NewGuiPart81.FontSize = Enum.FontSize.Size14
1028NewGuiPart81.Text = "Caution"
1029NewGuiPart81.TextColor3 = Color3.new(0, 0, 0)
1030NewGuiPart81.TextXAlignment = Enum.TextXAlignment.Left
1031
1032NewGuiPart82.Name = "ScriptEditor"
1033NewGuiPart82.Parent = NewGuiPart1
1034NewGuiPart82.Active = true
1035NewGuiPart82.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
1036NewGuiPart82.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1037NewGuiPart82.Draggable = true
1038NewGuiPart82.Position = UDim2.new(0.300000012, 0, 0.300000012, 0)
1039NewGuiPart82.Size = UDim2.new(0, 516, 0, 20)
1040NewGuiPart82.Visible = false
1041NewGuiPart82.ZIndex = 5
1042
1043NewGuiPart163.Name = "OpenScript"
1044NewGuiPart163.Parent = NewGuiPart82
1045NewGuiPart163.Archivable = true
1046
1047NewGuiPart83.Name = "Title"
1048NewGuiPart83.Parent = NewGuiPart82
1049NewGuiPart83.BackgroundTransparency = 1
1050NewGuiPart83.Size = UDim2.new(1, 0, 1, 0)
1051NewGuiPart83.ZIndex = 5
1052NewGuiPart83.Font = Enum.Font.SourceSans
1053NewGuiPart83.FontSize = Enum.FontSize.Size14
1054NewGuiPart83.Text = "Script Viewer"
1055NewGuiPart83.TextColor3 = Color3.new(0, 0, 0)
1056NewGuiPart83.TextXAlignment = Enum.TextXAlignment.Left
1057
1058NewGuiPart84.Name = "Cover"
1059NewGuiPart84.Parent = NewGuiPart82
1060NewGuiPart84.BackgroundColor3 = Color3.new(1, 1, 1)
1061NewGuiPart84.BorderSizePixel = 0
1062NewGuiPart84.Position = UDim2.new(0, 0, 3, 0)
1063NewGuiPart84.Size = UDim2.new(0, 516, 0, 416)
1064
1065NewGuiPart85.Name = "EditorGrid"
1066NewGuiPart85.Parent = NewGuiPart82
1067NewGuiPart85.BackgroundColor3 = Color3.new(1, 1, 1)
1068NewGuiPart85.BorderSizePixel = 0
1069NewGuiPart85.Position = UDim2.new(0, 0, 3, 0)
1070NewGuiPart85.Size = UDim2.new(0, 500, 0, 400)
1071
1072NewGuiPart86.Name = "TopBar"
1073NewGuiPart86.Parent = NewGuiPart82
1074NewGuiPart86.BackgroundColor3 = Color3.new(0.941177, 0.941177, 0.941177)
1075NewGuiPart86.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1076NewGuiPart86.Size = UDim2.new(1, 0, 3, 0)
1077
1078NewGuiPart87.Name = "ScriptBarLeft"
1079NewGuiPart87.Parent = NewGuiPart86
1080NewGuiPart87.Active = false
1081NewGuiPart87.BackgroundColor3 = Color3.new(0.866667, 0.866667, 0.866667)
1082NewGuiPart87.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1083NewGuiPart87.Position = UDim2.new(1, -32, 0, 40)
1084NewGuiPart87.Size = UDim2.new(0, 16, 0, 20)
1085NewGuiPart87.AutoButtonColor = false
1086
1087NewGuiPart88.Name = "Arrow Graphic"
1088NewGuiPart88.Parent = NewGuiPart87
1089NewGuiPart88.BackgroundTransparency = 1
1090NewGuiPart88.BorderSizePixel = 0
1091NewGuiPart88.Position = UDim2.new(0.5, -4, 0.5, -4)
1092NewGuiPart88.Size = UDim2.new(0, 8, 0, 8)
1093
1094NewGuiPart89.Name = "Graphic"
1095NewGuiPart89.Parent = NewGuiPart88
1096NewGuiPart89.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1097NewGuiPart89.BackgroundTransparency = 0.69999998807907
1098NewGuiPart89.BorderSizePixel = 0
1099NewGuiPart89.Position = UDim2.new(0.25, 0, 0.375, 0)
1100NewGuiPart89.Size = UDim2.new(0.125, 0, 0.25, 0)
1101
1102NewGuiPart90.Name = "Graphic"
1103NewGuiPart90.Parent = NewGuiPart88
1104NewGuiPart90.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1105NewGuiPart90.BackgroundTransparency = 0.69999998807907
1106NewGuiPart90.BorderSizePixel = 0
1107NewGuiPart90.Position = UDim2.new(0.375, 0, 0.25, 0)
1108NewGuiPart90.Size = UDim2.new(0.125, 0, 0.5, 0)
1109
1110NewGuiPart91.Name = "Graphic"
1111NewGuiPart91.Parent = NewGuiPart88
1112NewGuiPart91.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1113NewGuiPart91.BackgroundTransparency = 0.69999998807907
1114NewGuiPart91.BorderSizePixel = 0
1115NewGuiPart91.Position = UDim2.new(0.5, 0, 0.125, 0)
1116NewGuiPart91.Size = UDim2.new(0.125, 0, 0.75, 0)
1117
1118NewGuiPart92.Name = "Graphic"
1119NewGuiPart92.Parent = NewGuiPart88
1120NewGuiPart92.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1121NewGuiPart92.BackgroundTransparency = 0.69999998807907
1122NewGuiPart92.BorderSizePixel = 0
1123NewGuiPart92.Position = UDim2.new(0.625, 0, 0, 0)
1124NewGuiPart92.Size = UDim2.new(0.125, 0, 1, 0)
1125
1126NewGuiPart93.Name = "ScriptBarRight"
1127NewGuiPart93.Parent = NewGuiPart86
1128NewGuiPart93.Active = false
1129NewGuiPart93.BackgroundColor3 = Color3.new(0.866667, 0.866667, 0.866667)
1130NewGuiPart93.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1131NewGuiPart93.Position = UDim2.new(1, -16, 0, 40)
1132NewGuiPart93.Size = UDim2.new(0, 16, 0, 20)
1133NewGuiPart93.AutoButtonColor = false
1134
1135NewGuiPart94.Name = "Arrow Graphic"
1136NewGuiPart94.Parent = NewGuiPart93
1137NewGuiPart94.BackgroundTransparency = 1
1138NewGuiPart94.BorderSizePixel = 0
1139NewGuiPart94.Position = UDim2.new(0.5, -4, 0.5, -4)
1140NewGuiPart94.Size = UDim2.new(0, 8, 0, 8)
1141
1142NewGuiPart95.Name = "Graphic"
1143NewGuiPart95.Parent = NewGuiPart94
1144NewGuiPart95.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1145NewGuiPart95.BackgroundTransparency = 0.69999998807907
1146NewGuiPart95.BorderSizePixel = 0
1147NewGuiPart95.Position = UDim2.new(0.625, 0, 0.375, 0)
1148NewGuiPart95.Size = UDim2.new(0.125, 0, 0.25, 0)
1149
1150NewGuiPart96.Name = "Graphic"
1151NewGuiPart96.Parent = NewGuiPart94
1152NewGuiPart96.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1153NewGuiPart96.BackgroundTransparency = 0.69999998807907
1154NewGuiPart96.BorderSizePixel = 0
1155NewGuiPart96.Position = UDim2.new(0.5, 0, 0.25, 0)
1156NewGuiPart96.Size = UDim2.new(0.125, 0, 0.5, 0)
1157
1158NewGuiPart97.Name = "Graphic"
1159NewGuiPart97.Parent = NewGuiPart94
1160NewGuiPart97.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1161NewGuiPart97.BackgroundTransparency = 0.69999998807907
1162NewGuiPart97.BorderSizePixel = 0
1163NewGuiPart97.Position = UDim2.new(0.375, 0, 0.125, 0)
1164NewGuiPart97.Size = UDim2.new(0.125, 0, 0.75, 0)
1165
1166NewGuiPart98.Name = "Graphic"
1167NewGuiPart98.Parent = NewGuiPart94
1168NewGuiPart98.BackgroundColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1169NewGuiPart98.BackgroundTransparency = 0.69999998807907
1170NewGuiPart98.BorderSizePixel = 0
1171NewGuiPart98.Position = UDim2.new(0.25, 0, 0, 0)
1172NewGuiPart98.Size = UDim2.new(0.125, 0, 1, 0)
1173
1174NewGuiPart99.Name = "Clipboard"
1175NewGuiPart99.Parent = NewGuiPart86
1176NewGuiPart99.BackgroundColor3 = Color3.new(1, 1, 1)
1177NewGuiPart99.BackgroundTransparency = 0.5
1178NewGuiPart99.BorderColor3 = Color3.new(0, 0, 0)
1179NewGuiPart99.Position = UDim2.new(0, 0, 0, 20)
1180NewGuiPart99.Size = UDim2.new(0, 80, 0, 20)
1181NewGuiPart99.Font = Enum.Font.SourceSans
1182NewGuiPart99.FontSize = Enum.FontSize.Size14
1183NewGuiPart99.Text = "To Clipboard"
1184
1185NewGuiPart100.Name = "ScriptBar"
1186NewGuiPart100.Parent = NewGuiPart86
1187NewGuiPart100.BackgroundColor3 = Color3.new(0.823529, 0.823529, 0.823529)
1188NewGuiPart100.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1189NewGuiPart100.ClipsDescendants = true
1190NewGuiPart100.Position = UDim2.new(0, 0, 0, 40)
1191NewGuiPart100.Size = UDim2.new(1, -32, 0, 20)
1192
1193NewGuiPart101.Name = "Entry"
1194NewGuiPart101.Parent = NewGuiPart86
1195NewGuiPart101.BackgroundColor3 = Color3.new(1, 1, 1)
1196NewGuiPart101.BackgroundTransparency = 1
1197NewGuiPart101.Size = UDim2.new(0, 100, 1, 0)
1198NewGuiPart101.Visible = false
1199
1200NewGuiPart102.Name = "Button"
1201NewGuiPart102.Parent = NewGuiPart101
1202NewGuiPart102.BackgroundColor3 = Color3.new(1, 1, 1)
1203NewGuiPart102.BackgroundTransparency = 0.60000002384186
1204NewGuiPart102.BorderColor3 = Color3.new(0, 0, 0)
1205NewGuiPart102.ClipsDescendants = true
1206NewGuiPart102.Size = UDim2.new(1, 0, 1, 0)
1207NewGuiPart102.ZIndex = 4
1208NewGuiPart102.Font = Enum.Font.SourceSans
1209NewGuiPart102.FontSize = Enum.FontSize.Size12
1210NewGuiPart102.Text = ""
1211NewGuiPart102.TextXAlignment = Enum.TextXAlignment.Left
1212
1213NewGuiPart103.Name = "Close"
1214NewGuiPart103.Parent = NewGuiPart101
1215NewGuiPart103.BackgroundColor3 = Color3.new(1, 1, 1)
1216NewGuiPart103.BackgroundTransparency = 1
1217NewGuiPart103.BorderColor3 = Color3.new(0, 0, 0)
1218NewGuiPart103.Position = UDim2.new(1, -20, 0, 0)
1219NewGuiPart103.Size = UDim2.new(0, 20, 0, 20)
1220NewGuiPart103.ZIndex = 4
1221NewGuiPart103.Font = Enum.Font.SourceSans
1222NewGuiPart103.FontSize = Enum.FontSize.Size14
1223NewGuiPart103.Text = "X"
1224
1225NewGuiPart104.Name = "Close"
1226NewGuiPart104.Parent = NewGuiPart82
1227NewGuiPart104.BackgroundColor3 = Color3.new(1, 1, 1)
1228NewGuiPart104.BackgroundTransparency = 1
1229NewGuiPart104.BorderColor3 = Color3.new(0, 0, 0)
1230NewGuiPart104.Position = UDim2.new(1, -20, 0, 0)
1231NewGuiPart104.Size = UDim2.new(0, 20, 0, 20)
1232NewGuiPart104.ZIndex = 5
1233NewGuiPart104.Font = Enum.Font.SourceSans
1234NewGuiPart104.FontSize = Enum.FontSize.Size14
1235NewGuiPart104.Text = "X"
1236
1237NewGuiPart105.Name = "IntroFrame"
1238NewGuiPart105.Parent = NewGuiPart1
1239NewGuiPart105.BackgroundColor3 = Color3.new(0.960784, 0.960784, 0.960784)
1240NewGuiPart105.BorderSizePixel = 0
1241NewGuiPart105.Position = UDim2.new(1, 30, 0, 0)
1242NewGuiPart105.Size = UDim2.new(0, 300, 1, 0)
1243NewGuiPart105.ZIndex = 2
1244
1245NewGuiPart106.Name = "Main"
1246NewGuiPart106.Parent = NewGuiPart105
1247NewGuiPart106.BackgroundColor3 = Color3.new(0.960784, 0.960784, 0.960784)
1248NewGuiPart106.BorderSizePixel = 0
1249NewGuiPart106.Position = UDim2.new(0, -30, 0, 0)
1250NewGuiPart106.Size = UDim2.new(0, 30, 0, 90)
1251NewGuiPart106.ZIndex = 2
1252
1253NewGuiPart107.Name = "Title"
1254NewGuiPart107.Parent = NewGuiPart105
1255NewGuiPart107.BackgroundColor3 = Color3.new(1, 1, 1)
1256NewGuiPart107.BackgroundTransparency = 1
1257NewGuiPart107.Position = UDim2.new(0, 100, 0, 150)
1258NewGuiPart107.Size = UDim2.new(0, 100, 0, 60)
1259NewGuiPart107.ZIndex = 2
1260NewGuiPart107.Font = Enum.Font.SourceSansBold
1261NewGuiPart107.FontSize = Enum.FontSize.Size60
1262NewGuiPart107.Text = "DEX"
1263NewGuiPart107.TextWrapped = true
1264
1265NewGuiPart108.Name = "Version"
1266NewGuiPart108.Parent = NewGuiPart105
1267NewGuiPart108.BackgroundColor3 = Color3.new(1, 1, 1)
1268NewGuiPart108.BackgroundTransparency = 1
1269NewGuiPart108.Position = UDim2.new(0, 100, 0, 210)
1270NewGuiPart108.Size = UDim2.new(0, 100, 0, 30)
1271NewGuiPart108.ZIndex = 2
1272NewGuiPart108.Font = Enum.Font.SourceSansBold
1273NewGuiPart108.FontSize = Enum.FontSize.Size28
1274NewGuiPart108.Text = "V2.0.0"
1275NewGuiPart108.TextWrapped = true
1276
1277NewGuiPart109.Name = "Creator"
1278NewGuiPart109.Parent = NewGuiPart105
1279NewGuiPart109.BackgroundColor3 = Color3.new(1, 1, 1)
1280NewGuiPart109.BackgroundTransparency = 1
1281NewGuiPart109.Position = UDim2.new(0, 80, 0, 300)
1282NewGuiPart109.Size = UDim2.new(0, 140, 0, 30)
1283NewGuiPart109.ZIndex = 2
1284NewGuiPart109.Font = Enum.Font.SourceSansBold
1285NewGuiPart109.FontSize = Enum.FontSize.Size28
1286NewGuiPart109.Text = "Raspberry Pi , Script Made By Advancedev"
1287NewGuiPart109.TextWrapped = true
1288
1289NewGuiPart110.Name = "Slant"
1290NewGuiPart110.Parent = NewGuiPart105
1291NewGuiPart110.BackgroundColor3 = Color3.new(1, 1, 1)
1292NewGuiPart110.BackgroundTransparency = 1
1293NewGuiPart110.Position = UDim2.new(0, -30, 0, 90)
1294NewGuiPart110.Rotation = 180
1295NewGuiPart110.Size = UDim2.new(0, 30, 0, 30)
1296NewGuiPart110.ZIndex = 2
1297NewGuiPart110.Image = "rbxassetid://474172996"
1298NewGuiPart110.ImageColor3 = Color3.new(0.960784, 0.960784, 0.960784)
1299
1300NewGuiPart111.Name = "SaveMapWindow"
1301NewGuiPart111.Parent = NewGuiPart1
1302NewGuiPart111.BackgroundColor3 = Color3.new(1, 1, 1)
1303NewGuiPart111.BackgroundTransparency = 0.10000000149012
1304NewGuiPart111.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
1305NewGuiPart111.Position = UDim2.new(1, 0, 0, 0)
1306NewGuiPart111.Size = UDim2.new(0, 300, 1, 0)
1307
1308NewGuiPart112.Name = "Header"
1309NewGuiPart112.Parent = NewGuiPart111
1310NewGuiPart112.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
1311NewGuiPart112.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1312NewGuiPart112.Size = UDim2.new(1, 0, 0, 17)
1313
1314NewGuiPart113.Parent = NewGuiPart112
1315NewGuiPart113.BackgroundTransparency = 1
1316NewGuiPart113.Position = UDim2.new(0, 4, 0, 0)
1317NewGuiPart113.Size = UDim2.new(1, -4, 1, 0)
1318NewGuiPart113.Font = Enum.Font.SourceSans
1319NewGuiPart113.FontSize = Enum.FontSize.Size14
1320NewGuiPart113.Text = "Map Downloader"
1321NewGuiPart113.TextColor3 = Color3.new(0, 0, 0)
1322NewGuiPart113.TextXAlignment = Enum.TextXAlignment.Left
1323
1324NewGuiPart114.Name = "MapSettings"
1325NewGuiPart114.Parent = NewGuiPart111
1326NewGuiPart114.BackgroundColor3 = Color3.new(1, 1, 1)
1327NewGuiPart114.BackgroundTransparency = 1
1328NewGuiPart114.Position = UDim2.new(0, 0, 0, 200)
1329NewGuiPart114.Size = UDim2.new(1, 0, 0, 240)
1330
1331NewGuiPart115.Name = "Terrain"
1332NewGuiPart115.Parent = NewGuiPart114
1333NewGuiPart115.BackgroundColor3 = Color3.new(1, 1, 1)
1334NewGuiPart115.BackgroundTransparency = 1
1335NewGuiPart115.Position = UDim2.new(0, 0, 0, 60)
1336NewGuiPart115.Size = UDim2.new(1, 0, 0, 60)
1337
1338NewGuiPart116.Name = "SName"
1339NewGuiPart116.Parent = NewGuiPart115
1340NewGuiPart116.BackgroundColor3 = Color3.new(1, 1, 1)
1341NewGuiPart116.BackgroundTransparency = 1
1342NewGuiPart116.Position = UDim2.new(0, 10, 0, 0)
1343NewGuiPart116.Size = UDim2.new(1, -20, 0, 30)
1344NewGuiPart116.Font = Enum.Font.SourceSans
1345NewGuiPart116.FontSize = Enum.FontSize.Size18
1346NewGuiPart116.Text = "Save Terrain"
1347NewGuiPart116.TextXAlignment = Enum.TextXAlignment.Left
1348
1349NewGuiPart117.Name = "Status"
1350NewGuiPart117.Parent = NewGuiPart115
1351NewGuiPart117.BackgroundColor3 = Color3.new(1, 1, 1)
1352NewGuiPart117.BackgroundTransparency = 1
1353NewGuiPart117.Position = UDim2.new(0, 60, 0, 30)
1354NewGuiPart117.Size = UDim2.new(0, 50, 0, 15)
1355NewGuiPart117.Font = Enum.Font.SourceSans
1356NewGuiPart117.FontSize = Enum.FontSize.Size18
1357NewGuiPart117.Text = "Off"
1358NewGuiPart117.TextXAlignment = Enum.TextXAlignment.Left
1359
1360NewGuiPart118.Name = "Change"
1361NewGuiPart118.Parent = NewGuiPart115
1362NewGuiPart118.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
1363NewGuiPart118.BorderSizePixel = 0
1364NewGuiPart118.Position = UDim2.new(0, 10, 0, 30)
1365NewGuiPart118.Size = UDim2.new(0, 40, 0, 15)
1366NewGuiPart118.Font = Enum.Font.SourceSans
1367NewGuiPart118.FontSize = Enum.FontSize.Size14
1368NewGuiPart118.Text = ""
1369
1370NewGuiPart119.Name = "OnBar"
1371NewGuiPart119.Parent = NewGuiPart118
1372NewGuiPart119.BackgroundColor3 = Color3.new(0, 0.576471, 0.862745)
1373NewGuiPart119.BorderSizePixel = 0
1374NewGuiPart119.Size = UDim2.new(0, 0, 0, 15)
1375NewGuiPart119.Font = Enum.Font.SourceSans
1376NewGuiPart119.FontSize = Enum.FontSize.Size14
1377NewGuiPart119.Text = ""
1378
1379NewGuiPart120.Name = "Bar"
1380NewGuiPart120.Parent = NewGuiPart118
1381NewGuiPart120.BackgroundColor3 = Color3.new(0, 0, 0)
1382NewGuiPart120.BorderSizePixel = 0
1383NewGuiPart120.ClipsDescendants = true
1384NewGuiPart120.Position = UDim2.new(0, -2, 0, -2)
1385NewGuiPart120.Size = UDim2.new(0, 10, 0, 19)
1386NewGuiPart120.Font = Enum.Font.SourceSans
1387NewGuiPart120.FontSize = Enum.FontSize.Size14
1388NewGuiPart120.Text = ""
1389
1390NewGuiPart121.Name = "Lighting"
1391NewGuiPart121.Parent = NewGuiPart114
1392NewGuiPart121.BackgroundColor3 = Color3.new(1, 1, 1)
1393NewGuiPart121.BackgroundTransparency = 1
1394NewGuiPart121.Position = UDim2.new(0, 0, 0, 120)
1395NewGuiPart121.Size = UDim2.new(1, 0, 0, 60)
1396
1397NewGuiPart122.Name = "SName"
1398NewGuiPart122.Parent = NewGuiPart121
1399NewGuiPart122.BackgroundColor3 = Color3.new(1, 1, 1)
1400NewGuiPart122.BackgroundTransparency = 1
1401NewGuiPart122.Position = UDim2.new(0, 10, 0, 0)
1402NewGuiPart122.Size = UDim2.new(1, -20, 0, 30)
1403NewGuiPart122.Font = Enum.Font.SourceSans
1404NewGuiPart122.FontSize = Enum.FontSize.Size18
1405NewGuiPart122.Text = "Lighting Properties"
1406NewGuiPart122.TextXAlignment = Enum.TextXAlignment.Left
1407
1408NewGuiPart123.Name = "Status"
1409NewGuiPart123.Parent = NewGuiPart121
1410NewGuiPart123.BackgroundColor3 = Color3.new(1, 1, 1)
1411NewGuiPart123.BackgroundTransparency = 1
1412NewGuiPart123.Position = UDim2.new(0, 60, 0, 30)
1413NewGuiPart123.Size = UDim2.new(0, 50, 0, 15)
1414NewGuiPart123.Font = Enum.Font.SourceSans
1415NewGuiPart123.FontSize = Enum.FontSize.Size18
1416NewGuiPart123.Text = "Off"
1417NewGuiPart123.TextXAlignment = Enum.TextXAlignment.Left
1418
1419NewGuiPart124.Name = "Change"
1420NewGuiPart124.Parent = NewGuiPart121
1421NewGuiPart124.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
1422NewGuiPart124.BorderSizePixel = 0
1423NewGuiPart124.Position = UDim2.new(0, 10, 0, 30)
1424NewGuiPart124.Size = UDim2.new(0, 40, 0, 15)
1425NewGuiPart124.Font = Enum.Font.SourceSans
1426NewGuiPart124.FontSize = Enum.FontSize.Size14
1427NewGuiPart124.Text = ""
1428
1429NewGuiPart125.Name = "OnBar"
1430NewGuiPart125.Parent = NewGuiPart124
1431NewGuiPart125.BackgroundColor3 = Color3.new(0, 0.576471, 0.862745)
1432NewGuiPart125.BorderSizePixel = 0
1433NewGuiPart125.Size = UDim2.new(0, 0, 0, 15)
1434NewGuiPart125.Font = Enum.Font.SourceSans
1435NewGuiPart125.FontSize = Enum.FontSize.Size14
1436NewGuiPart125.Text = ""
1437
1438NewGuiPart126.Name = "Bar"
1439NewGuiPart126.Parent = NewGuiPart124
1440NewGuiPart126.BackgroundColor3 = Color3.new(0, 0, 0)
1441NewGuiPart126.BorderSizePixel = 0
1442NewGuiPart126.ClipsDescendants = true
1443NewGuiPart126.Position = UDim2.new(0, -2, 0, -2)
1444NewGuiPart126.Size = UDim2.new(0, 10, 0, 19)
1445NewGuiPart126.Font = Enum.Font.SourceSans
1446NewGuiPart126.FontSize = Enum.FontSize.Size14
1447NewGuiPart126.Text = ""
1448
1449NewGuiPart127.Name = "CameraInstances"
1450NewGuiPart127.Parent = NewGuiPart114
1451NewGuiPart127.BackgroundColor3 = Color3.new(1, 1, 1)
1452NewGuiPart127.BackgroundTransparency = 1
1453NewGuiPart127.Position = UDim2.new(0, 0, 0, 180)
1454NewGuiPart127.Size = UDim2.new(1, 0, 0, 60)
1455
1456NewGuiPart128.Name = "SName"
1457NewGuiPart128.Parent = NewGuiPart127
1458NewGuiPart128.BackgroundColor3 = Color3.new(1, 1, 1)
1459NewGuiPart128.BackgroundTransparency = 1
1460NewGuiPart128.Position = UDim2.new(0, 10, 0, 0)
1461NewGuiPart128.Size = UDim2.new(1, -20, 0, 30)
1462NewGuiPart128.Font = Enum.Font.SourceSans
1463NewGuiPart128.FontSize = Enum.FontSize.Size18
1464NewGuiPart128.Text = "Camera Instances"
1465NewGuiPart128.TextXAlignment = Enum.TextXAlignment.Left
1466
1467NewGuiPart129.Name = "Status"
1468NewGuiPart129.Parent = NewGuiPart127
1469NewGuiPart129.BackgroundColor3 = Color3.new(1, 1, 1)
1470NewGuiPart129.BackgroundTransparency = 1
1471NewGuiPart129.Position = UDim2.new(0, 60, 0, 30)
1472NewGuiPart129.Size = UDim2.new(0, 50, 0, 15)
1473NewGuiPart129.Font = Enum.Font.SourceSans
1474NewGuiPart129.FontSize = Enum.FontSize.Size18
1475NewGuiPart129.Text = "Off"
1476NewGuiPart129.TextXAlignment = Enum.TextXAlignment.Left
1477
1478NewGuiPart130.Name = "Change"
1479NewGuiPart130.Parent = NewGuiPart127
1480NewGuiPart130.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
1481NewGuiPart130.BorderSizePixel = 0
1482NewGuiPart130.Position = UDim2.new(0, 10, 0, 30)
1483NewGuiPart130.Size = UDim2.new(0, 40, 0, 15)
1484NewGuiPart130.Font = Enum.Font.SourceSans
1485NewGuiPart130.FontSize = Enum.FontSize.Size14
1486NewGuiPart130.Text = ""
1487
1488NewGuiPart131.Name = "OnBar"
1489NewGuiPart131.Parent = NewGuiPart130
1490NewGuiPart131.BackgroundColor3 = Color3.new(0, 0.576471, 0.862745)
1491NewGuiPart131.BorderSizePixel = 0
1492NewGuiPart131.Size = UDim2.new(0, 0, 0, 15)
1493NewGuiPart131.Font = Enum.Font.SourceSans
1494NewGuiPart131.FontSize = Enum.FontSize.Size14
1495NewGuiPart131.Text = ""
1496
1497NewGuiPart132.Name = "Bar"
1498NewGuiPart132.Parent = NewGuiPart130
1499NewGuiPart132.BackgroundColor3 = Color3.new(0, 0, 0)
1500NewGuiPart132.BorderSizePixel = 0
1501NewGuiPart132.ClipsDescendants = true
1502NewGuiPart132.Position = UDim2.new(0, -2, 0, -2)
1503NewGuiPart132.Size = UDim2.new(0, 10, 0, 19)
1504NewGuiPart132.Font = Enum.Font.SourceSans
1505NewGuiPart132.FontSize = Enum.FontSize.Size14
1506NewGuiPart132.Text = ""
1507
1508NewGuiPart133.Name = "Scripts"
1509NewGuiPart133.Parent = NewGuiPart114
1510NewGuiPart133.BackgroundColor3 = Color3.new(1, 1, 1)
1511NewGuiPart133.BackgroundTransparency = 1
1512NewGuiPart133.Size = UDim2.new(1, 0, 0, 60)
1513
1514NewGuiPart134.Name = "SName"
1515NewGuiPart134.Parent = NewGuiPart133
1516NewGuiPart134.BackgroundColor3 = Color3.new(1, 1, 1)
1517NewGuiPart134.BackgroundTransparency = 1
1518NewGuiPart134.Position = UDim2.new(0, 10, 0, 0)
1519NewGuiPart134.Size = UDim2.new(1, -20, 0, 30)
1520NewGuiPart134.Font = Enum.Font.SourceSans
1521NewGuiPart134.FontSize = Enum.FontSize.Size18
1522NewGuiPart134.Text = "Save Scripts"
1523NewGuiPart134.TextXAlignment = Enum.TextXAlignment.Left
1524
1525NewGuiPart135.Name = "Status"
1526NewGuiPart135.Parent = NewGuiPart133
1527NewGuiPart135.BackgroundColor3 = Color3.new(1, 1, 1)
1528NewGuiPart135.BackgroundTransparency = 1
1529NewGuiPart135.Position = UDim2.new(0, 60, 0, 30)
1530NewGuiPart135.Size = UDim2.new(0, 50, 0, 15)
1531NewGuiPart135.Font = Enum.Font.SourceSans
1532NewGuiPart135.FontSize = Enum.FontSize.Size18
1533NewGuiPart135.Text = "Off"
1534NewGuiPart135.TextXAlignment = Enum.TextXAlignment.Left
1535
1536NewGuiPart136.Name = "Change"
1537NewGuiPart136.Parent = NewGuiPart133
1538NewGuiPart136.BackgroundColor3 = Color3.new(0.862745, 0.862745, 0.862745)
1539NewGuiPart136.BorderSizePixel = 0
1540NewGuiPart136.Position = UDim2.new(0, 10, 0, 30)
1541NewGuiPart136.Size = UDim2.new(0, 40, 0, 15)
1542NewGuiPart136.Font = Enum.Font.SourceSans
1543NewGuiPart136.FontSize = Enum.FontSize.Size14
1544NewGuiPart136.Text = ""
1545
1546NewGuiPart137.Name = "OnBar"
1547NewGuiPart137.Parent = NewGuiPart136
1548NewGuiPart137.BackgroundColor3 = Color3.new(0, 0.576471, 0.862745)
1549NewGuiPart137.BorderSizePixel = 0
1550NewGuiPart137.Size = UDim2.new(0, 0, 0, 15)
1551NewGuiPart137.Font = Enum.Font.SourceSans
1552NewGuiPart137.FontSize = Enum.FontSize.Size14
1553NewGuiPart137.Text = ""
1554
1555NewGuiPart138.Name = "Bar"
1556NewGuiPart138.Parent = NewGuiPart136
1557NewGuiPart138.BackgroundColor3 = Color3.new(0, 0, 0)
1558NewGuiPart138.BorderSizePixel = 0
1559NewGuiPart138.ClipsDescendants = true
1560NewGuiPart138.Position = UDim2.new(0, -2, 0, -2)
1561NewGuiPart138.Size = UDim2.new(0, 10, 0, 19)
1562NewGuiPart138.Font = Enum.Font.SourceSans
1563NewGuiPart138.FontSize = Enum.FontSize.Size14
1564NewGuiPart138.Text = ""
1565
1566NewGuiPart139.Name = "ToSave"
1567NewGuiPart139.Parent = NewGuiPart111
1568NewGuiPart139.BackgroundTransparency = 1
1569NewGuiPart139.Position = UDim2.new(0, 0, 0, 17)
1570NewGuiPart139.Size = UDim2.new(1, 0, 0, 20)
1571NewGuiPart139.Font = Enum.Font.SourceSans
1572NewGuiPart139.FontSize = Enum.FontSize.Size18
1573NewGuiPart139.Text = "To Save"
1574NewGuiPart139.TextColor3 = Color3.new(0, 0, 0)
1575
1576NewGuiPart140.Name = "CopyList"
1577NewGuiPart140.Parent = NewGuiPart111
1578NewGuiPart140.BackgroundColor3 = Color3.new(1, 1, 1)
1579NewGuiPart140.BackgroundTransparency = 0.80000001192093
1580NewGuiPart140.Position = UDim2.new(0, 0, 0, 37)
1581NewGuiPart140.Size = UDim2.new(1, 0, 0, 163)
1582
1583NewGuiPart141.Name = "Bottom"
1584NewGuiPart141.Parent = NewGuiPart111
1585NewGuiPart141.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
1586NewGuiPart141.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1587NewGuiPart141.Position = UDim2.new(0, 0, 1, -50)
1588NewGuiPart141.Size = UDim2.new(1, 0, 0, 50)
1589
1590NewGuiPart142.Parent = NewGuiPart141
1591NewGuiPart142.BackgroundTransparency = 1
1592NewGuiPart142.Position = UDim2.new(0, 4, 0, 0)
1593NewGuiPart142.Size = UDim2.new(1, -4, 1, 0)
1594NewGuiPart142.Font = Enum.Font.SourceSans
1595NewGuiPart142.FontSize = Enum.FontSize.Size14
1596NewGuiPart142.Text = "After the map saves, open a new place on studio, then right click Lighting and \"Insert from file...\", then select your file and run the unpacker script inside the folder."
1597NewGuiPart142.TextColor3 = Color3.new(0, 0, 0)
1598NewGuiPart142.TextWrapped = true
1599NewGuiPart142.TextXAlignment = Enum.TextXAlignment.Left
1600NewGuiPart142.TextYAlignment = Enum.TextYAlignment.Top
1601
1602NewGuiPart143.Name = "Save"
1603NewGuiPart143.Parent = NewGuiPart111
1604NewGuiPart143.BackgroundColor3 = Color3.new(0.941177, 0.941177, 0.941177)
1605NewGuiPart143.BackgroundTransparency = 0.80000001192093
1606NewGuiPart143.BorderColor3 = Color3.new(0, 0, 0)
1607NewGuiPart143.Position = UDim2.new(0, 0, 1, -80)
1608NewGuiPart143.Size = UDim2.new(1, 0, 0, 30)
1609NewGuiPart143.Font = Enum.Font.SourceSans
1610NewGuiPart143.FontSize = Enum.FontSize.Size18
1611NewGuiPart143.Text = "Save"
1612
1613NewGuiPart144.Name = "FileName"
1614NewGuiPart144.Parent = NewGuiPart111
1615NewGuiPart144.BackgroundColor3 = Color3.new(0.941177, 0.941177, 0.941177)
1616NewGuiPart144.BackgroundTransparency = 0.60000002384186
1617NewGuiPart144.Position = UDim2.new(0, 0, 1, -105)
1618NewGuiPart144.Size = UDim2.new(1, 0, 0, 25)
1619NewGuiPart144.Font = Enum.Font.SourceSans
1620NewGuiPart144.FontSize = Enum.FontSize.Size18
1621NewGuiPart144.Text = "PlaceName"
1622NewGuiPart144.TextXAlignment = Enum.TextXAlignment.Left
1623
1624NewGuiPart145.Name = "Entry"
1625NewGuiPart145.Parent = NewGuiPart111
1626NewGuiPart145.BackgroundColor3 = Color3.new(1, 1, 1)
1627NewGuiPart145.BackgroundTransparency = 1
1628NewGuiPart145.Size = UDim2.new(1, 0, 0, 22)
1629NewGuiPart145.Visible = false
1630
1631NewGuiPart146.Name = "Change"
1632NewGuiPart146.Parent = NewGuiPart145
1633NewGuiPart146.BackgroundColor3 = Color3.new(1, 1, 1)
1634NewGuiPart146.BackgroundTransparency = 0.60000002384186
1635NewGuiPart146.Position = UDim2.new(0, 10, 0, 1)
1636NewGuiPart146.Size = UDim2.new(0, 20, 0, 20)
1637NewGuiPart146.ZIndex = 2
1638NewGuiPart146.Font = Enum.Font.SourceSans
1639NewGuiPart146.FontSize = Enum.FontSize.Size18
1640NewGuiPart146.Text = ""
1641NewGuiPart146.TextColor3 = Color3.new(1, 1, 1)
1642
1643NewGuiPart147.Name = "enabled"
1644NewGuiPart147.Parent = NewGuiPart146
1645NewGuiPart147.BackgroundColor3 = Color3.new(0.380392, 0.380392, 0.380392)
1646NewGuiPart147.BackgroundTransparency = 0.40000000596046
1647NewGuiPart147.BorderSizePixel = 0
1648NewGuiPart147.Position = UDim2.new(0, 3, 0, 3)
1649NewGuiPart147.Size = UDim2.new(0, 14, 0, 14)
1650NewGuiPart147.Font = Enum.Font.SourceSans
1651NewGuiPart147.FontSize = Enum.FontSize.Size14
1652NewGuiPart147.Text = ""
1653
1654NewGuiPart148.Name = "Info"
1655NewGuiPart148.Parent = NewGuiPart145
1656NewGuiPart148.BackgroundTransparency = 1
1657NewGuiPart148.Position = UDim2.new(0, 40, 0, 0)
1658NewGuiPart148.Size = UDim2.new(1, -40, 0, 22)
1659NewGuiPart148.Font = Enum.Font.SourceSans
1660NewGuiPart148.FontSize = Enum.FontSize.Size18
1661NewGuiPart148.Text = "Workspace"
1662NewGuiPart148.TextColor3 = Color3.new(0, 0, 0)
1663NewGuiPart148.TextXAlignment = Enum.TextXAlignment.Left
1664
1665NewGuiPart149.Name = "RemoteDebugWindow"
1666NewGuiPart149.Parent = NewGuiPart1
1667NewGuiPart149.BackgroundColor3 = Color3.new(1, 1, 1)
1668NewGuiPart149.BackgroundTransparency = 0.10000000149012
1669NewGuiPart149.BorderColor3 = Color3.new(0.74902, 0.74902, 0.74902)
1670NewGuiPart149.Position = UDim2.new(1, 0, 0, 0)
1671NewGuiPart149.Size = UDim2.new(0, 300, 1, 0)
1672
1673NewGuiPart161.Name = "GetSetting"
1674NewGuiPart161.Parent = NewGuiPart149
1675NewGuiPart161.Archivable = true
1676
1677NewGuiPart150.Name = "Header"
1678NewGuiPart150.Parent = NewGuiPart149
1679NewGuiPart150.BackgroundColor3 = Color3.new(0.913726, 0.913726, 0.913726)
1680NewGuiPart150.BorderColor3 = Color3.new(0.584314, 0.584314, 0.584314)
1681NewGuiPart150.Size = UDim2.new(1, 0, 0, 17)
1682
1683NewGuiPart151.Parent = NewGuiPart150
1684NewGuiPart151.BackgroundTransparency = 1
1685NewGuiPart151.Position = UDim2.new(0, 4, 0, 0)
1686NewGuiPart151.Size = UDim2.new(1, -4, 1, 0)
1687NewGuiPart151.Font = Enum.Font.SourceSans
1688NewGuiPart151.FontSize = Enum.FontSize.Size14
1689NewGuiPart151.Text = "Remote Debugger"
1690NewGuiPart151.TextColor3 = Color3.new(0, 0, 0)
1691NewGuiPart151.TextXAlignment = Enum.TextXAlignment.Left
1692
1693NewGuiPart152.Name = "Desc"
1694NewGuiPart152.Parent = NewGuiPart149
1695NewGuiPart152.BackgroundColor3 = Color3.new(1, 1, 1)
1696NewGuiPart152.BackgroundTransparency = 1
1697NewGuiPart152.Position = UDim2.new(0, 0, 0, 20)
1698NewGuiPart152.Size = UDim2.new(1, 0, 0, 40)
1699NewGuiPart152.Font = Enum.Font.SourceSans
1700NewGuiPart152.FontSize = Enum.FontSize.Size32
1701NewGuiPart152.Text = "Have fun with remotes"
1702NewGuiPart152.TextWrapped = true
1703return NewGuiPart1
1704end
1705local D_E_X = CreateGui()
1706D_E_X.Parent = game.Players.LocalPlayer.PlayerGui
1707spawn(function()
1708 local Gui = D_E_X
1709
1710
1711local IntroFrame = Gui:WaitForChild("IntroFrame")
1712
1713local SideMenu = Gui:WaitForChild("SideMenu")
1714local OpenToggleButton = Gui:WaitForChild("Toggle")
1715local CloseToggleButton = SideMenu:WaitForChild("Toggle")
1716local OpenScriptEditorButton = SideMenu:WaitForChild("OpenScriptEditor")
1717
1718local ScriptEditor = Gui:WaitForChild("ScriptEditor")
1719
1720local SlideOut = SideMenu:WaitForChild("SlideOut")
1721local SlideFrame = SlideOut:WaitForChild("SlideFrame")
1722local Slant = SideMenu:WaitForChild("Slant")
1723
1724local ExplorerButton = SlideFrame:WaitForChild("Explorer")
1725local SettingsButton = SlideFrame:WaitForChild("Settings")
1726
1727local SelectionBox = Instance.new("SelectionBox")
1728SelectionBox.Parent = Gui
1729
1730local ExplorerPanel = Gui:WaitForChild("ExplorerPanel")
1731local PropertiesFrame = Gui:WaitForChild("PropertiesFrame")
1732local SaveMapWindow = Gui:WaitForChild("SaveMapWindow")
1733local RemoteDebugWindow = Gui:WaitForChild("RemoteDebugWindow")
1734
1735local SettingsPanel = Gui:WaitForChild("SettingsPanel")
1736local SettingsListener = SettingsPanel:WaitForChild("GetSetting")
1737local SettingTemplate = SettingsPanel:WaitForChild("SettingTemplate")
1738local SettingList = SettingsPanel:WaitForChild("SettingList")
1739
1740local SaveMapCopyList = SaveMapWindow:WaitForChild("CopyList")
1741local SaveMapSettingFrame = SaveMapWindow:WaitForChild("MapSettings")
1742local SaveMapName = SaveMapWindow:WaitForChild("FileName")
1743local SaveMapButton = SaveMapWindow:WaitForChild("Save")
1744local SaveMapCopyTemplate = SaveMapWindow:WaitForChild("Entry")
1745local SaveMapSettings = {
1746 CopyWhat = {
1747 Workspace = true,
1748 Lighting = true,
1749 ReplicatedStorage = true,
1750 ReplicatedFirst = true,
1751 StarterPack = true,
1752 StarterGui = true,
1753 StarterPlayer = true
1754 },
1755 SaveScripts = true,
1756 SaveTerrain = true,
1757 LightingProperties = true,
1758 CameraInstances = true
1759}
1760
1761local SelectionChanged = ExplorerPanel:WaitForChild("SelectionChanged")
1762local GetSelection = ExplorerPanel:WaitForChild("GetSelection")
1763local SetSelection = ExplorerPanel:WaitForChild("SetSelection")
1764
1765local Player = game:GetService("Players").LocalPlayer
1766local Mouse = Player:GetMouse()
1767
1768local CurrentWindow = "Nothing c:"
1769local Windows = {
1770 Explorer = {
1771 ExplorerPanel,
1772 PropertiesFrame
1773 },
1774 Settings = {SettingsPanel},
1775 SaveMap = {SaveMapWindow},
1776 Remotes = {RemoteDebugWindow}
1777}
1778
1779function switchWindows(wName,over)
1780 if CurrentWindow == wName and not over then return end
1781
1782 local count = 0
1783
1784 for i,v in pairs(Windows) do
1785 count = 0
1786 if i ~= wName then
1787 for _,c in pairs(v) do c:TweenPosition(UDim2.new(1, 30, count * 0.5, count * 36), "Out", "Quad", 0.5, true) count = count + 1 end
1788 end
1789 end
1790
1791 count = 0
1792
1793 if Windows[wName] then
1794 for _,c in pairs(Windows[wName]) do c:TweenPosition(UDim2.new(1, -300, count * 0.5, count * 36), "Out", "Quad", 0.5, true) count = count + 1 end
1795 end
1796
1797 if wName ~= "Nothing c:" then
1798 CurrentWindow = wName
1799 for i,v in pairs(SlideFrame:GetChildren()) do
1800 v.BackgroundTransparency = 1
1801 v.Icon.ImageColor3 = Color3.new(70/255, 70/255, 70/255)
1802 end
1803 if SlideFrame:FindFirstChild(wName) then
1804 SlideFrame[wName].BackgroundTransparency = 0.5
1805 SlideFrame[wName].Icon.ImageColor3 = Color3.new(0,0,0)
1806 end
1807 end
1808end
1809
1810function toggleDex(on)
1811 if on then
1812 SideMenu:TweenPosition(UDim2.new(1, -330, 0, 0), "Out", "Quad", 0.5, true)
1813 OpenToggleButton:TweenPosition(UDim2.new(1,0,0,0), "Out", "Quad", 0.5, true)
1814 switchWindows(CurrentWindow,true)
1815 else
1816 SideMenu:TweenPosition(UDim2.new(1, 0, 0, 0), "Out", "Quad", 0.5, true)
1817 OpenToggleButton:TweenPosition(UDim2.new(1,-30,0,0), "Out", "Quad", 0.5, true)
1818 switchWindows("Nothing c:")
1819 end
1820end
1821
1822local Settings = {
1823 ClickSelect = false,
1824 SelBox = false,
1825 ClearProps = false,
1826 SelectUngrouped = true,
1827 SaveInstanceScripts = true
1828}
1829
1830function ReturnSetting(set)
1831 if set == "ClearProps" then
1832 return Settings.ClearProps
1833 elseif set == "SelectUngrouped" then
1834 return Settings.SelectUngrouped
1835 end
1836end
1837
1838OpenToggleButton.MouseButton1Up:connect(function()
1839 toggleDex(true)
1840end)
1841
1842OpenScriptEditorButton.MouseButton1Up:connect(function()
1843 if OpenScriptEditorButton.Active then
1844 ScriptEditor.Visible = true
1845 end
1846end)
1847
1848CloseToggleButton.MouseButton1Up:connect(function()
1849 if CloseToggleButton.Active then
1850 toggleDex(false)
1851 end
1852end)
1853
1854for i,v in pairs(SlideFrame:GetChildren()) do
1855 v.MouseButton1Click:connect(function()
1856 switchWindows(v.Name)
1857 end)
1858
1859 v.MouseEnter:connect(function()v.BackgroundTransparency = 0.5 end)
1860 v.MouseLeave:connect(function()if CurrentWindow~=v.Name then v.BackgroundTransparency = 1 end end)
1861end
1862
1863
1864function createSetting(name,interName,defaultOn)
1865 local newSetting = SettingTemplate:Clone()
1866 newSetting.Position = UDim2.new(0,0,0,#SettingList:GetChildren() * 60)
1867 newSetting.SName.Text = name
1868
1869 local function toggle(on)
1870 if on then
1871 newSetting.Change.Bar:TweenPosition(UDim2.new(0,32,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1872 newSetting.Change.OnBar:TweenSize(UDim2.new(0,34,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1873 newSetting.Status.Text = "On"
1874 Settings[interName] = true
1875 else
1876 newSetting.Change.Bar:TweenPosition(UDim2.new(0,-2,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1877 newSetting.Change.OnBar:TweenSize(UDim2.new(0,0,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1878 newSetting.Status.Text = "Off"
1879 Settings[interName] = false
1880 end
1881 end
1882
1883 newSetting.Change.MouseButton1Click:connect(function()
1884 toggle(not Settings[interName])
1885 end)
1886
1887 newSetting.Visible = true
1888 newSetting.Parent = SettingList
1889
1890 if defaultOn then
1891 toggle(true)
1892 end
1893end
1894
1895createSetting("Click part to select","ClickSelect",false)
1896createSetting("Selection Box","SelBox",false)
1897createSetting("Clear property value on focus","ClearProps",false)
1898createSetting("Select ungrouped models","SelectUngrouped",true)
1899createSetting("SaveInstance decompiles scripts","SaveInstanceScripts",true)
1900
1901local function getSelection()
1902 local t = GetSelection:Invoke()
1903 if t and #t > 0 then
1904 return t[1]
1905 else
1906 return nil
1907 end
1908end
1909
1910Mouse.Button1Down:connect(function()
1911 if CurrentWindow == "Explorer" and Settings.ClickSelect then
1912 local target = Mouse.Target
1913 if target then
1914 SetSelection:Invoke({target})
1915 end
1916 end
1917end)
1918
1919SelectionChanged.Event:connect(function()
1920 if Settings.SelBox then
1921 local success,err = pcall(function()
1922 local selection = getSelection()
1923 SelectionBox.Adornee = selection
1924 end)
1925 if err then
1926 SelectionBox.Adornee = nil
1927 end
1928 end
1929end)
1930
1931SettingsListener.OnInvoke = ReturnSetting
1932
1933-- Map Copier
1934
1935function createMapSetting(obj,interName,defaultOn)
1936 local function toggle(on)
1937 if on then
1938 obj.Change.Bar:TweenPosition(UDim2.new(0,32,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1939 obj.Change.OnBar:TweenSize(UDim2.new(0,34,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1940 obj.Status.Text = "On"
1941 SaveMapSettings[interName] = true
1942 else
1943 obj.Change.Bar:TweenPosition(UDim2.new(0,-2,0,-2),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1944 obj.Change.OnBar:TweenSize(UDim2.new(0,0,0,15),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.25,true)
1945 obj.Status.Text = "Off"
1946 SaveMapSettings[interName] = false
1947 end
1948 end
1949
1950 obj.Change.MouseButton1Click:connect(function()
1951 toggle(not SaveMapSettings[interName])
1952 end)
1953
1954 obj.Visible = true
1955 obj.Parent = SaveMapSettingFrame
1956
1957 if defaultOn then
1958 toggle(true)
1959 end
1960end
1961
1962function createCopyWhatSetting(serv)
1963 if SaveMapSettings.CopyWhat[serv] then
1964 local newSetting = SaveMapCopyTemplate:Clone()
1965 newSetting.Position = UDim2.new(0,0,0,#SaveMapCopyList:GetChildren() * 22 + 5)
1966 newSetting.Info.Text = serv
1967
1968 local function toggle(on)
1969 if on then
1970 newSetting.Change.enabled.Visible = true
1971 SaveMapSettings.CopyWhat[serv] = true
1972 else
1973 newSetting.Change.enabled.Visible = false
1974 SaveMapSettings.CopyWhat[serv] = false
1975 end
1976 end
1977
1978 newSetting.Change.MouseButton1Click:connect(function()
1979 toggle(not SaveMapSettings.CopyWhat[serv])
1980 end)
1981
1982 newSetting.Visible = true
1983 newSetting.Parent = SaveMapCopyList
1984 end
1985end
1986
1987createMapSetting(SaveMapSettingFrame.Scripts,"SaveScripts",true)
1988createMapSetting(SaveMapSettingFrame.Terrain,"SaveTerrain",true)
1989createMapSetting(SaveMapSettingFrame.Lighting,"LightingProperties",true)
1990createMapSetting(SaveMapSettingFrame.CameraInstances,"CameraInstances",true)
1991
1992createCopyWhatSetting("Workspace")
1993createCopyWhatSetting("Lighting")
1994createCopyWhatSetting("ReplicatedStorage")
1995createCopyWhatSetting("ReplicatedFirst")
1996createCopyWhatSetting("StarterPack")
1997createCopyWhatSetting("StarterGui")
1998createCopyWhatSetting("StarterPlayer")
1999
2000SaveMapName.Text = tostring(game.PlaceId).."MapCopy"
2001
2002SaveMapButton.MouseButton1Click:connect(function()
2003 local copyWhat = {}
2004
2005 local copyGroup = Instance.new("Model",game.ReplicatedStorage)
2006
2007 local copyScripts = SaveMapSettings.SaveScripts
2008
2009 local copyTerrain = SaveMapSettings.SaveTerrain
2010
2011 local lightingProperties = SaveMapSettings.LightingProperties
2012
2013 local cameraInstances = SaveMapSettings.CameraInstances
2014
2015 -----------------------------------------------------------------------------------
2016
2017 for i,v in pairs(SaveMapSettings.CopyWhat) do
2018 if v then
2019 table.insert(copyWhat,i)
2020 end
2021 end
2022
2023 local consoleFunc = printconsole or writeconsole
2024
2025 if consoleFunc then
2026 consoleFunc("Raspberry Pi's place copier loaded.")
2027 consoleFunc("Copying map of game "..tostring(game.PlaceId)..".")
2028 end
2029
2030 function archivable(root)
2031 for i,v in pairs(root:GetChildren()) do
2032 if not game.Players:GetPlayerFromCharacter(v) then
2033 v.Archivable = true
2034 archivable(v)
2035 end
2036 end
2037 end
2038
2039 function decompileS(root)
2040 for i,v in pairs(root:GetChildren()) do
2041 pcall(function()
2042 if v:IsA("LocalScript") then
2043 local isDisabled = v.Disabled
2044 v.Disabled = true
2045 v.Source = decompile(v)
2046 v.Disabled = isDisabled
2047
2048 if v.Source == "" then
2049 if consoleFunc then consoleFunc("LocalScript "..v.Name.." had a problem decompiling.") end
2050 else
2051 if consoleFunc then consoleFunc("LocalScript "..v.Name.." decompiled.") end
2052 end
2053 elseif v:IsA("ModuleScript") then
2054 v.Source = decompile(v)
2055
2056 if v.Source == "" then
2057 if consoleFunc then consoleFunc("ModuleScript "..v.Name.." had a problem decompiling.") end
2058 else
2059 if consoleFunc then consoleFunc("ModuleScript "..v.Name.." decompiled.") end
2060 end
2061 end
2062 end)
2063 decompileS(v)
2064 end
2065 end
2066
2067 for i,v in pairs(copyWhat) do archivable(game[v]) end
2068
2069 for j,obj in pairs(copyWhat) do
2070 if obj ~= "StarterPlayer" then
2071 local newFolder = Instance.new("Folder",copyGroup)
2072 newFolder.Name = obj
2073 for i,v in pairs(game[obj]:GetChildren()) do
2074 if v ~= copyGroup then
2075 pcall(function()
2076 v:Clone().Parent = newFolder
2077 end)
2078 end
2079 end
2080 else
2081 local newFolder = Instance.new("Model",copyGroup)
2082 newFolder.Name = "StarterPlayer"
2083 for i,v in pairs(game[obj]:GetChildren()) do
2084 local newObj = Instance.new("Folder",newFolder)
2085 newObj.Name = v.Name
2086 for _,c in pairs(v:GetChildren()) do
2087 if c.Name ~= "ControlScript" and c.Name ~= "CameraScript" then
2088 c:Clone().Parent = newObj
2089 end
2090 end
2091 end
2092 end
2093 end
2094
2095 if workspace.CurrentCamera and cameraInstances then
2096 local cameraFolder = Instance.new("Model",copyGroup)
2097 cameraFolder.Name = "CameraItems"
2098 for i,v in pairs(workspace.CurrentCamera:GetChildren()) do v:Clone().Parent = cameraFolder end
2099 end
2100
2101 if copyTerrain then
2102 local myTerrain = workspace.Terrain:CopyRegion(workspace.Terrain.MaxExtents)
2103 myTerrain.Parent = copyGroup
2104 end
2105
2106 function saveProp(obj,prop,par)
2107 local myProp = obj[prop]
2108 if type(myProp) == "boolean" then
2109 local newProp = Instance.new("BoolValue",par)
2110 newProp.Name = prop
2111 newProp.Value = myProp
2112 elseif type(myProp) == "number" then
2113 local newProp = Instance.new("IntValue",par)
2114 newProp.Name = prop
2115 newProp.Value = myProp
2116 elseif type(myProp) == "string" then
2117 local newProp = Instance.new("StringValue",par)
2118 newProp.Name = prop
2119 newProp.Value = myProp
2120 elseif type(myProp) == "userdata" then -- Assume Color3
2121 pcall(function()
2122 local newProp = Instance.new("Color3Value",par)
2123 newProp.Name = prop
2124 newProp.Value = myProp
2125 end)
2126 end
2127 end
2128
2129 if lightingProperties then
2130 local lightingProps = Instance.new("Model",copyGroup)
2131 lightingProps.Name = "LightingProperties"
2132
2133 saveProp(game.Lighting,"Ambient",lightingProps)
2134 saveProp(game.Lighting,"Brightness",lightingProps)
2135 saveProp(game.Lighting,"ColorShift_Bottom",lightingProps)
2136 saveProp(game.Lighting,"ColorShift_Top",lightingProps)
2137 saveProp(game.Lighting,"GlobalShadows",lightingProps)
2138 saveProp(game.Lighting,"OutdoorAmbient",lightingProps)
2139 saveProp(game.Lighting,"Outlines",lightingProps)
2140 saveProp(game.Lighting,"GeographicLatitude",lightingProps)
2141 saveProp(game.Lighting,"TimeOfDay",lightingProps)
2142 saveProp(game.Lighting,"FogColor",lightingProps)
2143 saveProp(game.Lighting,"FogEnd",lightingProps)
2144 saveProp(game.Lighting,"FogStart",lightingProps)
2145 end
2146
2147 if decompile and copyScripts then
2148 decompileS(copyGroup)
2149 end
2150
2151 if SaveInstance then
2152 SaveInstance(copyGroup,SaveMapName.Text..".rbxm")
2153 elseif saveinstance then
2154 saveinstance(getelysianpath()..SaveMapName.Text..".rbxm",copyGroup)
2155 end
2156 --print("Saved!")
2157 if consoleFunc then
2158 consoleFunc("The map has been copied.")
2159 end
2160 SaveMapButton.Text = "The map has been saved"
2161 wait(5)
2162 SaveMapButton.Text = "Save"
2163end)
2164
2165-- End Copier
2166
2167wait()
2168
2169IntroFrame:TweenPosition(UDim2.new(1,-300,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
2170
2171switchWindows("Explorer")
2172
2173wait(1)
2174
2175SideMenu.Visible = true
2176
2177for i = 0,1,0.1 do
2178 IntroFrame.BackgroundTransparency = i
2179 IntroFrame.Main.BackgroundTransparency = i
2180 IntroFrame.Slant.ImageTransparency = i
2181 IntroFrame.Title.TextTransparency = i
2182 IntroFrame.Version.TextTransparency = i
2183 IntroFrame.Creator.TextTransparency = i
2184 wait()
2185end
2186
2187IntroFrame.Visible = false
2188
2189SlideFrame:TweenPosition(UDim2.new(0,0,0,0),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
2190OpenScriptEditorButton:TweenPosition(UDim2.new(0,0,0,180),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
2191CloseToggleButton:TweenPosition(UDim2.new(0,0,0,210),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
2192Slant:TweenPosition(UDim2.new(0,0,0,240),Enum.EasingDirection.Out,Enum.EasingStyle.Quart,0.5,true)
2193
2194wait(0.5)
2195
2196for i = 1,0,-0.1 do
2197 OpenScriptEditorButton.Icon.ImageTransparency = i
2198 CloseToggleButton.TextTransparency = i
2199 wait()
2200end
2201
2202CloseToggleButton.Active = true
2203CloseToggleButton.AutoButtonColor = true
2204
2205OpenScriptEditorButton.Active = true
2206OpenScriptEditorButton.AutoButtonColor = true
2207end)
2208spawn(function()
2209 -- initial states
2210local Option = {
2211 -- can modify object parents in the hierarchy
2212 Modifiable = false;
2213 -- can select objects
2214 Selectable = true;
2215}
2216
2217-- MERELY
2218
2219Option.Modifiable = true
2220
2221-- END MERELY
2222
2223-- general size of GUI objects, in pixels
2224local GUI_SIZE = 16
2225-- padding between items within each entry
2226local ENTRY_PADDING = 1
2227-- padding between each entry
2228local ENTRY_MARGIN = 1
2229
2230local Input = game:GetService("UserInputService")
2231local HoldingCtrl = false
2232local HoldingShift = false
2233
2234--[[
2235
2236# Explorer Panel
2237
2238A GUI panel that displays the game hierarchy.
2239
2240
2241## Selection Bindables
2242
2243- `Function GetSelection ( )`
2244
2245 Returns an array of objects representing the objects currently
2246 selected in the panel.
2247
2248- `Function SetSelection ( Objects selection )`
2249
2250 Sets the objects that are selected in the panel. `selection` is an array
2251 of objects.
2252
2253- `Event SelectionChanged ( )`
2254
2255 Fired after the selection changes.
2256
2257
2258## Option Bindables
2259
2260- `Function GetOption ( string optionName )`
2261
2262 If `optionName` is given, returns the value of that option. Otherwise,
2263 returns a table of options and their current values.
2264
2265- `Function SetOption ( string optionName, bool value )`
2266
2267 Sets `optionName` to `value`.
2268
2269 Options:
2270
2271 - Modifiable
2272
2273 Whether objects can be modified by the panel.
2274
2275 Note that modifying objects depends on being able to select them. If
2276 Selectable is false, then Actions will not be available. Reparenting
2277 is still possible, but only for the dragged object.
2278
2279 - Selectable
2280
2281 Whether objects can be selected.
2282
2283 If Modifiable is false, then left-clicking will perform a drag
2284 selection.
2285
2286## Updates
2287
2288- 2013-09-18
2289 - Fixed explorer icons to match studio explorer.
2290
2291- 2013-09-14
2292 - Added GetOption and SetOption bindables.
2293 - Option: Modifiable; sets whether objects can be modified by the panel.
2294 - Option: Selectable; sets whether objects can be selected.
2295 - Slight modification to left-click selection behavior.
2296 - Improved layout and scaling.
2297
2298- 2013-09-13
2299 - Added drag to reparent objects.
2300 - Left-click to select/deselect object.
2301 - Left-click and drag unselected object to reparent single object.
2302 - Left-click and drag selected object to move reparent entire selection.
2303 - Right-click while dragging to cancel.
2304
2305- 2013-09-11
2306 - Added explorer panel header with actions.
2307 - Added Cut action.
2308 - Added Copy action.
2309 - Added Paste action.
2310 - Added Delete action.
2311 - Added drag selection.
2312 - Left-click: Add to selection on drag.
2313 - Right-click: Add to or remove from selection on drag.
2314 - Ensured SelectionChanged fires only when the selection actually changes.
2315 - Added documentation and change log.
2316 - Fixed thread issue.
2317
2318- 2013-09-09
2319 - Added basic multi-selection.
2320 - Left-click to set selection.
2321 - Right-click to add to or remove from selection.
2322 - Removed "Selection" ObjectValue.
2323 - Added GetSelection BindableFunction.
2324 - Added SetSelection BindableFunction.
2325 - Added SelectionChanged BindableEvent.
2326 - Changed font to SourceSans.
2327
2328- 2013-08-31
2329 - Improved GUI sizing based off of `GUI_SIZE` constant.
2330 - Automatic font size detection.
2331
2332- 2013-08-27
2333 - Initial explorer panel.
2334
2335
2336## Todo
2337
2338- Sorting
2339 - by ExplorerOrder
2340 - by children
2341 - by name
2342- Drag objects to reparent
2343
2344]]
2345
2346local ENTRY_SIZE = GUI_SIZE + ENTRY_PADDING*2
2347local ENTRY_BOUND = ENTRY_SIZE + ENTRY_MARGIN
2348local HEADER_SIZE = ENTRY_SIZE*2
2349
2350local FONT = 'SourceSans'
2351local FONT_SIZE do
2352 local size = {8,9,10,11,12,14,18,24,36,48}
2353 local s
2354 local n = math.huge
2355 for i = 1,#size do
2356 if size[i] <= GUI_SIZE then
2357 FONT_SIZE = i - 1
2358 end
2359 end
2360end
2361
2362local GuiColor = {
2363 Background = Color3.new(233/255, 233/255, 233/255);
2364 Border = Color3.new(149/255, 149/255, 149/255);
2365 Selected = Color3.new( 96/255, 140/255, 211/255);
2366 BorderSelected = Color3.new( 86/255, 125/255, 188/255);
2367 Text = Color3.new( 0/255, 0/255, 0/255);
2368 TextDisabled = Color3.new(128/255, 128/255, 128/255);
2369 TextSelected = Color3.new(255/255, 255/255, 255/255);
2370 Button = Color3.new(221/255, 221/255, 221/255);
2371 ButtonBorder = Color3.new(149/255, 149/255, 149/255);
2372 ButtonSelected = Color3.new(255/255, 0/255, 0/255);
2373 Field = Color3.new(255/255, 255/255, 255/255);
2374 FieldBorder = Color3.new(191/255, 191/255, 191/255);
2375 TitleBackground = Color3.new(178/255, 178/255, 178/255);
2376}
2377
2378----------------------------------------------------------------
2379----------------------------------------------------------------
2380----------------------------------------------------------------
2381----------------------------------------------------------------
2382---- Icon map constants
2383
2384local MAP_ID = 483448923
2385
2386-- Indices based on implementation of Icon function.
2387local ACTION_CUT = 160
2388local ACTION_COPY = 161
2389local ACTION_PASTE = 162
2390local ACTION_DELETE = 163
2391local ACTION_SORT = 164
2392local ACTION_CUT_OVER = 174
2393local ACTION_COPY_OVER = 175
2394local ACTION_PASTE_OVER = 176
2395local ACTION_DELETE_OVER = 177
2396local ACTION_SORT_OVER = 178
2397local ACTION_EDITQUICKACCESS = 190
2398local ACTION_FREEZE = 188
2399local ACTION_STARRED = 189
2400local ACTION_ADDSTAR = 184
2401local ACTION_ADDSTAR_OVER = 187
2402
2403local NODE_COLLAPSED = 165
2404local NODE_EXPANDED = 166
2405local NODE_COLLAPSED_OVER = 179
2406local NODE_EXPANDED_OVER = 180
2407
2408local ExplorerIndex = {
2409 ["Accessory"] = 32;
2410 ["Accoutrement"] = 32;
2411 ["AdService"] = 73;
2412 ["Animation"] = 60;
2413 ["AnimationController"] = 60;
2414 ["AnimationTrack"] = 60;
2415 ["Animator"] = 60;
2416 ["ArcHandles"] = 56;
2417 ["AssetService"] = 72;
2418 ["Attachment"] = 34;
2419 ["Backpack"] = 20;
2420 ["BadgeService"] = 75;
2421 ["BallSocketConstraint"] = 89;
2422 ["BillboardGui"] = 64;
2423 ["BinaryStringValue"] = 4;
2424 ["BindableEvent"] = 67;
2425 ["BindableFunction"] = 66;
2426 ["BlockMesh"] = 8;
2427 ["BloomEffect"] = 90;
2428 ["BlurEffect"] = 90;
2429 ["BodyAngularVelocity"] = 14;
2430 ["BodyForce"] = 14;
2431 ["BodyGyro"] = 14;
2432 ["BodyPosition"] = 14;
2433 ["BodyThrust"] = 14;
2434 ["BodyVelocity"] = 14;
2435 ["BoolValue"] = 4;
2436 ["BoxHandleAdornment"] = 54;
2437 ["BrickColorValue"] = 4;
2438 ["Camera"] = 5;
2439 ["CFrameValue"] = 4;
2440 ["CharacterMesh"] = 60;
2441 ["Chat"] = 33;
2442 ["ClickDetector"] = 41;
2443 ["CollectionService"] = 30;
2444 ["Color3Value"] = 4;
2445 ["ColorCorrectionEffect"] = 90;
2446 ["ConeHandleAdornment"] = 54;
2447 ["Configuration"] = 58;
2448 ["ContentProvider"] = 72;
2449 ["ContextActionService"] = 41;
2450 ["CoreGui"] = 46;
2451 ["CoreScript"] = 18;
2452 ["CornerWedgePart"] = 1;
2453 ["CustomEvent"] = 4;
2454 ["CustomEventReceiver"] = 4;
2455 ["CylinderHandleAdornment"] = 54;
2456 ["CylinderMesh"] = 8;
2457 ["CylindricalConstraint"] = 89;
2458 ["Debris"] = 30;
2459 ["Decal"] = 7;
2460 ["Dialog"] = 62;
2461 ["DialogChoice"] = 63;
2462 ["DoubleConstrainedValue"] = 4;
2463 ["Explosion"] = 36;
2464 ["FileMesh"] = 8;
2465 ["Fire"] = 61;
2466 ["Flag"] = 38;
2467 ["FlagStand"] = 39;
2468 ["FloorWire"] = 4;
2469 ["Folder"] = 70;
2470 ["ForceField"] = 37;
2471 ["Frame"] = 48;
2472 ["GamePassService"] = 19;
2473 ["Glue"] = 34;
2474 ["GuiButton"] = 52;
2475 ["GuiMain"] = 47;
2476 ["GuiService"] = 47;
2477 ["Handles"] = 53;
2478 ["HapticService"] = 84;
2479 ["Hat"] = 45;
2480 ["HingeConstraint"] = 89;
2481 ["Hint"] = 33;
2482 ["HopperBin"] = 22;
2483 ["HttpService"] = 76;
2484 ["Humanoid"] = 9;
2485 ["ImageButton"] = 52;
2486 ["ImageLabel"] = 49;
2487 ["InsertService"] = 72;
2488 ["IntConstrainedValue"] = 4;
2489 ["IntValue"] = 4;
2490 ["JointInstance"] = 34;
2491 ["JointsService"] = 34;
2492 ["Keyframe"] = 60;
2493 ["KeyframeSequence"] = 60;
2494 ["KeyframeSequenceProvider"] = 60;
2495 ["Lighting"] = 13;
2496 ["LineHandleAdornment"] = 54;
2497 ["LocalScript"] = 18;
2498 ["LogService"] = 87;
2499 ["MarketplaceService"] = 46;
2500 ["Message"] = 33;
2501 ["Model"] = 2;
2502 ["ModuleScript"] = 71;
2503 ["Motor"] = 34;
2504 ["Motor6D"] = 34;
2505 ["MoveToConstraint"] = 89;
2506 ["NegateOperation"] = 78;
2507 ["NetworkClient"] = 16;
2508 ["NetworkReplicator"] = 29;
2509 ["NetworkServer"] = 15;
2510 ["NumberValue"] = 4;
2511 ["ObjectValue"] = 4;
2512 ["Pants"] = 44;
2513 ["ParallelRampPart"] = 1;
2514 ["Part"] = 1;
2515 ["ParticleEmitter"] = 69;
2516 ["PartPairLasso"] = 57;
2517 ["PathfindingService"] = 37;
2518 ["Platform"] = 35;
2519 ["Player"] = 12;
2520 ["PlayerGui"] = 46;
2521 ["Players"] = 21;
2522 ["PlayerScripts"] = 82;
2523 ["PointLight"] = 13;
2524 ["PointsService"] = 83;
2525 ["Pose"] = 60;
2526 ["PrismaticConstraint"] = 89;
2527 ["PrismPart"] = 1;
2528 ["PyramidPart"] = 1;
2529 ["RayValue"] = 4;
2530 ["ReflectionMetadata"] = 86;
2531 ["ReflectionMetadataCallbacks"] = 86;
2532 ["ReflectionMetadataClass"] = 86;
2533 ["ReflectionMetadataClasses"] = 86;
2534 ["ReflectionMetadataEnum"] = 86;
2535 ["ReflectionMetadataEnumItem"] = 86;
2536 ["ReflectionMetadataEnums"] = 86;
2537 ["ReflectionMetadataEvents"] = 86;
2538 ["ReflectionMetadataFunctions"] = 86;
2539 ["ReflectionMetadataMember"] = 86;
2540 ["ReflectionMetadataProperties"] = 86;
2541 ["ReflectionMetadataYieldFunctions"] = 86;
2542 ["RemoteEvent"] = 80;
2543 ["RemoteFunction"] = 79;
2544 ["ReplicatedFirst"] = 72;
2545 ["ReplicatedStorage"] = 72;
2546 ["RightAngleRampPart"] = 1;
2547 ["RocketPropulsion"] = 14;
2548 ["RodConstraint"] = 89;
2549 ["RopeConstraint"] = 89;
2550 ["Rotate"] = 34;
2551 ["RotateP"] = 34;
2552 ["RotateV"] = 34;
2553 ["RunService"] = 66;
2554 ["ScreenGui"] = 47;
2555 ["Script"] = 6;
2556 ["ScrollingFrame"] = 48;
2557 ["Seat"] = 35;
2558 ["Selection"] = 55;
2559 ["SelectionBox"] = 54;
2560 ["SelectionPartLasso"] = 57;
2561 ["SelectionPointLasso"] = 57;
2562 ["SelectionSphere"] = 54;
2563 ["ServerScriptService"] = 0;
2564 ["ServerStorage"] = 74;
2565 ["Shirt"] = 43;
2566 ["ShirtGraphic"] = 40;
2567 ["SkateboardPlatform"] = 35;
2568 ["Sky"] = 28;
2569 ["SlidingBallConstraint"] = 89;
2570 ["Smoke"] = 59;
2571 ["Snap"] = 34;
2572 ["Sound"] = 11;
2573 ["SoundService"] = 31;
2574 ["Sparkles"] = 42;
2575 ["SpawnLocation"] = 25;
2576 ["SpecialMesh"] = 8;
2577 ["SphereHandleAdornment"] = 54;
2578 ["SpotLight"] = 13;
2579 ["SpringConstraint"] = 89;
2580 ["StarterCharacterScripts"] = 82;
2581 ["StarterGear"] = 20;
2582 ["StarterGui"] = 46;
2583 ["StarterPack"] = 20;
2584 ["StarterPlayer"] = 88;
2585 ["StarterPlayerScripts"] = 82;
2586 ["Status"] = 2;
2587 ["StringValue"] = 4;
2588 ["SunRaysEffect"] = 90;
2589 ["SurfaceGui"] = 64;
2590 ["SurfaceLight"] = 13;
2591 ["SurfaceSelection"] = 55;
2592 ["Team"] = 24;
2593 ["Teams"] = 23;
2594 ["TeleportService"] = 81;
2595 ["Terrain"] = 65;
2596 ["TerrainRegion"] = 65;
2597 ["TestService"] = 68;
2598 ["TextBox"] = 51;
2599 ["TextButton"] = 51;
2600 ["TextLabel"] = 50;
2601 ["Texture"] = 10;
2602 ["TextureTrail"] = 4;
2603 ["Tool"] = 17;
2604 ["TouchTransmitter"] = 37;
2605 ["TrussPart"] = 1;
2606 ["UnionOperation"] = 77;
2607 ["UserInputService"] = 84;
2608 ["Vector3Value"] = 4;
2609 ["VehicleSeat"] = 35;
2610 ["VelocityMotor"] = 34;
2611 ["WedgePart"] = 1;
2612 ["Weld"] = 34;
2613 ["Workspace"] = 19;
2614}
2615
2616----------------------------------------------------------------
2617----------------------------------------------------------------
2618----------------------------------------------------------------
2619----------------------------------------------------------------
2620----------------------------------------------------------------
2621
2622function Create(ty,data)
2623 local obj
2624 if type(ty) == 'string' then
2625 obj = Instance.new(ty)
2626 else
2627 obj = ty
2628 end
2629 for k, v in pairs(data) do
2630 if type(k) == 'number' then
2631 v.Parent = obj
2632 else
2633 obj[k] = v
2634 end
2635 end
2636 return obj
2637end
2638
2639local barActive = false
2640local activeOptions = {}
2641
2642function createDDown(dBut, callback,...)
2643 if barActive then
2644 for i,v in pairs(activeOptions) do
2645 v:Destroy()
2646 end
2647 activeOptions = {}
2648 barActive = false
2649 return
2650 else
2651 barActive = true
2652 end
2653 local slots = {...}
2654 local base = dBut
2655 for i,v in pairs(slots) do
2656 local newOption = base:Clone()
2657 newOption.ZIndex = 5
2658 newOption.Name = "Option "..tostring(i)
2659 newOption.Parent = base.Parent.Parent.Parent
2660 newOption.BackgroundTransparency = 0
2661 newOption.ZIndex = 2
2662 table.insert(activeOptions,newOption)
2663 newOption.Position = UDim2.new(-0.4, dBut.Position.X.Offset, dBut.Position.Y.Scale, dBut.Position.Y.Offset + (#activeOptions * dBut.Size.Y.Offset))
2664 newOption.Text = slots[i]
2665 newOption.MouseButton1Down:connect(function()
2666 dBut.Text = slots[i]
2667 callback(slots[i])
2668 for i,v in pairs(activeOptions) do
2669 v:Destroy()
2670 end
2671 activeOptions = {}
2672 barActive = false
2673 end)
2674 end
2675end
2676
2677-- Connects a function to an event such that it fires asynchronously
2678function Connect(event,func)
2679 return event:connect(function(...)
2680 local a = {...}
2681 spawn(function() func(unpack(a)) end)
2682 end)
2683end
2684
2685-- returns the ascendant ScreenGui of an object
2686function GetScreen(screen)
2687 if screen == nil then return nil end
2688 while not screen:IsA("ScreenGui") do
2689 screen = screen.Parent
2690 if screen == nil then return nil end
2691 end
2692 return screen
2693end
2694
2695do
2696 local ZIndexLock = {}
2697 -- Sets the ZIndex of an object and its descendants. Objects are locked so
2698 -- that SetZIndexOnChanged doesn't spawn multiple threads that set the
2699 -- ZIndex of the same object.
2700 function SetZIndex(object,z)
2701 if not ZIndexLock[object] then
2702 ZIndexLock[object] = true
2703 if object:IsA'GuiObject' then
2704 object.ZIndex = z
2705 end
2706 local children = object:GetChildren()
2707 for i = 1,#children do
2708 SetZIndex(children[i],z)
2709 end
2710 ZIndexLock[object] = nil
2711 end
2712 end
2713
2714 function SetZIndexOnChanged(object)
2715 return object.Changed:connect(function(p)
2716 if p == "ZIndex" then
2717 SetZIndex(object,object.ZIndex)
2718 end
2719 end)
2720 end
2721end
2722
2723---- IconMap ----
2724-- Image size: 256px x 256px
2725-- Icon size: 16px x 16px
2726-- Padding between each icon: 2px
2727-- Padding around image edge: 1px
2728-- Total icons: 14 x 14 (196)
2729local Icon do
2730 local iconMap = 'http://www.roblox.com/asset/?id=' .. MAP_ID
2731 game:GetService('ContentProvider'):Preload(iconMap)
2732 local iconDehash do
2733 -- 14 x 14, 0-based input, 0-based output
2734 local f=math.floor
2735 function iconDehash(h)
2736 return f(h/14%14),f(h%14)
2737 end
2738 end
2739
2740 function Icon(IconFrame,index)
2741 local row,col = iconDehash(index)
2742 local mapSize = Vector2.new(256,256)
2743 local pad,border = 2,1
2744 local iconSize = 16
2745
2746 local class = 'Frame'
2747 if type(IconFrame) == 'string' then
2748 class = IconFrame
2749 IconFrame = nil
2750 end
2751
2752 if not IconFrame then
2753 IconFrame = Create(class,{
2754 Name = "Icon";
2755 BackgroundTransparency = 1;
2756 ClipsDescendants = true;
2757 Create('ImageLabel',{
2758 Name = "IconMap";
2759 Active = false;
2760 BackgroundTransparency = 1;
2761 Image = iconMap;
2762 Size = UDim2.new(mapSize.x/iconSize,0,mapSize.y/iconSize,0);
2763 });
2764 })
2765 end
2766
2767 IconFrame.IconMap.Position = UDim2.new(-col - (pad*(col+1) + border)/iconSize,0,-row - (pad*(row+1) + border)/iconSize,0)
2768 return IconFrame
2769 end
2770end
2771
2772----------------------------------------------------------------
2773----------------------------------------------------------------
2774----------------------------------------------------------------
2775----------------------------------------------------------------
2776---- ScrollBar
2777do
2778 -- AutoButtonColor doesn't always reset properly
2779 local function ResetButtonColor(button)
2780 local active = button.Active
2781 button.Active = not active
2782 button.Active = active
2783 end
2784
2785 local function ArrowGraphic(size,dir,scaled,template)
2786 local Frame = Create('Frame',{
2787 Name = "Arrow Graphic";
2788 BorderSizePixel = 0;
2789 Size = UDim2.new(0,size,0,size);
2790 Transparency = 1;
2791 })
2792 if not template then
2793 template = Instance.new("Frame")
2794 template.BorderSizePixel = 0
2795 end
2796
2797 local transform
2798 if dir == nil or dir == 'Up' then
2799 function transform(p,s) return p,s end
2800 elseif dir == 'Down' then
2801 function transform(p,s) return UDim2.new(0,p.X.Offset,0,size-p.Y.Offset-1),s end
2802 elseif dir == 'Left' then
2803 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
2804 elseif dir == 'Right' then
2805 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
2806 end
2807
2808 local scale
2809 if scaled then
2810 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
2811 else
2812 function scale(p,s) return p,s end
2813 end
2814
2815 local o = math.floor(size/4)
2816 if size%2 == 0 then
2817 local n = size/2-1
2818 for i = 0,n do
2819 local t = template:Clone()
2820 local p,s = scale(transform(
2821 UDim2.new(0,n-i,0,o+i),
2822 UDim2.new(0,(i+1)*2,0,1)
2823 ))
2824 t.Position = p
2825 t.Size = s
2826 t.Parent = Frame
2827 end
2828 else
2829 local n = (size-1)/2
2830 for i = 0,n do
2831 local t = template:Clone()
2832 local p,s = scale(transform(
2833 UDim2.new(0,n-i,0,o+i),
2834 UDim2.new(0,i*2+1,0,1)
2835 ))
2836 t.Position = p
2837 t.Size = s
2838 t.Parent = Frame
2839 end
2840 end
2841 if size%4 > 1 then
2842 local t = template:Clone()
2843 local p,s = scale(transform(
2844 UDim2.new(0,0,0,size-o-1),
2845 UDim2.new(0,size,0,1)
2846 ))
2847 t.Position = p
2848 t.Size = s
2849 t.Parent = Frame
2850 end
2851 return Frame
2852 end
2853
2854
2855 local function GripGraphic(size,dir,spacing,scaled,template)
2856 local Frame = Create('Frame',{
2857 Name = "Grip Graphic";
2858 BorderSizePixel = 0;
2859 Size = UDim2.new(0,size.x,0,size.y);
2860 Transparency = 1;
2861 })
2862 if not template then
2863 template = Instance.new("Frame")
2864 template.BorderSizePixel = 0
2865 end
2866
2867 spacing = spacing or 2
2868
2869 local scale
2870 if scaled then
2871 function scale(p) return UDim2.new(p.X.Offset/size.x,0,p.Y.Offset/size.y,0) end
2872 else
2873 function scale(p) return p end
2874 end
2875
2876 if dir == 'Vertical' then
2877 for i=0,size.x-1,spacing do
2878 local t = template:Clone()
2879 t.Size = scale(UDim2.new(0,1,0,size.y))
2880 t.Position = scale(UDim2.new(0,i,0,0))
2881 t.Parent = Frame
2882 end
2883 elseif dir == nil or dir == 'Horizontal' then
2884 for i=0,size.y-1,spacing do
2885 local t = template:Clone()
2886 t.Size = scale(UDim2.new(0,size.x,0,1))
2887 t.Position = scale(UDim2.new(0,0,0,i))
2888 t.Parent = Frame
2889 end
2890 end
2891
2892 return Frame
2893 end
2894
2895 local mt = {
2896 __index = {
2897 GetScrollPercent = function(self)
2898 return self.ScrollIndex/(self.TotalSpace-self.VisibleSpace)
2899 end;
2900 CanScrollDown = function(self)
2901 return self.ScrollIndex + self.VisibleSpace < self.TotalSpace
2902 end;
2903 CanScrollUp = function(self)
2904 return self.ScrollIndex > 0
2905 end;
2906 ScrollDown = function(self)
2907 self.ScrollIndex = self.ScrollIndex + self.PageIncrement
2908 self:Update()
2909 end;
2910 ScrollUp = function(self)
2911 self.ScrollIndex = self.ScrollIndex - self.PageIncrement
2912 self:Update()
2913 end;
2914 ScrollTo = function(self,index)
2915 self.ScrollIndex = index
2916 self:Update()
2917 end;
2918 SetScrollPercent = function(self,percent)
2919 self.ScrollIndex = math.floor((self.TotalSpace - self.VisibleSpace)*percent + 0.5)
2920 self:Update()
2921 end;
2922 };
2923 }
2924 mt.__index.CanScrollRight = mt.__index.CanScrollDown
2925 mt.__index.CanScrollLeft = mt.__index.CanScrollUp
2926 mt.__index.ScrollLeft = mt.__index.ScrollUp
2927 mt.__index.ScrollRight = mt.__index.ScrollDown
2928
2929 function ScrollBar(horizontal)
2930 -- create row scroll bar
2931 local ScrollFrame = Create('Frame',{
2932 Name = "ScrollFrame";
2933 Position = horizontal and UDim2.new(0,0,1,-GUI_SIZE) or UDim2.new(1,-GUI_SIZE,0,0);
2934 Size = horizontal and UDim2.new(1,0,0,GUI_SIZE) or UDim2.new(0,GUI_SIZE,1,0);
2935 BackgroundTransparency = 1;
2936 Create('ImageButton',{
2937 Name = "ScrollDown";
2938 Position = horizontal and UDim2.new(1,-GUI_SIZE,0,0) or UDim2.new(0,0,1,-GUI_SIZE);
2939 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
2940 BackgroundColor3 = GuiColor.Button;
2941 BorderColor3 = GuiColor.Border;
2942 --BorderSizePixel = 0;
2943 });
2944 Create('ImageButton',{
2945 Name = "ScrollUp";
2946 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
2947 BackgroundColor3 = GuiColor.Button;
2948 BorderColor3 = GuiColor.Border;
2949 --BorderSizePixel = 0;
2950 });
2951 Create('ImageButton',{
2952 Name = "ScrollBar";
2953 Size = horizontal and UDim2.new(1,-GUI_SIZE*2,1,0) or UDim2.new(1,0,1,-GUI_SIZE*2);
2954 Position = horizontal and UDim2.new(0,GUI_SIZE,0,0) or UDim2.new(0,0,0,GUI_SIZE);
2955 AutoButtonColor = false;
2956 BackgroundColor3 = Color3.new(0.94902, 0.94902, 0.94902);
2957 BorderColor3 = GuiColor.Border;
2958 --BorderSizePixel = 0;
2959 Create('ImageButton',{
2960 Name = "ScrollThumb";
2961 AutoButtonColor = false;
2962 Size = UDim2.new(0, GUI_SIZE, 0, GUI_SIZE);
2963 BackgroundColor3 = GuiColor.Button;
2964 BorderColor3 = GuiColor.Border;
2965 --BorderSizePixel = 0;
2966 });
2967 });
2968 })
2969
2970 local graphicTemplate = Create('Frame',{
2971 Name="Graphic";
2972 BorderSizePixel = 0;
2973 BackgroundColor3 = GuiColor.Border;
2974 })
2975 local graphicSize = GUI_SIZE/2
2976
2977 local ScrollDownFrame = ScrollFrame.ScrollDown
2978 local ScrollDownGraphic = ArrowGraphic(graphicSize,horizontal and 'Right' or 'Down',true,graphicTemplate)
2979 ScrollDownGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
2980 ScrollDownGraphic.Parent = ScrollDownFrame
2981 local ScrollUpFrame = ScrollFrame.ScrollUp
2982 local ScrollUpGraphic = ArrowGraphic(graphicSize,horizontal and 'Left' or 'Up',true,graphicTemplate)
2983 ScrollUpGraphic.Position = UDim2.new(0.5,-graphicSize/2,0.5,-graphicSize/2)
2984 ScrollUpGraphic.Parent = ScrollUpFrame
2985 local ScrollBarFrame = ScrollFrame.ScrollBar
2986 local ScrollThumbFrame = ScrollBarFrame.ScrollThumb
2987 do
2988 local size = GUI_SIZE*3/8
2989 local Decal = GripGraphic(Vector2.new(size,size),horizontal and 'Vertical' or 'Horizontal',2,graphicTemplate)
2990 Decal.Position = UDim2.new(0.5,-size/2,0.5,-size/2)
2991 Decal.Parent = ScrollThumbFrame
2992 end
2993
2994 local Class = setmetatable({
2995 GUI = ScrollFrame;
2996 ScrollIndex = 0;
2997 VisibleSpace = 0;
2998 TotalSpace = 0;
2999 PageIncrement = 1;
3000 },mt)
3001
3002 local UpdateScrollThumb
3003 if horizontal then
3004 function UpdateScrollThumb()
3005 ScrollThumbFrame.Size = UDim2.new(Class.VisibleSpace/Class.TotalSpace,0,0,GUI_SIZE)
3006 if ScrollThumbFrame.AbsoluteSize.x < GUI_SIZE then
3007 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
3008 end
3009 local barSize = ScrollBarFrame.AbsoluteSize.x
3010 ScrollThumbFrame.Position = UDim2.new(Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.x)/barSize,0,0,0)
3011 end
3012 else
3013 function UpdateScrollThumb()
3014 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,Class.VisibleSpace/Class.TotalSpace,0)
3015 if ScrollThumbFrame.AbsoluteSize.y < GUI_SIZE then
3016 ScrollThumbFrame.Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE)
3017 end
3018 local barSize = ScrollBarFrame.AbsoluteSize.y
3019 ScrollThumbFrame.Position = UDim2.new(0,0,Class:GetScrollPercent()*(barSize - ScrollThumbFrame.AbsoluteSize.y)/barSize,0)
3020 end
3021 end
3022
3023 local lastDown
3024 local lastUp
3025 local scrollStyle = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0}
3026 local scrollStyle_ds = {BackgroundColor3=GuiColor.Border,BackgroundTransparency=0.7}
3027
3028 local function Update()
3029 local t = Class.TotalSpace
3030 local v = Class.VisibleSpace
3031 local s = Class.ScrollIndex
3032 if v <= t then
3033 if s > 0 then
3034 if s + v > t then
3035 Class.ScrollIndex = t - v
3036 end
3037 else
3038 Class.ScrollIndex = 0
3039 end
3040 else
3041 Class.ScrollIndex = 0
3042 end
3043
3044 if Class.UpdateCallback then
3045 if Class.UpdateCallback(Class) == false then
3046 return
3047 end
3048 end
3049
3050 local down = Class:CanScrollDown()
3051 local up = Class:CanScrollUp()
3052 if down ~= lastDown then
3053 lastDown = down
3054 ScrollDownFrame.Active = down
3055 ScrollDownFrame.AutoButtonColor = down
3056 local children = ScrollDownGraphic:GetChildren()
3057 local style = down and scrollStyle or scrollStyle_ds
3058 for i = 1,#children do
3059 Create(children[i],style)
3060 end
3061 end
3062 if up ~= lastUp then
3063 lastUp = up
3064 ScrollUpFrame.Active = up
3065 ScrollUpFrame.AutoButtonColor = up
3066 local children = ScrollUpGraphic:GetChildren()
3067 local style = up and scrollStyle or scrollStyle_ds
3068 for i = 1,#children do
3069 Create(children[i],style)
3070 end
3071 end
3072 ScrollThumbFrame.Visible = down or up
3073 UpdateScrollThumb()
3074 end
3075 Class.Update = Update
3076
3077 SetZIndexOnChanged(ScrollFrame)
3078
3079 local MouseDrag = Create('ImageButton',{
3080 Name = "MouseDrag";
3081 Position = UDim2.new(-0.25,0,-0.25,0);
3082 Size = UDim2.new(1.5,0,1.5,0);
3083 Transparency = 1;
3084 AutoButtonColor = false;
3085 Active = true;
3086 ZIndex = 10;
3087 })
3088
3089 local scrollEventID = 0
3090 ScrollDownFrame.MouseButton1Down:connect(function()
3091 scrollEventID = tick()
3092 local current = scrollEventID
3093 local up_con
3094 up_con = MouseDrag.MouseButton1Up:connect(function()
3095 scrollEventID = tick()
3096 MouseDrag.Parent = nil
3097 ResetButtonColor(ScrollDownFrame)
3098 up_con:disconnect(); drag = nil
3099 end)
3100 MouseDrag.Parent = GetScreen(ScrollFrame)
3101 Class:ScrollDown()
3102 wait(0.2) -- delay before auto scroll
3103 while scrollEventID == current do
3104 Class:ScrollDown()
3105 if not Class:CanScrollDown() then break end
3106 wait()
3107 end
3108 end)
3109
3110 ScrollDownFrame.MouseButton1Up:connect(function()
3111 scrollEventID = tick()
3112 end)
3113
3114 ScrollUpFrame.MouseButton1Down:connect(function()
3115 scrollEventID = tick()
3116 local current = scrollEventID
3117 local up_con
3118 up_con = MouseDrag.MouseButton1Up:connect(function()
3119 scrollEventID = tick()
3120 MouseDrag.Parent = nil
3121 ResetButtonColor(ScrollUpFrame)
3122 up_con:disconnect(); drag = nil
3123 end)
3124 MouseDrag.Parent = GetScreen(ScrollFrame)
3125 Class:ScrollUp()
3126 wait(0.2)
3127 while scrollEventID == current do
3128 Class:ScrollUp()
3129 if not Class:CanScrollUp() then break end
3130 wait()
3131 end
3132 end)
3133
3134 ScrollUpFrame.MouseButton1Up:connect(function()
3135 scrollEventID = tick()
3136 end)
3137
3138 if horizontal then
3139 ScrollBarFrame.MouseButton1Down:connect(function(x,y)
3140 scrollEventID = tick()
3141 local current = scrollEventID
3142 local up_con
3143 up_con = MouseDrag.MouseButton1Up:connect(function()
3144 scrollEventID = tick()
3145 MouseDrag.Parent = nil
3146 ResetButtonColor(ScrollUpFrame)
3147 up_con:disconnect(); drag = nil
3148 end)
3149 MouseDrag.Parent = GetScreen(ScrollFrame)
3150 if x > ScrollThumbFrame.AbsolutePosition.x then
3151 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
3152 wait(0.2)
3153 while scrollEventID == current do
3154 if x < ScrollThumbFrame.AbsolutePosition.x + ScrollThumbFrame.AbsoluteSize.x then break end
3155 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
3156 wait()
3157 end
3158 else
3159 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
3160 wait(0.2)
3161 while scrollEventID == current do
3162 if x > ScrollThumbFrame.AbsolutePosition.x then break end
3163 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
3164 wait()
3165 end
3166 end
3167 end)
3168 else
3169 ScrollBarFrame.MouseButton1Down:connect(function(x,y)
3170 scrollEventID = tick()
3171 local current = scrollEventID
3172 local up_con
3173 up_con = MouseDrag.MouseButton1Up:connect(function()
3174 scrollEventID = tick()
3175 MouseDrag.Parent = nil
3176 ResetButtonColor(ScrollUpFrame)
3177 up_con:disconnect(); drag = nil
3178 end)
3179 MouseDrag.Parent = GetScreen(ScrollFrame)
3180 if y > ScrollThumbFrame.AbsolutePosition.y then
3181 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
3182 wait(0.2)
3183 while scrollEventID == current do
3184 if y < ScrollThumbFrame.AbsolutePosition.y + ScrollThumbFrame.AbsoluteSize.y then break end
3185 Class:ScrollTo(Class.ScrollIndex + Class.VisibleSpace)
3186 wait()
3187 end
3188 else
3189 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
3190 wait(0.2)
3191 while scrollEventID == current do
3192 if y > ScrollThumbFrame.AbsolutePosition.y then break end
3193 Class:ScrollTo(Class.ScrollIndex - Class.VisibleSpace)
3194 wait()
3195 end
3196 end
3197 end)
3198 end
3199
3200 if horizontal then
3201 ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
3202 scrollEventID = tick()
3203 local mouse_offset = x - ScrollThumbFrame.AbsolutePosition.x
3204 local drag_con
3205 local up_con
3206 drag_con = MouseDrag.MouseMoved:connect(function(x,y)
3207 local bar_abs_pos = ScrollBarFrame.AbsolutePosition.x
3208 local bar_drag = ScrollBarFrame.AbsoluteSize.x - ScrollThumbFrame.AbsoluteSize.x
3209 local bar_abs_one = bar_abs_pos + bar_drag
3210 x = x - mouse_offset
3211 x = x < bar_abs_pos and bar_abs_pos or x > bar_abs_one and bar_abs_one or x
3212 x = x - bar_abs_pos
3213 Class:SetScrollPercent(x/(bar_drag))
3214 end)
3215 up_con = MouseDrag.MouseButton1Up:connect(function()
3216 scrollEventID = tick()
3217 MouseDrag.Parent = nil
3218 ResetButtonColor(ScrollThumbFrame)
3219 drag_con:disconnect(); drag_con = nil
3220 up_con:disconnect(); drag = nil
3221 end)
3222 MouseDrag.Parent = GetScreen(ScrollFrame)
3223 end)
3224 else
3225 ScrollThumbFrame.MouseButton1Down:connect(function(x,y)
3226 scrollEventID = tick()
3227 local mouse_offset = y - ScrollThumbFrame.AbsolutePosition.y
3228 local drag_con
3229 local up_con
3230 drag_con = MouseDrag.MouseMoved:connect(function(x,y)
3231 local bar_abs_pos = ScrollBarFrame.AbsolutePosition.y
3232 local bar_drag = ScrollBarFrame.AbsoluteSize.y - ScrollThumbFrame.AbsoluteSize.y
3233 local bar_abs_one = bar_abs_pos + bar_drag
3234 y = y - mouse_offset
3235 y = y < bar_abs_pos and bar_abs_pos or y > bar_abs_one and bar_abs_one or y
3236 y = y - bar_abs_pos
3237 Class:SetScrollPercent(y/(bar_drag))
3238 end)
3239 up_con = MouseDrag.MouseButton1Up:connect(function()
3240 scrollEventID = tick()
3241 MouseDrag.Parent = nil
3242 ResetButtonColor(ScrollThumbFrame)
3243 drag_con:disconnect(); drag_con = nil
3244 up_con:disconnect(); drag = nil
3245 end)
3246 MouseDrag.Parent = GetScreen(ScrollFrame)
3247 end)
3248 end
3249
3250 function Class:Destroy()
3251 ScrollFrame:Destroy()
3252 MouseDrag:Destroy()
3253 for k in pairs(Class) do
3254 Class[k] = nil
3255 end
3256 setmetatable(Class,nil)
3257 end
3258
3259 Update()
3260
3261 return Class
3262 end
3263end
3264
3265----------------------------------------------------------------
3266----------------------------------------------------------------
3267----------------------------------------------------------------
3268----------------------------------------------------------------
3269---- Explorer panel
3270
3271local explorerPanel = D_E_X.ExplorerPanel
3272Create(explorerPanel,{
3273 BackgroundColor3 = GuiColor.Field;
3274 BorderColor3 = GuiColor.Border;
3275 Active = true;
3276})
3277
3278local SettingsRemote = explorerPanel.Parent:WaitForChild("SettingsPanel"):WaitForChild("GetSetting")
3279local GetApiRemote = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("GetApi")
3280local GetAwaitRemote = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("GetAwaiting")
3281local bindSetAwaiting = explorerPanel.Parent:WaitForChild("PropertiesFrame"):WaitForChild("SetAwaiting")
3282
3283local SaveInstanceWindow = explorerPanel.Parent:WaitForChild("SaveInstance")
3284local ConfirmationWindow = explorerPanel.Parent:WaitForChild("Confirmation")
3285local CautionWindow = explorerPanel.Parent:WaitForChild("Caution")
3286local TableCautionWindow = explorerPanel.Parent:WaitForChild("TableCaution")
3287
3288local RemoteWindow = explorerPanel.Parent:WaitForChild("CallRemote")
3289
3290local ScriptEditor = explorerPanel.Parent:WaitForChild("ScriptEditor")
3291local ScriptEditorEvent = ScriptEditor:WaitForChild("OpenScript")
3292
3293local CurrentSaveInstanceWindow
3294local CurrentRemoteWindow
3295
3296local lastSelectedNode
3297
3298local DexStorage
3299local DexStorageMain
3300local DexStorageEnabled
3301
3302if saveinstance then DexStorageEnabled = true end
3303
3304if DexStorageEnabled then
3305 DexStorage = Instance.new("Folder")
3306 DexStorage.Name = "Dex"
3307 DexStorageMain = Instance.new("Folder",DexStorage)
3308 DexStorageMain.Name = "DexStorage"
3309end
3310
3311local NilStorage
3312local NilStorageMain
3313local NilStorageEnabled
3314
3315if get_nil_instances and IfThisFunctionWasStableEnough then NilStorageEnabled = true end
3316
3317if NilStorageEnabled then
3318 NilStorage = Instance.new("Folder")
3319 NilStorage.Name = "Dex Internal Storage"
3320 NilStorageMain = Instance.new("Folder",NilStorage)
3321 NilStorageMain.Name = "Nil Instances"
3322end
3323
3324local listFrame = Create('Frame',{
3325 Name = "List";
3326 BackgroundTransparency = 1;
3327 ClipsDescendants = true;
3328 Position = UDim2.new(0,0,0,HEADER_SIZE);
3329 Size = UDim2.new(1,-GUI_SIZE,1,-HEADER_SIZE);
3330 Parent = explorerPanel;
3331})
3332
3333local scrollBar = ScrollBar(false)
3334scrollBar.PageIncrement = 1
3335Create(scrollBar.GUI,{
3336 Position = UDim2.new(1,-GUI_SIZE,0,HEADER_SIZE);
3337 Size = UDim2.new(0,GUI_SIZE,1,-HEADER_SIZE);
3338 Parent = explorerPanel;
3339})
3340
3341local scrollBarH = ScrollBar(true)
3342scrollBarH.PageIncrement = GUI_SIZE
3343Create(scrollBarH.GUI,{
3344 Position = UDim2.new(0,0,1,-GUI_SIZE);
3345 Size = UDim2.new(1,-GUI_SIZE,0,GUI_SIZE);
3346 Visible = false;
3347 Parent = explorerPanel;
3348})
3349
3350local headerFrame = Create('Frame',{
3351 Name = "Header";
3352 BackgroundColor3 = GuiColor.Background;
3353 BorderColor3 = GuiColor.Border;
3354 Position = UDim2.new(0,0,0,0);
3355 Size = UDim2.new(1,0,0,HEADER_SIZE);
3356 Parent = explorerPanel;
3357 Create('TextLabel',{
3358 Text = "Explorer";
3359 BackgroundTransparency = 1;
3360 TextColor3 = GuiColor.Text;
3361 TextXAlignment = 'Left';
3362 Font = FONT;
3363 FontSize = FONT_SIZE;
3364 Position = UDim2.new(0,4,0,0);
3365 Size = UDim2.new(1,-4,0.5,0);
3366 });
3367})
3368
3369local explorerFilter = Create('TextBox',{
3370 Text = "Filter Workspace";
3371 BackgroundTransparency = 0.8;
3372 TextColor3 = GuiColor.Text;
3373 TextXAlignment = 'Left';
3374 Font = FONT;
3375 FontSize = FONT_SIZE;
3376 Position = UDim2.new(0,4,0.5,0);
3377 Size = UDim2.new(1,-8,0.5,-2);
3378});
3379explorerFilter.Parent = headerFrame
3380
3381SetZIndexOnChanged(explorerPanel)
3382
3383local function CreateColor3(r, g, b) return Color3.new(r/255,g/255,b/255) end
3384
3385local Styles = {
3386 Font = Enum.Font.Arial;
3387 Margin = 5;
3388 Black = CreateColor3(0,0,0);
3389 White = CreateColor3(255,255,255);
3390}
3391
3392local DropDown = {
3393 Font = Styles.Font;
3394 FontSize = Enum.FontSize.Size14;
3395 TextColor = CreateColor3(0,0,0);
3396 TextColorOver = Styles.White;
3397 TextXAlignment = Enum.TextXAlignment.Left;
3398 Height = 20;
3399 BackColor = Styles.White;
3400 BackColorOver = CreateColor3(86,125,188);
3401 BorderColor = CreateColor3(216,216,216);
3402 BorderSizePixel = 2;
3403 ArrowColor = CreateColor3(160,160,160);
3404 ArrowColorOver = Styles.Black;
3405}
3406
3407local Row = {
3408 Font = Styles.Font;
3409 FontSize = Enum.FontSize.Size14;
3410 TextXAlignment = Enum.TextXAlignment.Left;
3411 TextColor = Styles.Black;
3412 TextColorOver = Styles.White;
3413 TextLockedColor = CreateColor3(120,120,120);
3414 Height = 24;
3415 BorderColor = CreateColor3(216,216,216);
3416 BackgroundColor = Styles.White;
3417 BackgroundColorAlternate = CreateColor3(246,246,246);
3418 BackgroundColorMouseover = CreateColor3(211,224,244);
3419 TitleMarginLeft = 15;
3420}
3421
3422local currentRightClickMenu
3423local CurrentInsertObjectWindow
3424local CurrentFunctionCallerWindow
3425
3426local RbxApi
3427
3428function ClassCanCreate(IName)
3429 local success,err = pcall(function() Instance.new(IName) end)
3430 if err then
3431 return false
3432 else
3433 return true
3434 end
3435end
3436
3437function GetClasses()
3438 if RbxApi == nil then return {} end
3439 local classTable = {}
3440 for i,v in pairs(RbxApi.Classes) do
3441 if ClassCanCreate(v.Name) then
3442 table.insert(classTable,v.Name)
3443 end
3444 end
3445 return classTable
3446end
3447
3448local function sortAlphabetic(t, property)
3449 table.sort(t,
3450 function(x,y) return x[property] < y[property]
3451 end)
3452end
3453
3454local function FunctionIsHidden(functionData)
3455 local tags = functionData["tags"]
3456 for _,name in pairs(tags) do
3457 if name == "deprecated"
3458 or name == "hidden"
3459 or name == "writeonly" then
3460 return true
3461 end
3462 end
3463 return false
3464end
3465
3466local function GetAllFunctions(className)
3467 local class = RbxApi.Classes[className]
3468 local functions = {}
3469
3470 if not class then return functions end
3471
3472 while class do
3473 if class.Name == "Instance" then break end
3474 for _,nextFunction in pairs(class.Functions) do
3475 if not FunctionIsHidden(nextFunction) then
3476 table.insert(functions, nextFunction)
3477 end
3478 end
3479 class = RbxApi.Classes[class.Superclass]
3480 end
3481
3482 sortAlphabetic(functions, "Name")
3483
3484 return functions
3485end
3486
3487function GetFunctions()
3488 if RbxApi == nil then return {} end
3489 local List = SelectionVar():Get()
3490
3491 if #List == 0 then return end
3492
3493 local MyObject = List[1]
3494
3495 local functionTable = {}
3496 for i,v in pairs(GetAllFunctions(MyObject.ClassName)) do
3497 table.insert(functionTable,v)
3498 end
3499 return functionTable
3500end
3501
3502function CreateInsertObjectMenu(choices, currentChoice, readOnly, onClick)
3503 local mouse = game.Players.LocalPlayer:GetMouse()
3504 local totalSize = explorerPanel.Parent.AbsoluteSize.y
3505 if #choices == 0 then return end
3506
3507 table.sort(choices, function(a,b) return a < b end)
3508
3509 local frame = Instance.new("Frame")
3510 frame.Name = "InsertObject"
3511 frame.Size = UDim2.new(0, 200, 1, 0)
3512 frame.BackgroundTransparency = 1
3513 frame.Active = true
3514
3515 local menu = nil
3516 local arrow = nil
3517 local expanded = false
3518 local margin = DropDown.BorderSizePixel;
3519
3520 --[[
3521 local button = Instance.new("TextButton")
3522 button.Font = Row.Font
3523 button.FontSize = Row.FontSize
3524 button.TextXAlignment = Row.TextXAlignment
3525 button.BackgroundTransparency = 1
3526 button.TextColor3 = Row.TextColor
3527 if readOnly then
3528 button.TextColor3 = Row.TextLockedColor
3529 end
3530 button.Text = currentChoice
3531 button.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
3532 button.Position = UDim2.new(0, Styles.Margin, 0, 0)
3533 button.Parent = frame
3534 --]]
3535
3536 local function hideMenu()
3537 expanded = false
3538 --showArrow(DropDown.ArrowColor)
3539 if frame then
3540 --frame:Destroy()
3541 CurrentInsertObjectWindow.Visible = false
3542 end
3543 end
3544
3545 local function showMenu()
3546 expanded = true
3547 menu = Instance.new("ScrollingFrame")
3548 menu.Size = UDim2.new(0,200,1,0)
3549 menu.CanvasSize = UDim2.new(0, 200, 0, #choices * DropDown.Height)
3550 menu.Position = UDim2.new(0, margin, 0, 0)
3551 menu.BackgroundTransparency = 0
3552 menu.BackgroundColor3 = DropDown.BackColor
3553 menu.BorderColor3 = DropDown.BorderColor
3554 menu.BorderSizePixel = DropDown.BorderSizePixel
3555 menu.TopImage = "rbxasset://textures/blackBkg_square.png"
3556 menu.MidImage = "rbxasset://textures/blackBkg_square.png"
3557 menu.BottomImage = "rbxasset://textures/blackBkg_square.png"
3558 menu.Active = true
3559 menu.ZIndex = 5
3560 menu.Parent = frame
3561
3562 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
3563 --local rowHeight = mouse.Y
3564 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
3565 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
3566 --end
3567
3568 local function choice(name)
3569 onClick(name)
3570 hideMenu()
3571 end
3572
3573 for i,name in pairs(choices) do
3574 local option = CreateRightClickMenuItem(name, function()
3575 choice(name)
3576 end,1)
3577 option.Size = UDim2.new(1, 0, 0, 20)
3578 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
3579 option.ZIndex = menu.ZIndex
3580 option.Parent = menu
3581 end
3582 end
3583
3584
3585 showMenu()
3586
3587
3588 return frame
3589end
3590
3591function CreateFunctionCallerMenu(choices, currentChoice, readOnly, onClick)
3592 local mouse = game.Players.LocalPlayer:GetMouse()
3593 local totalSize = explorerPanel.Parent.AbsoluteSize.y
3594 if #choices == 0 then return end
3595
3596 table.sort(choices, function(a,b) return a.Name < b.Name end)
3597
3598 local frame = Instance.new("Frame")
3599 frame.Name = "InsertObject"
3600 frame.Size = UDim2.new(0, 200, 1, 0)
3601 frame.BackgroundTransparency = 1
3602 frame.Active = true
3603
3604 local menu = nil
3605 local arrow = nil
3606 local expanded = false
3607 local margin = DropDown.BorderSizePixel;
3608
3609 local function hideMenu()
3610 expanded = false
3611 --showArrow(DropDown.ArrowColor)
3612 if frame then
3613 --frame:Destroy()
3614 CurrentInsertObjectWindow.Visible = false
3615 end
3616 end
3617
3618 local function showMenu()
3619 expanded = true
3620 menu = Instance.new("ScrollingFrame")
3621 menu.Size = UDim2.new(0,300,1,0)
3622 menu.CanvasSize = UDim2.new(0, 300, 0, #choices * DropDown.Height)
3623 menu.Position = UDim2.new(0, margin, 0, 0)
3624 menu.BackgroundTransparency = 0
3625 menu.BackgroundColor3 = DropDown.BackColor
3626 menu.BorderColor3 = DropDown.BorderColor
3627 menu.BorderSizePixel = DropDown.BorderSizePixel
3628 menu.TopImage = "rbxasset://textures/blackBkg_square.png"
3629 menu.MidImage = "rbxasset://textures/blackBkg_square.png"
3630 menu.BottomImage = "rbxasset://textures/blackBkg_square.png"
3631 menu.Active = true
3632 menu.ZIndex = 5
3633 menu.Parent = frame
3634
3635 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
3636 --local rowHeight = mouse.Y
3637 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
3638 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
3639 --end
3640
3641 local function GetParameters(functionData)
3642 local paraString = ""
3643 paraString = paraString.."("
3644 for i,v in pairs(functionData.Arguments) do
3645 paraString = paraString..v.Type.." "..v.Name
3646 if i < #functionData.Arguments then
3647 paraString = paraString..", "
3648 end
3649 end
3650 paraString = paraString..")"
3651 return paraString
3652 end
3653
3654 local function choice(name)
3655 onClick(name)
3656 hideMenu()
3657 end
3658
3659 for i,name in pairs(choices) do
3660 local option = CreateRightClickMenuItem(name.ReturnType.." "..name.Name..GetParameters(name), function()
3661 choice(name)
3662 end,2)
3663 option.Size = UDim2.new(1, 0, 0, 20)
3664 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
3665 option.ZIndex = menu.ZIndex
3666 option.Parent = menu
3667 end
3668 end
3669
3670
3671 showMenu()
3672
3673
3674 return frame
3675end
3676
3677function CreateInsertObject()
3678 if not CurrentInsertObjectWindow then return end
3679 CurrentInsertObjectWindow.Visible = true
3680 if currentRightClickMenu and CurrentInsertObjectWindow.Visible then
3681 CurrentInsertObjectWindow.Position = UDim2.new(0,currentRightClickMenu.Position.X.Offset-currentRightClickMenu.Size.X.Offset-2,0,0)
3682 end
3683 if CurrentInsertObjectWindow.Visible then
3684 CurrentInsertObjectWindow.Parent = explorerPanel.Parent
3685 end
3686end
3687
3688function CreateFunctionCaller()
3689 if CurrentFunctionCallerWindow then
3690 CurrentFunctionCallerWindow:Destroy()
3691 CurrentFunctionCallerWindow = nil
3692 end
3693 CurrentFunctionCallerWindow = CreateFunctionCallerMenu(
3694 GetFunctions(),
3695 "",
3696 false,
3697 function(option)
3698 CurrentFunctionCallerWindow:Destroy()
3699 CurrentFunctionCallerWindow = nil
3700 local list = SelectionVar():Get()
3701 for i = 1,#list do
3702 pcall(function() Instance.new(option,list[i]) end)
3703 end
3704 print(option.Name .. " selected to be called. Function caller being added soon, please wait!")
3705 --CallFunction()
3706 DestroyRightClick()
3707 end
3708 )
3709 if currentRightClickMenu and CurrentFunctionCallerWindow then
3710 CurrentFunctionCallerWindow.Position = UDim2.new(0,currentRightClickMenu.Position.X.Offset-currentRightClickMenu.Size.X.Offset*1.5-2,0,0)
3711 end
3712 if CurrentFunctionCallerWindow then
3713 CurrentFunctionCallerWindow.Parent = explorerPanel.Parent
3714 end
3715end
3716
3717function CreateRightClickMenuItem(text, onClick, insObj)
3718 local button = Instance.new("TextButton")
3719 button.Font = DropDown.Font
3720 button.FontSize = DropDown.FontSize
3721 button.TextColor3 = DropDown.TextColor
3722 button.TextXAlignment = DropDown.TextXAlignment
3723 button.BackgroundColor3 = DropDown.BackColor
3724 button.AutoButtonColor = false
3725 button.BorderSizePixel = 0
3726 button.Active = true
3727 button.Text = text
3728
3729 if insObj == 1 then
3730 local newIcon = Icon(nil,ExplorerIndex[text] or 0)
3731 newIcon.Position = UDim2.new(0,0,0,2)
3732 newIcon.Size = UDim2.new(0,16,0,16)
3733 newIcon.IconMap.ZIndex = 5
3734 newIcon.Parent = button
3735 button.Text = "\t\t"..button.Text
3736 elseif insObj == 2 then
3737 button.FontSize = Enum.FontSize.Size11
3738 end
3739
3740 button.MouseEnter:connect(function()
3741 button.TextColor3 = DropDown.TextColorOver
3742 button.BackgroundColor3 = DropDown.BackColorOver
3743 if not insObj and CurrentInsertObjectWindow then
3744 if CurrentInsertObjectWindow.Visible == false and button.Text == "Insert Object" then
3745 CreateInsertObject()
3746 elseif CurrentInsertObjectWindow.Visible and button.Text ~= "Insert Object" then
3747 CurrentInsertObjectWindow.Visible = false
3748 end
3749 end
3750 if not insObj then
3751 if CurrentFunctionCallerWindow and button.Text ~= "Call Function" then
3752 CurrentFunctionCallerWindow:Destroy()
3753 CurrentFunctionCallerWindow = nil
3754 elseif button.Text == "Call Function" then
3755 CreateFunctionCaller()
3756 end
3757 end
3758 end)
3759 button.MouseLeave:connect(function()
3760 button.TextColor3 = DropDown.TextColor
3761 button.BackgroundColor3 = DropDown.BackColor
3762 end)
3763 button.MouseButton1Click:connect(function()
3764 button.TextColor3 = DropDown.TextColor
3765 button.BackgroundColor3 = DropDown.BackColor
3766 onClick(text)
3767 end)
3768 return button
3769end
3770
3771function CreateRightClickMenu(choices, currentChoice, readOnly, onClick)
3772 local mouse = game.Players.LocalPlayer:GetMouse()
3773
3774 local frame = Instance.new("Frame")
3775 frame.Name = "DropDown"
3776 frame.Size = UDim2.new(0, 200, 1, 0)
3777 frame.BackgroundTransparency = 1
3778 frame.Active = true
3779
3780 local menu = nil
3781 local arrow = nil
3782 local expanded = false
3783 local margin = DropDown.BorderSizePixel;
3784
3785 --[[
3786 local button = Instance.new("TextButton")
3787 button.Font = Row.Font
3788 button.FontSize = Row.FontSize
3789 button.TextXAlignment = Row.TextXAlignment
3790 button.BackgroundTransparency = 1
3791 button.TextColor3 = Row.TextColor
3792 if readOnly then
3793 button.TextColor3 = Row.TextLockedColor
3794 end
3795 button.Text = currentChoice
3796 button.Size = UDim2.new(1, -2 * Styles.Margin, 1, 0)
3797 button.Position = UDim2.new(0, Styles.Margin, 0, 0)
3798 button.Parent = frame
3799 --]]
3800
3801 local function hideMenu()
3802 expanded = false
3803 --showArrow(DropDown.ArrowColor)
3804 if frame then
3805 frame:Destroy()
3806 DestroyRightClick()
3807 end
3808 end
3809
3810 local function showMenu()
3811 expanded = true
3812 menu = Instance.new("Frame")
3813 menu.Size = UDim2.new(0, 200, 0, #choices * DropDown.Height)
3814 menu.Position = UDim2.new(0, margin, 0, 5)
3815 menu.BackgroundTransparency = 0
3816 menu.BackgroundColor3 = DropDown.BackColor
3817 menu.BorderColor3 = DropDown.BorderColor
3818 menu.BorderSizePixel = DropDown.BorderSizePixel
3819 menu.Active = true
3820 menu.ZIndex = 5
3821 menu.Parent = frame
3822
3823 --local parentFrameHeight = script.Parent.List.Size.Y.Offset
3824 --local rowHeight = mouse.Y
3825 --if (rowHeight + menu.Size.Y.Offset) > parentFrameHeight then
3826 -- menu.Position = UDim2.new(0, margin, 0, -1 * (#choices * DropDown.Height) - margin)
3827 --end
3828
3829 local function choice(name)
3830 onClick(name)
3831 hideMenu()
3832 end
3833
3834 for i,name in pairs(choices) do
3835 local option = CreateRightClickMenuItem(name, function()
3836 choice(name)
3837 end)
3838 option.Size = UDim2.new(1, 0, 0, 20)
3839 option.Position = UDim2.new(0, 0, 0, (i - 1) * DropDown.Height)
3840 option.ZIndex = menu.ZIndex
3841 option.Parent = menu
3842 end
3843 end
3844
3845
3846 showMenu()
3847
3848
3849 return frame
3850end
3851
3852function checkMouseInGui(gui)
3853 if gui == nil then return false end
3854 local plrMouse = game.Players.LocalPlayer:GetMouse()
3855 local guiPosition = gui.AbsolutePosition
3856 local guiSize = gui.AbsoluteSize
3857
3858 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
3859 return true
3860 else
3861 return false
3862 end
3863end
3864
3865local clipboard = {}
3866local function delete(o)
3867 o.Parent = nil
3868end
3869
3870local getTextWidth do
3871 local text = Create('TextLabel',{
3872 Name = "TextWidth";
3873 TextXAlignment = 'Left';
3874 TextYAlignment = 'Center';
3875 Font = FONT;
3876 FontSize = FONT_SIZE;
3877 Text = "";
3878 Position = UDim2.new(0,0,0,0);
3879 Size = UDim2.new(1,0,1,0);
3880 Visible = false;
3881 Parent = explorerPanel;
3882 })
3883 function getTextWidth(s)
3884 text.Text = s
3885 return text.TextBounds.x
3886 end
3887end
3888
3889local nameScanned = false
3890-- Holds the game tree converted to a list.
3891local TreeList = {}
3892-- Matches objects to their tree node representation.
3893local NodeLookup = {}
3894
3895local nodeWidth = 0
3896
3897local QuickButtons = {}
3898
3899function filteringWorkspace()
3900 if explorerFilter.Text ~= "" and explorerFilter.Text ~= "Filter Workspace" then
3901 return true
3902 end
3903 return false
3904end
3905
3906function lookForAName(obj,name)
3907 for i,v in pairs(obj:GetChildren()) do
3908 if string.find(string.lower(v.Name),string.lower(name)) then nameScanned = true end
3909 lookForAName(v,name)
3910 end
3911end
3912
3913function scanName(obj)
3914 nameScanned = false
3915 if string.find(string.lower(obj.Name),string.lower(explorerFilter.Text)) then
3916 nameScanned = true
3917 else
3918 lookForAName(obj,explorerFilter.Text)
3919 end
3920 return nameScanned
3921end
3922
3923function updateActions()
3924 for i,v in pairs(QuickButtons) do
3925 if v.Cond() then
3926 v.Toggle(true)
3927 else
3928 v.Toggle(false)
3929 end
3930 end
3931end
3932
3933local updateList,rawUpdateList,updateScroll,rawUpdateSize do
3934 local function r(t)
3935 for i = 1,#t do
3936 if not filteringWorkspace() or scanName(t[i].Object) then
3937 TreeList[#TreeList+1] = t[i]
3938
3939 local w = (t[i].Depth)*(2+ENTRY_PADDING+GUI_SIZE) + 2 + ENTRY_SIZE + 4 + getTextWidth(t[i].Object.Name) + 4
3940 if w > nodeWidth then
3941 nodeWidth = w
3942 end
3943 if t[i].Expanded or filteringWorkspace() then
3944 r(t[i])
3945 end
3946 end
3947 end
3948 end
3949
3950 function rawUpdateSize()
3951 scrollBarH.TotalSpace = nodeWidth
3952 scrollBarH.VisibleSpace = listFrame.AbsoluteSize.x
3953 scrollBarH:Update()
3954 local visible = scrollBarH:CanScrollDown() or scrollBarH:CanScrollUp()
3955 scrollBarH.GUI.Visible = visible
3956
3957 listFrame.Size = UDim2.new(1,-GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)
3958
3959 scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
3960 scrollBar.GUI.Size = UDim2.new(0,GUI_SIZE,1,-GUI_SIZE*(visible and 1 or 0) - HEADER_SIZE)
3961
3962 scrollBar.TotalSpace = #TreeList+1
3963 scrollBar:Update()
3964 end
3965
3966 function rawUpdateList()
3967 -- Clear then repopulate the entire list. It appears to be fast enough.
3968 TreeList = {}
3969 nodeWidth = 0
3970 r(NodeLookup[workspace.Parent])
3971 if DexStorageEnabled then
3972 r(NodeLookup[DexStorage])
3973 end
3974 if NilStorageEnabled then
3975 r(NodeLookup[NilStorage])
3976 end
3977 rawUpdateSize()
3978 updateActions()
3979 end
3980
3981 -- Adding or removing large models will cause many updates to occur. We
3982 -- can reduce the number of updates by creating a delay, then dropping any
3983 -- updates that occur during the delay.
3984 local updatingList = false
3985 function updateList()
3986 if updatingList then return end
3987 updatingList = true
3988 wait(0.25)
3989 updatingList = false
3990 rawUpdateList()
3991 end
3992
3993 local updatingScroll = false
3994 function updateScroll()
3995 if updatingScroll then return end
3996 updatingScroll = true
3997 wait(0.25)
3998 updatingScroll = false
3999 scrollBar:Update()
4000 end
4001end
4002
4003local Selection do
4004 local bindGetSelection = explorerPanel:FindFirstChild("GetSelection")
4005 if not bindGetSelection then
4006 bindGetSelection = Create('BindableFunction',{Name = "GetSelection"})
4007 bindGetSelection.Parent = explorerPanel
4008 end
4009
4010 local bindSetSelection = explorerPanel:FindFirstChild("SetSelection")
4011 if not bindSetSelection then
4012 bindSetSelection = Create('BindableFunction',{Name = "SetSelection"})
4013 bindSetSelection.Parent = explorerPanel
4014 end
4015
4016 local bindSelectionChanged = explorerPanel:FindFirstChild("SelectionChanged")
4017 if not bindSelectionChanged then
4018 bindSelectionChanged = Create('BindableEvent',{Name = "SelectionChanged"})
4019 bindSelectionChanged.Parent = explorerPanel
4020 end
4021
4022 local SelectionList = {}
4023 local SelectionSet = {}
4024 local Updates = true
4025 Selection = {
4026 Selected = SelectionSet;
4027 List = SelectionList;
4028 }
4029
4030 local function addObject(object)
4031 -- list update
4032 local lupdate = false
4033 -- scroll update
4034 local supdate = false
4035
4036 if not SelectionSet[object] then
4037 local node = NodeLookup[object]
4038 if node then
4039 table.insert(SelectionList,object)
4040 SelectionSet[object] = true
4041 node.Selected = true
4042
4043 -- expand all ancestors so that selected node becomes visible
4044 node = node.Parent
4045 while node do
4046 if not node.Expanded then
4047 node.Expanded = true
4048 lupdate = true
4049 end
4050 node = node.Parent
4051 end
4052 supdate = true
4053 end
4054 end
4055 return lupdate,supdate
4056 end
4057
4058 function Selection:Set(objects)
4059 local lupdate = false
4060 local supdate = false
4061
4062 if #SelectionList > 0 then
4063 for i = 1,#SelectionList do
4064 local object = SelectionList[i]
4065 local node = NodeLookup[object]
4066 if node then
4067 node.Selected = false
4068 SelectionSet[object] = nil
4069 end
4070 end
4071
4072 SelectionList = {}
4073 Selection.List = SelectionList
4074 supdate = true
4075 end
4076
4077 for i = 1,#objects do
4078 local l,s = addObject(objects[i])
4079 lupdate = l or lupdate
4080 supdate = s or supdate
4081 end
4082
4083 if lupdate then
4084 rawUpdateList()
4085 supdate = true
4086 elseif supdate then
4087 scrollBar:Update()
4088 end
4089
4090 if supdate then
4091 bindSelectionChanged:Fire()
4092 updateActions()
4093 end
4094 end
4095
4096 function Selection:Add(object)
4097 local l,s = addObject(object)
4098 if l then
4099 rawUpdateList()
4100 if Updates then
4101 bindSelectionChanged:Fire()
4102 updateActions()
4103 end
4104 elseif s then
4105 scrollBar:Update()
4106 if Updates then
4107 bindSelectionChanged:Fire()
4108 updateActions()
4109 end
4110 end
4111 end
4112
4113 function Selection:StopUpdates()
4114 Updates = false
4115 end
4116
4117 function Selection:ResumeUpdates()
4118 Updates = true
4119 bindSelectionChanged:Fire()
4120 updateActions()
4121 end
4122
4123 function Selection:Remove(object,noupdate)
4124 if SelectionSet[object] then
4125 local node = NodeLookup[object]
4126 if node then
4127 node.Selected = false
4128 SelectionSet[object] = nil
4129 for i = 1,#SelectionList do
4130 if SelectionList[i] == object then
4131 table.remove(SelectionList,i)
4132 break
4133 end
4134 end
4135
4136 if not noupdate then
4137 scrollBar:Update()
4138 end
4139 bindSelectionChanged:Fire()
4140 updateActions()
4141 end
4142 end
4143 end
4144
4145 function Selection:Get()
4146 local list = {}
4147 for i = 1,#SelectionList do
4148 list[i] = SelectionList[i]
4149 end
4150 return list
4151 end
4152
4153 bindSetSelection.OnInvoke = function(...)
4154 Selection:Set(...)
4155 end
4156
4157 bindGetSelection.OnInvoke = function()
4158 return Selection:Get()
4159 end
4160end
4161
4162function CreateCaution(title,msg)
4163 local newCaution = CautionWindow:Clone()
4164 newCaution.Title.Text = title
4165 newCaution.MainWindow.Desc.Text = msg
4166 newCaution.Parent = explorerPanel.Parent
4167 newCaution.Visible = true
4168 newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
4169 newCaution:Destroy()
4170 end)
4171end
4172
4173function CreateTableCaution(title,msg)
4174 if type(msg) ~= "table" then return CreateCaution(title,tostring(msg)) end
4175 local newCaution = TableCautionWindow:Clone()
4176 newCaution.Title.Text = title
4177
4178 local TableList = newCaution.MainWindow.TableResults
4179 local TableTemplate = newCaution.MainWindow.TableTemplate
4180
4181 for i,v in pairs(msg) do
4182 local newResult = TableTemplate:Clone()
4183 newResult.Type.Text = type(v)
4184 newResult.Value.Text = tostring(v)
4185 newResult.Position = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
4186 newResult.Parent = TableList
4187 TableList.CanvasSize = UDim2.new(0,0,0,#TableList:GetChildren() * 20)
4188 newResult.Visible = true
4189 end
4190 newCaution.Parent = explorerPanel.Parent
4191 newCaution.Visible = true
4192 newCaution.MainWindow.Ok.MouseButton1Up:connect(function()
4193 newCaution:Destroy()
4194 end)
4195end
4196
4197local function Split(str, delimiter)
4198 local start = 1
4199 local t = {}
4200 while true do
4201 local pos = string.find (str, delimiter, start, true)
4202 if not pos then
4203 break
4204 end
4205 table.insert (t, string.sub (str, start, pos - 1))
4206 start = pos + string.len (delimiter)
4207 end
4208 table.insert (t, string.sub (str, start))
4209 return t
4210end
4211
4212local function ToValue(value,type)
4213 if type == "Vector2" then
4214 local list = Split(value,",")
4215 if #list < 2 then return nil end
4216 local x = tonumber(list[1]) or 0
4217 local y = tonumber(list[2]) or 0
4218 return Vector2.new(x,y)
4219 elseif type == "Vector3" then
4220 local list = Split(value,",")
4221 if #list < 3 then return nil end
4222 local x = tonumber(list[1]) or 0
4223 local y = tonumber(list[2]) or 0
4224 local z = tonumber(list[3]) or 0
4225 return Vector3.new(x,y,z)
4226 elseif type == "Color3" then
4227 local list = Split(value,",")
4228 if #list < 3 then return nil end
4229 local r = tonumber(list[1]) or 0
4230 local g = tonumber(list[2]) or 0
4231 local b = tonumber(list[3]) or 0
4232 return Color3.new(r/255,g/255, b/255)
4233 elseif type == "UDim2" then
4234 local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
4235 if #list < 4 then return nil end
4236 local xScale = tonumber(list[1]) or 0
4237 local xOffset = tonumber(list[2]) or 0
4238 local yScale = tonumber(list[3]) or 0
4239 local yOffset = tonumber(list[4]) or 0
4240 return UDim2.new(xScale, xOffset, yScale, yOffset)
4241 elseif type == "Number" then
4242 return tonumber(value)
4243 elseif type == "String" then
4244 return value
4245 elseif type == "NumberRange" then
4246 local list = Split(value,",")
4247 if #list == 1 then
4248 if tonumber(list[1]) == nil then return nil end
4249 local newVal = tonumber(list[1]) or 0
4250 return NumberRange.new(newVal)
4251 end
4252 if #list < 2 then return nil end
4253 local x = tonumber(list[1]) or 0
4254 local y = tonumber(list[2]) or 0
4255 return NumberRange.new(x,y)
4256 elseif type == "Script" then
4257 local success,err = ypcall(function()
4258 _G.D_E_X_DONOTUSETHISPLEASE = nil
4259 loadstring(
4260 "_G.D_E_X_DONOTUSETHISPLEASE = "..value
4261 )()
4262 return _G.D_E_X_DONOTUSETHISPLEASE
4263 end)
4264 if err then
4265 return nil
4266 end
4267 else
4268 return nil
4269 end
4270end
4271
4272local function ToPropValue(value,type)
4273 if type == "Vector2" then
4274 local list = Split(value,",")
4275 if #list < 2 then return nil end
4276 local x = tonumber(list[1]) or 0
4277 local y = tonumber(list[2]) or 0
4278 return Vector2.new(x,y)
4279 elseif type == "Vector3" then
4280 local list = Split(value,",")
4281 if #list < 3 then return nil end
4282 local x = tonumber(list[1]) or 0
4283 local y = tonumber(list[2]) or 0
4284 local z = tonumber(list[3]) or 0
4285 return Vector3.new(x,y,z)
4286 elseif type == "Color3" then
4287 local list = Split(value,",")
4288 if #list < 3 then return nil end
4289 local r = tonumber(list[1]) or 0
4290 local g = tonumber(list[2]) or 0
4291 local b = tonumber(list[3]) or 0
4292 return Color3.new(r/255,g/255, b/255)
4293 elseif type == "UDim2" then
4294 local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
4295 if #list < 4 then return nil end
4296 local xScale = tonumber(list[1]) or 0
4297 local xOffset = tonumber(list[2]) or 0
4298 local yScale = tonumber(list[3]) or 0
4299 local yOffset = tonumber(list[4]) or 0
4300 return UDim2.new(xScale, xOffset, yScale, yOffset)
4301 elseif type == "Content" then
4302 return value
4303 elseif type == "float" or type == "int" or type == "double" then
4304 return tonumber(value)
4305 elseif type == "string" then
4306 return value
4307 elseif type == "NumberRange" then
4308 local list = Split(value,",")
4309 if #list == 1 then
4310 if tonumber(list[1]) == nil then return nil end
4311 local newVal = tonumber(list[1]) or 0
4312 return NumberRange.new(newVal)
4313 end
4314 if #list < 2 then return nil end
4315 local x = tonumber(list[1]) or 0
4316 local y = tonumber(list[2]) or 0
4317 return NumberRange.new(x,y)
4318 elseif string.sub(value,1,4) == "Enum" then
4319 local getEnum = value
4320 while true do
4321 local x,y = string.find(getEnum,".")
4322 if y then
4323 getEnum = string.sub(getEnum,y+1)
4324 else
4325 break
4326 end
4327 end
4328 print(getEnum)
4329 return getEnum
4330 else
4331 return nil
4332 end
4333end
4334
4335function PromptRemoteCaller(inst)
4336 if CurrentRemoteWindow then
4337 CurrentRemoteWindow:Destroy()
4338 CurrentRemoteWindow = nil
4339 end
4340 CurrentRemoteWindow = RemoteWindow:Clone()
4341 CurrentRemoteWindow.Parent = explorerPanel.Parent
4342 CurrentRemoteWindow.Visible = true
4343
4344 local displayValues = false
4345
4346 local ArgumentList = CurrentRemoteWindow.MainWindow.Arguments
4347 local ArgumentTemplate = CurrentRemoteWindow.MainWindow.ArgumentTemplate
4348
4349 if inst:IsA("RemoteEvent") then
4350 CurrentRemoteWindow.Title.Text = "Fire Event"
4351 CurrentRemoteWindow.MainWindow.Ok.Text = "Fire"
4352 CurrentRemoteWindow.MainWindow.DisplayReturned.Visible = false
4353 CurrentRemoteWindow.MainWindow.Desc2.Visible = false
4354 end
4355
4356 local newArgument = ArgumentTemplate:Clone()
4357 newArgument.Parent = ArgumentList
4358 newArgument.Visible = true
4359 newArgument.Type.MouseButton1Down:connect(function()
4360 createDDown(newArgument.Type,function(choice)
4361 newArgument.Type.Text = choice
4362 end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
4363 end)
4364
4365 CurrentRemoteWindow.MainWindow.Ok.MouseButton1Up:connect(function()
4366 if CurrentRemoteWindow and inst.Parent ~= nil then
4367 local MyArguments = {}
4368 for i,v in pairs(ArgumentList:GetChildren()) do
4369 table.insert(MyArguments,ToValue(v.Value.Text,v.Type.Text))
4370 end
4371 if inst:IsA("RemoteFunction") then
4372 if displayValues then
4373 spawn(function()
4374 local myResults = inst:InvokeServer(unpack(MyArguments))
4375 if myResults then
4376 CreateTableCaution("Remote Caller",myResults)
4377 else
4378 CreateCaution("Remote Caller","This remote did not return anything.")
4379 end
4380 end)
4381 else
4382 spawn(function()
4383 inst:InvokeServer(unpack(MyArguments))
4384 end)
4385 end
4386 else
4387 inst:FireServer(unpack(MyArguments))
4388 end
4389 CurrentRemoteWindow:Destroy()
4390 CurrentRemoteWindow = nil
4391 end
4392 end)
4393
4394 CurrentRemoteWindow.MainWindow.Add.MouseButton1Up:connect(function()
4395 if CurrentRemoteWindow then
4396 local newArgument = ArgumentTemplate:Clone()
4397 newArgument.Position = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
4398 newArgument.Parent = ArgumentList
4399 ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
4400 newArgument.Visible = true
4401 newArgument.Type.MouseButton1Down:connect(function()
4402 createDDown(newArgument.Type,function(choice)
4403 newArgument.Type.Text = choice
4404 end,"Script","Number","String","Color3","Vector3","Vector2","UDim2","NumberRange")
4405 end)
4406 end
4407 end)
4408
4409 CurrentRemoteWindow.MainWindow.Subtract.MouseButton1Up:connect(function()
4410 if CurrentRemoteWindow then
4411 if #ArgumentList:GetChildren() > 1 then
4412 ArgumentList:GetChildren()[#ArgumentList:GetChildren()]:Destroy()
4413 ArgumentList.CanvasSize = UDim2.new(0,0,0,#ArgumentList:GetChildren() * 20)
4414 end
4415 end
4416 end)
4417
4418 CurrentRemoteWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
4419 if CurrentRemoteWindow then
4420 CurrentRemoteWindow:Destroy()
4421 CurrentRemoteWindow = nil
4422 end
4423 end)
4424
4425 CurrentRemoteWindow.MainWindow.DisplayReturned.MouseButton1Up:connect(function()
4426 if displayValues then
4427 displayValues = false
4428 CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = false
4429 else
4430 displayValues = true
4431 CurrentRemoteWindow.MainWindow.DisplayReturned.enabled.Visible = true
4432 end
4433 end)
4434end
4435
4436function PromptSaveInstance(inst)
4437 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
4438 if CurrentSaveInstanceWindow then
4439 CurrentSaveInstanceWindow:Destroy()
4440 CurrentSaveInstanceWindow = nil
4441 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
4442 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
4443 end
4444 end
4445 CurrentSaveInstanceWindow = SaveInstanceWindow:Clone()
4446 CurrentSaveInstanceWindow.Parent = explorerPanel.Parent
4447 CurrentSaveInstanceWindow.Visible = true
4448
4449 local filename = CurrentSaveInstanceWindow.MainWindow.FileName
4450 local saveObjects = true
4451 local overwriteCaution = false
4452
4453 CurrentSaveInstanceWindow.MainWindow.Save.MouseButton1Up:connect(function()
4454 if readfile and getelysianpath then
4455 if readfile(getelysianpath()..filename.Text..".rbxmx") then
4456 if not overwriteCaution then
4457 overwriteCaution = true
4458 local newCaution = ConfirmationWindow:Clone()
4459 newCaution.Name = "SaveInstanceOverwriteCaution"
4460 newCaution.MainWindow.Desc.Text = "The file, "..filename.Text..".rbxmx, already exists. Overwrite?"
4461 newCaution.Parent = explorerPanel.Parent
4462 newCaution.Visible = true
4463 newCaution.MainWindow.Yes.MouseButton1Up:connect(function()
4464 ypcall(function()
4465 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
4466 end)
4467 overwriteCaution = false
4468 newCaution:Destroy()
4469 if CurrentSaveInstanceWindow then
4470 CurrentSaveInstanceWindow:Destroy()
4471 CurrentSaveInstanceWindow = nil
4472 end
4473 end)
4474 newCaution.MainWindow.No.MouseButton1Up:connect(function()
4475 overwriteCaution = false
4476 newCaution:Destroy()
4477 end)
4478 end
4479 else
4480 ypcall(function()
4481 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
4482 end)
4483 if CurrentSaveInstanceWindow then
4484 CurrentSaveInstanceWindow:Destroy()
4485 CurrentSaveInstanceWindow = nil
4486 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
4487 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
4488 end
4489 end
4490 end
4491 else
4492 ypcall(function()
4493 if SaveInstance then
4494 SaveInstance(inst,filename.Text..".rbxmx",not saveObjects)
4495 else
4496 _G.SaveInstance(inst,filename.Text,not saveObjects)
4497 end
4498 end)
4499 if CurrentSaveInstanceWindow then
4500 CurrentSaveInstanceWindow:Destroy()
4501 CurrentSaveInstanceWindow = nil
4502 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
4503 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
4504 end
4505 end
4506 end
4507 end)
4508 CurrentSaveInstanceWindow.MainWindow.Cancel.MouseButton1Up:connect(function()
4509 if CurrentSaveInstanceWindow then
4510 CurrentSaveInstanceWindow:Destroy()
4511 CurrentSaveInstanceWindow = nil
4512 if explorerPanel.Parent:FindFirstChild("SaveInstanceOverwriteCaution") then
4513 explorerPanel.Parent.SaveInstanceOverwriteCaution:Destroy()
4514 end
4515 end
4516 end)
4517 CurrentSaveInstanceWindow.MainWindow.SaveObjects.MouseButton1Up:connect(function()
4518 if saveObjects then
4519 saveObjects = false
4520 CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = false
4521 else
4522 saveObjects = true
4523 CurrentSaveInstanceWindow.MainWindow.SaveObjects.enabled.Visible = true
4524 end
4525 end)
4526end
4527
4528function DestroyRightClick()
4529 if currentRightClickMenu then
4530 currentRightClickMenu:Destroy()
4531 currentRightClickMenu = nil
4532 end
4533 if CurrentInsertObjectWindow and CurrentInsertObjectWindow.Visible then
4534 CurrentInsertObjectWindow.Visible = false
4535 end
4536end
4537
4538function rightClickMenu(sObj)
4539 local mouse = game.Players.LocalPlayer:GetMouse()
4540
4541 currentRightClickMenu = CreateRightClickMenu(
4542 {"Cut","Copy","Paste Into","Duplicate","Delete","Group","Ungroup","Select Children","Teleport To","Insert Part","Insert Object","View Script","Save Instance","Call Function","Call Remote"},
4543 "",
4544 false,
4545 function(option)
4546 if option == "Cut" then
4547 if not Option.Modifiable then return end
4548 clipboard = {}
4549 local list = Selection.List
4550 local cut = {}
4551 for i = 1,#list do
4552 local obj = list[i]:Clone()
4553 if obj then
4554 table.insert(clipboard,obj)
4555 table.insert(cut,list[i])
4556 end
4557 end
4558 for i = 1,#cut do
4559 pcall(delete,cut[i])
4560 end
4561 updateActions()
4562 elseif option == "Copy" then
4563 if not Option.Modifiable then return end
4564 clipboard = {}
4565 local list = Selection.List
4566 for i = 1,#list do
4567 table.insert(clipboard,list[i]:Clone())
4568 end
4569 updateActions()
4570 elseif option == "Paste Into" then
4571 if not Option.Modifiable then return end
4572 local parent = Selection.List[1] or workspace
4573 for i = 1,#clipboard do
4574 clipboard[i]:Clone().Parent = parent
4575 end
4576 elseif option == "Duplicate" then
4577 if not Option.Modifiable then return end
4578 local list = Selection:Get()
4579 for i = 1,#list do
4580 list[i]:Clone().Parent = Selection.List[1].Parent or workspace
4581 end
4582 elseif option == "Delete" then
4583 if not Option.Modifiable then return end
4584 local list = Selection:Get()
4585 for i = 1,#list do
4586 pcall(delete,list[i])
4587 end
4588 Selection:Set({})
4589 elseif option == "Group" then
4590 if not Option.Modifiable then return end
4591 local newModel = Instance.new("Model")
4592 local list = Selection:Get()
4593 newModel.Parent = Selection.List[1].Parent or workspace
4594 for i = 1,#list do
4595 list[i].Parent = newModel
4596 end
4597 Selection:Set({})
4598 elseif option == "Ungroup" then
4599 if not Option.Modifiable then return end
4600 local ungrouped = {}
4601 local list = Selection:Get()
4602 for i = 1,#list do
4603 if list[i]:IsA("Model") then
4604 for i2,v2 in pairs(list[i]:GetChildren()) do
4605 v2.Parent = list[i].Parent or workspace
4606 table.insert(ungrouped,v2)
4607 end
4608 pcall(delete,list[i])
4609 end
4610 end
4611 Selection:Set({})
4612 if SettingsRemote:Invoke("SelectUngrouped") then
4613 for i,v in pairs(ungrouped) do
4614 Selection:Add(v)
4615 end
4616 end
4617 elseif option == "Select Children" then
4618 if not Option.Modifiable then return end
4619 local list = Selection:Get()
4620 Selection:Set({})
4621 Selection:StopUpdates()
4622 for i = 1,#list do
4623 for i2,v2 in pairs(list[i]:GetChildren()) do
4624 Selection:Add(v2)
4625 end
4626 end
4627 Selection:ResumeUpdates()
4628 elseif option == "Teleport To" then
4629 if not Option.Modifiable then return end
4630 local list = Selection:Get()
4631 for i = 1,#list do
4632 if list[i]:IsA("BasePart") then
4633 pcall(function()
4634 game.Players.LocalPlayer.Character.HumanoidRootPart.CFrame = list[i].CFrame
4635 end)
4636 break
4637 end
4638 end
4639 elseif option == "Insert Part" then
4640 if not Option.Modifiable then return end
4641 local insertedParts = {}
4642 local list = Selection:Get()
4643 for i = 1,#list do
4644 pcall(function()
4645 local newPart = Instance.new("Part")
4646 newPart.Parent = list[i]
4647 newPart.CFrame = CFrame.new(game.Players.LocalPlayer.Character.Head.Position) + Vector3.new(0,3,0)
4648 table.insert(insertedParts,newPart)
4649 end)
4650 end
4651 elseif option == "Save Instance" then
4652 if not Option.Modifiable then return end
4653 local list = Selection:Get()
4654 if #list == 1 then
4655 list[1].Archivable = true
4656 ypcall(function()PromptSaveInstance(list[1]:Clone())end)
4657 elseif #list > 1 then
4658 local newModel = Instance.new("Model")
4659 newModel.Name = "SavedInstances"
4660 for i = 1,#list do
4661 ypcall(function()
4662 list[i].Archivable = true
4663 list[i]:Clone().Parent = newModel
4664 end)
4665 end
4666 PromptSaveInstance(newModel)
4667 end
4668 elseif option == "Call Remote" then
4669 if not Option.Modifiable then return end
4670 local list = Selection:Get()
4671 for i = 1,#list do
4672 if list[i]:IsA("RemoteFunction") or list[i]:IsA("RemoteEvent") then
4673 PromptRemoteCaller(list[i])
4674 break
4675 end
4676 end
4677 elseif option == "View Script" then
4678 if not Option.Modifiable then return end
4679 local list = Selection:Get()
4680 for i = 1,#list do
4681 if list[i]:IsA("LocalScript") or list[i]:IsA("ModuleScript") then
4682 ScriptEditorEvent:Fire(list[i])
4683 end
4684 end
4685 end
4686 end)
4687 currentRightClickMenu.Parent = explorerPanel.Parent
4688 currentRightClickMenu.Position = UDim2.new(0,mouse.X,0,mouse.Y)
4689 if currentRightClickMenu.AbsolutePosition.X + currentRightClickMenu.AbsoluteSize.X > explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X then
4690 currentRightClickMenu.Position = UDim2.new(0, explorerPanel.AbsolutePosition.X + explorerPanel.AbsoluteSize.X - currentRightClickMenu.AbsoluteSize.X, 0, mouse.Y)
4691 end
4692end
4693
4694local function cancelReparentDrag()end
4695local function cancelSelectDrag()end
4696do
4697 local listEntries = {}
4698 local nameConnLookup = {}
4699
4700 local mouseDrag = Create('ImageButton',{
4701 Name = "MouseDrag";
4702 Position = UDim2.new(-0.25,0,-0.25,0);
4703 Size = UDim2.new(1.5,0,1.5,0);
4704 Transparency = 1;
4705 AutoButtonColor = false;
4706 Active = true;
4707 ZIndex = 10;
4708 })
4709 local function dragSelect(last,add,button)
4710 local connDrag
4711 local conUp
4712
4713 conDrag = mouseDrag.MouseMoved:connect(function(x,y)
4714 local pos = Vector2.new(x,y) - listFrame.AbsolutePosition
4715 local size = listFrame.AbsoluteSize
4716 if pos.x < 0 or pos.x > size.x or pos.y < 0 or pos.y > size.y then return end
4717
4718 local i = math.ceil(pos.y/ENTRY_BOUND) + scrollBar.ScrollIndex
4719 -- Mouse may have made a large step, so interpolate between the
4720 -- last index and the current.
4721 for n = i<last and i or last, i>last and i or last do
4722 local node = TreeList[n]
4723 if node then
4724 if add then
4725 Selection:Add(node.Object)
4726 else
4727 Selection:Remove(node.Object)
4728 end
4729 end
4730 end
4731 last = i
4732 end)
4733
4734 function cancelSelectDrag()
4735 mouseDrag.Parent = nil
4736 conDrag:disconnect()
4737 conUp:disconnect()
4738 function cancelSelectDrag()end
4739 end
4740
4741 conUp = mouseDrag[button]:connect(cancelSelectDrag)
4742
4743 mouseDrag.Parent = GetScreen(listFrame)
4744 end
4745
4746 local function dragReparent(object,dragGhost,clickPos,ghostOffset)
4747 local connDrag
4748 local conUp
4749 local conUp2
4750
4751 local parentIndex = nil
4752 local dragged = false
4753
4754 local parentHighlight = Create('Frame',{
4755 Transparency = 1;
4756 Visible = false;
4757 Create('Frame',{
4758 BorderSizePixel = 0;
4759 BackgroundColor3 = Color3.new(0,0,0);
4760 BackgroundTransparency = 0.1;
4761 Position = UDim2.new(0,0,0,0);
4762 Size = UDim2.new(1,0,0,1);
4763 });
4764 Create('Frame',{
4765 BorderSizePixel = 0;
4766 BackgroundColor3 = Color3.new(0,0,0);
4767 BackgroundTransparency = 0.1;
4768 Position = UDim2.new(1,0,0,0);
4769 Size = UDim2.new(0,1,1,0);
4770 });
4771 Create('Frame',{
4772 BorderSizePixel = 0;
4773 BackgroundColor3 = Color3.new(0,0,0);
4774 BackgroundTransparency = 0.1;
4775 Position = UDim2.new(0,0,1,0);
4776 Size = UDim2.new(1,0,0,1);
4777 });
4778 Create('Frame',{
4779 BorderSizePixel = 0;
4780 BackgroundColor3 = Color3.new(0,0,0);
4781 BackgroundTransparency = 0.1;
4782 Position = UDim2.new(0,0,0,0);
4783 Size = UDim2.new(0,1,1,0);
4784 });
4785 })
4786 SetZIndex(parentHighlight,9)
4787
4788 conDrag = mouseDrag.MouseMoved:connect(function(x,y)
4789 local dragPos = Vector2.new(x,y)
4790 if dragged then
4791 local pos = dragPos - listFrame.AbsolutePosition
4792 local size = listFrame.AbsoluteSize
4793
4794 parentIndex = nil
4795 parentHighlight.Visible = false
4796 if pos.x >= 0 and pos.x <= size.x and pos.y >= 0 and pos.y <= size.y + ENTRY_SIZE*2 then
4797 local i = math.ceil(pos.y/ENTRY_BOUND-2)
4798 local node = TreeList[i + scrollBar.ScrollIndex]
4799 if node and node.Object ~= object and not object:IsAncestorOf(node.Object) then
4800 parentIndex = i
4801 local entry = listEntries[i]
4802 if entry then
4803 parentHighlight.Visible = true
4804 parentHighlight.Position = UDim2.new(0,1,0,entry.AbsolutePosition.y-listFrame.AbsolutePosition.y)
4805 parentHighlight.Size = UDim2.new(0,size.x-4,0,entry.AbsoluteSize.y)
4806 end
4807 end
4808 end
4809
4810 dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
4811 elseif (clickPos-dragPos).magnitude > 8 then
4812 dragged = true
4813 SetZIndex(dragGhost,9)
4814 dragGhost.IndentFrame.Transparency = 0.25
4815 dragGhost.IndentFrame.EntryText.TextColor3 = GuiColor.TextSelected
4816 dragGhost.Position = UDim2.new(0,dragPos.x+ghostOffset.x,0,dragPos.y+ghostOffset.y)
4817 dragGhost.Parent = GetScreen(listFrame)
4818 parentHighlight.Parent = listFrame
4819 end
4820 end)
4821
4822 function cancelReparentDrag()
4823 mouseDrag.Parent = nil
4824 conDrag:disconnect()
4825 conUp:disconnect()
4826 conUp2:disconnect()
4827 dragGhost:Destroy()
4828 parentHighlight:Destroy()
4829 function cancelReparentDrag()end
4830 end
4831
4832 local wasSelected = Selection.Selected[object]
4833 if not wasSelected and Option.Selectable then
4834 Selection:Set({object})
4835 end
4836
4837 conUp = mouseDrag.MouseButton1Up:connect(function()
4838 cancelReparentDrag()
4839 if dragged then
4840 if parentIndex then
4841 local parentNode = TreeList[parentIndex + scrollBar.ScrollIndex]
4842 if parentNode then
4843 parentNode.Expanded = true
4844
4845 local parentObj = parentNode.Object
4846 local function parent(a,b)
4847 a.Parent = b
4848 end
4849 if Option.Selectable then
4850 local list = Selection.List
4851 for i = 1,#list do
4852 pcall(parent,list[i],parentObj)
4853 end
4854 else
4855 pcall(parent,object,parentObj)
4856 end
4857 end
4858 end
4859 else
4860 -- do selection click
4861 if wasSelected and Option.Selectable then
4862 Selection:Set({})
4863 end
4864 end
4865 end)
4866 conUp2 = mouseDrag.MouseButton2Down:connect(function()
4867 cancelReparentDrag()
4868 end)
4869
4870 mouseDrag.Parent = GetScreen(listFrame)
4871 end
4872
4873 local entryTemplate = Create('ImageButton',{
4874 Name = "Entry";
4875 Transparency = 1;
4876 AutoButtonColor = false;
4877 Position = UDim2.new(0,0,0,0);
4878 Size = UDim2.new(1,0,0,ENTRY_SIZE);
4879 Create('Frame',{
4880 Name = "IndentFrame";
4881 BackgroundTransparency = 1;
4882 BackgroundColor3 = GuiColor.Selected;
4883 BorderColor3 = GuiColor.BorderSelected;
4884 Position = UDim2.new(0,0,0,0);
4885 Size = UDim2.new(1,0,1,0);
4886 Create(Icon('ImageButton',0),{
4887 Name = "Expand";
4888 AutoButtonColor = false;
4889 Position = UDim2.new(0,-GUI_SIZE,0.5,-GUI_SIZE/2);
4890 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
4891 });
4892 Create(Icon(nil,0),{
4893 Name = "ExplorerIcon";
4894 Position = UDim2.new(0,2+ENTRY_PADDING,0.5,-GUI_SIZE/2);
4895 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
4896 });
4897 Create('TextLabel',{
4898 Name = "EntryText";
4899 BackgroundTransparency = 1;
4900 TextColor3 = GuiColor.Text;
4901 TextXAlignment = 'Left';
4902 TextYAlignment = 'Center';
4903 Font = FONT;
4904 FontSize = FONT_SIZE;
4905 Text = "";
4906 Position = UDim2.new(0,2+ENTRY_SIZE+4,0,0);
4907 Size = UDim2.new(1,-2,1,0);
4908 });
4909 });
4910 })
4911
4912 function scrollBar.UpdateCallback(self)
4913 for i = 1,self.VisibleSpace do
4914 local node = TreeList[i + self.ScrollIndex]
4915 if node then
4916 local entry = listEntries[i]
4917 if not entry then
4918 entry = Create(entryTemplate:Clone(),{
4919 Position = UDim2.new(0,2,0,ENTRY_BOUND*(i-1)+2);
4920 Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE);
4921 ZIndex = listFrame.ZIndex;
4922 })
4923 listEntries[i] = entry
4924
4925 local expand = entry.IndentFrame.Expand
4926 expand.MouseEnter:connect(function()
4927 local node = TreeList[i + self.ScrollIndex]
4928 if #node > 0 then
4929 if node.Expanded then
4930 Icon(expand,NODE_EXPANDED_OVER)
4931 else
4932 Icon(expand,NODE_COLLAPSED_OVER)
4933 end
4934 end
4935 end)
4936 expand.MouseLeave:connect(function()
4937 local node = TreeList[i + self.ScrollIndex]
4938 if #node > 0 then
4939 if node.Expanded then
4940 Icon(expand,NODE_EXPANDED)
4941 else
4942 Icon(expand,NODE_COLLAPSED)
4943 end
4944 end
4945 end)
4946 expand.MouseButton1Down:connect(function()
4947 local node = TreeList[i + self.ScrollIndex]
4948 if #node > 0 then
4949 node.Expanded = not node.Expanded
4950 if node.Object == explorerPanel.Parent and node.Expanded then
4951 CreateCaution("Warning","Please be careful when editing instances inside here, this is like the System32 of Dex and modifying objects here can break Dex.")
4952 end
4953 -- use raw update so the list updates instantly
4954 rawUpdateList()
4955 end
4956 end)
4957
4958 entry.MouseButton1Down:connect(function(x,y)
4959 local node = TreeList[i + self.ScrollIndex]
4960 DestroyRightClick()
4961 if GetAwaitRemote:Invoke() then
4962 bindSetAwaiting:Fire(node.Object)
4963 return
4964 end
4965
4966 if not HoldingShift then
4967 lastSelectedNode = i + self.ScrollIndex
4968 end
4969
4970 if HoldingShift and not filteringWorkspace() then
4971 if lastSelectedNode then
4972 if i + self.ScrollIndex - lastSelectedNode > 0 then
4973 Selection:StopUpdates()
4974 for i2 = 1, i + self.ScrollIndex - lastSelectedNode do
4975 local newNode = TreeList[lastSelectedNode + i2]
4976 if newNode then
4977 Selection:Add(newNode.Object)
4978 end
4979 end
4980 Selection:ResumeUpdates()
4981 else
4982 Selection:StopUpdates()
4983 for i2 = i + self.ScrollIndex - lastSelectedNode, 1 do
4984 local newNode = TreeList[lastSelectedNode + i2]
4985 if newNode then
4986 Selection:Add(newNode.Object)
4987 end
4988 end
4989 Selection:ResumeUpdates()
4990 end
4991 end
4992 return
4993 end
4994
4995 if HoldingCtrl then
4996 if Selection.Selected[node.Object] then
4997 Selection:Remove(node.Object)
4998 else
4999 Selection:Add(node.Object)
5000 end
5001 return
5002 end
5003 if Option.Modifiable then
5004 local pos = Vector2.new(x,y)
5005 dragReparent(node.Object,entry:Clone(),pos,entry.AbsolutePosition-pos)
5006 elseif Option.Selectable then
5007 if Selection.Selected[node.Object] then
5008 Selection:Set({})
5009 else
5010 Selection:Set({node.Object})
5011 end
5012 dragSelect(i+self.ScrollIndex,true,'MouseButton1Up')
5013 end
5014 end)
5015
5016 entry.MouseButton2Down:connect(function()
5017 if not Option.Selectable then return end
5018
5019 DestroyRightClick()
5020
5021 curSelect = entry
5022
5023 local node = TreeList[i + self.ScrollIndex]
5024
5025 if GetAwaitRemote:Invoke() then
5026 bindSetAwaiting:Fire(node.Object)
5027 return
5028 end
5029
5030 if not Selection.Selected[node.Object] then
5031 Selection:Set({node.Object})
5032 end
5033 end)
5034
5035
5036 entry.MouseButton2Up:connect(function()
5037 if not Option.Selectable then return end
5038
5039 local node = TreeList[i + self.ScrollIndex]
5040
5041 if checkMouseInGui(curSelect) then
5042 rightClickMenu(node.Object)
5043 end
5044 end)
5045
5046 entry.Parent = listFrame
5047 end
5048
5049 entry.Visible = true
5050
5051 local object = node.Object
5052
5053 -- update expand icon
5054 if #node == 0 then
5055 entry.IndentFrame.Expand.Visible = false
5056 elseif node.Expanded then
5057 Icon(entry.IndentFrame.Expand,NODE_EXPANDED)
5058 entry.IndentFrame.Expand.Visible = true
5059 else
5060 Icon(entry.IndentFrame.Expand,NODE_COLLAPSED)
5061 entry.IndentFrame.Expand.Visible = true
5062 end
5063
5064 -- update explorer icon
5065 Icon(entry.IndentFrame.ExplorerIcon,ExplorerIndex[object.ClassName] or 0)
5066
5067 -- update indentation
5068 local w = (node.Depth)*(2+ENTRY_PADDING+GUI_SIZE)
5069 entry.IndentFrame.Position = UDim2.new(0,w,0,0)
5070 entry.IndentFrame.Size = UDim2.new(1,-w,1,0)
5071
5072 -- update name change detection
5073 if nameConnLookup[entry] then
5074 nameConnLookup[entry]:disconnect()
5075 end
5076 local text = entry.IndentFrame.EntryText
5077 text.Text = object.Name
5078 nameConnLookup[entry] = node.Object.Changed:connect(function(p)
5079 if p == 'Name' then
5080 text.Text = object.Name
5081 end
5082 end)
5083
5084 -- update selection
5085 entry.IndentFrame.Transparency = node.Selected and 0 or 1
5086 text.TextColor3 = GuiColor[node.Selected and 'TextSelected' or 'Text']
5087
5088 entry.Size = UDim2.new(0,nodeWidth,0,ENTRY_SIZE)
5089 elseif listEntries[i] then
5090 listEntries[i].Visible = false
5091 end
5092 end
5093 for i = self.VisibleSpace+1,self.TotalSpace do
5094 local entry = listEntries[i]
5095 if entry then
5096 listEntries[i] = nil
5097 entry:Destroy()
5098 end
5099 end
5100 end
5101
5102 function scrollBarH.UpdateCallback(self)
5103 for i = 1,scrollBar.VisibleSpace do
5104 local node = TreeList[i + scrollBar.ScrollIndex]
5105 if node then
5106 local entry = listEntries[i]
5107 if entry then
5108 entry.Position = UDim2.new(0,2 - scrollBarH.ScrollIndex,0,ENTRY_BOUND*(i-1)+2)
5109 end
5110 end
5111 end
5112 end
5113
5114 Connect(listFrame.Changed,function(p)
5115 if p == 'AbsoluteSize' then
5116 rawUpdateSize()
5117 end
5118 end)
5119
5120 local wheelAmount = 6
5121 explorerPanel.MouseWheelForward:connect(function()
5122 if scrollBar.VisibleSpace - 1 > wheelAmount then
5123 scrollBar:ScrollTo(scrollBar.ScrollIndex - wheelAmount)
5124 else
5125 scrollBar:ScrollTo(scrollBar.ScrollIndex - scrollBar.VisibleSpace)
5126 end
5127 end)
5128 explorerPanel.MouseWheelBackward:connect(function()
5129 if scrollBar.VisibleSpace - 1 > wheelAmount then
5130 scrollBar:ScrollTo(scrollBar.ScrollIndex + wheelAmount)
5131 else
5132 scrollBar:ScrollTo(scrollBar.ScrollIndex + scrollBar.VisibleSpace)
5133 end
5134 end)
5135end
5136
5137----------------------------------------------------------------
5138----------------------------------------------------------------
5139----------------------------------------------------------------
5140----------------------------------------------------------------
5141---- Object detection
5142
5143-- Inserts `v` into `t` at `i`. Also sets `Index` field in `v`.
5144local function insert(t,i,v)
5145 for n = #t,i,-1 do
5146 local v = t[n]
5147 v.Index = n+1
5148 t[n+1] = v
5149 end
5150 v.Index = i
5151 t[i] = v
5152end
5153
5154-- Removes `i` from `t`. Also sets `Index` field in removed value.
5155local function remove(t,i)
5156 local v = t[i]
5157 for n = i+1,#t do
5158 local v = t[n]
5159 v.Index = n-1
5160 t[n-1] = v
5161 end
5162 t[#t] = nil
5163 v.Index = 0
5164 return v
5165end
5166
5167-- Returns how deep `o` is in the tree.
5168local function depth(o)
5169 local d = -1
5170 while o do
5171 o = o.Parent
5172 d = d + 1
5173 end
5174 return d
5175end
5176
5177
5178local connLookup = {}
5179
5180-- Returns whether a node would be present in the tree list
5181local function nodeIsVisible(node)
5182 local visible = true
5183 node = node.Parent
5184 while node and visible do
5185 visible = visible and node.Expanded
5186 node = node.Parent
5187 end
5188 return visible
5189end
5190
5191-- Removes an object's tree node. Called when the object stops existing in the
5192-- game tree.
5193local function removeObject(object)
5194 local objectNode = NodeLookup[object]
5195 if not objectNode then
5196 return
5197 end
5198
5199 local visible = nodeIsVisible(objectNode)
5200
5201 Selection:Remove(object,true)
5202
5203 local parent = objectNode.Parent
5204 remove(parent,objectNode.Index)
5205 NodeLookup[object] = nil
5206 connLookup[object]:disconnect()
5207 connLookup[object] = nil
5208
5209 if visible then
5210 updateList()
5211 elseif nodeIsVisible(parent) then
5212 updateScroll()
5213 end
5214end
5215
5216-- Moves a tree node to a new parent. Called when an existing object's parent
5217-- changes.
5218local function moveObject(object,parent)
5219 local objectNode = NodeLookup[object]
5220 if not objectNode then
5221 return
5222 end
5223
5224 local parentNode = NodeLookup[parent]
5225 if not parentNode then
5226 return
5227 end
5228
5229 local visible = nodeIsVisible(objectNode)
5230
5231 remove(objectNode.Parent,objectNode.Index)
5232 objectNode.Parent = parentNode
5233
5234 objectNode.Depth = depth(object)
5235 local function r(node,d)
5236 for i = 1,#node do
5237 node[i].Depth = d
5238 r(node[i],d+1)
5239 end
5240 end
5241 r(objectNode,objectNode.Depth+1)
5242
5243 insert(parentNode,#parentNode+1,objectNode)
5244
5245 if visible or nodeIsVisible(objectNode) then
5246 updateList()
5247 elseif nodeIsVisible(objectNode.Parent) then
5248 updateScroll()
5249 end
5250end
5251
5252-- ScriptContext['/Libraries/LibraryRegistration/LibraryRegistration']
5253-- This RobloxLocked object lets me index its properties for some reason
5254
5255local function check(object)
5256 return object.AncestryChanged
5257end
5258
5259-- Creates a new tree node from an object. Called when an object starts
5260-- existing in the game tree.
5261local function addObject(object,noupdate)
5262 if script then
5263 -- protect against naughty RobloxLocked objects
5264 local s = pcall(check,object)
5265 if not s then
5266 return
5267 end
5268 end
5269
5270 local parentNode = NodeLookup[object.Parent]
5271 if not parentNode then
5272 return
5273 end
5274
5275 local objectNode = {
5276 Object = object;
5277 Parent = parentNode;
5278 Index = 0;
5279 Expanded = false;
5280 Selected = false;
5281 Depth = depth(object);
5282 }
5283
5284 connLookup[object] = Connect(object.AncestryChanged,function(c,p)
5285 if c == object then
5286 if p == nil then
5287 removeObject(c)
5288 else
5289 moveObject(c,p)
5290 end
5291 end
5292 end)
5293
5294 NodeLookup[object] = objectNode
5295 insert(parentNode,#parentNode+1,objectNode)
5296
5297 if not noupdate then
5298 if nodeIsVisible(objectNode) then
5299 updateList()
5300 elseif nodeIsVisible(objectNode.Parent) then
5301 updateScroll()
5302 end
5303 end
5304end
5305
5306local function makeObject(obj,par)
5307 local newObject = Instance.new(obj.ClassName)
5308 for i,v in pairs(obj.Properties) do
5309 ypcall(function()
5310 local newProp
5311 newProp = ToPropValue(v.Value,v.Type)
5312 newObject[v.Name] = newProp
5313 end)
5314 end
5315 newObject.Parent = par
5316end
5317
5318local function writeObject(obj)
5319 local newObject = {ClassName = obj.ClassName, Properties = {}}
5320 for i,v in pairs(RbxApi.GetProperties(obj.className)) do
5321 if v["Name"] ~= "Parent" then
5322 print("thispassed")
5323 table.insert(newObject.Properties,{Name = v["Name"], Type = v["ValueType"], Value = tostring(obj[v["Name"]])})
5324 end
5325 end
5326 return newObject
5327end
5328
5329local function buildDexStorage()
5330 local localDexStorage
5331
5332 local success,err = ypcall(function()
5333 localDexStorage = game:GetObjects("rbxasset://DexStorage.rbxm")[1]
5334 end)
5335
5336 if success and localDexStorage then
5337 for i,v in pairs(localDexStorage:GetChildren()) do
5338 ypcall(function()
5339 v.Parent = DexStorageMain
5340 end)
5341 end
5342 end
5343
5344 updateDexStorageListeners()
5345 --[[
5346 local localDexStorage = readfile(getelysianpath().."DexStorage.txt")--game:GetService("CookiesService"):GetCookieValue("DexStorage")
5347 --local success,err = pcall(function()
5348 if localDexStorage then
5349 local objTable = game:GetService("HttpService"):JSONDecode(localDexStorage)
5350 for i,v in pairs(objTable) do
5351 makeObject(v,DexStorageMain)
5352 end
5353 end
5354 --end)
5355 --]]
5356end
5357
5358local dexStorageDebounce = false
5359local dexStorageListeners = {}
5360
5361local function updateDexStorage()
5362 if dexStorageDebounce then return end
5363 dexStorageDebounce = true
5364
5365 wait()
5366
5367 pcall(function()
5368 saveinstance("content//DexStorage.rbxm",DexStorageMain)
5369 end)
5370
5371 updateDexStorageListeners()
5372
5373 dexStorageDebounce = false
5374 --[[
5375 local success,err = ypcall(function()
5376 local objs = {}
5377 for i,v in pairs(DexStorageMain:GetChildren()) do
5378 table.insert(objs,writeObject(v))
5379 end
5380 writefile(getelysianpath().."DexStorage.txt",game:GetService("HttpService"):JSONEncode(objs))
5381 --game:GetService("CookiesService"):SetCookieValue("DexStorage",game:GetService("HttpService"):JSONEncode(objs))
5382 end)
5383 if err then
5384 CreateCaution("DexStorage Save Fail!","DexStorage broke! If you see this message, report to Raspberry Pi!")
5385 end
5386 print("hi")
5387 --]]
5388end
5389
5390function updateDexStorageListeners()
5391 for i,v in pairs(dexStorageListeners) do
5392 v:Disconnect()
5393 end
5394 dexStorageListeners = {}
5395 for i,v in pairs(DexStorageMain:GetChildren()) do
5396 pcall(function()
5397 local ev = v.Changed:connect(updateDexStorage)
5398 table.insert(dexStorageListeners,ev)
5399 end)
5400 end
5401end
5402
5403do
5404 NodeLookup[workspace.Parent] = {
5405 Object = workspace.Parent;
5406 Parent = nil;
5407 Index = 0;
5408 Expanded = true;
5409 }
5410
5411 if DexStorageEnabled then
5412 NodeLookup[DexStorage] = {
5413 Object = DexStorage;
5414 Parent = nil;
5415 Index = 0;
5416 Expanded = true;
5417 }
5418 end
5419
5420 if NilStorageEnabled then
5421 NodeLookup[NilStorage] = {
5422 Object = NilStorage;
5423 Parent = nil;
5424 Index = 0;
5425 Expanded = true;
5426 }
5427 end
5428
5429 Connect(game.DescendantAdded,addObject)
5430 Connect(game.DescendantRemoving,removeObject)
5431
5432 if DexStorageEnabled then
5433 --[[
5434 if readfile(getelysianpath().."DexStorage.txt") == nil then
5435 writefile(getelysianpath().."DexStorage.txt","")
5436 end
5437 --]]
5438
5439 buildDexStorage()
5440
5441 Connect(DexStorage.DescendantAdded,addObject)
5442 Connect(DexStorage.DescendantRemoving,removeObject)
5443
5444 Connect(DexStorage.DescendantAdded,updateDexStorage)
5445 Connect(DexStorage.DescendantRemoving,updateDexStorage)
5446 end
5447
5448 if NilStorageEnabled then
5449 Connect(NilStorage.DescendantAdded,addObject)
5450 Connect(NilStorage.DescendantRemoving,removeObject)
5451
5452 local currentTable = get_nil_instances()
5453
5454 spawn(function()
5455 while wait() do
5456 if #currentTable ~= #get_nil_instances() then
5457 currentTable = get_nil_instances()
5458 --NilStorageMain:ClearAllChildren()
5459 for i,v in pairs(get_nil_instances()) do
5460 if v ~= NilStorage and v ~= DexStorage then
5461 pcall(function()
5462 v.Parent = NilStorageMain
5463 end)
5464 --[[
5465 local newNil = v
5466 newNil.Archivable = true
5467 newNil:Clone().Parent = NilStorageMain
5468 --]]
5469 end
5470 end
5471 end
5472 end
5473 end)
5474 end
5475
5476 local function get(o)
5477 return o:GetChildren()
5478 end
5479
5480 local function r(o)
5481 local s,children = pcall(get,o)
5482 if s then
5483 for i = 1,#children do
5484 addObject(children[i],true)
5485 r(children[i])
5486 end
5487 end
5488 end
5489
5490 r(workspace.Parent)
5491 if DexStorageEnabled then
5492 r(DexStorage)
5493 end
5494 if NilStorageEnabled then
5495 r(NilStorage)
5496 end
5497
5498 scrollBar.VisibleSpace = math.ceil(listFrame.AbsoluteSize.y/ENTRY_BOUND)
5499 updateList()
5500end
5501
5502----------------------------------------------------------------
5503----------------------------------------------------------------
5504----------------------------------------------------------------
5505----------------------------------------------------------------
5506---- Actions
5507
5508local actionButtons do
5509 actionButtons = {}
5510
5511 local totalActions = 1
5512 local currentActions = totalActions
5513 local function makeButton(icon,over,name,vis,cond)
5514 local buttonEnabled = false
5515
5516 local button = Create(Icon('ImageButton',icon),{
5517 Name = name .. "Button";
5518 Visible = Option.Modifiable and Option.Selectable;
5519 Position = UDim2.new(1,-(GUI_SIZE+2)*currentActions+2,0.25,-GUI_SIZE/2);
5520 Size = UDim2.new(0,GUI_SIZE,0,GUI_SIZE);
5521 Parent = headerFrame;
5522 })
5523
5524 local tipText = Create('TextLabel',{
5525 Name = name .. "Text";
5526 Text = name;
5527 Visible = false;
5528 BackgroundTransparency = 1;
5529 TextXAlignment = 'Right';
5530 Font = FONT;
5531 FontSize = FONT_SIZE;
5532 Position = UDim2.new(0,0,0,0);
5533 Size = UDim2.new(1,-(GUI_SIZE+2)*totalActions,1,0);
5534 Parent = headerFrame;
5535 })
5536
5537
5538 button.MouseEnter:connect(function()
5539 if buttonEnabled then
5540 button.BackgroundTransparency = 0.9
5541 end
5542 --Icon(button,over)
5543 --tipText.Visible = true
5544 end)
5545 button.MouseLeave:connect(function()
5546 button.BackgroundTransparency = 1
5547 --Icon(button,icon)
5548 --tipText.Visible = false
5549 end)
5550
5551 currentActions = currentActions + 1
5552 actionButtons[#actionButtons+1] = {Obj = button,Cond = cond}
5553 QuickButtons[#actionButtons+1] = {Obj = button,Cond = cond, Toggle = function(on)
5554 if on then
5555 buttonEnabled = true
5556 Icon(button,over)
5557 else
5558 buttonEnabled = false
5559 Icon(button,icon)
5560 end
5561 end}
5562 return button
5563 end
5564
5565 --local clipboard = {}
5566 local function delete(o)
5567 o.Parent = nil
5568 end
5569
5570 makeButton(ACTION_EDITQUICKACCESS,ACTION_EDITQUICKACCESS,"Options",true,function()return true end).MouseButton1Click:connect(function()
5571
5572 end)
5573
5574
5575 -- DELETE
5576 makeButton(ACTION_DELETE,ACTION_DELETE_OVER,"Delete",true,function() return #Selection:Get() > 0 end).MouseButton1Click:connect(function()
5577 if not Option.Modifiable then return end
5578 local list = Selection:Get()
5579 for i = 1,#list do
5580 pcall(delete,list[i])
5581 end
5582 Selection:Set({})
5583 end)
5584
5585 -- PASTE
5586 makeButton(ACTION_PASTE,ACTION_PASTE_OVER,"Paste",true,function() return #Selection:Get() > 0 and #clipboard > 0 end).MouseButton1Click:connect(function()
5587 if not Option.Modifiable then return end
5588 local parent = Selection.List[1] or workspace
5589 for i = 1,#clipboard do
5590 clipboard[i]:Clone().Parent = parent
5591 end
5592 end)
5593
5594 -- COPY
5595 makeButton(ACTION_COPY,ACTION_COPY_OVER,"Copy",true,function() return #Selection:Get() > 0 end).MouseButton1Click:connect(function()
5596 if not Option.Modifiable then return end
5597 clipboard = {}
5598 local list = Selection.List
5599 for i = 1,#list do
5600 table.insert(clipboard,list[i]:Clone())
5601 end
5602 updateActions()
5603 end)
5604
5605 -- CUT
5606 makeButton(ACTION_CUT,ACTION_CUT_OVER,"Cut",true,function() return #Selection:Get() > 0 end).MouseButton1Click:connect(function()
5607 if not Option.Modifiable then return end
5608 clipboard = {}
5609 local list = Selection.List
5610 local cut = {}
5611 for i = 1,#list do
5612 local obj = list[i]:Clone()
5613 if obj then
5614 table.insert(clipboard,obj)
5615 table.insert(cut,list[i])
5616 end
5617 end
5618 for i = 1,#cut do
5619 pcall(delete,cut[i])
5620 end
5621 updateActions()
5622 end)
5623
5624 -- FREEZE
5625 makeButton(ACTION_FREEZE,ACTION_FREEZE,"Freeze",true,function() return true end)
5626
5627 -- ADD/REMOVE STARRED
5628 makeButton(ACTION_ADDSTAR,ACTION_ADDSTAR_OVER,"Star",true,function() return #Selection:Get() > 0 end)
5629
5630 -- STARRED
5631 makeButton(ACTION_STARRED,ACTION_STARRED,"Starred",true,function() return true end)
5632
5633
5634 -- SORT
5635 -- local actionSort = makeButton(ACTION_SORT,ACTION_SORT_OVER,"Sort")
5636end
5637
5638----------------------------------------------------------------
5639----------------------------------------------------------------
5640----------------------------------------------------------------
5641----------------------------------------------------------------
5642---- Option Bindables
5643
5644do
5645 local optionCallback = {
5646 Modifiable = function(value)
5647 for i = 1,#actionButtons do
5648 actionButtons[i].Obj.Visible = value and Option.Selectable
5649 end
5650 cancelReparentDrag()
5651 end;
5652 Selectable = function(value)
5653 for i = 1,#actionButtons do
5654 actionButtons[i].Obj.Visible = value and Option.Modifiable
5655 end
5656 cancelSelectDrag()
5657 Selection:Set({})
5658 end;
5659 }
5660
5661 local bindSetOption = explorerPanel:FindFirstChild("SetOption")
5662 if not bindSetOption then
5663 bindSetOption = Create('BindableFunction',{Name = "SetOption"})
5664 bindSetOption.Parent = explorerPanel
5665 end
5666
5667 bindSetOption.OnInvoke = function(optionName,value)
5668 if optionCallback[optionName] then
5669 Option[optionName] = value
5670 optionCallback[optionName](value)
5671 end
5672 end
5673
5674 local bindGetOption = explorerPanel:FindFirstChild("GetOption")
5675 if not bindGetOption then
5676 bindGetOption = Create('BindableFunction',{Name = "GetOption"})
5677 bindGetOption.Parent = explorerPanel
5678 end
5679
5680 bindGetOption.OnInvoke = function(optionName)
5681 if optionName then
5682 return Option[optionName]
5683 else
5684 local options = {}
5685 for k,v in pairs(Option) do
5686 options[k] = v
5687 end
5688 return options
5689 end
5690 end
5691end
5692
5693function SelectionVar()
5694 return Selection
5695end
5696
5697Input.InputBegan:connect(function(key)
5698 if key.KeyCode == Enum.KeyCode.LeftControl then
5699 HoldingCtrl = true
5700 end
5701 if key.KeyCode == Enum.KeyCode.LeftShift then
5702 HoldingShift = true
5703 end
5704end)
5705
5706Input.InputEnded:connect(function(key)
5707 if key.KeyCode == Enum.KeyCode.LeftControl then
5708 HoldingCtrl = false
5709 end
5710 if key.KeyCode == Enum.KeyCode.LeftShift then
5711 HoldingShift = false
5712 end
5713end)
5714
5715while RbxApi == nil do
5716 RbxApi = GetApiRemote:Invoke()
5717 wait()
5718end
5719
5720explorerFilter.Changed:connect(function(prop)
5721 if prop == "Text" then
5722 rawUpdateList()
5723 end
5724end)
5725
5726CurrentInsertObjectWindow = CreateInsertObjectMenu(
5727 GetClasses(),
5728 "",
5729 false,
5730 function(option)
5731 CurrentInsertObjectWindow.Visible = false
5732 local list = SelectionVar():Get()
5733 for i = 1,#list do
5734 pcall(function() Instance.new(option,list[i]) end)
5735 end
5736 DestroyRightClick()
5737 end
5738)
5739end)
5740spawn(function()
5741 --[[
5742
5743Change log:
5744
574509/18
5746 Fixed checkbox mouseover sprite
5747 Encapsulated checkbox creation into separate method
5748 Fixed another checkbox issue
5749
575009/15
5751 Invalid input is ignored instead of setting to default of that data type
5752 Consolidated control methods and simplified them
5753 All input goes through ToValue method
5754 Fixed position of BrickColor palette
5755 Made DropDown appear above row if it would otherwise exceed the page height
5756 Cleaned up stylesheets
5757
575809/14
5759 Made properties window scroll when mouse wheel scrolled
5760 Object/Instance and Color3 data types handled properly
5761 Multiple BrickColor controls interfering with each other fixed
5762 Added support for Content data type
5763
5764--]]
5765
5766wait(0.2)
5767
5768local print = function(s)
5769 print(tostring(s))
5770end
5771
5772-- Services
5773local Teams = game:GetService("Teams")
5774local Workspace = game:GetService("Workspace")
5775local Debris = game:GetService("Debris")
5776local ContentProvider = game:GetService("ContentProvider")
5777local Players = game:GetService("Players")
5778local ReplicatedStorage = game:GetService("ReplicatedStorage")
5779
5780-- Functions
5781function httpGet(url)
5782 return game:HttpGet(url,true)
5783end
5784
5785-- RbxApi Stuff
5786
5787local apiUrl = "http://anaminus.github.io/rbx/json/api/latest.json"
5788local maxChunkSize = 100 * 1000
5789local ApiJson
5790if script:FindFirstChild("RawApiJson") then
5791 ApiJson = script.RawApiJson
5792else
5793 ApiJson = ""
5794end
5795
5796
5797function getLocalApiJson()
5798 local rawApiJson = [===[
5799 [{"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":"Property","Name":"AltCdnSuccessCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"AvailablePhysicalMemory","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"BlockMeshSize","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"CPU","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"CdnFailureCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"CdnResponceTime","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"CdnSuccessCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"CpuCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"CpuSpeed","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"DataModel","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"ElapsedTime","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"ErrorReporting","type":"Property","Name":"ErrorReporting","tags":[],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"GfxCard","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"InstanceCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"IsFmodProfilingEnabled","tags":[],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"IsProfilingEnabled","tags":[],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"IsScriptStackTracingEnabled","tags":[],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"JobCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"LastCdnFailureTimeSpan","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"LuaRamLimit","tags":[],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"NameDatabaseBytes","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"NameDatabaseSize","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"OsIs64Bit","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"OsPlatform","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"OsPlatformId","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"OsVer","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"PageFaultsPerSecond","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"PageFileBytes","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"float","type":"Property","Name":"PixelShaderModel","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"PlayerCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"PrivateBytes","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"PrivateWorkingSetBytes","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"ProcessCores","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"ProcessorTime","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"ProfilingWindow","tags":[],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"RAM","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"ReportExtendedMachineConfiguration","tags":[],"Class":"DebugSettings"},{"ValueType":"bool","type":"Property","Name":"ReportSoundWarnings","tags":[],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"Resolution","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"RobloxFailureCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"RobloxProductName","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"double","type":"Property","Name":"RobloxRespoceTime","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"RobloxSuccessCount","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"RobloxVersion","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"SIMD","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"string","type":"Property","Name":"SystemProductName","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"TickCountSampleMethod","type":"Property","Name":"TickCountPreciseOverride","tags":[],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"TotalPhysicalMemory","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"TotalProcessorTime","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"float","type":"Property","Name":"VertexShaderModel","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"VideoMemory","tags":["readonly"],"Class":"DebugSettings"},{"ValueType":"int","type":"Property","Name":"VirtualBytes","tags":["readonly"],"Class":"DebugSettings"},{"ReturnType":"void","Arguments":[],"Name":"LegacyScriptMode","tags":["LocalUserSecurity","deprecated"],"Class":"DebugSettings","type":"Function"},{"ReturnType":"Tuple","Arguments":[],"Name":"ResetCdnFailureCounts","tags":["LocalUserSecurity"],"Class":"DebugSettings","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"bool","Name":"value","Default":null}],"Name":"SetBlockingRemove","tags":["LocalUserSecurity"],"Class":"DebugSettings","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"DebuggerBreakpoint","tags":["notCreatable"]},{"ValueType":"string","type":"Property","Name":"Condition","tags":[],"Class":"DebuggerBreakpoint"},{"ValueType":"bool","type":"Property","Name":"IsEnabled","tags":[],"Class":"DebuggerBreakpoint"},{"ValueType":"int","type":"Property","Name":"Line","tags":["readonly"],"Class":"DebuggerBreakpoint"},{"Superclass":"Instance","type":"Class","Name":"DebuggerManager","tags":["notCreatable"]},{"ValueType":"bool","type":"Property","Name":"DebuggingEnabled","tags":["readonly"],"Class":"DebuggerManager"},{"ReturnType":"Instance","Arguments":[{"Type":"Instance","Name":"script","Default":null}],"Name":"AddDebugger","tags":[],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"EnableDebugging","tags":["LocalUserSecurity"],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"Objects","Arguments":[],"Name":"GetDebuggers","tags":[],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"Resume","tags":[],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"StepIn","tags":[],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"StepOut","tags":[],"Class":"DebuggerManager","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"StepOver","tags":[],"Class":"DebuggerManager","type":"Function"},{"Arguments":[{"Name":"debugger","Type":"Instance"}],"Name":"DebuggerAdded","tags":[],"Class":"DebuggerManager","type":"Event"},{"Arguments":[{"Name":"debugger","Type":"Instance"}],"Name":"DebuggerRemoved","tags":[],"Class":"DebuggerManager","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"DebuggerWatch","tags":[]},{"ValueType":"string","type":"Property","Name":"Expression","tags":[],"Class":"DebuggerWatch"},{"ReturnType":"void","Arguments":[],"Name":"CheckSyntax","tags":[],"Class":"DebuggerWatch","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"Dialog","tags":[]},{"ValueType":"float","type":"Property","Name":"ConversationDistance","tags":[],"Class":"Dialog"},{"ValueType":"string","type":"Property","Name":"GoodbyeDialog","tags":[],"Class":"Dialog"},{"ValueType":"bool","type":"Property","Name":"InUse","tags":[],"Class":"Dialog"},{"ValueType":"string","type":"Property","Name":"InitialPrompt","tags":[],"Class":"Dialog"},{"ValueType":"DialogPurpose","type":"Property","Name":"Purpose","tags":[],"Class":"Dialog"},{"ValueType":"DialogTone","type":"Property","Name":"Tone","tags":[],"Class":"Dialog"},{"ReturnType":"void","Arguments":[{"Type":"Instance","Name":"player","Default":null},{"Type":"Instance","Name":"dialogChoice","Default":null}],"Name":"SignalDialogChoiceSelected","tags":["RobloxScriptSecurity"],"Class":"Dialog","type":"Function"},{"Arguments":[{"Name":"player","Type":"Instance"},{"Name":"dialogChoice","Type":"Instance"}],"Name":"DialogChoiceSelected","tags":[],"Class":"Dialog","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"DialogChoice","tags":[]},{"ValueType":"string","type":"Property","Name":"GoodbyeDialog","tags":[],"Class":"DialogChoice"},{"ValueType":"string","type":"Property","Name":"ResponseDialog","tags":[],"Class":"DialogChoice"},{"ValueType":"string","type":"Property","Name":"UserDialog","tags":[],"Class":"DialogChoice"},{"Superclass":"Instance","type":"Class","Name":"DoubleConstrainedValue","tags":[]},{"ValueType":"double","type":"Property","Name":"ConstrainedValue","tags":["hidden"],"Class":"DoubleConstrainedValue"},{"ValueType":"double","type":"Property","Name":"MaxValue","tags":[],"Class":"DoubleConstrainedValue"},{"ValueType":"double","type":"Property","Name":"MinValue","tags":[],"Class":"DoubleConstrainedValue"},{"ValueType":"double","type":"Property","Name":"Value","tags":[],"Class":"DoubleConstrainedValue"},{"Arguments":[{"Name":"value","Type":"double"}],"Name":"Changed","tags":[],"Class":"DoubleConstrainedValue","type":"Event"},{"Arguments":[{"Name":"value","Type":"double"}],"Name":"changed","tags":["deprecated"],"Class":"DoubleConstrainedValue","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"Dragger","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"Axis","Name":"axis","Default":"X"}],"Name":"AxisRotate","tags":[],"Class":"Dragger","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Instance","Name":"mousePart","Default":null},{"Type":"Vector3","Name":"pointOnMousePart","Default":null},{"Type":"Objects","Name":"parts","Default":null}],"Name":"MouseDown","tags":[],"Class":"Dragger","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"Ray","Name":"mouseRay","Default":null}],"Name":"MouseMove","tags":[],"Class":"Dragger","type":"Function"},{"ReturnType":"void","Arguments":[],"Name":"MouseUp","tags":[],"Class":"Dragger","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"Explosion","tags":[]},{"ValueType":"float","type":"Property","Name":"BlastPressure","tags":[],"Class":"Explosion"},{"ValueType":"float","type":"Property","Name":"BlastRadius","tags":[],"Class":"Explosion"},{"ValueType":"float","type":"Property","Name":"DestroyJointRadiusPercent","tags":[],"Class":"Explosion"},{"ValueType":"ExplosionType","type":"Property","Name":"ExplosionType","tags":[],"Class":"Explosion"},{"ValueType":"Vector3","type":"Property","Name":"Position","tags":[],"Class":"Explosion"},{"Arguments":[{"Name":"part","Type":"Instance"},{"Name":"distance","Type":"float"}],"Name":"Hit","tags":[],"Class":"Explosion","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"FaceInstance","tags":["notbrowsable"]},{"ValueType":"NormalId","type":"Property","Name":"Face","tags":[],"Class":"FaceInstance"},{"Superclass":"FaceInstance","type":"Class","Name":"Decal","tags":[]},{"ValueType":"float","type":"Property","Name":"LocalTransparencyModifier","tags":["hidden"],"Class":"Decal"},{"ValueType":"float","type":"Property","Name":"Shiny","tags":["deprecated"],"Class":"Decal"},{"ValueType":"float","type":"Property","Name":"Specular","tags":["deprecated"],"Class":"Decal"},{"ValueType":"Content","type":"Property","Name":"Texture","tags":[],"Class":"Decal"},{"ValueType":"float","type":"Property","Name":"Transparency","tags":[],"Class":"Decal"},{"Superclass":"Decal","type":"Class","Name":"Texture","tags":[]},{"ValueType":"float","type":"Property","Name":"StudsPerTileU","tags":[],"Class":"Texture"},{"ValueType":"float","type":"Property","Name":"StudsPerTileV","tags":[],"Class":"Texture"},{"Superclass":"Instance","type":"Class","Name":"Feature","tags":[]},{"ValueType":"NormalId","type":"Property","Name":"FaceId","tags":[],"Class":"Feature"},{"ValueType":"InOut","type":"Property","Name":"InOut","tags":[],"Class":"Feature"},{"ValueType":"LeftRight","type":"Property","Name":"LeftRight","tags":[],"Class":"Feature"},{"ValueType":"TopBottom","type":"Property","Name":"TopBottom","tags":[],"Class":"Feature"},{"Superclass":"Feature","type":"Class","Name":"Hole","tags":["deprecated"]},{"Superclass":"Feature","type":"Class","Name":"MotorFeature","tags":["deprecated"]},{"Superclass":"Instance","type":"Class","Name":"Fire","tags":[]},{"ValueType":"Color3","type":"Property","Name":"Color","tags":[],"Class":"Fire"},{"ValueType":"bool","type":"Property","Name":"Enabled","tags":[],"Class":"Fire"},{"ValueType":"float","type":"Property","Name":"Heat","tags":[],"Class":"Fire"},{"ValueType":"Color3","type":"Property","Name":"SecondaryColor","tags":[],"Class":"Fire"},{"ValueType":"float","type":"Property","Name":"Size","tags":[],"Class":"Fire"},{"ValueType":"float","type":"Property","Name":"size","tags":["deprecated"],"Class":"Fire"},{"Superclass":"Instance","type":"Class","Name":"FlagStandService","tags":[]},{"Superclass":"Instance","type":"Class","Name":"FlyweightService","tags":[]},{"Superclass":"FlyweightService","type":"Class","Name":"CSGDictionaryService","tags":[]},{"Superclass":"FlyweightService","type":"Class","Name":"NonReplicatedCSGDictionaryService","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Folder","tags":[]},{"Superclass":"Instance","type":"Class","Name":"ForceField","tags":[]},{"Superclass":"Instance","type":"Class","Name":"FriendService","tags":["notCreatable"]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetBreakFriendUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetCreateFriendRequestUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetDeleteFriendRequestUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"bool","Name":"enable","Default":null}],"Name":"SetEnabled","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetFriendsOnlineUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetGetFriendsUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"url","Default":null}],"Name":"SetMakeFriendUrl","tags":["LocalUserSecurity"],"Class":"FriendService","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"FunctionalTest","tags":["deprecated"]},{"ValueType":"string","type":"Property","Name":"Description","tags":[],"Class":"FunctionalTest"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"message","Default":""}],"Name":"Error","tags":[],"Class":"FunctionalTest","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"message","Default":""}],"Name":"Failed","tags":[],"Class":"FunctionalTest","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"message","Default":""}],"Name":"Pass","tags":[],"Class":"FunctionalTest","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"message","Default":""}],"Name":"Passed","tags":[],"Class":"FunctionalTest","type":"Function"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"message","Default":""}],"Name":"Warn","tags":[],"Class":"FunctionalTest","type":"Function"},{"Superclass":"Instance","type":"Class","Name":"GamePassService","tags":[]},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"playerHasPassUrl","Default":null}],"Name":"SetPlayerHasPassUrl","tags":["LocalUserSecurity"],"Class":"GamePassService","type":"Function"},{"ReturnType":"bool","Arguments":[{"Type":"Instance","Name":"player","Default":null},{"Type":"int","Name":"gamePassId","Default":null}],"Name":"PlayerHasPass","tags":[],"Class":"GamePassService","type":"YieldFunction"},{"Superclass":"Instance","type":"Class","Name":"GameSettings","tags":["notbrowsable"]},{"ValueType":"float","type":"Property","Name":"BubbleChatLifetime","tags":[],"Class":"GameSettings"},{"ValueType":"int","type":"Property","Name":"BubbleChatMaxBubbles","tags":[],"Class":"GameSettings"},{"ValueType":"int","type":"Property","Name":"ChatHistory","tags":[],"Class":"GameSettings"},{"ValueType":"int","type":"Property","Name":"ChatScrollLength","tags":[],"Class":"GameSettings"},{"ValueType":"bool","type":"Property","Name":"CollisionSoundEnabled","tags":["deprecated"],"Class":"GameSettings"},{"ValueType":"float","type":"Property","Name":"CollisionSoundVolume","tags":["deprecated"],"Class":"GameSettings"},{"ValueType":"bool","type":"Property","Name":"HardwareMouse","tags":[],"Class":"GameSettings"},{"ValueType":"int","type":"Property","Name":"MaxCollisionSounds","tags":["deprecated"],"Class":"GameSettings"},{"ValueType":"int","type":"Property","Name":"ReportAbuseChatHistory","tags":[],"Class":"GameSettings"},{"ValueType":"bool","type":"Property","Name":"SoftwareSound","tags":[],"Class":"GameSettings"},{"ValueType":"bool","type":"Property","Name":"SoundEnabled","tags":[],"Class":"GameSettings"},{"ValueType":"bool","type":"Property","Name":"VideoCaptureEnabled","tags":[],"Class":"GameSettings"},{"ValueType":"VideoQualitySettings","type":"Property","Name":"VideoQuality","tags":[],"Class":"GameSettings"},{"Arguments":[{"Name":"recording","Type":"bool"}],"Name":"VideoRecordingChangeRequest","tags":["RobloxScriptSecurity"],"Class":"GameSettings","type":"Event"},{"Superclass":"Instance","type":"Class","Name":"GamepadService","tags":[]},{"Superclass":"Instance","type":"Class","Name":"Geometry","tags":[]},{"Superclass":"Instance","type":"Class","Name":"GlobalDataStore","tags":[]},{"ReturnType":"Connection","Arguments":[{"Type":"string","Name":"key","Default":null},{"Type":"Function","Name":"callback","Default":null}],"Name":"OnUpdate","tags":[],"Class":"GlobalDataStore","type":"Function"},{"ReturnType":"Variant","Arguments":[{"Type":"string","Name":"key","Default":null}],"Name":"GetAsync","tags":[],"Class":"GlobalDataStore","type":"YieldFunction"},{"ReturnType":"Variant","Arguments":[{"Type":"string","Name":"key","Default":null},{"Type":"int","Name":"delta","Default":"1"}],"Name":"IncrementAsync","tags":[],"Class":"GlobalDataStore","type":"YieldFunction"},{"ReturnType":"void","Arguments":[{"Type":"string","Name":"key","Default":null},{"Type":"Variant","Name":"value","Default":null}],"Name":"SetAsync","tags":[],"Class":"GlobalDataStore","type":"YieldFunction"},{"ReturnType":"Tuple","Arguments":[{"Type":"string","Name":"key","Default":null},{"Type":"Function","Name":"transformFunction","Default":null}],"Name":"UpdateAsync","tags":[],"Class":"GlobalDataStore","type":"YieldFunction"},{"Superclass":"GlobalDataStore","type":"Class","Name":"OrderedDataStore","tags":[]},{"ReturnType":"Instance","Arguments":[{"Type":"bool","Name":"ascending","Default":null},{"Type":"int","Name":"pagesize","Default":null},{"Type":"Variant","Name":"minValue","Default":null},{"Type":"Variant","Name":"maxValue","Default":null}],"Name":"GetSortedAsync","tags":[],"Class":"OrderedDataStore","type":"YieldFunction"},{"Superclass":"Instance","type":"Class","Name":"GroupService","tags":["notCreatable"]},{"ReturnType":"Instance","Arguments":[{"Type":"int","Name":"groupId","Default":null}],"Name":"GetAlliesAsync","tags":[],"Class":"GroupService","type":"YieldFunction"},{"ReturnType":"Instance","Arguments":[{"Type":"int","Name":"groupId","Default":null}],"Name":"GetEnemiesAsync","tags":[],"Class":"GroupService","type":"YieldFunction"},{"ReturnType":"Variant","Arguments":[{"Type":"int","Name":"groupId","Default":null}],"Name":"GetGroupInfoAsync","tags":[],"Class":"GroupService","type":"YieldFunction"},{"ReturnType":"Array","Arguments":[{"Type":"int","Name":"userId","Default":null}],"Name":"GetGroupsAsync","tags":[],"Class":"GroupService","type":"YieldFunction"},{"Superclass":"Instance","type":"Class","Name":"GuiBase","tags":[]},{"Superclass":"GuiBase","type":"Class","Name":"GuiBase2d","tags":["notbrowsable"]},{"ValueType":"Vector2","type":"Property","Name":"AbsolutePosition","tags":["readonly"],"Class":"GuiBase2d"},{"ValueType":"Vector2","type":"Property","Name":"AbsoluteSize","tags":["readonly"],"Class":"GuiBase2d"},{"Superclass":"GuiBase2d","type":"Class","Name":"GuiObject","tags":["notbrowsable"]},{"ValueType":"bool","type":"Property","Name":"Active","tags":[],"Class":"GuiObject"},{"ValueType":"BrickColor","type":"Property","Name":"BackgroundColor","tags":["deprecated","hidden"],"Class":"GuiObject"},{"ValueType":"Color3","type":"Property","Name":"BackgroundColor3","tags":[],"Class":"GuiObject"},{"ValueType":"float","type":"Property","Name":"BackgroundTransparency","tags":[],"Class":"GuiObject"},{"ValueType":"BrickColor","type":"Property","Name":"BorderColor","tags":["deprecated","hidden"],"Class":"GuiObject"},{"ValueType":"Color3","type":"Property","Name":"BorderColor3","tags":[],"Class":"GuiObject"},{"ValueType":"int","type":"Property","Name":"BorderSizePixel","tags":[],"Class":"GuiObject"},{"ValueType":"bool","type":"Property","Name":"ClipsDescendants","tags":[],"Class":"GuiObject"},{"ValueType":"bool","type":"Property","Name":"Draggable","tags":[],"Class":"GuiObject"},{"ValueType":"Object","type":"Property","Name":"NextSelectionDown","tags":[],"Class":"GuiObject"},{"ValueType":"Object","type":"Property","Name":"NextSelectionLeft","tags":[],"Class":"GuiObject"},{"ValueType":"Object","type":"Property","Name":"NextSelectionRight","tags":[],"Class":"GuiObject"},{"ValueType":"Object","type":"Property","Name":"NextSelectionUp","tags":[],"Class":"GuiObject"},{"ValueType":"UDim2","type":"Property","Name":"Position","tags":[],"Class":"GuiObject"},{"ValueType":"float","type":"Property","Name":"Rotation","tags":[],"Class":"GuiObject"},{"ValueType":"bool","type":"Property","Name":"Selectable","tags":[],"Class":"GuiObject"},{"ValueType":"Object","type":"Property","Name":"SelectionImageObject","tags":[],"Class":"GuiObject"},{"ValueType":"UDim2","type":"Property","Name":"Size","tags":[],"Class":"GuiObject"},{"ValueType":"SizeConstraint","type":"Property","Name":"SizeConstraint","tags":[],"Class":"GuiObject"},{"ValueType":"float","type":"Property","Name":"Transparency","tags":["hidden"],"Class":"GuiObject"},{"ValueType":"bool","type":"Property","Name":"Visible","tags":[],"Class":"GuiObject"},{"ValueType":"int","type":"Property","Name":"ZIndex","tags":[],"Class":"GuiObject"},{"ReturnType":"bool","Arguments":[{"Type":"UDim2","Name":"endPosition","Default":null},{"Type":"EasingDirection","Name":"easingDirection","Default":"Out"},{"Type":"EasingStyle","Name":"easingStyle","Default":"Quad"},{"Type":"float","Name":"time","Default":"1"},{"Type":"bool","Name":"override","Default":"false"},{"Type":"Function","Name":"callback","Default":"nil"}],"Name":"Twee
5800DexExplorer2.0.txt
5801Displaying DexExplorer2.0.txt.