Explorer
Explorer
if game.Players.LocalPlayer.PlayerGui:findFirstChild("Explorer") then
game.Players.LocalPlayer.PlayerGui:findFirstChild("Explorer"):Remove()
end
Banned = {}
function isBanned()
for i,v in pairs(game.Players:GetPlayers()) do
if v.Name == Banned then
v:Destroy();
else
print("Player: "..v.Name.." has passed the test of banishments.");
end
end
end
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 UnanchorObject(Objects)
local function Recurse(Base)
for _, Object in pairs(Base:GetChildren()) do
if _G.TestProperty(Object, "Anchored") then
Object.Anchored = not Object.Anchored
end
Recurse(Object)
end
end
Recurse(Objects)
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 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 AddForceField(Player)
Instance.new("ForceField", Player.Character)
end
function Killp(Player)
Player.Character.Humanoid.Health=0
end
function AddExplode(Player)
Instance.new("Explosion", Player.Character)
end
function AddSparkles(Player)
Instance.new("Sparkles", Player.Character)
end
function FreezeParts(b)
if (b.className == "Part") then
b.Anchored=true;
end
end
function TPToObject(Object1)
local localplr = game.Players.LocalPlayer.Character.Torso
localplr.Position = Object1.Position
end
function Search(Object)
Gui = Instance.new("ScreenGui")
Gui.Parent = game.Players.LocalPlayer.PlayerGui
Gui.Name = "Explorer"
if Object ~= game then
AddOption("Back", function()
Clear();
Search(Object.Parent)
end, Color3.new(0.5, 1, 1), false)
end
if Object:IsA("Sound") then
AddOption("Copy ID", function()
CopyString(tostring(Object.SoundId):sub(14)); warn("Copied."); Clear();
Search(Object); end, Color3.new(1, 0.2, 0), false)
AddOption("Play", function() Object:Play(); Clear(); Search(Object); end,
Color3.new(0, 0, 1), false)
AddOption("Stop", function() Object:Stop(); Clear(); Search(Object); end,
Color3.new(1, 1, 0), false)
end
if Object:IsA("Workspace") then
AddOption("BlackHole", function() local p= game.Players:GetChildren() for
i= 1, #p do if p[i] ~= "LocalPlayer" then b = Instance.new("BodyPosition")
b.Parent = p[i].Character.Torso b.maxForce =
Vector3.new(6000000,60000000,60000000) b.position = Vector3.new(100,10,0)end end
end, Color3.new(1, 0.6, 0.1), false)
end
if Object:IsA("IntValue") or Object:IsA("StringValue") or
Object:IsA("NumberValue") then
AddOption("Copy Value", function() CopyString(tostring(Object.Value));
warn("Copied."); Clear(); Search(Object); end, Color3.new(1, 0.2, 0), false)
end
if Object:IsA("TextLabel") or Object:IsA("TextBox") or Object:IsA("Message")
then
AddOption("Copy Value", function() CopyString(tostring(Object.Text));
warn("Copied."); Clear(); Search(Object); end, Color3.new(1, 0.2, 0), false)
end
AddOption("Get Path", function() CopyString(tostring("game." ..
Object:GetFullName())) Clear(); Search(Object) end, Color3.new(0.5, 1, 1), false)
if Object ~= game then
AddOption("Unanchor Children", function() UnanchorObject(Object); Clear();
Search(Object); end, Color3.new(1, 0.2, 0), false)
AddOption("ClearAllChildren", function() Object:ClearAllChildren();
Clear(); Search(Object); end, Color3.new(1, 0.6, 0.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("Goto Character", function() Clear(); if Object.Character then
Search(Object.Character); end end, Color3.new(1, 1, 1), false)
AddOption("Kill", function() Killp(Object) end, Color3.new(1,0.6,0.1),
false)
AddOption("ForceField", function() AddForceField(Object); end,
Color3.new(1, 0.6, 0.1), false)
AddOption("Freeze", function() FreezeParts(Object.Character.Torso); end,
Color3.new(1, 0.6, 0.1), false)
AddOption("Unequip Tools", function()
Object.Character.Humanoid:UnequipTools() end, Color3.new(1, 0.6, 0.1), false)
AddOption("Ban", function() table.insert(Banned, Object.Name); end,
Color3.new(1,0.6,0.1), false)
--AddOption("Explode", function() AddExplode(Object); end, Color3.new(1,
0.6, 0.1), false)
end
if Object:IsA("Lighting") then
AddOption("Night", function() Object.TimeOfDay="24:24:24" end,
Color3.new(1.,0.6,0.1), false)
AddOption("Day", function() Object.TimeOfDay="12:12:12" end,
Color3.new(1.,0.6,0.1), false)
end
if Object:IsA("LocalScript") then
AddOption("EditScript", function() Clear(); ScriptSearch(Object); 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
if Object:IsA("CornerWedgePart") or Object:IsA("FormFactorPart") or
Object:IsA("Part") or Object:IsA("UnionOperation") or Object:IsA("BasePart") or
Object:IsA("ParallelRampPart") or Object:IsA("PrismPart") or
Object:IsA("PyramidPart") or Object:IsA("RightAngleRampPart") or
Object:IsA("TrussPart") or Object:IsA("VehicleSeat") then
AddOption("Teleport To Part", function() TPToObject(Object); Clear();
Search(Object); end, Color3.new(1, 0.2, 0), 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 not Obj:IsA("BasePart") or not Object.Parent == game.Workspace
then
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
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
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
function ScriptSearch(S)
Script2 = S
Script = decompile(Script2)
Table = {}
Enabled = true
Gui = Instance.new("ScreenGui")
Gui.Parent = game.Players.LocalPlayer.PlayerGui
Gui.Name = "Explorer"
while Enabled do
Start, End = string.find(Script, '\n')
print(Start, End)
if Start and End then
table.insert(Table, string.sub(Script, 1, End))
New = string.sub(Script, End+1, string.len(Script))
Script = New
else
Enabled = false
table.insert(Table, string.sub(Script, 1, End))
print("Finished")
end
end
P = Instance.new("TextLabel")
P.Size = UDim2.new(0, 500, 0, 20)
P.Text = Script2.Name
P.Name = "Script Line"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
P.TextXAlignment = "Left"
i=i+1
New = {}
for I,Val in pairs(Table) do
print(Val)
P = Instance.new("TextBox")
P.ClearTextOnFocus = false
P.Size = UDim2.new(0, 500, 0, 20)
P.Text = Val
P.Name = "Script Line"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -250, 0, 150+(20*(i-1)))
P.TextXAlignment = "Left"
table.insert(New, P)
i=i+1
end
i=1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "^"
P.Name = "Scroll"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
MoveUp(Gui, -20)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "v"
P.Name = "Scroll"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
MoveDown(Gui, -20)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "^^"
P.Name = "Scroll"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
MoveUp(Gui, -200)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "vv"
P.Name = "Scroll"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 1, 1)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
MoveDown(Gui, -200)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "S"
P.Name = "Save"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(0, 1, 0)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
StringS = ""
for Num, Obj in pairs(New) do
StringS = StringS..Obj.Text..'\n'
end
S.Source = StringS
S.Disabled = true
S.Disabled = false
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "C"
P.Name = "Copy"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 0.2, 0)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
StringS = ""
for Num, Obj in pairs(New) do
StringS = StringS..Obj.Text..'\n'
end
CopyString(StringS)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "x"
P.Name = "Back"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 0.2, 0)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
Clear()
i=0
Search(S)
end)
i=i+1
P = Instance.new("TextButton")
P.Size = UDim2.new(0, 20, 0, 20)
P.Text = "CB"
P.Name = "Back"
P.Parent = Gui
P.BackgroundColor3 = Color3.new(1, 0.2, 0)
P.TextColor3 = Color3.new(0, 0, 0)
P.BackgroundTransparency = 0.5
P.Position = UDim2.new(0.5, -270, 0, 150+(20*(i-1)))
P.MouseButton1Click:connect(function()
CopyString(decompile(Script2,true))
end)
i=i+1
end
end
pgr.MouseButton1Click:connect(function()
Clear()
Search(game)
end)