-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
-- Admin Key
local ADMIN_KEY = "GhostAndAstro123"
-- GUI Setup
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui
-- Key Entry Frame
local KeyFrame = Instance.new("Frame", ScreenGui)
KeyFrame.Size = UDim2.new(0, 300, 0, 150)
KeyFrame.Position = UDim2.new(0.5, -150, 0.5, -75) -- Centered
KeyFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
KeyFrame.BackgroundTransparency = 0.5
KeyFrame.Active = true
KeyFrame.Draggable = true
local KeyLabel = Instance.new("TextLabel", KeyFrame)
KeyLabel.Size = UDim2.new(1, -20, 0, 40)
KeyLabel.Position = UDim2.new(0, 10, 0, 10)
KeyLabel.Text = "Enter Admin Key:"
KeyLabel.TextColor3 = Color3.new(1,1,1)
KeyLabel.Font = Enum.Font.SourceSansBold
KeyLabel.TextSize = 18
local KeyBox = Instance.new("TextBox", KeyFrame)
KeyBox.Size = UDim2.new(1, -20, 0, 40)
KeyBox.Position = UDim2.new(0, 10, 0, 60)
KeyBox.PlaceholderText = "Type Key Here"
KeyBox.ClearTextOnFocus = false
KeyBox.TextColor3 = Color3.new(1,1,1)
KeyBox.BackgroundColor3 = Color3.fromRGB(50,50,50)
KeyBox.Font = Enum.Font.SourceSans
KeyBox.TextSize = 18
local SubmitButton = Instance.new("TextButton", KeyFrame)
SubmitButton.Size = UDim2.new(0, 100, 0, 35)
SubmitButton.Position = UDim2.new(0.5, -50, 1, -45)
SubmitButton.BackgroundColor3 = Color3.fromRGB(0,200,0)
SubmitButton.TextColor3 = Color3.new(1,1,1)
SubmitButton.Font = Enum.Font.SourceSansBold
SubmitButton.TextSize = 18
SubmitButton.Text = "Submit"
-- Function to launch admin GUI
local function launchAdminGUI()
KeyFrame:Destroy()
local Frame = Instance.new("Frame", ScreenGui)
Frame.Size = UDim2.new(0, 200, 0, 300)
Frame.Position = UDim2.new(0.5, -100, 0.5, -150)
Frame.BackgroundColor3 = Color3.fromRGB(0,0,0)
Frame.BackgroundTransparency = 0.5
Frame.Active = true
Frame.Draggable = true
local guiVisible = true
UserInputService.InputBegan:Connect(function(input, gpe)
if gpe then return end
if input.KeyCode == Enum.KeyCode.RightShift then
guiVisible = not guiVisible
Frame.Visible = guiVisible
end
end)
-- Settings
local settings = {
fly = false,
speedBoost = 16,
jumpBoost = 50,
noclip = false,
invisible = false
}
-- Helper: create toggle button
local function createToggle(name, y, state, callback)
local btn = Instance.new("TextButton", Frame)
btn.Size = UDim2.new(1, -10, 0, 25)
btn.Position = UDim2.new(0, 5, 0, y)
btn.BackgroundColor3 = state and Color3.fromRGB(0,200,0) or Color3.fromRGB(200,0,0)
btn.TextColor3 = Color3.new(1,1,1)
btn.Font = Enum.Font.SourceSansBold
btn.TextSize = 18
btn.Text = name..": "..(state and "ON" or "OFF")
local currentState = state
btn.MouseButton1Click:Connect(function()
currentState = not currentState
callback(currentState)
btn.Text = name..": "..(currentState and "ON" or "OFF")
btn.BackgroundColor3 = currentState and Color3.fromRGB(0,200,0) or Color3.fromRGB(200,0,0)
end)
return btn
end
-- Create admin buttons
local y = 5
createToggle("Fly", y, settings.fly, function(v) settings.fly = v end); y = y + 35
createToggle("NoClip", y, settings.noclip, function(v) settings.noclip = v end); y = y + 35
createToggle("Invisible", y, settings.invisible, function(v)
settings.invisible = v
if LocalPlayer.Character then
for _, part in pairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") then
part.Transparency = v and 1 or 0
end
end
end
end); y = y + 35
createToggle("Speed Boost", y, false, function(v)
if v then
LocalPlayer.Character.Humanoid.WalkSpeed = settings.speedBoost * 2
else
LocalPlayer.Character.Humanoid.WalkSpeed = settings.speedBoost
end
end); y = y + 35
createToggle("Jump Boost", y, false, function(v)
if v then
LocalPlayer.Character.Humanoid.JumpPower = settings.jumpBoost * 2
else
LocalPlayer.Character.Humanoid.JumpPower = settings.jumpBoost
end
end); y = y + 35
createToggle("Reset Character", y, false, function(v)
if v and LocalPlayer.Character then
LocalPlayer.Character:BreakJoints()
end
end); y = y + 35
-- Fly loop
RunService.RenderStepped:Connect(function()
if settings.fly and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local hrp = LocalPlayer.Character.HumanoidRootPart
local moveVec = Vector3.new()
if UserInputService:IsKeyDown(Enum.KeyCode.W) then moveVec = moveVec + Camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then moveVec = moveVec - Camera.CFrame.LookVector end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then moveVec = moveVec - Camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then moveVec = moveVec + Camera.CFrame.RightVector end
if UserInputService:IsKeyDown(Enum.KeyCode.Space) then moveVec = moveVec + Vector3.new(0,1,0) end
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then moveVec = moveVec - Vector3.new(0,1,0) end
if moveVec.Magnitude > 0 then
moveVec = moveVec.Unit * settings.speedBoost
hrp.Velocity = moveVec
else
hrp.Velocity = Vector3.new(0,0,0)
end
end
end)
-- NoClip loop
RunService.RenderStepped:Connect(function()
if settings.noclip and LocalPlayer.Character then
for _, part in pairs(LocalPlayer.Character:GetDescendants()) do
if part:IsA("BasePart") then
pcall(function() part.CanCollide = false end)
end
end
end
end)
end
-- Submit button connection
SubmitButton.MouseButton1Click:Connect(function()
if KeyBox.Text == ADMIN_KEY then
launchAdminGUI()
else
KeyLabel.Text = "Wrong Key! Try Again"
KeyLabel.TextColor3 = Color3.fromRGB(255,0,0)
end
end)
Comments
No comments yet
Be the first to share your thoughts!