
Key Required

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- 1. Create Main ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "LevelChangerGui"
screenGui.ResetOnSpawn = false
screenGui.Parent = playerGui
-- 2. Create Main Frame
local mainFrame = Instance.new("Frame")
mainFrame.Name = "MainFrame"
mainFrame.Size = UDim2.new(0, 260, 0, 160)
mainFrame.Position = UDim2.new(0.5, -130, 0.4, -80)
mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Draggable = true
mainFrame.Parent = screenGui
local frameCorner = Instance.new("UICorner")
frameCorner.CornerRadius = UDim.new(0, 10)
frameCorner.Parent = mainFrame
local frameStroke = Instance.new("UIStroke")
frameStroke.Color = Color3.fromRGB(60, 60, 75)
frameStroke.Thickness = 1.5
frameStroke.Parent = mainFrame
-- 3. Title Label ("Level Changer")
local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "Title"
titleLabel.Size = UDim2.new(1, -40, 0, 35)
titleLabel.Position = UDim2.new(0, 12, 0, 5)
titleLabel.BackgroundTransparency = 1
titleLabel.Text = "Level Changer"
titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
titleLabel.TextSize = 16
titleLabel.Font = Enum.Font.GothamBold
titleLabel.TextXAlignment = Enum.TextXAlignment.Left
titleLabel.Parent = mainFrame
-- 4. Close Button (X)
local closeButton = Instance.new("TextButton")
closeButton.Name = "CloseButton"
closeButton.Size = UDim2.new(0, 26, 0, 26)
closeButton.Position = UDim2.new(1, -32, 0, 8)
closeButton.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
closeButton.Text = "X"
closeButton.TextColor3 = Color3.fromRGB(200, 200, 200)
closeButton.TextSize = 12
closeButton.Font = Enum.Font.GothamBold
closeButton.Parent = mainFrame
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(0, 6)
closeCorner.Parent = closeButton
-- 5. Input Box (Supports Letters & Numbers)
local levelInput = Instance.new("TextBox")
levelInput.Name = "LevelInput"
levelInput.Size = UDim2.new(1, -24, 0, 40)
levelInput.Position = UDim2.new(0, 12, 0, 50)
levelInput.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
levelInput.Text = "313"
levelInput.PlaceholderText = "Type anything here..."
levelInput.TextColor3 = Color3.fromRGB(0, 255, 170)
levelInput.PlaceholderColor3 = Color3.fromRGB(120, 120, 140)
levelInput.TextSize = 18
levelInput.Font = Enum.Font.GothamSemibold
levelInput.Parent = mainFrame
local inputCorner = Instance.new("UICorner")
inputCorner.CornerRadius = UDim.new(0, 8)
inputCorner.Parent = levelInput
-- 6. Helper Label
local hintLabel = Instance.new("TextLabel")
hintLabel.Name = "HintLabel"
hintLabel.Size = UDim2.new(1, -24, 0, 25)
hintLabel.Position = UDim2.new(0, 12, 0, 100)
hintLabel.BackgroundTransparency = 1
hintLabel.Text = "Press 'P' to Toggle GUI"
hintLabel.TextColor3 = Color3.fromRGB(140, 140, 160)
hintLabel.TextSize = 12
hintLabel.Font = Enum.Font.Gotham
hintLabel.Parent = mainFrame
-- System Notification Function
local function sendNotification(text)
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = "Level Changer",
Text = text,
Duration = 3
})
end)
end
closeButton.MouseButton1Click:Connect(function()
mainFrame.Visible = false
sendNotification("GUI Hidden. Press 'P' to open again.")
end)
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not gameProcessed and input.KeyCode == Enum.KeyCode.P then
mainFrame.Visible = not mainFrame.Visible
if mainFrame.Visible then
sendNotification("Level Changer Opened.")
else
sendNotification("GUI Hidden. Press 'P' to open again.")
end
end
end)
-- Per-Frame Loop - Allows ANY text (letters, numbers, custom words)
RunService.RenderStepped:Connect(function()
local targetLevel = levelInput.Text
if targetLevel == "" then return end
-- 1. Screen UI Elements
for _, obj in pairs(playerGui:GetDescendants()) do
if obj:IsA("TextLabel") and not obj:IsDescendantOf(mainFrame) then
local path = obj:GetFullName()
if path:find("Level") and not path:find("Notification") then
-- Safely ignore header/subtext labels that only say "Level" or "LVL"
local cleanText = obj.Text:gsub("%s+", ""):lower()
if cleanText ~= "level" and cleanText ~= "lvl" then
if obj.Text ~= targetLevel then
obj.Text = targetLevel
end
end
end
end
end
-- 2. Workspace Character Overhead Name Tag
local character = player.Character
if character then
for _, obj in pairs(character:GetDescendants()) do
if obj:IsA("TextLabel") then
local cleanText = obj.Text:gsub("%s+", ""):lower()
if cleanText ~= "level" and cleanText ~= "lvl" then
if obj.Name:lower():find("level") or obj:GetFullName():find("Level") then
if obj.Text ~= targetLevel then
obj.Text = targetLevel
end
end
end
end
end
end
end)
sendNotification("Level Changer Loaded! Press 'P' to toggle.")No comments yet for this script.



