local Players = game:GetService("Players") local player = Players.LocalPlayer local screenGui = Instance.new("ScreenGui") screenGui.Name = "MapStageUI" screenGui.Parent = player:WaitForChild("PlayerGui") local function makeDraggable(frame, handle) handle = handle or frame local dragging = false local dragStart local startPos handle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = frame.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) handle.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart frame.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end local function createFrame(name, size, pos, bgColor) local frame = Instance.new("Frame") frame.Name = name frame.Size = size frame.Position = pos frame.BackgroundColor3 = bgColor or Color3.fromRGB(35,35,35) frame.BorderSizePixel = 0 frame.Parent = screenGui return frame end local function createScrollFrame(parent, size, pos) local scroll = Instance.new("ScrollingFrame") scroll.Size = size scroll.Position = pos scroll.CanvasSize = UDim2.new(0,0,0,0) scroll.ScrollBarThickness = 10 scroll.BackgroundTransparency = 1 scroll.Parent = parent local layout = Instance.new("UIListLayout") layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0,5) layout.Parent = scroll return scroll end local function createButton(parent, text, func, size, bgColor) local btn = Instance.new("TextButton") btn.Size = size or UDim2.new(1,-20,0,40) btn.Text = text btn.TextSize = 20 btn.TextColor3 = Color3.fromRGB(255,255,255) btn.Font = Enum.Font.Gotham btn.BackgroundColor3 = bgColor or Color3.fromRGB(45,45,45) btn.BorderSizePixel = 0 btn.Parent = parent btn.MouseButton1Click:Connect(func) return btn end local function getMaps() local mapsFolder = workspace:FindFirstChild("maps") local maps = {} if mapsFolder then for _, map in ipairs(mapsFolder:GetChildren()) do if map:IsA("Folder") then table.insert(maps, map.Name) end end end table.sort(maps) return maps end local function getStages(mapName) local stages = {} local codesFolder = workspace:FindFirstChild("maps") and workspace.maps:FindFirstChild(mapName) and workspace.maps[mapName]:FindFirstChild("Codes") if codesFolder then for _, code in ipairs(codesFolder:GetChildren()) do if code.Name:match("^code%d+$") then table.insert(stages, code.Name) end end end table.sort(stages) return stages end local function getStageText(mapName, stageName) local code = workspace.maps:FindFirstChild(mapName) and workspace.maps[mapName].Codes:FindFirstChild(stageName) if code then local label = code:FindFirstChild("SurfaceGui") and code.SurfaceGui:FindFirstChild("TextLabel") if label then return label.Text end end return "No Text Found" end local homeFrame = createFrame("HomeFrame", UDim2.new(0,400,0,300), UDim2.new(0.5,-200,0.5,-150)) local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1,0,0,60) titleLabel.Position = UDim2.new(0,0,0,0) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Find the codes 2 Menu (By MnaX)" titleLabel.TextColor3 = Color3.fromRGB(255,255,255) titleLabel.Font = Enum.Font.GothamBold titleLabel.TextSize = 28 titleLabel.Parent = homeFrame makeDraggable(homeFrame, titleLabel) local codesBtn = createButton(homeFrame, "Codes", function() homeFrame.Visible = false showMapPicker("Codes") end, UDim2.new(1,-40,0,50), Color3.fromRGB(0,150,255)) local dellBtn = createButton(homeFrame, "Dell Doors", function() homeFrame.Visible = false showMapPicker("DellDoors") end, UDim2.new(1,-40,0,50), Color3.fromRGB(255,80,80)) local unloadBtn = createButton(homeFrame, "Unload", function() screenGui:Destroy() end, UDim2.new(1,-40,0,50), Color3.fromRGB(180,180,180)) codesBtn.Position = UDim2.new(0,20,0,80) dellBtn.Position = UDim2.new(0,20,0,150) unloadBtn.Position = UDim2.new(0,20,0,220) function showMapPicker(mode) local mapFrame = createFrame("MapFrame", UDim2.new(0,400,0,500), UDim2.new(0.5,-200,0.5,-250)) local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,60) title.BackgroundTransparency = 1 title.Text = "Select Map" title.TextColor3 = Color3.fromRGB(255,255,255) title.Font = Enum.Font.GothamBold title.TextSize = 24 title.Parent = mapFrame makeDraggable(mapFrame, title) local scroll = createScrollFrame(mapFrame, UDim2.new(1,0,1,-60), UDim2.new(0,0,0,60)) local maps = getMaps() for _, mapName in ipairs(maps) do createButton(scroll, mapName, function() if mode == "Codes" then mapFrame.Visible = false showStagePicker(mapName) elseif mode == "DellDoors" then -- Delete all doors local doorsFolder = workspace.maps:FindFirstChild(mapName) and workspace.maps[mapName]:FindFirstChild("Doors") if doorsFolder then for _, door in ipairs(doorsFolder:GetChildren()) do if door:IsA("BasePart") or door:IsA("Model") then door:Destroy() end end end mapFrame:Destroy() homeFrame.Visible = true end end) end local back = createButton(mapFrame, "< Back", function() mapFrame:Destroy() homeFrame.Visible = true end, UDim2.new(0,80,0,40), Color3.fromRGB(255,0,0)) back.Position = UDim2.new(0,10,0,10) end function showStagePicker(mapName) local stageFrame = createFrame("StageFrame", UDim2.new(0,400,0,500), UDim2.new(0.5,-200,0.5,-250)) local title = Instance.new("TextLabel") title.Size = UDim2.new(1,0,0,60) title.BackgroundTransparency = 1 title.Text = "Stages: "..mapName title.TextColor3 = Color3.fromRGB(255,255,255) title.Font = Enum.Font.GothamBold title.TextSize = 24 title.Parent = stageFrame makeDraggable(stageFrame, title) local scroll = createScrollFrame(stageFrame, UDim2.new(1,0,1,-60), UDim2.new(0,0,0,60)) local stages = getStages(mapName) for _, stageName in ipairs(stages) do createButton(scroll, stageName, function() local textFrame = createFrame("TextFrame", UDim2.new(0,300,0,150), UDim2.new(0.5,-150,0.5,200)) makeDraggable(textFrame) local label = Instance.new("TextLabel") label.Size = UDim2.new(1,0,1,0) label.BackgroundTransparency = 1 label.Text = stageName..": "..getStageText(mapName, stageName) label.TextColor3 = Color3.fromRGB(255,255,255) label.TextSize = 18 label.TextWrapped = true label.Parent = textFrame end) end local back = createButton(stageFrame, "< Back", function() stageFrame:Destroy() homeFrame.Visible = true end, UDim2.new(0,80,0,40), Color3.fromRGB(255,0,0)) back.Position = UDim2.new(0,10,0,10) end