View difference between Paste ID: RqS9NGhd and VaXTmLjh
SHOW: | | - or go back to the newest paste.
1
TextProperties = {"ClassName", "Name", "Value", "Text", "Reflectance", "Transparency", "Heat", "TeamName", "WalkSpeed", "Health", "MaxHealth", "Size", "Position", "AccountAge", "RobloxLocked", "TeamColor", "userId", "Brightness", "Ambient", "TimeOfDay", "FieldOfView", "CameraType", "LinkedSource"}
2
BoolProperties = {"Anchored", "CanCollide", "Disabled", "Jump", "Sit", "Visible", "Enabled", "Locked", "FilteringEnabled", "StreamingEnabled", "GlobalShadows"}
3
BrickColorProperties = {"BrickColor", "Color", "TeamColor", "Texture", "Value"}
4
s = Instance.new("ScreenGui", game.CoreGui)
5
pgr = Instance.new("TextButton")
6
pgr.Parent = s
7
pgr.Size = UDim2.new(0,100,0,40)
8
pgr.Position = UDim2.new(0,30,0,440)
9
pgr.Text="Explorer"
10
pgr.BackgroundTransparency = 0.3
11
pgr.TextColor = BrickColor.new("White")
12
pgr.BackgroundColor = BrickColor.new("Really Black")
13
pgr.BorderColor = BrickColor.new("Black")
14
pgr.Font = "ArialBold"
15
pgr.FontSize = "Size14"
16
pgr.TextStrokeColor3 = Color3.new(0/0,0/0,0/0)
17
pgr.TextStrokeTransparency = 0.3
18
pgr.BorderSizePixel = 1
19
pgr.BorderColor = BrickColor.new("White")
20
21
if game.CoreGui:findFirstChild("Explorer") then 
22
    game.CoreGui:findFirstChild("Explorer"):Remove() 
23
end
24
25
local Cloned
26
local Deleted
27
local DeleteParent
28
local Player
29
local Search
30
local ScriptSearch
31
local Gui
32
local Cloned = nil
33
local Deleted = nil
34
local DeleteParent = nil
35
local Current = 0
36
local CurrentOption = 0
37
38
function Clear()
39
    if Gui then 
40
        Gui:Remove() 
41
    end
42
    Current = 0
43
    CurrentOption = 0
44
end
45
46
function AddButton(N, Function, Color, Copy)
47
    if not N then 
48
        error("RenderButton - No Name Specified")
49
    end
50
    if not Function then 
51
        error("RenderButton - No Function Specified") 
52
    end
53
    if not Color then 
54
        Color = Color3.new(1, 1, 1) 
55
    end
56
    if Copy == nil then 
57
        Copy = true 
58
    end
59
    P = Instance.new("TextButton")
60
    if Copy then
61
        P.Size = UDim2.new(0, 110, 0, 20)
62
    else
63
        P.Size = UDim2.new(0, 130, 0, 20)
64
    end
65
    P.Text = N.Name
66
    P.Name = N.Name
67
    P.Parent = Gui
68
    P.BackgroundColor3 = Color
69
    P.TextColor3 = Color3.new(0, 0, 0)
70
    P.BackgroundTransparency = 0.5
71
    P.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300, 0, 50+(20*((Current%30)-1)))
72
    P.MouseButton1Click:connect(function() 
73
        Function(P) 
74
    end)
75
    D = Instance.new("TextButton")
76
    D.Size = UDim2.new(0, 20, 0, 20)
77
    D.Text = "X"
78
    D.Name = N.Name
79
    D.Parent = Gui
80
    D.BackgroundColor3 = Color3.new(1, 0, 0)
81
    D.TextColor3 = Color3.new(0, 0, 0)
82
    D.BackgroundTransparency = 0.5
83
    D.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+130, 0, 50+(20*((Current%30)-1)))
84
    D.MouseButton1Click:connect(function()
85
        Deleted = N
86
        DeleteParent = N.Parent
87
        N.Parent = nil
88
        Clear()
89
        Search(DeleteParent)
90
    end)
91
    if Copy then
92
        C = Instance.new("TextButton")
93
        C.Size = UDim2.new(0, 20, 0, 20)
94
        C.Text = "C"
95
        C.Name = N.Name
96
        C.Parent = Gui
97
        C.BackgroundColor3 = Color3.new(0, 1, 0.5)
98
        C.TextColor3 = Color3.new(0, 0, 0)
99
        C.BackgroundTransparency = 0.5
100
        C.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+110, 0, 50+(20*((Current%30)-1)))
101
        C.MouseButton1Click:connect(function()
102
            Cloned = N
103
            Clear()
104
            Search(N.Parent)
105
        end)
106
    end
107
    Current = Current + 1
108
    return P
109
end
110
    
111
function AddOption(N, Function, Color, Text)
112
    if not N then 
113
        error("RenderButton - No Name Specified") 
114
    end
115
    if not Color then 
116
        Color = Color3.new(1, 1, 1) 
117
    end
118
    if Text == nil then 
119
        Text = false 
120
    end
121
    if Text then
122
        P = Instance.new("TextBox")
123
    else
124
        P = Instance.new("TextButton")
125
    end
126
    P.Text = N
127
    P.Name = N
128
    P.Parent = Gui
129
    P.BackgroundColor3 = Color
130
    P.TextColor3 = Color3.new(0, 0, 0)
131
    P.BackgroundTransparency = 0.5
132
    P.Size = UDim2.new(0, 150, 0, 20)
133
    P.Position = UDim2.new(0, ((math.modf(CurrentOption/30))*150)+150, 0, 50+(20*((CurrentOption%30)-1)))
134
    if not Text and Function then
135
        P.MouseButton1Click:connect(function() Function(P) end)
136
    end
137
    CurrentOption = CurrentOption + 1
138
    return P
139
end
140
141
function AddTextOption(Obj, Prop)
142
    local Ob = Obj
143
    local Pro = Prop
144
    if type(Ob[Pro]) == "number" or type(Ob[Pro]) == "string" then
145
        CurrentOption = CurrentOption + 1
146
        local T = AddOption(Ob[Pro], nil, Color3.new(0.1, 0.4, 0.1), true)
147
        CurrentOption = CurrentOption - 2
148
        local O = AddOption("Change "..Pro..":", function() Ob[Pro] = T.Text end, Color3.new(0.1, 0.8, 0.1), false)
149
        CurrentOption = CurrentOption + 1
150
    end
151
end
152
153
function AddBrickColorOption(Obj, Prop)
154
    local Ob = Obj
155
    local Pro = Prop
156
    if BrickColor.new(tostring(Ob[Pro])) == Ob[Pro] then
157
        CurrentOption = CurrentOption + 1
158
        local T = AddOption(tostring(Ob[Pro]), nil, Color3.new(0.1, 0.4, 0.1), true)
159
        CurrentOption = CurrentOption - 2
160
        local O = AddOption("Change "..Pro..":", function() Ob[Pro] = BrickColor.new(T.Text) end, Color3.new(0.1, 0.8, 0.1), false)
161
        CurrentOption = CurrentOption + 1
162
    end
163
end
164
165
function AddBoolOption(Obj, Prop)
166
    local Ob = Obj
167
    local Pro = Prop
168
    if type(Ob[Pro]) == "boolean" then
169
        local O = AddOption(Pro..": "..tostring(Ob[Pro]), nil, Color3.new(0.1, 0.8, 0.1), false)
170
        O.MouseButton1Click:connect(function()
171
            if Ob[Pro] then
172
                Ob[Pro] = false
173
                O.Text = Pro..": false"
174
            else
175
                Ob[Pro] = true
176
                O.Text = Pro..": true"
177
            end
178
        end)
179
    end
180
end
181
182
function TestProperty(Obj, Property)
183
    Success = pcall(function() 
184
        if Obj[Property] then 
185
            return 
186
        end 
187
    end)
188
    return Success
189
end
190
191
function LoadOptions(Object)
192
    for Num, Prop in pairs(TextProperties) do
193
        if TestProperty(Object, Prop) then
194
            AddTextOption(Object, Prop)
195
        end
196
    end
197
    for Num, Prop in pairs(BoolProperties) do
198
        if TestProperty(Object, Prop) then
199
            AddBoolOption(Object, Prop)
200
        end
201
    end
202
    for Num, Prop in pairs(BrickColorProperties) do
203
        if TestProperty(Object, Prop) then
204
            AddBrickColorOption(Object, Prop)
205
        end
206
    end
207
end
208
209
function Search(Object)
210
    Gui = Instance.new("ScreenGui")
211
    Gui.Parent = game.CoreGui
212
    Gui.Name = "Explorer"
213
    if Object ~= game then
214
        AddOption("Back", function() 
215
            Clear(); 
216
            Search(Object.Parent) 
217
        end, Color3.new(0.5, 1, 1), false)
218
    end
219
    AddOption("Reload", function() Clear(); Search(Object); end, Color3.new(0.2, 1, 0.2), false)
220
    if Cloned then
221
        AddOption("Paste", function() Cloned:Clone().Parent = Object; Clear(); Search(Object); end, Color3.new(0.5, 1, 1), false)
222
    end
223
    if Deleted then
224
        AddOption("Undo", function() Deleted.Parent = DeleteParent; Deleted = nil; DeletedParent = nil; Clear(); Search(Object); end, Color3.new(1, 0.6, 0.1), false)
225
    end
226
    if Object:IsA("Player") then
227
        AddOption("Goto Character", function() Clear(); if Object.Character then Search(Object.Character); end end, Color3.new(1, 1, 1), false)
228
    end
229
    if Object:IsA("LocalScript") then
230
        AddOption("EditScript", function() Clear(); ScriptSearch(Object); end, Color3.new(1, 1, 1), false)
231
    end
232
    if Object:IsA("Terrain") then
233
        AddOption("Clear", function() Object:Clear(); end, Color3.new(1, 1, 1), false)
234
    end
235
    LoadOptions(Object)
236
    AddOption("Close", Clear, Color3.new(1, 0.2, 0), false)
237
    if not Object:IsA("Workspace") or not Object:IsA("Player") then
238
        for Num, Obj in pairs(Object:GetChildren()) do
239
            --if not Obj:IsA("BasePart") or not Object.Parent == game.Workspace then
240
            if true then
241
                if Obj:IsA("LocalScript") then
242
                    AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 0, 0), true)
243
                elseif Obj:IsA("Script") or Obj:IsA("StarterScript") or Obj:IsA("CoreScript") then
244
                    AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(0.5, 0.5, 0.8), true)
245
                elseif Obj.Parent == game then
246
                    AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), false)
247
                else
248
                    AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), true)
249
                end
250
            end
251
        end
252
    end
253
    function MoveUp(Place, Amount)
254
        for i,v in pairs(Place:GetChildren()) do
255
            if v:IsA("TextLabel") or v:IsA("TextBox") then
256
                v.Position = v.Position + UDim2.new(0,0,0,-Amount)
257
            end
258
        end
259
    end
260
    function MoveDown(Place, Amount)
261
        for i,v in pairs(Place:GetChildren()) do
262
            if v:IsA("TextLabel") or v:IsA("TextBox") then
263
                v.Position = v.Position + UDim2.new(0,0,0,Amount)
264
            end
265
        end
266
    end
267
    i=0
268
    function ScriptSearch(S)
269
        Script2 = S
270
        Script = Script2.Source
271
        Table = {}
272
        Enabled = true
273
        Gui = Instance.new("ScreenGui")
274
        Gui.Parent = game.CoreGui
275
        Gui.Name = "Explorer"
276
        while Enabled do
277
            Start, End = string.find(Script, '\n')
278
            print(Start, End)
279
            if Start and End then
280
                table.insert(Table, string.sub(Script, 1, End))
281
                New = string.sub(Script, End+1, string.len(Script))
282
                Script = New
283
            else
284
                Enabled = false
285
                table.insert(Table, string.sub(Script, 1, End))
286
                print("Finished")
287
            end
288
        end
289
        P = Instance.new("TextLabel")
290
        P.Size = UDim2.new(0, 500, 0, 20)
291
        P.Text = Script2.Name
292
        P.Name = "Script Line"
293
        P.Parent = Gui
294
        P.BackgroundColor3 = Color3.new(1, 1, 1)
295
        P.TextColor3 = Color3.new(0, 0, 0)
296
        P.BackgroundTransparency = 0.5
297
        P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
298
        P.TextXAlignment = "Left"
299
        i=i+1
300
        New = {}
301
        for I,Val in pairs(Table) do
302
            print(Val)
303
            P = Instance.new("TextBox")
304
            P.ClearTextOnFocus = false
305
            P.Size = UDim2.new(0, 500, 0, 20)
306
            P.Text = Val
307
            P.Name = "Script Line"
308
            P.Parent = Gui
309
            P.BackgroundColor3 = Color3.new(1, 1, 1)
310
            P.TextColor3 = Color3.new(0, 0, 0)
311
            P.BackgroundTransparency = 0.5
312
            P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
313
            P.TextXAlignment = "Left"
314
            table.insert(New, P)
315
            i=i+1
316
        end
317
        i=1
318
        P = Instance.new("TextButton")
319
        P.Size = UDim2.new(0, 20, 0, 20)
320
        P.Text = "^"
321
        P.Name = "Scroll"
322
        P.Parent = Gui
323
        P.BackgroundColor3 = Color3.new(1, 1, 1)
324
        P.TextColor3 = Color3.new(0, 0, 0)
325
        P.BackgroundTransparency = 0.5
326
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
327
        P.MouseButton1Click:connect(function() 
328
            MoveUp(Gui, -20) 
329
        end)
330
        i=i+1
331
        P = Instance.new("TextButton")
332
        P.Size = UDim2.new(0, 20, 0, 20)
333
        P.Text = "v"
334
        P.Name = "Scroll"
335
        P.Parent = Gui
336
        P.BackgroundColor3 = Color3.new(1, 1, 1)
337
        P.TextColor3 = Color3.new(0, 0, 0)
338
        P.BackgroundTransparency = 0.5
339
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
340
        P.MouseButton1Click:connect(function() 
341
            MoveDown(Gui, -20) 
342
        end)
343
        i=i+1
344
        P = Instance.new("TextButton")
345
        P.Size = UDim2.new(0, 20, 0, 20)
346
        P.Text = "^^"
347
        P.Name = "Scroll"
348
        P.Parent = Gui
349
        P.BackgroundColor3 = Color3.new(1, 1, 1)
350
        P.TextColor3 = Color3.new(0, 0, 0)
351
        P.BackgroundTransparency = 0.5
352
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
353
        P.MouseButton1Click:connect(function() 
354
            MoveUp(Gui, -200) 
355
        end)
356
        i=i+1
357
        P = Instance.new("TextButton")
358
        P.Size = UDim2.new(0, 20, 0, 20)
359
        P.Text = "vv"
360
        P.Name = "Scroll"
361
        P.Parent = Gui
362
        P.BackgroundColor3 = Color3.new(1, 1, 1)
363
        P.TextColor3 = Color3.new(0, 0, 0)
364
        P.BackgroundTransparency = 0.5
365
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
366
        P.MouseButton1Click:connect(function() 
367
            MoveDown(Gui, -200) 
368
        end)
369
        i=i+1
370
        P = Instance.new("TextButton")
371
        P.Size = UDim2.new(0, 20, 0, 20)
372
        P.Text = "S"
373
        P.Name = "Save"
374
        P.Parent = Gui
375
        P.BackgroundColor3 = Color3.new(0, 1, 0)
376
        P.TextColor3 = Color3.new(0, 0, 0)
377
        P.BackgroundTransparency = 0.5
378
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
379
        P.MouseButton1Click:connect(function()
380
            StringS = ""
381
            for Num, Obj in pairs(New) do
382
                StringS = StringS..Obj.Text..'\n'
383
            end
384
            S.Source = StringS
385
            S.Disabled = true
386
            S.Disabled = false
387
        end)
388
        i=i+1
389
        P = Instance.new("TextButton")
390
        P.Size = UDim2.new(0, 20, 0, 20)
391
        P.Text = "x"
392
        P.Name = "Back"
393
        P.Parent = Gui
394
        P.BackgroundColor3 = Color3.new(1, 0.2, 0)
395
        P.TextColor3 = Color3.new(0, 0, 0)
396
        P.BackgroundTransparency = 0.5
397
        P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
398
        P.MouseButton1Click:connect(function()
399
            Clear()
400
            i=0
401
            Search(S)
402
        end)
403
        i=i+1
404
    end
405
end
406
407
pgr.MouseButton1Click:connect(function()
408
    Clear()
409
    Search(game)
410
end)