Skip to content
  • 0 Unread 0
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse

Plutonium

  1. Home
  2. BO2 Modding Releases & Resources
  3. [GSC Release] Ultimate T6 Zombies Overhaul: Modern HUD, Hitmarkers, Auto-Reload & Advanced Commands

[GSC Release] Ultimate T6 Zombies Overhaul: Modern HUD, Hitmarkers, Auto-Reload & Advanced Commands

Scheduled Pinned Locked Moved BO2 Modding Releases & Resources
bo2zombiesgschudcommandsoriginsscript
27 Posts 9 Posters 6.1k 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.
  • mr.kennutbusterundefined Offline
    mr.kennutbusterundefined Offline
    mr.kennutbuster
    wrote on last edited by
    #5

    i can give it a try i just need to reinstall bo2 i got my 1tb ssd and now i can do more stuff i have special for my camo pack

    Erkikundefined 1 Reply Last reply
    0
    • FaZe Flickundefined Offline
      FaZe Flickundefined Offline
      FaZe Flick
      wrote on last edited by
      #6

      can this also be used for individual play or is it only for hosted servers?

      Erkikundefined 1 Reply Last reply
      0
      • mr.kennutbusterundefined mr.kennutbuster

        i can give it a try i just need to reinstall bo2 i got my 1tb ssd and now i can do more stuff i have special for my camo pack

        Erkikundefined Offline
        Erkikundefined Offline
        Erkik
        wrote on last edited by
        #7

        mr.kennutbuster said:

        i can give it a try i just need to reinstall bo2 i got my 1tb ssd and now i can do more stuff i have special for my camo pack

        That's awesome! A 1TB SSD is a game-changer for BO2 and custom content.

        Definitely give it a try when you reinstall the game. The script runs completely server-side, so it shouldn't conflict at all with your custom camo pack. I'd love to see how the modern HUD looks paired with your camos!

        Also, just a quick heads-up in case you were wondering: the script works perfectly in Solo / Custom Games too, not just in public lobbies. So you can easily jump into a private match by yourself to test your camos, use the commands, and check out the new features at your own pace.

        Take your time setting everything up, and let me know how it goes!

        1 Reply Last reply
        0
        • FaZe Flickundefined FaZe Flick

          can this also be used for individual play or is it only for hosted servers?

          Erkikundefined Offline
          Erkikundefined Offline
          Erkik
          wrote on last edited by
          #8

          FaZe Flick

          Hey there! Yes, you can absolutely use this for individual play!

          In Plutonium, whenever you start a Solo match or a Custom Game, your PC is technically acting as the "host server". As long as you have the .gsc file placed in your "C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm" folder, the mod will load perfectly when you play by yourself.

          Since you are playing solo, the game automatically recognizes you as the Host, meaning you will have full access to all the fun admin/cheat commands (like !god, !staff, !bring, etc.) to use at your own pace.

          Have fun testing it out, and let me know if you have any questions!

          FaZe Flickundefined 1 Reply Last reply
          1
          • Erkikundefined Erkik

            FaZe Flick

            Hey there! Yes, you can absolutely use this for individual play!

            In Plutonium, whenever you start a Solo match or a Custom Game, your PC is technically acting as the "host server". As long as you have the .gsc file placed in your "C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm" folder, the mod will load perfectly when you play by yourself.

            Since you are playing solo, the game automatically recognizes you as the Host, meaning you will have full access to all the fun admin/cheat commands (like !god, !staff, !bring, etc.) to use at your own pace.

            Have fun testing it out, and let me know if you have any questions!

            FaZe Flickundefined Offline
            FaZe Flickundefined Offline
            FaZe Flick
            wrote on last edited by
            #9

            Erkik for sure, Ill give it a go and leave my feedback when i can

            1 Reply Last reply
            0
            • Erkikundefined Erkik

              Hello everyone!

              After a lot of coding and testing (especially fighting with the Origins weapon mechanics lol), I am releasing a comprehensive GSC script designed to upgrade your Plutonium T6 Zombies server.

              This script transforms the vanilla BO2 experience into a more modern, smooth, and feature-rich game, perfect for playing with friends or hosting public lobbies. It features a custom UI, huge Quality of Life (QoL) improvements, and a robust chat command system that doesn't break the game.

              🌟 Key Features

              1. Modern Custom HUD (Warzone / Apex Style)

              • Replaces the old basic text counters with a sleek, unified dark panel.
              • Dynamic HP & Shield Bars: Features a dynamic health bar that changes color based on your HP. If you equip a shield, a slim cyan blue bar attaches directly on top of your health bar. If the shield breaks, the bar disappears seamlessly.
              • Unified Stats: Modernized Round Time, Game Time, and Zombie Remaining counters in the top left corner.

              2. Quality of Life (QoL) & Gameplay

              • Hitmarkers: Added satisfying multiplayer hitmarkers with sound (mpl_hit_alert) for every zombie hit.
              • BO3-Style Max Ammo: Grabbing a Max Ammo drop now instantly refills your current magazine too. No more reloading mid-panic!
              • Economy System: Players can share points using the !pay <name> <amount> command.

              3. Smart Scripting & Crash Prevention

              • Smart Shield Giver: The !shield command automatically detects the map you are playing on (Origins, Mob of the Dead, Tranzit) and gives you the correct shield to your D-pad without breaking your weapon inventory.
              • Origins Staff Bypass: The !staff <type> command safely gives you the upgraded staff of your choice. It correctly injects the hidden "Sekhmet's Vigor" melee weapon so the animations don't crash or bug your hands.

              💬 Chat Commands

              Public Commands:

              • !help - Displays available commands.
              • !pay <player> <amount> - Transfer points to another player (e.g., !pay juan 1000).

              Host / Utility Commands:

              • !god / !ignore (Invisibility) / !speed
              • !puntos / !ammo / !perks / !allperks
              • !pap - Instantly Pack-a-Punches the weapon in your hands.
              • !drop <ammo/nuke/insta/fire/blood> - Spawns a specific power-up.
              • !shield - Gives the map-specific shield.

              Admin / Easter Egg Tools:

              • !bring - Teleports all players to your exact location.
              • !killall - Wipes all alive zombies instantly.
              • !round <number> - Force skips the game to a specific round.

              Weapon Spawns:

              • !mk2, !galil, !an94, !ms (Mustang & Sally), !monkeys
              • Origins Exclusives: !staff <fire/ice/lightning/wind>

              ⚙️ How to Install

              Simply compile or drop the .gsc file into your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder and start your server. Ensure you are the host to use the restricted commands!

              Enjoy, and let me know if you find any bugs or have suggestions for future updates!

              💻 Source Code & Installation

              How to Install:

              1. Click the link above to view the code. You can copy it or click the "Download ZIP" button.
              2. Save the code as a .gsc file (for example, _ezz_server.gsc).
              3. Place the file inside your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder.
              4. Start your server! (Remember, you need to be the Host to use the admin/cheat commands).

              💻 Full Source Code

              Copy the code below and save it as a .gsc file (for example, _ezz_server.gsc) inside your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder.

              #include maps\mp\_utility;
              #include common_scripts\utility;
              #include maps\mp\gametypes_zm\_hud_util;
              #include maps\mp\gametypes_zm\_hud_message;
              #include maps\mp\zombies\_zm_utility;
              #include maps\mp\zombies\_zm_score;
              #include maps\mp\zombies\_zm_perks;
              #include maps\mp\zombies\_zm_weapons;
              #include maps\mp\zombies\_zm_powerups;
              
              init()
              {
                  // ==========================================
                  // PRECACHE TEXTURES (Prevents crashing)
                  // ==========================================
                  PrecacheShader("white");
                  PrecacheShader("damage_feedback"); 
              
                  // ==========================================
                  // SERVER CONFIGURATION
                  // ==========================================
                  level.perk_purchase_limit = 10; 
                  level.host_only_commands = true; // true = Host Only, false = Everyone
              
                  level thread onPlayerConnect();
                  level thread chat_command_listener();
                  level thread remove_quick_revive_limit(); 
                  level thread global_hitmarker_manager(); 
              }
              
              onPlayerConnect()
              {
                  for (;;)
                  {
                      level waittill("connecting", player);
                      player thread onplayerspawned();
                  }
              }
              
              onplayerspawned()
              {
                  self endon("disconnect");
                  
                  // Initialize HUD and monitors only on the first spawn
                  if(!isDefined(self.hud_initiated))
                  {
                      self thread modern_counters_hud(); 
                      self thread ezz_bars_hud();        
                      self thread auto_reload_monitor(); 
                      self.hud_initiated = true;
                  }
                  
                  for (;;)
                  {
                      self waittill("spawned_player");
                      
                      self iprintln("^6[EZZ Server] ^7Welcome, ^2" + self.name);
                      self iprintln("Type ^3!help ^7in chat to see the commands.");
              
                      if(!isDefined(self.speed_buff_active) || self.speed_buff_active == false)
                      {
                          self setMoveSpeedScale(1.0); 
                      }
                  }
              }
              
              // ==========================================
              // CHAT COMMAND SYSTEM
              // ==========================================
              chat_command_listener()
              {
                  level endon("end_game");
              
                  for(;;)
                  {
                      level waittill("say", message, player);
                      message = tolower(message);
                      args = strtok(message, " ");
                      if (args.size == 0) continue;
                      command = args[0];
              
                      // ------------------------------------------
                      // PUBLIC COMMANDS
                      // ------------------------------------------
                      if(command == "!help" || command == "!cmds")
                      {
                          player iprintln("^3Public: ^7!pay <player> <points>");
                          player iprintln("^3Cheats: ^7!god, !ammo, !perks, !allperks, !points, !ignore");
                          player iprintln("^3Utility: ^7!pap, !drop, !shield, !bring, !round <n>, !killall");
                          player iprintln("^3Weapons: ^7!mk2, !galil, !an94, !ms, !monkeys");
                          player iprintln("^3Origins: ^7!staff <fire/ice/lightning/wind>");
                          continue;
                      }
              
                      if(command == "!pay" || command == "!dar")
                      {
                          if(args.size >= 3)
                          {
                              target_name = args[1];
                              amount = int(args[2]);
                              if(amount > 0 && player.score >= amount)
                              {
                                  target = get_player_by_name(target_name);
                                  if(isDefined(target) && target != player)
                                  {
                                      player maps\mp\zombies\_zm_score::minus_to_player_score(amount);
                                      target maps\mp\zombies\_zm_score::add_to_player_score(amount);
                                      player iprintln("^2You sent " + amount + " points to " + target.name);
                                      target iprintln("^2You received " + amount + " points from " + player.name + "!");
                                  }
                                  else { player iprintln("^1Error: Player not found."); }
                              }
                              else { player iprintln("^1Error: Not enough points."); }
                          }
                          continue;
                      }
              
                      // ------------------------------------------
                      // HOST PERMISSION CHECK
                      // ------------------------------------------
                      if ( level.host_only_commands && !player isHost() )
                      {
                          player iprintln("^1Error: Only the Server Host can use these commands.");
                          continue;
                      }
              
                      // ------------------------------------------
                      // ORIGINS STAFFS FIX
                      // ------------------------------------------
                      if(command == "!staff" || command == "!baston")
                      {
                          if ( level.script != "zm_tomb" )
                          {
                              player iprintln("^1Error: Staffs are only available in Origins.");
                              continue;
                          }
              
                          if(args.size < 2)
                          {
                              player iprintln("^3Usage: ^7!staff <fire/ice/lightning/wind>");
                              continue;
                          }
              
                          staff_type = tolower(args[1]);
                          weapon_to_give = "none";
              
                          // Treyarch internal names mapped
                          if(staff_type == "fire" || staff_type == "fuego") weapon_to_give = "staff_fire_upgraded_zm";
                          else if(staff_type == "ice" || staff_type == "water" || staff_type == "hielo") weapon_to_give = "staff_water_upgraded_zm";
                          else if(staff_type == "lightning" || staff_type == "rayo") weapon_to_give = "staff_lightning_upgraded_zm";
                          else if(staff_type == "wind" || staff_type == "air" || staff_type == "viento") weapon_to_give = "staff_air_upgraded_zm";
              
                          if(weapon_to_give != "none")
                          {
                              // SECRET FIX: Give the revive weapon to prevent animation crash
                              if ( !player HasWeapon("staff_revive_zm") )
                              {
                                  player GiveWeapon("staff_revive_zm");
                              }
                              
                              // Safe native method for weapon swap
                              player maps\mp\zombies\_zm_weapons::weapon_give(weapon_to_give);
                              player SwitchToWeapon(weapon_to_give);
                              
                              player iprintln("^2Upgraded Staff equipped instantly!");
                          }
                          else
                          {
                              player iprintln("^1Error: Invalid type. Use: fire, ice, lightning, or wind.");
                          }
                      }
              
                      // ------------------------------------------
                      // OTHER COMMANDS
                      // ------------------------------------------
                      else if(command == "!mk2" || command == "!mark2")
                      {
                          if ( isDefined( level.zombie_weapons["raygun_mark2_zm"] ) || isDefined( level.zombie_weapons["raygun_mark2_upgraded_zm"] ) || level.script == "zm_tomb" )
                          {
                              player maps\mp\zombies\_zm_weapons::weapon_give("raygun_mark2_zm");
                              player SwitchToWeapon("raygun_mark2_zm");
                              player iprintln("^2Ray Gun Mark II equipped!");
                          } else { player iprintln("^1Error: Mark II is not available on this map."); }
                      }
                      else if(command == "!bring" || command == "!traer")
                      {
                          players = get_players();
                          foreach(p in players)
                          {
                              if(p != player)
                              {
                                  p SetOrigin(player.origin);
                                  p SetPlayerAngles(player.angles);
                              }
                          }
                          player iprintln("^2All players teleported to your position!");
                      }
                      else if(command == "!killall" || command == "!matar")
                      {
                          zombies = GetAiSpeciesArray( "axis", "all" );
                          if(isDefined(zombies))
                          {
                              foreach(z in zombies) { z DoDamage(z.health + 666, z.origin, player); }
                          }
                          player iprintln("^2All zombies eliminated!");
                      }
                      else if(command == "!round" || command == "!ronda")
                      {
                          if(args.size > 1)
                          {
                              new_round = int(args[1]);
                              if(new_round > 0)
                              {
                                  level.zombie_total = 0;
                                  level.round_number = new_round - 1; 
                                  zombies = GetAiSpeciesArray( "axis", "all" );
                                  if(isDefined(zombies))
                                  {
                                      foreach(z in zombies) { z DoDamage(z.health + 666, z.origin, player); }
                                  }
                                  player iprintln("^2Forcing skip to round " + new_round + "!");
                              }
                          }
                      }
                      else if(command == "!shield" || command == "!escudo")
                      {
                          shield_name = "none";
                          if ( level.script == "zm_tomb" ) shield_name = "tomb_shield_zm";           
                          else if ( level.script == "zm_prison" ) shield_name = "alcatraz_shield_zm"; 
                          else if ( level.script == "zm_transit" ) shield_name = "riotshield_zm";     
              
                          if(shield_name != "none")
                          {
                              player GiveWeapon( shield_name );
                              player SetActionSlot( 3, "weapon", shield_name ); 
                              player iprintln("^2Shield equipped instantly!");
                          }
                          else { player iprintln("^1Error: No shields available on this map."); }
                      }
                      else if(command == "!galil")
                      {
                          player maps\mp\zombies\_zm_weapons::weapon_give("galil_zm");
                          player SwitchToWeapon("galil_zm");
                          player iprintln("^2Galil equipped!");
                      }
                      else if(command == "!an94")
                      {
                          player maps\mp\zombies\_zm_weapons::weapon_give("an94_zm");
                          player SwitchToWeapon("an94_zm");
                          player iprintln("^2AN-94 equipped!");
                      }
                      else if(command == "!ms" || command == "!mustang")
                      {
                          player maps\mp\zombies\_zm_weapons::weapon_give("m1911_upgraded_zm");
                          player SwitchToWeapon("m1911_upgraded_zm");
                          player iprintln("^2Mustang & Sally ready!");
                      }
                      else if(command == "!monkeys" || command == "!monos")
                      {
                          player maps\mp\zombies\_zm_weapons::weapon_give("cymbal_monkey_zm");
                          player iprintln("^2Space Monkeys received!");
                      }
                      else if(command == "!raygun")
                      {
                          player maps\mp\zombies\_zm_weapons::weapon_give("ray_gun_zm");
                          player SwitchToWeapon("ray_gun_zm");
                          player iprintln("^2Ray Gun equipped!");
                      }
                      else if(command == "!pap")
                      {
                          current_weapon = player GetCurrentWeapon();
                          if(current_weapon != "none" && current_weapon != "knife_zm")
                          {
                              upgraded_weapon = player maps\mp\zombies\_zm_weapons::get_upgrade_weapon( current_weapon );
                              if(isDefined(upgraded_weapon))
                              {
                                  player TakeWeapon(current_weapon);
                                  player maps\mp\zombies\_zm_weapons::weapon_give(upgraded_weapon);
                                  player iprintln("^2Weapon upgraded instantly!");
                              } else { player iprintln("^1This weapon cannot be upgraded."); }
                          }
                      }
                      else if(command == "!drop")
                      {
                          drop_type = "full_ammo"; 
                          if (args.size > 1)
                          {
                              if(args[1] == "ammo") drop_type = "full_ammo";
                              else if(args[1] == "nuke") drop_type = "nuke";
                              else if(args[1] == "insta") drop_type = "insta_kill";
                              else if(args[1] == "fire") drop_type = "fire_sale";
                              else if(args[1] == "blood") drop_type = "zombie_blood";
                          }
                          if ( isDefined( level.zombie_powerups ) && isDefined( level.zombie_powerups[drop_type] ) )
                          {
                              maps\mp\zombies\_zm_powerups::specific_powerup_drop( drop_type, player.origin );
                              player iprintln("^2Spawning Drop: " + drop_type);
                          } else { player iprintln("^1Drop not supported on this map."); }
                      }
                      else if(command == "!ignore")
                      {
                          if(!isDefined(player.ignoreme) || player.ignoreme == false) {
                              player.ignoreme = true;
                              player iprintln("^2Invisibility ENABLED.");
                          } else {
                              player.ignoreme = false;
                              player iprintln("^1Invisibility DISABLED.");
                          }
                      }
                      else if(command == "!speed")
                      {
                          if(!isDefined(player.speed_buff_active) || player.speed_buff_active == false)
                          {
                              player.speed_buff_active = true;
                              player thread maintain_speed(); 
                              player iprintln("^2Extra Speed ENABLED!");
                          } else {
                              player notify("stop_speed_buff"); 
                              player.speed_buff_active = false;
                              player setMoveSpeedScale(1.0);
                              player iprintln("^1Extra Speed DISABLED.");
                          }
                      }
                      else if(command == "!god")
                      {
                          if(!isDefined(player.godmode_active) || player.godmode_active == false) 
                          {
                              player.godmode_active = true;
                              player EnableInvulnerability(); 
                              player thread brute_force_godmode(); 
                              player iprintln("^2Godmode ENABLED!");
                          } else {
                              player notify("stop_godmode"); 
                              player.godmode_active = false;
                              player DisableInvulnerability();
                              player iprintln("^1Godmode DISABLED.");
                          }
                      }
                      else if(command == "!points" || command == "!puntos")
                      {
                          points_to_give = 50000; 
                          if (args.size > 1) { points_to_give = int(args[1]); }
                          player maps\mp\zombies\_zm_score::add_to_player_score( points_to_give );
                          player iprintln("^2You received " + points_to_give + " points!");
                      }
                      else if(command == "!ammo")
                      {
                          weapons = player GetWeaponsList( true );
                          foreach ( weapon in weapons )
                          {
                              player GiveMaxAmmo( weapon );
                              player SetWeaponAmmoClip( weapon, WeaponClipSize( weapon ) );
                          }
                          player iprintln("^2Max Ammo received!");
                      }
                      else if(command == "!perks")
                      {
                          player maps\mp\zombies\_zm_perks::give_perk( "specialty_armorvest", false );   
                          player maps\mp\zombies\_zm_perks::give_perk( "specialty_longersprint", false ); 
                          player maps\mp\zombies\_zm_perks::give_perk( "specialty_fastreload", false );   
                          player maps\mp\zombies\_zm_perks::give_perk( "specialty_quickrevive", false );  
                          player iprintln("^24 Basic Perks received!");
                      }
                      else if(command == "!allperks")
                      {
                          lista_perks = [];
                          lista_perks[0] = "specialty_armorvest";               
                          lista_perks[1] = "specialty_quickrevive";             
                          lista_perks[2] = "specialty_fastreload";              
                          lista_perks[3] = "specialty_rof";                     
                          lista_perks[4] = "specialty_longersprint";            
                          lista_perks[5] = "specialty_flakjacket";              
                          lista_perks[6] = "specialty_deadshot";                
                          lista_perks[7] = "specialty_additionalprimaryweapon"; 
                          lista_perks[8] = "specialty_grenadepulldeath";        
                          
                          for ( i = 0; i < lista_perks.size; i++ )
                          {
                              if ( !player hasPerk( lista_perks[i] ) )
                              {
                                  player maps\mp\zombies\_zm_perks::give_perk( lista_perks[i], false );
                                  wait 0.1; 
                              }
                          }
                          player iprintln("^2Full Perk arsenal received!");
                      }
                  }
              }
              
              // ==========================================
              // QoL FEATURES & UTILITIES
              // ==========================================
              
              // Get player by name (For !pay command)
              get_player_by_name(name)
              {
                  players = get_players();
                  foreach(p in players)
                  {
                      if(issubstr(tolower(p.name), tolower(name))) return p;
                  }
                  return undefined;
              }
              
              // Auto-Reload on Max Ammo pickup
              auto_reload_monitor()
              {
                  self endon("disconnect");
                  for(;;)
                  {
                      self waittill( "zmb_max_ammo" ); 
                      weapons = self GetWeaponsList(true);
                      foreach(weapon in weapons)
                      {
                          self SetWeaponAmmoClip(weapon, WeaponClipSize(weapon));
                      }
                  }
              }
              
              // Global Hitmarker Manager
              global_hitmarker_manager()
              {
                  level endon("end_game");
                  for(;;)
                  {
                      zombies = GetAiSpeciesArray("axis", "all");
                      foreach(z in zombies)
                      {
                          if(!isDefined(z.has_hitmarker_monitor))
                          {
                              z.has_hitmarker_monitor = true;
                              z thread monitor_zombie_damage();
                          }
                      }
                      wait 1; 
                  }
              }
              
              // Monitor damage for each zombie
              monitor_zombie_damage()
              {
                  self endon("death");
                  for(;;)
                  {
                      self waittill("damage", amount, attacker, dir, point, type);
                      if(isDefined(attacker) && isPlayer(attacker))
                      {
                          attacker thread show_hitmarker();
                      }
                  }
              }
              
              // Display hitmarker and play sound
              show_hitmarker()
              {
                  if(!isDefined(self.hitmarker_hud))
                  {
                      self.hitmarker_hud = newClientHudElem(self);
                      self.hitmarker_hud.alignX = "center";
                      self.hitmarker_hud.alignY = "middle";
                      self.hitmarker_hud.horzAlign = "center";
                      self.hitmarker_hud.vertAlign = "middle";
                      self.hitmarker_hud.alpha = 0;
                      self.hitmarker_hud setShader("damage_feedback", 24, 48);
                  }
                  
                  self.hitmarker_hud.alpha = 1;
                  self playlocalsound("mpl_hit_alert"); 
                  self.hitmarker_hud fadeOverTime(0.5);
                  self.hitmarker_hud.alpha = 0;
              }
              
              // ==========================================
              // BACKGROUND FUNCTIONS
              // ==========================================
              brute_force_godmode()
              {
                  self endon("disconnect");
                  self endon("stop_godmode");
                  level endon("end_game");
              
                  for(;;)
                  {
                      self.health = self.maxhealth;
                      wait 0.05; 
                  }
              }
              
              remove_quick_revive_limit()
              {
                  level endon("end_game");
                  for(;;)
                  {
                      if ( isDefined( level.solo_lives_given ) ) { level.solo_lives_given = 0; }
                      wait 1; 
                  }
              }
              
              maintain_speed()
              {
                  self endon("disconnect");
                  self endon("stop_speed_buff"); 
                  level endon("end_game");
              
                  for(;;)
                  {
                      if(self getMoveSpeedScale() < 1.5) { self setMoveSpeedScale(1.5); }
                      wait 0.1; 
                  }
              }
              
              // ==========================================
              // UNIFIED MODERN HUD
              // ==========================================
              
              modern_counters_hud()
              {
                  self endon("disconnect");
                  flag_wait("initial_blackscreen_passed");
              
                  self.panel_bg = newClientHudElem(self);
                  self.panel_bg.alignX = "left";
                  self.panel_bg.alignY = "top";
                  self.panel_bg.horzAlign = "user_left";
                  self.panel_bg.vertAlign = "user_top";
                  self.panel_bg.x = 5;
                  self.panel_bg.y = 5;
                  self.panel_bg setShader("white", 100, 52); 
                  self.panel_bg.color = (0, 0, 0);
                  self.panel_bg.alpha = 0.6;
                  self.panel_bg.sort = 1;
              
                  self.panel_line = newClientHudElem(self);
                  self.panel_line.alignX = "left";
                  self.panel_line.alignY = "top";
                  self.panel_line.horzAlign = "user_left";
                  self.panel_line.vertAlign = "user_top";
                  self.panel_line.x = 5;
                  self.panel_line.y = 5;
                  self.panel_line setShader("white", 3, 52); 
                  self.panel_line.color = (0, 0.6, 1);
                  self.panel_line.alpha = 1;
                  self.panel_line.sort = 2;
              
                  self.zombie_text = newClientHudElem(self);
                  self.zombie_text.alignX = "left";
                  self.zombie_text.alignY = "top";
                  self.zombie_text.horzAlign = "user_left";
                  self.zombie_text.vertAlign = "user_top";
                  self.zombie_text.x = 12;
                  self.zombie_text.y = 8;
                  self.zombie_text.fontscale = 1.2;
                  self.zombie_text.color = (1, 1, 1);
                  self.zombie_text.label = &"Zombies: ^5"; 
                  self.zombie_text.sort = 3;
              
                  self.round_time_text = newClientHudElem(self);
                  self.round_time_text.alignX = "left";
                  self.round_time_text.alignY = "top";
                  self.round_time_text.horzAlign = "user_left";
                  self.round_time_text.vertAlign = "user_top";
                  self.round_time_text.x = 12;
                  self.round_time_text.y = 23;
                  self.round_time_text.fontscale = 1.2;
                  self.round_time_text.color = (1, 1, 1);
                  self.round_time_text.label = &"Round: ^5";
                  self.round_time_text.sort = 3;
              
                  self.game_time_text = newClientHudElem(self);
                  self.game_time_text.alignX = "left";
                  self.game_time_text.alignY = "top";
                  self.game_time_text.horzAlign = "user_left";
                  self.game_time_text.vertAlign = "user_top";
                  self.game_time_text.x = 12;
                  self.game_time_text.y = 38;
                  self.game_time_text.fontscale = 1.2;
                  self.game_time_text.color = (1, 1, 1);
                  self.game_time_text.label = &"Game: ^5";
                  self.game_time_text.sort = 3;
              
                  self.game_time_text setTimerUp(0);
                  self thread update_zombie_counter_modern();
                  self thread update_round_timer_modern();
              }
              
              update_zombie_counter_modern()
              {
                  self endon("disconnect");
                  for (;;)
                  {
                      self.zombie_text setvalue(level.zombie_total + get_current_zombie_count());
                      wait 0.05;
                  }
              }
              
              update_round_timer_modern()
              {
                  self endon("disconnect");
                  for (;;)
                  {
                      self.round_time_text setTimerUp(0);
                      start_time = GetTime() / 1000;
                      level waittill("end_of_round");
              
                      end_time = GetTime() / 1000;
                      time_elapsed = end_time - start_time;
              
                      self.round_time_text setTimer(time_elapsed);
                  }
              }
              
              ezz_bars_hud()
              {
                  self endon("disconnect");
                  flag_wait("initial_blackscreen_passed");
              
                  bar_width = 130;
                  hp_height = 8;
                  shield_height = 3;  
                  bg_padding = 4;
                  y_bottom_anchor = -40; 
              
                  self.hp_text = newClientHudElem(self);
                  self.hp_text.alignX = "center";
                  self.hp_text.alignY = "bottom";
                  self.hp_text.horzAlign = "center";
                  self.hp_text.vertAlign = "bottom";
                  self.hp_text.x = 0;
                  self.hp_text.y = y_bottom_anchor - hp_height - shield_height - bg_padding - 2; 
                  self.hp_text.fontscale = 1.1;
                  self.hp_text.label = &"^5HP / SHIELD";
                  self.hp_text.sort = 2;
              
                  self.hp_bg = newClientHudElem(self);
                  self.hp_bg.alignX = "center";
                  self.hp_bg.alignY = "bottom";
                  self.hp_bg.horzAlign = "center";
                  self.hp_bg.vertAlign = "bottom";
                  self.hp_bg.x = 0;
                  self.hp_bg.y = y_bottom_anchor;
                  self.hp_bg setShader("white", bar_width + bg_padding, hp_height + shield_height + bg_padding);
                  self.hp_bg.color = (0, 0, 0);
                  self.hp_bg.alpha = 0.6;
                  self.hp_bg.sort = 1;
              
                  self.hp_bar = newClientHudElem(self);
                  self.hp_bar.alignX = "left";
                  self.hp_bar.alignY = "bottom";
                  self.hp_bar.horzAlign = "center";
                  self.hp_bar.vertAlign = "bottom";
                  self.hp_bar.x = -(bar_width/2);
                  self.hp_bar.y = y_bottom_anchor - (bg_padding/2); 
                  self.hp_bar setShader("white", bar_width, hp_height);
                  self.hp_bar.sort = 3;
              
                  self.shield_bar = newClientHudElem(self);
                  self.shield_bar.alignX = "left";
                  self.shield_bar.alignY = "bottom";
                  self.shield_bar.horzAlign = "center";
                  self.shield_bar.vertAlign = "bottom";
                  self.shield_bar.x = -(bar_width/2);
                  self.shield_bar.y = y_bottom_anchor - (bg_padding/2) - hp_height; 
                  self.shield_bar setShader("white", bar_width, shield_height);
                  self.shield_bar.color = (0, 0.6, 1); 
                  self.shield_bar.sort = 4;
              
                  for(;;)
                  {
                      current_health = self.health;
                      max_health = self.maxhealth;
                      
                      if(max_health <= 0) max_health = 100;
                      health_percent = current_health / max_health;
                      
                      hp_visual_width = int(bar_width * health_percent);
                      if(hp_visual_width < 1) hp_visual_width = 1; 
              
                      if (health_percent >= 1.0) {
                          self.hp_bar.color = (0, 1, 0); 
                          self.hp_bar.alpha = 1;
                      } else if (health_percent > 0.4) {
                          self.hp_bar.color = (1, 1, 0); 
                          self.hp_bar.alpha = 1;
                      } else {
                          self.hp_bar.color = (1, 0, 0); 
                          self.hp_bar.alpha = (int(GetTime() / 250) % 2) ? 0.3 : 1; 
                      }
              
                      self.hp_bar setShader("white", hp_visual_width, hp_height);
              
                      if ( self HasWeapon("riotshield_zm") || self HasWeapon("alcatraz_shield_zm") || self HasWeapon("tomb_shield_zm") )
                      {
                          self.shield_bar.alpha = 1;
                      }
                      else
                      {
                          self.shield_bar.alpha = 0;
                      }
              
                      wait 0.05; 
                  }
              }
              
              TherealGTMundefined Offline
              TherealGTMundefined Offline
              TherealGTM
              wrote on last edited by
              #10

              Erkik can I use this mod on solo mode?

              Erkikundefined 1 Reply Last reply
              0
              • TherealGTMundefined TherealGTM

                Erkik can I use this mod on solo mode?

                Erkikundefined Offline
                Erkikundefined Offline
                Erkik
                wrote on last edited by
                #11

                TherealGTM
                Hey there! Yes, you can absolutely use this for individual play!

                Shedletsky_12undefined 1 Reply Last reply
                2
                • Keyhart1997undefined Offline
                  Keyhart1997undefined Offline
                  Keyhart1997
                  wrote on last edited by
                  #12

                  trying this out, it looks quite well! i rewrote some code for myself to move the health hud to the bottom left instead of the middle. if you wanna test it out overwrite lines 625 to 676 with the following

                  self endon("disconnect");
                      flag_wait("initial_blackscreen_passed");
                  
                      bar_width = 130;
                      hp_height = 6;
                      shield_height = 3;  
                      bg_padding = 4;
                      y_bottom_anchor = 20; 
                  
                      self.hp_text = newClientHudElem(self);
                      self.hp_text.alignX = "left";
                      self.hp_text.alignY = "bottom";
                      self.hp_text.horzAlign = "left";
                      self.hp_text.vertAlign = "bottom";
                      self.hp_text.x = 0;
                      self.hp_text.y = y_bottom_anchor - hp_height - shield_height - bg_padding - 2; 
                      self.hp_text.fontscale = 1.1;
                      self.hp_text.label = &"^5Health";
                      self.hp_text.sort = 2;
                  
                      self.hp_bg = newClientHudElem(self);
                      self.hp_bg.alignX = "left";
                      self.hp_bg.alignY = "bottom";
                      self.hp_bg.horzAlign = "left";
                      self.hp_bg.vertAlign = "bottom";
                      self.hp_bg.x = 0;
                      self.hp_bg.y = y_bottom_anchor;
                      self.hp_bg setShader("white", bar_width + bg_padding, hp_height + shield_height + bg_padding);
                      self.hp_bg.color = (0, 0, 0);
                      self.hp_bg.alpha = 0.6;
                      self.hp_bg.sort = 1;
                  
                      self.hp_bar = newClientHudElem(self);
                      self.hp_bar.alignX = "left";
                      self.hp_bar.alignY = "bottom";
                      self.hp_bar.horzAlign = "left";
                      self.hp_bar.vertAlign = "bottom";
                      self.hp_bar.x = (bg_padding/2);
                      self.hp_bar.y = y_bottom_anchor - (bg_padding/2); 
                      self.hp_bar setShader("white", bar_width, hp_height);
                      self.hp_bar.sort = 3;
                  
                      self.shield_bar = newClientHudElem(self);
                      self.shield_bar.alignX = "left";
                      self.shield_bar.alignY = "bottom";
                      self.shield_bar.horzAlign = "left";
                      self.shield_bar.vertAlign = "bottom";
                      self.shield_bar.x = (bg_padding/2);
                      self.shield_bar.y = y_bottom_anchor - (bg_padding/2) - hp_height; 
                      self.shield_bar setShader("white", bar_width, shield_height);
                      self.shield_bar.color = (0, 0.6, 1); 
                      self.shield_bar.sort = 4;
                  
                  Erkikundefined Rtd888undefined Keyhart1997undefined 3 Replies Last reply
                  0
                  • Shedletsky_12undefined Offline
                    Shedletsky_12undefined Offline
                    Shedletsky_12
                    wrote on last edited by
                    #13

                    i havent played it yet i just copied the code and i really want to play it

                    1 Reply Last reply
                    0
                    • Erkikundefined Erkik

                      TherealGTM
                      Hey there! Yes, you can absolutely use this for individual play!

                      Shedletsky_12undefined Offline
                      Shedletsky_12undefined Offline
                      Shedletsky_12
                      wrote on last edited by
                      #14

                      Erkik how do i change the file to a GSC?

                      Erkikundefined 1 Reply Last reply
                      0
                      • Shedletsky_12undefined Shedletsky_12

                        Erkik how do i change the file to a GSC?

                        Erkikundefined Offline
                        Erkikundefined Offline
                        Erkik
                        wrote on last edited by
                        #15

                        Shedletsky_12
                        Hello!! Thank you for trying my code! You just have to copy it into a txt file, give it any name you want and change the .txt to a .gsc, that's enough, put the file in the directory mentioned in the instructions above and that's it, you can play alone too!

                        Shedletsky_12undefined 2 Replies Last reply
                        0
                        • Keyhart1997undefined Keyhart1997

                          trying this out, it looks quite well! i rewrote some code for myself to move the health hud to the bottom left instead of the middle. if you wanna test it out overwrite lines 625 to 676 with the following

                          self endon("disconnect");
                              flag_wait("initial_blackscreen_passed");
                          
                              bar_width = 130;
                              hp_height = 6;
                              shield_height = 3;  
                              bg_padding = 4;
                              y_bottom_anchor = 20; 
                          
                              self.hp_text = newClientHudElem(self);
                              self.hp_text.alignX = "left";
                              self.hp_text.alignY = "bottom";
                              self.hp_text.horzAlign = "left";
                              self.hp_text.vertAlign = "bottom";
                              self.hp_text.x = 0;
                              self.hp_text.y = y_bottom_anchor - hp_height - shield_height - bg_padding - 2; 
                              self.hp_text.fontscale = 1.1;
                              self.hp_text.label = &"^5Health";
                              self.hp_text.sort = 2;
                          
                              self.hp_bg = newClientHudElem(self);
                              self.hp_bg.alignX = "left";
                              self.hp_bg.alignY = "bottom";
                              self.hp_bg.horzAlign = "left";
                              self.hp_bg.vertAlign = "bottom";
                              self.hp_bg.x = 0;
                              self.hp_bg.y = y_bottom_anchor;
                              self.hp_bg setShader("white", bar_width + bg_padding, hp_height + shield_height + bg_padding);
                              self.hp_bg.color = (0, 0, 0);
                              self.hp_bg.alpha = 0.6;
                              self.hp_bg.sort = 1;
                          
                              self.hp_bar = newClientHudElem(self);
                              self.hp_bar.alignX = "left";
                              self.hp_bar.alignY = "bottom";
                              self.hp_bar.horzAlign = "left";
                              self.hp_bar.vertAlign = "bottom";
                              self.hp_bar.x = (bg_padding/2);
                              self.hp_bar.y = y_bottom_anchor - (bg_padding/2); 
                              self.hp_bar setShader("white", bar_width, hp_height);
                              self.hp_bar.sort = 3;
                          
                              self.shield_bar = newClientHudElem(self);
                              self.shield_bar.alignX = "left";
                              self.shield_bar.alignY = "bottom";
                              self.shield_bar.horzAlign = "left";
                              self.shield_bar.vertAlign = "bottom";
                              self.shield_bar.x = (bg_padding/2);
                              self.shield_bar.y = y_bottom_anchor - (bg_padding/2) - hp_height; 
                              self.shield_bar setShader("white", bar_width, shield_height);
                              self.shield_bar.color = (0, 0.6, 1); 
                              self.shield_bar.sort = 4;
                          
                          Erkikundefined Offline
                          Erkikundefined Offline
                          Erkik
                          wrote on last edited by
                          #16

                          Keyhart1997
                          Hey! Thanks for testing it out and for the kind words!

                          That's actually a fantastic tweak. Moving the HP and Shield bars to the bottom left is a great alternative for players who prefer to keep the center of their screen completely clear for better crosshair visibility. I just read through your alignment changes and the new X offsets, and it looks spot on.

                          I absolutely love seeing people take the code, play around with it, and customize it to their own playstyle. Thanks for sharing this snippet with the community so others can use it too!

                          1 Reply Last reply
                          0
                          • Erkikundefined Erkik

                            Shedletsky_12
                            Hello!! Thank you for trying my code! You just have to copy it into a txt file, give it any name you want and change the .txt to a .gsc, that's enough, put the file in the directory mentioned in the instructions above and that's it, you can play alone too!

                            Shedletsky_12undefined Offline
                            Shedletsky_12undefined Offline
                            Shedletsky_12
                            wrote on last edited by
                            #17

                            Erkik it doesnt let me change it to a .gsc it only appears to a .txt or all files

                            1 Reply Last reply
                            0
                            • Erkikundefined Erkik

                              Shedletsky_12
                              Hello!! Thank you for trying my code! You just have to copy it into a txt file, give it any name you want and change the .txt to a .gsc, that's enough, put the file in the directory mentioned in the instructions above and that's it, you can play alone too!

                              Shedletsky_12undefined Offline
                              Shedletsky_12undefined Offline
                              Shedletsky_12
                              wrote on last edited by
                              #18

                              Erkik i finally did it but it doesnt work

                              Erkikundefined 1 Reply Last reply
                              0
                              • Shedletsky_12undefined Shedletsky_12

                                Erkik i finally did it but it doesnt work

                                Erkikundefined Offline
                                Erkikundefined Offline
                                Erkik
                                wrote on last edited by Erkik
                                #19

                                Shedletsky_12
                                Hey! Glad you figured out the extension part. However, if it's still not loading in-game, it's usually one of these 3 common traps. Let's get it fixed!

                                1. The hidden .txt trap (Very common):
                                  Even if you typed .gsc, Windows might have secretly saved it as _ezz_server.gsc.txt because it hides known extensions by default.
                                  Easiest fix: Go to my GitHub Gist link in the main post, look at the top right of the screen, and click "Download ZIP". Extract that ZIP file, and you will get a perfect, ready-to-use .gsc file without needing to rename anything manually!

                                2. The exact folder path:
                                  Make sure the file is in the exact right folder. Press Windows Key + R, paste this exact path, and hit Enter:
                                  %localappdata%\Plutonium\storage\t6\scripts\zm
                                  (Note: If the scripts or zm folders don't exist, just right-click and create them!). Drop your new .gsc file directly inside that zm folder.

                                3. How to test it properly:
                                  Launch the game and go to Custom Games (this ensures you are the Host). Start any map. Once the initial black screen fades and you can move your character, look at the top left of your screen. If you see the new dark panel with the "Zombies" counter, it's working!

                                Shedletsky_12undefined 1 Reply Last reply
                                0
                                • Erkikundefined Erkik

                                  Shedletsky_12
                                  Hey! Glad you figured out the extension part. However, if it's still not loading in-game, it's usually one of these 3 common traps. Let's get it fixed!

                                  1. The hidden .txt trap (Very common):
                                    Even if you typed .gsc, Windows might have secretly saved it as _ezz_server.gsc.txt because it hides known extensions by default.
                                    Easiest fix: Go to my GitHub Gist link in the main post, look at the top right of the screen, and click "Download ZIP". Extract that ZIP file, and you will get a perfect, ready-to-use .gsc file without needing to rename anything manually!

                                  2. The exact folder path:
                                    Make sure the file is in the exact right folder. Press Windows Key + R, paste this exact path, and hit Enter:
                                    %localappdata%\Plutonium\storage\t6\scripts\zm
                                    (Note: If the scripts or zm folders don't exist, just right-click and create them!). Drop your new .gsc file directly inside that zm folder.

                                  3. How to test it properly:
                                    Launch the game and go to Custom Games (this ensures you are the Host). Start any map. Once the initial black screen fades and you can move your character, look at the top left of your screen. If you see the new dark panel with the "Zombies" counter, it's working!

                                  Shedletsky_12undefined Offline
                                  Shedletsky_12undefined Offline
                                  Shedletsky_12
                                  wrote on last edited by
                                  #20

                                  Erkik Ok! Thank you very much im excited to try out this mod!

                                  1 Reply Last reply
                                  0
                                  • Synarxisundefined Offline
                                    Synarxisundefined Offline
                                    Synarxis
                                    wrote last edited by Synarxis
                                    #21

                                    this is sick!!

                                    1 Reply Last reply
                                    0
                                    • Rtd888undefined Offline
                                      Rtd888undefined Offline
                                      Rtd888
                                      wrote last edited by
                                      #22

                                      Found a fix for those who are having trouble converting it to a .GSC file.

                                      1. Download Notepad C++.
                                      2. Once downloaded, right-click the .txt file and select edit with C++
                                      3. Then go file, save as, select all files in the dropdown menu, and type .GSC at the end.
                                        It should be recognised as this file once saved.

                                      You're welcome! 🙂

                                      1 Reply Last reply
                                      0
                                      • Keyhart1997undefined Keyhart1997

                                        trying this out, it looks quite well! i rewrote some code for myself to move the health hud to the bottom left instead of the middle. if you wanna test it out overwrite lines 625 to 676 with the following

                                        self endon("disconnect");
                                            flag_wait("initial_blackscreen_passed");
                                        
                                            bar_width = 130;
                                            hp_height = 6;
                                            shield_height = 3;  
                                            bg_padding = 4;
                                            y_bottom_anchor = 20; 
                                        
                                            self.hp_text = newClientHudElem(self);
                                            self.hp_text.alignX = "left";
                                            self.hp_text.alignY = "bottom";
                                            self.hp_text.horzAlign = "left";
                                            self.hp_text.vertAlign = "bottom";
                                            self.hp_text.x = 0;
                                            self.hp_text.y = y_bottom_anchor - hp_height - shield_height - bg_padding - 2; 
                                            self.hp_text.fontscale = 1.1;
                                            self.hp_text.label = &"^5Health";
                                            self.hp_text.sort = 2;
                                        
                                            self.hp_bg = newClientHudElem(self);
                                            self.hp_bg.alignX = "left";
                                            self.hp_bg.alignY = "bottom";
                                            self.hp_bg.horzAlign = "left";
                                            self.hp_bg.vertAlign = "bottom";
                                            self.hp_bg.x = 0;
                                            self.hp_bg.y = y_bottom_anchor;
                                            self.hp_bg setShader("white", bar_width + bg_padding, hp_height + shield_height + bg_padding);
                                            self.hp_bg.color = (0, 0, 0);
                                            self.hp_bg.alpha = 0.6;
                                            self.hp_bg.sort = 1;
                                        
                                            self.hp_bar = newClientHudElem(self);
                                            self.hp_bar.alignX = "left";
                                            self.hp_bar.alignY = "bottom";
                                            self.hp_bar.horzAlign = "left";
                                            self.hp_bar.vertAlign = "bottom";
                                            self.hp_bar.x = (bg_padding/2);
                                            self.hp_bar.y = y_bottom_anchor - (bg_padding/2); 
                                            self.hp_bar setShader("white", bar_width, hp_height);
                                            self.hp_bar.sort = 3;
                                        
                                            self.shield_bar = newClientHudElem(self);
                                            self.shield_bar.alignX = "left";
                                            self.shield_bar.alignY = "bottom";
                                            self.shield_bar.horzAlign = "left";
                                            self.shield_bar.vertAlign = "bottom";
                                            self.shield_bar.x = (bg_padding/2);
                                            self.shield_bar.y = y_bottom_anchor - (bg_padding/2) - hp_height; 
                                            self.shield_bar setShader("white", bar_width, shield_height);
                                            self.shield_bar.color = (0, 0.6, 1); 
                                            self.shield_bar.sort = 4;
                                        
                                        Rtd888undefined Offline
                                        Rtd888undefined Offline
                                        Rtd888
                                        wrote last edited by
                                        #23

                                        Keyhart1997 not sure if theres an error in the code or i placed it wrong. but i kept getting a syntax error while booting up a map.

                                        any ideas?

                                        Keyhart1997undefined 1 Reply Last reply
                                        0
                                        • Erkikundefined Erkik

                                          Hello everyone!

                                          After a lot of coding and testing (especially fighting with the Origins weapon mechanics lol), I am releasing a comprehensive GSC script designed to upgrade your Plutonium T6 Zombies server.

                                          This script transforms the vanilla BO2 experience into a more modern, smooth, and feature-rich game, perfect for playing with friends or hosting public lobbies. It features a custom UI, huge Quality of Life (QoL) improvements, and a robust chat command system that doesn't break the game.

                                          🌟 Key Features

                                          1. Modern Custom HUD (Warzone / Apex Style)

                                          • Replaces the old basic text counters with a sleek, unified dark panel.
                                          • Dynamic HP & Shield Bars: Features a dynamic health bar that changes color based on your HP. If you equip a shield, a slim cyan blue bar attaches directly on top of your health bar. If the shield breaks, the bar disappears seamlessly.
                                          • Unified Stats: Modernized Round Time, Game Time, and Zombie Remaining counters in the top left corner.

                                          2. Quality of Life (QoL) & Gameplay

                                          • Hitmarkers: Added satisfying multiplayer hitmarkers with sound (mpl_hit_alert) for every zombie hit.
                                          • BO3-Style Max Ammo: Grabbing a Max Ammo drop now instantly refills your current magazine too. No more reloading mid-panic!
                                          • Economy System: Players can share points using the !pay <name> <amount> command.

                                          3. Smart Scripting & Crash Prevention

                                          • Smart Shield Giver: The !shield command automatically detects the map you are playing on (Origins, Mob of the Dead, Tranzit) and gives you the correct shield to your D-pad without breaking your weapon inventory.
                                          • Origins Staff Bypass: The !staff <type> command safely gives you the upgraded staff of your choice. It correctly injects the hidden "Sekhmet's Vigor" melee weapon so the animations don't crash or bug your hands.

                                          💬 Chat Commands

                                          Public Commands:

                                          • !help - Displays available commands.
                                          • !pay <player> <amount> - Transfer points to another player (e.g., !pay juan 1000).

                                          Host / Utility Commands:

                                          • !god / !ignore (Invisibility) / !speed
                                          • !puntos / !ammo / !perks / !allperks
                                          • !pap - Instantly Pack-a-Punches the weapon in your hands.
                                          • !drop <ammo/nuke/insta/fire/blood> - Spawns a specific power-up.
                                          • !shield - Gives the map-specific shield.

                                          Admin / Easter Egg Tools:

                                          • !bring - Teleports all players to your exact location.
                                          • !killall - Wipes all alive zombies instantly.
                                          • !round <number> - Force skips the game to a specific round.

                                          Weapon Spawns:

                                          • !mk2, !galil, !an94, !ms (Mustang & Sally), !monkeys
                                          • Origins Exclusives: !staff <fire/ice/lightning/wind>

                                          ⚙️ How to Install

                                          Simply compile or drop the .gsc file into your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder and start your server. Ensure you are the host to use the restricted commands!

                                          Enjoy, and let me know if you find any bugs or have suggestions for future updates!

                                          💻 Source Code & Installation

                                          How to Install:

                                          1. Click the link above to view the code. You can copy it or click the "Download ZIP" button.
                                          2. Save the code as a .gsc file (for example, _ezz_server.gsc).
                                          3. Place the file inside your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder.
                                          4. Start your server! (Remember, you need to be the Host to use the admin/cheat commands).

                                          💻 Full Source Code

                                          Copy the code below and save it as a .gsc file (for example, _ezz_server.gsc) inside your C:\Users\USER\AppData\Local\Plutonium\storage\t6\raw\scripts\zm folder.

                                          #include maps\mp\_utility;
                                          #include common_scripts\utility;
                                          #include maps\mp\gametypes_zm\_hud_util;
                                          #include maps\mp\gametypes_zm\_hud_message;
                                          #include maps\mp\zombies\_zm_utility;
                                          #include maps\mp\zombies\_zm_score;
                                          #include maps\mp\zombies\_zm_perks;
                                          #include maps\mp\zombies\_zm_weapons;
                                          #include maps\mp\zombies\_zm_powerups;
                                          
                                          init()
                                          {
                                              // ==========================================
                                              // PRECACHE TEXTURES (Prevents crashing)
                                              // ==========================================
                                              PrecacheShader("white");
                                              PrecacheShader("damage_feedback"); 
                                          
                                              // ==========================================
                                              // SERVER CONFIGURATION
                                              // ==========================================
                                              level.perk_purchase_limit = 10; 
                                              level.host_only_commands = true; // true = Host Only, false = Everyone
                                          
                                              level thread onPlayerConnect();
                                              level thread chat_command_listener();
                                              level thread remove_quick_revive_limit(); 
                                              level thread global_hitmarker_manager(); 
                                          }
                                          
                                          onPlayerConnect()
                                          {
                                              for (;;)
                                              {
                                                  level waittill("connecting", player);
                                                  player thread onplayerspawned();
                                              }
                                          }
                                          
                                          onplayerspawned()
                                          {
                                              self endon("disconnect");
                                              
                                              // Initialize HUD and monitors only on the first spawn
                                              if(!isDefined(self.hud_initiated))
                                              {
                                                  self thread modern_counters_hud(); 
                                                  self thread ezz_bars_hud();        
                                                  self thread auto_reload_monitor(); 
                                                  self.hud_initiated = true;
                                              }
                                              
                                              for (;;)
                                              {
                                                  self waittill("spawned_player");
                                                  
                                                  self iprintln("^6[EZZ Server] ^7Welcome, ^2" + self.name);
                                                  self iprintln("Type ^3!help ^7in chat to see the commands.");
                                          
                                                  if(!isDefined(self.speed_buff_active) || self.speed_buff_active == false)
                                                  {
                                                      self setMoveSpeedScale(1.0); 
                                                  }
                                              }
                                          }
                                          
                                          // ==========================================
                                          // CHAT COMMAND SYSTEM
                                          // ==========================================
                                          chat_command_listener()
                                          {
                                              level endon("end_game");
                                          
                                              for(;;)
                                              {
                                                  level waittill("say", message, player);
                                                  message = tolower(message);
                                                  args = strtok(message, " ");
                                                  if (args.size == 0) continue;
                                                  command = args[0];
                                          
                                                  // ------------------------------------------
                                                  // PUBLIC COMMANDS
                                                  // ------------------------------------------
                                                  if(command == "!help" || command == "!cmds")
                                                  {
                                                      player iprintln("^3Public: ^7!pay <player> <points>");
                                                      player iprintln("^3Cheats: ^7!god, !ammo, !perks, !allperks, !points, !ignore");
                                                      player iprintln("^3Utility: ^7!pap, !drop, !shield, !bring, !round <n>, !killall");
                                                      player iprintln("^3Weapons: ^7!mk2, !galil, !an94, !ms, !monkeys");
                                                      player iprintln("^3Origins: ^7!staff <fire/ice/lightning/wind>");
                                                      continue;
                                                  }
                                          
                                                  if(command == "!pay" || command == "!dar")
                                                  {
                                                      if(args.size >= 3)
                                                      {
                                                          target_name = args[1];
                                                          amount = int(args[2]);
                                                          if(amount > 0 && player.score >= amount)
                                                          {
                                                              target = get_player_by_name(target_name);
                                                              if(isDefined(target) && target != player)
                                                              {
                                                                  player maps\mp\zombies\_zm_score::minus_to_player_score(amount);
                                                                  target maps\mp\zombies\_zm_score::add_to_player_score(amount);
                                                                  player iprintln("^2You sent " + amount + " points to " + target.name);
                                                                  target iprintln("^2You received " + amount + " points from " + player.name + "!");
                                                              }
                                                              else { player iprintln("^1Error: Player not found."); }
                                                          }
                                                          else { player iprintln("^1Error: Not enough points."); }
                                                      }
                                                      continue;
                                                  }
                                          
                                                  // ------------------------------------------
                                                  // HOST PERMISSION CHECK
                                                  // ------------------------------------------
                                                  if ( level.host_only_commands && !player isHost() )
                                                  {
                                                      player iprintln("^1Error: Only the Server Host can use these commands.");
                                                      continue;
                                                  }
                                          
                                                  // ------------------------------------------
                                                  // ORIGINS STAFFS FIX
                                                  // ------------------------------------------
                                                  if(command == "!staff" || command == "!baston")
                                                  {
                                                      if ( level.script != "zm_tomb" )
                                                      {
                                                          player iprintln("^1Error: Staffs are only available in Origins.");
                                                          continue;
                                                      }
                                          
                                                      if(args.size < 2)
                                                      {
                                                          player iprintln("^3Usage: ^7!staff <fire/ice/lightning/wind>");
                                                          continue;
                                                      }
                                          
                                                      staff_type = tolower(args[1]);
                                                      weapon_to_give = "none";
                                          
                                                      // Treyarch internal names mapped
                                                      if(staff_type == "fire" || staff_type == "fuego") weapon_to_give = "staff_fire_upgraded_zm";
                                                      else if(staff_type == "ice" || staff_type == "water" || staff_type == "hielo") weapon_to_give = "staff_water_upgraded_zm";
                                                      else if(staff_type == "lightning" || staff_type == "rayo") weapon_to_give = "staff_lightning_upgraded_zm";
                                                      else if(staff_type == "wind" || staff_type == "air" || staff_type == "viento") weapon_to_give = "staff_air_upgraded_zm";
                                          
                                                      if(weapon_to_give != "none")
                                                      {
                                                          // SECRET FIX: Give the revive weapon to prevent animation crash
                                                          if ( !player HasWeapon("staff_revive_zm") )
                                                          {
                                                              player GiveWeapon("staff_revive_zm");
                                                          }
                                                          
                                                          // Safe native method for weapon swap
                                                          player maps\mp\zombies\_zm_weapons::weapon_give(weapon_to_give);
                                                          player SwitchToWeapon(weapon_to_give);
                                                          
                                                          player iprintln("^2Upgraded Staff equipped instantly!");
                                                      }
                                                      else
                                                      {
                                                          player iprintln("^1Error: Invalid type. Use: fire, ice, lightning, or wind.");
                                                      }
                                                  }
                                          
                                                  // ------------------------------------------
                                                  // OTHER COMMANDS
                                                  // ------------------------------------------
                                                  else if(command == "!mk2" || command == "!mark2")
                                                  {
                                                      if ( isDefined( level.zombie_weapons["raygun_mark2_zm"] ) || isDefined( level.zombie_weapons["raygun_mark2_upgraded_zm"] ) || level.script == "zm_tomb" )
                                                      {
                                                          player maps\mp\zombies\_zm_weapons::weapon_give("raygun_mark2_zm");
                                                          player SwitchToWeapon("raygun_mark2_zm");
                                                          player iprintln("^2Ray Gun Mark II equipped!");
                                                      } else { player iprintln("^1Error: Mark II is not available on this map."); }
                                                  }
                                                  else if(command == "!bring" || command == "!traer")
                                                  {
                                                      players = get_players();
                                                      foreach(p in players)
                                                      {
                                                          if(p != player)
                                                          {
                                                              p SetOrigin(player.origin);
                                                              p SetPlayerAngles(player.angles);
                                                          }
                                                      }
                                                      player iprintln("^2All players teleported to your position!");
                                                  }
                                                  else if(command == "!killall" || command == "!matar")
                                                  {
                                                      zombies = GetAiSpeciesArray( "axis", "all" );
                                                      if(isDefined(zombies))
                                                      {
                                                          foreach(z in zombies) { z DoDamage(z.health + 666, z.origin, player); }
                                                      }
                                                      player iprintln("^2All zombies eliminated!");
                                                  }
                                                  else if(command == "!round" || command == "!ronda")
                                                  {
                                                      if(args.size > 1)
                                                      {
                                                          new_round = int(args[1]);
                                                          if(new_round > 0)
                                                          {
                                                              level.zombie_total = 0;
                                                              level.round_number = new_round - 1; 
                                                              zombies = GetAiSpeciesArray( "axis", "all" );
                                                              if(isDefined(zombies))
                                                              {
                                                                  foreach(z in zombies) { z DoDamage(z.health + 666, z.origin, player); }
                                                              }
                                                              player iprintln("^2Forcing skip to round " + new_round + "!");
                                                          }
                                                      }
                                                  }
                                                  else if(command == "!shield" || command == "!escudo")
                                                  {
                                                      shield_name = "none";
                                                      if ( level.script == "zm_tomb" ) shield_name = "tomb_shield_zm";           
                                                      else if ( level.script == "zm_prison" ) shield_name = "alcatraz_shield_zm"; 
                                                      else if ( level.script == "zm_transit" ) shield_name = "riotshield_zm";     
                                          
                                                      if(shield_name != "none")
                                                      {
                                                          player GiveWeapon( shield_name );
                                                          player SetActionSlot( 3, "weapon", shield_name ); 
                                                          player iprintln("^2Shield equipped instantly!");
                                                      }
                                                      else { player iprintln("^1Error: No shields available on this map."); }
                                                  }
                                                  else if(command == "!galil")
                                                  {
                                                      player maps\mp\zombies\_zm_weapons::weapon_give("galil_zm");
                                                      player SwitchToWeapon("galil_zm");
                                                      player iprintln("^2Galil equipped!");
                                                  }
                                                  else if(command == "!an94")
                                                  {
                                                      player maps\mp\zombies\_zm_weapons::weapon_give("an94_zm");
                                                      player SwitchToWeapon("an94_zm");
                                                      player iprintln("^2AN-94 equipped!");
                                                  }
                                                  else if(command == "!ms" || command == "!mustang")
                                                  {
                                                      player maps\mp\zombies\_zm_weapons::weapon_give("m1911_upgraded_zm");
                                                      player SwitchToWeapon("m1911_upgraded_zm");
                                                      player iprintln("^2Mustang & Sally ready!");
                                                  }
                                                  else if(command == "!monkeys" || command == "!monos")
                                                  {
                                                      player maps\mp\zombies\_zm_weapons::weapon_give("cymbal_monkey_zm");
                                                      player iprintln("^2Space Monkeys received!");
                                                  }
                                                  else if(command == "!raygun")
                                                  {
                                                      player maps\mp\zombies\_zm_weapons::weapon_give("ray_gun_zm");
                                                      player SwitchToWeapon("ray_gun_zm");
                                                      player iprintln("^2Ray Gun equipped!");
                                                  }
                                                  else if(command == "!pap")
                                                  {
                                                      current_weapon = player GetCurrentWeapon();
                                                      if(current_weapon != "none" && current_weapon != "knife_zm")
                                                      {
                                                          upgraded_weapon = player maps\mp\zombies\_zm_weapons::get_upgrade_weapon( current_weapon );
                                                          if(isDefined(upgraded_weapon))
                                                          {
                                                              player TakeWeapon(current_weapon);
                                                              player maps\mp\zombies\_zm_weapons::weapon_give(upgraded_weapon);
                                                              player iprintln("^2Weapon upgraded instantly!");
                                                          } else { player iprintln("^1This weapon cannot be upgraded."); }
                                                      }
                                                  }
                                                  else if(command == "!drop")
                                                  {
                                                      drop_type = "full_ammo"; 
                                                      if (args.size > 1)
                                                      {
                                                          if(args[1] == "ammo") drop_type = "full_ammo";
                                                          else if(args[1] == "nuke") drop_type = "nuke";
                                                          else if(args[1] == "insta") drop_type = "insta_kill";
                                                          else if(args[1] == "fire") drop_type = "fire_sale";
                                                          else if(args[1] == "blood") drop_type = "zombie_blood";
                                                      }
                                                      if ( isDefined( level.zombie_powerups ) && isDefined( level.zombie_powerups[drop_type] ) )
                                                      {
                                                          maps\mp\zombies\_zm_powerups::specific_powerup_drop( drop_type, player.origin );
                                                          player iprintln("^2Spawning Drop: " + drop_type);
                                                      } else { player iprintln("^1Drop not supported on this map."); }
                                                  }
                                                  else if(command == "!ignore")
                                                  {
                                                      if(!isDefined(player.ignoreme) || player.ignoreme == false) {
                                                          player.ignoreme = true;
                                                          player iprintln("^2Invisibility ENABLED.");
                                                      } else {
                                                          player.ignoreme = false;
                                                          player iprintln("^1Invisibility DISABLED.");
                                                      }
                                                  }
                                                  else if(command == "!speed")
                                                  {
                                                      if(!isDefined(player.speed_buff_active) || player.speed_buff_active == false)
                                                      {
                                                          player.speed_buff_active = true;
                                                          player thread maintain_speed(); 
                                                          player iprintln("^2Extra Speed ENABLED!");
                                                      } else {
                                                          player notify("stop_speed_buff"); 
                                                          player.speed_buff_active = false;
                                                          player setMoveSpeedScale(1.0);
                                                          player iprintln("^1Extra Speed DISABLED.");
                                                      }
                                                  }
                                                  else if(command == "!god")
                                                  {
                                                      if(!isDefined(player.godmode_active) || player.godmode_active == false) 
                                                      {
                                                          player.godmode_active = true;
                                                          player EnableInvulnerability(); 
                                                          player thread brute_force_godmode(); 
                                                          player iprintln("^2Godmode ENABLED!");
                                                      } else {
                                                          player notify("stop_godmode"); 
                                                          player.godmode_active = false;
                                                          player DisableInvulnerability();
                                                          player iprintln("^1Godmode DISABLED.");
                                                      }
                                                  }
                                                  else if(command == "!points" || command == "!puntos")
                                                  {
                                                      points_to_give = 50000; 
                                                      if (args.size > 1) { points_to_give = int(args[1]); }
                                                      player maps\mp\zombies\_zm_score::add_to_player_score( points_to_give );
                                                      player iprintln("^2You received " + points_to_give + " points!");
                                                  }
                                                  else if(command == "!ammo")
                                                  {
                                                      weapons = player GetWeaponsList( true );
                                                      foreach ( weapon in weapons )
                                                      {
                                                          player GiveMaxAmmo( weapon );
                                                          player SetWeaponAmmoClip( weapon, WeaponClipSize( weapon ) );
                                                      }
                                                      player iprintln("^2Max Ammo received!");
                                                  }
                                                  else if(command == "!perks")
                                                  {
                                                      player maps\mp\zombies\_zm_perks::give_perk( "specialty_armorvest", false );   
                                                      player maps\mp\zombies\_zm_perks::give_perk( "specialty_longersprint", false ); 
                                                      player maps\mp\zombies\_zm_perks::give_perk( "specialty_fastreload", false );   
                                                      player maps\mp\zombies\_zm_perks::give_perk( "specialty_quickrevive", false );  
                                                      player iprintln("^24 Basic Perks received!");
                                                  }
                                                  else if(command == "!allperks")
                                                  {
                                                      lista_perks = [];
                                                      lista_perks[0] = "specialty_armorvest";               
                                                      lista_perks[1] = "specialty_quickrevive";             
                                                      lista_perks[2] = "specialty_fastreload";              
                                                      lista_perks[3] = "specialty_rof";                     
                                                      lista_perks[4] = "specialty_longersprint";            
                                                      lista_perks[5] = "specialty_flakjacket";              
                                                      lista_perks[6] = "specialty_deadshot";                
                                                      lista_perks[7] = "specialty_additionalprimaryweapon"; 
                                                      lista_perks[8] = "specialty_grenadepulldeath";        
                                                      
                                                      for ( i = 0; i < lista_perks.size; i++ )
                                                      {
                                                          if ( !player hasPerk( lista_perks[i] ) )
                                                          {
                                                              player maps\mp\zombies\_zm_perks::give_perk( lista_perks[i], false );
                                                              wait 0.1; 
                                                          }
                                                      }
                                                      player iprintln("^2Full Perk arsenal received!");
                                                  }
                                              }
                                          }
                                          
                                          // ==========================================
                                          // QoL FEATURES & UTILITIES
                                          // ==========================================
                                          
                                          // Get player by name (For !pay command)
                                          get_player_by_name(name)
                                          {
                                              players = get_players();
                                              foreach(p in players)
                                              {
                                                  if(issubstr(tolower(p.name), tolower(name))) return p;
                                              }
                                              return undefined;
                                          }
                                          
                                          // Auto-Reload on Max Ammo pickup
                                          auto_reload_monitor()
                                          {
                                              self endon("disconnect");
                                              for(;;)
                                              {
                                                  self waittill( "zmb_max_ammo" ); 
                                                  weapons = self GetWeaponsList(true);
                                                  foreach(weapon in weapons)
                                                  {
                                                      self SetWeaponAmmoClip(weapon, WeaponClipSize(weapon));
                                                  }
                                              }
                                          }
                                          
                                          // Global Hitmarker Manager
                                          global_hitmarker_manager()
                                          {
                                              level endon("end_game");
                                              for(;;)
                                              {
                                                  zombies = GetAiSpeciesArray("axis", "all");
                                                  foreach(z in zombies)
                                                  {
                                                      if(!isDefined(z.has_hitmarker_monitor))
                                                      {
                                                          z.has_hitmarker_monitor = true;
                                                          z thread monitor_zombie_damage();
                                                      }
                                                  }
                                                  wait 1; 
                                              }
                                          }
                                          
                                          // Monitor damage for each zombie
                                          monitor_zombie_damage()
                                          {
                                              self endon("death");
                                              for(;;)
                                              {
                                                  self waittill("damage", amount, attacker, dir, point, type);
                                                  if(isDefined(attacker) && isPlayer(attacker))
                                                  {
                                                      attacker thread show_hitmarker();
                                                  }
                                              }
                                          }
                                          
                                          // Display hitmarker and play sound
                                          show_hitmarker()
                                          {
                                              if(!isDefined(self.hitmarker_hud))
                                              {
                                                  self.hitmarker_hud = newClientHudElem(self);
                                                  self.hitmarker_hud.alignX = "center";
                                                  self.hitmarker_hud.alignY = "middle";
                                                  self.hitmarker_hud.horzAlign = "center";
                                                  self.hitmarker_hud.vertAlign = "middle";
                                                  self.hitmarker_hud.alpha = 0;
                                                  self.hitmarker_hud setShader("damage_feedback", 24, 48);
                                              }
                                              
                                              self.hitmarker_hud.alpha = 1;
                                              self playlocalsound("mpl_hit_alert"); 
                                              self.hitmarker_hud fadeOverTime(0.5);
                                              self.hitmarker_hud.alpha = 0;
                                          }
                                          
                                          // ==========================================
                                          // BACKGROUND FUNCTIONS
                                          // ==========================================
                                          brute_force_godmode()
                                          {
                                              self endon("disconnect");
                                              self endon("stop_godmode");
                                              level endon("end_game");
                                          
                                              for(;;)
                                              {
                                                  self.health = self.maxhealth;
                                                  wait 0.05; 
                                              }
                                          }
                                          
                                          remove_quick_revive_limit()
                                          {
                                              level endon("end_game");
                                              for(;;)
                                              {
                                                  if ( isDefined( level.solo_lives_given ) ) { level.solo_lives_given = 0; }
                                                  wait 1; 
                                              }
                                          }
                                          
                                          maintain_speed()
                                          {
                                              self endon("disconnect");
                                              self endon("stop_speed_buff"); 
                                              level endon("end_game");
                                          
                                              for(;;)
                                              {
                                                  if(self getMoveSpeedScale() < 1.5) { self setMoveSpeedScale(1.5); }
                                                  wait 0.1; 
                                              }
                                          }
                                          
                                          // ==========================================
                                          // UNIFIED MODERN HUD
                                          // ==========================================
                                          
                                          modern_counters_hud()
                                          {
                                              self endon("disconnect");
                                              flag_wait("initial_blackscreen_passed");
                                          
                                              self.panel_bg = newClientHudElem(self);
                                              self.panel_bg.alignX = "left";
                                              self.panel_bg.alignY = "top";
                                              self.panel_bg.horzAlign = "user_left";
                                              self.panel_bg.vertAlign = "user_top";
                                              self.panel_bg.x = 5;
                                              self.panel_bg.y = 5;
                                              self.panel_bg setShader("white", 100, 52); 
                                              self.panel_bg.color = (0, 0, 0);
                                              self.panel_bg.alpha = 0.6;
                                              self.panel_bg.sort = 1;
                                          
                                              self.panel_line = newClientHudElem(self);
                                              self.panel_line.alignX = "left";
                                              self.panel_line.alignY = "top";
                                              self.panel_line.horzAlign = "user_left";
                                              self.panel_line.vertAlign = "user_top";
                                              self.panel_line.x = 5;
                                              self.panel_line.y = 5;
                                              self.panel_line setShader("white", 3, 52); 
                                              self.panel_line.color = (0, 0.6, 1);
                                              self.panel_line.alpha = 1;
                                              self.panel_line.sort = 2;
                                          
                                              self.zombie_text = newClientHudElem(self);
                                              self.zombie_text.alignX = "left";
                                              self.zombie_text.alignY = "top";
                                              self.zombie_text.horzAlign = "user_left";
                                              self.zombie_text.vertAlign = "user_top";
                                              self.zombie_text.x = 12;
                                              self.zombie_text.y = 8;
                                              self.zombie_text.fontscale = 1.2;
                                              self.zombie_text.color = (1, 1, 1);
                                              self.zombie_text.label = &"Zombies: ^5"; 
                                              self.zombie_text.sort = 3;
                                          
                                              self.round_time_text = newClientHudElem(self);
                                              self.round_time_text.alignX = "left";
                                              self.round_time_text.alignY = "top";
                                              self.round_time_text.horzAlign = "user_left";
                                              self.round_time_text.vertAlign = "user_top";
                                              self.round_time_text.x = 12;
                                              self.round_time_text.y = 23;
                                              self.round_time_text.fontscale = 1.2;
                                              self.round_time_text.color = (1, 1, 1);
                                              self.round_time_text.label = &"Round: ^5";
                                              self.round_time_text.sort = 3;
                                          
                                              self.game_time_text = newClientHudElem(self);
                                              self.game_time_text.alignX = "left";
                                              self.game_time_text.alignY = "top";
                                              self.game_time_text.horzAlign = "user_left";
                                              self.game_time_text.vertAlign = "user_top";
                                              self.game_time_text.x = 12;
                                              self.game_time_text.y = 38;
                                              self.game_time_text.fontscale = 1.2;
                                              self.game_time_text.color = (1, 1, 1);
                                              self.game_time_text.label = &"Game: ^5";
                                              self.game_time_text.sort = 3;
                                          
                                              self.game_time_text setTimerUp(0);
                                              self thread update_zombie_counter_modern();
                                              self thread update_round_timer_modern();
                                          }
                                          
                                          update_zombie_counter_modern()
                                          {
                                              self endon("disconnect");
                                              for (;;)
                                              {
                                                  self.zombie_text setvalue(level.zombie_total + get_current_zombie_count());
                                                  wait 0.05;
                                              }
                                          }
                                          
                                          update_round_timer_modern()
                                          {
                                              self endon("disconnect");
                                              for (;;)
                                              {
                                                  self.round_time_text setTimerUp(0);
                                                  start_time = GetTime() / 1000;
                                                  level waittill("end_of_round");
                                          
                                                  end_time = GetTime() / 1000;
                                                  time_elapsed = end_time - start_time;
                                          
                                                  self.round_time_text setTimer(time_elapsed);
                                              }
                                          }
                                          
                                          ezz_bars_hud()
                                          {
                                              self endon("disconnect");
                                              flag_wait("initial_blackscreen_passed");
                                          
                                              bar_width = 130;
                                              hp_height = 8;
                                              shield_height = 3;  
                                              bg_padding = 4;
                                              y_bottom_anchor = -40; 
                                          
                                              self.hp_text = newClientHudElem(self);
                                              self.hp_text.alignX = "center";
                                              self.hp_text.alignY = "bottom";
                                              self.hp_text.horzAlign = "center";
                                              self.hp_text.vertAlign = "bottom";
                                              self.hp_text.x = 0;
                                              self.hp_text.y = y_bottom_anchor - hp_height - shield_height - bg_padding - 2; 
                                              self.hp_text.fontscale = 1.1;
                                              self.hp_text.label = &"^5HP / SHIELD";
                                              self.hp_text.sort = 2;
                                          
                                              self.hp_bg = newClientHudElem(self);
                                              self.hp_bg.alignX = "center";
                                              self.hp_bg.alignY = "bottom";
                                              self.hp_bg.horzAlign = "center";
                                              self.hp_bg.vertAlign = "bottom";
                                              self.hp_bg.x = 0;
                                              self.hp_bg.y = y_bottom_anchor;
                                              self.hp_bg setShader("white", bar_width + bg_padding, hp_height + shield_height + bg_padding);
                                              self.hp_bg.color = (0, 0, 0);
                                              self.hp_bg.alpha = 0.6;
                                              self.hp_bg.sort = 1;
                                          
                                              self.hp_bar = newClientHudElem(self);
                                              self.hp_bar.alignX = "left";
                                              self.hp_bar.alignY = "bottom";
                                              self.hp_bar.horzAlign = "center";
                                              self.hp_bar.vertAlign = "bottom";
                                              self.hp_bar.x = -(bar_width/2);
                                              self.hp_bar.y = y_bottom_anchor - (bg_padding/2); 
                                              self.hp_bar setShader("white", bar_width, hp_height);
                                              self.hp_bar.sort = 3;
                                          
                                              self.shield_bar = newClientHudElem(self);
                                              self.shield_bar.alignX = "left";
                                              self.shield_bar.alignY = "bottom";
                                              self.shield_bar.horzAlign = "center";
                                              self.shield_bar.vertAlign = "bottom";
                                              self.shield_bar.x = -(bar_width/2);
                                              self.shield_bar.y = y_bottom_anchor - (bg_padding/2) - hp_height; 
                                              self.shield_bar setShader("white", bar_width, shield_height);
                                              self.shield_bar.color = (0, 0.6, 1); 
                                              self.shield_bar.sort = 4;
                                          
                                              for(;;)
                                              {
                                                  current_health = self.health;
                                                  max_health = self.maxhealth;
                                                  
                                                  if(max_health <= 0) max_health = 100;
                                                  health_percent = current_health / max_health;
                                                  
                                                  hp_visual_width = int(bar_width * health_percent);
                                                  if(hp_visual_width < 1) hp_visual_width = 1; 
                                          
                                                  if (health_percent >= 1.0) {
                                                      self.hp_bar.color = (0, 1, 0); 
                                                      self.hp_bar.alpha = 1;
                                                  } else if (health_percent > 0.4) {
                                                      self.hp_bar.color = (1, 1, 0); 
                                                      self.hp_bar.alpha = 1;
                                                  } else {
                                                      self.hp_bar.color = (1, 0, 0); 
                                                      self.hp_bar.alpha = (int(GetTime() / 250) % 2) ? 0.3 : 1; 
                                                  }
                                          
                                                  self.hp_bar setShader("white", hp_visual_width, hp_height);
                                          
                                                  if ( self HasWeapon("riotshield_zm") || self HasWeapon("alcatraz_shield_zm") || self HasWeapon("tomb_shield_zm") )
                                                  {
                                                      self.shield_bar.alpha = 1;
                                                  }
                                                  else
                                                  {
                                                      self.shield_bar.alpha = 0;
                                                  }
                                          
                                                  wait 0.05; 
                                              }
                                          }
                                          
                                          ThisHurdleundefined Offline
                                          ThisHurdleundefined Offline
                                          ThisHurdle
                                          wrote last edited by ThisHurdle
                                          #24

                                          Erkik said:

                                          _ezz_server.gsc

                                          it works, i got it, thank you, the source code
                                          i put in notepad and save it as the name you said

                                          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


                                          • 1
                                          • 2
                                          • Login

                                          • Don't have an account? Register

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