local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "MUST_Explorer" screenGui.Parent = playerGui screenGui.ResetOnSpawn = false local mainContainer = Instance.new("Frame") mainContainer.Size = UDim2.new(0, 500, 0, 450) mainContainer.Position = UDim2.new(0.5, -250, 0.5, -225) mainContainer.BackgroundColor3 = Color3.fromRGB(25, 25, 35) mainContainer.BorderSizePixel = 0 mainContainer.Visible = false mainContainer.ClipsDescendants = true mainContainer.Parent = screenGui local uiCorner = Instance.new("UICorner", mainContainer) uiCorner.CornerRadius = UDim.new(0, 10) local shadow = Instance.new("ImageLabel", mainContainer) shadow.Image = "rbxassetid://1316045217" shadow.ImageTransparency = 0.7 shadow.Size = UDim2.new(1, 20, 1, 20) shadow.Position = UDim2.new(0, -10, 0, -10) shadow.ZIndex = 0 shadow.BackgroundTransparency = 1 local titleBar = Instance.new("Frame") titleBar.Size = UDim2.new(1, 0, 0, 35) titleBar.BackgroundColor3 = Color3.fromRGB(40, 40, 55) titleBar.BorderSizePixel = 0 titleBar.Parent = mainContainer local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, -60, 1, 0) titleLabel.Position = UDim2.new(0, 10, 0, 0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "MUST Explorer" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 14 titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = titleBar local closeBtn = Instance.new("TextButton") closeBtn.Size = UDim2.new(0, 25, 0, 25) closeBtn.Position = UDim2.new(1, -30, 0, 5) closeBtn.BackgroundColor3 = Color3.fromRGB(220, 70, 70) closeBtn.Text = "×" closeBtn.TextColor3 = Color3.new(1, 1, 1) closeBtn.Font = Enum.Font.GothamBold closeBtn.TextSize = 16 closeBtn.Parent = titleBar Instance.new("UICorner", closeBtn).CornerRadius = UDim.new(0, 4) local searchBox = Instance.new("TextBox") searchBox.Text = "" searchBox.Size = UDim2.new(1, -20, 0, 30) searchBox.Position = UDim2.new(0, 10, 0, 45) searchBox.BackgroundColor3 = Color3.fromRGB(35, 35, 50) searchBox.PlaceholderText = "Search objects..." searchBox.PlaceholderColor3 = Color3.fromRGB(140, 140, 150) searchBox.TextColor3 = Color3.fromRGB(255, 255, 255) searchBox.Font = Enum.Font.Gotham searchBox.TextSize = 12 searchBox.ClearTextOnFocus = false searchBox.Parent = mainContainer Instance.new("UICorner", searchBox).CornerRadius = UDim.new(0, 6) local pad = Instance.new("UIPadding", searchBox) pad.PaddingLeft = UDim.new(0, 10) local statsLabel = Instance.new("TextLabel") statsLabel.Size = UDim2.new(1, -20, 0, 20) statsLabel.Position = UDim2.new(0, 10, 0, 80) statsLabel.BackgroundTransparency = 1 statsLabel.TextColor3 = Color3.fromRGB(180, 180, 200) statsLabel.Text = "Loading..." statsLabel.Font = Enum.Font.Gotham statsLabel.TextSize = 11 statsLabel.TextXAlignment = Enum.TextXAlignment.Left statsLabel.Parent = mainContainer local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Size = UDim2.new(1, -20, 1, -130) scrollFrame.Position = UDim2.new(0, 10, 0, 105) scrollFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 45) scrollFrame.BorderSizePixel = 0 scrollFrame.ScrollBarThickness = 6 scrollFrame.ScrollBarImageColor3 = Color3.fromRGB(100, 100, 130) scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.Parent = mainContainer Instance.new("UICorner", scrollFrame).CornerRadius = UDim.new(0, 6) local layout = Instance.new("UIListLayout", scrollFrame) layout.Padding = UDim.new(0, 6) local dragging = false local dragStart, startPos titleBar.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainContainer.Position end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) UserInputService.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainContainer.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) local function copyPath(text) if setclipboard then setclipboard(text) else print("Copied:", text) end end local function createItem(objData) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, 0, 0, 60) frame.BackgroundColor3 = Color3.fromRGB(45, 45, 60) frame.BorderSizePixel = 0 frame.Parent = scrollFrame Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local contentFrame = Instance.new("Frame") contentFrame.Size = UDim2.new(1, -100, 1, 0) -- Reserve space for buttons contentFrame.BackgroundTransparency = 1 contentFrame.Parent = frame local nameLabel = Instance.new("TextLabel") nameLabel.Size = UDim2.new(1, -10, 0, 24) nameLabel.Position = UDim2.new(0, 8, 0, 6) nameLabel.BackgroundTransparency = 1 nameLabel.TextColor3 = Color3.fromRGB(255, 255, 255) nameLabel.Text = objData.Name nameLabel.Font = Enum.Font.GothamBold nameLabel.TextSize = 13 nameLabel.TextXAlignment = Enum.TextXAlignment.Left nameLabel.TextTruncate = Enum.TextTruncate.AtEnd nameLabel.Parent = contentFrame local pathLabel = Instance.new("TextLabel") pathLabel.Size = UDim2.new(1, -10, 0, 18) pathLabel.Position = UDim2.new(0, 8, 0, 30) pathLabel.BackgroundTransparency = 1 pathLabel.TextColor3 = Color3.fromRGB(170, 170, 190) local p = objData.Path if #p > 50 then p = "..." .. string.sub(p, -47) end pathLabel.Text = p pathLabel.Font = Enum.Font.Gotham pathLabel.TextSize = 11 pathLabel.TextXAlignment = Enum.TextXAlignment.Left pathLabel.TextTruncate = Enum.TextTruncate.AtEnd pathLabel.Parent = contentFrame local colors = { RemoteEvent = Color3.fromRGB(80, 130, 240), RemoteFunction = Color3.fromRGB(120, 80, 230), ModuleScript = Color3.fromRGB(80, 180, 120), Script = Color3.fromRGB(220, 180, 60), LocalScript = Color3.fromRGB(240, 120, 80), Sound = Color3.fromRGB(100, 190, 240), TextChatService = Color3.fromRGB(220, 120, 220), Default = Color3.fromRGB(120, 120, 120) } local buttonFrame = Instance.new("Frame") buttonFrame.Size = UDim2.new(0, 90, 1, 0) buttonFrame.Position = UDim2.new(1, -90, 0, 0) buttonFrame.BackgroundTransparency = 1 buttonFrame.Parent = frame local copyBtn = Instance.new("TextButton") copyBtn.Size = UDim2.new(0, 80, 0, 24) -- Smaller height copyBtn.Position = UDim2.new(0, 5, 0, 8) -- Positioned at top copyBtn.BackgroundColor3 = Color3.fromRGB(80, 180, 80) copyBtn.Text = "Copy" copyBtn.TextColor3 = Color3.new(1, 1, 1) copyBtn.Font = Enum.Font.Gotham copyBtn.TextSize = 11 copyBtn.Parent = buttonFrame Instance.new("UICorner", copyBtn).CornerRadius = UDim.new(0, 4) local typeTag = Instance.new("TextLabel") typeTag.Size = UDim2.new(0, 80, 0, 20) typeTag.Position = UDim2.new(0, 5, 0, 36) -- Below copy button typeTag.BackgroundColor3 = colors[objData.Type] or colors.Default typeTag.Text = objData.Type typeTag.TextColor3 = Color3.new(1, 1, 1) typeTag.Font = Enum.Font.GothamBold typeTag.TextSize = 10 typeTag.Parent = buttonFrame Instance.new("UICorner", typeTag).CornerRadius = UDim.new(0, 4) copyBtn.MouseButton1Click:Connect(function() copyPath(objData.Path) copyBtn.Text = "✓" copyBtn.BackgroundColor3 = Color3.fromRGB(60, 140, 220) task.wait(1) copyBtn.Text = "Copy" copyBtn.BackgroundColor3 = Color3.fromRGB(80, 180, 80) end) end local collected = {} local function gatherObjects() collected = {} local services = { game:GetService("ReplicatedStorage"), game:GetService("ServerStorage"), game:GetService("ServerScriptService"), game:GetService("StarterPlayer"), game:GetService("Workspace"), game:GetService("SoundService"), game:GetService("TextChatService") } for _, s in ipairs(services) do for _, obj in ipairs(s:GetDescendants()) do local class = obj.ClassName if class == "RemoteEvent" or class == "RemoteFunction" or class == "ModuleScript" or class == "Script" or class == "LocalScript" or class == "Sound" then table.insert(collected, {Name = obj.Name, Path = obj:GetFullName(), Type = class}) end end end end local function updateDisplay(search) for _, c in ipairs(scrollFrame:GetChildren()) do if c:IsA("Frame") then c:Destroy() end end local term = string.lower(search or "") local show = {} for _, o in ipairs(collected) do if term == "" or string.find(string.lower(o.Name), term) or string.find(string.lower(o.Path), term) then table.insert(show, o) end end table.sort(show, function(a, b) return a.Path < b.Path end) for _, obj in ipairs(show) do createItem(obj) end scrollFrame.CanvasSize = UDim2.new(0, 0, 0, #show * 66) statsLabel.Text = string.format("📊 %d items found", #show) end local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0, 160, 0, 40) toggleBtn.Position = UDim2.new(0, 20, 0, 20) toggleBtn.BackgroundColor3 = Color3.fromRGB(80, 140, 240) toggleBtn.Text = "Must Explorer" toggleBtn.TextColor3 = Color3.new(1, 1, 1) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextSize = 12 toggleBtn.Parent = screenGui Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8) local visible = false local function toggle() visible = not visible mainContainer.Visible = visible toggleBtn.Visible = not visible if visible then gatherObjects() updateDisplay("") end end toggleBtn.MouseButton1Click:Connect(toggle) closeBtn.MouseButton1Click:Connect(toggle) searchBox:GetPropertyChangedSignal("Text"):Connect(function() updateDisplay(searchBox.Text) end) UserInputService.InputBegan:Connect(function(input, processed) if processed then return end if input.KeyCode == Enum.KeyCode.F2 then toggle() elseif input.KeyCode == Enum.KeyCode.Escape and visible then toggle() end end) print("✅ MUST Universal Explorer loaded! Press F2 or click button to open.")