Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. BO1 Modding Releases & Resources
  3. [ZM][RELEASE][PLUTO SCRIPT] Backspeed + game and round timer patch

[ZM][RELEASE][PLUTO SCRIPT] Backspeed + game and round timer patch

Scheduled Pinned Locked Moved BO1 Modding Releases & Resources
17 Posts 10 Posters 3.6k Views 2 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.
  • AlexInVrundefined Offline
    AlexInVrundefined Offline
    AlexInVr
    wrote on last edited by
    #1

    After a request on Discord, I decided to release the script for everyone to use, because a lot of patches are being gatekept or not a lot of patchers release their stuff.

    It's a pluto only version but I have a steam version also that I can release, it's just harder to customize if you don't know what you are doing:

    Install instructions:

    • Turn on file extensions in your windows explorer, see this link if you don't know how

    • Press windows + r, a dialog box will open

    • Inside it type in %LOCALAPPDATA%\Plutonium\storage\t5\scripts\sp

    • Create a folder with the name of the map you want to play

    • Kino: zombie_theater

    • Asc: zombie_cosmodrome

    • Shang: zombie_temple

    • Moon: zombie_moon

    • Cotd: zombie_coast

    Waw maps:

    • Nacht: zombie_cod5_prototype

    • Verruckt: zombie_cod5_asylum

    • Shi no: zombie_cod5_sumpf

    • Der riese: zombie_cod5_factory

    • Create a new file with the name of your choice, and make its file extension .gsc (example: patch.gsc)

    • copy and paste the code inside your gsc file

    launch your game and enjoy !

    I did not include the splash texts as some people don't like that, and I can understand, I'd just appreciate if you could leave a like on the post if my patch helped you 🙂

    #include maps\_utility;
    #include common_scripts\utility;
    #include maps\_zombiemode_utility;
    
    
    init()
    {
            if ( GetDvar( #"zombiemode" ) == "1" )
            {
    			replacefunc(maps\_zombiemode::round_think, ::custom_round_think);
                level thread onPlayerConnect();
            }
    
    }
    
    
    custom_round_think()
    {
    	for( ;; )
    	{
    		//////////////////////////////////////////
    		//designed by prod DT#36173
    		maxreward = 50 * level.round_number;
    		if ( maxreward > 500 )
    			maxreward = 500;
    		level.zombie_vars["rebuild_barrier_cap_per_round"] = maxreward;
    		//////////////////////////////////////////
    
    		level.pro_tips_start_time = GetTime();
    		level.zombie_last_run_time = GetTime();	// Resets the last time a zombie ran
    
            level thread maps\_zombiemode_audio::change_zombie_music( "round_start" );
    		maps\_zombiemode::chalk_one_up();
    		//		round_text( &"ZOMBIE_ROUND_BEGIN" );
    
    		maps\_zombiemode_powerups::powerup_round_start();
    
    		players = get_players();
    		array_thread( players, maps\_zombiemode_blockers::rebuild_barrier_reward_reset );
    
    		//array_thread( players, maps\_zombiemode_ability::giveHardpointItems );
    
    		level thread maps\_zombiemode::award_grenades_for_survivors();
    
    		bbPrint( "zombie_rounds: round %d player_count %d", level.round_number, players.size );
    
    		level.round_start_time = GetTime();
    		level thread [[level.round_spawn_func]]();
    
    		level notify( "start_of_round" );
    
    		[[level.round_wait_func]]();
    
    		level.first_round = false;
    		level notify( "end_of_round" );
    
    		level thread maps\_zombiemode_audio::change_zombie_music( "round_end" );
    
    		UploadStats();
    
    		if ( 1 != players.size )
    		{
    			level thread maps\_zombiemode::spectators_respawn();
    			//level thread last_stand_revive();
    		}
    
    		//		round_text( &"ZOMBIE_ROUND_END" );
    		level maps\_zombiemode::chalk_round_over();
    
    		// here's the difficulty increase over time area
    		timer = level.zombie_vars["zombie_spawn_delay"];
    		if ( timer > 0.08 )
    		{
    			level.zombie_vars["zombie_spawn_delay"] = timer * 0.95;
    		}
    		else if ( timer < 0.08 )
    		{
    			level.zombie_vars["zombie_spawn_delay"] = 0.08;
    		}
    
    		//
    		// Increase the zombie move speed
    		level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
    
    		level.round_number++;
    
    		level notify( "between_round_over" );
    	}
    }
    
    
    
    game_timer()
    {
    	hud = create_simple_hud( self );
    	hud.foreground = true;
    	hud.sort = 1;
    	hud.hidewheninmenu = true;
    	hud.alignX = "left";
    	hud.alignY = "top";
    	hud.horzAlign = "user_left";
    	hud.vertAlign = "user_top";
    	hud.alpha = 1;
    	//=======================CUSTOM SECTION==============
    	hud.x = hud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right.
    	hud.y = hud.y + 35; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up.
    	hud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like
    	hud.color =  (255, 255, 255); //This is for the color using RGB, use a website for that
    	//=========================================
    	time_text = string(GetTime() / 1000);
    	flag_wait("all_players_spawned");
    	while (1){
    		hud setTimerUp(1);
    		hud setTimer(time_text);
    	}
    
    }
    
    round_timer()
    {
    	timerHud = create_simple_hud( self );
    	timerHud.foreground = true;
    	timerHud.sort = 1;
    	timerHud.hidewheninmenu = true;
    	timerHud.alignX = "left";
    	timerHud.alignY = "top";
    	timerHud.horzAlign = "user_left";
    	timerHud.vertAlign = "user_top";
    	//=======================CUSTOM SECTION==============
    	timerHud.x = timerHud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right.
    	timerHud.y = timerHud.y + 45; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up.
    	timerHud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like
    	timerHud.color =  (255, 0, 0); //This is for the color using RGB, use a website for that
    	//=========================================
    	timerHud.alpha = 1;
    	flag_wait("all_players_spawned");
    	for (;;){
    		start_time = GetTime() / 1000;
    		timerHud setTimerUp(0);
    		level waittill("end_of_round");
    		end_time = GetTime() / 1000;
    		time = end_time - start_time;
    		set_time_frozen(timerHud, time);
    	}
    
    }
    
    set_time_frozen(hud, time)
    {
    	level endon("start_of_round");
    	time = time - 0.1;
    	while(1)
    	{
    		hud settimer(time);
    		wait(0.5);
    	}
    }
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill ("connecting", player);
    		player thread onPlayerSpawned();
    	}
    }
    
    onPlayerSpawned()
    {
    	for(;;)
    	{
    		self waittill("spawned_player");
    		self thread game_timer(); //Thread the global timer
    		self thread round_timer(); //Thread the round timer
    		self SetClientDvars("player_backSpeedScale", "1", "player_strafeSpeedScale", "1"); //Patch speed to be same as console
    	}
    }
    
    haki_markusundefined 1 Reply Last reply
    2
    • bhfffundefined bhfff referenced this topic on
    • AceyWacyundefined Offline
      AceyWacyundefined Offline
      AceyWacy
      wrote on last edited by
      #2

      works exactly as intended with no need of a download 👍

      1 Reply Last reply
      0
      • Asmotoanicoundefined Offline
        Asmotoanicoundefined Offline
        Asmotoanico
        wrote on last edited by
        #3

        Would this work for coop games? Shall all of us have the patch installed?

        Resxtundefined 1 Reply Last reply
        0
        • Asmotoanicoundefined Asmotoanico

          Would this work for coop games? Shall all of us have the patch installed?

          Resxtundefined Offline
          Resxtundefined Offline
          Resxt
          Plutonium Staff
          wrote on last edited by
          #4

          Asmotoanico scripts are server side so only the server can load them, so here the server is the host

          Asmotoanicoundefined 1 Reply Last reply
          0
          • Resxtundefined Resxt

            Asmotoanico scripts are server side so only the server can load them, so here the server is the host

            Asmotoanicoundefined Offline
            Asmotoanicoundefined Offline
            Asmotoanico
            wrote on last edited by
            #5

            Resxt Oh, nice. Thanks for the answer ❤

            1 Reply Last reply
            0
            • Ktuluuundefined Offline
              Ktuluuundefined Offline
              Ktuluu
              wrote on last edited by
              #6

              Script works perfectly! Just wondering what the "custom Round Think" lines do? (lines 17-87) and if they're essential or just QoL fixes (Not very knowledgeable on these kinds of things so apologies if this is a silly question)

              AlexInVrundefined 1 Reply Last reply
              0
              • Ktuluuundefined Offline
                Ktuluuundefined Offline
                Ktuluu
                wrote on last edited by
                #7

                I was also able to move the timer location to be in the top left corner for people with 1080p monitors. Ive never used a 1440p monitor so you might have to tweak a little more for those

                For the game timer fix the X-Y on lines 105 & 106 to:

                hud.x = hud.x - 1;
                hud.y = hud.y + -5;

                For the Round timer fix the X-Y on lines 130 & 131 to:

                hud.x = hud.x - 1;
                hud.y = hud.y + 9;

                I would also change the fontscale from 1.2 to 1.6 on lines 107 & 132 just so the timers can be a tad bigger.

                I also changed "settimerup" from 1 to 0 on line 113 just so the timers can start together (Just personal preference)

                The timer should now look like the photo I shared.20241006150607_1.jpg

                1 Reply Last reply
                1
                • Ktuluuundefined Ktuluu

                  Script works perfectly! Just wondering what the "custom Round Think" lines do? (lines 17-87) and if they're essential or just QoL fixes (Not very knowledgeable on these kinds of things so apologies if this is a silly question)

                  AlexInVrundefined Offline
                  AlexInVrundefined Offline
                  AlexInVr
                  wrote on last edited by
                  #8

                  @Hulkster So basically the custom round think is just so I could add in the notifiers for the round timer, I basically copy pasted the regular method, and added 2 notifiers lmao

                  Ktuluuundefined 1 Reply Last reply
                  1
                  • AlexInVrundefined AlexInVr

                    @Hulkster So basically the custom round think is just so I could add in the notifiers for the round timer, I basically copy pasted the regular method, and added 2 notifiers lmao

                    Ktuluuundefined Offline
                    Ktuluuundefined Offline
                    Ktuluu
                    wrote on last edited by
                    #9

                    AlexInVr Ohh I see. Thanks for clarifying! And thank you for the script as well!

                    AlexInVrundefined 1 Reply Last reply
                    0
                    • Ktuluuundefined Ktuluu

                      AlexInVr Ohh I see. Thanks for clarifying! And thank you for the script as well!

                      AlexInVrundefined Offline
                      AlexInVrundefined Offline
                      AlexInVr
                      wrote on last edited by
                      #10

                      @Hulkster you're welcome man, enjoy !

                      1 Reply Last reply
                      1
                      • Claaarkundefined Offline
                        Claaarkundefined Offline
                        Claaark
                        wrote on last edited by
                        #11

                        and for five is there a name for the folder?

                        Sugah2undefined 1 Reply Last reply
                        0
                        • asherisisundefined Offline
                          asherisisundefined Offline
                          asherisis
                          wrote on last edited by
                          #12

                          Is there a script for just backspeed/strafe fix?

                          AlexInVrundefined 1 Reply Last reply
                          0
                          • AlexInVrundefined AlexInVr

                            After a request on Discord, I decided to release the script for everyone to use, because a lot of patches are being gatekept or not a lot of patchers release their stuff.

                            It's a pluto only version but I have a steam version also that I can release, it's just harder to customize if you don't know what you are doing:

                            Install instructions:

                            • Turn on file extensions in your windows explorer, see this link if you don't know how

                            • Press windows + r, a dialog box will open

                            • Inside it type in %LOCALAPPDATA%\Plutonium\storage\t5\scripts\sp

                            • Create a folder with the name of the map you want to play

                            • Kino: zombie_theater

                            • Asc: zombie_cosmodrome

                            • Shang: zombie_temple

                            • Moon: zombie_moon

                            • Cotd: zombie_coast

                            Waw maps:

                            • Nacht: zombie_cod5_prototype

                            • Verruckt: zombie_cod5_asylum

                            • Shi no: zombie_cod5_sumpf

                            • Der riese: zombie_cod5_factory

                            • Create a new file with the name of your choice, and make its file extension .gsc (example: patch.gsc)

                            • copy and paste the code inside your gsc file

                            launch your game and enjoy !

                            I did not include the splash texts as some people don't like that, and I can understand, I'd just appreciate if you could leave a like on the post if my patch helped you 🙂

                            #include maps\_utility;
                            #include common_scripts\utility;
                            #include maps\_zombiemode_utility;
                            
                            
                            init()
                            {
                                    if ( GetDvar( #"zombiemode" ) == "1" )
                                    {
                            			replacefunc(maps\_zombiemode::round_think, ::custom_round_think);
                                        level thread onPlayerConnect();
                                    }
                            
                            }
                            
                            
                            custom_round_think()
                            {
                            	for( ;; )
                            	{
                            		//////////////////////////////////////////
                            		//designed by prod DT#36173
                            		maxreward = 50 * level.round_number;
                            		if ( maxreward > 500 )
                            			maxreward = 500;
                            		level.zombie_vars["rebuild_barrier_cap_per_round"] = maxreward;
                            		//////////////////////////////////////////
                            
                            		level.pro_tips_start_time = GetTime();
                            		level.zombie_last_run_time = GetTime();	// Resets the last time a zombie ran
                            
                                    level thread maps\_zombiemode_audio::change_zombie_music( "round_start" );
                            		maps\_zombiemode::chalk_one_up();
                            		//		round_text( &"ZOMBIE_ROUND_BEGIN" );
                            
                            		maps\_zombiemode_powerups::powerup_round_start();
                            
                            		players = get_players();
                            		array_thread( players, maps\_zombiemode_blockers::rebuild_barrier_reward_reset );
                            
                            		//array_thread( players, maps\_zombiemode_ability::giveHardpointItems );
                            
                            		level thread maps\_zombiemode::award_grenades_for_survivors();
                            
                            		bbPrint( "zombie_rounds: round %d player_count %d", level.round_number, players.size );
                            
                            		level.round_start_time = GetTime();
                            		level thread [[level.round_spawn_func]]();
                            
                            		level notify( "start_of_round" );
                            
                            		[[level.round_wait_func]]();
                            
                            		level.first_round = false;
                            		level notify( "end_of_round" );
                            
                            		level thread maps\_zombiemode_audio::change_zombie_music( "round_end" );
                            
                            		UploadStats();
                            
                            		if ( 1 != players.size )
                            		{
                            			level thread maps\_zombiemode::spectators_respawn();
                            			//level thread last_stand_revive();
                            		}
                            
                            		//		round_text( &"ZOMBIE_ROUND_END" );
                            		level maps\_zombiemode::chalk_round_over();
                            
                            		// here's the difficulty increase over time area
                            		timer = level.zombie_vars["zombie_spawn_delay"];
                            		if ( timer > 0.08 )
                            		{
                            			level.zombie_vars["zombie_spawn_delay"] = timer * 0.95;
                            		}
                            		else if ( timer < 0.08 )
                            		{
                            			level.zombie_vars["zombie_spawn_delay"] = 0.08;
                            		}
                            
                            		//
                            		// Increase the zombie move speed
                            		level.zombie_move_speed = level.round_number * level.zombie_vars["zombie_move_speed_multiplier"];
                            
                            		level.round_number++;
                            
                            		level notify( "between_round_over" );
                            	}
                            }
                            
                            
                            
                            game_timer()
                            {
                            	hud = create_simple_hud( self );
                            	hud.foreground = true;
                            	hud.sort = 1;
                            	hud.hidewheninmenu = true;
                            	hud.alignX = "left";
                            	hud.alignY = "top";
                            	hud.horzAlign = "user_left";
                            	hud.vertAlign = "user_top";
                            	hud.alpha = 1;
                            	//=======================CUSTOM SECTION==============
                            	hud.x = hud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right.
                            	hud.y = hud.y + 35; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up.
                            	hud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like
                            	hud.color =  (255, 255, 255); //This is for the color using RGB, use a website for that
                            	//=========================================
                            	time_text = string(GetTime() / 1000);
                            	flag_wait("all_players_spawned");
                            	while (1){
                            		hud setTimerUp(1);
                            		hud setTimer(time_text);
                            	}
                            
                            }
                            
                            round_timer()
                            {
                            	timerHud = create_simple_hud( self );
                            	timerHud.foreground = true;
                            	timerHud.sort = 1;
                            	timerHud.hidewheninmenu = true;
                            	timerHud.alignX = "left";
                            	timerHud.alignY = "top";
                            	timerHud.horzAlign = "user_left";
                            	timerHud.vertAlign = "user_top";
                            	//=======================CUSTOM SECTION==============
                            	timerHud.x = timerHud.x - -720; //This is for the position on X axis, decrease this number to move it further left, and increase it to go right.
                            	timerHud.y = timerHud.y + 45; //This is for the position on Y axis, decrease this number to move it down, and increase it to go up.
                            	timerHud.fontscale = 1.2; //This is for the font size, increase it by whatever you want and see what you like
                            	timerHud.color =  (255, 0, 0); //This is for the color using RGB, use a website for that
                            	//=========================================
                            	timerHud.alpha = 1;
                            	flag_wait("all_players_spawned");
                            	for (;;){
                            		start_time = GetTime() / 1000;
                            		timerHud setTimerUp(0);
                            		level waittill("end_of_round");
                            		end_time = GetTime() / 1000;
                            		time = end_time - start_time;
                            		set_time_frozen(timerHud, time);
                            	}
                            
                            }
                            
                            set_time_frozen(hud, time)
                            {
                            	level endon("start_of_round");
                            	time = time - 0.1;
                            	while(1)
                            	{
                            		hud settimer(time);
                            		wait(0.5);
                            	}
                            }
                            
                            onPlayerConnect()
                            {
                            	for(;;)
                            	{
                            		level waittill ("connecting", player);
                            		player thread onPlayerSpawned();
                            	}
                            }
                            
                            onPlayerSpawned()
                            {
                            	for(;;)
                            	{
                            		self waittill("spawned_player");
                            		self thread game_timer(); //Thread the global timer
                            		self thread round_timer(); //Thread the round timer
                            		self SetClientDvars("player_backSpeedScale", "1", "player_strafeSpeedScale", "1"); //Patch speed to be same as console
                            	}
                            }
                            
                            haki_markusundefined Offline
                            haki_markusundefined Offline
                            haki_markus
                            wrote on last edited by
                            #13
                            This post is deleted!
                            1 Reply Last reply
                            0
                            • asherisisundefined asherisis

                              Is there a script for just backspeed/strafe fix?

                              AlexInVrundefined Offline
                              AlexInVrundefined Offline
                              AlexInVr
                              wrote on last edited by
                              #14

                              asherisis open console:

                              player_strafeSpeedScale 1

                              player_backSpeedScale 1

                              1 Reply Last reply
                              0
                              • Claaarkundefined Claaark

                                and for five is there a name for the folder?

                                Sugah2undefined Offline
                                Sugah2undefined Offline
                                Sugah2
                                wrote on last edited by
                                #15
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • Hatbat133undefined Offline
                                  Hatbat133undefined Offline
                                  Hatbat133
                                  wrote on last edited by
                                  #16

                                  what do i do with the folder i created? do i put the gsc file in it?

                                  1 Reply Last reply
                                  0
                                  • Hatbat133undefined Offline
                                    Hatbat133undefined Offline
                                    Hatbat133
                                    wrote on last edited by
                                    #17

                                    nvm i got it

                                    1 Reply Last reply
                                    0
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes


                                    • Login

                                    • Don't have an account? Register

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