Create a ScreenGui with a Frame , a ScrollingFrame for players, and a TextBox for the reason.
The target player input box requires the exact, case-sensitive matching username of the player present in your game server workspace. op player kick ban panel gui script fe ki better
local KI_Whitelist = [12345678] = true, -- Your UserID (Replace this) [87654321] = true -- Your alt/user ID Create a ScreenGui with a Frame , a
-- Place this inside ServerScriptService -> Script local ReplicatedStorage = game:GetService("ReplicatedStorage") local Players = game:GetService("Players") -- CONFIGURATION: Add the UserIds of authorized admins here local AdminUserIds = [12345678] = true, -- Replace with your Roblox UserId [87654321] = true, -- Replace with a co-owner's UserId -- Create a secure RemoteEvent for communication local AdminRemote = Instance.new("RemoteEvent") AdminRemote.Name = "AdminPanelRemote" AdminRemote.Parent = ReplicatedStorage -- Server-side security check function local function isAdmin(player) return AdminUserIds[player.UserId] or player.UserId == game.CreatorId end -- Listen for actions sent from the Client GUI AdminRemote.OnServerEvent:Connect(function(sender, targetPlayerName, actionType, reason) -- Crucial Security Check: Block non-admins from exploiting the remote if not isAdmin(sender) then warn(sender.Name .. " attempted to use the admin panel without permission!") return end -- Find the target player in the server local targetPlayer = Players:FindFirstChild(targetPlayerName) if not targetPlayer then warn("Target player not found.") return end -- Prevent admins from accidentally banning or kicking themselves or the game owner if targetPlayer.UserId == game.CreatorId and sender.UserId ~= game.CreatorId then warn("Cannot perform moderation actions on the game owner.") return end -- Default reason if none provided reason = reason or "No reason specified by administrator." -- Execute the requested action if actionType == "Kick" then targetPlayer:Kick("\n[Admin Panel Alert]\nYou have been kicked.\nReason: " .. reason) print(targetPlayerName .. " was successfully kicked by " .. sender.Name) elseif actionType == "Ban" then -- Standard Kick/Ban implementation (For permanent DataStore bans, integrate a DataStore here) targetPlayer:Kick("\n[Admin Panel Alert]\nYou have been PERMANENTLY BANNED.\nReason: " .. reason) print(targetPlayerName .. " was permanently banned by " .. sender.Name) elseif actionType == "Kill" then local character = targetPlayer.Character if character and character:FindFirstChildOfClass("Humanoid") then character:FindFirstChildOfClass("Humanoid").Health = 0 print(targetPlayerName .. " was killed by " .. sender.Name) end end end) Use code with caution. Step 2: Creating the Client GUI Component " attempted to use the admin panel without permission
Opening his console, he pasted the string of obfuscated code—the legendary FE KI Better
Let’s break it down: