local dataModels = { "TextChatService", "Players", "Lighting", "MaterialService", "ReplicatedFirst", "ReplicatedStorage", "ServerScriptService", "ServerStorage", "StarterGui", "StarterPack", "StarterPlayer", "Teams", "SoundService", "Workspace" } local plr = game.Players.LocalPlayer local guis = Instance.new("ScreenGui",plr.PlayerGui) local frame = Instance.new("Frame",guis) frame.Size = UDim2.new(0,500,0,500) frame.Position = UDim2.new(0,300,0,200) local topbar = Instance.new("TextButton",frame) topbar.BackgroundColor3 = Color3.new(0,0,20) topbar.Name = "CP" topbar.Size = UDim2.new(1,0,0.1,0) topbar.TextScaled = true topbar.Text = "game" local scrolling = Instance.new("ScrollingFrame",frame) scrolling.Size = UDim2.new(1,0,0.9,0) scrolling.Position = UDim2.new(0,0,0.1,0) local list = Instance.new("UIListLayout",scrolling) local back = Instance.new("TextButton",frame) back.Name = "Back" back.Size = UDim2.new(0.1,0,0.1,0) back.Position = UDim2.new(1,0,0,0) back.TextScaled = true back.Text = "<" function show(adress) if adress == "game" then topbar.Text = "game" for _,v in ipairs(scrolling:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end local size = #dataModels for i,datamodel in ipairs(dataModels) do local b = Instance.new("TextButton",scrolling) b.Name = datamodel b.Size = UDim2.new(1,0,0,50) b.TextScaled = true b.Text = datamodel end scrolling.CanvasSize = UDim2.new(0,0,0,50*size) else topbar.Text = adress local parents = string.split(adress, ".") local child for i,parent in ipairs(parents) do if i == 1 then else if child then child = child:FindFirstChild(parent) else child = game:GetService(parent) end end end for _,v in ipairs(scrolling:GetChildren()) do if v:IsA("TextButton") then v:Destroy() end end if child then local size = #child:GetChildren() for _,obj in ipairs(child:GetChildren()) do local b = Instance.new("TextButton",scrolling) b.Name = obj.Name b.Size = UDim2.new(1,0,0,50) b.TextScaled = true b.Text = obj.Name.."("..obj.ClassName..")" end scrolling.CanvasSize = UDim2.new(0,0,0,50*size) end end end show("game") back.MouseButton1Click:Connect(function() local adress = topbar.Text local parents = string.split(adress, ".") or {"game"} local showValue = "game" if #parents ~= 1 then for i,v in ipairs(parents) do if i ~= 1 then if i < #parents then if #parents == 2 then show("game") else showValue = showValue.."."..v end else show(showValue) end end end else show("game") end end) local uis = game:GetService("UserInputService") local pressing = false topbar.MouseButton1Down:Connect(function() local oldPos = uis:GetMouseLocation() local oldFPos = frame.Position pressing = true while pressing do wait(0.05) local pos = uis:GetMouseLocation() local delta = pos-oldPos frame.Position = UDim2.new(0,oldFPos.X.Offset+delta.X,0,oldFPos.Y.Offset+delta.Y) end end) topbar.MouseButton1Up:Connect(function() pressing = false end) while wait(0.1) do for _,v in ipairs(scrolling:GetChildren()) do if v:IsA("TextButton") then v.MouseButton1Click:Connect(function() show(topbar.Text.."."..v.Name) end) end end end