- 2026-10-14 — Added Script #8: Working Script.
- 2026-10-13 — Added Script #7: Aim Lock & More.
- 2026-10-12 — Added Script #6: Working Script.
- 2026-10-12 — Added Script #5: Working Script.
- 2026-10-12 — Added Script #4: Zolt Hub.
- 2026-10-12 — Added Script #3: Working Script.
- 2026-10-12 — Added Script #2: Teleport & More.
Looking for a Prison Life script for Roblox? You are in the right spot to grab a working code that adds extra options to your session.
In this classic experience, you live life as a prisoner and try to plot an escape, or switch sides to become a guard and defend the prison. Recent updates brought in a sniper pass and gave guards the power to dispose of dropped key cards and guns, adding a bit more chaos to the usual prison routine.
If you want to try out some extra utility while playing, the script below has got you covered. Just copy the code and run it through your favorite executor.
Prison Life Script – God Mode & More
loadstring(game:HttpGet('https://raw.githubusercontent.com/AverageAftermath/PrisonLifeFunV1/refs/heads/main/Main'))()Script #2 Teleport & More
loadstring(game:HttpGet("https://raw.githubusercontent.com/Roxy859/prison-life/main/prisonlife"))()Script #3 Working Script
loadstring(game:HttpGet('https://raw.githubusercontent.com/AverageAftermath/PrisonLifeFunV1/refs/heads/main/Main2'))()Script #4 Zolt Hub
loadstring(game:HttpGet("https://raw.githubusercontent.com/f34p9fh3a4/.xyz/refs/heads/main/loader.lua"))()Script #5 Working Script
loadstring(game:HttpGet("https://raw.githubusercontent.com/AbsoluteEternal/nexus/refs/heads/main/nexus"))()Script #6 Working Script
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)
endScript #7 Aim Lock & More
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 #8 Working Script
-- 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
})Copy the code above into a compatible Roblox script executor if you choose to test it.
Prison Life Script Status
Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.
What Is a Prison Life Script?
A Prison Life script is Lua code intended to run alongside the Roblox game through a third-party script executor.
Different scripts can contain different code and features. This version includes the following features:
How to Use the Prison Life Script
If you decide to test a third-party Roblox script, the general process involves a compatible executor and the Lua code provided above.
Can a Prison Life Script Get Your Roblox Account Banned?
- Only use code from a source you trust.
- Never enter your Roblox password into a script or executor.
- Test on an alternate account first.
Prison Life Script for Mobile
If you’re searching for a Prison Life script for mobile, check whether both the executor and the script support your device and current Roblox version. Mobile executor support does not guarantee that every script will work.
Frequently Asked Questions
What is a Prison Life script?
A Prison Life script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.
What features does this Prison Life script include?
Different scripts contain different code. This version includes: ESP, Silent Aim, Teleport, Speed Boost, God Mode, Infinite Jump.
How do you use the Prison Life script?
Pick a compatible executor such as Hydrogen, MacSploit, AWP.GG, Delta, Fluxus, Codex, launch Roblox and join the game, copy the complete Lua code from the script card above, paste it into the executor’s editor, and click Run or Execute. Compatibility changes over time, so a name here doesn’t guarantee current support.
Can a Prison Life script get your Roblox account banned?
Yes. Third-party scripts can violate Roblox rules and may put an account at risk. Only use code from a source you trust, never enter your Roblox password into a script or executor, and test on an alternate account first.
Does the Prison Life script work on mobile?
Check whether both the executor and the script support your device and the current Roblox version. Mobile executor support does not guarantee that every script will work.