local s=1 local I=script.Parent local c=game:GetService("\085\115\101\114\073\110\112\117\116\083\101\114\118\105\099\101")local M=false local e=false local p local U local v={}table.insert(v,game:GetService("\087\111\114\107\115\112\097\099\101"))table.insert(v,game:GetService("\080\108\097\121\101\114\115"))table.insert(v,game:GetService("\076\105\103\104\116\105\110\103"))table.insert(v,game:GetService("\082\101\112\108\105\099\097\116\101\100\070\105\114\115\116"))table.insert(v,game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101"))pcall(function()table.insert(v,game:GetService("\067\111\114\101\071\117\105"))end)table.insert(v,game:GetService("\083\116\097\114\116\101\114\071\117\105"))table.insert(v,game:GetService("\083\116\097\114\116\101\114\080\097\099\107"))table.insert(v,game:GetService("\083\116\097\114\116\101\114\080\108\097\121\101\114"))table.insert(v,game:GetService("\083\111\117\110\100\083\101\114\118\105\099\101"))table.insert(v,game:GetService("\067\104\097\116"))table.insert(v,game:GetService("\076\111\099\097\108\105\122\097\116\105\111\110\083\101\114\118\105\099\101"))table.insert(v,game:GetService("\084\101\115\116\083\101\114\118\105\099\101"))local B={}B[game:GetService("\087\111\114\107\115\112\097\099\101")]=true B[game:GetService("\080\108\097\121\101\114\115")]=true B[game:GetService("\076\105\103\104\116\105\110\103")]=true B[game:GetService("\082\101\112\108\105\099\097\116\101\100\070\105\114\115\116")]=true B[game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")]=true pcall(function()B[game:GetService("\067\111\114\101\071\117\105")]=true end)B[game:GetService("\083\116\097\114\116\101\114\071\117\105")]=true B[game:GetService("\083\116\097\114\116\101\114\080\097\099\107")]=true B[game:GetService("\083\116\097\114\116\101\114\080\108\097\121\101\114")]=true B[game:GetService("\083\111\117\110\100\083\101\114\118\105\099\101")]=true B[game:GetService("\067\104\097\116")]=true B[game:GetService("\076\111\099\097\108\105\122\097\116\105\111\110\083\101\114\118\105\099\101")]=true B[game:GetService("\084\101\115\116\083\101\114\118\105\099\101")]=true local P=true local i=Instance_new("\070\111\108\100\101\114")i.Name="\079\117\116\112\117\116"local b=Instance_new("\083\099\114\101\101\110\071\117\105",i)b.Name="\068\101\120 \079\117\116\112\117\116"local N=Instance_new("\070\111\108\100\101\114")local J=Instance_new("\070\111\108\100\101\114")N.Name="\072\105\100\100\101\110\069\110\116\114\105\101\115\080\097\114\101\110\116"local A=Instance_new("\084\101\120\116\066\117\116\116\111\110",N)Instance_new("\070\111\108\100\101\114",A)local function Z()if P then A.Name="\069\120\112\097\110\100 \116\111 \118\105\101\119 \040"..(#game:children()-#v.."\041 \104\105\100\100\101\110 \105\116\101\109\115")else A.Name="\067\111\108\108\097\112\115\101 \116\111 \104\105\100\101 \040"..(#game:children()-#v.."\041 \109\111\114\101 \105\116\101\109\115")end end Z()local function z(...)local s=Instance_new("\068\105\097\108\111\103")s.Parent=b s.Name=""for I,c in pairs(table.pack(...))do s.Name=s.Name..(tostring(c).." ")end end;(I:WaitForChild("\071\101\116\080\114\105\110\116")).OnInvoke=function()return z end

local ENTRY_MARGIN = 1

local explorerPanel = script.Parent
local Input = game:GetService("UserInputService")
local HoldingCtrl = false
local HoldingShift = false

local addObject
local removeObject
local gameChildren = {}

table.insert(gameChildren, game:GetService("Workspace"))
table.insert(gameChildren, game:GetService("Players"))
table.insert(gameChildren, game:GetService("Lighting"))
table.insert(gameChildren, game:GetService("ReplicatedFirst"))
table.insert(gameChildren, game:GetService("ReplicatedStorage"))


pcall(function()
	table.insert(gameChildren, game:GetService("CoreGui"))
end)

table.insert(gameChildren, game:GetService("StarterGui"))
table.insert(gameChildren, game:GetService("StarterPack"))
table.insert(gameChildren, game:GetService("StarterPlayer"))
table.insert(gameChildren, game:GetService("SoundService"))
table.insert(gameChildren, game:GetService("Chat"))
table.insert(gameChildren, game:GetService("LocalizationService"))
table.insert(gameChildren, game:GetService("TestService"))

local childrenGame = {}

childrenGame[game:GetService("Workspace")] = true
childrenGame[game:GetService("Players")] = true
childrenGame[game:GetService("Lighting")] = true
childrenGame[game:GetService("ReplicatedFirst")] = true
childrenGame[game:GetService("ReplicatedStorage")] = true

pcall(function()
	childrenGame[game:GetService("CoreGui")] = true
end)

childrenGame[game:GetService("StarterGui")] = true
childrenGame[game:GetService("StarterPack")] = true
childrenGame[game:GetService("StarterPlayer")] = true
childrenGame[game:GetService("SoundService")] = true
childrenGame[game:GetService("Chat")] = true
childrenGame[game:GetService("LocalizationService")] = true
childrenGame[game:GetService("TestService")] = true

local MuteHiddenItems = true

local DexOutput = Instance_new("Folder")
DexOutput.Name = "Output"
local DexOutputMain = Instance_new("ScreenGui", DexOutput)
DexOutputMain.Name = "Dex Output"

local HiddenEntries = Instance_new("Folder")
local HiddenGame = Instance_new("Folder")
HiddenEntries.Name = "HiddenEntriesParent"
local HiddenEntriesMain = Instance_new("TextButton", HiddenEntries)
Instance_new("Folder", HiddenEntriesMain)

local function NameHiddenEntries()
	if MuteHiddenItems then
		HiddenEntriesMain.Name = "Expand to view (" .. (#game:children() - #gameChildren) .. ") hidden items"
	else
		HiddenEntriesMain.Name = "Collapse to hide (" .. (#game:children() - #gameChildren) .. ") more items"
	end
end

NameHiddenEntries()

local function print(...)
	local Obj = Instance_new("Dialog")
	Obj.Parent = DexOutputMain
	Obj.Name = ""
	for i,v in pairs(table.pack(...)) do
		Obj.Name = Obj.Name .. tostring(v) .. " "
	end
end

explorerPanel:WaitForChild("GetPrint").OnInvoke = function()
	return print
end
