Skip to content
  • 0 Unread 0
  • Recent
  • Popular
  • Users
  • Donate
Collapse
Home Docs Stats Discord Donate
Download
  1. Home
  2. WAW Modding Releases & Resources
  3. [Release] [T4] [Zombies] ZPause T4 - a synced co-op pause mod by Xep

[Release] [T4] [Zombies] ZPause T4 - a synced co-op pause mod by Xep

Scheduled Pinned Locked Moved WAW Modding Releases & Resources
3 Posts 1 Posters 95 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Xeptix
    Xeptix
    Xeptix
    wrote on last edited by
    #1

    ZPause T4

    Synced co-op pause for World at War Zombies (Plutonium T4)

    by Xep

    A port of ZPause, the Black Ops II pause mod, to World
    at War — by way of the Black Ops 1 port, which is far
    closer to this engine.

    Any player can pause. Any player can unpause. The state lives on level, so it's
    identical for everyone — there's no per-client state that can desync.

    • Zombies stop where they are, and the spawner slows to a crawl
    • Players are locked and can't be hurt
    • Powerup timers, effect countdowns and bleedout all hold
    • Resumes on a 3‑2‑1 countdown with a short grace period
    • Optional vote-to-pause, so a pause has to carry the room

    Requirements

    Plutonium T4 (World at War), zombies. No other mods or dependencies.

    Only the host needs this file. Everything runs on the host and reaches everyone else
    as ordinary server-to-client traffic. Players joining your game install nothing.

    Download & Source

    Latest Version Download:

    https://github.com/Xeptix/ZPauseT4/releases/latest

    GitHub Source Code:

    https://github.com/Xeptix/ZPauseT4

    All ports in one download:

    ZPause [Treyarch Bundle], on the ZPause release page:
    https://github.com/Xeptix/ZPause/releases/latest

    Install

    Copy the Plutonium folder from the download into:

    %localappdata%
    

    It mirrors your existing %localappdata%\Plutonium exactly, so Windows will ask whether to
    merge — say yes. The only thing it replaces is an older zpause.gsc.

    That puts the file here:

    %localappdata%\Plutonium\storage\t4\raw\scripts\sp\zpause.gsc
    

    sp, not zm — World at War zombies runs on the singleplayer script tree. That's the
    same folder Plutonium's own scripts live in.

    There's no mod-folder version. Plutonium's mods folder and its in-game Mods menu are
    Black Ops II features; T4 has neither.

    install.bat in the download does the same copy for you if you'd rather — it lists what
    it's about to install, asks once, then copies. Nothing is deleted or downloaded.

    You don't need to restart the game to reload a script — just end the current match and
    start a new one.

    Usage

    Action Input
    Pause / unpause hold crouch + melee together for ~0.3s
    Vote yes, while a vote is open the same combo
    Vote no, while a vote is open hold aim + melee

    Crouching or prone counts, by any binding — the script reads your stance rather than a
    key, so it doesn't matter which of the crouch binds you use.

    There are no chat commands. World at War has no say callback for a script to bind
    to, so everything is on the combos.

    Fewer combos than the other ports. World at War has no jumpbuttonpressed() or
    throwbuttonpressed() at all, so anything using jump or grenade is unavailable here.
    What's left: crouch_melee (default), use_melee, ads_melee, ads_use.

    While you're down

    You can't crouch from the floor, and once you've bled out the engine stops delivering
    those buttons at all. Downed and spectating players switch to use + aim, and
    use + fire for a no vote. The HUD shows a while down: line whenever anybody is in
    that state.

    Voting

    Off by default. zp_vote 1 and a pause has to carry the room instead of any one player
    stopping the game. Calling a vote is the same action as pausing; the vote runs 30 seconds
    and everyone gets a tally with the count, the clock and how each player voted.

    Configuration

    Every setting is at the top of the file, and each one is also a dvar of the same name:

    zp_countdown 5
    

    The config is re-read whenever a pause is requested, so a change takes effect on the
    next pause — no map restart needed.

    Dvar Default What it does
    zp_button_combo 1 Enable the button combos.
    zp_combo crouch_melee Pause combo: crouch_melee, use_melee, ads_melee, ads_use.
    zp_button_hold_time 0.3 How long a combo must be held.
    zp_combo_dead use_ads Combo used while downed or spectating. "" = no button in that state.
    zp_vote_no_combo_dead use_attack The same, for a no vote.
    zp_vote 0 Put pauses to a vote.
    zp_vote_min 2 Minimum yes votes, whatever the player count.
    zp_vote_percent 51 Percent of players who must vote yes.
    zp_vote_time 30 Seconds a vote stays open.
    zp_vote_unpause 0 Resuming needs a vote too.
    zp_vote_hold 0 Freeze the game while the vote runs, and resume if it fails.
    zp_vote_initiator_yes 1 Whoever called the vote counts as a yes.
    zp_vote_lockout 10 Seconds before another vote can be called after one fails.
    zp_vote_alive_only 1 Leave bled-out spectators out of the threshold and the count.
    zp_vote_hud 1 Show the vote tally on screen.
    zp_vote_show_voters 1 List each player and how they voted.
    zp_vote_result_time 2 Seconds the result stands on the tally afterwards.
    zp_vote_no_combo ads_melee Combo for a no vote.
    zp_countdown 3 Seconds of 3‑2‑1 before play resumes.
    zp_grace 2 Seconds of invulnerability after resuming.
    zp_cooldown 2 Minimum seconds between toggles.
    zp_max_pause_time 0 Auto-resume after N seconds. 0 = unlimited.
    zp_drift_guard 1 Snap back any AI that still manages to move.
    zp_spawn_delay 3 Seconds of spawn delay per live zombie while paused. 0 = don't touch the spawner.
    zp_spawn_delay_max 60 Cap on that delay.
    zp_stop_anims 1 Cut scripted animations, so zombies can't finish tearing a barrier through the pause.
    zp_godmode 1 Make players invulnerable while paused.
    zp_control_guard 1 Re-apply the player freeze every tick.
    zp_freeze_bleedout 1 Stop downed players bleeding out.
    zp_freeze_powerups 1 Stop ground powerups timing out.
    zp_freeze_effects 1 Hold the powerup effect timers.
    zp_silence_zombies 1 Stop zombies growling while paused.
    zp_show_hint 1 Tell players how to pause when they spawn.
    zp_hud_timer 1 Show who paused and how long it's been.
    zp_hud_position center Where the pause banner sits: top, center, middle, bottom, left, right.
    zp_vote_hud_position top Where the vote tally sits.
    zp_hud_glow 1 Black glow behind the HUD text.
    zp_hud_binds 1 Draw combos as each player's bound buttons instead of words.
    zp_hud_panel 0 Black slab behind the whole block.
    zp_hud_panel_alpha 0.45 How opaque that slab is.
    zp_hud_panel_width 340 How wide it is, in HUD units.
    zp_blackout 0 Black out everyone's screen while paused (anti-scouting).
    zp_blur 1 Blur everyone's screen while paused.
    zp_blur_amount 1.5 Blur strength.
    zp_pause_sound box_poof Played when the game is paused. "" = silent.
    zp_countdown_sound cha_ching Played on each countdown tick.
    zp_resume_sound perks_power_on Played when play resumes.

    How it works

    Black Ops II ships a working full-game pause — it's what runs during a host migration
    — and the original ZPause is built on that recipe. World at War has no host migration in
    zombies and no disablezombies() builtin, so the engine-level AI freeze isn't available.
    It's done in script instead:

    • The AI enforcer holds ignoreall, pins every goal to where the zombie is standing,
      and snaps back anything that drifts. On Black Ops II this is a safety net around the
      engine freeze; here it is the freeze.
    • zp_stop_anims cancels scripted animations, because a zombie tearing a barrier is
      driven by its animation rather than by pathing. Everything cancelled is released again
      on resume.
    • The spawner is slowed, not gated. See below.
    • The stuck-zombie watchdog. round_spawn_failsafe() kills any zombie that hasn't
      moved 24 units in 30 seconds, and a paused zombie trips it every time. ZPause keeps the
      barrier-chunk timestamp fresh, which the watchdog honours.
    • Ground powerups. powerup_timeout() is a plain wait() chain, so the thread is cut
      and restarted on resume.
    • Bleedout is pinned so a downed player doesn't bleed out.

    The spawner

    Black Ops 1 and II both close the spawn_zombies flag, which is what their spawn loop
    blocks on. World at War has no such flag, and round_spawning() copies the round's
    budget into a local before the loop starts, so that's out of reach too.

    This matters more than it sounds: level.zombie_total is the round's whole allocation and
    it decrements per spawn, so an ungated pause could drain an entire round into a frozen
    crowd at the windows and hand it all back at once on resume.

    The one live lever is the spawn delay, which the loop re-reads every pass. It can't stop
    spawning outright — a plain wait() can't be interrupted, so whatever delay is in flight
    when you resume has to run out first. So the delay scales with how many zombies are
    already up
    :

    Zombies up Delay while paused
    1 5s
    10 30s
    20 60s (capped)

    Few zombies about and it stays short — little is spawning anyway and the resume is prompt.
    A big horde already up and it stretches to a minute, which is exactly when nobody wants
    more of them and nobody notices the gap. zp_spawn_delay 0 leaves the spawner alone
    entirely.

    The pause clock is in minutes

    World at War has no HUD timer element, so a clock has to be drawn as text, and every
    distinct string costs a configstring. A ticking second counter burns one a second until
    the pool runs dry and drops the server. Minutes bound the whole set to about sixty
    strings, all reused.

    Notes

    • Zombies stand still rather than freeze solid. Their animation is cancelled rather
      than frozen; a true animation freeze isn't reachable from server-side GSC.
    • Not held: the magic box close timer, trap durations and Easter egg step timers.

    Ports

    Same mod, same version numbering, on three engines:

    • Black Ops II — https://github.com/Xeptix/ZPause
    • Black Ops — https://github.com/Xeptix/ZPauseT5
    • World at War — https://github.com/Xeptix/ZPauseT4

    Credits

    • Xep — author
    • Treyarch — _zombiemode.gsc
    • plutoniummod/t4-scripts — stock T4 script reference
    1 Reply Last reply
    1
    • Xeptix
      Xeptix
      Xeptix
      wrote on last edited by
      #2

      ZPause T4 v1.4

      Eleven new settings, a settings editor so you never need the console, and two more games —
      ZPause now runs on all five Treyarch zombies titles.

      Download: https://github.com/Xeptix/ZPauseT4/releases/latest

      One thing changes on its own

      zp_blackout is on by default now, at the new zp_blackout_alpha of 0.2. It was off
      in v1.3, so this is the one thing you'll notice straight away: the screen dims slightly
      while paused. It's there to carry the pause text over a bright skybox.

      zp_blackout 0 puts it back, zp_blackout_alpha 1 gives the full blackout it used to be.
      zp_blur_amount went from 1.5 to 2 for the same reason. The installer mentions both
      when you update if you'd been leaving them alone.

      New — who decides

      All off by default, and they don't fight each other:

      • zp_host_only — only the host can pause or resume.
      • zp_host_approve — anyone can ask, the host answers yes or no. It runs on the same
        yes/no combo a vote uses, which is what lets it work on an engine with no chat.
      • zp_ready_check — resuming waits for everyone to say they're back. Not a vote:
        nobody says no and it can't fail.
      • zp_max_pauses — a cap per match.

      New — pausing without being asked

      • zp_pause_on_disconnect — pause when somebody drops, so whoever is left isn't
        overrun while they rejoin.
      • zp_round_pause — hold the pause until the round is over instead of freezing the
        game mid-horde.

      New — a settings editor

      The installer sets every dvar for you now. It reads the list out of the script you've
      actually got installed, so it's always right for your version, and offers a list rather
      than a blank prompt for anything that takes fixed values — which matters here, since World
      at War has four combos where the other ports have seven or ten.

      It writes the values into the installed script — which is what makes them stick, since
      Plutonium regenerates its own player cfg — and also exports a portable zpause.cfg for a
      dedicated server. Keep several profiles and switch between them. Settings are re-applied
      after every update.

      The installer has also grown into a manager: what's installed and at which version,
      removal, GitHub fetch, and a doctor for the things that actually go wrong. It asks before
      every network call. And it's one installer for all five games now — keep a copy on your PC
      and it can install any of them later.

      New — settings apply without a map restart

      The config is re-read every five seconds while you're playing, and again whenever a pause
      is requested.

      This one matters more here than anywhere else: it's what finally lets zp_combo be
      changed by hand
      . Before, changing it needed a pause to take effect — and with no chat
      commands on this engine, the combo is the thing that asks for one.

      set zp_config_print 1 prints every setting with its current value.

      Also new

      • zp_hud — turn the pause block off entirely, for a recording or a server with its
        own overlay.
      • zp_ease and zp_ease_time — config parity with the other ports. No effect on
        this engine; the README says why.

      Fixed

      • A zombie paused at a window now carries on where it was. One still walking used to
        start tearing from wherever it stood; one already tearing came back, tore the boards
        around the one it had been holding, and climbed through with that one still up. On
        resume, a zombie short of its spot walks the rest of the way first, and every board is
        handed back.

      New — Black Ops III and Black Ops 4

      Both debut at v1.4, same version number and the same feature set allowing for what each
      engine can do:

      • Black Ops III — https://github.com/Xeptix/ZPauseT7
      • Black Ops 4 — https://github.com/Xeptix/ZPauseT8

      That's all five Treyarch zombies games now. Each has a download of its own, and
      ZPause [Treyarch Bundle] on the ZPause release page carries all five — one download,
      one installer that knows every game.

      Install

      Unchanged. Run installer\windows\install.bat from the extracted folder, or copy the
      Plutonium folder into %localappdata% yourself. Your old zpause.gsc is replaced in
      place, so there's nothing to clean up first.

      No game restart needed — end the current match and start a new one. Only the host needs the
      file.

      Full dvar list and the how-it-works writeup are in the README:
      https://github.com/Xeptix/ZPauseT4

      1 Reply Last reply
      0
      • Xeptix
        Xeptix
        Xeptix
        wrote on last edited by
        #3

        ZPause T4 v1.5

        Chat commands, a settings menu while paused, settings that stay set — and a fix that
        matters: anybody can unpause again, not only whoever paused.

        Download: https://github.com/Xeptix/ZPauseT4/releases/latest

        Fixed — read these first

        • Anybody can unpause, not only whoever paused. The crouch half of a combo reads the
          stance you're in, and freezing a player freezes their stance — so whoever paused stayed
          crouched and everybody else, frozen standing, could never make it. While paused, resume
          with use + aim
          (or !unpause). The pause banner says so.
        • use_ads and use_attack do what they say. Both are the default down combos, and
          neither name was ever tested for, so both fell through to crouch + melee — the one combo a
          downed player can't make.

        New — chat commands

        !pause, !p, !unpause, !resume, and yes / no while a vote is open — the same words
        as Black Ops II. This port shipped without them because nothing in World at War's own
        scripts listens for chat; the game raises it anyway. zp_allow_short_words widens them to
        the bare words, off by default.

        New — a settings menu while paused

        The host holds fire + melee: aim and fire move through the list, grenade changes a
        setting, melee closes it, and what the setting does is written under the list. zp_menu 0
        turns it off.

        New — settings stick

        The menu saves to scriptdata\zpause.cfg as it closes, and the script reads it back as the
        next match loads. The installer's settings editor writes the same file and opens on it, so
        the menu and the installer always agree.

        Also

        • zp_freeze_players 0 lets players walk around a paused game with their weapons down.
          Not recommended — doors, the box and perks still work.
        • none empties a setting from the console, so set zp_pause_sound none is silence.
        • Changing zp_godmode during a pause no longer leaves players invulnerable after it.
        • The installer's -To works when it already remembers a folder.

        Install

        Unchanged. Run installer\windows\install.bat from the extracted folder, or copy the
        Plutonium folder into %localappdata% yourself. Your settings are carried over. No game
        restart needed — end the current match and start a new one. Only the host needs the file.

        Full dvar list and the how-it-works writeup are in the README:
        https://github.com/Xeptix/ZPauseT4

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Unread 0
        • Recent
        • Popular
        • Users
        • Donate