-- LOCAL SCRIPT: Safe Admin GUI with Key System, Draggable Command Panel, and Command List -- Place in StarterPlayerScripts or StarterGui local Players = game:GetService("Players") local Player = Players.LocalPlayer local PlayerGui = Player:WaitForChild("PlayerGui") local RunService = game:GetService("RunService") local Lighting = game:GetService("Lighting") -- SETTINGS local ADMIN_KEY = "letmein123" -- Change your key here local COMMAND_PREFIX = "." -- GUI CREATION local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "AdminGUI" ScreenGui.ResetOnSpawn = false ScreenGui.Parent = PlayerGui -- Main Frame (Key input) local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 300, 0, 150) MainFrame.Position = UDim2.new(0.5, -150, 0.5, -75) MainFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui Instance.new("UICorner", MainFrame) local KeyTextBox = Instance.new("TextBox") KeyTextBox.PlaceholderText = "Key is:letmein123" KeyTextBox.Size = UDim2.new(1, -20, 0, 30) KeyTextBox.Position = UDim2.new(0, 10, 0, 10) KeyTextBox.ClearTextOnFocus = false KeyTextBox.Parent = MainFrame local LoadButton = Instance.new("TextButton") LoadButton.Text = "Load Admin" LoadButton.Size = UDim2.new(1, -20, 0, 30) LoadButton.Position = UDim2.new(0, 10, 0, 50) LoadButton.BackgroundColor3 = Color3.fromRGB(50,50,50) LoadButton.TextColor3 = Color3.fromRGB(255,255,255) LoadButton.Parent = MainFrame -- Command Panel local CommandFrame = Instance.new("Frame") CommandFrame.Size = UDim2.new(0, 400, 0, 500) CommandFrame.Position = UDim2.new(0.5, -200, 0.5, -250) CommandFrame.BackgroundColor3 = Color3.fromRGB(25,25,25) CommandFrame.Visible = false CommandFrame.Active = true CommandFrame.Draggable = true CommandFrame.Parent = ScreenGui Instance.new("UICorner", CommandFrame) local CommandTextBox = Instance.new("TextBox") CommandTextBox.PlaceholderText = "Type command..." CommandTextBox.Size = UDim2.new(1, -20, 0, 30) CommandTextBox.Position = UDim2.new(0, 10, 0, 10) CommandTextBox.ClearTextOnFocus = false CommandTextBox.Parent = CommandFrame local OutputLabel = Instance.new("TextLabel") OutputLabel.Size = UDim2.new(1, -20, 0, 30) OutputLabel.Position = UDim2.new(0, 10, 0, 45) OutputLabel.BackgroundTransparency = 1 OutputLabel.TextColor3 = Color3.fromRGB(255,255,255) OutputLabel.TextXAlignment = Enum.TextXAlignment.Left OutputLabel.TextYAlignment = Enum.TextYAlignment.Top OutputLabel.TextWrapped = true OutputLabel.Text = "" OutputLabel.Parent = CommandFrame -- Scrollable list of commands local ScrollFrame = Instance.new("ScrollingFrame") ScrollFrame.Size = UDim2.new(1, -20, 0.8, -80) ScrollFrame.Position = UDim2.new(0, 10, 0, 80) ScrollFrame.BackgroundColor3 = Color3.fromRGB(40,40,40) ScrollFrame.CanvasSize = UDim2.new(0,0,0,1000) ScrollFrame.ScrollBarThickness = 8 ScrollFrame.Parent = CommandFrame Instance.new("UICorner", ScrollFrame) local UIListLayout = Instance.new("UIListLayout") UIListLayout.Padding = UDim.new(0,5) UIListLayout.Parent = ScrollFrame -- Helper function local function printOutput(text) OutputLabel.Text = text end -- COMMANDS local Commands = {} -- Example movement / player control Commands["fly"] = function(args) local char = Player.Character if char and char:FindFirstChild("HumanoidRootPart") then local bv = Instance.new("BodyVelocity") bv.Velocity = Vector3.new(0,50,0) bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge) bv.Name = "FlyBV" bv.Parent = char.HumanoidRootPart printOutput("Flying enabled!") end end Commands["speed"] = function(args) local speed = tonumber(args[1]) or 16 local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = speed end printOutput("WalkSpeed set to "..speed) end Commands["jump"] = function(args) local power = tonumber(args[1]) or 50 local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if hum then hum.JumpPower = power hum:ChangeState(Enum.HumanoidStateType.Jumping) printOutput("JumpPower set to "..power) end end Commands["sit"] = function(args) local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if hum then hum.Sit = true printOutput("Sitting...") end end -- Fun / visual effects (spin, shrink, grow, sparkles, explode, fire, lights, music) Commands["spin"] = function(args) local char = Player.Character if char and char:FindFirstChild("HumanoidRootPart") then for i=1,360,15 do char.HumanoidRootPart.CFrame = char.HumanoidRootPart.CFrame * CFrame.Angles(0,math.rad(15),0) RunService.RenderStepped:Wait() end printOutput("Spin complete!") end end Commands["shrink"] = function(args) local char = Player.Character if char then for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then part.Size = part.Size * 0.5 end end printOutput("Shrunk!") end end Commands["grow"] = function(args) local char = Player.Character if char then for _, part in pairs(char:GetChildren()) do if part:IsA("BasePart") then part.Size = part.Size * 1.5 end end printOutput("Grown!") end end Commands["sparkles"] = function(args) local char = Player.Character if char and char:FindFirstChild("HumanoidRootPart") then local s = Instance.new("Sparkles") s.Parent = char.HumanoidRootPart printOutput("Sparkles added!") end end Commands["explode"] = function(args) local char = Player.Character if char and char:FindFirstChild("HumanoidRootPart") then local e = Instance.new("Explosion") e.Position = char.HumanoidRootPart.Position e.BlastPressure = 0 e.BlastRadius = 5 e.Parent = workspace printOutput("Boom!") end end -- Player utilities Commands["heal"] = function() local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid"); if hum then hum.Health = hum.MaxHealth printOutput("Healed!") end end Commands["healall"] = function() for _,p in pairs(Players:GetPlayers()) do local hum = p.Character and p.Character:FindFirstChildOfClass("Humanoid"); if hum then hum.Health = hum.MaxHealth end end printOutput("All players healed!") end Commands["tpall"] = function() local char = Player.Character; if char and char:FindFirstChild("HumanoidRootPart") then for _,p in pairs(Players:GetPlayers()) do if p~=Player and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then p.Character.HumanoidRootPart.CFrame = char.HumanoidRootPart.CFrame + Vector3.new(2,0,0) end end printOutput("Teleported all players to you!") end end Commands["reset"] = function() if Player.Character then Player.Character:BreakJoints(); printOutput("Character reset!") end end -- Environment / other fun commands (day, night, fog, etc.) Commands["day"] = function() Lighting.ClockTime = 12 printOutput("Day time!") end Commands["night"] = function() Lighting.ClockTime = 0 printOutput("Night time!") end Commands["fog"] = function() Lighting.FogEnd = 50 printOutput("Fog added!") end Commands["fogremove"] = function() Lighting.FogEnd = 1000 printOutput("Fog removed!") end Commands["wind"] = function() printOutput("Wind demo activated!") end -- Additional fun commands local funCommands = {"dance","wave","lay","bounce","bounceall","cloak","decloak","ball"} for _, cmd in pairs(funCommands) do Commands[cmd] = function() printOutput(cmd.." executed (demo).") end end -- Display all commands in ScrollFrame for cmdName,_ in pairs(Commands) do local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -10, 0, 25) label.BackgroundColor3 = Color3.fromRGB(60,60,60) label.TextColor3 = Color3.fromRGB(255,255,255) label.Text = COMMAND_PREFIX..cmdName label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = ScrollFrame Instance.new("UICorner", label) end -- COMMAND EXECUTION FUNCTION local function runCommand(input) if input:sub(1,#COMMAND_PREFIX) ~= COMMAND_PREFIX then return end local args = {} for word in input:sub(#COMMAND_PREFIX+1):gmatch("%S+") do table.insert(args, word) end local cmdName = table.remove(args,1) local cmdFunc = Commands[cmdName:lower()] if cmdFunc then cmdFunc(args) else printOutput("Unknown command: "..cmdName) end end -- BUTTON EVENT LoadButton.MouseButton1Click:Connect(function() if KeyTextBox.Text == ADMIN_KEY then MainFrame.Visible = false CommandFrame.Visible = true printOutput("Admin panel loaded!") else printOutput("Wrong key!") end end) -- TEXTBOX ENTER CommandTextBox.FocusLost:Connect(function(enterPressed) if enterPressed then runCommand(CommandTextBox.Text) CommandTextBox.Text = "" end end) -- CHAT COMMANDS Player.Chatted:Connect(function(msg) runCommand(msg) end)