I improved a zombies custom games pause mod!
-
Just as title says I adapted a mod from hima_simple that pauses the game playing custom zombies. The problem with it was that the zombies still moved to your last Coords before stopping in place and zombies continued to spawn as well. useful for the start or end of the round but not in the middle. Mine pauses spawning, movement, allows 5 seconds of invuln when unpausing to reposition. This was very much vibe coded and hasn't been tested on bosses yet but I will report back!
How to Use
open chat by pressing 'T'
Type 'p' and press Enter.
How to install
C:\Users\13103\AppData\Local\Plutonium\storage\t6\scripts\zm
Or equivalent
Most likely will have to create ZM file
Add new notepad file in zm, copy code in, name it pause_mod.gsc. Save and play! LMK if anything is broken!GSC CODE
#include maps\mp\gametypes_zm_hud_util;
#include maps\mp\gametypes_zm_hud_message;init()
{
level.is_game_paused = false;
level.is_unpausing = false;
level thread watchchatpause();
}watchchatpause()
{
level endon("end_game");for(;;) { level waittill("say", message, player); message = tolower(message); // Pause Command if (message == "p" && !level.is_game_paused && !level.is_unpausing) { level.is_game_paused = true; // Backup total/active AI limits and throttle spawn cap to 0 if(isDefined(level.zombie_ai_limit) && level.zombie_ai_limit > 0) { level.old_ai_limit = level.zombie_ai_limit; } else { level.old_ai_limit = 24; } level.zombie_ai_limit = 0; if(!isDefined(level.gamestate)) { level.gamestate = createServerFontString("hudsmall", 3.0); level.gamestate setPoint("CENTER", "TOP", 0, 190); } level.gamestate setText("Game Paused"); // Secure players players = getplayers(); for(i = 0; i < players.size; i++) { players[i].godmode = true; players[i].ignoreme = 1; players[i] freezeControls(true); players[i] iprintln("^1Game Paused"); } // Freeze standard zombies AND special actors/bosses freeze_all_enemies(); } // Unpause Command else if (message == "u" && level.is_game_paused && !level.is_unpausing) { level.is_unpausing = true; // Unfreeze players immediately so they can move during countdown players = getplayers(); for(i = 0; i < players.size; i++) { players[i] freezeControls(false); players[i] iprintln("^2Resuming! Move into position..."); } // Countdown loop for(i = 5; i > 0; i--) { if(isDefined(level.gamestate)) { level.gamestate setText("Resuming in: " + i); } players = getplayers(); for(p = 0; p < players.size; p++) { players[p] playlocalsound("zmb_admin_beep"); } wait 1.0; } if(isDefined(level.gamestate)) { level.gamestate destroy(); } // Restore AI limits safely so the round manager continues spawning if(isDefined(level.old_ai_limit)) { level.zombie_ai_limit = level.old_ai_limit; } else { level.zombie_ai_limit = 24; } // Restore player protection status players = getplayers(); for(i = 0; i < players.size; i++) { players[i].godmode = false; players[i].ignoreme = 0; players[i] iprintln("^2Enemies Resumed!"); } // Unfreeze standard zombies AND special actors/bosses unfreeze_all_enemies(); level notify("resume_zombies"); level.is_game_paused = false; level.is_unpausing = false; } wait 0.05; }}
freeze_all_enemies()
{
enemies = get_all_enemies();for(i = 0; i < enemies.size; i++) { if(isDefined(enemies[i]) && isAlive(enemies[i])) { enemies[i].anchor_origin = enemies[i].origin; enemies[i].ignoreall = true; enemies[i] setGoalPos(enemies[i].origin); enemies[i] thread freeze_zombie_position(); } }}
unfreeze_all_enemies()
{
enemies = get_all_enemies();for(i = 0; i < enemies.size; i++) { if(isDefined(enemies[i]) && isAlive(enemies[i])) { enemies[i].ignoreall = false; } }}
get_all_enemies()
{
enemies = getaiarray();actors = getentarray("actor", "classname"); if (isDefined(actors) && actors.size > 0) { for(i = 0; i < actors.size; i++) { enemies[enemies.size] = actors[i]; } } return enemies;}
freeze_zombie_position()
{
self endon("death");
level endon("resume_zombies");for(;;) { if(isDefined(self.anchor_origin)) { self setorigin(self.anchor_origin); self setGoalPos(self.anchor_origin); } wait 0.1; }}
Type 'u' to unpause.[pause_mod.gsc]
-
Now this is a must for our nucleus sessions thanks a ton dude your awesome


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