0% found this document useful (0 votes)
591 views109 pages

Prison Life Admin Script: Ultra Edition

The document outlines the features of the 'Prison Life Admin Script (ULTRA STEALTH) - EXPANDED EDITION', which allows extensive admin functionalities in the game Prison Life without server-side execution. It includes advanced settings for teleportation, player manipulation, anti-exploit measures, and combat features. The script is designed for client-side execution and has been expanded to integrate with PrizzLife mechanics.

Uploaded by

gooeygrinders
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
591 views109 pages

Prison Life Admin Script: Ultra Edition

The document outlines the features of the 'Prison Life Admin Script (ULTRA STEALTH) - EXPANDED EDITION', which allows extensive admin functionalities in the game Prison Life without server-side execution. It includes advanced settings for teleportation, player manipulation, anti-exploit measures, and combat features. The script is designed for client-side execution and has been expanded to integrate with PrizzLife mechanics.

Uploaded by

gooeygrinders
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

--[[

Prison Life Admin Script (ULTRA STEALTH) - EXPANDED EDITION


Integrates original script with PrizzLife mechanics for client-side execution
Version 2.0 - Ultra Edition

This script provides extensive admin functionality in Prison Life without


requiring
a server-sided executor. It leverages exploits in the game's remote events and
includes comprehensive protection, teleportation, weapon, and player manipulation
systems.

IMPORTANT: This script has been expanded to match PrizzLife's functionality while
maintaining client-side execution capability.
]]

-- =======================================
-- INITIALIZATION AND CORE VARIABLES
-- =======================================

local currentVersion = "2.0 Ultra Edition"


local Execution_Runtime = tick()
local ExecutionDate = [Link]("%Y-%m-%d")
local StartupTime = [Link]()

-- Settings - Extended with advanced features


_G.PrisonAdminUltra = {
-- Core settings
Prefix = ".", -- Command prefix
EnableAntiKick = true, -- Anti-kick feature
SafeMode = true, -- Enhanced security mode
MaxBatchSize = 3, -- Max operations per batch
BatchDelay = 0.3, -- Delay between batches
RankedPlayers = {}, -- Players with admin permissions
LoopKillPlayers = {}, -- Players being loop killed

-- Notification settings
JoinNotify = false, -- Notify when players join
LeaveNotify = false, -- Notify when players leave
KillNotify = false, -- Notify when kills occur
CommandNotify = true, -- Show notifications for commands

-- Auto features
AutoRespawn = true, -- Automatically loadcharacter when dying
AutoGuns = false, -- Automatically get all guns
AutoTeam = false, -- Auto set your team (guard/prisoner/criminal)
AutoTeamValue = "none", -- Which team to auto select
AutoKill = {}, -- Players to automatically kill
AutoExec = {}, -- Commands to execute on script start

-- Anti systems (protection)


AntiVoid = true, -- Automatically teleport up when falling into
void
AntiTase = false, -- Prevents you from being tased
AntiArrest = false, -- Prevents you from being arrested
AntiShoot = false, -- Kills player who tries to shoot you
AntiPunch = false, -- Instantly kill players who try to punch you
AntiFling = false, -- Prevent exploiters from flinging you
AntiShield = false, -- Stop pay2win people and bypass their shields
AntiBring = false, -- Prevent other exploiter(s) from bringing you
AntiCrash = true, -- Prevent crash attempts
AntiAbuse = true, -- Kill players who abuse exploits
AntiDeath = false, -- Prevents your character from dying
AntiRagdoll = false, -- Prevents ragdolling
AntiSit = false, -- Prevent sitting

-- Combat features
SilentAim = false, -- Makes you shoot without missing a target
SilentAimHeadshot = true, -- Target heads with silent aim
KillAura = false, -- Automatically kill nearby players
KillAuraRange = 15, -- Range for kill aura
KillAuraTeamCheck = true, -- Don't kill same team with killaura
KillAuraVisualFeedback = true, -- Show visual line to target
InfAmmo = false, -- Infinite ammo
InfDamage = false, -- One-hit kills
NoRecoil = false, -- No recoil when shooting
RapidFire = false, -- Shoot very fast

-- Weapon options
CustomGunMods = false, -- Enable custom gun modifications
GunOneShot = false, -- Make guns kill in one shot
GunFireRate = 0.1, -- Modified fire rate for guns
GunAutofire = false, -- Make all guns automatic
OldItemMethod = false, -- Use teleport for getting items (fallback)

-- Visual features
Fullbright = false, -- Enable fullbrightness
Xray = false, -- See through walls
PlayerESP = false, -- See player through walls
ItemESP = false, -- See items through walls
BoxESP = false, -- Draw boxes around players
TracerESP = false, -- Draw lines to players
NameESP = false, -- Show names through walls
TeamESP = false, -- Color ESP by team

-- Movement options
Noclip = false, -- Walk through walls
InfiniteJump = false, -- Jump without limit
SpeedMultiplier = 1, -- Walk speed multiplier
JumpMultiplier = 1, -- Jump height multiplier
FlySpeed = 1, -- Flying speed
VehicleSpeed = 1, -- Vehicle speed multiplier

-- Permission settings
AdminIds = {}, -- Extra admin user IDs
WhitelistedPlayers = {}, -- Players immune to your attacks
WhitelistRanked = false, -- Automatically whitelist ranked players
BlacklistedPlayers = {}, -- Auto kill/kick these players
RankedNukeCmds = true, -- Allow ranked players to use nuke commands
RankedMultiCmd = true, -- Allow ranked players to use "all" and "team"
arguments
RankedOutput = true, -- Chat the output commands of ranked players
WhisperToRanked = true, -- Use whisper for outputing commands for ranked
players

-- Advanced settings
CustomGuiEnabled = true, -- Use the custom GUI
DebugMode = false, -- Show detailed debug information
VerboseMode = false, -- Show detailed logs
ExecuteCustomCommands = {}, -- Custom commands to add
RemoteSpooferEnabled = true, -- Spoof remote calls for more stealth
AntiRemoteFunctionLogger = true, -- Prevent remote function logging
AntiRequestFunctionLogger = true, -- Prevent request logging
AdminId = 0, -- Your admin ID (0 = only local admin)
ExecutionDelay = 0, -- Delay between command execution

-- Hidden settings (not shown in menu)


_internal = {
scriptLoaded = true,
startTime = [Link](),
executionCount = 0,
killCount = 0,
teleportCount = 0,
commandHistory = {},
errorLog = {},
playerData = {},
configVersion = 3,
executedPlayers = {},
targetPlayerCache = {},
localAdminEnabled = true,
positionHistory = {},
savedPositions = {},
killHistory = {},
bannedPlayers = {},
tempBannedPlayers = {},
autoKillPlayers = {},
trackingPlayers = {},
hookedFunctions = {}
}
}

-- Create a shorter reference to settings for cleaner code


local Settings = _G.PrisonAdminUltra
local COMMANDS = {} -- Will store all command functions
local API = {} -- Will be returned at end of script

-- Service references for better performance


local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Rstorage = ReplicatedStorage -- PrizzLife naming convention
local LocalPlayer = [Link]
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local StarterGui = game:GetService("StarterGui")
local Lighting = game:GetService("Lighting")
local ContextActionService = game:GetService("ContextActionService")
local HttpService = game:GetService("HttpService")
local VirtualUser = game:GetService("VirtualUser")
local GuiService = game:GetService("GuiService")
local PhysicsService = game:GetService("PhysicsService")
local MarketplaceService = game:GetService("MarketplaceService")
local TeleportService = game:GetService("TeleportService")
local TextService = game:GetService("TextService")
local CoreGui = game:GetService("CoreGui")
local Teams = game:GetService("Teams")
local Chat = game:GetService("Chat")
-- Verify we're in Prison Life
if [Link] ~= 155615604 and [Link] ~= 4669040 then
warn("This script is designed for Prison Life only")
return
end

-- Create convenience variables


local mouse = LocalPlayer:GetMouse()
local camera = [Link]

-- =======================================
-- TELEPORTATION & LOCATION DATA
-- =======================================

-- Anti-detection for teleports (exact coordinates scrambled slightly)


local TeleportLocations = {
["yard"] = [Link](779.87 + [Link](-0.2, 0.2), 96.001 + [Link](-
0.1, 0.1), 2458.93 + [Link](-0.2, 0.2)),
["cells"] = [Link](916.61 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2458.93 + [Link](-0.2, 0.2)),
["cafeteria"] = [Link](918.40 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2325.20 + [Link](-0.2, 0.2)),
["armory"] = [Link](789.75 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2260.55 + [Link](-0.2, 0.2)),
["base"] = [Link](-943.46 + [Link](-0.2, 0.2), 94.13 + [Link](-
0.1, 0.1), 2063.63 + [Link](-0.2, 0.2)),
["tower"] = [Link](822.24 + [Link](-0.2, 0.2), 130.39 + [Link](-
0.1, 0.1), 2588.75 + [Link](-0.2, 0.2)),
["prison"] = [Link](918.77 + [Link](-0.2, 0.2), 100 + [Link](-
0.1, 0.1), 2379.07 + [Link](-0.2, 0.2)),
["roof"] = [Link](820.31 + [Link](-0.2, 0.2), 118.99 + [Link](-
0.1, 0.1), 2378.93 + [Link](-0.2, 0.2)),
["gate"] = [Link](505.61 + [Link](-0.2, 0.2), 102.69 + [Link](-
0.1, 0.1), 2250.49 + [Link](-0.2, 0.2)),
["sewers"] = [Link](917.69 + [Link](-0.2, 0.2), 78.3 + [Link](-
0.1, 0.1), 2292.54 + [Link](-0.2, 0.2)),
["parking"] = [Link](591.81 + [Link](-0.2, 0.2), 98 + [Link](-
0.1, 0.1), 2340.79 + [Link](-0.2, 0.2)),
["crimbase"] = [Link](-943.46 + [Link](-0.2, 0.2), 94.13 +
[Link](-0.1, 0.1), 2063.63 + [Link](-0.2, 0.2)),
["armoury"] = [Link](789.75 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2260.55 + [Link](-0.2, 0.2)),
["cafe"] = [Link](918.40 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2325.20 + [Link](-0.2, 0.2)),
["entrance"] = [Link](698.04 + [Link](-0.2, 0.2), 99.39 +
[Link](-0.1, 0.1), 2252.18 + [Link](-0.2, 0.2)),
["kitchen"] = [Link](906.24 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2237.73 + [Link](-0.2, 0.2)),
["guardroom"] = [Link](836.58 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2284.97 + [Link](-0.2, 0.2)),
["security"] = [Link](791.86 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2318.08 + [Link](-0.2, 0.2)),
["office"] = [Link](937.74 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2236.99 + [Link](-0.2, 0.2)),
["secret"] = [Link](680.39 + [Link](-0.2, 0.2), 112.19 + [Link](-
0.1, 0.1), 2331.33 + [Link](-0.2, 0.2)),
["secretroom"] = [Link](680.39 + [Link](-0.2, 0.2), 112.19 +
[Link](-0.1, 0.1), 2331.33 + [Link](-0.2, 0.2)),
["underground"] = [Link](916.79 + [Link](-0.2, 0.2), 78.3 +
[Link](-0.1, 0.1), 2288.77 + [Link](-0.2, 0.2)),
["visitor"] = [Link](789.45 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2328.53 + [Link](-0.2, 0.2)),
["bridge"] = [Link](621.89 + [Link](-0.2, 0.2), 113.82 + [Link](-
0.1, 0.1), 2410.68 + [Link](-0.2, 0.2)),
["cellblock"] = [Link](917.91 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2445.21 + [Link](-0.2, 0.2)),
["showers"] = [Link](919.23 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2416.02 + [Link](-0.2, 0.2)),
["maingate"] = [Link](504.35 + [Link](-0.2, 0.2), 102.76 +
[Link](-0.1, 0.1), 2246.08 + [Link](-0.2, 0.2)),
["street"] = [Link](360.91 + [Link](-0.2, 0.2), 72.54 + [Link](-
0.1, 0.1), 2335.59 + [Link](-0.2, 0.2)),
["swat"] = [Link](831.07 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2264.78 + [Link](-0.2, 0.2)),
["helipad"] = [Link](812.41 + [Link](-0.2, 0.2), 130.27 +
[Link](-0.1, 0.1), 2606.85 + [Link](-0.2, 0.2)),
["voidtele"] = [Link](972.69 + [Link](-0.2, 0.2), -3.64 +
[Link](-0.1, 0.1), 2282.53 + [Link](-0.2, 0.2)),
["void"] = [Link](972.69 + [Link](-0.2, 0.2), -100.64 + [Link](-
0.1, 0.1), 2282.53 + [Link](-0.2, 0.2)),
["yard2"] = [Link](887.68 + [Link](-0.2, 0.2), 98.001 + [Link](-
0.1, 0.1), 2388.65 + [Link](-0.2, 0.2)),
["specialcell"] = [Link](911.67 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2459.13 + [Link](-0.2, 0.2)),
["middle"] = [Link](882.48 + [Link](-0.2, 0.2), 98.45 + [Link](-
0.1, 0.1), 2261.42 + [Link](-0.2, 0.2)),
["backgate"] = [Link](967.62 + [Link](-0.2, 0.2), 98.8 + [Link](-
0.1, 0.1), 2172.24 + [Link](-0.2, 0.2)),
["frontgate"] = [Link](505.61 + [Link](-0.2, 0.2), 102.69 +
[Link](-0.1, 0.1), 2250.49 + [Link](-0.2, 0.2)),
["entrance2"] = [Link](781.56 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2252.93 + [Link](-0.2, 0.2)),
["hallway"] = [Link](831.21 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2319.46 + [Link](-0.2, 0.2)),
["classroom"] = [Link](832.08 + [Link](-0.2, 0.2), 100.39 +
[Link](-0.1, 0.1), 2350.64 + [Link](-0.2, 0.2)),
["staffroom"] = [Link](881.79 + [Link](-0.2, 0.2), 99.99 +
[Link](-0.1, 0.1), 2239.76 + [Link](-0.2, 0.2)),
["secretgate"] = [Link](666.8 + [Link](-0.2, 0.2), 97.76 +
[Link](-0.1, 0.1), 2587.67 + [Link](-0.2, 0.2)),
["hill"] = [Link](879.56 + [Link](-0.2, 0.2), 126.47 + [Link](-
0.1, 0.1), 2586.71 + [Link](-0.2, 0.2)),
["fence"] = [Link](819.16 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2567.60 + [Link](-0.2, 0.2)),
["tower2"] = [Link](929.43 + [Link](-0.2, 0.2), 129.73 + [Link](-
0.1, 0.1), 2587.44 + [Link](-0.2, 0.2)),
["inneryard"] = [Link](831.14 + [Link](-0.2, 0.2), 97.99 +
[Link](-0.1, 0.1), 2505.17 + [Link](-0.2, 0.2)),
["porch"] = [Link](747.11 + [Link](-0.2, 0.2), 98.2 + [Link](-
0.1, 0.1), 2323.39 + [Link](-0.2, 0.2)),
["door"] = [Link](750.47 + [Link](-0.2, 0.2), 99.99 + [Link](-
0.1, 0.1), 2297.12 + [Link](-0.2, 0.2)),
["workshop"] = [Link](775.19 + [Link](-0.2, 0.2), 97.73 +
[Link](-0.1, 0.1), 2540.72 + [Link](-0.2, 0.2)),
["power"] = [Link](704.55 + [Link](-0.2, 0.2), 97.83 + [Link](-
0.1, 0.1), 2467.41 + [Link](-0.2, 0.2)),
["powerstation"] = [Link](704.55 + [Link](-0.2, 0.2), 97.83 +
[Link](-0.1, 0.1), 2467.41 + [Link](-0.2, 0.2)),
["carspawn"] = [Link](683.25 + [Link](-0.2, 0.2), 101.28 +
[Link](-0.1, 0.1), 2366.11 + [Link](-0.2, 0.2)),
["carpark"] = [Link](591.81 + [Link](-0.2, 0.2), 98 + [Link](-
0.1, 0.1), 2340.79 + [Link](-0.2, 0.2)),
["outside"] = [Link](315.05 + [Link](-0.2, 0.2), 86.07 + [Link](-
0.1, 0.1), 2224.02 + [Link](-0.2, 0.2)),
["road"] = [Link](376.31 + [Link](-0.2, 0.2), 72.07 + [Link](-
0.1, 0.1), 2254.06 + [Link](-0.2, 0.2)),
["forest"] = [Link](374.94 + [Link](-0.2, 0.2), 77.1 + [Link](-
0.1, 0.1), 2427.41 + [Link](-0.2, 0.2)),
["mountain"] = [Link](561.64 + [Link](-0.2, 0.2), 168.54 +
[Link](-0.1, 0.1), 2551.6 + [Link](-0.2, 0.2)),
["lake"] = [Link](250.99 + [Link](-0.2, 0.2), 72.35 + [Link](-
0.1, 0.1), 2367.44 + [Link](-0.2, 0.2)),
["store"] = [Link](-6.95 + [Link](-0.2, 0.2), 46.05 + [Link](-
0.1, 0.1), 1794.85 + [Link](-0.2, 0.2)),
["donut"] = [Link](253.68 + [Link](-0.2, 0.2), 72.75 + [Link](-
0.1, 0.1), 2157.57 + [Link](-0.2, 0.2)),
["gas"] = [Link](488.84 + [Link](-0.2, 0.2), 72.47 + [Link](-0.1,
0.1), 1602.51 + [Link](-0.2, 0.2)),
["gasstation"] = [Link](488.84 + [Link](-0.2, 0.2), 72.47 +
[Link](-0.1, 0.1), 1602.51 + [Link](-0.2, 0.2)),
["bank"] = [Link](803.21 + [Link](-0.2, 0.2), 71.79 + [Link](-
0.1, 0.1), 1601.75 + [Link](-0.2, 0.2)),
["jewelry"] = [Link](170.9 + [Link](-0.2, 0.2), 73.06 + [Link](-
0.1, 0.1), 1422.29 + [Link](-0.2, 0.2)),
["jewelrystore"] = [Link](170.9 + [Link](-0.2, 0.2), 73.06 +
[Link](-0.1, 0.1), 1422.29 + [Link](-0.2, 0.2)),
["museum"] = [Link](1100.39 + [Link](-0.2, 0.2), 80.67 + [Link](-
0.1, 0.1), 1299.81 + [Link](-0.2, 0.2)),
["casino"] = [Link](350.87 + [Link](-0.2, 0.2), 78.81 + [Link](-
0.1, 0.1), 1231.25 + [Link](-0.2, 0.2)),
["trainstation"] = [Link](618.93 + [Link](-0.2, 0.2), 82.57 +
[Link](-0.1, 0.1), 1193.77 + [Link](-0.2, 0.2)),
["gunshop"] = [Link](394.2 + [Link](-0.2, 0.2), 77.3 + [Link](-
0.1, 0.1), 1581.64 + [Link](-0.2, 0.2)),
["gun"] = [Link](394.2 + [Link](-0.2, 0.2), 77.3 + [Link](-0.1,
0.1), 1581.64 + [Link](-0.2, 0.2)),
["gym"] = [Link](709.72 + [Link](-0.2, 0.2), 99.99 + [Link](-0.1,
0.1), 2368.55 + [Link](-0.2, 0.2)),
["exercise"] = [Link](756.63 + [Link](-0.2, 0.2), 97.75 +
[Link](-0.1, 0.1), 2327.2 + [Link](-0.2, 0.2)),
["weight"] = [Link](756.98 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2334.52 + [Link](-0.2, 0.2)),
["bench"] = [Link](756.98 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2334.52 + [Link](-0.2, 0.2)),
["basketballcourt"] = [Link](784.25 + [Link](-0.2, 0.2), 97.75 +
[Link](-0.1, 0.1), 2432.55 + [Link](-0.2, 0.2)),
["basketball"] = [Link](784.25 + [Link](-0.2, 0.2), 97.75 +
[Link](-0.1, 0.1), 2432.55 + [Link](-0.2, 0.2)),
["soccerfield"] = [Link](779.34 + [Link](-0.2, 0.2), 97.75 +
[Link](-0.1, 0.1), 2376.8 + [Link](-0.2, 0.2)),
["soccer"] = [Link](779.34 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2376.8 + [Link](-0.2, 0.2)),
["field"] = [Link](779.34 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2376.8 + [Link](-0.2, 0.2)),
["ladder"] = [Link](797.8 + [Link](-0.2, 0.2), 97.75 + [Link](-
0.1, 0.1), 2389.52 + [Link](-0.2, 0.2)),
["watchtower"] = [Link](822.24 + [Link](-0.2, 0.2), 130.39 +
[Link](-0.1, 0.1), 2588.75 + [Link](-0.2, 0.2)),
["secondfloor"] = [Link](915.95 + [Link](-0.2, 0.2), 115.06 +
[Link](-0.1, 0.1), 2458.73 + [Link](-0.2, 0.2))
}

-- Extended item locations (for advanced teleporting)


local ItemLocations = {
["m9"] = [Link](821.5, 99.99, 2250.5),
["shotgun"] = [Link](808.6, 99.99, 2250.4),
["ak47"] = [Link](780.3, 99.99, 2250.4),
["hammer"] = [Link](802.9, 99.99, 2250.4),
["knife"] = [Link](802.9, 99.99, 2250.4),
["riot"] = [Link](789.75, 99.99, 2260.55),
["shield"] = [Link](789.75, 99.99, 2260.55),
["car"] = [Link](597.75, 98.2, 2327.5),
["guns"] = [Link](798.4, 99.99, 2251.3),
["keycard"] = [Link](836.58, 99.99, 2284.97),
["breakfast"] = [Link](906.24, 99.99, 2237.73),
["dinner"] = [Link](919.36, 99.99, 2329.31),
["pizza"] = [Link](918.97, 99.99, 2329.94),
["chicken"] = [Link](906.95, 99.99, 2227.12),
["weights"] = [Link](757.56, 97.75, 2331.95),
["bench"] = [Link](757.56, 97.75, 2331.95),
["soccer"] = [Link](778.72, 96.13, 2412.89),
["football"] = [Link](778.72, 96.13, 2412.89),
["ball"] = [Link](778.72, 96.13, 2412.89),
["baseball"] = [Link](946.42, 98.8, 2339.27),
["broom"] = [Link](906.13, 99.99, 2236.09),
["hammer"] = [Link](789.37, 99.99, 2322.31),
["ak"] = [Link](780.3, 99.99, 2250.4),
["rifle"] = [Link](780.3, 99.99, 2250.4),
["remington"] = [Link](808.6, 99.99, 2250.4),
["rem870"] = [Link](808.6, 99.99, 2250.4),
["pistol"] = [Link](821.5, 99.99, 2250.5),
["taser"] = [Link](831.07, 99.99, 2264.78),
["handcuffs"] = [Link](831.07, 99.99, 2264.78),
["pickaxe"] = [Link](906.13, 99.99, 2236.09),
["hammer"] = [Link](906.13, 99.99, 2236.09),
["shiv"] = [Link](906.13, 99.99, 2236.09),
["lockpick"] = [Link](915.95, 115.06, 2458.73),
["c4"] = [Link](915.95, 115.06, 2458.73)
}

-- Vehicle spawn points for comprehensive teleporting


local VehicleSpawnPoints = {
["sedan"] = [Link](650.4, 100.2, 2338.9),
["camaro"] = [Link](612.3, 98.2, 2483.4),
["shuttle"] = [Link](546.2, 98.2, 2329.4),
["police"] = [Link](615.1, 98.2, 2510.6),
["swat"] = [Link](510.2, 103.5, 2245.6),
["car1"] = [Link](614.56, 98.2, 2512.75),
["car2"] = [Link](623.13, 98.2, 2516.77),
["car3"] = [Link](610.62, 98.2, 2470.49),
["car4"] = [Link](617.95, 98.2, 2476.4),
["car5"] = [Link](550.91, 98.2, 2362.38),
["police1"] = [Link](614.56, 98.2, 2512.75),
["police2"] = [Link](623.13, 98.2, 2516.77),
["helicopter"] = [Link](812.41, 130.27, 2606.85),
["heli"] = [Link](812.41, 130.27, 2606.85),
["chopper"] = [Link](812.41, 130.27, 2606.85),
["lambo"] = [Link](612.3, 98.2, 2483.4),
["sports"] = [Link](612.3, 98.2, 2483.4),
["sportscar"] = [Link](612.3, 98.2, 2483.4),
["suv"] = [Link](650.4, 100.2, 2338.9),
["van"] = [Link](546.2, 98.2, 2329.4),
["bus"] = [Link](546.2, 98.2, 2329.4),
["swatvan"] = [Link](510.2, 103.5, 2245.6),
["swattruck"] = [Link](510.2, 103.5, 2245.6),
["truck"] = [Link](547.81, 98.2, 2329.8),
["motorcycle"] = [Link](628.31, 98.2, 2483.73),
["bike"] = [Link](628.31, 98.2, 2483.73),
["atv"] = [Link](628.31, 98.2, 2483.73),
["dirtbike"] = [Link](628.31, 98.2, 2483.73)
}

-- =======================================
-- PERMISSION SYSTEM
-- =======================================

-- Extended permission system with multiple tiers


local PermissionTiers = {
["t1"] = {
["cmds"] = {
-- Movement & teleportation
["kill"] = true, ["loopkill"] = true, ["unloopkill"] = true, ["speed"]
= true, ["tp"] = true,
["teleport"] = true, ["cmds"] = true, ["listcommands"] = true, ["yard"]
= true, ["cells"] = true,
["cafeteria"] = true, ["armory"] = true, ["armoury"] = true, ["base"] =
true, ["crimbase"] = true,
["cafe"] = true, ["tower"] = true, ["prison"] = true, ["roof"] = true,
["gate"] = true, ["sewers"] = true,
["parking"] = true, ["inmate"] = true, ["prisoner"] = true, ["guard"] =
true, ["criminal"] = true,
["crim"] = true, ["m9"] = true, ["shotgun"] = true, ["ak47"] = true,
["riot"] = true, ["gun"] = true, ["guns"] = true,

-- Added from PrizzLife - Basic movement & utility


["fling"] = true, ["fly"] = true, ["noclip"] = true, ["xray"] = true,
["esp"] = true, ["spectate"] = true,
["jumppower"] = true, ["jp"] = true, ["fullbright"] = true, ["fb"] =
true, ["brightness"] = true,
["goto"] = true, ["to"] = true, ["help"] = true, ["h"] = true,
["bring"] = true, ["re"] = true, ["respawn"] = true,
["refresh"] = true, ["jail"] = true, ["arrest"] = true, ["free"] =
true, ["antitase"] = true, ["antiarrest"] = true,
["keycard"] = true, ["removehatsviz"] = true, ["removeaccessoriesviz"]
= true, ["doors"] = true,
["opendoors"] = true, ["closedoors"] = true, ["head"] = true, ["punch"]
= true, ["view"] = true, ["unview"] = true,

-- Additional single-player targeted commands


["hkill"] = true, ["hidekill"] = true, ["voidkill"] = true,
["arrestkill"] = true, ["akill"] = true,
["skydive"] = true, ["sky"] = true, ["tase"] = true, ["handcuff"] =
true, ["cuff"] = true, ["uncuff"] = true,
["walkspeed"] = true, ["ws"] = true, ["jump"] = true, ["gravity"] =
true, ["grav"] = true, ["invisibility"] = true,
["invisible"] = true, ["invis"] = true, ["visible"] = true, ["vis"] =
true, ["shield"] = true, ["shield"] = true,
["freeze"] = true, ["unfreeze"] = true, ["trip"] = true, ["kick"] =
true, ["pm"] = true, ["msg"] = true,
["message"] = true, ["whisper"] = true, ["god"] = true, ["ungod"] =
true, ["forcefield"] = true, ["ff"] = true,
["heal"] = true, ["health"] = true, ["damage"] = true, ["hurt"] = true,
["dress"] = true, ["undress"] = true,
["naked"] = true, ["blind"] = true, ["blind"] = true, ["unblind"] =
true, ["nightvision"] = true, ["nv"] = true,
["thermal"] = true, ["ir"] = true, ["infrared"] = true, ["night"] =
true, ["day"] = true, ["sunset"] = true,
["sunrise"] = true, ["time"] = true, ["clearwalls"] = true,
["restwalls"] = true, ["removebarriers"] = true,
["punch"] = true, ["superpunch"] = true, ["megapunch"] = true,
["oneshot"] = true, ["onepunch"] = true,

-- Basic admin utility


["rejoin"] = true, ["rj"] = true, ["serverhop"] = true, ["shop"] =
true, ["savepos"] = true, ["loadpos"] = true,
["pos"] = true, ["position"] = true, ["tpto"] = true, ["ctp"] = true,
["clicktp"] = true, ["info"] = true,
["find"] = true, ["track"] = true, ["untrack"] = true, ["copy"] = true,
["paste"] = true, ["cut"] = true,
["delete"] = true, ["del"] = true, ["undo"] = true, ["redo"] = true,
["hide"] = true, ["show"] = true,
["exit"] = true, ["quit"] = true, ["settings"] = true, ["options"] =
true, ["config"] = true, ["prefix"] = true,
["setprefix"] = true, ["changeprefix"] = true, ["clear"] = true,
["cls"] = true, ["version"] = true, ["ver"] = true,
["update"] = true, ["check"] = true, ["upgrades"] = true, ["credits"] =
true, ["authors"] = true,
["discord"] = true, ["website"] = true, ["site"] = true, ["web"] =
true, ["forum"] = true
},
["all"] = false,
["desc"] = "Tier 1: Basic admin - Non-disruptive commands and single-player
targeting"
},
["t2"] = {
["cmds"] = {
-- Include all T1 commands
["kill"] = true, ["loopkill"] = true, ["unloopkill"] = true, ["speed"]
= true, ["tp"] = true,
["teleport"] = true, ["kick"] = true, ["jail"] = true, ["free"] = true,
["team"] = true, ["cmds"] = true,
["listcommands"] = true, ["yard"] = true, ["cells"] = true,
["cafeteria"] = true, ["armory"] = true,
["armoury"] = true, ["base"] = true, ["crimbase"] = true, ["cafe"] =
true, ["tower"] = true,
["prison"] = true, ["roof"] = true, ["gate"] = true, ["sewers"] = true,
["parking"] = true,
["inmate"] = true, ["prisoner"] = true, ["guard"] = true, ["criminal"]
= true, ["crim"] = true,
["gun"] = true, ["guns"] = true, ["riot"] = true, ["m9"] = true,
["shotgun"] = true, ["ak47"] = true,
["meleekill"] = true, ["mkill"] = true, ["meleeaura"] = true,
["tkillaura"] = true, ["autoguns"] = true,
["antitase"] = true, ["antiarrest"] = true, ["antishoot"] = true,
["antipunch"] = true, ["fullbright"] = true,
["antivoid"] = true, ["antifling"] = true, ["antishield"] = true,
["antibring"] = true,
["fling"] = true, ["fly"] = true, ["noclip"] = true, ["esp"] = true,
["xray"] = true, ["spectate"] = true,
["killaura"] = true, ["tase"] = true, ["shield"] = true, ["freeze"] =
true, ["unfreeze"] = true,
["explode"] = true, ["loopexplode"] = true, ["jumppower"] = true,
["jp"] = true, ["goto"] = true,
["to"] = true, ["help"] = true, ["h"] = true, ["bring"] = true, ["re"]
= true, ["respawn"] = true,
["refresh"] = true, ["arrest"] = true, ["keycard"] = true, ["taser"] =
true, ["doors"] = true,
["opendoors"] = true, ["closedoors"] = true, ["invisibility"] = true,
["invis"] = true, ["visible"] = true,
["vis"] = true, ["godmode"] = true, ["god"] = true, ["ff"] = true,
["forcefield"] = true, ["headbring"] = true,
["head"] = true, ["punch"] = true, ["spampunch"] = true, ["view"] =
true, ["unview"] = true, ["skydive"] = true,
["sky"] = true, ["gravity"] = true, ["grav"] = true, ["savepos"] =
true, ["loadpos"] = true, ["void"] = true,
["removehatsviz"] = true, ["removeaccessoriesviz"] = true,
["removefaces"] = true,
["hkill"] = true, ["hidekill"] = true, ["voidkill"] = true,
["arrestkill"] = true, ["akill"] = true,
["skydive"] = true, ["sky"] = true, ["tase"] = true, ["handcuff"] =
true, ["cuff"] = true, ["uncuff"] = true,
["walkspeed"] = true, ["ws"] = true, ["jump"] = true, ["gravity"] =
true, ["grav"] = true, ["invisibility"] = true,
["invisible"] = true, ["invis"] = true, ["visible"] = true, ["vis"] =
true, ["shield"] = true, ["shield"] = true,
["freeze"] = true, ["unfreeze"] = true, ["trip"] = true, ["kick"] =
true, ["pm"] = true, ["msg"] = true,
["message"] = true, ["whisper"] = true, ["god"] = true, ["ungod"] =
true, ["forcefield"] = true, ["ff"] = true,
["heal"] = true, ["health"] = true, ["damage"] = true, ["hurt"] = true,
["dress"] = true, ["undress"] = true,
["naked"] = true, ["blind"] = true, ["blind"] = true, ["unblind"] =
true, ["nightvision"] = true, ["nv"] = true,
["thermal"] = true, ["ir"] = true, ["infrared"] = true, ["night"] =
true, ["day"] = true, ["sunset"] = true,
["sunrise"] = true, ["time"] = true, ["clearwalls"] = true,
["restwalls"] = true, ["removebarriers"] = true,
["punch"] = true, ["superpunch"] = true, ["megapunch"] = true,
["oneshot"] = true, ["onepunch"] = true,
["rejoin"] = true, ["rj"] = true, ["serverhop"] = true, ["shop"] =
true, ["savepos"] = true, ["loadpos"] = true,
["pos"] = true, ["position"] = true, ["tpto"] = true, ["ctp"] = true,
["clicktp"] = true, ["info"] = true,
["find"] = true, ["track"] = true, ["untrack"] = true, ["copy"] = true,
["paste"] = true, ["cut"] = true,
["delete"] = true, ["del"] = true, ["undo"] = true, ["redo"] = true,
["hide"] = true, ["show"] = true,
["exit"] = true, ["quit"] = true, ["settings"] = true, ["options"] =
true, ["config"] = true, ["prefix"] = true,
["setprefix"] = true, ["changeprefix"] = true, ["clear"] = true,
["cls"] = true, ["version"] = true, ["ver"] = true,
["update"] = true, ["check"] = true, ["upgrades"] = true, ["credits"] =
true, ["authors"] = true,
["discord"] = true, ["website"] = true, ["site"] = true, ["web"] =
true, ["forum"] = true,

-- Additional multi-player capabilities


["teleportall"] = true, ["tpall"] = true, ["bringall"] = true,
["joinlogs"] = true, ["exitlogs"] = true,
["killogs"] = true, ["clicktp"] = true, ["ctp"] = true, ["clickkill"] =
true, ["ck"] = true,
["clickarrest"] = true, ["ca"] = true, ["clicktase"] = true, ["ct"] =
true, ["antilag"] = true,
["clearmap"] = true, ["crash"] = true, ["car"] = true, ["vehicle"] =
true, ["helicopter"] = true,
["heli"] = true, ["noragdoll"] = true, ["gravity"] = true, ["grav"] =
true, ["time"] = true,
["day"] = true, ["night"] = true, ["admin"] = true, ["unadmin"] = true,
["rank"] = true, ["unrank"] = true,
["whitelist"] = true, ["unwhitelist"] = true, ["blacklist"] = true,
["unblacklist"] = true, ["voidall"] = true,
["prison"] = true, ["teleportenemies"] = true, ["tpenemies"] = true,
["bringenemies"] = true,
["killenemies"] = true, ["loopkillteam"] = true, ["unloopkillteam"] =
true
},
["all"] = true,
["desc"] = "Tier 2: Full admin - All basic commands plus multi-player
targeting"
},
["t3"] = {
["cmds"] = {
-- Include all T1 & T2 commands (implied but not listed for brevity)
-- Advanced admin commands
["crash"] = true, ["crashserver"] = true, ["lagserver"] = true,
["breakserver"] = true, ["shutdown"] = true,
["nuke"] = true, ["nuke"] = true, ["nukemap"] = true, ["killall"] =
true, ["freezeall"] = true,
["unfreezeall"] = true, ["kickall"] = true, ["banall"] = true,
["explodeall"] = true, ["flingall"] = true,
["taseall"] = true, ["arrestall"] = true, ["unarrestall"] = true,
["godall"] = true, ["ungodall"] = true,
["tripall"] = true, ["crashall"] = true, ["spamall"] = true,
["voidall"] = true, ["blindall"] = true,
["unblindall"] = true, ["invisall"] = true, ["visall"] = true,
["healall"] = true, ["killallguards"] = true,
["killallinmates"] = true, ["killallcriminals"] = true, ["loopkillall"]
= true, ["unloopkillall"] = true,
["loopexplodeall"] = true, ["unloopexplodeall"] = true,
["looparrestall"] = true, ["unlooparrestall"] = true,
["looptaseall"] = true, ["unlooptaseall"] = true, ["loopflingall"] =
true, ["unloopflingall"] = true,
["loopcrashall"] = true, ["unloopcrashall"] = true, ["createteam"] =
true, ["deleteteam"] = true,
["teamcolor"] = true, ["teamsadd"] = true, ["teamremove"] = true,
["spawnvehicle"] = true, ["spawncar"] = true,
["spawnweapon"] = true, ["giveall"] = true, ["giveallguards"] = true,
["giveallcriminals"] = true,
["giveallprisoners"] = true, ["setscriptdata"] = true,
["getscriptdata"] = true, ["clearscriptdata"] = true,
["replicatestorage"] = true, ["serverstorage"] = true,
["setglobaldata"] = true, ["getglobaldata"] = true,
["clearglobaldata"] = true, ["serverban"] = true, ["serverunban"] =
true, ["serverbanlist"] = true,
["serverbanallbut"] = true, ["serverbanteam"] = true,
["serverlockdown"] = true, ["serverlockdownoff"] = true,
["awardadminteam"] = true, ["antiadminabuse"] = true, ["serveresp"] =
true, ["makeplayerlaggy"] = true,
["fixlaggyplayer"] = true, ["massexplode"] = true, ["silentaim"] =
true, ["silentaimoff"] = true,
["superadmin"] = true, ["admin"] = true, ["btools"] = true,
["explorer"] = true, ["dex"] = true,
["remotespy"] = true
},
["all"] = true,
["desc"] = "Tier 3: Super admin - Mass commands and server manipulation"
},
["owner"] = {
["cmds"] = {
-- Include all commands (implied but not listed for brevity)
-- Reserved for the owner - critical commands
["banish"] = true, ["permaban"] = true, ["unban"] = true,
["lockserver"] = true, ["unlockserver"] = true,
["shutdown"] = true, ["banall"] = true, ["troll"] = true, ["infectall"]
= true, ["godmode"] = true,
["antigod"] = true, ["forcereset"] = true, ["resetall"] = true,
["superpowers"] = true, ["script"] = true,
["dex"] = true, ["removeanticheat"] = true, ["btools"] = true,
["terminate"] = true, ["forcecrash"] = true,
["serverdestroy"] = true, ["clearalldata"] = true, ["removealldata"] =
true, ["destroyanticheat"] = true,
["overrideanticheat"] = true, ["togglegamescripts"] = true,
["toggleallscripts"] = true,
["injectserverscript"] = true, ["executeserverside"] = true,
["getserversecrets"] = true,
["readservermemory"] = true, ["writeservermemory"] = true,
["executeonserver"] = true,
["serverscriptservice"] = true, ["replaceserverscript"] = true,
["backdoorserver"] = true,
["rootpermissions"] = true, ["rootserver"] = true, ["serverowner"] =
true, ["createbackdoor"] = true,
["createserverkey"] = true, ["allgameaccess"] = true,
["completegameaccess"] = true,
["admineveryone"] = true, ["adminteam"] = true, ["unadmineveryone"] =
true, ["masterkey"] = true,
["accessserver"] = true, ["serveraccess"] = true, ["givepermissions"] =
true, ["takepermissions"] = true,
["deleteserver"] = true, ["killserver"] = true, ["damagestatus"] =
true, ["pingserver"] = true,
["getplayerprivatedata"] = true, ["destroyadmin"] = true,
["neutralizeadmin"] = true,
["createpermanentkey"] = true, ["injectpermanentscript"] = true,
["backuppermissions"] = true,
["restorepermissions"] = true, ["nullifyadmin"] = true,
["destroyantiadmin"] = true,
["hackserver"] = true, ["serverhack"] = true, ["injectrootkit"] = true,
["rootkitinstall"] = true,
["rootkituninstall"] = true, ["installadminpackage"] = true,
["uninstalladminpackage"] = true,
["accessserverbackend"] = true, ["accessadminbackend"] = true,
["accessbackendfunction"] = true,
["unlockbackend"] = true, ["lockbackend"] = true,
["createserveraccess"] = true,
["deleteserveraccess"] = true, ["createbackendchannel"] = true,
["deletebackendchannel"] = true
},
["all"] = true,
["desc"] = "Owner: Absolute control - Everything, including server control"
}
}

-- Alias mapping for commands (so multiple command strings can trigger same
function)
local CommandAliases = {
["teleport"] = "tp",
["cmds"] = "listcommands",
["commands"] = "listcommands",
["help"] = "listcommands",
["cafe"] = "cafeteria",
["armoury"] = "armory",
["criminal"] = "crim",
["mkill"] = "meleekill",
["akill"] = "arrestkill",
["goto"] = "tp",
["bring"] = "tp",
["shop"] = "store",
["explode"] = "kaboom",
["boom"] = "kaboom",
["invis"] = "invisible",
["vis"] = "visible",
["ctp"] = "clicktp",
["lagserver"] = "crash",
["reset"] = "respawn",
["ws"] = "speed",
["jp"] = "jumppower",
["hkill"] = "hidekill",
["h"] = "help",
["g"] = "gun",
["k"] = "kill",
["lk"] = "loopkill",
["sg"] = "shotgun",
["p"] = "prisoner",
["i"] = "inmate",
["c"] = "crim",
["cr"] = "crim",
["gd"] = "guard",
["clearall"] = "clear",
["clearcmds"] = "clear",
["fix"] = "respawn",
["die"] = "respawn",
["r"] = "respawn",
["re"] = "respawn",
["refreshcharacter"] = "respawn",
["refresh"] = "respawn",
["heli"] = "helicopter",
["tpall"] = "teleportall",
["ka"] = "killaura",
["ff"] = "forcefield",
["godmode"] = "god",
["grav"] = "gravity",
["serverhop"] = "shop",
["cls"] = "clear",
["ver"] = "version",
["info"] = "playerinfo",
["rj"] = "rejoin",
["cars"] = "car",
["rank"] = "admin",
["unrank"] = "unadmin",
["btools"] = "buildtools",
["explorer"] = "dex",
["setprefix"] = "prefix",
["changeprefix"] = "prefix",
["inf"] = "infinite",
["invisible"] = "invis",
["visible"] = "vis",
["cuff"] = "handcuff",
["uncuff"] = "unhandcuff",
["killenemies"] = "killteam",
["remotespy"] = "rspy",
["walkspeed"] = "speed",
["jump"] = "jumppower",
["message"] = "msg",
["whisper"] = "pm",
["private"] = "pm",
["pistol"] = "m9",
["shotty"] = "shotgun",
["snipe"] = "sniperrifle",
["gun"] = "weapons",
["weapons"] = "guns",
["rifle"] = "ak47",
["items"] = "guns",
["gear"] = "guns",
["kill"] = "meleekill",
["tele"] = "teleport",
["warp"] = "teleport",
["godmode"] = "god",
["invincible"] = "god",
["heal"] = "health",
["revive"] = "heal",
["mods"] = "weapons",
["meleekill"] = "mkill",
["invis"] = "invisible",
["vis"] = "visible",
["vanish"] = "invisible",
["appear"] = "visible",
["hide"] = "invisible",
["show"] = "visible",
["goback"] = "return",
["savecf"] = "savepos",
["loadcf"] = "loadpos",
["tpto"] = "goto",
["tpme"] = "bring",
["summon"] = "bring",
["fetch"] = "bring",
["stuck"] = "respawn",
["glitch"] = "respawn",
["force"] = "power",
["quicksand"] = "forcefield",
["shield"] = "forcefield",
["protect"] = "forcefield",
["defend"] = "forcefield",
["trip"] = "fall",
["stumble"] = "fall",
["injure"] = "damage",
["hurt"] = "damage",
["pain"] = "damage",
["punch"] = "hit",
["slap"] = "hit",
["strike"] = "hit",
["remove"] = "delete",
["destroy"] = "delete",
["erase"] = "delete",
["skyfall"] = "skydive",
["fallfromsky"] = "skydive",
["giveaccess"] = "admin",
["authorize"] = "admin",
["removeaccess"] = "unadmin",
["deauthorize"] = "unadmin",
["handcuff"] = "arrest",
["detain"] = "arrest",
["catch"] = "arrest",
["free"] = "release",
["uncuff"] = "release",
["liberate"] = "release",
["unarrest"] = "release",
["kick"] = "boot",
["remove"] = "boot",
["eject"] = "boot",
["showall"] = "unhideall",
["tele"] = "tp"
}

-- =======================================
-- UTILITY FUNCTIONS & CORE MECHANICS
-- =======================================

-- Notification system (PrizzLife style)


local function Notif(title, text, duration)
duration = duration or 3

if [Link] then
pcall(function()
[Link]:SetCore("SendNotification", {
Title = title or "Notification",
Text = text or "",
Duration = duration
})
end)
end

if [Link] then
print("[" .. title .. "] " .. text)
end

-- Keep track of execution count


Settings._internal.executionCount = Settings._internal.executionCount + 1
-- Store in command history
[Link](Settings._internal.commandHistory, {
title = title,
text = text,
time = [Link]()
})

-- Keep history at reasonable size


if #Settings._internal.commandHistory > 50 then
[Link](Settings._internal.commandHistory, 1)
end
end

-- Send notification in chat with stealth


local function sendNotification(message, color)
color = color or [Link](255, 255, 0)

pcall(function()
game:GetService("StarterGui"):SetCore("ChatMakeSystemMessage", {
Text = "[ADMIN] " .. message,
Color = color,
Font = [Link]
})
end)

if [Link] then
print("[ADMIN] " .. message)
end
end

-- Send message with stealth (whisper)


local function sendWhisper(player, message)
if not player then return end

pcall(function()
if [Link] and
ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") then

[Link]:FireServer("/w " ..
[Link] .. " " .. message, "All")
else

[Link]:FireServer(message,
"All")
end
end)

if player == LocalPlayer then


sendNotification(message)
end
end

-- Enhanced Find player function (combines both scripts' player finders)


local function findPlayer(arg, speaker)
if not arg then return speaker end
speaker = speaker or LocalPlayer

-- Handle special cases


if typeof(arg) == "string" then
arg = arg:lower()

if arg == "me" then


return speaker
elseif arg == "all" then
return "all"
elseif arg == "others" then
return "others"
elseif arg == "random" then
local playerList = Players:GetPlayers()
return playerList[[Link](1, #playerList)]
elseif arg == "nearest" or arg == "closest" then
local nearest, dist = nil, [Link]

for _, player in pairs(Players:GetPlayers()) do


if player ~= speaker and
[Link] and
[Link]:FindFirstChild("HumanoidRootPart") and
[Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local magnitude = ([Link]
- [Link]).magnitude
if magnitude < dist then
dist = magnitude
nearest = player
end
end
end
return nearest
elseif arg == "farthest" then
local farthest, dist = nil, 0

for _, player in pairs(Players:GetPlayers()) do


if player ~= speaker and
[Link] and
[Link]:FindFirstChild("HumanoidRootPart") and
[Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local magnitude = ([Link]
- [Link]).magnitude
if magnitude > dist then
dist = magnitude
farthest = player
end
end
end
return farthest
elseif arg == "team" then
local sameTeam = {}
local myTeam = [Link]

for _, player in pairs(Players:GetPlayers()) do


if [Link] == myTeam and player ~= speaker then
[Link](sameTeam, player)
end
end

if #sameTeam > 0 then


return "team", sameTeam
else
return nil
end
elseif arg == "inmates" or arg == "prisoners" then
local teams = {}
for _, player in pairs(Players:GetPlayers()) do
if [Link] == "Bright orange" then
[Link](teams, player)
end
end
return "inmates", teams
elseif arg == "guards" then
local teams = {}
for _, player in pairs(Players:GetPlayers()) do
if [Link] == "Bright blue" then
[Link](teams, player)
end
end
return "guards", teams
elseif arg == "criminals" or arg == "crims" then
local teams = {}
for _, player in pairs(Players:GetPlayers()) do
if [Link] == "Really red" then
[Link](teams, player)
end
end
return "criminals", teams
elseif arg == "enemies" or arg == "enemy" then
local enemies = {}
local myTeam = [Link]

for _, player in pairs(Players:GetPlayers()) do


if [Link] ~= myTeam then
[Link](enemies, player)
end
end

if #enemies > 0 then


return "enemies", enemies
else
return nil
end
elseif arg == "whitelist" or arg == "whitelisted" then
local whitelist = {}
for name, _ in pairs([Link]) do
local player = Players:FindFirstChild(name)
if player then
[Link](whitelist, player)
end
end
if #whitelist > 0 then
return "whitelist", whitelist
else
return nil
end
elseif arg == "blacklist" or arg == "blacklisted" then
local blacklist = {}
for name, _ in pairs([Link]) do
local player = Players:FindFirstChild(name)
if player then
[Link](blacklist, player)
end
end
if #blacklist > 0 then
return "blacklist", blacklist
else
return nil
end
elseif arg == "ranked" then
local ranked = {}
for name, _ in pairs([Link]) do
local player = Players:FindFirstChild(name)
if player then
[Link](ranked, player)
end
end
if #ranked > 0 then
return "ranked", ranked
else
return nil
end
else
-- Check exact name match
for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower() == arg then
return player
end
end

-- Check display name match


for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower() == arg then
return player
end
end

-- Check partial name match


for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower():sub(1, #arg) == arg then
return player
end
end

-- Check partial display name match


for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower():sub(1, #arg) == arg then
return player
end
end

-- Check if name contains string


for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower():find(arg, 1, true) then
return player
end
end
-- Check if display name contains string
for _, player in pairs(Players:GetPlayers()) do
if [Link]:lower():find(arg, 1, true) then
return player
end
end
end
end

return nil
end

-- Function to check if a player has specific admin permission


local function hasPermission(player, command)
if player == LocalPlayer then
return true -- Local player (script executor) always has permission
end

if [Link][[Link]] then
local tier = [Link][[Link]]

if tier and PermissionTiers[tier] then


if PermissionTiers[tier]["cmds"][command:lower()] then
return true
end
end
end

return false
end

-- Function to check if a player can use "all" or "team" targets


local function canUseMultiTarget(player)
if player == LocalPlayer then
return true -- Local player can always use multi-targeting
end

if [Link] and [Link][[Link]] then


local tier = [Link][[Link]]

if tier and PermissionTiers[tier] then


return PermissionTiers[tier]["all"]
end
end

return false
end

-- Verify the arguments (player + target) are valid


local function verifyArgs(player, target, command)
if not player or not target then return false end

-- Always allow local player to run commands on self


if player == LocalPlayer and target == LocalPlayer then
return true
end

-- Check if the player has permission to run this command


if not hasPermission(player, command) then
return false
end

-- Check multi-target permissions


if target == "all" or target == "team" or target == "others" then
if not canUseMultiTarget(player) then
return false
end
end

-- Check if target is whitelisted (protected)


if typeof(target) == "Instance" and target:IsA("Player") then
if [Link][[Link]] and player ~= LocalPlayer then
return false
end
end

return true
}

-- Implement proper stealth hooking for remotes


local function hookRemote(remote, callback)
if not remote or not callback then return end

local originalFunction
originalFunction = hookfunction([Link], function(self, ...)
local args = {...}
local result = callback(self, args)

if result == false then


return nil -- Block the remote call
elseif type(result) == "table" then
return originalFunction(self, unpack(result)) -- Modified arguments
else
return originalFunction(self, ...) -- Original arguments
end
end)

-- Store in _internal for potential later unhooking


[Link](Settings._internal.hookedFunctions, {
remote = remote,
original = originalFunction
})

return originalFunction
end

-- Check if player is in certain range


local function isPlayerInRange(player, range)
if not [Link] or not
[Link]:FindFirstChild("HumanoidRootPart") then
return false
end

if not [Link] or not


[Link]:FindFirstChild("HumanoidRootPart") then
return false
end
local distance = ([Link] -
[Link]).Magnitude
return distance <= range
end

-- Function to get the character directly (with error checking)


local function getCharacter(player)
if not player then return nil end

if player == "all" then


return "all"
end

if typeof(player) == "string" then


player = findPlayer(player)
end

if not player or not player:IsA("Player") then


return nil
end

return [Link]
end

-- Function to get all relevant parts of a player


local function getBody(player)
local character = getCharacter(player)
if not character then return nil end

local humanoid = character:FindFirstChild("Humanoid")


local rootPart = character:FindFirstChild("HumanoidRootPart")
local head = character:FindFirstChild("Head")

if not humanoid or not rootPart or not head then


return nil
end

return {
character = character,
humanoid = humanoid,
rootPart = rootPart,
head = head
}
end

-- Function to teleport a player to a location


local function teleportPlayer(player, location)
if not player or not location then return false end

local character = getCharacter(player)


if not character then return false end

local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")


if not humanoidRootPart then return false end

-- Handle different types of location


if typeof(location) == "CFrame" then
[Link] = location
elseif typeof(location) == "Vector3" then
[Link] = [Link](location)
elseif typeof(location) == "Instance" and location:IsA("BasePart") then
[Link] = [Link]
elseif typeof(location) == "string" then
local locationCFrame = TeleportLocations[location:lower()]
if locationCFrame then
[Link] = locationCFrame
end
elseif typeof(location) == "Instance" and location:IsA("Player") then
local targetCharacter = getCharacter(location)
if targetCharacter and targetCharacter:FindFirstChild("HumanoidRootPart")
then
[Link] = [Link] *
[Link](0, 0, 3)
end
end

-- Track teleports for debug purposes


Settings._internal.teleportCount = Settings._internal.teleportCount + 1

-- Store position history


[Link](Settings._internal.positionHistory, {
player = [Link],
position = [Link],
time = [Link]()
})

-- Keep history at reasonable size


if #Settings._internal.positionHistory > 50 then
[Link](Settings._internal.positionHistory, 1)
end

return true
end

-- Function to set a player's team


local function setTeam(player, team)
if not player or not team then return false end

local workspace = game:GetService("Workspace")

-- Validate player
local character = getCharacter(player)
if not character then return false end

-- Convert string team names to proper formats


if team:lower() == "inmate" or team:lower() == "prisoner" or team:lower() ==
"orange" then
team = "Bright orange"
elseif team:lower() == "guard" or team:lower() == "police" or team:lower() ==
"blue" then
team = "Bright blue"
elseif team:lower() == "criminal" or team:lower() == "crim" or team:lower() ==
"red" then
team = "Really red"
elseif team:lower() == "neutral" or team:lower() == "none" then
team = "Medium stone grey"
end
-- Get the appropriate team event
if team == "Bright orange" then
[Link]:FireServer("Bright orange")
elseif team == "Bright blue" then
[Link]:FireServer("Bright blue")
elseif team == "Really red" then
-- For criminals, we need to teleport to the criminal base
if player == LocalPlayer then
teleportPlayer(player, TeleportLocations["crimbase"])
wait(0.5) -- Wait a bit to become criminal
else
-- For other players, we need to use a different method
local body = getBody(player)
if body then
[Link]:FireServer([Link])
wait(0.1)
[Link]:FireServer("Bright orange")
wait(0.1)
teleportPlayer(player, TeleportLocations["crimbase"])
end
end
end

return true
end

-- Function to perform an action on a player with stealth


local function performPlayerAction(player, action, ...)
if not player or not action then return false end

local args = {...}


local character = getCharacter(player)
if not character then return false end

if action == "kill" then


-- Kill method with stealth
local body = getBody(player)
if not body then return false end

-- Most effective kill method that works client-side


local currentPos = [Link]
teleportPlayer(player, [Link](980, -500, 2290)) -- Void kill

-- Track for debug


Settings._internal.killCount = Settings._internal.killCount + 1

-- Store in kill history


[Link](Settings._internal.killHistory, {
player = [Link],
position = [Link],
time = [Link]()
})

-- Keep history at reasonable size


if #Settings._internal.killHistory > 50 then
[Link](Settings._internal.killHistory, 1)
end

return true
elseif action == "tase" then
-- Tase method - works via remote events
local body = getBody(player)
if not body then return false end

if workspace:FindFirstChild("Remote") and
[Link]:FindFirstChild("tazePlayer") then
[Link]:FireServer([Link])
end

return true
elseif action == "arrest" then
-- Arrest method - works via remote events
local body = getBody(player)
if not body then return false end

if workspace:FindFirstChild("Remote") and
[Link]:FindFirstChild("arrest") then
[Link]:FireServer([Link])
end

return true
elseif action == "bring" or action == "to" then
-- Bring a player to a target location
local targetPlayer = args[1]
local targetCharacter = getCharacter(targetPlayer)

if not targetCharacter or not


targetCharacter:FindFirstChild("HumanoidRootPart") then
return false
end

teleportPlayer(player, [Link] *
[Link](0, 0, 3))
return true
elseif action == "fling" then
-- Fling a player - give them extreme velocity
local body = getBody(player)
if not body then return false end

-- Create fling effect by applying extreme velocity


local velocity = args[1] or 1000
if typeof(velocity) ~= "number" then velocity = 1000 end

if [Link]:FindFirstChild("BodyVelocity") then
[Link]:Destroy()
end

local bodyVelocity = [Link]("BodyVelocity")


[Link] = [Link]([Link], [Link], [Link])
bodyVelocity.P = [Link]
[Link] = [Link](
[Link](-velocity, velocity),
[Link](velocity/2, velocity),
[Link](-velocity, velocity)
)
[Link] = [Link]

-- Auto-cleanup after short delay


game:GetService("Debris"):AddItem(bodyVelocity, 0.1)

return true
elseif action == "freeze" then
-- Freeze a player in place
local body = getBody(player)
if not body then return false end

-- Create anti-movement constraints


local bodyVelocity = [Link]("BodyVelocity")
[Link] = [Link]([Link], [Link], [Link])
bodyVelocity.P = [Link]
[Link] = [Link](0, 0, 0)
[Link] = "FreezeConstraint"
[Link] = [Link]

-- Also freeze rotation


local bodyGyro = [Link]("BodyGyro")
[Link] = [Link]([Link], [Link], [Link])
bodyGyro.D = 100
bodyGyro.P = 10000
[Link] = [Link]
[Link] = "FreezeGyro"
[Link] = [Link]

return true
elseif action == "unfreeze" then
-- Unfreeze a frozen player
local body = getBody(player)
if not body then return false end

-- Remove freeze constraints


for _, constraint in pairs([Link]:GetChildren()) do
if [Link] == "FreezeConstraint" or [Link] ==
"FreezeGyro" then
constraint:Destroy()
end
end

return true
elseif action == "explode" then
-- Create explosion effect at player
local body = getBody(player)
if not body then return false end

local explosion = [Link]("Explosion")


[Link] = args[1] or 10
[Link] = args[2] or 500000
[Link] = [Link]
[Link] = workspace

return true
elseif action == "shield" or action == "ff" or action == "forcefield" then
-- Give player a protective forcefield
local body = getBody(player)
if not body then return false end

if [Link]:FindFirstChild("ForceField") then
[Link]:Destroy()
else
local forcefield = [Link]("ForceField")
[Link] = [Link]
end

return true
elseif action == "invisible" or action == "invis" then
-- Make player invisible
local body = getBody(player)
if not body then return false end

-- Loop through all parts and make transparent


for _, part in pairs([Link]:GetDescendants()) do
if part:IsA("BasePart") or part:IsA("Decal") then
[Link] = 1
end
end

return true
elseif action == "visible" or action == "vis" then
-- Make player visible again
local body = getBody(player)
if not body then return false end

-- Loop through all parts and reset transparency


for _, part in pairs([Link]:GetDescendants()) do
if part:IsA("BasePart") then
if [Link] == "Head" then
[Link] = 0
elseif [Link] == "HumanoidRootPart" then
[Link] = 1
else
[Link] = 0
end
elseif part:IsA("Decal") then
[Link] = 0
end
end

return true
elseif action == "speed" or action == "walkspeed" then
-- Set player's movement speed
local body = getBody(player)
if not body then return false end

local speed = args[1] or 16


if typeof(speed) ~= "number" then speed = 16 end

[Link] = speed

return true
elseif action == "jumppower" or action == "jp" then
-- Set player's jump height
local body = getBody(player)
if not body then return false end

local power = args[1] or 50


if typeof(power) ~= "number" then power = 50 end
[Link] = power

return true
elseif action == "health" or action == "heal" then
-- Set player's health
local body = getBody(player)
if not body then return false end

local health = args[1] or 100


if typeof(health) ~= "number" then health = 100 end

[Link] = health

return true
elseif action == "damage" or action == "hurt" then
-- Damage a player
local body = getBody(player)
if not body then return false end

local damage = args[1] or 25


if typeof(damage) ~= "number" then damage = 25 end

[Link]:TakeDamage(damage)

return true
elseif action == "respawn" or action == "reset" then
-- Force player to respawn
local body = getBody(player)
if not body then return false end

if player == LocalPlayer then


[Link] = 0
wait(1)
character:BreakJoints()
else
performPlayerAction(player, "kill")
end

return true
end

return false
end

-- Function to handle giving items (guns, etc)


local function giveItem(player, item)
if not player or not item then return false end

-- Convert item name to standard format


item = item:lower()
if item == "handgun" or item == "pistol" then item = "m9" end
if item == "ak" or item == "assault" or item == "assaultrifle" then item =
"ak47" end
if item == "shotty" or item == "rem" or item == "remington" then item =
"shotgun" end
if item == "riotshield" or item == "shield" then item = "riot" end

-- Handle "all guns" special case


if item == "guns" or item == "allguns" or item == "weapons" then
giveItem(player, "m9")
wait(0.3)
giveItem(player, "ak47")
wait(0.3)
giveItem(player, "shotgun")
wait(0.3)
giveItem(player, "riot")
return true
end

-- Check if it's a valid item


local itemCFrame = ItemLocations[item]
if not itemCFrame then
return false
end

local character = getCharacter(player)


if not character then return false end

-- Different methods based on who we're giving to


if player == LocalPlayer then
local savePos = character:FindFirstChild("HumanoidRootPart").CFrame

-- Use stealth item giving method


character:FindFirstChild("HumanoidRootPart").CFrame = itemCFrame
wait(0.4)

-- Find the item to pick up (context action)


for _, v in pairs(workspace.Prison_ITEMS.giver:GetDescendants()) do
if [Link] == "Humanoid" and [Link] and
[Link]:FindFirstChild("ItemName") and [Link] == item:upper()
then
local itemPart = [Link]:FindFirstChild("Head") or
[Link]:FindFirstChild("Part")
if itemPart then
[Link] = [Link]
wait(0.2)
fireclickdetector([Link])
wait(0.2)
end
end
end

-- Return to original position


character:FindFirstChild("HumanoidRootPart").CFrame = savePos
else
-- For other players, we have to use a more complex method
-- This is a simplified placeholder - in practice requires more code
-- For full implementation, the server-side item giving would be needed
local savePos = character:FindFirstChild("HumanoidRootPart").CFrame
teleportPlayer(player, itemCFrame)
wait(1)
teleportPlayer(player, savePos)
end

return true
end

-- Advanced Stealth method for remote calls to avoid detection


local function stealthRemote(remote, ...)
if not remote then return end

local args = {...}

-- Skip if anti-logging is disabled (for debugging)


if not [Link] then
return remote:FireServer(unpack(args))
end

-- Clone the arguments to avoid modification issues


local clonedArgs = {}
for i, v in pairs(args) do
if typeof(v) == "table" then
clonedArgs[i] = [Link](v)
else
clonedArgs[i] = v
end
end

-- Use stealth wrapper to obfuscate the call


local originalFireServer = [Link]

-- Short-lived function replacement to avoid detection


local success, result = pcall(function()
-- Hide remote call from any logging tools
setmetatable(remote, {
__namecall = function(self, ...)
local namecallArgs = {...}
local method = getnamecallmethod()

if method == "FireServer" then


return originalFireServer(self, unpack(namecallArgs))
end

return original_namecall(self, unpack(namecallArgs))


end
})

-- Execute the remote


return remote:FireServer(unpack(clonedArgs))
end)

return result
end

-- =======================================
-- ANTI-KICK & SERVER ACCESS SYSTEMS
-- =======================================

-- PrizzLife-derived anti-kick system (enhanced)


local function setupAntiKick()
if not [Link] then return end

-- Primary Anti-Kick - Hook kick remote


local mt = getrawmetatable(game)
local oldNamecall = mt.__namecall
local oldIndex = mt.__index
setreadonly(mt, false)

-- Hook namecall
mt.__namecall = newcclosure(function(self, ...)
local method = getnamecallmethod()
local args = {...}

-- Block kick attempts


if method == "Kick" or method == "kick" then
Notif("Anti-Kick", "Blocked kick attempt", 3)
wait(9e9) -- Stall forever
return
end

-- Block attempts to modify character


if (method == "BreakJoints" or method == "breakJoints") and self ==
[Link] then
if [Link] then
Notif("Anti-Death", "Blocked joint break attempt", 3)
return
end
end

-- Block teleport service attempts


if (method == "Teleport" or method == "TeleportToPlaceInstance") and self
== game:GetService("TeleportService") then
Notif("Anti-Kick", "Blocked teleport attempt", 3)
wait(9e9) -- Stall forever
return
end

-- Block remote kicks


if [Link] == "Kick" or [Link] == "kick" then
if method == "FireServer" then
Notif("Anti-Kick", "Blocked remote kick attempt", 3)
return
end
end

return oldNamecall(self, ...)


end)

-- Hook index
mt.__index = newcclosure(function(self, key)
-- Intercept character replication attempts
if key == "Character" and self == LocalPlayer and [Link] then
local fakeChar = oldIndex(self, key)
setreadonly(fakeChar, false)
return fakeChar
end

return oldIndex(self, key)


end)

setreadonly(mt, true)

-- Hook Destroy method to prevent character destruction


local oldDestroy
oldDestroy = hookfunction([Link], function(self, ...)
if self == LocalPlayer or self == [Link] then
if [Link] then
Notif("Anti-Death", "Blocked destruction attempt", 3)
return
end
end
return oldDestroy(self, ...)
end)

-- Hook LoadCharacter to intercept respawn attempts


local oldLoadCharacter
oldLoadCharacter = hookfunction([Link], function(self, ...)
if [Link] then
Notif("Anti-Death", "Blocked forced respawn", 3)
return
end
return oldLoadCharacter(self, ...)
end)

-- Hook RemoveCharacter to intercept removal attempts


local oldRemoveCharacter
oldRemoveCharacter = hookfunction([Link],
function(self, ...)
if [Link] then
Notif("Anti-Death", "Blocked character removal", 3)
return
end
return oldRemoveCharacter(self, ...)
end)

-- Secondary Anti-Kick - Session persistence hooks


pcall(function()
-- Coroutine wrapper to avoid yielding main thread
[Link](function()
while true do
pcall(function()
for _, signal in ipairs({[Link],
game:GetService("ScriptContext").Error}) do
for _, connection in ipairs(getconnections(signal)) do
connection:Disable()
end
end
end)
wait(5)
end
end)()

-- Disable various kick methods


game:GetService("GuiService").ErrorMessageChanged:Connect(function()
game:GetService("GuiService"):ClearError()
end)
end)

-- Anti-Report system
pcall(function()
-- Block reports
local oldFireServer
oldFireServer = hookfunction([Link]("RemoteEvent").FireServer,
function(self, ...)
local args = {...}
if [Link] == "RequestReport" or [Link] == "SubmitReport" then
Notif("Anti-Report", "Blocked report attempt", 3)
return
end
return oldFireServer(self, ...)
end)
end)

Notif("Anti-Kick", "Advanced protection enabled", 3)


end

-- PrizzLife-derived server access system


local function setupServerAccess()
-- Secure remote event access
local function protectRemotes()
-- Intercept all remote calls for analysis
local function hookRemoteProperty(obj, prop)
local original = obj[prop]
obj[prop] = function(self, ...)
local args = {...}

-- Add specific remote handler for Prison Life's key events


if [Link] == "TeamEvent" and prop == "FireServer" then
-- Team switching event - always allow
return original(self, ...)
end

if [Link] == "arrest" and prop == "FireServer" then


-- Arrest event - check if it's our command or not
-- For brevity, simplified handling
return original(self, ...)
end

-- Default: allow the event through


return original(self, ...)
end
end

-- Apply hooks to all existing remotes


for _, remote in pairs(game:GetDescendants()) do
if remote:IsA("RemoteEvent") then
hookRemoteProperty(remote, "FireServer")
elseif remote:IsA("RemoteFunction") then
hookRemoteProperty(remote, "InvokeServer")
end
end

-- Hook future remotes


[Link]:Connect(function(descendant)
if descendant:IsA("RemoteEvent") then
hookRemoteProperty(descendant, "FireServer")
elseif descendant:IsA("RemoteFunction") then
hookRemoteProperty(descendant, "InvokeServer")
end
end)
end

-- Attempt to hook into core game systems


local function injectServerSystems()
pcall(function()
-- Prison Life specific - hook key systems
if workspace:FindFirstChild("Remote") then
local remotes = [Link]:GetChildren()
for _, remote in pairs(remotes) do
if [Link] == "ItemHandler" then
-- Hook into item system for permanent weapons
hookRemote(remote, function(self, args)
-- Allow our own requests through
return true
end)
end

if [Link] == "TeamEvent" then


-- Hook team switching
hookRemote(remote, function(self, args)
-- Allow our team changes
return true
end)
end
end
end
end)
end

-- Run all server access systems


protectRemotes()
injectServerSystems()

Notif("Server Access", "Enhanced systems operational", 3)


end

-- Implement method to ensure weapons never run out of ammo


local function setupInfiniteAmmo()
-- Hook into ammo system
[Link](function()
while true do
pcall(function()
if not [Link] then return end

-- Locate weapons in backpack or character


local backpackItems = [Link]:GetChildren()
local characterItems = {}

if [Link] then
characterItems = [Link]:GetChildren()
end

-- Check all items


for _, item in pairs(backpackItems) do
if item:IsA("Tool") and item:FindFirstChild("GunStates") then
-- Set infinite ammo properties
local gunStates = require([Link])
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
end
end
for _, item in pairs(characterItems) do
if item:IsA("Tool") and item:FindFirstChild("GunStates") then
-- Set infinite ammo properties
local gunStates = require([Link])
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
end
end
end)
wait(1)
end
end)()
end

-- Implement silent aim for perfect shooting


local function setupSilentAim()
local mt = getrawmetatable(game)
local oldNamecall = mt.__namecall
setreadonly(mt, false)

mt.__namecall = newcclosure(function(self, ...)


local args = {...}
local method = getnamecallmethod()

if method == "FireServer" and [Link] and [Link] ==


"ShootEvent" then
-- Find the closest valid player for silent aim
local closestPlayer = nil
local shortestDistance = [Link]

for _, player in pairs([Link]:GetPlayers()) do


if player ~= LocalPlayer and [Link] and
[Link]:FindFirstChild("Humanoid") and [Link] >
0 then
-- Check team restrictions
if [Link] and [Link] ==
[Link] then
continue
end

-- Check whitelist
if [Link][[Link]] then
continue
end

local targetPart = [Link] and


[Link]:FindFirstChild("Head") or
[Link]:FindFirstChild("HumanoidRootPart")
if targetPart then
local pos = [Link]
local distance =
([Link] - pos).Magnitude

if distance < shortestDistance then


closestPlayer = player
shortestDistance = distance
end
end
end
end

-- If we found a valid target, modify the shot parameters


if closestPlayer and [Link] then
local targetPart = [Link] and
[Link]:FindFirstChild("Head") or
[Link]:FindFirstChild("HumanoidRootPart")

if targetPart then
-- Modify all shot parameters to target this player perfectly
args[1][1] = targetPart
args[1][2] = [Link]

-- Increase damage for one-shot if enabled


if [Link] then
args[1][3] = 100 -- High damage for instant kill
end
end
end
end

return oldNamecall(self, unpack(args))


end)

setreadonly(mt, true)
end

-- =======================================
-- COMMAND IMPLEMENTATION
-- =======================================

-- Create actual command functions


[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "kill")
wait(0.1) -- Small delay to prevent overload
end
end
return "Killed all players"
else
return "You don't have permission to target all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "kill")
wait(0.1) -- Small delay to prevent overload
end
return "Killed targeted players"
else
return "You don't have permission to target multiple players"
end
elseif target then
if verifyArgs(speaker, target, "kill") then
performPlayerAction(target, "kill")
return "Killed " .. [Link]
else
return "You don't have permission to kill this player"
end
else
return "Player not found"
end
end

-- Add alias for loopkill


[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
[Link][[Link]] = true
end
end
return "Loop killing all players"
else
return "You don't have permission to target all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


[Link][[Link]] = true
end
return "Loop killing targeted players"
else
return "You don't have permission to target multiple players"
end
elseif target then
if verifyArgs(speaker, target, "loopkill") then
[Link][[Link]] = true
return "Loop killing " .. [Link]
else
return "You don't have permission to loop kill this player"
end
else
return "Player not found"
end
end

[Link] = function(args, speaker)


local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) then
for name, _ in pairs([Link]) do
[Link][name] = nil
end
return "Stopped loop killing all players"
else
return "You don't have permission to target all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


[Link][[Link]] = nil
end
return "Stopped loop killing targeted players"
else
return "You don't have permission to target multiple players"
end
elseif target then
if verifyArgs(speaker, target, "unloopkill") then
[Link][[Link]] = nil
return "Stopped loop killing " .. [Link]
else
return "You don't have permission to stop loop killing this player"
end
else
return "Player not found"
end
end
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)
local location = args[2]

-- If only one argument, assume it's a location and the target is the speaker
if target and not location then
if TeleportLocations[target:lower()] then
location = target
target = speaker
end
end

if not location then


return "No location specified"
end

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
if typeof(location) == "string" then
local locationCFrame = TeleportLocations[location:lower()]
if locationCFrame then
teleportPlayer(player, locationCFrame)
end
else
teleportPlayer(player, location)
end
wait(0.1) -- Small delay to prevent overload
end
end
return "Teleported all players to " .. tostring(location)
else
return "You don't have permission to teleport all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


if typeof(location) == "string" then
local locationCFrame = TeleportLocations[location:lower()]
if locationCFrame then
teleportPlayer(player, locationCFrame)
end
else
teleportPlayer(player, location)
end
wait(0.1) -- Small delay to prevent overload
end
return "Teleported targeted players to " .. tostring(location)
else
return "You don't have permission to teleport multiple players"
end
elseif target then
if verifyArgs(speaker, target, "tp") then
if typeof(location) == "string" then
local locationCFrame = TeleportLocations[location:lower()]
if locationCFrame then
teleportPlayer(target, locationCFrame)
return "Teleported " .. [Link] .. " to " .. location
else
local locationPlayer = findPlayer(location, speaker)
if locationPlayer then
teleportPlayer(target, locationPlayer)
return "Teleported " .. [Link] .. " to " ..
[Link]
else
return "Location not found"
end
end
else
teleportPlayer(target, location)
return "Teleported " .. [Link] .. " to specified location"
end
else
return "You don't have permission to teleport this player"
end
else
-- If only location is specified, teleport the speaker
if typeof(location) == "string" then
local locationCFrame = TeleportLocations[location:lower()]
if locationCFrame then
teleportPlayer(speaker, locationCFrame)
return "Teleported to " .. location
else
local locationPlayer = findPlayer(location, speaker)
if locationPlayer then
teleportPlayer(speaker, locationPlayer)
return "Teleported to " .. [Link]
else
return "Location or player not found"
end
end
else
teleportPlayer(speaker, location)
return "Teleported to specified location"
end
end
end

-- Add direct location teleport commands (yard, cells, etc.)


for location, _ in pairs(TeleportLocations) do
COMMANDS[location] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
teleportPlayer(player, TeleportLocations[location])
wait(0.1) -- Small delay to prevent overload
end
end
return "Teleported all players to " .. location
else
return "You don't have permission to teleport all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


teleportPlayer(player, TeleportLocations[location])
wait(0.1) -- Small delay to prevent overload
end
return "Teleported targeted players to " .. location
else
return "You don't have permission to teleport multiple players"
end
elseif target then
if verifyArgs(speaker, target, location) then
teleportPlayer(target, TeleportLocations[location])
return "Teleported " .. [Link] .. " to " .. location
else
return "You don't have permission to teleport this player"
end
else
teleportPlayer(speaker, TeleportLocations[location])
return "Teleported to " .. location
end
end
end

-- Add team commands (prisoner, guard, criminal)


[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
setTeam(player, "Bright orange")
wait(0.1) -- Small delay to prevent overload
end
end
return "Set all players to prisoners"
else
return "You don't have permission to change all players' teams"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


setTeam(player, "Bright orange")
wait(0.1) -- Small delay to prevent overload
end
return "Set targeted players to prisoners"
else
return "You don't have permission to change multiple players' teams"
end
elseif target then
if verifyArgs(speaker, target, "prisoner") then
setTeam(target, "Bright orange")
return "Set " .. [Link] .. " to prisoner"
else
return "You don't have permission to change this player's team"
end
else
setTeam(speaker, "Bright orange")
return "Set yourself to prisoner"
end
end

-- Add aliases for prisoner


[Link] = [Link]

-- Guard team command


[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
setTeam(player, "Bright blue")
wait(0.1) -- Small delay to prevent overload
end
end
return "Set all players to guards"
else
return "You don't have permission to change all players' teams"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


setTeam(player, "Bright blue")
wait(0.1) -- Small delay to prevent overload
end
return "Set targeted players to guards"
else
return "You don't have permission to change multiple players' teams"
end
elseif target then
if verifyArgs(speaker, target, "guard") then
setTeam(target, "Bright blue")
return "Set " .. [Link] .. " to guard"
else
return "You don't have permission to change this player's team"
end
else
setTeam(speaker, "Bright blue")
return "Set yourself to guard"
end
end

-- Criminal team command


[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
setTeam(player, "Really red")
wait(0.3) -- Longer delay for criminal teleport
end
end
return "Set all players to criminals"
else
return "You don't have permission to change all players' teams"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


setTeam(player, "Really red")
wait(0.3) -- Longer delay for criminal teleport
end
return "Set targeted players to criminals"
else
return "You don't have permission to change multiple players' teams"
end
elseif target then
if verifyArgs(speaker, target, "criminal") then
setTeam(target, "Really red")
return "Set " .. [Link] .. " to criminal"
else
return "You don't have permission to change this player's team"
end
else
setTeam(speaker, "Really red")
return "Set yourself to criminal"
end
end

-- Add alias for criminal


[Link] = [Link]

-- Guns/weapon commands
[Link] = function(args, speaker)
local gunType = args[1] or "m9"
local target = args[2] and findPlayer(args[2], speaker) or speaker

-- If first arg is a player and second is missing, swap them


if not TeleportLocations[gunType:lower()] and not
ItemLocations[gunType:lower()] then
local potentialPlayer = findPlayer(gunType, speaker)
if potentialPlayer then
target = potentialPlayer
gunType = "m9" -- Default to M9 if not specified
end
end

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, gunType)
wait(0.5) -- Delay to prevent overload
end
end
return "Gave " .. gunType .. " to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target
if target == "team" then
local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, gunType)
wait(0.5) -- Delay to prevent overload
end
return "Gave " .. gunType .. " to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "gun") then
giveItem(target, gunType)
return "Gave " .. gunType .. " to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, gunType)
return "Gave yourself " .. gunType
end
end

-- Add direct gun commands (m9, shotgun, ak47)


COMMANDS.m9 = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, "m9")
wait(0.5) -- Delay to prevent overload
end
end
return "Gave M9 to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, "m9")
wait(0.5) -- Delay to prevent overload
end
return "Gave M9 to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "m9") then
giveItem(target, "m9")
return "Gave M9 to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, "m9")
return "Gave yourself M9"
end
end

[Link] = function(args, speaker)


local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, "shotgun")
wait(0.5) -- Delay to prevent overload
end
end
return "Gave Shotgun to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, "shotgun")
wait(0.5) -- Delay to prevent overload
end
return "Gave Shotgun to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "shotgun") then
giveItem(target, "shotgun")
return "Gave Shotgun to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, "shotgun")
return "Gave yourself Shotgun"
end
end

COMMANDS.ak47 = function(args, speaker)


local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, "ak47")
wait(0.5) -- Delay to prevent overload
end
end
return "Gave AK-47 to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, "ak47")
wait(0.5) -- Delay to prevent overload
end
return "Gave AK-47 to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "ak47") then
giveItem(target, "ak47")
return "Gave AK-47 to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, "ak47")
return "Gave yourself AK-47"
end
end

[Link] = function(args, speaker)


local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, "riot")
wait(0.5) -- Delay to prevent overload
end
end
return "Gave Riot Shield to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, "riot")
wait(0.5) -- Delay to prevent overload
end
return "Gave Riot Shield to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "riot") then
giveItem(target, "riot")
return "Gave Riot Shield to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, "riot")
return "Gave yourself Riot Shield"
end
end

-- All guns command


[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker
if target == "all" then
if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
giveItem(player, "guns")
wait(1.5) -- Longer delay to prevent overload
end
end
return "Gave all guns to all players"
else
return "You don't have permission to give items to all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


giveItem(player, "guns")
wait(1.5) -- Longer delay to prevent overload
end
return "Gave all guns to targeted players"
else
return "You don't have permission to give items to multiple players"
end
elseif target then
if verifyArgs(speaker, target, "guns") then
giveItem(target, "guns")
return "Gave all guns to " .. [Link]
else
return "You don't have permission to give items to this player"
end
else
giveItem(speaker, "guns")
return "Gave yourself all guns"
end
end

-- Speed command
[Link] = function(args, speaker)
local speed = tonumber(args[1]) or 16
local target = args[2] and findPlayer(args[2], speaker) or speaker

-- If first arg is a player and second is missing, swap them


if not tonumber(args[1]) and args[1] then
local potentialPlayer = findPlayer(args[1], speaker)
if potentialPlayer then
target = potentialPlayer
speed = tonumber(args[2]) or 16
end
end

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "speed", speed)
wait(0.1) -- Small delay to prevent overload
end
end
return "Set all players' speed to " .. speed
else
return "You don't have permission to change all players' speed"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "speed", speed)
wait(0.1) -- Small delay to prevent overload
end
return "Set targeted players' speed to " .. speed
else
return "You don't have permission to change multiple players' speed"
end
elseif target then
if verifyArgs(speaker, target, "speed") then
performPlayerAction(target, "speed", speed)
return "Set " .. [Link] .. "'s speed to " .. speed
else
return "You don't have permission to change this player's speed"
end
else
performPlayerAction(speaker, "speed", speed)
return "Set your speed to " .. speed
end
end

-- Jump power command


[Link] = function(args, speaker)
local power = tonumber(args[1]) or 50
local target = args[2] and findPlayer(args[2], speaker) or speaker

-- If first arg is a player and second is missing, swap them


if not tonumber(args[1]) and args[1] then
local potentialPlayer = findPlayer(args[1], speaker)
if potentialPlayer then
target = potentialPlayer
power = tonumber(args[2]) or 50
end
end

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "jumppower", power)
wait(0.1) -- Small delay to prevent overload
end
end
return "Set all players' jump power to " .. power
else
return "You don't have permission to change all players' jump power"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "jumppower", power)
wait(0.1) -- Small delay to prevent overload
end
return "Set targeted players' jump power to " .. power
else
return "You don't have permission to change multiple players' jump
power"
end
elseif target then
if verifyArgs(speaker, target, "jumppower") then
performPlayerAction(target, "jumppower", power)
return "Set " .. [Link] .. "'s jump power to " .. power
else
return "You don't have permission to change this player's jump power"
end
else
performPlayerAction(speaker, "jumppower", power)
return "Set your jump power to " .. power
end
end

-- Add alias for jumppower


[Link] = [Link]

-- Arrest command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)
if target == "all" then
if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "arrest")
wait(0.3) -- Delay to prevent overload
end
end
return "Arrested all players"
else
return "You don't have permission to arrest all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "arrest")
wait(0.3) -- Delay to prevent overload
end
return "Arrested targeted players"
else
return "You don't have permission to arrest multiple players"
end
elseif target then
if verifyArgs(speaker, target, "arrest") then
performPlayerAction(target, "arrest")
return "Arrested " .. [Link]
else
return "You don't have permission to arrest this player"
end
else
return "Player not found"
end
end

-- Jail command (alternative to arrest)


[Link] = [Link]

-- Free command (un-arrest)


[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and [Link] == "Bright orange"
then
-- The most reliable way to "free" is to make them criminal
first
setTeam(player, "Really red")
wait(0.5)
end
end
return "Freed all jailed players"
else
return "You don't have permission to free all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


if [Link] == "Bright orange" then
-- The most reliable way to "free" is to make them criminal
first
setTeam(player, "Really red")
wait(0.5)
end
end
return "Freed targeted players"
else
return "You don't have permission to free multiple players"
end
elseif target then
if verifyArgs(speaker, target, "free") then
if [Link] == "Bright orange" then
-- The most reliable way to "free" is to make them criminal first
setTeam(target, "Really red")
end
return "Freed " .. [Link]
else
return "You don't have permission to free this player"
end
else
return "Player not found"
end
end

-- Tase command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "tase")
wait(0.2) -- Delay to prevent overload
end
end
return "Tased all players"
else
return "You don't have permission to tase all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "tase")
wait(0.2) -- Delay to prevent overload
end
return "Tased targeted players"
else
return "You don't have permission to tase multiple players"
end
elseif target then
if verifyArgs(speaker, target, "tase") then
performPlayerAction(target, "tase")
return "Tased " .. [Link]
else
return "You don't have permission to tase this player"
end
else
return "Player not found"
end
end

-- Fling command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)
local power = tonumber(args[2]) or 1000

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "fling", power)
wait(0.2) -- Delay to prevent overload
end
end
return "Flung all players"
else
return "You don't have permission to fling all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "fling", power)
wait(0.2) -- Delay to prevent overload
end
return "Flung targeted players"
else
return "You don't have permission to fling multiple players"
end
elseif target then
if verifyArgs(speaker, target, "fling") then
performPlayerAction(target, "fling", power)
return "Flung " .. [Link]
else
return "You don't have permission to fling this player"
end
else
return "Player not found"
end
end

-- Explode command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)
local size = tonumber(args[2]) or 10

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "explode", size)
wait(0.2) -- Delay to prevent overload
end
end
return "Exploded all players"
else
return "You don't have permission to explode all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "explode", size)
wait(0.2) -- Delay to prevent overload
end
return "Exploded targeted players"
else
return "You don't have permission to explode multiple players"
end
elseif target then
if verifyArgs(speaker, target, "kaboom") then
performPlayerAction(target, "explode", size)
return "Exploded " .. [Link]
else
return "You don't have permission to explode this player"
end
else
return "Player not found"
end
end

-- Invisible command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "invisible")
wait(0.1) -- Small delay to prevent overload
end
end
return "Made all players invisible"
else
return "You don't have permission to make all players invisible"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "invisible")
wait(0.1) -- Small delay to prevent overload
end
return "Made targeted players invisible"
else
return "You don't have permission to make multiple players invisible"
end
elseif target then
if verifyArgs(speaker, target, "invisible") then
performPlayerAction(target, "invisible")
return "Made " .. [Link] .. " invisible"
else
return "You don't have permission to make this player invisible"
end
else
performPlayerAction(speaker, "invisible")
return "Made yourself invisible"
end
end

-- Visible command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "visible")
wait(0.1) -- Small delay to prevent overload
end
end
return "Made all players visible"
else
return "You don't have permission to make all players visible"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "visible")
wait(0.1) -- Small delay to prevent overload
end
return "Made targeted players visible"
else
return "You don't have permission to make multiple players visible"
end
elseif target then
if verifyArgs(speaker, target, "visible") then
performPlayerAction(target, "visible")
return "Made " .. [Link] .. " visible"
else
return "You don't have permission to make this player visible"
end
else
performPlayerAction(speaker, "visible")
return "Made yourself visible"
end
end

-- Freeze command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "freeze")
wait(0.1) -- Small delay to prevent overload
end
end
return "Froze all players"
else
return "You don't have permission to freeze all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "freeze")
wait(0.1) -- Small delay to prevent overload
end
return "Froze targeted players"
else
return "You don't have permission to freeze multiple players"
end
elseif target then
if verifyArgs(speaker, target, "freeze") then
performPlayerAction(target, "freeze")
return "Froze " .. [Link]
else
return "You don't have permission to freeze this player"
end
else
return "Player not found"
end
end

-- Unfreeze command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "unfreeze")
wait(0.1) -- Small delay to prevent overload
end
end
return "Unfroze all players"
else
return "You don't have permission to unfreeze all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "unfreeze")
wait(0.1) -- Small delay to prevent overload
end
return "Unfroze targeted players"
else
return "You don't have permission to unfreeze multiple players"
end
elseif target then
if verifyArgs(speaker, target, "unfreeze") then
performPlayerAction(target, "unfreeze")
return "Unfroze " .. [Link]
else
return "You don't have permission to unfreeze this player"
end
else
return "Player not found"
end
end

-- God mode command


[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker
if target == "all" then
if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "shield")
wait(0.1) -- Small delay to prevent overload
end
end
return "Enabled god mode for all players"
else
return "You don't have permission to god all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "shield")
wait(0.1) -- Small delay to prevent overload
end
return "Enabled god mode for targeted players"
else
return "You don't have permission to god multiple players"
end
elseif target then
if verifyArgs(speaker, target, "god") then
performPlayerAction(target, "shield")
return "Enabled god mode for " .. [Link]
else
return "You don't have permission to god this player"
end
else
performPlayerAction(speaker, "shield")
return "Enabled god mode for yourself"
end
end

-- Respawn command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "respawn")
wait(0.3) -- Delay to prevent overload
end
end
return "Respawned all players"
else
return "You don't have permission to respawn all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "respawn")
wait(0.3) -- Delay to prevent overload
end
return "Respawned targeted players"
else
return "You don't have permission to respawn multiple players"
end
elseif target then
if verifyArgs(speaker, target, "respawn") then
performPlayerAction(target, "respawn")
return "Respawned " .. [Link]
else
return "You don't have permission to respawn this player"
end
else
performPlayerAction(speaker, "respawn")
return "Respawned yourself"
end
end

-- Heal command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker
local health = tonumber(args[2]) or 100

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
performPlayerAction(player, "health", health)
wait(0.1) -- Small delay to prevent overload
end
end
return "Healed all players"
else
return "You don't have permission to heal all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target
if target == "team" then
local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "health", health)
wait(0.1) -- Small delay to prevent overload
end
return "Healed targeted players"
else
return "You don't have permission to heal multiple players"
end
elseif target then
if verifyArgs(speaker, target, "heal") then
performPlayerAction(target, "health", health)
return "Healed " .. [Link]
else
return "You don't have permission to heal this player"
end
else
performPlayerAction(speaker, "health", health)
return "Healed yourself"
end
end

-- Damage command
[Link] = function(args, speaker)
local target = findPlayer(args[1], speaker)
local damage = tonumber(args[2]) or 25

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
performPlayerAction(player, "damage", damage)
wait(0.1) -- Small delay to prevent overload
end
end
return "Damaged all players"
else
return "You don't have permission to damage all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


performPlayerAction(player, "damage", damage)
wait(0.1) -- Small delay to prevent overload
end
return "Damaged targeted players"
else
return "You don't have permission to damage multiple players"
end
elseif target then
if verifyArgs(speaker, target, "damage") then
performPlayerAction(target, "damage", damage)
return "Damaged " .. [Link]
else
return "You don't have permission to damage this player"
end
else
return "Player not found"
end
end

-- Kick command
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can kick players"
end

local target = findPlayer(args[1], speaker)


local reason = args[2] or "No reason given"

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if player ~= speaker and not
[Link][[Link]] then
-- Use remote kick
local success, err = pcall(function()
player:Kick("You were kicked by " .. [Link] .. ".
Reason: " .. reason)
end)

if not success then


-- Try alternative kick method via character destruction
if [Link] then
[Link]:BreakJoints()
end
end

wait(0.1) -- Small delay to prevent overload


end
end
return "Kicked all players"
else
return "You don't have permission to kick all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and player ~= speaker and not
[Link][[Link]] then
[Link](players, player)
end
end
end

for _, player in pairs(players) do


-- Use remote kick
local success, err = pcall(function()
player:Kick("You were kicked by " .. [Link] .. ". Reason:
" .. reason)
end)

if not success then


-- Try alternative kick method via character destruction
if [Link] then
[Link]:BreakJoints()
end
end

wait(0.1) -- Small delay to prevent overload


end
return "Kicked targeted players"
else
return "You don't have permission to kick multiple players"
end
elseif target then
if verifyArgs(speaker, target, "kick") then
-- Use remote kick
local success, err = pcall(function()
target:Kick("You were kicked by " .. [Link] .. ". Reason:
" .. reason)
end)

if not success then


-- Try alternative kick method via character destruction
if [Link] then
[Link]:BreakJoints()
end
end

return "Kicked " .. [Link]


else
return "You don't have permission to kick this player"
end
else
return "Player not found"
end
end

-- Ban system
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can ban players"
end

local target = findPlayer(args[1], speaker)


local duration = tonumber(args[2]) or 2 -- Default 2 hours
local reason = args[3] or "No reason given"

if target then
if verifyArgs(speaker, target, "ban") then
-- Store in ban list
local banData = {
name = [Link],
userId = [Link],
reason = reason,
bannedBy = [Link],
bannedAt = [Link](),
duration = duration * 3600, -- Convert to seconds
expiresAt = [Link]() + duration * 3600
}

Settings._internal.bannedPlayers[[Link]] = banData

-- Also kick the player if still in the game


pcall(function()
target:Kick("You were banned by " .. [Link] .. " for " ..
duration .. " hour(s). Reason: " .. reason)
end)

-- Create a ban script that can persist even when you're offline
-- This would require a server-side script for full implementation

return "Banned " .. [Link] .. " for " .. duration .. " hour(s)"
else
return "You don't have permission to ban this player"
end
else
return "Player not found"
end
end

-- Unban command
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can unban players"
end

local nameOrId = args[1]

if not nameOrId then


return "Please specify a player name or user ID"
end

-- Check if player is an ID
local userId = tonumber(nameOrId)
if userId then
if Settings._internal.bannedPlayers[userId] then
Settings._internal.bannedPlayers[userId] = nil
return "Unbanned player with ID " .. userId
else
for id, banData in pairs(Settings._internal.bannedPlayers) do
if [Link]:lower() == nameOrId:lower() then
Settings._internal.bannedPlayers[id] = nil
return "Unbanned " .. [Link]
end
end
end
else
-- Search by name
for id, banData in pairs(Settings._internal.bannedPlayers) do
if [Link]:lower() == nameOrId:lower() then
Settings._internal.bannedPlayers[id] = nil
return "Unbanned " .. [Link]
end
end
end

return "Player not found in ban list"


end

-- Admin command (grant admin permissions)


[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can add admins"
end

local target = findPlayer(args[1], speaker)


local tier = args[2] or "t1" -- Default to tier 1

if not tier:lower():match("^t[1-3]$") and tier:lower() ~= "owner" then


tier = "t1" -- Invalid tier defaults to tier 1
end

if target == "all" then


return "Cannot admin all players at once"
elseif target then
if target ~= speaker then -- Prevent adding yourself again
[Link][[Link]] = tier:lower()
return "Gave " .. tier:upper() .. " admin to " .. [Link]
else
return "You already have full admin powers"
end
else
return "Player not found"
end
end

-- Alias for admin


[Link] = [Link]

-- Unadmin command (remove admin permissions)


[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can remove admins"
end

local target = findPlayer(args[1], speaker)


if target == "all" then
if canUseMultiTarget(speaker) then
-- Clear all admins except yourself
local savedOwner = [Link][[Link]]
[Link] = {}
if savedOwner then
[Link][[Link]] = savedOwner
end
return "Removed admin from all players"
else
return "You don't have permission to remove all admins"
end
elseif target then
if target ~= speaker then -- Prevent removing your own permissions
if [Link][[Link]] then
[Link][[Link]] = nil
return "Removed admin from " .. [Link]
else
return [Link] .. " doesn't have admin permissions"
end
else
return "Cannot remove your own admin permissions"
end
else
return "Player not found"
end
end

-- Alias for unadmin


[Link] = [Link]

-- Whitelist command
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can use whitelist"
end

local target = findPlayer(args[1], speaker)

if target == "all" then


return "Cannot whitelist all players at once"
elseif target then
[Link][[Link]] = true
return "Added " .. [Link] .. " to whitelist"
else
return "Player not found"
end
end

-- Unwhitelist command
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can use unwhitelist"
end

local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) then
[Link] = {}
return "Cleared whitelist"
else
return "You don't have permission to clear the whitelist"
end
elseif target then
if [Link][[Link]] then
[Link][[Link]] = nil
return "Removed " .. [Link] .. " from whitelist"
else
return [Link] .. " is not whitelisted"
end
else
return "Player not found"
end
end

-- Blacklist command (auto-kill/kick players)


[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can use blacklist"
end

local target = findPlayer(args[1], speaker)

if target == "all" then


return "Cannot blacklist all players at once"
elseif target then
[Link][[Link]] = true
return "Added " .. [Link] .. " to blacklist"
else
return "Player not found"
end
end

-- Unblacklist command
[Link] = function(args, speaker)
if speaker ~= LocalPlayer then
return "Only script owner can use unblacklist"
end

local target = findPlayer(args[1], speaker)

if target == "all" then


if canUseMultiTarget(speaker) then
[Link] = {}
return "Cleared blacklist"
else
return "You don't have permission to clear the blacklist"
end
elseif target then
if [Link][[Link]] then
[Link][[Link]] = nil
return "Removed " .. [Link] .. " from blacklist"
else
return [Link] .. " is not blacklisted"
end
else
return "Player not found"
end
end

-- Prefix command
[Link] = function(args, speaker)
local newPrefix = args[1]

if not newPrefix or #newPrefix == 0 then


return "Current prefix is: " .. [Link]
end

if #newPrefix > 3 then


return "Prefix cannot be longer than 3 characters"
end

[Link] = newPrefix
return "Changed prefix to: " .. newPrefix
end

-- Fly command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker
local speed = tonumber(args[2]) or [Link]

if target == "all" then


if canUseMultiTarget(speaker) and [Link] then
for _, player in pairs(Players:GetPlayers()) do
if not [Link][[Link]] then
-- Fly is a complex command and is primarily for local player
-- Simplified version for other players
local char = getBody(player)
if char then
local bv = [Link]("BodyVelocity")
[Link] = [Link]([Link], [Link], [Link])
bv.P = 1500
[Link] = [Link](0, 1, 0)
[Link] = [Link]
game:GetService("Debris"):AddItem(bv, 0.1)
end
end
end
return "Gave temporary fly push to all players"
else
return "You don't have permission to target all players"
end
elseif target == "team" or type(target) == "table" then
if canUseMultiTarget(speaker) then
local players = (target == "team") and {} or target

if target == "team" then


local myTeam = [Link]
for _, player in pairs(Players:GetPlayers()) do
if [Link] == myTeam and not
[Link][[Link]] then
[Link](players, player)
end
end
end
for _, player in pairs(players) do
-- Fly is a complex command and is primarily for local player
-- Simplified version for other players
local char = getBody(player)
if char then
local bv = [Link]("BodyVelocity")
[Link] = [Link]([Link], [Link], [Link])
bv.P = 1500
[Link] = [Link](0, 1, 0)
[Link] = [Link]
game:GetService("Debris"):AddItem(bv, 0.1)
end
end
return "Gave temporary fly push to targeted players"
else
return "You don't have permission to target multiple players"
end
elseif target then
if verifyArgs(speaker, target, "fly") then
if target == speaker then
-- Full fly implementation for local player
local char = getBody(target)
if not char then return "Character not found" end

-- Toggle fly state


if [Link]:FindFirstChild("FlyBV") then
-- Disable fly
[Link]:Destroy()
if [Link]:FindFirstChild("FlyBG") then
[Link]:Destroy()
end
return "Disabled fly mode"
else
-- Enable fly
local bv = [Link]("BodyVelocity")
[Link] = "FlyBV"
[Link] = [Link]([Link], [Link], [Link])
bv.P = 1500
[Link] = [Link](0, 0, 0)
[Link] = [Link]

local bg = [Link]("BodyGyro")
[Link] = "FlyBG"
[Link] = [Link]([Link], [Link], [Link])
bg.P = 1500
bg.D = 50
[Link] = [Link]
[Link] = [Link]

-- Set up input handling for fly control


local connection
connection = [Link]:Connect(function()
if not [Link]:FindFirstChild("FlyBV") then
connection:Disconnect()
return
end

local cf = [Link]
local direction = [Link]()
local speed = speed * 2

if UserInputService:IsKeyDown([Link].W) then
direction = direction + [Link]
end
if UserInputService:IsKeyDown([Link].S) then
direction = direction - [Link]
end
if UserInputService:IsKeyDown([Link].A) then
direction = direction - [Link]
end
if UserInputService:IsKeyDown([Link].D) then
direction = direction + [Link]
end
if UserInputService:IsKeyDown([Link]) then
direction = direction + [Link](0, 1, 0)
end
if UserInputService:IsKeyDown([Link]) then
direction = direction - [Link](0, 1, 0)
end

if [Link] > 0 then


direction = [Link] * speed
end

[Link] = direction
[Link] =
[Link]([Link], [Link] + [Link])
end)

return "Enabled fly mode (WASD, Space, Shift)"


end
else
-- Simplified version for other players
local char = getBody(target)
if char then
local bv = [Link]("BodyVelocity")
[Link] = [Link]([Link], [Link], [Link])
bv.P = 1500
[Link] = [Link](0, 1, 0)
[Link] = [Link]
game:GetService("Debris"):AddItem(bv, 0.1)
end
return "Gave temporary fly push to " .. [Link]
end
else
return "You don't have permission to make this player fly"
end
else
return "Player not found"
end
end

-- Noclip command
[Link] = function(args, speaker)
local target = args[1] and findPlayer(args[1], speaker) or speaker

if target ~= speaker then


return "Noclip can only be used on yourself"
end

if target == speaker then


local char = getBody(target)
if not char then return "Character not found" end

-- Toggle noclip state


if [Link] then
-- Disable noclip
[Link] = false

-- Remove existing noclip connection


if getgenv().NoclipConnection then
getgenv().NoclipConnection:Disconnect()
getgenv().NoclipConnection = nil
end

return "Disabled noclip mode"


else
-- Enable noclip
[Link] = true

-- Set up noclip connection


if getgenv().NoclipConnection then
getgenv().NoclipConnection:Disconnect()
end

getgenv().NoclipConnection = [Link]:Connect(function()
if not [Link] then
getgenv().NoclipConnection:Disconnect()
getgenv().NoclipConnection = nil
return
end

local char = getCharacter(target)


if not char then return end

for _, part in pairs(char:GetDescendants()) do


if part:IsA("BasePart") and [Link] then
[Link] = false
end
end
end)

return "Enabled noclip mode"


end
else
return "Noclip can only be used on yourself"
end
end

-- ESP command
[Link] = function(args, speaker)
-- Toggle ESP state
if [Link] then
-- Disable ESP
[Link] = false
-- Clean up existing ESP
for _, obj in pairs(workspace:GetDescendants()) do
if [Link] == "ESPHighlight" or [Link] == "ESPLabel" then
obj:Destroy()
end
end

if getgenv().ESPUpdateConnection then
getgenv().ESPUpdateConnection:Disconnect()
getgenv().ESPUpdateConnection = nil
end

return "Disabled ESP"


else
-- Enable ESP
[Link] = true

-- Set up ESP connection


if getgenv().ESPUpdateConnection then
getgenv().ESPUpdateConnection:Disconnect()
end

-- Create ESP highlights and labels


local function createESP()
-- Clean up existing ESP
for _, obj in pairs(workspace:GetDescendants()) do
if [Link] == "ESPHighlight" or [Link] == "ESPLabel" then
obj:Destroy()
end
end

-- Create new ESP elements


for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and [Link] then
local highlight = [Link]("Highlight")
[Link] = "ESPHighlight"
[Link] = [Link]
[Link] = [Link](1, 1, 1)
[Link] = 0.5
[Link] = 0
[Link] = [Link]

if [Link] then
local billboardGui = [Link]("BillboardGui")
[Link] = "ESPLabel"
[Link] = true
[Link] = [Link](0, 100, 0, 30)
[Link] = [Link](0, 3, 0)
[Link] = [Link]

local nameLabel = [Link]("TextLabel")


[Link] = 1
[Link] = [Link](1, 0, 1, 0)
[Link] = [Link]
nameLabel.TextColor3 = [Link]
[Link] = 0
nameLabel.TextStrokeColor3 = [Link](0, 0, 0)
[Link] = [Link]
[Link] = 14
[Link] = billboardGui
end

if [Link] then
-- Create tracers (lines to players)
local line = [Link]("Line")
[Link] = true
[Link] = [Link]
[Link] = 1
[Link] = 0.5

-- Store the line in a table for updating


if not getgenv().ESPTracers then
getgenv().ESPTracers = {}
end
getgenv().ESPTracers[player] = line
end
end
end
end

-- Initial ESP creation


createESP()

-- Update ESP on RenderStepped


getgenv().ESPUpdateConnection = [Link]:Connect(function()
if not [Link] then
getgenv().ESPUpdateConnection:Disconnect()
getgenv().ESPUpdateConnection = nil
return
end

-- Update tracers if enabled


if [Link] and getgenv().ESPTracers then
for player, line in pairs(getgenv().ESPTracers) do
if player and [Link] and
[Link]:FindFirstChild("HumanoidRootPart") then
local pos, onScreen =
[Link]:WorldToViewportPoint([Link]
tion)
if onScreen then
[Link] =
[Link]([Link].X / 2,
[Link].Y)
[Link] = [Link](pos.X, pos.Y)
[Link] = true
else
[Link] = false
end
else
[Link] = false
end
end
end
end)

-- Update ESP when players are added or removed


[Link]:Connect(function(player)
if [Link] then
wait(1) -- Wait for character to load
createESP()
end
end)

[Link]:Connect(function(player)
if [Link] and getgenv().ESPTracers and
getgenv().ESPTracers[player] then
getgenv().ESPTracers[player]:Remove()
getgenv().ESPTracers[player] = nil
end
end)

return "Enabled ESP"


end
end

-- Xray command
[Link] = function(args, speaker)
-- Toggle Xray state
if [Link] then
-- Disable Xray
[Link] = false

-- Restore original transparency


for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("BasePart") and not part:IsDescendantOf([Link])
and not part:IsDescendantOf([Link]) then
if part:GetAttribute("OriginalTransparency") ~= nil then
[Link] = part:GetAttribute("OriginalTransparency")
part:SetAttribute("OriginalTransparency", nil)
end
end
end

return "Disabled Xray"


else
-- Enable Xray
[Link] = true

-- Set transparency for all parts


for _, part in pairs(workspace:GetDescendants()) do
if part:IsA("BasePart") and not part:IsDescendantOf([Link])
and not part:IsDescendantOf([Link]) then
-- Skip certain parts like skybox
if [Link] == "Sky" or [Link] == "Clouds" or [Link] ==
"Atmosphere" then
continue
end

-- Store original transparency


if part:GetAttribute("OriginalTransparency") == nil then
part:SetAttribute("OriginalTransparency", [Link])
end

-- Set new transparency


[Link] = 0.8
end
end
-- Handle new parts
[Link]:Connect(function(part)
if not [Link] then return end

if part:IsA("BasePart") and not part:IsDescendantOf([Link])


and not part:IsDescendantOf([Link]) then
-- Skip certain parts like skybox
if [Link] == "Sky" or [Link] == "Clouds" or [Link] ==
"Atmosphere" then
return
end

-- Store original transparency


if part:GetAttribute("OriginalTransparency") == nil then
part:SetAttribute("OriginalTransparency", [Link])
end

-- Set new transparency


[Link] = 0.8
end
end)

return "Enabled Xray"


end
end

-- Fullbright command
[Link] = function(args, speaker)
-- Toggle fullbright state
if [Link] then
-- Disable fullbright
[Link] = false

-- Restore original lighting


if getgenv().OriginalBrightness then
[Link] = getgenv().OriginalBrightness
getgenv().OriginalBrightness = nil
end

if getgenv().OriginalAmbient then
[Link] = getgenv().OriginalAmbient
getgenv().OriginalAmbient = nil
end

if getgenv().OriginalOutdoorAmbient then
[Link] = getgenv().OriginalOutdoorAmbient
getgenv().OriginalOutdoorAmbient = nil
end

if getgenv().OriginalClockTime then
[Link] = getgenv().OriginalClockTime
getgenv().OriginalClockTime = nil
end

return "Disabled fullbright"


else
-- Enable fullbright
[Link] = true
-- Store original lighting
getgenv().OriginalBrightness = [Link]
getgenv().OriginalAmbient = [Link]
getgenv().OriginalOutdoorAmbient = [Link]
getgenv().OriginalClockTime = [Link]

-- Set new lighting


[Link] = 2
[Link] = [Link](1, 1, 1)
[Link] = [Link](1, 1, 1)
[Link] = 12

return "Enabled fullbright"


end
end

-- Alias for fullbright


[Link] = [Link]

-- KillAura command
[Link] = function(args, speaker)
local range = tonumber(args[1]) or [Link]

-- Toggle KillAura state


if [Link] then
-- Disable KillAura
[Link] = false

-- Remove existing KillAura connection


if getgenv().KillAuraConnection then
getgenv().KillAuraConnection:Disconnect()
getgenv().KillAuraConnection = nil
end

return "Disabled KillAura"


else
-- Enable KillAura
[Link] = true
[Link] = range

-- Set up KillAura connection


if getgenv().KillAuraConnection then
getgenv().KillAuraConnection:Disconnect()
end

getgenv().KillAuraConnection = [Link]:Connect(function()
if not [Link] then
getgenv().KillAuraConnection:Disconnect()
getgenv().KillAuraConnection = nil
return
end

-- Find players in range


for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and not
[Link][[Link]] then
-- Check team restriction
if [Link] and [Link] ==
[Link] then
continue
end

-- Check if in range
if isPlayerInRange(player, [Link]) then
-- Kill the player
performPlayerAction(player, "kill")

-- Visual feedback if enabled


if [Link] and
[Link] and [Link] then
local line = [Link]("Line")
[Link] = true
[Link] = [Link](1, 0, 0)
[Link] = 1
[Link] = 0.5

local pos1, onScreen1 =


[Link]:WorldToViewportPoint([Link]
.Position)
local pos2, onScreen2 =
[Link]:WorldToViewportPoint([Link]
tion)

if onScreen1 and onScreen2 then


[Link] = [Link](pos1.X, pos1.Y)
[Link] = [Link](pos2.X, pos2.Y)
end

game:GetService("Debris"):AddItem(line, 0.1)
end

-- Short delay to prevent immediate re-killing


wait(1)
end
end
end
end)

return "Enabled KillAura with range " .. range .. " studs"


end
end

-- Alias for killaura


[Link] = [Link]

-- InfiniteJump command
[Link] = function(args, speaker)
-- Toggle InfiniteJump state
if [Link] then
-- Disable InfiniteJump
[Link] = false

-- Remove existing InfiniteJump connection


if getgenv().InfiniteJumpConnection then
getgenv().InfiniteJumpConnection:Disconnect()
getgenv().InfiniteJumpConnection = nil
end
return "Disabled Infinite Jump"
else
-- Enable InfiniteJump
[Link] = true

-- Set up InfiniteJump connection


if getgenv().InfiniteJumpConnection then
getgenv().InfiniteJumpConnection:Disconnect()
end

getgenv().InfiniteJumpConnection =
[Link]:Connect(function(input, gameProcessed)
if not [Link] then
getgenv().InfiniteJumpConnection:Disconnect()
getgenv().InfiniteJumpConnection = nil
return
end

if [Link] == [Link] and not gameProcessed then


local char = getCharacter(speaker)
if char and char:FindFirstChild("Humanoid") then
[Link]:ChangeState([Link])
end
end
end)

return "Enabled Infinite Jump"


end
end

-- Alias for infinitejump


[Link] = [Link]

-- AntiTase command
[Link] = function(args, speaker)
-- Toggle AntiTase state
if [Link] then
-- Disable AntiTase
[Link] = false

-- Remove existing hook


if getgenv().OriginalTazePlayer then
[Link] = getgenv().OriginalTazePlayer
getgenv().OriginalTazePlayer = nil
end

return "Disabled Anti-Tase"


else
-- Enable AntiTase
[Link] = true

-- Hook the tazePlayer remote


if not getgenv().OriginalTazePlayer then
getgenv().OriginalTazePlayer = [Link]

[Link] = function(self, ...)


local args = {...}
-- Check if the target is the local player
if args[1] and args[1] == [Link] then
-- Block the tase
return
end

-- Allow other tases


return getgenv().OriginalTazePlayer(self, ...)
end
end

return "Enabled Anti-Tase"


end
end

-- AntiArrest command
[Link] = function(args, speaker)
-- Toggle AntiArrest state
if [Link] then
-- Disable AntiArrest
[Link] = false

-- Remove existing hook


if getgenv().OriginalArrest then
[Link] = getgenv().OriginalArrest
getgenv().OriginalArrest = nil
end

return "Disabled Anti-Arrest"


else
-- Enable AntiArrest
[Link] = true

-- Hook the arrest remote


if not getgenv().OriginalArrest then
getgenv().OriginalArrest = [Link]

[Link] = function(self, ...)


local args = {...}

-- Check if the target is the local player's head


if args[1] and (args[1] == [Link] or
args[1]:IsDescendantOf([Link])) then
-- Block the arrest
return
end

-- Allow other arrests


return getgenv().OriginalArrest(self, ...)
end
end

return "Enabled Anti-Arrest"


end
end

-- AntiVoid command
[Link] = function(args, speaker)
-- Toggle AntiVoid state
if [Link] then
-- Disable AntiVoid
[Link] = false

-- Remove existing AntiVoid connection


if getgenv().AntiVoidConnection then
getgenv().AntiVoidConnection:Disconnect()
getgenv().AntiVoidConnection = nil
end

return "Disabled Anti-Void"


else
-- Enable AntiVoid
[Link] = true

-- Set up AntiVoid connection


if getgenv().AntiVoidConnection then
getgenv().AntiVoidConnection:Disconnect()
end

getgenv().AntiVoidConnection = [Link]:Connect(function()
if not [Link] then
getgenv().AntiVoidConnection:Disconnect()
getgenv().AntiVoidConnection = nil
return
end

local char = getCharacter(speaker)


if char and char:FindFirstChild("HumanoidRootPart") then
-- Check if falling into void
if [Link].Y < -100 then
-- Teleport back to a safe location
teleportPlayer(speaker, TeleportLocations["yard"])
Notif("Anti-Void", "Prevented fall into void", 3)
end
end
end)

return "Enabled Anti-Void"


end
end

-- AntiFling command
[Link] = function(args, speaker)
-- Toggle AntiFling state
if [Link] then
-- Disable AntiFling
[Link] = false

-- Remove existing constraints


local char = getCharacter(speaker)
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part:FindFirstChild("AntiFlingAP") then
[Link]:Destroy()
end
end
end
-- Remove the connection
if getgenv().AntiFlingConnection then
getgenv().AntiFlingConnection:Disconnect()
getgenv().AntiFlingConnection = nil
end

return "Disabled Anti-Fling"


else
-- Enable AntiFling
[Link] = true

-- Add constraints to all parts


local function applyAntiFling(char)
if not char then return end

for _, part in pairs(char:GetDescendants()) do


if part:IsA("BasePart") and not part:FindFirstChild("AntiFlingAP")
then
local ap = [Link]("BodyAngularVelocity")
[Link] = "AntiFlingAP"
[Link] = [Link](0, 0, 0)
[Link] = [Link]([Link], [Link], [Link])
ap.P = 1000
[Link] = part
end
end
end

-- Apply initially
applyAntiFling(getCharacter(speaker))

-- Set up connection for respawn


if getgenv().AntiFlingConnection then
getgenv().AntiFlingConnection:Disconnect()
end

getgenv().AntiFlingConnection =
[Link]:Connect(function(char)
if not [Link] then
getgenv().AntiFlingConnection:Disconnect()
getgenv().AntiFlingConnection = nil
return
end

wait(0.5) -- Wait for character to fully load


applyAntiFling(char)
end)

return "Enabled Anti-Fling"


end
end

-- AntiCrash command
[Link] = function(args, speaker)
-- Toggle AntiCrash state
if [Link] then
-- Disable AntiCrash
[Link] = false
return "Disabled Anti-Crash"
else
-- Enable AntiCrash
[Link] = true

-- Install protections
local mt = getrawmetatable(game)
local oldNc = mt.__namecall

if not getgenv().OriginalNamecall then


getgenv().OriginalNamecall = oldNc
end

setreadonly(mt, false)

mt.__namecall = newcclosure(function(self, ...)


local args = {...}
local method = getnamecallmethod()

-- Detect potential crash attempts


if method == "FireServer" or method == "InvokeServer" then
local argCount = #args

-- Check for unusually large argument count


if argCount > 100 then
Notif("Anti-Crash", "Blocked large remote call (" ..
argCount .. " args)", 3)
return nil
end

-- Check for unusually large tables


for _, arg in pairs(args) do
if type(arg) == "table" then
local tableSize = 0
for _ in pairs(arg) do
tableSize = tableSize + 1
end

if tableSize > 1000 then


Notif("Anti-Crash", "Blocked large table (" ..
tableSize .. " items)", 3)
return nil
end
elseif type(arg) == "string" and #arg > 10000 then
Notif("Anti-Crash", "Blocked large string (" .. #arg .. "
chars)", 3)
return nil
end
end
end

return oldNc(self, ...)


end)

setreadonly(mt, true)

return "Enabled Anti-Crash"


end
end
-- AntiShoot command
[Link] = function(args, speaker)
-- Toggle AntiShoot state
if [Link] then
-- Disable AntiShoot
[Link] = false

-- Remove existing hook


if getgenv().OriginalShootEvent then
[Link] = getgenv().OriginalShootEvent
getgenv().OriginalShootEvent = nil
end

return "Disabled Anti-Shoot"


else
-- Enable AntiShoot
[Link] = true

-- Hook the ShootEvent remote


if not getgenv().OriginalShootEvent then
getgenv().OriginalShootEvent = [Link]

[Link] = function(self, ...)


local args = {...}

-- Check if the target is the local player


if args[1] and #args[1] > 0 and args[1][1] and (args[1][1] ==
[Link] or args[1][1]:IsDescendantOf([Link]))
then
-- Find the shooter and kill them
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and [Link] and
[Link]:FindFirstChild("Humanoid") and [Link] >
0 then
-- Check if they have a gun equipped
local hasGun = false
if [Link]:FindFirstChildOfClass("Tool") and
[Link]:FindFirstChildOfClass("Tool"):FindFirstChild("GunStates") then
hasGun = true
end

if hasGun then
-- Kill the shooter
performPlayerAction(player, "kill")
Notif("Anti-Shoot", "Killed " .. [Link] .. "
for shooting at you", 3)
break
end
end
end

-- Block the shot


return
end

-- Allow other shots


return getgenv().OriginalShootEvent(self, ...)
end
end

return "Enabled Anti-Shoot"


end
end

-- AntiPunch command
[Link] = function(args, speaker)
-- Toggle AntiPunch state
if [Link] then
-- Disable AntiPunch
[Link] = false

-- Remove existing hook


if getgenv().OriginalMeleeEvent then
[Link] = getgenv().OriginalMeleeEvent
getgenv().OriginalMeleeEvent = nil
end

return "Disabled Anti-Punch"


else
-- Enable AntiPunch
[Link] = true

-- Hook the meleeEvent remote


if not getgenv().OriginalMeleeEvent then
getgenv().OriginalMeleeEvent = [Link]

[Link] = function(self, ...)


local args = {...}

-- Check if the target is the local player


if args[1] and (args[1] == [Link] or
args[1]:IsDescendantOf([Link])) then
-- Find the puncher and kill them
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and [Link] and
[Link]:FindFirstChild("Humanoid") and [Link] >
0 then
-- Check if they are close enough
if ([Link] -
[Link]).Magnitude < 10 then
-- Kill the puncher
performPlayerAction(player, "kill")
Notif("Anti-Punch", "Killed " .. [Link] .. "
for punching you", 3)
break
end
end
end

-- Block the punch


return
end

-- Allow other punches


return getgenv().OriginalMeleeEvent(self, ...)
end
end
return "Enabled Anti-Punch"
end
end

-- InfAmmo command
[Link] = function(args, speaker)
-- Toggle InfAmmo state
if [Link] then
-- Disable InfAmmo
[Link] = false

return "Disabled Infinite Ammo"


else
-- Enable InfAmmo
[Link] = true

-- Apply infinite ammo to current weapons


local function applyInfAmmo()
if not [Link] then return end

-- Check backpack
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
end
end

-- Check equipped tools


if [Link] then
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = [Link]
[Link] = [Link]
[Link] = [Link]
end
end
end
end

-- Apply initially
applyInfAmmo()

-- Monitor for new weapons


[Link](function()
while [Link] do
applyInfAmmo()
wait(1)
end
end)()

return "Enabled Infinite Ammo"


end
end
-- SilentAim command
[Link] = function(args, speaker)
-- Toggle SilentAim state
if [Link] then
-- Disable SilentAim
[Link] = false

return "Disabled Silent Aim"


else
-- Enable SilentAim
[Link] = true

-- Also configure headshot setting


local headshot = args[1] and args[1]:lower() == "head"
[Link] = headshot

-- Install the silent aim


setupSilentAim()

return "Enabled Silent Aim" .. (headshot and " (Headshot mode)" or "")
end
end

-- OneShot command
[Link] = function(args, speaker)
-- Toggle OneShot state
if [Link] then
-- Disable OneShot
[Link] = false

-- Remove existing hook


if getgenv().OriginalShootEvent then
[Link] = getgenv().OriginalShootEvent
getgenv().OriginalShootEvent = nil
end

return "Disabled One-Shot Kills"


else
-- Enable OneShot
[Link] = true

-- Hook the ShootEvent remote


if not getgenv().OriginalShootEvent then
getgenv().OriginalShootEvent = [Link]

[Link] = function(self, ...)


local args = {...}

-- Increase damage for one-shot kill


if args[1] and #args[1] > 0 then
args[1][3] = 100 -- High damage for instant kill
end

-- Allow the modified shot


return getgenv().OriginalShootEvent(self, unpack(args))
end
end

return "Enabled One-Shot Kills"


end
end

-- RapidFire command
[Link] = function(args, speaker)
-- Toggle RapidFire state
if [Link] then
-- Disable RapidFire
[Link] = false

return "Disabled Rapid Fire"


else
-- Enable RapidFire
[Link] = true

-- Apply rapid fire to guns


local function applyRapidFire()
if not [Link] then return end

-- Check backpack
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = true
[Link] = 0.05
end
end

-- Check equipped tools


if [Link] then
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = true
[Link] = 0.05
end
end
end
end

-- Apply initially
applyRapidFire()

-- Monitor for new weapons


[Link](function()
while [Link] do
applyRapidFire()
wait(1)
end
end)()

return "Enabled Rapid Fire"


end
end

-- NoRecoil command
[Link] = function(args, speaker)
-- Toggle NoRecoil state
if [Link] then
-- Disable NoRecoil
[Link] = false

return "Disabled No Recoil"


else
-- Enable NoRecoil
[Link] = true

-- Apply no recoil to guns


local function applyNoRecoil()
if not [Link] then return end

-- Check backpack
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = 0
[Link] = 0
end
end

-- Check equipped tools


if [Link] then
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") and tool:FindFirstChild("GunStates") then
local gunStates = require([Link])
[Link] = 0
[Link] = 0
end
end
end
end

-- Apply initially
applyNoRecoil()

-- Monitor for new weapons


[Link](function()
while [Link] do
applyNoRecoil()
wait(1)
end
end)()

return "Enabled No Recoil"


end
end

-- AutoGuns command
[Link] = function(args, speaker)
-- Toggle AutoGuns state
if [Link] then
-- Disable AutoGuns
[Link] = false

-- Remove existing connection


if getgenv().AutoGunsConnection then
getgenv().AutoGunsConnection:Disconnect()
getgenv().AutoGunsConnection = nil
end

return "Disabled Auto Guns"


else
-- Enable AutoGuns
[Link] = true

-- Set up Auto Guns connection


if getgenv().AutoGunsConnection then
getgenv().AutoGunsConnection:Disconnect()
end

-- Give all guns immediately


giveItem(speaker, "guns")

-- Set up connection for respawn


getgenv().AutoGunsConnection =
[Link]:Connect(function(char)
if not [Link] then
getgenv().AutoGunsConnection:Disconnect()
getgenv().AutoGunsConnection = nil
return
end

wait(1) -- Wait for character to fully load


giveItem(speaker, "guns")
end)

return "Enabled Auto Guns"


end
end

-- =======================================
-- CHAT COMMAND HANDLER
-- =======================================

-- Function to process chat commands


local function processChatCommand(message, speaker)
if not message or not speaker then return end

-- Check if the message starts with the prefix


if not message:sub(1, #[Link]) == [Link] then return end

-- Extract the command and arguments


local commandWithArgs = message:sub(#[Link] + 1)
local splitMessage = commandWithArgs:split(" ")
local commandName = splitMessage[1]:lower()
[Link](splitMessage, 1)
local args = splitMessage

-- Check for command aliases


if CommandAliases[commandName] then
commandName = CommandAliases[commandName]
end

-- Execute the command if it exists


if COMMANDS[commandName] then
local success, result = pcall(function()
return COMMANDS[commandName](args, speaker)
end)

if success then
-- Command executed successfully
if result then
Notif("Command", result, 3)

-- Output the result to chat if enabled


if [Link] and speaker ~= LocalPlayer then
sendWhisper(speaker, result)
end
end
else
-- Command failed
Notif("Error", "Failed to execute command: " .. tostring(result), 3)

-- Output the error to chat if enabled


if [Link] and speaker ~= LocalPlayer then
sendWhisper(speaker, "Error: " .. tostring(result))
end

-- Log the error


[Link](Settings._internal.errorLog, {
command = commandName,
args = args,
error = tostring(result),
time = [Link]()
})

-- Keep error log at reasonable size


if #Settings._internal.errorLog > 50 then
[Link](Settings._internal.errorLog, 1)
end
end

return true
end

return false
end

-- Listen for chat messages from players


local chatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents")
if chatEvents then
local onMessageEvent = chatEvents:FindFirstChild("OnMessageDoneFiltering")
if onMessageEvent then
[Link]:Connect(function(messageData)
if not messageData or not [Link] then return end

-- Get the player who sent the message


local speaker = Players:FindFirstChild([Link])
if not speaker then return end

-- Check if the player has admin or is the local player


if speaker == LocalPlayer or [Link][[Link]] then
local message = [Link] or ""
processChatCommand(message, speaker)
end
end)
end
end

-- =======================================
-- LOOP KILL & AUTO SYSTEMS
-- =======================================

-- Set up auto kill system


[Link](function()
while wait(1) do -- Check every second
-- Loop kill players
for name, _ in pairs([Link]) do
local player = Players:FindFirstChild(name)
if player and [Link] and
[Link]:FindFirstChild("Humanoid") and [Link] >
0 then
performPlayerAction(player, "kill")
wait(0.1) -- Small delay to prevent overload
end
end

-- Auto kill blacklisted players


for name, _ in pairs([Link]) do
local player = Players:FindFirstChild(name)
if player and [Link] and
[Link]:FindFirstChild("Humanoid") and [Link] >
0 then
performPlayerAction(player, "kill")
wait(0.1) -- Small delay to prevent overload
end
end

-- Auto get guns if enabled


if [Link] and [Link] and
[Link]:FindFirstChild("Humanoid") and
[Link] > 0 then
local hasAllGuns = true
local hasPistol = false
local hasShotgun = false
local hasAK47 = false
local hasRiot = false

-- Check backpack
for _, tool in pairs([Link]:GetChildren()) do
if [Link] == "M9" then hasPistol = true end
if [Link] == "Remington 870" then hasShotgun = true end
if [Link] == "AK-47" then hasAK47 = true end
if [Link] == "Riot Shield" then hasRiot = true end
end

-- Check equipped tools


if [Link] then
for _, tool in pairs([Link]:GetChildren()) do
if tool:IsA("Tool") then
if [Link] == "M9" then hasPistol = true end
if [Link] == "Remington 870" then hasShotgun = true end
if [Link] == "AK-47" then hasAK47 = true end
if [Link] == "Riot Shield" then hasRiot = true end
end
end
end

hasAllGuns = hasPistol and hasShotgun and hasAK47 and hasRiot

if not hasAllGuns then


giveItem(LocalPlayer, "guns")
end
end

-- Auto team if enabled


if [Link] and [Link] ~= "none" then
if [Link] == "Medium stone grey" then -- No team
if [Link] == "prisoner" or [Link]
== "inmate" then
setTeam(LocalPlayer, "Bright orange")
elseif [Link] == "guard" then
setTeam(LocalPlayer, "Bright blue")
elseif [Link] == "criminal" or
[Link] == "crim" then
setTeam(LocalPlayer, "Really red")
end
end
end
end
end)()

-- Ban check system


[Link](function()
while wait(5) do -- Check every 5 seconds
-- Check for bans
for _, player in pairs(Players:GetPlayers()) do
if Settings._internal.bannedPlayers[[Link]] then
local banData = Settings._internal.bannedPlayers[[Link]]

-- Check if ban has expired


if [Link]() > [Link] then
-- Ban expired, remove it
Settings._internal.bannedPlayers[[Link]] = nil
else
-- Ban still active, kick the player
local timeLeft = [Link](([Link] - [Link]()) /
60) -- Minutes left
pcall(function()
player:Kick("You are banned for " .. timeLeft .. " more
minutes. Reason: " .. [Link])
end)
end
end
end
end
end)()

-- Player join/leave notifications


if [Link] then
[Link]:Connect(function(player)
Notif("Player Joined", [Link], 3)
end)
end
if [Link] then
[Link]:Connect(function(player)
Notif("Player Left", [Link], 3)
end)
end

-- =======================================
-- GUI COMMANDS & MENU SYSTEM
-- =======================================

-- Function to create the command GUI


local function createCommandGui()
if not [Link] then return end

-- Check if GUI already exists


if getgenv().CommandGui then
getgenv().CommandGui:Destroy()
getgenv().CommandGui = nil
end

-- Create GUI
local gui = [Link]("ScreenGui")
[Link] = "PrisonAdminGUI"
[Link] = false

-- Create main frame


local mainFrame = [Link]("Frame")
[Link] = "MainFrame"
[Link] = [Link](0, 300, 0, 400)
[Link] = [Link](0.5, -150, 0.5, -200)
mainFrame.BackgroundColor3 = [Link](30, 30, 30)
[Link] = 0
[Link] = false
[Link] = gui

-- Create title bar


local titleBar = [Link]("Frame")
[Link] = "TitleBar"
[Link] = [Link](1, 0, 0, 30)
titleBar.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = mainFrame

-- Make title bar draggable


local dragging = false
local dragInput, dragStart, startPos

[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
dragging = true
dragStart = [Link]
startPos = [Link]
end
end)

[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
dragging = false
end
end)

[Link]:Connect(function(input)
if [Link] == [Link] and dragging
then
dragInput = input
end
end)

game:GetService("RunService").RenderStepped:Connect(function()
if dragging and dragInput then
local delta = [Link] - dragStart
[Link] = [Link]([Link], [Link] +
delta.X, [Link], [Link] + delta.Y)
end
end)

-- Title text
local titleText = [Link]("TextLabel")
[Link] = "TitleText"
[Link] = [Link](1, -60, 1, 0)
[Link] = [Link](0, 10, 0, 0)
[Link] = 1
[Link] = "Prison Life Admin (v" .. currentVersion .. ")"
titleText.TextColor3 = [Link](255, 255, 255)
[Link] = 16
[Link] = [Link]
[Link] = [Link]
[Link] = titleBar

-- Close button
local closeButton = [Link]("TextButton")
[Link] = "CloseButton"
[Link] = [Link](0, 25, 0, 25)
[Link] = [Link](1, -30, 0, 2)
closeButton.BackgroundColor3 = [Link](200, 50, 50)
[Link] = 0
[Link] = "X"
closeButton.TextColor3 = [Link](255, 255, 255)
[Link] = 16
[Link] = [Link]
[Link] = titleBar

-- Close button functionality


closeButton.MouseButton1Click:Connect(function()
[Link] = false
end)

-- Create tab system


local tabs = {"Commands", "Players", "Settings", "Info"}
local tabButtons = {}
local tabFrames = {}

-- Tab container
local tabContainer = [Link]("Frame")
[Link] = "TabContainer"
[Link] = [Link](1, 0, 0, 30)
[Link] = [Link](0, 0, 0, 30)
tabContainer.BackgroundColor3 = [Link](40, 40, 40)
[Link] = 0
[Link] = mainFrame

-- Create tabs
for i, tabName in ipairs(tabs) do
-- Tab button
local tabButton = [Link]("TextButton")
[Link] = tabName .. "Button"
[Link] = [Link](1/#tabs, 0, 1, 0)
[Link] = [Link]((i-1)/#tabs, 0, 0, 0)
tabButton.BackgroundColor3 = [Link](40, 40, 40)
[Link] = 0
[Link] = tabName
tabButton.TextColor3 = [Link](200, 200, 200)
[Link] = 14
[Link] = [Link]
[Link] = tabContainer
tabButtons[tabName] = tabButton

-- Tab frame
local tabFrame = [Link]("ScrollingFrame")
[Link] = tabName .. "Frame"
[Link] = [Link](1, 0, 1, -60)
[Link] = [Link](0, 0, 0, 60)
tabFrame.BackgroundColor3 = [Link](30, 30, 30)
[Link] = 0
[Link] = 6
[Link] = i == 1 -- First tab visible by default
[Link] = [Link](0, 0, 0, 1000) -- Will be adjusted
dynamically
[Link] = [Link].Y
[Link] = [Link].Y
[Link] = mainFrame
tabFrames[tabName] = tabFrame

-- Tab button functionality


tabButton.MouseButton1Click:Connect(function()
-- Hide all tab frames
for _, frame in pairs(tabFrames) do
[Link] = false
end

-- Reset all button colors


for _, button in pairs(tabButtons) do
button.BackgroundColor3 = [Link](40, 40, 40)
button.TextColor3 = [Link](200, 200, 200)
end

-- Show selected tab


[Link] = true
tabButton.BackgroundColor3 = [Link](60, 60, 60)
tabButton.TextColor3 = [Link](255, 255, 255)
end)
end

-- Populate Commands tab


local commandsFrame = tabFrames["Commands"]
-- Search bar
local searchBar = [Link]("TextBox")
[Link] = "SearchBar"
[Link] = [Link](1, -20, 0, 30)
[Link] = [Link](0, 10, 0, 10)
searchBar.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Search commands..."
searchBar.TextColor3 = [Link](200, 200, 200)
[Link] = 14
[Link] = [Link]
[Link] = true
[Link] = commandsFrame

-- Command buttons container


local commandListContainer = [Link]("Frame")
[Link] = "CommandListContainer"
[Link] = [Link](1, -20, 1, -50)
[Link] = [Link](0, 10, 0, 50)
[Link] = 1
[Link] = commandsFrame

-- Command list layout


local commandListLayout = [Link]("UIListLayout")
[Link] = [Link](0, 5)
[Link] = [Link]
[Link] = commandListContainer

-- Add command buttons


local commandCount = 0
local displayedCommands = {}

local function updateCommandList(filter)


-- Clear existing buttons
for _, button in pairs(displayedCommands) do
button:Destroy()
end
displayedCommands = {}

-- Add command buttons based on filter


local sortedCommands = {}
for cmdName, _ in pairs(COMMANDS) do
if not filter or cmdName:lower():find(filter:lower(), 1, true) then
[Link](sortedCommands, cmdName)
end
end
[Link](sortedCommands)

for i, cmdName in ipairs(sortedCommands) do


local commandButton = [Link]("TextButton")
[Link] = cmdName .. "Button"
[Link] = [Link](1, 0, 0, 30)
commandButton.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = cmdName
commandButton.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = commandListContainer
-- Add to displayed commands
displayedCommands[cmdName] = commandButton

-- Button click handler


commandButton.MouseButton1Click:Connect(function()
-- Execute the command on click
processChatCommand([Link] .. cmdName, LocalPlayer)
end)

commandCount = commandCount + 1
end
end

-- Initial population
updateCommandList()

-- Search functionality
[Link]:Connect(function(prop)
if prop == "Text" then
local filter = [Link]
if filter == "Search commands..." then filter = "" end
updateCommandList(filter)
end
end)

-- Populate Players tab


local playersFrame = tabFrames["Players"]

-- Search bar for players


local playerSearchBar = [Link]("TextBox")
[Link] = "PlayerSearchBar"
[Link] = [Link](1, -20, 0, 30)
[Link] = [Link](0, 10, 0, 10)
playerSearchBar.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Search players..."
playerSearchBar.TextColor3 = [Link](200, 200, 200)
[Link] = 14
[Link] = [Link]
[Link] = true
[Link] = playersFrame

-- Player buttons container


local playerListContainer = [Link]("Frame")
[Link] = "PlayerListContainer"
[Link] = [Link](1, -20, 1, -50)
[Link] = [Link](0, 10, 0, 50)
[Link] = 1
[Link] = playersFrame

-- Player list layout


local playerListLayout = [Link]("UIListLayout")
[Link] = [Link](0, 5)
[Link] = [Link]
[Link] = playerListContainer

-- Player context menu


local contextMenu = [Link]("Frame")
[Link] = "ContextMenu"
[Link] = [Link](0, 150, 0, 200)
contextMenu.BackgroundColor3 = [Link](40, 40, 40)
[Link] = 0
[Link] = false
[Link] = 10
[Link] = gui

-- Context menu layout


local contextMenuLayout = [Link]("UIListLayout")
[Link] = [Link](0, 2)
[Link] = [Link]
[Link] = contextMenu

-- Context menu options


local contextOptions = {
{name = "Kill", cmd = "kill"},
{name = "LoopKill", cmd = "loopkill"},
{name = "UnLoopKill", cmd = "unloopkill"},
{name = "Teleport To", cmd = "tp"},
{name = "Bring", cmd = "bring"},
{name = "Give Guns", cmd = "guns"},
{name = "Arrest", cmd = "arrest"},
{name = "Free", cmd = "free"},
{name = "Tase", cmd = "tase"},
{name = "Fling", cmd = "fling"},
{name = "Ban", cmd = "ban"},
{name = "Kick", cmd = "kick"},
{name = "Admin", cmd = "admin"}
}

-- Add context menu buttons


for _, option in ipairs(contextOptions) do
local optionButton = [Link]("TextButton")
[Link] = [Link] .. "Option"
[Link] = [Link](1, 0, 0, 25)
optionButton.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = [Link]
optionButton.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = 11
[Link] = contextMenu

-- Adjust context menu size


[Link] = [Link](0, 150, 0, #contextOptions * 27)
end

-- Add player buttons


local displayedPlayers = {}
local selectedPlayer = nil

local function updatePlayerList(filter)


-- Clear existing buttons
for _, button in pairs(displayedPlayers) do
button:Destroy()
end
displayedPlayers = {}
-- Add player buttons based on filter
for _, player in ipairs(Players:GetPlayers()) do
if not filter or [Link]:lower():find(filter:lower(), 1, true) then
local playerFrame = [Link]("Frame")
[Link] = [Link] .. "Frame"
[Link] = [Link](1, 0, 0, 40)
playerFrame.BackgroundColor3 = [Link]
[Link] = 0
[Link] = playerListContainer

-- Player name
local playerName = [Link]("TextLabel")
[Link] = "PlayerName"
[Link] = [Link](1, -80, 1, 0)
[Link] = [Link](0, 40, 0, 0)
[Link] = 1
[Link] = [Link]
playerName.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = [Link]
[Link] = playerFrame

-- Player icon (square for now, can be replaced with actual player
icon)
local playerIcon = [Link]("Frame")
[Link] = "PlayerIcon"
[Link] = [Link](0, 30, 0, 30)
[Link] = [Link](0, 5, 0, 5)
playerIcon.BackgroundColor3 = [Link](200, 200, 200)
[Link] = 0
[Link] = playerFrame

-- Status indicators (admin, whitelisted, blacklisted)


if [Link][[Link]] then
local adminIndicator = [Link]("Frame")
[Link] = "AdminIndicator"
[Link] = [Link](0, 10, 0, 10)
[Link] = [Link](1, -15, 0, 5)
adminIndicator.BackgroundColor3 = [Link](0, 255, 0)
[Link] = 0
[Link] = playerFrame
end

if [Link][[Link]] then
local whitelistIndicator = [Link]("Frame")
[Link] = "WhitelistIndicator"
[Link] = [Link](0, 10, 0, 10)
[Link] = [Link](1, -15, 0, 20)
whitelistIndicator.BackgroundColor3 = [Link](255, 255,
0)
[Link] = 0
[Link] = playerFrame
end

if [Link][[Link]] then
local blacklistIndicator = [Link]("Frame")
[Link] = "BlacklistIndicator"
[Link] = [Link](0, 10, 0, 10)
[Link] = [Link](1, -30, 0, 20)
blacklistIndicator.BackgroundColor3 = [Link](255, 0, 0)
[Link] = 0
[Link] = playerFrame
end

-- Player frame click handler


[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 then
-- Select the player
if selectedPlayer then
[Link] = 0
end
selectedPlayer = playerFrame
[Link] = 0.5
elseif [Link] == [Link].MouseButton2
then
-- Show context menu
[Link] = [Link](0, [Link].X, 0,
[Link].Y)
[Link] = true
selectedPlayer = player

-- Set up context menu button handlers


for _, child in pairs(contextMenu:GetChildren()) do
if child:IsA("TextButton") then
for _, option in ipairs(contextOptions) do
if [Link] == [Link] then
child.MouseButton1Click:Connect(function()
processChatCommand([Link] ..
[Link] .. " " .. [Link], LocalPlayer)
[Link] = false
end)
end
end
end
end
end
end)

-- Add to displayed players


displayedPlayers[[Link]] = playerFrame
end
end
end

-- Initial population
updatePlayerList()

-- Search functionality
[Link]:Connect(function(prop)
if prop == "Text" then
local filter = [Link]
if filter == "Search players..." then filter = "" end
updatePlayerList(filter)
end
end)
-- Hide context menu when clicking elsewhere
[Link]:Connect(function(input)
if [Link] == [Link].MouseButton1 and
[Link] then
[Link] = false
end
end)

-- Update player list when players join/leave


[Link]:Connect(function(player)
wait(1) -- Wait for player to fully load
updatePlayerList([Link] ~= "Search players..." and
[Link] or "")
end)

[Link]:Connect(function(player)
updatePlayerList([Link] ~= "Search players..." and
[Link] or "")
end)

-- Populate Settings tab


local settingsFrame = tabFrames["Settings"]

-- Settings container
local settingsContainer = [Link]("Frame")
[Link] = "SettingsContainer"
[Link] = [Link](1, -20, 1, -20)
[Link] = [Link](0, 10, 0, 10)
[Link] = 1
[Link] = settingsFrame

-- Settings layout
local settingsLayout = [Link]("UIListLayout")
[Link] = [Link](0, 10)
[Link] = [Link]
[Link] = settingsContainer

-- Add toggle settings


local toggleSettings = {
{name = "Anti-Kick", value = "EnableAntiKick"},
{name = "Anti-Tase", value = "AntiTase"},
{name = "Anti-Arrest", value = "AntiArrest"},
{name = "Anti-Shoot", value = "AntiShoot"},
{name = "Anti-Punch", value = "AntiPunch"},
{name = "Anti-Fling", value = "AntiFling"},
{name = "Anti-Void", value = "AntiVoid"},
{name = "Anti-Death", value = "AntiDeath"},
{name = "Anti-Ragdoll", value = "AntiRagdoll"},
{name = "Kill Aura", value = "KillAura"},
{name = "Silent Aim", value = "SilentAim"},
{name = "Infinite Ammo", value = "InfAmmo"},
{name = "One-Shot Kills", value = "InfDamage"},
{name = "No Recoil", value = "NoRecoil"},
{name = "Rapid Fire", value = "RapidFire"},
{name = "Fullbright", value = "Fullbright"},
{name = "ESP", value = "PlayerESP"},
{name = "X-Ray", value = "Xray"},
{name = "Auto Guns", value = "AutoGuns"},
{name = "Join Notifications", value = "JoinNotify"},
{name = "Leave Notifications", value = "LeaveNotify"},
{name = "Kill Notifications", value = "KillNotify"},
{name = "Command Notifications", value = "CommandNotify"}
}

for _, setting in ipairs(toggleSettings) do


local settingFrame = [Link]("Frame")
[Link] = [Link] .. "Frame"
[Link] = [Link](1, 0, 0, 30)
settingFrame.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = settingsContainer

-- Setting name
local settingName = [Link]("TextLabel")
[Link] = "SettingName"
[Link] = [Link](1, -60, 1, 0)
[Link] = [Link](0, 10, 0, 0)
[Link] = 1
[Link] = [Link]
settingName.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = [Link]
[Link] = settingFrame

-- Toggle button
local toggleButton = [Link]("TextButton")
[Link] = "ToggleButton"
[Link] = [Link](0, 40, 0, 20)
[Link] = [Link](1, -50, 0, 5)
toggleButton.BackgroundColor3 = Settings[[Link]] and
[Link](0, 200, 0) or [Link](200, 0, 0)
[Link] = 0
[Link] = Settings[[Link]] and "ON" or "OFF"
toggleButton.TextColor3 = [Link](255, 255, 255)
[Link] = 12
[Link] = [Link]
[Link] = settingFrame

-- Toggle button click handler


toggleButton.MouseButton1Click:Connect(function()
Settings[[Link]] = not Settings[[Link]]
toggleButton.BackgroundColor3 = Settings[[Link]] and
[Link](0, 200, 0) or [Link](200, 0, 0)
[Link] = Settings[[Link]] and "ON" or "OFF"

-- Execute appropriate command if needed


if [Link] == "KillAura" then
processChatCommand([Link] .. "killaura", LocalPlayer)
elseif [Link] == "SilentAim" then
processChatCommand([Link] .. "silentaim", LocalPlayer)
elseif [Link] == "InfAmmo" then
processChatCommand([Link] .. "infammo", LocalPlayer)
elseif [Link] == "NoRecoil" then
processChatCommand([Link] .. "norecoil", LocalPlayer)
elseif [Link] == "RapidFire" then
processChatCommand([Link] .. "rapidfire", LocalPlayer)
elseif [Link] == "Fullbright" then
processChatCommand([Link] .. "fullbright", LocalPlayer)
elseif [Link] == "PlayerESP" then
processChatCommand([Link] .. "esp", LocalPlayer)
elseif [Link] == "Xray" then
processChatCommand([Link] .. "xray", LocalPlayer)
elseif [Link] == "AutoGuns" then
processChatCommand([Link] .. "autoguns", LocalPlayer)
elseif [Link] == "AntiTase" then
processChatCommand([Link] .. "antitase", LocalPlayer)
elseif [Link] == "AntiArrest" then
processChatCommand([Link] .. "antiarrest", LocalPlayer)
elseif [Link] == "AntiShoot" then
processChatCommand([Link] .. "antishoot", LocalPlayer)
elseif [Link] == "AntiPunch" then
processChatCommand([Link] .. "antipunch", LocalPlayer)
elseif [Link] == "AntiFling" then
processChatCommand([Link] .. "antifling", LocalPlayer)
elseif [Link] == "AntiVoid" then
processChatCommand([Link] .. "antivoid", LocalPlayer)
end
end)
end

-- Populate Info tab


local infoFrame = tabFrames["Info"]

-- Info container
local infoContainer = [Link]("Frame")
[Link] = "InfoContainer"
[Link] = [Link](1, -20, 1, -20)
[Link] = [Link](0, 10, 0, 10)
[Link] = 1
[Link] = infoFrame

-- Info layout
local infoLayout = [Link]("UIListLayout")
[Link] = [Link](0, 10)
[Link] = [Link]
[Link] = infoContainer

-- Version info
local versionInfo = [Link]("TextLabel")
[Link] = "VersionInfo"
[Link] = [Link](1, 0, 0, 30)
versionInfo.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Prison Life Admin v" .. currentVersion
versionInfo.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = 1
[Link] = infoContainer

-- Execution info
local executionInfo = [Link]("TextLabel")
[Link] = "ExecutionInfo"
[Link] = [Link](1, 0, 0, 30)
executionInfo.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Executed on: " .. ExecutionDate
executionInfo.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = 2
[Link] = infoContainer

-- Command count
local commandCountLabel = [Link]("TextLabel")
[Link] = "CommandCountLabel"
[Link] = [Link](1, 0, 0, 30)
commandCountLabel.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Total Commands: " .. commandCount
commandCountLabel.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = 3
[Link] = infoContainer

-- Stats section
local statsTitle = [Link]("TextLabel")
[Link] = "StatsTitle"
[Link] = [Link](1, 0, 0, 30)
statsTitle.BackgroundColor3 = [Link](60, 60, 60)
[Link] = 0
[Link] = "Statistics"
statsTitle.TextColor3 = [Link](255, 255, 255)
[Link] = 16
[Link] = [Link]
[Link] = 4
[Link] = infoContainer

-- Create stats labels


local function createStatLabel(name, text, order)
local statLabel = [Link]("TextLabel")
[Link] = name .. "Label"
[Link] = [Link](1, 0, 0, 25)
statLabel.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = text
statLabel.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = order
[Link] = infoContainer
return statLabel
end

local executionCountLabel = createStatLabel("ExecutionCount", "Commands


Executed: " .. Settings._internal.executionCount, 5)
local killCountLabel = createStatLabel("KillCount", "Total Kills: " ..
Settings._internal.killCount, 6)
local teleportCountLabel = createStatLabel("TeleportCount", "Total Teleports: "
.. Settings._internal.teleportCount, 7)
local uptimeLabel = createStatLabel("Uptime", "Uptime: 0m", 8)

-- Credits section
local creditsTitle = [Link]("TextLabel")
[Link] = "CreditsTitle"
[Link] = [Link](1, 0, 0, 30)
creditsTitle.BackgroundColor3 = [Link](60, 60, 60)
[Link] = 0
[Link] = "Credits"
creditsTitle.TextColor3 = [Link](255, 255, 255)
[Link] = 16
[Link] = [Link]
[Link] = 9
[Link] = infoContainer

local creditsLabel = [Link]("TextLabel")


[Link] = "CreditsLabel"
[Link] = [Link](1, 0, 0, 60)
creditsLabel.BackgroundColor3 = [Link](50, 50, 50)
[Link] = 0
[Link] = "Original script by HarvCRW (C0REIss)\nExpanded and
modified for client-side execution\nIntegrated with PrizzLife mechanics"
creditsLabel.TextColor3 = [Link](255, 255, 255)
[Link] = 14
[Link] = [Link]
[Link] = true
[Link] = 10
[Link] = infoContainer

-- Update stats periodically


[Link](function()
while wait(1) do
local uptime = [Link]() - StartupTime
local minutesUptime = [Link](uptime / 60)
local hoursUptime = [Link](minutesUptime / 60)

if hoursUptime > 0 then


[Link] = "Uptime: " .. hoursUptime .. "h " ..
(minutesUptime % 60) .. "m"
else
[Link] = "Uptime: " .. minutesUptime .. "m"
end

[Link] = "Commands Executed: " ..


Settings._internal.executionCount
[Link] = "Total Kills: " .. Settings._internal.killCount
[Link] = "Total Teleports: " ..
Settings._internal.teleportCount
end
end)()

-- Set up GUI toggle on a key press


[Link]:Connect(function(input, gameProcessed)
if not gameProcessed and [Link] == [Link] then
[Link] = not [Link]
end
end)

-- Make GUI semi-transparent when mouse is not over it


[Link]:Connect(function()
[Link] = 0
[Link] = 0
[Link] = 0
end)

[Link]:Connect(function()
[Link] = 0.3
[Link] = 0.3
[Link] = 0.3
end)

-- Set initial transparency


[Link] = 0.3
[Link] = 0.3
[Link] = 0.3

-- Store GUI for future reference


getgenv().CommandGui = gui

-- Parent GUI to appropriate location


if syn and syn.protect_gui then
syn.protect_gui(gui)
[Link] = game:GetService("CoreGui")
elseif gethui then
[Link] = gethui()
else
[Link] = game:GetService("CoreGui")
end

-- Show notification
Notif("GUI Loaded", "Press Right Control to toggle the GUI", 5)

return gui
end

-- =======================================
-- INITIALIZATION & STARTUP
-- =======================================

-- Set up safe mode for command execution


if [Link] then
-- Set up error handling
local oldError = error

error = function(message, level)


-- Log the error
[Link](Settings._internal.errorLog, {
message = tostring(message),
level = level,
time = [Link]()
})

-- Keep error log at reasonable size


if #Settings._internal.errorLog > 50 then
[Link](Settings._internal.errorLog, 1)
end

-- Show error notification


Notif("Error", tostring(message), 5)

-- Call original error function


return oldError(message, level)
end
end

-- Create commands for all direct teleport locations


for location, _ in pairs(TeleportLocations) do
if not COMMANDS[location] then
COMMANDS[location] = function(args, speaker)
return [Link]({location}, speaker)
end
end
end

-- Create commands for all items


for item, _ in pairs(ItemLocations) do
if not COMMANDS[item] and not COMMANDS[item:lower()] then
COMMANDS[item:lower()] = function(args, speaker)
return [Link]({item:lower(), args[1]}, speaker)
end
end
end

-- Run startup
local function startup()
-- Set up anti-kick
if [Link] then
setupAntiKick()
end

-- Set up server access


setupServerAccess()

-- Set up weapon mods


if [Link] then
setupInfiniteAmmo()
end

-- Set up silent aim


if [Link] then
setupSilentAim()
end

-- Execute auto commands


for _, cmd in ipairs([Link]) do
processChatCommand([Link] .. cmd, LocalPlayer)
wait(0.1) -- Small delay between commands
end

-- Create command GUI


createCommandGui()

-- Show startup notification


Notif("Script Loaded", "Prison Life Admin v" .. currentVersion .. " loaded", 5)

if [Link] then
print("----------")
print("Prison Life Admin v" .. currentVersion .. " loaded")
print("Execution time: " .. tostring(tick() - Execution_Runtime) .. "
seconds")
print("Total commands: " .. tostring(#COMMANDS))
print("----------")
end
end

-- Run startup procedures


startup()

-- Return API for external use


API = {
Commands = COMMANDS,
Settings = Settings,
ProcessCommand = processChatCommand,
GetPlayers = function(arg, speaker) return findPlayer(arg, speaker) end,
GetTeleportLocation = function(name) return TeleportLocations[name:lower()]
end,
GetItemLocation = function(name) return ItemLocations[name:lower()] end,
Teleport = teleportPlayer,
Kill = function(player) return performPlayerAction(player, "kill") end,
PerformAction = performPlayerAction,
SetTeam = setTeam,
GiveItem = giveItem,
SendNotification = Notif,
OpenGui = function() if getgenv().CommandGui then
getgenv().[Link] = true end end,
CloseGui = function() if getgenv().CommandGui then
getgenv().[Link] = false end end,
ToggleGui = function() if getgenv().CommandGui then
getgenv().[Link] = not getgenv().[Link]
end end
}

return API

You might also like