if game.CoreGui:findFirstChild("Explorer") then game.CoreGui:findFirstChild("Explorer"):remove(); end local TextProperties = {"BorderSizePixel", "BackgroundTransparency", "Gravity", "ClassName", "Name", "Value", "Text", "Reflectance", "Transparency", "Heat", "TeamName", "WalkSpeed", "Health", "MaxHealth", "Size", "Position", "AccountAge", "RobloxLocked", "TeamColor", "userId", "Brightness", "Ambient", "TimeOfDay", "FieldOfView", "CameraType", "LinkedSource"} local BoolProperties = {"Anchored", "CanCollide", "Disabled", "Jump", "Sit", "Visible", "Enabled", "Locked", "FilteringEnabled", "StreamingEnabled", "GlobalShadows"} local BrickColorProperties = {"BrickColor", "BackgroundColor3", "BorderColor3", "Color", "TeamColor", "Texture", "Value"} local ScreenGui = Instance.new("ScreenGui", game.CoreGui) ScreenGui.Name = 'Explorer' local Button = Instance.new("TextButton") Button.Parent = ScreenGui Button.Size = UDim2.new(0,100,0,20) Button.Position = UDim2.new(0,30,0,440) Button.Text = 'Open Explorer' Button.BackgroundTransparency = 0.3 Button.TextColor3 = Color3.new(255/255,255/255,255/255) Button.BackgroundColor3 = Color3.new(85/255,170/255,255/255) Button.Font = Enum.Font.SciFi Button.FontSize = Enum.FontSize.Size14; Button.BorderSizePixel = 0 local Cloned local Deleted local DeleteParent local Player local Search local ScriptSearch local Gui local Cloned = nil local Deleted = nil local DeleteParent = nil local Current = 0 local CurrentOption = 0 function Clear() if Gui then Gui:Remove() end Current = 0 CurrentOption = 0 end function AddButton(N, Function, Color, Copy) if not N then error("RenderButton - No Name Specified") end if not Function then error("RenderButton - No Function Specified") end if not Color then Color = Color3.new(1, 1, 1) end if Copy == nil then Copy = true end P = Instance.new("TextButton") if Copy then P.Size = UDim2.new(0, 110, 0, 20) else P.Size = UDim2.new(0, 130, 0, 20) end P.Text = N.Name P.Name = N.Name P.Parent = Gui P.BackgroundColor3 = Color3.new(85/255,170/255,255/255) P.BorderColor3 = Color3.new(85/255,170/255,255/255) P.BorderSizePixel = 0 P.TextColor3 = Color3.new(1,1,1) P.Font = Enum.Font.SciFi P.FontSize = Enum.FontSize.Size14; P.BackgroundTransparency = 0.5 P.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300, 0, 50+(20*((Current%30)-1))) P.MouseButton1Click:connect(function() Function(P) end) local D = Instance.new("TextButton") D.Size = UDim2.new(0, 20, 0, 20) D.Text = "X" D.Name = N.Name D.Parent = Gui D.BackgroundColor3 = Color3.new(1,0,0) D.BorderColor3 = Color3.new(1,0,0) D.BorderSizePixel = 0 D.TextColor3 = Color3.new(1,1,1) D.Font = Enum.Font.SciFi D.FontSize = Enum.FontSize.Size14; D.BackgroundTransparency = 0.5 D.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+130, 0, 50+(20*((Current%30)-1))) D.MouseButton1Click:connect(function() Deleted = N DeleteParent = N.Parent N.Parent = nil Clear() Search(DeleteParent) end) if Copy then local C = Instance.new("TextButton") C.Size = UDim2.new(0, 20, 0, 20) C.Text = "C" C.Name = N.Name C.Parent = Gui C.BackgroundColor3 = Color3.new(85/255,170/255,255/255) C.BorderColor3 = Color3.new(85/255,170/255,255/255) C.BorderSizePixel = 0 C.TextColor3 = Color3.new(1,1,1) C.Font = Enum.Font.SciFi C.FontSize = Enum.FontSize.Size14; C.BackgroundTransparency = 0.5 C.Position = UDim2.new(0, ((math.modf(Current/30))*150)+300+110, 0, 50+(20*((Current%30)-1))) C.MouseButton1Click:connect(function() Cloned = N Clear() Search(N.Parent) end) end Current = Current + 1 return P end function AddOption(N, Function, Color, Text) Color = nil; if not N then N = "No Name Specified"; end if Text == nil then Text = false end if Text then P = Instance.new("TextBox") else P = Instance.new("TextButton") end P.Text = N P.Name = N P.Parent = Gui P.BackgroundColor3 = Color3.new(85/255,170/255,255/255) P.BorderColor3 = Color3.new(85/255,170/255,255/255) P.TextColor3 = Color3.new(1,1,1) P.BorderSizePixel = 0 P.Font = Enum.Font.SciFi P.FontSize = Enum.FontSize.Size14; P.BackgroundTransparency = 0.5 P.Size = UDim2.new(0, 150, 0, 20) P.Position = UDim2.new(0, ((math.modf(CurrentOption/30))*150)+150, 0, 50+(20*((CurrentOption%30)-1))) if not Text and Function then P.MouseButton1Click:connect(function() Function(P) end) end CurrentOption = CurrentOption + 1 return P end function AddTextOption(Obj, Prop) local Ob = Obj local Pro = Prop if type(Ob[Pro]) == "number" or type(Ob[Pro]) == "string" then CurrentOption = CurrentOption + 1 local T = AddOption(Ob[Pro], nil, Color3.new(0.1, 0.4, 0.1), true) CurrentOption = CurrentOption - 2 local O = AddOption("Change "..Pro..":", function() Ob[Pro] = T.Text end, Color3.new(0.1, 0.8, 0.1), false) CurrentOption = CurrentOption + 1 end end function AddBrickColorOption(Obj, Prop) local Ob = Obj local Pro = Prop if BrickColor.new(tostring(Ob[Pro])) == Ob[Pro] then CurrentOption = CurrentOption + 1 local T = AddOption(tostring(Ob[Pro]), nil, Color3.new(0.1, 0.4, 0.1), true) CurrentOption = CurrentOption - 2 local O = AddOption("Change "..Pro..":", function() Ob[Pro] = BrickColor.new(T.Text) end, Color3.new(0.1, 0.8, 0.1), false) CurrentOption = CurrentOption + 1 end end function AddBoolOption(Obj, Prop) local Ob = Obj local Pro = Prop if type(Ob[Pro]) == "boolean" then local O = AddOption(Pro..": "..tostring(Ob[Pro]), nil, Color3.new(0.1, 0.8, 0.1), false) O.MouseButton1Click:connect(function() if Ob[Pro] then Ob[Pro] = false O.Text = Pro..": false" else Ob[Pro] = true O.Text = Pro..": true" end end) end end function TestProperty(Obj, Property) Success = pcall(function() if Obj[Property] then return end end) return Success end function LoadOptions(Object) for Num, Prop in pairs(TextProperties) do if TestProperty(Object, Prop) then AddTextOption(Object, Prop) end end for Num, Prop in pairs(BoolProperties) do if TestProperty(Object, Prop) then AddBoolOption(Object, Prop) end end for Num, Prop in pairs(BrickColorProperties) do if TestProperty(Object, Prop) then AddBrickColorOption(Object, Prop) end end end function Search(Object) Gui = Instance.new("ScreenGui") Gui.Parent = game.CoreGui Gui.Name = "Explorer" if Object ~= game then AddOption("Back", function() Clear(); Search(Object.Parent) end, Color3.new(0.5, 1, 1), false) end AddOption("Reload", function() Clear(); Search(Object); end, Color3.new(0.2, 1, 0.2), false) if Cloned then AddOption("Paste", function() Cloned:Clone().Parent = Object; Clear(); Search(Object); end, Color3.new(0.5, 1, 1), false) end if Deleted then AddOption("Undo", function() Deleted.Parent = DeleteParent; Deleted = nil; DeletedParent = nil; Clear(); Search(Object); end, Color3.new(1, 0.6, 0.1), false) end if Object:IsA("Player") then AddOption("Kill Player", function() if Object.Character:FindFirstChild('Humanoid') then Object.Character.Humanoid.Health = 0; end end) AddOption("Goto Character", function() Clear(); if Object.Character then Search(Object.Character); end end, Color3.new(1, 1, 1), false) end if Object:IsA("Terrain") then AddOption("Clear", function() Object:Clear(); end, Color3.new(1, 1, 1), false) end LoadOptions(Object) AddOption("Close", Clear, Color3.new(1, 0.2, 0), false) if not Object:IsA("Workspace") or not Object:IsA("Player") then for Num, Obj in pairs(Object:GetChildren()) do if true then if Obj:IsA("LocalScript") then AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 0, 0), true) elseif Obj:IsA("Script") or Obj:IsA("StarterScript") or Obj:IsA("CoreScript") then AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(0.5, 0.5, 0.8), true) elseif Obj.Parent == game then AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), false) else AddButton(Obj, function() Clear(); Search(Obj); end, Color3.new(1, 1, 1), true) end end end end local function MoveUp(Place, Amount) for i,v in pairs(Place:GetChildren()) do if v:IsA("TextLabel") or v:IsA("TextBox") then v.Position = v.Position + UDim2.new(0,0,0,-Amount) end end end local function MoveDown(Place, Amount) for i,v in pairs(Place:GetChildren()) do if v:IsA("TextLabel") or v:IsA("TextBox") then v.Position = v.Position + UDim2.new(0,0,0,Amount) end end end i=0; end Button.MouseButton1Click:connect(function() Clear() Search(game) end)