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
Comments
No comments yet
Be the first to share your thoughts!