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
})