Feb 9th, 2020
Redwood Prison is a Prison game created by a user called RoyStanford where players get to be prisoners, fugitives or prison guards. Before Prison Life v2.0, this game has been accused of being a ripoff of Prison Life by Aesthetical. However, it still stands to be a pretty popular game. 1 Glitches (Introduction) 2 Patched Glitches 2.1 Cars Spinning out of control after leaving the driver's seat 2.2 Falling out of cells 3 Glitches still valid 3.1 Corner glitching Over the years, Prison Life has had many glitches. These can span from walls, to even cars. Most of these glitches are patched. Some are caused by R6 or the ROBLOX engine.needs clarification This has been fixed in a. Prison Life is aprison-themed Role Play and Survival game created by the Robloxuser Aesthetical. The game has undergone a lot of changes since it has been in version 2.0.2. Prison Life has approximately 1.7 billionvisits (as of January 9, 2021) and was the most visited game on Roblox and still. Prison Life OP GUI with this script you can kill all, Kill Aura and other OP commands in Prison Life, make other players mad and have fun:D to execute this script recommended to use Paid Exploit example: Synapse X, SirHurt, etc. But you can enjoy it with free exploit too, but some features may not work properly. Prison life gun mod. Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Never
![Life Life](https://i.ytimg.com/vi/AePj6sMZ9nc/hqdefault.jpg)
Not a member of Pastebin yet?Sign Up, it unlocks many cool features!
- -- also there is no ammo limit --
- ['tooltip'] = 'Produced by UserOfEthanGamer'; -- Tooltip that will pop up when the mouse is hovered over the item
- ['dtime'] = .05; -- Amount of time before a bullet disappears
- ['rldtime'] = 1; -- Reload time
- ['maxammo'] = 32; -- Amount of ammo in one magazine
- ['damage'] = 8; -- Amount of damage one bullet does
- ['automatic'] = true; -- If set to true, the gun will continously fire if the left mouse button is held down
- ['range'] = 1500; -- Maximum distance a bullet can travel in studs
- ['reloadwhenout'] = true; -- Automatically reloads the weapon if your ammo is at 0
- local rld = false
- local plr = game.Players.LocalPlayer;
- local char = plr.Character;
- local tool, handle = script.Parent, script.Parent:FindFirstChild('Handle');
- local hold = false
- tool.Name = settings['name'].' '.'['.ammo.']'
- local function reload()
- if rld false then rld = true
- tool.Reload:Play()
- wait(settings['rldtime']/3)
- wait(settings['rldtime']/3)
- wait(settings['rldtime']/3)
- tool.Name = settings['name'].' '.'['.ammo.']'
- end
- db = false
- end
- if enabled false then return end
- if db false then db = true
- tool.Name = settings['name'].' '.'['.ammo.']'
- ammo = ammo - 1
- local ray = Ray.new(handle.Position,(mouse.Hit.p-handle.Position).unit*settings['range'])
- local hit,pos = workspace:FindPartOnRay(ray,char)
- tool.Name = settings['name'].' '.'['.ammo.']'
- if hit.Parent:FindFirstChild('Humanoid') then
- hit.Parent.Humanoid:TakeDamage(settings['damage'])
- end
- p.Anchored = true
- p.Name = 'Bullet'
- p.FormFactor = 'Custom'
- p.BottomSurface = 'Smooth'
- p.Size = Vector3.new(.2,.2,s)
- p.CFrame = CFrame.new(pos,handle.Position)*CFrame.new(0,0,-s/2)
- wait(settings['dtime'])
- end))
- end
- db = false
- end
- if enabled false then enabled = true
- mouse2.Icon = 'rbxasset://texturesGunCursor.png'
- mouse.Button1Down:connect(function()
- while hold do
- FireRay()
- if ammo <= 0 and settings['reloadwhenout'] true then
- end
- end)
- hold = false
- else
- FireRay()
- if ammo <= 0 and settings['reloadwhenout'] true then
- end
- end
- tool.Unequipped:connect(function()
- else
- end
- if enabled false then return end
- reload()
- end)
- --DONT MIX THESE 2--
- Tool = script.Parent;
- local torso = nil
- wait(0.01)
- arms = {Tool.Parent:FindFirstChild('Left Arm'), Tool.Parent:FindFirstChild('Right Arm')}
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild('Left Shoulder'), torso:FindFirstChild('Right Shoulder')}
- local yes = true
- yes = false
- sh[2].Part1 = nil
- weld1.Part0 = torso
- weld1.Part1 = arms[1]
- weld1.C1 = CFrame.new(-0.5, 0.9, 0.7) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
- local weld2 = Instance.new('Weld')
- weld2.Parent = torso
- weld2.C1 = CFrame.new(-1, 0.6, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-20), 0)
- end
- print('sh')
- else
- end
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild('Left Shoulder'), torso:FindFirstChild('Right Shoulder')}
- local yes = true
- yes = false
- sh[2].Part1 = arms[2]
- welds[2].Parent = nil
- else
- end
- print('arms')
- end
- Tool.Unequipped:connect(Unequip)
Gun Tutorial code download
Download the full script for this gun tutorial below.
Here’s what your game should look like:
Side notes
–Make sure that your game is set up like mine, with all objects added in – Make sure FilteringEnabled is turned on – Make sure that you make your own animations and set your animation IDs to your IDs as you cannot currently take someone else’s animations!
–Main Script which goes in Server Storage.
local serverStorage = game:GetService(“ServerStorage”)
local replicatedStorage = game:GetService(“ReplicatedStorage”)
local KOValue = “Kills”
local WOValue = “Wipeouts”
local damage = 30
replicatedStorage.ShootEvent.OnServerEvent:Connect(function(player,tool,position,part)
if game.Workspace[player.Name].Humanoid.Health <= 0then
— The player is dead, do not do anything
else
local distance = (tool.Handle.CFrame.p – position).magnitude
if game.Workspace:FindFirstChild(player.Name.“‘s Trajectory”) then
game.Workspace:FindFirstChild(player.Name.“‘s Trajectory”):Destroy()
end
local trajectory = Instance.new(“Part”,game.Workspace)
local smoke = serverStorage.SmokeParticle:Clone()
smoke.Parent = tool.Handle
trajectory.BrickColor = BrickColor.new(“Institutional white”)
trajectory.Material = “SmoothPlastic”
trajectory.Name = player.Name.“‘s Trajectory”
trajectory.Transparency = 0.5
trajectory.Anchored = true
trajectory.Locked = true
trajectory.CanCollide = false
trajectory.Size = Vector3.new(0.3,0.3,distance)
for i = 0,distance,6do
trajectory.CFrame = CFrame.new(tool.Handle.CFrame.p,position) * CFrame.new(0,0,-distance / 2)
wait(0.0001)
end
smoke:Destroy()
if part then
if part.Name “Head”or part:IsA(“Hat”) and part.Parent:FindFirstChild(“Humanoid”).Health > 0then
— Boom headshot
replicatedStorage.Headshot:FireClient(player)
damage = 50
end
local humanoid = part.Parent:FindFirstChild(“Humanoid”)
ifnot humanoid then
humanoid = part.Parent.Parent:FindFirstChild(“Humanoid”)
else
humanoid:TakeDamage(damage)
if humanoid.Health <= 0then
player.leaderstats[KOValue].Value = player.leaderstats[KOValue].Value + 1
game.Players[humanoid.Parent.Name].leaderstats[WOValue].Value = game.Players[humanoid.Parent.Name].leaderstats[WOValue].Value + 1
end
end
wait(0.25)
if trajectory then
trajectory:Destroy()
end
end
end
end)
local replicatedStorage = game:GetService(“ReplicatedStorage”)
local KOValue = “Kills”
local WOValue = “Wipeouts”
local damage = 30
replicatedStorage.ShootEvent.OnServerEvent:Connect(function(player,tool,position,part)
if game.Workspace[player.Name].Humanoid.Health <= 0then
— The player is dead, do not do anything
else
local distance = (tool.Handle.CFrame.p – position).magnitude
if game.Workspace:FindFirstChild(player.Name.“‘s Trajectory”) then
game.Workspace:FindFirstChild(player.Name.“‘s Trajectory”):Destroy()
end
local trajectory = Instance.new(“Part”,game.Workspace)
local smoke = serverStorage.SmokeParticle:Clone()
smoke.Parent = tool.Handle
trajectory.BrickColor = BrickColor.new(“Institutional white”)
trajectory.Material = “SmoothPlastic”
trajectory.Name = player.Name.“‘s Trajectory”
trajectory.Transparency = 0.5
trajectory.Anchored = true
trajectory.Locked = true
trajectory.CanCollide = false
trajectory.Size = Vector3.new(0.3,0.3,distance)
for i = 0,distance,6do
trajectory.CFrame = CFrame.new(tool.Handle.CFrame.p,position) * CFrame.new(0,0,-distance / 2)
wait(0.0001)
end
smoke:Destroy()
if part then
if part.Name “Head”or part:IsA(“Hat”) and part.Parent:FindFirstChild(“Humanoid”).Health > 0then
— Boom headshot
replicatedStorage.Headshot:FireClient(player)
damage = 50
end
local humanoid = part.Parent:FindFirstChild(“Humanoid”)
ifnot humanoid then
humanoid = part.Parent.Parent:FindFirstChild(“Humanoid”)
else
humanoid:TakeDamage(damage)
if humanoid.Health <= 0then
player.leaderstats[KOValue].Value = player.leaderstats[KOValue].Value + 1
game.Players[humanoid.Parent.Name].leaderstats[WOValue].Value = game.Players[humanoid.Parent.Name].leaderstats[WOValue].Value + 1
end
end
wait(0.25)
if trajectory then
trajectory:Destroy()
end
end
end
end)
replicatedStorage.EquipAnimation.OnServerEvent:Connect(function(player,animation)
local newAnim = game.Workspace[player.Name].Humanoid:LoadAnimation(animation)
newAnim:Play()
replicatedStorage.UnequipAnimation.OnServerEvent:Connect(function(player,animation)
newAnim:Stop()
for i,v inpairs(game.Workspace:GetChildren()) do
if v.Name player.Name.“‘s Trajectory”then
v:Destroy()
end
end
end)
replicatedStorage.Reload.OnServerEvent:Connect(function(player,animation)
newAnim:Stop()
local reloadAnim = game.Workspace[player.Name].Humanoid:LoadAnimation(animation)
reloadAnim:Play()
end)
end)
local newAnim = game.Workspace[player.Name].Humanoid:LoadAnimation(animation)
newAnim:Play()
replicatedStorage.UnequipAnimation.OnServerEvent:Connect(function(player,animation)
newAnim:Stop()
for i,v inpairs(game.Workspace:GetChildren()) do
if v.Name player.Name.“‘s Trajectory”then
v:Destroy()
end
end
end)
replicatedStorage.Reload.OnServerEvent:Connect(function(player,animation)
newAnim:Stop()
local reloadAnim = game.Workspace[player.Name].Humanoid:LoadAnimation(animation)
reloadAnim:Play()
end)
end)
functioncheckBodyType(player,tool)
if game.Workspace[player.Name]:FindFirstChild(“LowerTorso”) then— R15
tool.shoot.AnimationId = “rbxassetid://936531673”
tool.reload.AnimationId = “rbxassetid://937806099”
return“R15”
end
if game.Workspace[player.Name]:FindFirstChild(“Torso”) then— R6
tool.shoot.AnimationId = “rbxassetid://1000874313”
tool.reload.AnimationId = “rbxassetid://937933712”
return“R6”
end
end
replicatedStorage.CheckBodyType.OnServerInvoke = checkBodyType
if game.Workspace[player.Name]:FindFirstChild(“LowerTorso”) then— R15
tool.shoot.AnimationId = “rbxassetid://936531673”
tool.reload.AnimationId = “rbxassetid://937806099”
return“R15”
end
if game.Workspace[player.Name]:FindFirstChild(“Torso”) then— R6
tool.shoot.AnimationId = “rbxassetid://1000874313”
tool.reload.AnimationId = “rbxassetid://937933712”
return“R6”
end
end
replicatedStorage.CheckBodyType.OnServerInvoke = checkBodyType
— Local Script, which goes inside the tool
How to change roblox name for free. local tool = script.Parent — Getting the tool
local player = game:GetService(“Players”).LocalPlayer — Getting the player
local mouse = player:GetMouse() — Getting the mouse
local sound = tool:WaitForChild(“Gunfire”)
local torso =“”— Nothing for now.
local reloading =false— Variable to check if we are currently reloading
local contextActionService = game:GetService(“ContextActionService”) — Allow us to cater for Mobile players
local bodytype =nil— Nil for now but will check whether player is R6 or R15
local difference =0— Difference between position of head and mouse
local replicatedstorage = game:GetService(“ReplicatedStorage”)
local gungui = tool:WaitForChild(“GunGUI”)
local bullets = tool:WaitForChild(“Bullets”)
local reloadtime =3
— Remote Events
local equipAnimation = replicatedstorage:WaitForChild(“EquipAnimation”)
local headshot = replicatedstorage:WaitForChild(“Headshot”)
local reload2 = replicatedstorage:WaitForChild(“Reload”)
local shootevent = replicatedstorage:WaitForChild(“ShootEvent”)
local unequipanimation = replicatedstorage:WaitForChild(“UnequipAnimation”)
— Remote Functions
local checkBodyType = replicatedstorage:WaitForChild(“CheckBodyType”)
local fetchBulletsLeft = replicatedstorage:WaitForChild(“FetchBulletsLeft”)
— Find Body Type
functionfindBodyType() — Used to determine whether a player is R6 or R15
bodytype = checkBodyType:InvokeServer(tool) — Invoking the Remotefunction to do a check on the server
print(bodytype)
end
— Reloading function
functionreload()
reloading =true
reload2:FireServer(tool.reload)
mouse.Icon =“http://www.roblox.com/asset?id=936489163”
player.PlayerGui:WaitForChild(“GunGUI”).Bullets.Text =“Reloading!”
wait(reloadtime)
bullets.Value =6
player.PlayerGui:WaitForChild(“GunGUI”).Bullets.Text =“Bullets: “.bullets.Value
mouse.Icon =“http://www.roblox.com/asset?id=936803874”
equipAnimation:FireServer(tool.shoot)
reloading =false
end
— When the tool is equipped, the following event will run
tool.Equipped:Connect(function(mouse)
gungui:Clone().Parent = player.PlayerGui — We are cloning the Gun GUI into the player’s PlayerGUI
findBodyType() — Calling the function above to check the body type.
equipAnimation:FireServer(tool.shoot) — Calling the equip animation remoteevent so that the server can play the animation
mouse.Icon =“http://www.roblox.com/asset?id=936803874”
mouse.Button1Down:Connect(function()
if bullets.Value <=0or reloading truethen
— Don’t do anything
else
local head = game.Workspace[player.Name].Head.CFrame.lookVector
local mouse = CFrame.new(game.Workspace[player.Name].Head.Position,mouse.Hit.p).lookVector
difference = (head–mouse)
local ray = Ray.new(tool.Handle.CFrame.p,(player:GetMouse().Hit.p – tool.Handle.CFrame.p).unit*300)
local part,position = game.Workspace:FindPartOnRay(ray,player.Character,false,true)
sound:Play()
if difference.magnitude <1.33then
shootevent:FireServer(tool,position,part)
bullets.Value = bullets.Value –1
end
end
end)
local reloadMobileButton = contextActionService:BindAction(“ReloadBtn”,reload,true,“r”)
contextActionService:SetPosition(“ReloadBtn”,UDim2.new(0.72,–25,0.20,–25))
contextActionService:SetImage(“ReloadBtn”,“http://www.roblox.com/asset/?id=10952419”)
end)
tool.Unequipped:Connect(function()
mouse.Icon =“”
unequipanimation:FireServer(tool.shoot)
player.PlayerGui.GunGUI:Destroy()
contextActionService:UnbindAction(“ReloadBtn”)
end)
headshot.OnClientEvent:Connect(function()
player.PlayerGui.GunGUI.Headshot:TweenPosition(UDim2.new(0.5,–100,0.5,–25), “Out”,“Quint”,0.3)
wait(1.5)
player.PlayerGui.GunGUI.Headshot:TweenPosition(UDim2.new(–1,0,0.5,–25), “In”,“Quint”,0.4)
wait(0.5)
player.PlayerGui.GunGUI.Headshot.Position = UDim2.new(1.5,0,0.5,–25)
end)
local player = game:GetService(“Players”).LocalPlayer — Getting the player
local mouse = player:GetMouse() — Getting the mouse
local sound = tool:WaitForChild(“Gunfire”)
local torso =“”— Nothing for now.
local reloading =false— Variable to check if we are currently reloading
local contextActionService = game:GetService(“ContextActionService”) — Allow us to cater for Mobile players
local bodytype =nil— Nil for now but will check whether player is R6 or R15
local difference =0— Difference between position of head and mouse
local replicatedstorage = game:GetService(“ReplicatedStorage”)
local gungui = tool:WaitForChild(“GunGUI”)
local bullets = tool:WaitForChild(“Bullets”)
local reloadtime =3
— Remote Events
local equipAnimation = replicatedstorage:WaitForChild(“EquipAnimation”)
local headshot = replicatedstorage:WaitForChild(“Headshot”)
local reload2 = replicatedstorage:WaitForChild(“Reload”)
local shootevent = replicatedstorage:WaitForChild(“ShootEvent”)
local unequipanimation = replicatedstorage:WaitForChild(“UnequipAnimation”)
— Remote Functions
local checkBodyType = replicatedstorage:WaitForChild(“CheckBodyType”)
local fetchBulletsLeft = replicatedstorage:WaitForChild(“FetchBulletsLeft”)
— Find Body Type
functionfindBodyType() — Used to determine whether a player is R6 or R15
bodytype = checkBodyType:InvokeServer(tool) — Invoking the Remotefunction to do a check on the server
print(bodytype)
end
— Reloading function
functionreload()
reloading =true
reload2:FireServer(tool.reload)
mouse.Icon =“http://www.roblox.com/asset?id=936489163”
player.PlayerGui:WaitForChild(“GunGUI”).Bullets.Text =“Reloading!”
wait(reloadtime)
bullets.Value =6
player.PlayerGui:WaitForChild(“GunGUI”).Bullets.Text =“Bullets: “.bullets.Value
mouse.Icon =“http://www.roblox.com/asset?id=936803874”
equipAnimation:FireServer(tool.shoot)
reloading =false
end
— When the tool is equipped, the following event will run
tool.Equipped:Connect(function(mouse)
gungui:Clone().Parent = player.PlayerGui — We are cloning the Gun GUI into the player’s PlayerGUI
findBodyType() — Calling the function above to check the body type.
equipAnimation:FireServer(tool.shoot) — Calling the equip animation remoteevent so that the server can play the animation
mouse.Icon =“http://www.roblox.com/asset?id=936803874”
mouse.Button1Down:Connect(function()
if bullets.Value <=0or reloading truethen
— Don’t do anything
else
local head = game.Workspace[player.Name].Head.CFrame.lookVector
local mouse = CFrame.new(game.Workspace[player.Name].Head.Position,mouse.Hit.p).lookVector
difference = (head–mouse)
local ray = Ray.new(tool.Handle.CFrame.p,(player:GetMouse().Hit.p – tool.Handle.CFrame.p).unit*300)
local part,position = game.Workspace:FindPartOnRay(ray,player.Character,false,true)
sound:Play()
if difference.magnitude <1.33then
shootevent:FireServer(tool,position,part)
bullets.Value = bullets.Value –1
end
end
end)
local reloadMobileButton = contextActionService:BindAction(“ReloadBtn”,reload,true,“r”)
contextActionService:SetPosition(“ReloadBtn”,UDim2.new(0.72,–25,0.20,–25))
contextActionService:SetImage(“ReloadBtn”,“http://www.roblox.com/asset/?id=10952419”)
end)
tool.Unequipped:Connect(function()
mouse.Icon =“”
unequipanimation:FireServer(tool.shoot)
player.PlayerGui.GunGUI:Destroy()
contextActionService:UnbindAction(“ReloadBtn”)
end)
headshot.OnClientEvent:Connect(function()
player.PlayerGui.GunGUI.Headshot:TweenPosition(UDim2.new(0.5,–100,0.5,–25), “Out”,“Quint”,0.3)
wait(1.5)
player.PlayerGui.GunGUI.Headshot:TweenPosition(UDim2.new(–1,0,0.5,–25), “In”,“Quint”,0.4)
wait(0.5)
player.PlayerGui.GunGUI.Headshot.Position = UDim2.new(1.5,0,0.5,–25)
end)
— Leaderboard code which goes inside ServerScriptService, optional to include, you can add your own if you want but bear in mind the gun won’t work unless you have some sort of leaderboard with a Kills and Wipeouts stat
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new(“IntValue”,player)
leaderstats.Name =“leaderstats”
local leaderstats = Instance.new(“IntValue”,player)
leaderstats.Name =“leaderstats”
local kills = Instance.new(“IntValue”,leaderstats)
kills.Name =“Kills”
kills.Value =0
kills.Name =“Kills”
kills.Value =0
local wipeouts = Instance.new(“IntValue”,leaderstats)
wipeouts.Name =“Wipeouts”
wipeouts.Value =0
wipeouts.Name =“Wipeouts”
wipeouts.Value =0
— Data saving code goes here if you need it
end)
end)
Roblox Prison Life Cheats
This was a lengthy tutorial from me, my longest yet! If you want to watch more tutorials on how to script on Roblox, remember to subscribe to my channel.
Roblox Prison Life Controls
Become a Channel Member and benefit from a range of perks!