Prison Life Combat script by Nizz
Prison Life Keyless
Prison Life Combat script by Nizz
👤 alexriderr 👁 34 views ❤️ 0 likes ⏱ Jul 1, 2026
This is an open-source script that you can modify and customize to suit your own needs using coding assistants such as ChatGPT or Claude. It includes a variety of configurable systems and gameplay-related modules, along with support for additional utilities. Refer to the feature list below for more details.
✨ Features
Electric Fence Immunity Enable Auto Arrest Nearby Arrest Distance Delete All Toilets Walk Speed Jump Power Enable Invisibility TP to Police Gun TP to Thieves Base Enable Aimlock FOV Circle Wall Check FOV Size Locking Parts Aimlock Blacklist Tween Speed Blacklist Guards Team TP to MP5 TP to Remington TP to AK-47
📋 Script Code
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  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 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
})
🎮 Similar Scripts
💬 Comments (0)
Login to post a comment
No comments yet. Be the first!
Script Info
Game Prison Life
TypeKeyless
Authoralexriderr
Views34
Likes0
PublishedJul 1, 2026
🎮 Play Game on Roblox
🕐 Recent Scripts
Dev Hub Fluxo PvP script keyless
Dev Hub Fluxo PvP script keyless
Fluxo PVP • 👁 10
Keyless
Fluxo PvP Aimbot Script by Vision (No Keys)
Fluxo PvP Aimbot Script by Vision (No Keys)
Fluxo PVP • 👁 10
Keyless
Auto Fish and Scrape all fish OP Keyless
Auto Fish and Scrape all fish OP Keyless
Scale Slimy Fish • 👁 11
Keyless
Blade Ball Auto Parry script op (No Keys)
Blade Ball Auto Parry script op (No Keys)
Blade Ball • 👁 12
Keyless
HACX Hub Sell Lemons Script OP (No Keys) – Auto Farm Fruits
HACX Hub Sell Lemons Script OP (No Keys) – Auto Farm Fruits
Sell Lemons 🍋 • 👁 11
Keyless