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