Adjust respawns thoughout Survival match to open up a variety of play styles that can make Survival feel more like wave survival, randomized checkpoint, hunt, or survival with player respawns.
The issue with survival for me is that it provides little incentive to kill bots. They respawn faster than you can kill them and they don't decrease in count unless you set DPR high. This mod is meant to provide incentive to kill bots by providing a growing number of bots that respawn slower or a higher number of finite bots for 2 waves. This way players can keep up with the numbers and must to survive later in the round. Players will have to hold their ground to whittle down enemy forces and progress once bot levels are manageable. This is especially helpful with low player counts. An additional motivation is provided in FortuneSoldier, which rewards players with supply points for kills and allows more scavenging slots and enables players to create spawn points to avoid bots swarming spawn zones.
Survival gets insane with a quickly respawning bots and with player respawns gets very messy as bots will be swarming the respawn point. This is an alternative way of scaling difficulty that scales respawn time. This can be set alongside the vanilla bot increase on objective, and kept to a higher number of bots as they wont reach high numbers unless the players aren't killing them. Note that bots are respawned in a queue, so this time sets how fast the front bot in the queue will take to respawn, then the next one in the queue will also wait this time again and so on. If RespawnDelay is 10 and 5 bots are waiting to respawn, it will take 50 seconds to spawn them all. Setting this to something as high as 20 and you may never see some bots at all as the queue is paused whenever players are on objectives. The difference between each second in RespawnDelay is large.
Additionally, more flexibility is added with the ability to speed spawn amounts of bots after captures. This way the RespawnDelay can be kept high to incentivize players to keep bot count down, while making sure that bot count is not zero. This provides more of a finite bot feel like checkpoint, but continuously grows if not addressed. More control is added with the option for random ratios to spawn after capture and a randomly occurring second wave sometime after an objective capture. Separate control over bot spawns is opened up for extraction as well for those that feel the chopper makes the final counterattack to easy. This can be set to add an additional wave and lower the respawn delay for bots during this period. Bot counts will still respawn up to what's allowed by the bot count set by MinimumEnemies and MaximumEnemies in Survival Settings. To avoid issues of player spawns getting swarmed, bSaveProgress can be used instead of player respawns, because with infinite bot counts a respawn is essentially a objective reset.
All variables are more or less one of three kinds:
RespawnDelay is the standard delay to respawn a single bot between objectives. 2 bots will take 2xRespawnDelay to spawn.
Ratios are for speed spawning a certain amount of bots at start, after objectives, or during extraciton.
RatioDelay is to set how long after events the ratio of bots will be spawned to enable players to loadup.
You can configure this in one of two ways:
1. Set bot count at ~20 and ratios at ~0.4 and respawnddelays to < 10 . This will make a slow decrease in bots with progression.
2. Set bot count very high at ~40 and set ratios ~0.8, but keep respawndelays very high closer to 15. This will make the progression impozsibke until bots are eliminated.
Mutator = ScaleSurvival
Bot respawn delay is found by the following algorithm:
BotRespawnDelay = StartRespawnDelay + (CompletedObjectives/TotalObjectives)*(FinalRespawnDelay-StartRespawnDelay)
Added Config Variables
||Bot respawn delay at start of match. Default is 18.
Bot respawn delay at end of match prior to extraction. Default is 12.
Bot respawn delay after capturing the extraction point for the counter attack. Default is 6.
||Bot respawn delay for the second wave of the extraction. This is after the initial speed spawn of second wave during extraction. Default is 1.0
||What ratio of total bots to speed respawn after objective captured. Default is 0.8
||What ratio of total bots to speed respawn after extraction objective is captured. Default is 0.5
||What ratio of total bots to speed respawn once the second wave of the extraction begins. Default is 0.4
||What ratio of total bots to speed spawn at start of round. Default is 0.6
||Number of seconds to delay speed spawning bots after an objective is taken. This is used for players to get their weapons and to avoid being immediately swarmed. Default is 15
||How long into the extraction before speed spawning a second wave. Around 45 seconds is when the chopper arrives so 45 seconds is the default value to step up the difficulty. Default is 45.0
||Saves progress and skips completed objectives after defeat. Default is 1.
||If set to 1, then this replaces SpawnRatioAtStart and RespawnRatio with randomized value between MinRatio and MaxRatio. The first wave still uses the RespawnRatioDelay. This does not affect Extraction settings from above. Default is 0.
||Minimum random ratio to use for SpawnRatioAtStart and RespawnRatio. Default is 0.3
||Maximum random ratio to use for SpawnRatioAtStart and RespawnRatio. Default is 0.5
||Chance for a second wave to randomly occur between MinTime and MaxTime seconds after the first wave. Default is 1.
||Minimum time after first wave to wait before randomly spawning a second wave. Default is 30.
||Maximum time after first wave to wait before randomly spawning a second wave. Default is 50.
||What multiplier should be applied to the second wave relative to the first? A random ratio will be chosen between MinRatio and MaxRatio and then multiplied by this to provide either more or less bots than the first wave. Default is 2.0
||Sets a message in game to all players when a random wave is incoming. Default is no message at all.
Example wave-based settings for solo. This sets up bots to spawn in two waves. The first will be anywhere from 5-7 bots 15 seconds after a point is taken, the second wave will be 7-10 bots 40-60 seconds after the first wave. During and after the two waves bots will respawn very slowly starting at 40 seconds and increasing to 25 seconds as progress is made:
If using the bRandomize option then heres an example. This will make somewhere between 0.2 (MinRatio) and 0.4 (MaxRatio) of bot count to spawn 10 seconds (RespawnRatioDelay) after objective and an additional 0.2*1.8 (MinRatio*RandomWaveMultiplier) to 0.4*1.8 (MaxRatio*RandomWaveMultiplier) of bot count to spawn 30 (MinTime) to 60 seconds (MaxTime) 100% of the time (RandomWaveChance) after the first wave. Every time the random wave occurs it will print "Incoming Wave!" to the text channel:
To enable player respawns see Survival Wave Enabling. I would not reccommend setting SoloWaves very high for this unless running with FortuneSoldier as spawns will get swarmed. Keeping it low and instead using bSaveProgress to respawn is a better way to go. To get a better understanding of how this all ties together in-game see my Print Bot Count mod.
Note: Currently this overrides BotDPRRespawnFirst and BotDPRRespawnFinal to zero to enable right number of bots to be spawned after objectives captured.
Shoutout to RareK for his contributions with RoundProgress.
Appreciate my work and want to donate or have a mod made? See my profile. If leaving a comment regarding bugs or feedback go ahead and tag me so I get a notification.