Skipping a slow grind on a Roblox fighting map gets a whole lot easier when you use the Psychotic Containment Facility Arcade script to speed things up.
This game drops you right into the action where you need to throw hands and survive against tough odds without spending extra Robux.
If you want to bypass annoying timers and keep the momentum going, grab the working script right down below.
Psychotic Containment Facility Arcade Script – Rpunch Cooldown Bypass & More
--[[
PunchPro
(früher: punchexploit / punchpro)
]]
local scriptName = "PunchPro"
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
local TeleportService = game:GetService("TeleportService")
local LocalPlayer = Players.LocalPlayer
local ALLOWED_PLACES = {
[116900614682254] = true,
[123741324159498] = true,
}
local placeId = game.PlaceId
local startTime = tick()
while placeId == 0 and (tick() - startTime) < 5 do
task.wait(0.1)
placeId = game.PlaceId
end
if not ALLOWED_PLACES[placeId] then
warn("[" .. scriptName .. "] Wrong place (PlaceID: " .. tostring(placeId) .. "). Script stopped.")
return
end
local moveName = "heavyc"
local minDelay = 0.002
local maxDelay = 0.005
local punchRadius = Vector3.new(5, 5, 5)
local hitboxRadius = Vector3.new(12, 10, 12)
local isHoldingR = false
local lastPunchTime = 0
local frozenPosition = nil
local hasTriggered = false
local function getFists()
local char = LocalPlayer.Character
if not char then return nil end
local fists = char:FindFirstChild("Fists")
if not fists then
local backpack = LocalPlayer:FindFirstChild("Backpack")
if backpack then fists = backpack:FindFirstChild("Fists") end
end
return fists
end
local function firePunch()
local fists = getFists()
if fists then
local innEvent = fists:FindFirstChild("inn")
if innEvent then
pcall(function() innEvent:FireServer(moveName) end)
end
end
end
local function executePunchWithRadius()
local char = LocalPlayer.Character
if not char or not char:FindFirstChild("HumanoidRootPart") then return end
local hrp = char.HumanoidRootPart
local boxCFrame = hrp.CFrame * CFrame.new(0, 0, -hitboxRadius.Z / 2)
local overlapParams = OverlapParams.new()
overlapParams.FilterType = Enum.RaycastFilterType.Exclude
overlapParams.FilterDescendantsInstances = {char}
local partsInBox = Workspace:GetPartBoundsInBox(boxCFrame, hitboxRadius, overlapParams)
local playersHit = {}
for _, part in ipairs(partsInBox) do
local model = part.Parent
if model then
local player = Players:GetPlayerFromCharacter(model)
if player and player ~= LocalPlayer and not playersHit[player] then
playersHit[player] = true
local fists = getFists()
if fists and fists:FindFirstChild("inn") then
pcall(function() fists.inn:FireServer(moveName, player) end)
end
end
end
end
if next(playersHit) == nil then
firePunch()
end
end
local function removeBlur()
for _, child in ipairs(Lighting:GetChildren()) do
if child:IsA("BlurEffect") then
child:Destroy()
end
end
local playerGui = LocalPlayer:FindFirstChild("PlayerGui")
if playerGui then
local screenEffects = playerGui:FindFirstChild("ScreenEffects")
if screenEffects then
screenEffects.Enabled = false
end
for _, gui in ipairs(playerGui:GetChildren()) do
if gui:IsA("ScreenGui") and (gui.Name:lower():find("blur") or gui.Name:lower():find("static")) then
gui.Enabled = false
end
end
end
end
local function rejoinSameServer()
if hasTriggered then return end
hasTriggered = true
pcall(function()
TeleportService:TeleportToPlaceInstance(game.PlaceId, game.JobId, LocalPlayer)
end)
end
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.R then
isHoldingR = true
local char = LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
frozenPosition = char.HumanoidRootPart.CFrame
end
local fists = getFists()
if fists and fists:FindFirstChild("move") then
fists.move.Disabled = true
end
end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if gameProcessed then return end
if input.KeyCode == Enum.KeyCode.R then
isHoldingR = false
frozenPosition = nil
local fists = getFists()
if fists and fists:FindFirstChild("move") then
fists.move.Disabled = false
end
end
end)
local function createRadiusVisual()
local char = LocalPlayer.Character
if not char then return end
local visual = Instance.new("Part")
visual.Name = "PunchRadiusVisual"
visual.Size = punchRadius
visual.Color = Color3.fromRGB(255, 0, 0)
visual.Transparency = 1
visual.Material = Enum.Material.Neon
visual.CanCollide = false
visual.Anchored = true
visual.Parent = Workspace
RunService.RenderStepped:Connect(function()
if isHoldingR then
local hrp = char:FindFirstChild("HumanoidRootPart")
if hrp then
visual.CFrame = hrp.CFrame * CFrame.new(0, 0, -punchRadius.Z / 2)
visual.Transparency = 0.5
else
visual.Transparency = 1
end
else
visual.Transparency = 1
end
end)
end
RunService.RenderStepped:Connect(function()
if not isHoldingR then return end
local now = tick()
if now - lastPunchTime > (minDelay + math.random() * (maxDelay - minDelay)) then
executePunchWithRadius()
lastPunchTime = now
end
end)
RunService.Heartbeat:Connect(function()
if isHoldingR and frozenPosition then
local char = LocalPlayer.Character
if char and char:FindFirstChild("HumanoidRootPart") then
char.HumanoidRootPart.CFrame = frozenPosition
end
end
end)
task.spawn(function()
while true do
task.wait(1)
removeBlur()
end
end)
local function onCharacter(char)
task.wait(1)
hasTriggered = false
createRadiusVisual()
removeBlur()
local hum = char:WaitForChild("Humanoid", 10)
if hum then
hum.Died:Connect(function()
rejoinSameServer()
end)
end
end
LocalPlayer.CharacterAdded:Connect(onCharacter)
if LocalPlayer.Character then
task.spawn(function() onCharacter(LocalPlayer.Character) end)
end
RunService.Heartbeat:Connect(function()
local char = LocalPlayer.Character
if char and not hasTriggered then
local hum = char:FindFirstChildOfClass("Humanoid")
local hrp = char:FindFirstChild("HumanoidRootPart")
if hum and hrp then
if hum:GetState() == Enum.HumanoidStateType.Physics or hum:GetState() == Enum.HumanoidStateType.FallingDown then
rejoinSameServer()
end
if hrp.Position.Y < -20 then
rejoinSameServer()
end
end
end
end)Copy the code above into a compatible Roblox script executor if you choose to test it.
Psychotic Containment Facility Arcade Script Status
Roblox and game updates can affect compatibility, so the script’s status should be treated as temporary rather than guaranteed.
Frequently Asked Questions
What is a Psychotic Containment Facility Arcade script?
A Psychotic Containment Facility Arcade script is third-party Lua code intended to run alongside the Roblox game through a compatible script executor.
What features does this Psychotic Containment Facility Arcade script include?
Different scripts contain different code. This version includes: Rpunch Cooldown Bypass.
How do you use the Psychotic Containment Facility Arcade 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 Psychotic Containment Facility Arcade 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 Psychotic Containment Facility Arcade 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.