>_ scriptsbin
Prison Life icon

Prison Life Scripts  — all 18 in one page

undetected 17 keyless 1 key required action updated 2 Nov 2026

Prison Life is one of the oldest Roblox games still holding a player base, and its scripts are correspondingly stable — the remotes have barely moved in years, so what is listed here mostly keeps working. Expect the usual set: ESP, aimbot, teleport, keycard access.

Because the game is old, build quality varies far more than with newer titles. Prefer blocks that name the developers and were updated recently; a lot of the older entries are skins over the same 2020-era base with a dead host.

Note. Teleports break when the server re-assigns your cell — check the guard tower and yard anchors after a rejoin before trusting a stored coordinate.

01

Zolt Hub KEYLESS GUI! SILENT AIM, AIMBOT, ESP, TELEPORT & MORE

keyless working Silent AimAimbotHitbox ExpanderGun ModsVisual ESPTeleportLocal Player

Roblox Prison Life by Zolt Hub with no key system so w! The script was not created by meIts free and has a bunch of features to use

loadstring(game:HttpGet("https://raw.githubusercontent.com/f34p9fh3a4/.xyz/refs/heads/main/loader.lua"))()
raw.githubusercontent.com updated 2 Nov 2026 10.1k views 20 loader source ↗
02

Silent Aim script Prison Life (Open Source)

keyless working mobile

An Open Source Silent Aimbot Script for Roblox Prison Life

local Players = game:GetService("Players")
inline updated 2 Nov 2026 2.3k views 12
full source (6743 chars)
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local Workspace = game:GetService("Workspace")
local UserInputService = game:GetService("UserInputService")



-- Change ur settings here
local TeamCheck = true
local AimPart = "Head"
local WallCheck = true
local MaxRange = 300
local FOV = 360



local function IsHostile(Char)
    local ok, Val = pcall(function() return Char:GetAttribute("Hostile") end)

    if ok and Val ~= nil then return Val == true end

    local V = Char:FindFirstChild("Hostile")
    if V and V:IsA("BoolValue") then return V.Value end

    return false
end



local function CanDamage(P)
    local Char = P.Character
    if not Char then return false end


    local Hum = Char:FindFirstChildOfClass("Humanoid")
    if not Hum or Hum.Health <= 0 then return false end


    if Char:FindFirstChild("ForceField") then return false end


    if TeamCheck then
        local MyTeam = LocalPlayer.Team
        local TheirTeam = P.Team

        if MyTeam and TheirTeam and MyTeam == TheirTeam then return false end

        if MyTeam and MyTeam.Name == "Guards" then
            if not IsHostile(Char) then return false end
        end
    end


    return true
end



local function IsVisible(Char, Origin)
    local Params = RaycastParams.new()
    Params.FilterType = Enum.RaycastFilterType.Exclude
    Params.FilterDescendantsInstances = LocalPlayer.Character and { LocalPlayer.Character } or {}


    local CheckParts = {
        Char:FindFirstChild(AimPart),
        Char:FindFirstChild("Head"),
        Char:FindFirstChild("HumanoidRootPart"),
        Char:FindFirstChild("UpperTorso"),
        Char:FindFirstChild("LowerTorso"),
        Char:FindFirstChild("Torso"),
    }


    for _, CP in ipairs(CheckParts) do
        if not CP then continue end

        local Dir = CP.Position - Origin
        local Dist = Dir.Magnitude

        if Dist <= 0 then continue end

        local Result = Workspace:Raycast(Origin, Dir, Params)

        if not Result or Result.Instance:FindFirstAncestorOfClass("Model") == Char then
            return CP
        end
    end


    return nil
end



local function GetTarget(Origin)
    if typeof(Origin) ~= "Vector3" then
        local Cam = Workspace.CurrentCamera
        Origin = Cam and Cam.CFrame.Position or Vector3.new()
    end


    local Cam = Workspace.CurrentCamera
    if not Cam then return nil end


    local BestDist = FOV
    local BestPart = nil


    for _, P in pairs(Players:GetPlayers()) do
        if P == LocalPlayer then continue end

        if not CanDamage(P) then continue end


        local Char = P.Character
        local Part = Char:FindFirstChild(AimPart) or Char:FindFirstChild("Head")
        if not Part then continue end


        if MaxRange and (Origin - Part.Position).Magnitude > MaxRange then continue end


        local Pos, OnScreen = Cam:WorldToViewportPoint(Part.Position)
        if not OnScreen then continue end


        if (Part.Position - Cam.CFrame.Position):Dot(Cam.CFrame.LookVector) <= 0 then continue end


        local SDist = (Vector2.new(Pos.X, Pos.Y) - UserInputService:GetMouseLocation()).Magnitude
        if SDist >= BestDist then continue end


        if WallCheck then
            local VisPart = IsVisible(Char, Origin)

            if not VisPart then continue end
            Part = VisPart

        else
            local Params = RaycastParams.new()
            Params.FilterType = Enum.RaycastFilterType.Exclude
            Params.FilterDescendantsInstances = LocalPlayer.Character and { LocalPlayer.Character } or {}

            local Result = Workspace:Raycast(Origin, Part.Position - Origin, Params)

            if Result then
                local HitChar = Result.Instance:FindFirstAncestorOfClass("Model")
                if HitChar ~= Char then continue end
            end
        end


        BestPart = Part
        BestDist = SDist
    end


    return BestPart
end



local function GetAttr(Tool, Attr)
    if typeof(Tool) == "Instance" then
        local ok, Val = pcall(function() return Tool:GetAttribute(Attr) end)

        if ok then return Val end
    end

    return nil
end



local function NormalCast(p1, p2, p3)
    local Origin, Aim, Tool

    if typeof(p1) == "Vector3" then
        Origin = p1

        if typeof(p2) == "Vector3" then Aim = p2 elseif typeof(p3) == "Vector3" then Aim = p3 end
        if typeof(p2) == "Instance" then Tool = p2 elseif typeof(p3) == "Instance" then Tool = p3 end

    else
        Tool = p1

        if typeof(p2) == "Vector3" then Origin = p2 end
        if typeof(p3) == "Vector3" then Aim = p3 elseif typeof(p2) == "Vector3" then Aim = p2 end
    end


    if not Origin or not Aim then
        return nil, Vector3.new()
    end


    local Dir = Aim - Origin
    if Dir.Magnitude <= 0 then Dir = Vector3.new(0, 0, -1) end


    local Range = GetAttr(Tool, "Range") or 200


    local Params = RaycastParams.new()
    Params.FilterType = Enum.RaycastFilterType.Exclude
    Params.FilterDescendantsInstances = LocalPlayer.Character and { LocalPlayer.Character } or {}
    Params.CollisionGroup = "ClientBullet"


    local Result = Workspace:Raycast(Origin, Dir.Unit * Range, Params)

    if Result then
        return Result.Instance, Result.Position
    end


    return nil, Origin + Dir.Unit * Range
end

-- https://www.rblxscripts.net/users/bread

local function HookCast(p1, p2, p3)
    local Origin

    if typeof(p1) == "Vector3" then
        Origin = p1

    elseif typeof(p2) == "Vector3" then
        Origin = p2

    elseif typeof(p3) == "Vector3" then
        Origin = p3
    end


    if Origin then
        local Char = LocalPlayer.Character
        local Root = Char and Char:FindFirstChild("HumanoidRootPart")

        if Root and (Origin - Root.Position).Magnitude <= 75 then
            local ok, Target = pcall(GetTarget, Origin)

            if ok and Target and Target.Parent then
                return Target, Target.Position
            end
        end
    end


    return NormalCast(p1, p2, p3)
end



if not _G.SilentAimHooked then
    _G.SilentAimHooked = true


    task.spawn(function()
        local Hooked = {}

        for _ = 1, 20 do
            pcall(function()
                for _, Func in next, getgc(true) do
                    if type(Func) == "function" and not Hooked[Func] then
                        local Info = debug.getinfo(Func, "nS")

                        if Info and Info.name == "castRay" then
                            pcall(hookfunction, Func, HookCast)
                            Hooked[Func] = true
                        end
                    end
                end
            end)

            task.wait(3)
        end
    end)
end
03

Open Source Prison Life Script menu – Aim Lock, ESP, Teleports & Auto Arrest

keyless working mobile

Check out this open-source Roblox Prison Life script created by nlzz,

local Players = game:GetService("Players")
inline updated 2 Nov 2026 4.9k views 11
full source (28705 chars)
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local localPlayer = Players.LocalPlayer

local WindUI
local success, err = pcall(function()
    return loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
end)

if success then
    WindUI = err
    print("WindUI loaded successfully!")
else
    warn("Failed to load WindUI: " .. tostring(err))
end

local Window = WindUI:CreateWindow({
    Icon = "rbxassetid://109388351613854",
    IconThemed = true,
    Title = "PrisonLife",
    Author = "by @nlzz",
    Folder = "nlzz",
    Size = UDim2.fromOffset(400, 400),
    MinSize = Vector2.new(560, 350),
    MaxSize = Vector2.new(850, 560),
    Transparent = true,
    Theme = "Dark",
    Resizable = true,
    SideBarWidth = 200,
    BackgroundImageTransparency = 0.42,
    HideSearchBar = false,
    ScrollBarEnabled = false,
    OpenButton = {
        Title = "PrisonLife",
        CornerRadius = UDim.new(1,0),
        StrokeThickness = 1,
        Enabled = true,
        Draggable = true,
        OnlyMobile = false
    }
})

Window:Tag({
    Title = "Prisonlife",
    Color = Color3.fromRGB(255,0,0),
    Radius = 13
})

--------------------------------------------------
-- Main Tab
--------------------------------------------------
local MTab = Window:Tab({
    Title = "General Tab",
    Icon = "sword"
})

MTab:Button({
    Title = "Getting hit by an electric fence won't kill you",
    Desc = "",
    Callback = function()
        local function removeAllDamageParts()
            for _, object in ipairs(workspace.Prison_Fences:GetDescendants()) do
                if object.Name == "damagePart" then
                    object:Destroy()
                end
            end
        end

        removeAllDamageParts()

        workspace.Prison_Fences.DescendantAdded:Connect(function(descendant)
            if descendant.Name == "damagePart" then
                task.wait()
                descendant:Destroy()
            end
        end)
    end
})

-- Auto Arrest
local AutoArrestEnabled = false
local ArrestDistance = 15

task.spawn(function()
    while task.wait(0.25) do
        if not AutoArrestEnabled then continue end
        local char = localPlayer.Character
        if not char or not char:FindFirstChild("HumanoidRootPart") then continue end

        local myRoot = char.HumanoidRootPart

        for _, plr in ipairs(Players:GetPlayers()) do
            if plr == localPlayer or not plr.Character then continue end

            local team = plr.Team
            if team and (team.Name == "Prisoners" or team.Name == "Prisoner" or team.Name == "Inmates") then
                local targetRoot = plr.Character:FindFirstChild("HumanoidRootPart")
                if targetRoot then
                    local dist = (myRoot.Position - targetRoot.Position).Magnitude
                    if dist <= ArrestDistance then
                        pcall(function()
                            ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ArrestPlayer"):InvokeServer(plr, 1)
                        end)
                    end
                end
            end
        end
    end
end)

MTab:Toggle({
    Title = "Enable Auto Arrest Nearby",
    Desc = "",
    Value = false,
    Callback = function(v)
        AutoArrestEnabled = v
    end
})

MTab:Input({
    Title = "Arrest Distance (Studs)",
    Placeholder = "15",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then
            ArrestDistance = num
        end
    end
})

MTab:Button({
    Title = "Delete The Keycards Doors",
    Callback = function()
        if workspace:FindFirstChild("Doors") then
            workspace.Doors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete The Cell Doors",
    Callback = function()
        if workspace:FindFirstChild("CellDoors") then
            workspace.CellDoors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete All Toilets",
    Callback = function()
        for _, v in pairs(workspace:GetDescendants()) do
            if v.Name == "Toilet" then
                v:Destroy()
            end
        end
    end
})

--------------------------------------------------
-- Local Player Tab
--------------------------------------------------
local LpTab = Window:Tab({
    Title = "Local Player Tab",
    Icon = "user"
})

-- WalkSpeed
local WalkSpeedEnabled = false
local WalkSpeedValue = 50

local function updateWalkSpeed()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = WalkSpeedEnabled and WalkSpeedValue or 16
    end
end

LpTab:Toggle({
    Title = "Enable Walk Speed",
    Callback = function(v)
        WalkSpeedEnabled = v
        updateWalkSpeed()
    end
})

LpTab:Input({
    Title = "Walk Speed",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then WalkSpeedValue = num; updateWalkSpeed() end
    end
})

-- JumpPower
local JumpPowerEnabled = false
local JumpPowerValue = 50

local function updateJumpPower()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.UseJumpPower = true
        hum.JumpPower = JumpPowerEnabled and JumpPowerValue or 50
    end
end

LpTab:Toggle({
    Title = "Enable Jump Power",
    Callback = function(v)
        JumpPowerEnabled = v
        updateJumpPower()
    end
})

LpTab:Input({
    Title = "Jump Power",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then JumpPowerValue = num; updateJumpPower() end
    end
})

RunService.Heartbeat:Connect(function()
    updateWalkSpeed()
    updateJumpPower()
end)

localPlayer.CharacterAdded:Connect(function()
    task.wait(1)
    updateWalkSpeed()
    updateJumpPower()
end)

-- Infinite Jump
local InfiniteJump = false

LpTab:Toggle({
    Title = "Enable Infinite Jump",
    Callback = function(v) InfiniteJump = v end
})

game:GetService("UserInputService").JumpRequest:Connect(function()
    if InfiniteJump then
        local hum = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum then
            hum:ChangeState(Enum.HumanoidStateType.Jumping)
        end
    end
end)

-- Clean old events
if _G.OldConnections then
    for _, v in pairs(_G.OldConnections) do
        if v then v:Disconnect() end
    end
    _G.OldConnections = nil
end

repeat task.wait() until game.Players.LocalPlayer
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local character, humanoid, rootPart
local characterParts = {}
local isInvisible = false

local function setupCharacter()
    character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    humanoid = character:WaitForChild("Humanoid")
    rootPart = character:WaitForChild("HumanoidRootPart")
    characterParts = {}

    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") and part.Transparency == 0 then
            table.insert(characterParts, part)
        end
    end
end

local function setInvisibleState(state)
    isInvisible = state
    
    for _, part in pairs(characterParts) do
        if part and part.Parent then
            part.Transparency = isInvisible and 0.5 or 0
        end
    end
end

setupCharacter()
LocalPlayer.CharacterAdded:Connect(function()
    isInvisible = false
    setupCharacter()
end)

local connections = {}
connections[1] = RunService.Heartbeat:Connect(function()
    if isInvisible and rootPart and humanoid then
        local oldCFrame = rootPart.CFrame
        local oldCameraOffset = humanoid.CameraOffset
        
        local targetCFrame = oldCFrame * CFrame.new(0, -75, 0)
        local offset = targetCFrame:ToObjectSpace(CFrame.new(oldCFrame.Position)).Position

        rootPart.CFrame = targetCFrame
        humanoid.CameraOffset = offset

        RunService.RenderStepped:Wait()

        rootPart.CFrame = oldCFrame
        humanoid.CameraOffset = oldCameraOffset
    end
end)

_G.OldConnections = connections

LpTab:Toggle({
    Title = "Enable Invisible",
    Desc = "",
    Value = false,
    Callback = function(Value)
        setInvisibleState(Value)
    end
})

--------------------------------------------------
-- Teleport Tab
--------------------------------------------------
local TpTab = Window:Tab({
    Title = "Teleport Tab",
    Icon = "wind"
})

TpTab:Paragraph({ Title = "Tp", Desc = "Teleport" })

local tps = {
    ["police gun"] = Vector3.new(856.14, 102.62, 2256.75),
    ["Thieves' base"] = Vector3.new(-981.62, 108.12, 2056.98),
    ["outside of prison"] = Vector3.new(485.23, 97.99, 2244.82),
    ["Conjuring up a thief's car"] = Vector3.new(-915.86, 95.13, 2134.13),
    ["Conjuring up a police car"] = Vector3.new(615.49, 98.20, 2488.75),
}

for name, pos in pairs(tps) do
    TpTab:Button({
        Title = "Tp to " .. name,
        Callback = function()
            local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.CFrame = CFrame.new(pos)
            end
        end
    })
end

-- [ Services & Globals ]
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
local workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local CombatTab = Window:Tab({ 
    Title = "Combat", 
    Icon = "sword" 
})

-- [[ VARIABLES & STATE ]]
local aiming = false
local fovEnabled = false
local smoothness = 0.1
local fovRadius = 360
local aimPart = "Head"
local wallCheckEnabled = false

-- RGB & Color Variables
local fovColor = Color3.fromRGB(255, 0, 0)
local rainbowEnabled = false

-- Blacklist for Aim Lock
local AimBlacklist = {
    Players = {},
    Teams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 0.5
fovCircle.NumSides = 8
fovCircle.Filled = false
fovCircle.Transparency = 1.0
fovCircle.Visible = false

-- [ Functions ]
local function isVisible(targetPart)
    local origin = camera.CFrame.Position
    local direction = (targetPart.Position - origin)
    local params = RaycastParams.new()
    params.FilterType = Enum.RaycastFilterType.Exclude
    params.FilterDescendantsInstances = {player.Character, camera}
    local result = workspace:Raycast(origin, direction, params)
    return not result or result.Instance:IsDescendantOf(targetPart.Parent)
end

local function getTarget()
    if not fovEnabled then return nil end
    local closest, minDist = nil, fovRadius
    local center = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)
    
    for _, p in pairs(Players:GetPlayers()) do
        if p ~= player and p.Character and p.Character:FindFirstChild(aimPart) and p.Character:FindFirstChild("Humanoid") and p.Character.Humanoid.Health > 0 then
            
            if AimBlacklist.Players[p.Name] then continue end
            if p.Team and AimBlacklist.Teams[p.Team.Name] then continue end
            
            local part = p.Character[aimPart]
            local pos, onScreen = camera:WorldToViewportPoint(part.Position)
            
            if onScreen then
                local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
                if dist <= fovRadius and dist < minDist then
                    
                    if wallCheckEnabled and not isVisible(part) then
                        continue
                    end
                    
                    minDist = dist
                    closest = part
                end
            end
        end
    end
    return closest
end

task.spawn(function()
    while task.wait() do
        pcall(function()
            if rainbowEnabled then
                local hue = (tick() % 5) / 5
                fovCircle.Color = Color3.fromHSV(hue, 1, 1)
            else
                fovCircle.Color = fovColor
            end

            if fovEnabled then
                fovCircle.Visible = true
                fovCircle.Transparency = 1.0
                fovCircle.Radius = fovRadius
                fovCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
            else
                fovCircle.Visible = false
            end
        end)
    end
end)

-- [ Main Lock Loop ]
RunService.RenderStepped:Connect(function()
    if fovEnabled and aiming then
        local target = getTarget()
        if target then
            camera.CFrame = camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, target.Position), smoothness)
        end
    end
end)

-- [[ UI ELEMENTS FOR AIM LOCK ]]
CombatTab:Toggle({
    Title = "Enable Aim Lock",
    Value = false,
    Callback = function(Value)
        aiming = Value
    end
})

CombatTab:Toggle({
    Title = "Enable FOV Circle",
    Value = false,
    Callback = function(Value)
        fovEnabled = Value
    end
})

CombatTab:Toggle({
    Title = "Enable Wall Check",
    Value = false,
    Callback = function(Value)
        wallCheckEnabled = Value
    end
})

CombatTab:Input({
    Title = "FOV Size",
    Placeholder = "360",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then fovRadius = num end
    end
})

local PartDropdown = CombatTab:Dropdown({
    Title = "locking parts",
    Multi = false,
    Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"},
    Default = "Head",
    Callback = function(Value)
        if type(Value) == "table" then
            aimPart = Value[1] or "Head"
        elseif type(Value) == "string" and Value ~= "" then
            aimPart = Value
        end
    end
})

task.spawn(function()
    task.wait(1)
    if PartDropdown and PartDropdown.Select then PartDropdown:Select("Head") end
end)

CombatTab:Paragraph({
    Title = "Aim Lock Blacklist",
    Desc = ""
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            AimBlacklist.Players = {} 
            AimBlacklist.Players[Text] = true
        end
    end
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Criminals"] = Value
    end
})

-- [[ SERVICES ]]
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

-- [[ STATE MANAGEMENT ]]
local Settings = {
    Enabled = false,
    UseTeleport = true,
    UseTween = false,
    TweenSpeed = 150,
    DelayPerPlayer = 0.1,
    BlacklistedPlayers = {},
    BlacklistedTeams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- [[ HELPER FUNCTIONS ]]
local function getTeamName(player)
    if player.Team then return player.Team.Name end
    return ""
end

local function moveToTarget(targetPart)
    local localChar = LocalPlayer.Character
    if not localChar then return end
    local localHRP = localChar:FindFirstChild("HumanoidRootPart")
    if not localHRP then return end

    if Settings.UseTeleport then
        localHRP.CFrame = targetPart.CFrame
    elseif Settings.UseTween then
        local distance = (localHRP.Position - targetPart.Position).Magnitude
        local duration = distance / Settings.TweenSpeed
        
        local tween = TweenService:Create(localHRP, TweenInfo.new(duration, Enum.EasingStyle.Linear), {CFrame = targetPart.CFrame})
        tween:Play()
        tween.Completed:Wait()
    end
end

-- [[ UI ELEMENTS ]]

local MainToggle = CombatTab:Toggle({
    Title = "Enable Kill All Loop (risk)",
    Desc = "",
    Value = false,
    Callback = function(Value)
        Settings.Enabled = Value
    end
})

local TPToggle, TweenToggle

TPToggle = CombatTab:Toggle({
    Title = "Enable Teleport mode",
    Value = true,
    Callback = function(Value)
        Settings.UseTeleport = Value
        if Value then
            Settings.UseTween = false
            TweenToggle:SetValue(false)
        end
    end
})

TweenToggle = CombatTab:Toggle({
    Title = "Enable Tween mode",
    Value = false,
    Callback = function(Value)
        Settings.UseTween = Value
        if Value then
            Settings.UseTeleport = false
            TPToggle:SetValue(false)
        end
    end
})

CombatTab:Input({
    Title = "Tween Speed",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.TweenSpeed = num end
    end
})

CombatTab:Input({
    Title = "Delay (s)",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.DelayPerPlayer = num end
    end
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            Settings.BlacklistedPlayers = {} 
            Settings.BlacklistedPlayers[Text] = true
            WindUI:Notify({Title = "Blacklist", Desc = "Exempting player: " .. Text, Type = "success"})
        end
    end
})

CombatTab:Paragraph({
    Title = "Team Blacklist",
    Desc = ""
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Criminals"] = Value
    end
})

-- [[ MAIN CORE LOOP ]]
task.spawn(function()
    while true do
        task.wait(0.1)
        if Settings.Enabled then
            for _, v in next, Players:GetChildren() do
                if not Settings.Enabled then break end
                
                pcall(function()
                    if v == LocalPlayer then return end
                    if Settings.BlacklistedPlayers[v.Name] then return end
                    if Settings.BlacklistedTeams[getTeamName(v)] then return end
                    
                    local targetChar = v.Character
                    if not targetChar then return end
                    
                    local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
                    local targetHumanoid = targetChar:FindFirstChildOfClass("Humanoid")
                    
                    if targetChar:FindFirstChildOfClass("ForceField") then return end
                    if not targetHumanoid or targetHumanoid.Health <= 0 then return end
                    
                    while Settings.Enabled and targetHumanoid and targetHumanoid.Health > 0 and not targetChar:FindFirstChildOfClass("ForceField") do
                        task.wait()
                        
                        moveToTarget(targetHRP)
                        
                        for _, c in next, Players:GetChildren() do
                            if c ~= LocalPlayer and not Settings.BlacklistedPlayers[c.Name] and not Settings.BlacklistedTeams[getTeamName(c)] then 
                                ReplicatedStorage.meleeEvent:FireServer(c) 
                            end
                        end
                    end
                end)
                
                task.wait(Settings.DelayPerPlayer)
            end
        end
    end
end)

--------------------------------------------------
-- Weapon Tab
--------------------------------------------------
local WTab = Window:Tab({
    Title = "Weapon Tab",
    Icon = "swords"
})

WTab:Button({
    Title = "Tp to Mp5 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(814.1622924804688,102.8799819946289,2229.063232421875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(820.2584838867188,102.8799819946289,2229.033447265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-939.0526123046875,96.30850219726562,2039.330810546875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Ak47 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-931.7821044921875,96.368408203125,2039.4932861328125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M700 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-919.5140991210938, 96.86885070800781, 2036.7769775390625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to FAL [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-902.1759033203125, 96.43677520751953, 2046.9830322265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to C4 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-900.9798583984375, 96.82874298095703, 2041.475830078125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Revolver [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-915.18896484375, 96.82882690429688, 2035.864013671875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Riot Shield [Game Pass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(841.4751586914062, 102.12140655517578, 2230.52880859375)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M4A1 [GamePass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(847.034912109375, 102.88017272949219, 2228.777587890625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

--------------------------------------------------
-- ESP Tab
--------------------------------------------------
local EspTab = Window:Tab({
    Title = "ESP Tab",
    Icon = "eye"
})

local ESPNameEnabled = false
local ESPTeamEnabled = false
local ESPDistanceEnabled = false

local ESPObjects = {}

local function GetTeamColor(player)
    local teamName = player.Team and player.Team.Name or ""

    if teamName == "Guards" or teamName == "Police" then
        return Color3.fromRGB(0,170,255)

    elseif teamName == "Inmates" then
        return Color3.fromRGB(255,170,0)

    elseif teamName == "Criminals" then
        return Color3.fromRGB(255,0,0)

    end

    return Color3.fromRGB(255,255,255)
end

local function CreateESP(player)
    if player == localPlayer then
        return
    end

    local function Setup(character)
        local head = character:WaitForChild("Head",5)

        if not head then
            return
        end

        if head:FindFirstChild("ZeionESP") then
            head.ZeionESP:Destroy()
        end

        local billboard = Instance.new("BillboardGui")
        billboard.Name = "ZeionESP"
        billboard.Size = UDim2.new(0,200,0,80)
        billboard.AlwaysOnTop = true
        billboard.StudsOffset = Vector3.new(0,2.5,0)
        billboard.Parent = head

        local label = Instance.new("TextLabel")
        label.Size = UDim2.fromScale(1,1)
        label.BackgroundTransparency = 1
        label.TextScaled = true
        label.TextSize = 10
        label.Font = Enum.Font.SourceSansBold
        label.TextStrokeTransparency = 0
        label.Parent = billboard

        ESPObjects[player] = billboard

        RunService.RenderStepped:Connect(function()

            if not billboard.Parent then
                return
            end

            local myCharacter = localPlayer.Character
            if not myCharacter then
                return
            end

            local myRoot = myCharacter:FindFirstChild("HumanoidRootPart")
            local targetRoot = character:FindFirstChild("HumanoidRootPart")

            if not myRoot or not targetRoot then
                return
            end

            local distance = math.floor(
                (myRoot.Position - targetRoot.Position).Magnitude
            )

            local teamName = player.Team and player.Team.Name or "Unknown"

            local text = ""

            if ESPNameEnabled then
                text = text .. player.Name
            end

            if ESPTeamEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. teamName .. "]"
            end

            if ESPDistanceEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. distance .. "m]"
            end

            label.Text = text
            label.TextColor3 = GetTeamColor(player)
        end)
    end

    if player.Character then
        Setup(player.Character)
    end

    player.CharacterAdded:Connect(Setup)
end

for _,player in ipairs(Players:GetPlayers()) do
    CreateESP(player)
end

Players.PlayerAdded:Connect(CreateESP)

EspTab:Toggle({
    Title = "Enable ESP Name",
    Value = false,
    Callback = function(v)
        ESPNameEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Team",
    Value = false,
    Callback = function(v)
        ESPTeamEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Distance",
    Value = false,
    Callback = function(v)
        ESPDistanceEnabled = v
    end
})
06

VSX Scripts | Aimbot, God Mode, Visual Player ESP, Teleport, Local Pl...

keyless working God Mode (Unlimited health)Local Player, Fly, No Clip, etc.Visual Player ESPSelect Players to Kill and TP& More

Roblox Prison Life script VSX gives you total control in Prison Life with their large list of free features for all

loadstring(game:HttpGet("https://raw.githubusercontent.com/verund638/ArthurHub/refs/heads/main/xxxdef.lua"))()
raw.githubusercontent.com updated 2 Nov 2026 7.7k views 10 loader source ↗
09

Esore Hub Prison Life | Best Scripts

keyless working Best Scripts |

Esore Hub A Roblox Scripts Hub That Has The Best Scripts This Script Is For Prison Life Has A Lot Of Features Combat Movement Visuals Teleports Spawn Players Settings

loadstring(game:HttpGet("https://vss.pandauth.com/kv/02828a9ae0aa012a"))()
vss.pandauth.com updated 2 Nov 2026 961 views 7 loader source ↗
10

Made by nIzz... Augusto protest will be held at tomorrow

keyless working mobile

The script has features just features enjoy it have a good day and be prepared for augusto protest at tomorrow NYC 10:00 am.

-- Script taken from https://xenoscripts.com website --
by nIzz xenoscripts.com updated 2 Nov 2026 1.1k views 6 loader source ↗
full source (57524 chars)
-- Script taken from https://xenoscripts.com website --

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local localPlayer = Players.LocalPlayer

local WindUI
local success, err = pcall(function()
    return loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
end)

if success then
    WindUI = err
    print("WindUI loaded successfully!")
else
    warn("Failed to load WindUI: " .. tostring(err))
end

local Window = WindUI:CreateWindow({
    Icon = "rbxassetid://109388351613854",
    IconThemed = true,
    Title = "PrisonLife",
    Author = "by @nlzz",
    Folder = "nlzz",
    Size = UDim2.fromOffset(400, 400),
    MinSize = Vector2.new(560, 350),
    MaxSize = Vector2.new(850, 560),
    Transparent = true,
    Theme = "Dark",
    Resizable = true,
    SideBarWidth = 200,
    BackgroundImageTransparency = 0.42,
    HideSearchBar = false,
    ScrollBarEnabled = false,
    OpenButton = {
        Title = "PrisonLife",
        CornerRadius = UDim.new(1,0),
        StrokeThickness = 1,
        Enabled = true,
        Draggable = true,
        OnlyMobile = false
    }
})

Window:Tag({
    Title = "Prisonlife",
    Color = Color3.fromRGB(255,0,0),
    Radius = 13
})

--------------------------------------------------
-- Main Tab
--------------------------------------------------
local MTab = Window:Tab({
    Title = "General Tab",
    Icon = "sword"
})

MTab:Button({
    Title = "Getting hit by an electric fence won't kill you",
    Desc = "",
    Callback = function()
        local function removeAllDamageParts()
            for _, object in ipairs(workspace.Prison_Fences:GetDescendants()) do
                if object.Name == "damagePart" then
                    object:Destroy()
                end
            end
        end

        removeAllDamageParts()

        workspace.Prison_Fences.DescendantAdded:Connect(function(descendant)
            if descendant.Name == "damagePart" then
                task.wait()
                descendant:Destroy()
            end
        end)
    end
})

-- Auto Arrest
local AutoArrestEnabled = false
local ArrestDistance = 15

task.spawn(function()
    while task.wait(0.25) do
        if not AutoArrestEnabled then continue end
        local char = localPlayer.Character
        if not char or not char:FindFirstChild("HumanoidRootPart") then continue end

        local myRoot = char.HumanoidRootPart

        for _, plr in ipairs(Players:GetPlayers()) do
            if plr == localPlayer or not plr.Character then continue end

            local team = plr.Team
            if team and (team.Name == "Prisoners" or team.Name == "Prisoner" or team.Name == "Inmates") then
                local targetRoot = plr.Character:FindFirstChild("HumanoidRootPart")
                if targetRoot then
                    local dist = (myRoot.Position - targetRoot.Position).Magnitude
                    if dist <= ArrestDistance then
                        pcall(function()
                            ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ArrestPlayer"):InvokeServer(plr, 1)
                        end)
                    end
                end
            end
        end
    end
end)

MTab:Toggle({
    Title = "Enable Auto Arrest Nearby",
    Desc = "",
    Value = false,
    Callback = function(v)
        AutoArrestEnabled = v
    end
})

MTab:Input({
    Title = "Arrest Distance (Studs)",
    Placeholder = "15",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then
            ArrestDistance = num
        end
    end
})

MTab:Button({
    Title = "Delete The Keycards Doors",
    Callback = function()
        if workspace:FindFirstChild("Doors") then
            workspace.Doors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete The Cell Doors",
    Callback = function()
        if workspace:FindFirstChild("CellDoors") then
            workspace.CellDoors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete All Toilets",
    Callback = function()
        for _, v in pairs(workspace:GetDescendants()) do
            if v.Name == "Toilet" then
                v:Destroy()
            end
        end
    end
})

--------------------------------------------------
-- Local Player Tab
--------------------------------------------------
local LpTab = Window:Tab({
    Title = "Local Player Tab",
    Icon = "user"
})

-- WalkSpeed
local WalkSpeedEnabled = false
local WalkSpeedValue = 50

local function updateWalkSpeed()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = WalkSpeedEnabled and WalkSpeedValue or 16
    end
end

LpTab:Toggle({
    Title = "Enable Walk Speed",
    Callback = function(v)
        WalkSpeedEnabled = v
        updateWalkSpeed()
    end
})

LpTab:Input({
    Title = "Walk Speed",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then WalkSpeedValue = num; updateWalkSpeed() end
    end
})

-- JumpPower
local JumpPowerEnabled = false
local JumpPowerValue = 50

local function updateJumpPower()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.UseJumpPower = true
        hum.JumpPower = JumpPowerEnabled and JumpPowerValue or 50
    end
end

LpTab:Toggle({
    Title = "Enable Jump Power",
    Callback = function(v)
        JumpPowerEnabled = v
        updateJumpPower()
    end
})

LpTab:Input({
    Title = "Jump Power",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then JumpPowerValue = num; updateJumpPower() end
    end
})

RunService.Heartbeat:Connect(function()
    updateWalkSpeed()
    updateJumpPower()
end)

localPlayer.CharacterAdded:Connect(function()
    task.wait(1)
    updateWalkSpeed()
    updateJumpPower()
end)

-- Infinite Jump
local InfiniteJump = false

LpTab:Toggle({
    Title = "Enable Infinite Jump",
    Callback = function(v) InfiniteJump = v end
})

game:GetService("UserInputService").JumpRequest:Connect(function()
    if InfiniteJump then
        local hum = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum then
            hum:ChangeState(Enum.HumanoidStateType.Jumping)
        end
    end
end)

-- Clean old events
if _G.OldConnections then
    for _, v in pairs(_G.OldConnections) do
        if v then v:Disconnect() end
    end
    _G.OldConnections = nil
end

repeat task.wait() until game.Players.LocalPlayer
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local character, humanoid, rootPart
local characterParts = {}
local isInvisible = false

local function setupCharacter()
    character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    humanoid = character:WaitForChild("Humanoid")
    rootPart = character:WaitForChild("HumanoidRootPart")
    characterParts = {}

    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") and part.Transparency == 0 then
            table.insert(characterParts, part)
        end
    end
end

local function setInvisibleState(state)
    isInvisible = state
    
    for _, part in pairs(characterParts) do
        if part and part.Parent then
            part.Transparency = isInvisible and 0.5 or 0
        end
    end
end

setupCharacter()
LocalPlayer.CharacterAdded:Connect(function()
    isInvisible = false
    setupCharacter()
end)

local connections = {}
connections[1] = RunService.Heartbeat:Connect(function()
    if isInvisible and rootPart and humanoid then
        local oldCFrame = rootPart.CFrame
        local oldCameraOffset = humanoid.CameraOffset
        
        local targetCFrame = oldCFrame * CFrame.new(0, -75, 0)
        local offset = targetCFrame:ToObjectSpace(CFrame.new(oldCFrame.Position)).Position

        rootPart.CFrame = targetCFrame
        humanoid.CameraOffset = offset

        RunService.RenderStepped:Wait()

        rootPart.CFrame = oldCFrame
        humanoid.CameraOffset = oldCameraOffset
    end
end)

_G.OldConnections = connections

LpTab:Toggle({
    Title = "Enable Invisible",
    Desc = "",
    Value = false,
    Callback = function(Value)
        setInvisibleState(Value)
    end
})

--------------------------------------------------
-- Teleport Tab
--------------------------------------------------
local TpTab = Window:Tab({
    Title = "Teleport Tab",
    Icon = "wind"
})

TpTab:Paragraph({ Title = "Tp", Desc = "Teleport" })

local tps = {
    ["police gun"] = Vector3.new(856.14, 102.62, 2256.75),
    ["Thieves' base"] = Vector3.new(-981.62, 108.12, 2056.98),
    ["outside of prison"] = Vector3.new(485.23, 97.99, 2244.82),
    ["Conjuring up a thief's car"] = Vector3.new(-915.86, 95.13, 2134.13),
    ["Conjuring up a police car"] = Vector3.new(615.49, 98.20, 2488.75),
}

for name, pos in pairs(tps) do
    TpTab:Button({
        Title = "Tp to " .. name,
        Callback = function()
            local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.CFrame = CFrame.new(pos)
            end
        end
    })
end

-- [ Services & Globals ]
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
local workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local CombatTab = Window:Tab({ 
    Title = "Combat", 
    Icon = "sword" 
})

-- [[ VARIABLES & STATE ]]
local aiming = false
local fovEnabled = false
local smoothness = 0.1
local fovRadius = 360
local aimPart = "Head"
local wallCheckEnabled = false

-- RGB & Color Variables
local fovColor = Color3.fromRGB(255, 0, 0)
local rainbowEnabled = false

-- Blacklist for Aim Lock
local AimBlacklist = {
    Players = {},
    Teams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 0.5
fovCircle.NumSides = 8
fovCircle.Filled = false
fovCircle.Transparency = 1.0
fovCircle.Visible = false

-- [ Functions ]
local function isVisible(targetPart)
    local origin = camera.CFrame.Position
    local direction = (targetPart.Position - origin)
    local params = RaycastParams.new()
    params.FilterType = Enum.RaycastFilterType.Exclude
    params.FilterDescendantsInstances = {player.Character, camera}
    local result = workspace:Raycast(origin, direction, params)
    return not result or result.Instance:IsDescendantOf(targetPart.Parent)
end

local function getTarget()
    if not fovEnabled then return nil end
    local closest, minDist = nil, fovRadius
    local center = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)
    
    for _, p in pairs(Players:GetPlayers()) do
        if p ~= player and p.Character and p.Character:FindFirstChild(aimPart) and p.Character:FindFirstChild("Humanoid") and p.Character.Humanoid.Health > 0 then
            
            if AimBlacklist.Players[p.Name] then continue end
            if p.Team and AimBlacklist.Teams[p.Team.Name] then continue end
            
            local part = p.Character[aimPart]
            local pos, onScreen = camera:WorldToViewportPoint(part.Position)
            
            if onScreen then
                local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
                if dist <= fovRadius and dist < minDist then
                    
                    if wallCheckEnabled and not isVisible(part) then
                        continue
                    end
                    
                    minDist = dist
                    closest = part
                end
            end
        end
    end
    return closest
end

task.spawn(function()
    while task.wait() do
        pcall(function()
            if rainbowEnabled then
                local hue = (tick() % 5) / 5
                fovCircle.Color = Color3.fromHSV(hue, 1, 1)
            else
                fovCircle.Color = fovColor
            end

            if fovEnabled then
                fovCircle.Visible = true
                fovCircle.Transparency = 1.0
                fovCircle.Radius = fovRadius
                fovCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
            else
                fovCircle.Visible = false
            end
        end)
    end
end)

-- [ Main Lock Loop ]
RunService.RenderStepped:Connect(function()
    if fovEnabled and aiming then
        local target = getTarget()
        if target then
            camera.CFrame = camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, target.Position), smoothness)
        end
    end
end)

-- [[ UI ELEMENTS FOR AIM LOCK ]]
CombatTab:Toggle({
    Title = "Enable Aim Lock",
    Value = false,
    Callback = function(Value)
        aiming = Value
    end
})

CombatTab:Toggle({
    Title = "Enable FOV Circle",
    Value = false,
    Callback = function(Value)
        fovEnabled = Value
    end
})

CombatTab:Toggle({
    Title = "Enable Wall Check",
    Value = false,
    Callback = function(Value)
        wallCheckEnabled = Value
    end
})

CombatTab:Input({
    Title = "FOV Size",
    Placeholder = "360",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then fovRadius = num end
    end
})

local PartDropdown = CombatTab:Dropdown({
    Title = "locking parts",
    Multi = false,
    Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"},
    Default = "Head",
    Callback = function(Value)
        if type(Value) == "table" then
            aimPart = Value[1] or "Head"
        elseif type(Value) == "string" and Value ~= "" then
            aimPart = Value
        end
    end
})

task.spawn(function()
    task.wait(1)
    if PartDropdown and PartDropdown.Select then PartDropdown:Select("Head") end
end)

CombatTab:Paragraph({
    Title = "Aim Lock Blacklist",
    Desc = ""
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            AimBlacklist.Players = {} 
            AimBlacklist.Players[Text] = true
        end
    end
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Criminals"] = Value
    end
})

-- [[ SERVICES ]]
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

-- [[ STATE MANAGEMENT ]]
local Settings = {
    Enabled = false,
    UseTeleport = true,
    UseTween = false,
    TweenSpeed = 150,
    DelayPerPlayer = 0.1,
    BlacklistedPlayers = {},
    BlacklistedTeams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- [[ HELPER FUNCTIONS ]]
local function getTeamName(player)
    if player.Team then return player.Team.Name end
    return ""
end

local function moveToTarget(targetPart)
    local localChar = LocalPlayer.Character
    if not localChar then return end
    local localHRP = localChar:FindFirstChild("HumanoidRootPart")
    if not localHRP then return end

    if Settings.UseTeleport then
        localHRP.CFrame = targetPart.CFrame
    elseif Settings.UseTween then
        local distance = (localHRP.Position - targetPart.Position).Magnitude
        local duration = distance / Settings.TweenSpeed
        
        local tween = TweenService:Create(localHRP, TweenInfo.new(duration, Enum.EasingStyle.Linear), {CFrame = targetPart.CFrame})
        tween:Play()
        tween.Completed:Wait()
    end
end

-- [[ UI ELEMENTS ]]

local MainToggle = CombatTab:Toggle({
    Title = "Enable Kill All Loop (risk)",
    Desc = "",
    Value = false,
    Callback = function(Value)
        Settings.Enabled = Value
    end
})

local TPToggle, TweenToggle

TPToggle = CombatTab:Toggle({
    Title = "Enable Teleport mode",
    Value = true,
    Callback = function(Value)
        Settings.UseTeleport = Value
        if Value then
            Settings.UseTween = false
            TweenToggle:SetValue(false)
        end
    end
})

TweenToggle = CombatTab:Toggle({
    Title = "Enable Tween mode",
    Value = false,
    Callback = function(Value)
        Settings.UseTween = Value
        if Value then
            Settings.UseTeleport = false
            TPToggle:SetValue(false)
        end
    end
})

CombatTab:Input({
    Title = "Tween Speed",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.TweenSpeed = num end
    end
})

CombatTab:Input({
    Title = "Delay (s)",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.DelayPerPlayer = num end
    end
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            Settings.BlacklistedPlayers = {} 
            Settings.BlacklistedPlayers[Text] = true
            WindUI:Notify({Title = "Blacklist", Desc = "Exempting player: " .. Text, Type = "success"})
        end
    end
})

CombatTab:Paragraph({
    Title = "Team Blacklist",
    Desc = ""
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Criminals"] = Value
    end
})

-- [[ MAIN CORE LOOP ]]
task.spawn(function()
    while true do
        task.wait(0.1)
        if Settings.Enabled then
            for _, v in next, Players:GetChildren() do
                if not Settings.Enabled then break end
                
                pcall(function()
                    if v == LocalPlayer then return end
                    if Settings.BlacklistedPlayers[v.Name] then return end
                    if Settings.BlacklistedTeams[getTeamName(v)] then return end
                    
                    local targetChar = v.Character
                    if not targetChar then return end
                    
                    local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
                    local targetHumanoid = targetChar:FindFirstChildOfClass("Humanoid")
                    
                    if targetChar:FindFirstChildOfClass("ForceField") then return end
                    if not targetHumanoid or targetHumanoid.Health <= 0 then return end
                    
                    while Settings.Enabled and targetHumanoid and targetHumanoid.Health > 0 and not targetChar:FindFirstChildOfClass("ForceField") do
                        task.wait()
                        
                        moveToTarget(targetHRP)
                        
                        for _, c in next, Players:GetChildren() do
                            if c ~= LocalPlayer and not Settings.BlacklistedPlayers[c.Name] and not Settings.BlacklistedTeams[getTeamName(c)] then 
                                ReplicatedStorage.meleeEvent:FireServer(c) 
                            end
                        end
                    end
                end)
                
                task.wait(Settings.DelayPerPlayer)
            end
        end
    end
end)

--------------------------------------------------
-- Weapon Tab
--------------------------------------------------
local WTab = Window:Tab({
    Title = "Weapon Tab",
    Icon = "swords"
})

WTab:Button({
    Title = "Tp to Mp5 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(814.1622924804688,102.8799819946289,2229.063232421875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(820.2584838867188,102.8799819946289,2229.033447265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-939.0526123046875,96.30850219726562,2039.330810546875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Ak47 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-931.7821044921875,96.368408203125,2039.4932861328125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M700 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-919.5140991210938, 96.86885070800781, 2036.7769775390625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to FAL [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-902.1759033203125, 96.43677520751953, 2046.9830322265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to C4 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-900.9798583984375, 96.82874298095703, 2041.475830078125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Revolver [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-915.18896484375, 96.82882690429688, 2035.864013671875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Riot Shield [Game Pass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(841.4751586914062, 102.12140655517578, 2230.52880859375)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M4A1 [GamePass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(847.034912109375, 102.88017272949219, 2228.777587890625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

--------------------------------------------------
-- ESP Tab
--------------------------------------------------
local EspTab = Window:Tab({
    Title = "ESP Tab",
    Icon = "eye"
})

local ESPNameEnabled = false
local ESPTeamEnabled = false
local ESPDistanceEnabled = false

local ESPObjects = {}

local function GetTeamColor(player)
    local teamName = player.Team and player.Team.Name or ""

    if teamName == "Guards" or teamName == "Police" then
        return Color3.fromRGB(0,170,255)

    elseif teamName == "Inmates" then
        return Color3.fromRGB(255,170,0)

    elseif teamName == "Criminals" then
        return Color3.fromRGB(255,0,0)

    end

    return Color3.fromRGB(255,255,255)
end

local function CreateESP(player)
    if player == localPlayer then
        return
    end

    local function Setup(character)
        local head = character:WaitForChild("Head",5)

        if not head then
            return
        end

        if head:FindFirstChild("ZeionESP") then
            head.ZeionESP:Destroy()
        end

        local billboard = Instance.new("BillboardGui")
        billboard.Name = "ZeionESP"
        billboard.Size = UDim2.new(0,200,0,80)
        billboard.AlwaysOnTop = true
        billboard.StudsOffset = Vector3.new(0,2.5,0)
        billboard.Parent = head

        local label = Instance.new("TextLabel")
        label.Size = UDim2.fromScale(1,1)
        label.BackgroundTransparency = 1
        label.TextScaled = true
        label.TextSize = 10
        label.Font = Enum.Font.SourceSansBold
        label.TextStrokeTransparency = 0
        label.Parent = billboard

        ESPObjects[player] = billboard

        RunService.RenderStepped:Connect(function()

            if not billboard.Parent then
                return
            end

            local myCharacter = localPlayer.Character
            if not myCharacter then
                return
            end

            local myRoot = myCharacter:FindFirstChild("HumanoidRootPart")
            local targetRoot = character:FindFirstChild("HumanoidRootPart")

            if not myRoot or not targetRoot then
                return
            end

            local distance = math.floor(
                (myRoot.Position - targetRoot.Position).Magnitude
            )

            local teamName = player.Team and player.Team.Name or "Unknown"

            local text = ""

            if ESPNameEnabled then
                text = text .. player.Name
            end

            if ESPTeamEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. teamName .. "]"
            end

            if ESPDistanceEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. distance .. "m]"
            end

            label.Text = text
            label.TextColor3 = GetTeamColor(player)
        end)
    end

    if player.Character then
        Setup(player.Character)
    end

    player.CharacterAdded:Connect(Setup)
end

for _,player in ipairs(Players:GetPlayers()) do
    CreateESP(player)
end

Players.PlayerAdded:Connect(CreateESP)

EspTab:Toggle({
    Title = "Enable ESP Name",
    Value = false,
    Callback = function(v)
        ESPNameEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Team",
    Value = false,
    Callback = function(v)
        ESPTeamEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Distance",
    Value = false,
    Callback = function(v)
        ESPDistanceEnabled = v
    end
})-- Script taken from https://xenoscripts.com website --

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local localPlayer = Players.LocalPlayer

local WindUI
local success, err = pcall(function()
    return loadstring(game:HttpGet("https://github.com/Footagesus/WindUI/releases/latest/download/main.lua"))()
end)

if success then
    WindUI = err
    print("WindUI loaded successfully!")
else
    warn("Failed to load WindUI: " .. tostring(err))
end

local Window = WindUI:CreateWindow({
    Icon = "rbxassetid://109388351613854",
    IconThemed = true,
    Title = "PrisonLife",
    Author = "by @nlzz",
    Folder = "nlzz",
    Size = UDim2.fromOffset(400, 400),
    MinSize = Vector2.new(560, 350),
    MaxSize = Vector2.new(850, 560),
    Transparent = true,
    Theme = "Dark",
    Resizable = true,
    SideBarWidth = 200,
    BackgroundImageTransparency = 0.42,
    HideSearchBar = false,
    ScrollBarEnabled = false,
    OpenButton = {
        Title = "PrisonLife",
        CornerRadius = UDim.new(1,0),
        StrokeThickness = 1,
        Enabled = true,
        Draggable = true,
        OnlyMobile = false
    }
})

Window:Tag({
    Title = "Prisonlife",
    Color = Color3.fromRGB(255,0,0),
    Radius = 13
})

--------------------------------------------------
-- Main Tab
--------------------------------------------------
local MTab = Window:Tab({
    Title = "General Tab",
    Icon = "sword"
})

MTab:Button({
    Title = "Getting hit by an electric fence won't kill you",
    Desc = "",
    Callback = function()
        local function removeAllDamageParts()
            for _, object in ipairs(workspace.Prison_Fences:GetDescendants()) do
                if object.Name == "damagePart" then
                    object:Destroy()
                end
            end
        end

        removeAllDamageParts()

        workspace.Prison_Fences.DescendantAdded:Connect(function(descendant)
            if descendant.Name == "damagePart" then
                task.wait()
                descendant:Destroy()
            end
        end)
    end
})

-- Auto Arrest
local AutoArrestEnabled = false
local ArrestDistance = 15

task.spawn(function()
    while task.wait(0.25) do
        if not AutoArrestEnabled then continue end
        local char = localPlayer.Character
        if not char or not char:FindFirstChild("HumanoidRootPart") then continue end

        local myRoot = char.HumanoidRootPart

        for _, plr in ipairs(Players:GetPlayers()) do
            if plr == localPlayer or not plr.Character then continue end

            local team = plr.Team
            if team and (team.Name == "Prisoners" or team.Name == "Prisoner" or team.Name == "Inmates") then
                local targetRoot = plr.Character:FindFirstChild("HumanoidRootPart")
                if targetRoot then
                    local dist = (myRoot.Position - targetRoot.Position).Magnitude
                    if dist <= ArrestDistance then
                        pcall(function()
                            ReplicatedStorage:WaitForChild("Remotes"):WaitForChild("ArrestPlayer"):InvokeServer(plr, 1)
                        end)
                    end
                end
            end
        end
    end
end)

MTab:Toggle({
    Title = "Enable Auto Arrest Nearby",
    Desc = "",
    Value = false,
    Callback = function(v)
        AutoArrestEnabled = v
    end
})

MTab:Input({
    Title = "Arrest Distance (Studs)",
    Placeholder = "15",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then
            ArrestDistance = num
        end
    end
})

MTab:Button({
    Title = "Delete The Keycards Doors",
    Callback = function()
        if workspace:FindFirstChild("Doors") then
            workspace.Doors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete The Cell Doors",
    Callback = function()
        if workspace:FindFirstChild("CellDoors") then
            workspace.CellDoors:Destroy()
        end
    end
})

MTab:Button({
    Title = "Delete All Toilets",
    Callback = function()
        for _, v in pairs(workspace:GetDescendants()) do
            if v.Name == "Toilet" then
                v:Destroy()
            end
        end
    end
})

--------------------------------------------------
-- Local Player Tab
--------------------------------------------------
local LpTab = Window:Tab({
    Title = "Local Player Tab",
    Icon = "user"
})

-- WalkSpeed
local WalkSpeedEnabled = false
local WalkSpeedValue = 50

local function updateWalkSpeed()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.WalkSpeed = WalkSpeedEnabled and WalkSpeedValue or 16
    end
end

LpTab:Toggle({
    Title = "Enable Walk Speed",
    Callback = function(v)
        WalkSpeedEnabled = v
        updateWalkSpeed()
    end
})

LpTab:Input({
    Title = "Walk Speed",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then WalkSpeedValue = num; updateWalkSpeed() end
    end
})

-- JumpPower
local JumpPowerEnabled = false
local JumpPowerValue = 50

local function updateJumpPower()
    local char = localPlayer.Character
    if not char then return end
    local hum = char:FindFirstChildOfClass("Humanoid")
    if hum then
        hum.UseJumpPower = true
        hum.JumpPower = JumpPowerEnabled and JumpPowerValue or 50
    end
end

LpTab:Toggle({
    Title = "Enable Jump Power",
    Callback = function(v)
        JumpPowerEnabled = v
        updateJumpPower()
    end
})

LpTab:Input({
    Title = "Jump Power",
    Placeholder = "50",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then JumpPowerValue = num; updateJumpPower() end
    end
})

RunService.Heartbeat:Connect(function()
    updateWalkSpeed()
    updateJumpPower()
end)

localPlayer.CharacterAdded:Connect(function()
    task.wait(1)
    updateWalkSpeed()
    updateJumpPower()
end)

-- Infinite Jump
local InfiniteJump = false

LpTab:Toggle({
    Title = "Enable Infinite Jump",
    Callback = function(v) InfiniteJump = v end
})

game:GetService("UserInputService").JumpRequest:Connect(function()
    if InfiniteJump then
        local hum = localPlayer.Character and localPlayer.Character:FindFirstChildOfClass("Humanoid")
        if hum then
            hum:ChangeState(Enum.HumanoidStateType.Jumping)
        end
    end
end)

-- Clean old events
if _G.OldConnections then
    for _, v in pairs(_G.OldConnections) do
        if v then v:Disconnect() end
    end
    _G.OldConnections = nil
end

repeat task.wait() until game.Players.LocalPlayer
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local character, humanoid, rootPart
local characterParts = {}
local isInvisible = false

local function setupCharacter()
    character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
    humanoid = character:WaitForChild("Humanoid")
    rootPart = character:WaitForChild("HumanoidRootPart")
    characterParts = {}

    for _, part in pairs(character:GetDescendants()) do
        if part:IsA("BasePart") and part.Transparency == 0 then
            table.insert(characterParts, part)
        end
    end
end

local function setInvisibleState(state)
    isInvisible = state
    
    for _, part in pairs(characterParts) do
        if part and part.Parent then
            part.Transparency = isInvisible and 0.5 or 0
        end
    end
end

setupCharacter()
LocalPlayer.CharacterAdded:Connect(function()
    isInvisible = false
    setupCharacter()
end)

local connections = {}
connections[1] = RunService.Heartbeat:Connect(function()
    if isInvisible and rootPart and humanoid then
        local oldCFrame = rootPart.CFrame
        local oldCameraOffset = humanoid.CameraOffset
        
        local targetCFrame = oldCFrame * CFrame.new(0, -75, 0)
        local offset = targetCFrame:ToObjectSpace(CFrame.new(oldCFrame.Position)).Position

        rootPart.CFrame = targetCFrame
        humanoid.CameraOffset = offset

        RunService.RenderStepped:Wait()

        rootPart.CFrame = oldCFrame
        humanoid.CameraOffset = oldCameraOffset
    end
end)

_G.OldConnections = connections

LpTab:Toggle({
    Title = "Enable Invisible",
    Desc = "",
    Value = false,
    Callback = function(Value)
        setInvisibleState(Value)
    end
})

--------------------------------------------------
-- Teleport Tab
--------------------------------------------------
local TpTab = Window:Tab({
    Title = "Teleport Tab",
    Icon = "wind"
})

TpTab:Paragraph({ Title = "Tp", Desc = "Teleport" })

local tps = {
    ["police gun"] = Vector3.new(856.14, 102.62, 2256.75),
    ["Thieves' base"] = Vector3.new(-981.62, 108.12, 2056.98),
    ["outside of prison"] = Vector3.new(485.23, 97.99, 2244.82),
    ["Conjuring up a thief's car"] = Vector3.new(-915.86, 95.13, 2134.13),
    ["Conjuring up a police car"] = Vector3.new(615.49, 98.20, 2488.75),
}

for name, pos in pairs(tps) do
    TpTab:Button({
        Title = "Tp to " .. name,
        Callback = function()
            local hrp = localPlayer.Character and localPlayer.Character:FindFirstChild("HumanoidRootPart")
            if hrp then
                hrp.CFrame = CFrame.new(pos)
            end
        end
    })
end

-- [ Services & Globals ]
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local RunService = game:GetService("RunService")
local workspace = game:GetService("Workspace")
local player = Players.LocalPlayer
local camera = workspace.CurrentCamera

local CombatTab = Window:Tab({ 
    Title = "Combat", 
    Icon = "sword" 
})

-- [[ VARIABLES & STATE ]]
local aiming = false
local fovEnabled = false
local smoothness = 0.1
local fovRadius = 360
local aimPart = "Head"
local wallCheckEnabled = false

-- RGB & Color Variables
local fovColor = Color3.fromRGB(255, 0, 0)
local rainbowEnabled = false

-- Blacklist for Aim Lock
local AimBlacklist = {
    Players = {},
    Teams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 0.5
fovCircle.NumSides = 8
fovCircle.Filled = false
fovCircle.Transparency = 1.0
fovCircle.Visible = false

-- [ Functions ]
local function isVisible(targetPart)
    local origin = camera.CFrame.Position
    local direction = (targetPart.Position - origin)
    local params = RaycastParams.new()
    params.FilterType = Enum.RaycastFilterType.Exclude
    params.FilterDescendantsInstances = {player.Character, camera}
    local result = workspace:Raycast(origin, direction, params)
    return not result or result.Instance:IsDescendantOf(targetPart.Parent)
end

local function getTarget()
    if not fovEnabled then return nil end
    local closest, minDist = nil, fovRadius
    local center = Vector2.new(camera.ViewportSize.X/2, camera.ViewportSize.Y/2)
    
    for _, p in pairs(Players:GetPlayers()) do
        if p ~= player and p.Character and p.Character:FindFirstChild(aimPart) and p.Character:FindFirstChild("Humanoid") and p.Character.Humanoid.Health > 0 then
            
            if AimBlacklist.Players[p.Name] then continue end
            if p.Team and AimBlacklist.Teams[p.Team.Name] then continue end
            
            local part = p.Character[aimPart]
            local pos, onScreen = camera:WorldToViewportPoint(part.Position)
            
            if onScreen then
                local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
                if dist <= fovRadius and dist < minDist then
                    
                    if wallCheckEnabled and not isVisible(part) then
                        continue
                    end
                    
                    minDist = dist
                    closest = part
                end
            end
        end
    end
    return closest
end

task.spawn(function()
    while task.wait() do
        pcall(function()
            if rainbowEnabled then
                local hue = (tick() % 5) / 5
                fovCircle.Color = Color3.fromHSV(hue, 1, 1)
            else
                fovCircle.Color = fovColor
            end

            if fovEnabled then
                fovCircle.Visible = true
                fovCircle.Transparency = 1.0
                fovCircle.Radius = fovRadius
                fovCircle.Position = Vector2.new(camera.ViewportSize.X / 2, camera.ViewportSize.Y / 2)
            else
                fovCircle.Visible = false
            end
        end)
    end
end)

-- [ Main Lock Loop ]
RunService.RenderStepped:Connect(function()
    if fovEnabled and aiming then
        local target = getTarget()
        if target then
            camera.CFrame = camera.CFrame:Lerp(CFrame.new(camera.CFrame.Position, target.Position), smoothness)
        end
    end
end)

-- [[ UI ELEMENTS FOR AIM LOCK ]]
CombatTab:Toggle({
    Title = "Enable Aim Lock",
    Value = false,
    Callback = function(Value)
        aiming = Value
    end
})

CombatTab:Toggle({
    Title = "Enable FOV Circle",
    Value = false,
    Callback = function(Value)
        fovEnabled = Value
    end
})

CombatTab:Toggle({
    Title = "Enable Wall Check",
    Value = false,
    Callback = function(Value)
        wallCheckEnabled = Value
    end
})

CombatTab:Input({
    Title = "FOV Size",
    Placeholder = "360",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then fovRadius = num end
    end
})

local PartDropdown = CombatTab:Dropdown({
    Title = "locking parts",
    Multi = false,
    Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"},
    Default = "Head",
    Callback = function(Value)
        if type(Value) == "table" then
            aimPart = Value[1] or "Head"
        elseif type(Value) == "string" and Value ~= "" then
            aimPart = Value
        end
    end
})

task.spawn(function()
    task.wait(1)
    if PartDropdown and PartDropdown.Select then PartDropdown:Select("Head") end
end)

CombatTab:Paragraph({
    Title = "Aim Lock Blacklist",
    Desc = ""
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            AimBlacklist.Players = {} 
            AimBlacklist.Players[Text] = true
        end
    end
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        AimBlacklist.Teams["Criminals"] = Value
    end
})

-- [[ SERVICES ]]
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer

-- [[ STATE MANAGEMENT ]]
local Settings = {
    Enabled = false,
    UseTeleport = true,
    UseTween = false,
    TweenSpeed = 150,
    DelayPerPlayer = 0.1,
    BlacklistedPlayers = {},
    BlacklistedTeams = {
        ["Guards"] = false,
        ["Prisoners"] = false,
        ["Criminals"] = false
    }
}

-- [[ HELPER FUNCTIONS ]]
local function getTeamName(player)
    if player.Team then return player.Team.Name end
    return ""
end

local function moveToTarget(targetPart)
    local localChar = LocalPlayer.Character
    if not localChar then return end
    local localHRP = localChar:FindFirstChild("HumanoidRootPart")
    if not localHRP then return end

    if Settings.UseTeleport then
        localHRP.CFrame = targetPart.CFrame
    elseif Settings.UseTween then
        local distance = (localHRP.Position - targetPart.Position).Magnitude
        local duration = distance / Settings.TweenSpeed
        
        local tween = TweenService:Create(localHRP, TweenInfo.new(duration, Enum.EasingStyle.Linear), {CFrame = targetPart.CFrame})
        tween:Play()
        tween.Completed:Wait()
    end
end

-- [[ UI ELEMENTS ]]

local MainToggle = CombatTab:Toggle({
    Title = "Enable Kill All Loop (risk)",
    Desc = "",
    Value = false,
    Callback = function(Value)
        Settings.Enabled = Value
    end
})

local TPToggle, TweenToggle

TPToggle = CombatTab:Toggle({
    Title = "Enable Teleport mode",
    Value = true,
    Callback = function(Value)
        Settings.UseTeleport = Value
        if Value then
            Settings.UseTween = false
            TweenToggle:SetValue(false)
        end
    end
})

TweenToggle = CombatTab:Toggle({
    Title = "Enable Tween mode",
    Value = false,
    Callback = function(Value)
        Settings.UseTween = Value
        if Value then
            Settings.UseTeleport = false
            TPToggle:SetValue(false)
        end
    end
})

CombatTab:Input({
    Title = "Tween Speed",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.TweenSpeed = num end
    end
})

CombatTab:Input({
    Title = "Delay (s)",
    Placeholder = "...",
    Callback = function(Text)
        local num = tonumber(Text)
        if num then Settings.DelayPerPlayer = num end
    end
})

CombatTab:Input({
    Title = "Username Blacklist)",
    Placeholder = "...",
    Callback = function(Text)
        if Text and Text ~= "" then
            Settings.BlacklistedPlayers = {} 
            Settings.BlacklistedPlayers[Text] = true
            WindUI:Notify({Title = "Blacklist", Desc = "Exempting player: " .. Text, Type = "success"})
        end
    end
})

CombatTab:Paragraph({
    Title = "Team Blacklist",
    Desc = ""
})

CombatTab:Toggle({
    Title = "Blacklist Guards Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Guards"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Prisoners Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Prisoners"] = Value
    end
})

CombatTab:Toggle({
    Title = "Blacklist Criminals Team",
    Value = false,
    Callback = function(Value)
        Settings.BlacklistedTeams["Criminals"] = Value
    end
})

-- [[ MAIN CORE LOOP ]]
task.spawn(function()
    while true do
        task.wait(0.1)
        if Settings.Enabled then
            for _, v in next, Players:GetChildren() do
                if not Settings.Enabled then break end
                
                pcall(function()
                    if v == LocalPlayer then return end
                    if Settings.BlacklistedPlayers[v.Name] then return end
                    if Settings.BlacklistedTeams[getTeamName(v)] then return end
                    
                    local targetChar = v.Character
                    if not targetChar then return end
                    
                    local targetHRP = targetChar:FindFirstChild("HumanoidRootPart")
                    local targetHumanoid = targetChar:FindFirstChildOfClass("Humanoid")
                    
                    if targetChar:FindFirstChildOfClass("ForceField") then return end
                    if not targetHumanoid or targetHumanoid.Health <= 0 then return end
                    
                    while Settings.Enabled and targetHumanoid and targetHumanoid.Health > 0 and not targetChar:FindFirstChildOfClass("ForceField") do
                        task.wait()
                        
                        moveToTarget(targetHRP)
                        
                        for _, c in next, Players:GetChildren() do
                            if c ~= LocalPlayer and not Settings.BlacklistedPlayers[c.Name] and not Settings.BlacklistedTeams[getTeamName(c)] then 
                                ReplicatedStorage.meleeEvent:FireServer(c) 
                            end
                        end
                    end
                end)
                
                task.wait(Settings.DelayPerPlayer)
            end
        end
    end
end)

--------------------------------------------------
-- Weapon Tab
--------------------------------------------------
local WTab = Window:Tab({
    Title = "Weapon Tab",
    Icon = "swords"
})

WTab:Button({
    Title = "Tp to Mp5 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(814.1622924804688,102.8799819946289,2229.063232421875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(820.2584838867188,102.8799819946289,2229.033447265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp To Remington 870 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-939.0526123046875,96.30850219726562,2039.330810546875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Ak47 (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-931.7821044921875,96.368408203125,2039.4932861328125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M700 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-919.5140991210938, 96.86885070800781, 2036.7769775390625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to FAL [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-902.1759033203125, 96.43677520751953, 2046.9830322265625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to C4 [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-900.9798583984375, 96.82874298095703, 2041.475830078125)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Revolver [GamePass] (Criminals)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(-915.18896484375, 96.82882690429688, 2035.864013671875)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to Riot Shield [Game Pass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(841.4751586914062, 102.12140655517578, 2230.52880859375)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

WTab:Button({
    Title = "Tp to M4A1 [GamePass] (Guards Room)",
    Desc = "",
    Callback = function()
        local plr = game.Players.LocalPlayer
        local char = plr.Character or plr.CharacterAdded:Wait()
        local hrp = char:WaitForChild("HumanoidRootPart")
        local oldPos = hrp.CFrame
        hrp.CFrame = CFrame.new(847.034912109375, 102.88017272949219, 2228.777587890625)
        task.wait(2)
        hrp.CFrame = oldPos
    end
})

--------------------------------------------------
-- ESP Tab
--------------------------------------------------
local EspTab = Window:Tab({
    Title = "ESP Tab",
    Icon = "eye"
})

local ESPNameEnabled = false
local ESPTeamEnabled = false
local ESPDistanceEnabled = false

local ESPObjects = {}

local function GetTeamColor(player)
    local teamName = player.Team and player.Team.Name or ""

    if teamName == "Guards" or teamName == "Police" then
        return Color3.fromRGB(0,170,255)

    elseif teamName == "Inmates" then
        return Color3.fromRGB(255,170,0)

    elseif teamName == "Criminals" then
        return Color3.fromRGB(255,0,0)

    end

    return Color3.fromRGB(255,255,255)
end

local function CreateESP(player)
    if player == localPlayer then
        return
    end

    local function Setup(character)
        local head = character:WaitForChild("Head",5)

        if not head then
            return
        end

        if head:FindFirstChild("ZeionESP") then
            head.ZeionESP:Destroy()
        end

        local billboard = Instance.new("BillboardGui")
        billboard.Name = "ZeionESP"
        billboard.Size = UDim2.new(0,200,0,80)
        billboard.AlwaysOnTop = true
        billboard.StudsOffset = Vector3.new(0,2.5,0)
        billboard.Parent = head

        local label = Instance.new("TextLabel")
        label.Size = UDim2.fromScale(1,1)
        label.BackgroundTransparency = 1
        label.TextScaled = true
        label.TextSize = 10
        label.Font = Enum.Font.SourceSansBold
        label.TextStrokeTransparency = 0
        label.Parent = billboard

        ESPObjects[player] = billboard

        RunService.RenderStepped:Connect(function()

            if not billboard.Parent then
                return
            end

            local myCharacter = localPlayer.Character
            if not myCharacter then
                return
            end

            local myRoot = myCharacter:FindFirstChild("HumanoidRootPart")
            local targetRoot = character:FindFirstChild("HumanoidRootPart")

            if not myRoot or not targetRoot then
                return
            end

            local distance = math.floor(
                (myRoot.Position - targetRoot.Position).Magnitude
            )

            local teamName = player.Team and player.Team.Name or "Unknown"

            local text = ""

            if ESPNameEnabled then
                text = text .. player.Name
            end

            if ESPTeamEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. teamName .. "]"
            end

            if ESPDistanceEnabled then
                if text ~= "" then
                    text = text .. "\n"
                end

                text = text .. "[" .. distance .. "m]"
            end

            label.Text = text
            label.TextColor3 = GetTeamColor(player)
        end)
    end

    if player.Character then
        Setup(player.Character)
    end

    player.CharacterAdded:Connect(Setup)
end

for _,player in ipairs(Players:GetPlayers()) do
    CreateESP(player)
end

Players.PlayerAdded:Connect(CreateESP)

EspTab:Toggle({
    Title = "Enable ESP Name",
    Value = false,
    Callback = function(v)
        ESPNameEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Team",
    Value = false,
    Callback = function(v)
        ESPTeamEnabled = v
    end
})

EspTab:Toggle({
    Title = "Enable ESP Distance",
    Value = false,
    Callback = function(v)
        ESPDistanceEnabled = v
    end
})
11

aimbot esp walkspeed infinite jump jump power tp

keyless working

https://discord.gg/eUkf58QNCK Here is my Discord link to access flick scripts and much more.

loadstring(game:HttpGet("https://raw.githubusercontent.com/Roxy859/prison-life/main/prisonlife"))()
by Roxy raw.githubusercontent.com updated 2 Nov 2026 991 views 6 loader source ↗
12

Op silent aim nexus hub made by emotional Damge discord quatam labs op script esp more

keyless working mobile

Esp silent aim aimbot prison life op script made by emotional Damge discord Damge discord full script called nexus made by me. Pls follow my profile for more script comment for more features and bug fixes

loadstring(game:HttpGet("https://raw.githubusercontent.com/robloxscripter6245366542/Morsecodev/refs/heads/main/Prison%20life%20silent%20aim%20esp%20op%20nexus%20hub%20made%20by%20emotional%20Damge%20discord%20and%20quantam%20labs%20thank%20you%20for%20using"))()
raw.githubusercontent.com updated 2 Nov 2026 535 views 6 loader source ↗
13

Prison Life - Trolling Script V2 / Aiming Script

keyless working

( THIS IS VERSION 1.5 OF THE SCRIPT, IT IS SEPERATE TO VERSION 1 )

loadstring(game:HttpGet('https://raw.githubusercontent.com/AverageAftermath/PrisonLifeFunV1/refs/heads/main/Main2'))()
raw.githubusercontent.com updated 2 Nov 2026 6.4k views 5 loader source ↗
14

Silent Aim • Infinite Ammo • Car Fly | OP GUI

key system working mobile Silent AimAimbotSuper WeaponInfinite AmmoAuto Shoot (Triggerbot)Hitbox ExpanderAuto Weapon Switch
loadstring(game:HttpGet("https://raw.githubusercontent.com/ZagresLua/Script/refs/heads/main/prisonlife.lua"))()
by Yt: ZagresLua raw.githubusercontent.com updated 2 Nov 2026 1k views 3 loader source ↗
15

Nexus Script for prison life *REAL VERSION*

keyless working mobile

Has silent aim, esp, basic aimlock, a tutorial, a settings page, and a lot more, this is the real version dont use the other version on here it is stolen from me

loadstring(game:HttpGet("https://raw.githubusercontent.com/AbsoluteEternal/nexus/refs/heads/main/nexus"))()
raw.githubusercontent.com updated 2 Nov 2026 658 views 3 loader source ↗
16

Nexus hub v3 made by universal studios

keyless working mobile

Nexus V3 is a free, all-in-one Prison Life hub for both PC and mobile, packed into a clean five-tab menu (Home, Combat, ESP, Settings, and Info) that auto-saves your toggles so your setup comes back every launch. In the Combat tab you get Aimlock and Silent Aim with an adjustable FOV circle, FOV radius and aim-smoothne

loadstring(game:HttpGet("https://raw.githubusercontent.com/robloxscripter6245366542/Morsecodev/refs/heads/main/Nexus%20v3%20made%20by%20universal%20studio"))()
raw.githubusercontent.com updated 2 Nov 2026 250 views 3 loader source ↗
17

Happy Hub keyless fully free script hub

keyless working mobile

ESP: dynamic updates, and team/lobby filtering.

loadstring(game:HttpGet('https://raw.githubusercontent.com/overthcode2011-stack/HHB/refs/heads/main/prisonlife.lua'))()
raw.githubusercontent.com updated 2 Nov 2026 204 views 3 loader source ↗

How to run these Prison Life scripts

  1. 1. Install an executor from the executor list. Delta or Xeno on mobile, Swift or Wave on PC.
  2. 2. Join Prison Life and wait until you are fully loaded into the server.
  3. 3. Attach the executor, paste one loader above, press Execute.
  4. 4. The in-game menu opens — usually on the left edge or under a small circle. Toggle features there.

If a script does nothing, the game updated and the loader broke. Try the next one down — the list is sorted by useful votes, so the top entries are the ones that keep getting updated.

Prison Life — questions

?Do these work for prisoners and guards?

Most are role-agnostic; keycard and armour unlocks assume prisoner. Guard-side blocks are the ones tagged with weapon features.

?Is the old stuff still running?

A lot of it is, because the remotes have not changed. The failure mode is a dead host, not a patched remote — check the loader source link if one does nothing.

?Can I hold a cell door open for the group?

Use the door remote blocks rather than teleporting players. A teleport moves you, not them, and the server re-locks the door on a cell re-assign.

Other games

All 10 games with scripts · 387 loaders indexed