-- Services
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local StarterGui = game:GetService("StarterGui")
local HttpService = game:GetService("HttpService")
-- Constants
local ADMIN_KEY = "jammedisgay" -- Replace with a secure admin key
local BAN_LIST_KEY = "skibiditoiletland"
-- Function to check if a player is an admin
local function isAdmin(player)
return player:IsA("Player") and player:GetUserId() == 123456789 -- Replace with the admin's UserId
end
-- Function to create the admin GUI
local function createAdminGUI()
-- Create ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "AdminGUI"
screenGui.Parent = game.Players.LocalPlayer.PlayerGui
-- Create Frame
local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 500, 0, 500)
mainFrame.Position = UDim2.new(0.5, -250, 0.5, -250)
mainFrame.BackgroundColor3 = Color3.new(0, 0, 0)
mainFrame.BorderSizePixel = 5
mainFrame.BorderColor3 = Color3.new(1, 1, 1)
mainFrame.Parent = screenGui
-- Create GUI components
local shutdownButton = Instance.new("TextButton")
shutdownButton.Size = UDim2.new(0, 200, 0, 50)
shutdownButton.Position = UDim2.new(0.5, -100, 0.1, 0)
shutdownButton.BackgroundColor3 = Color3.new(1, 0, 0)
shutdownButton.Text = "Shutdown Server"
shutdownButton.TextColor3 = Color3.new(1, 1, 1)
shutdownButton.Parent = mainFrame
local banPlayerButton = Instance.new("TextButton")
banPlayerButton.Size = UDim2.new(0, 200, 0, 50)
banPlayerButton.Position = UDim2.new(0.5, -100, 0.3, 0)
banPlayerButton.BackgroundColor3 = Color3.new(1, 0, 0)
banPlayerButton.Text = "Ban Player"
banPlayerButton.TextColor3 = Color3.new(1, 1, 1)
banPlayerButton.Parent = mainFrame
local kickPlayerButton = Instance.new("TextButton")
kickPlayerButton.Size = UDim2.new(0, 200, 0, 50)
kickPlayerButton.Position = UDim2.new(0.5, -100, 0.5, 0)
kickPlayerButton.BackgroundColor3 = Color3.new(1, 0, 0)
kickPlayerButton.Text = "Kick Player"
kickPlayerButton.TextColor3 = Color3.new(1, 1, 1)
kickPlayerButton.Parent = mainFrame
-- Function to handle shutdown button click
shutdownButton.MouseButton1Click:Connect(function()
if isAdmin(game.Players.LocalPlayer) then
game:Shutdown()
else
warn("You do not have permission to shut down the server.")
end
end)
-- Function to handle ban player button click
banPlayerButton.MouseButton1Click:Connect(function()
if isAdmin(game.Players.LocalPlayer) then
local playerName = promptForPlayerName()
if playerName then
banPlayer(playerName)
end
else
warn("You do not have permission to ban players.")
end
end)
-- Function to handle kick player button click
kickPlayerButton.MouseButton1Click:Connect(function()
if isAdmin(game.Players.LocalPlayer) then
local playerName = promptForPlayerName()
if playerName then
kickPlayer(playerName)
end
else
warn("You do not have permission to kick players.")
end
end)
end
-- Function to prompt for a player name
local function promptForPlayerName()
local playerName = prompt("Enter the player's username:")
return playerName
end
-- Function to ban a player
local function banPlayer(playerName)
local playerToBan = getPlayerByName(playerName)
if playerToBan then
local success, errorMessage = pcall(function()
Players:Remove(playerToBan)
local banList = getBanList()
table.insert(banList, playerToBan.UserId)
setBanList(banList)
end)
if not success then
warn("Failed to ban player:", errorMessage)
end
else
warn("Player not found.")
end
end
-- Function to kick a player
local function kickPlayer(playerName)
local playerToKick = getPlayerByName(playerName)
if playerToKick then
local success, errorMessage = pcall(function()
playerToKick:Kick("You have been kicked by an admin.")
end)
if not success then
warn("Failed to kick player:", errorMessage)
end
else
warn("Player not found.")
end
end
-- Function to get a player by username
local function getPlayerByName(playerName)
for _, player in pairs(Players:GetPlayers()) do
if player.Name:lower() == playerName:lower() then
return player
end
end
return nil
end
-- Function to get the ban list
local function getBanList()
local banListValue = ServerStorage:FindFirstChild(BAN_LIST_KEY)
if banListValue then
return HttpService:JSONDecode(banListValue.Value)
else
return {}
end
end
-- Function to set the ban list
local function setBanList(banList)
local banListValue = ServerStorage:FindFirstChild(BAN_LIST_KEY) or Instance.new("StringValue")
banListValue.Name = BAN_LIST_KEY
banListValue.Value = HttpService:JSONEncode(banList)
banListValue.Parent = ServerStorage
end
-- Function to create a prompt
local function prompt(promptText)
return StarterGui:SetCore("Prompt", {
Text = promptText,
Input = "",
Duration = 10
}).Input
end
-- Create admin GUI
createAdminGUI()