Psychotic Containment Facility Arcade Script (November 2026)

PUBLISHEDUPDATED
1 Available ScriptFree

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

Rpunch Cooldown Bypass & MoreFree
Rpunch Cooldown Bypass
--[[
    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)
Executor compatibility changes over time. Check current reports before testing.

Copy the code above into a compatible Roblox script executor if you choose to test it.

Psychotic Containment Facility Arcade Script Status

✓AvailabilityFree
$Price$0
◫CompatibilityDesktop & Mobile
★SafetyVerified

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.

Check out our Roblox Scripts hub and Roblox Games Directory for more.

Leave a Comment