M
Description
PL/Prison Life Open Source Hub Script
GAMEPrison Life
UPDATEDOct 26, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/TwiRwal/TwiWare/main/uilib.lua"))()
local Window = Library.CreateLib("Prison Life Open Source", "TwiWare")
local MainTab = Window:NewTab("Main")
local MainSection = MainTab:NewSection("Main")
MainSection:NewToggle("Anti Taser (Working)", "", function(state)
if state then
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LocalPlayer = Players.LocalPlayer
local tasedRemote = ReplicatedStorage:WaitForChild("GunRemotes"):WaitForChild("PlayerTased")
local function disableTaserConnections()
for _, conn in pairs(getconnections(tasedRemote.OnClientEvent)) do
conn:Disable()
end
end
disableTaserConnections()
_G.AntiTaserCharConn = LocalPlayer.CharacterAdded:Connect(function()
task.wait(0.1)
disableTaserConnections()
end)
_G.AntiTaserEnabled = true
_G.AntiTaserLoop = task.spawn(function()
while _G.AntiTaserEnabled do
task.wait(1)
pcall(disableTaserConnections)
end
end)
else
_G.AntiTaserEnabled = false
if _G.AntiTaserCharConn then
_G.AntiTaserCharConn:Disconnect()
_G.AntiTaserCharConn = nil
end
end
end)
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local StarterGui = game:GetService("StarterGui")
local LocalPlayer = Players.LocalPlayer
local FuncReloadRemote = nil
pcall(function()
local gunRemotes = ReplicatedStorage:WaitForChild("GunRemotes", 5)
if gunRemotes then
FuncReloadRemote = gunRemotes:WaitForChild("FuncReload", 5)
end
end)
local autoReloadInProgress = {}
local oldValues = {}
local function notify(title, text)
pcall(function()
StarterGui:SetCore("SendNotification", { Title = title, Text = text, Duration = 3 })
end)
end
local function updateAmmoLabel(weapon, currentAmmo)
local ok, gunFrame = pcall(function()
return LocalPlayer.PlayerGui:WaitForChild("Home", 3)
:WaitForChild("hud", 3)
:WaitForChild("BottomRightFrame", 3)
:WaitForChild("GunFrame", 3)
end)
if not ok or not gunFrame then return end
local bulletsLabel = gunFrame:FindFirstChild("BulletsLabel")
if not bulletsLabel then return end
local behavior = weapon:GetAttribute("Behavior")
if behavior == "Sniper" then
local stored = weapon:GetAttribute("StoredAmmo") or 0
bulletsLabel.Text = currentAmmo .. " | " .. stored
else
local maxAmmo = weapon:GetAttribute("MaxAmmo") or currentAmmo
bulletsLabel.Text = currentAmmo .. "/" .. maxAmmo
end
end
local function getEquippedWeapon()
local char = LocalPlayer.Character
if not char then return nil end
for _, child in ipairs(char:GetChildren()) do
if child:IsA("Tool") then
return child
end
end
return nil
end
local function handleTool(tool)
if not tool:IsA("Tool") then return end
oldValues[tool] = oldValues[tool] or {}
if tool:GetAttribute("ReloadTime") ~= nil then
if oldValues[tool].ReloadTime == nil then
oldValues[tool].ReloadTime = tool:GetAttribute("ReloadTime")
end
tool:SetAttribute("ReloadTime", 0)
end
end
local function restoreTool(tool)
if not tool:IsA("Tool") then return end
if oldValues[tool] and oldValues[tool].ReloadTime ~= nil then
tool:SetAttribute("ReloadTime", oldValues[tool].ReloadTime)
oldValues[tool].ReloadTime = nil
end
end
local function performAutoReload(weapon)
if not weapon or not FuncReloadRemote then return end
if autoReloadInProgress[weapon] then return end
local currentReloadSession = weapon:GetAttribute("Local_ReloadSession") or 0
if currentReloadSession ~= 0 then return end
local behavior = weapon:GetAttribute("Behavior")
local storedAmmo = weapon:GetAttribute("StoredAmmo")
if behavior == "Sniper" and storedAmmo and storedAmmo <= 0 then
return
end
autoReloadInProgress[weapon] = true
local session = tick()
weapon:SetAttribute("Local_ReloadSession", session)
weapon:SetAttribute("ReloadTime", 0)
task.spawn(function()
pcall(function()
FuncReloadRemote:InvokeServer()
end)
end)
task.delay(0, function()
if weapon:GetAttribute("Local_ReloadSession") == session then
if behavior == "Sniper" then
local currentAmmo = weapon:GetAttribute("Local_CurrentAmmo") or 0
local maxAmmo = weapon:GetAttribute("MaxAmmo") or 1
if currentAmmo < maxAmmo then
weapon:SetAttribute("Local_CurrentAmmo", 1)
updateAmmoLabel(weapon, 1)
end
else
local maxAmmo = weapon:GetAttribute("MaxAmmo") or 0
weapon:SetAttribute("Local_CurrentAmmo", maxAmmo)
updateAmmoLabel(weapon, maxAmmo)
end
weapon:SetAttribute("Local_ReloadSession", 0)
end
autoReloadInProgress[weapon] = nil
end)
end
RunService.Heartbeat:Connect(function()
if not _G.AutoReloadActive then return end
local char = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if char then for _, tool in ipairs(char:GetChildren()) do handleTool(tool) end end
if backpack then for _, tool in ipairs(backpack:GetChildren()) do handleTool(tool) end end
local weapon = getEquippedWeapon()
if not weapon then return end
local currentAmmo = weapon:GetAttribute("Local_CurrentAmmo") or 0
local reloadSession = weapon:GetAttribute("Local_ReloadSession") or 0
if currentAmmo > 0 or reloadSession ~= 0 then return end
performAutoReload(weapon)
end)
MainSection:NewToggle("Auto Reload", "", function(state)
_G.AutoReloadActive = state
if state then
local char = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if char then for _, tool in ipairs(char:GetChildren()) do handleTool(tool) end end
if backpack then for _, tool in ipairs(backpack:GetChildren()) do handleTool(tool) end end
notify("OpenBro", "Auto Reload enabled")
else
local char = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if char then for _, tool in ipairs(char:GetChildren()) do restoreTool(tool) end end
if backpack then for _, tool in ipairs(backpack:GetChildren()) do restoreTool(tool) end end
notify("OpenBro", "Auto Reload disabled")
end
end)
local invisibleActive = false
local InvisibleRealCFrame = nil
local InvisibleAnimationTrack = nil
local InvisibleRenderKey = "OpenBroInv"
local InvisibleOriginalTransparency = {}
local InvisibleOriginalCanCollide = {}
local function loadInvisibleAnimation(character)
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not humanoid then return nil end
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then return nil end
local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15
local animation = Instance.new("Animation")
animation.AnimationId = isR15 and "rbxassetid://18665825805" or "rbxassetid://215384594"
local track = animator:LoadAnimation(animation)
track.Priority = Enum.AnimationPriority.Action4
track:Play(0, 0.001, 0)
animation:Destroy()
task.delay(0, function() track.TimePosition = isR15 and 1.95 or 0.4 end)
return track
end
local function stopInvisible()
pcall(function() RunService:UnbindFromRenderStep(InvisibleRenderKey) end)
if InvisibleAnimationTrack then
InvisibleAnimationTrack:Stop(); InvisibleAnimationTrack:Destroy(); InvisibleAnimationTrack = nil
end
local character = LocalPlayer.Character
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
if rootPart and InvisibleRealCFrame then
rootPart.CFrame = InvisibleRealCFrame
local v = rootPart.AssemblyLinearVelocity
rootPart.AssemblyLinearVelocity = Vector3.new(v.X, 0, v.Z)
end
InvisibleRealCFrame = nil
if character then
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") and part ~= rootPart then
if InvisibleOriginalTransparency[part] ~= nil then part.Transparency = InvisibleOriginalTransparency[part] end
if InvisibleOriginalCanCollide[part] ~= nil then part.CanCollide = InvisibleOriginalCanCollide[part] end
end
end
if rootPart then rootPart.Transparency = 1 end
end
table.clear(InvisibleOriginalTransparency)
table.clear(InvisibleOriginalCanCollide)
end
local function startInvisible()
local character = LocalPlayer.Character
if not character then return end
local humanoid = character:FindFirstChildOfClass("Humanoid")
local rootPart = character:FindFirstChild("HumanoidRootPart")
if not humanoid or not rootPart then return end
InvisibleAnimationTrack = loadInvisibleAnimation(character)
InvisibleRealCFrame = nil
table.clear(InvisibleOriginalTransparency)
table.clear(InvisibleOriginalCanCollide)
for _, part in ipairs(character:GetDescendants()) do
if part:IsA("BasePart") and part ~= rootPart then
InvisibleOriginalTransparency[part] = part.Transparency
InvisibleOriginalCanCollide[part] = part.CanCollide
part.Transparency = 0.5
part.CanCollide = false
end
end
rootPart.Transparency = 1
pcall(function() RunService:UnbindFromRenderStep(InvisibleRenderKey) end)
RunService:BindToRenderStep(InvisibleRenderKey, Enum.RenderPriority.Camera.Value - 1, function()
if invisibleActive and InvisibleRealCFrame and rootPart.Parent then
rootPart.CFrame = InvisibleRealCFrame
if InvisibleAnimationTrack then InvisibleAnimationTrack:AdjustWeight(0.001) end
end
end)
end
RunService.Heartbeat:Connect(function()
if not invisibleActive then return end
local character = LocalPlayer.Character
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
local rootPart = character and character:FindFirstChild("HumanoidRootPart")
if not humanoid or not rootPart then return end
local isR15 = humanoid.RigType == Enum.HumanoidRigType.R15
local dropOffset = humanoid.HipHeight + (rootPart.Size.Y / 2) - 1
InvisibleRealCFrame = rootPart.CFrame
rootPart.CFrame = (rootPart.CFrame - Vector3.new(0, dropOffset, 0)) * CFrame.Angles(math.rad(isR15 and 180 or 90), 0, 0)
local v = rootPart.AssemblyLinearVelocity
rootPart.AssemblyLinearVelocity = Vector3.new(v.X, 0, v.Z)
if InvisibleAnimationTrack then InvisibleAnimationTrack:AdjustWeight(100) end
end)
LocalPlayer.CharacterAdded:Connect(function()
if invisibleActive then task.wait(0.5); startInvisible() end
end)
MainSection:NewToggle("Invisible", "", function(state)
invisibleActive = state
if state then
startInvisible()
else
stopInvisible()
end
end)
local GunModActive = false
local GunModThread = nil
local GunModOldValues = {}
local function handleGunTool(tool)
if not tool:IsA("Tool") then return end
GunModOldValues[tool] = GunModOldValues[tool] or {}
if tool:GetAttribute("SpreadRadius") ~= nil then
if GunModOldValues[tool].SpreadRadius == nil then GunModOldValues[tool].SpreadRadius = tool:GetAttribute("SpreadRadius") end
tool:SetAttribute("SpreadRadius", 0)
end
if tool:GetAttribute("AutoFire") ~= nil then
if GunModOldValues[tool].AutoFire == nil then GunModOldValues[tool].AutoFire = tool:GetAttribute("AutoFire") end
tool:SetAttribute("AutoFire", true)
end
if tool:GetAttribute("ReloadTime") ~= nil then
if GunModOldValues[tool].ReloadTime == nil then GunModOldValues[tool].ReloadTime = tool:GetAttribute("ReloadTime") end
tool:SetAttribute("ReloadTime", 0.3)
end
if tool:GetAttribute("FireRate") ~= nil then
if GunModOldValues[tool].FireRate == nil then GunModOldValues[tool].FireRate = tool:GetAttribute("FireRate") end
tool:SetAttribute("FireRate", 0.05)
end
end
local function enableGunMod()
if GunModActive then return end
GunModActive = true
GunModThread = task.spawn(function()
while GunModActive do
task.wait(0.2)
if not GunModActive then break end
pcall(function()
local char = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
if char then for _, tool in ipairs(char:GetChildren()) do handleGunTool(tool) end end
if backpack then for _, tool in ipairs(backpack:GetChildren()) do handleGunTool(tool) end end
end)
end
end)
notify("OpenBro", "Gun Mod enabled")
end
local function disableGunMod()
if not GunModActive then return end
GunModActive = false
if GunModThread then pcall(task.cancel, GunModThread); GunModThread = nil end
task.wait(0.05)
pcall(function()
local char = LocalPlayer.Character
local backpack = LocalPlayer:FindFirstChild("Backpack")
local function revert(tool)
if not tool:IsA("Tool") then return end
if GunModOldValues[tool] then
for attr, val in pairs(GunModOldValues[tool]) do tool:SetAttribute(attr, val) end
GunModOldValues[tool] = nil
end
end
if char then for _, tool in ipairs(char:GetChildren()) do revert(tool) end end
if backpack then for _, tool in ipairs(backpack:GetChildren()) do revert(tool) end end
end)
notify("OpenBro", "Gun Mod disabled")
end
MainSection:NewToggle("Gun Mod", "", function(state)
if state then
enableGunMod()
else
disableGunMod()
end
end)Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place