Insurgency: Sandstorm

Scale Survival / Round Progress for Insurgency: Sandstorm

Released (updated ago). Ranked 115 of 711 with 2,055 (6 today) downloads

Published by TayLord (mod ID: 1558377)

survival_rework.1.jpg

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.

Why?

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.

Details

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.

TLDR

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:

TotalObjectives=NumWaves-1
BotRespawnDelay = StartRespawnDelay + (CompletedObjectives/TotalObjectives)*(FinalRespawnDelay-StartRespawnDelay)


Added Config Variables

Description

StartRespawnDelay Bot respawn delay at start of match. Default is 18.
FinalRespawnDelay

Bot respawn delay at end of match prior to extraction. Default is 12.

ExtractionRespawnDelay

Bot respawn delay after capturing the extraction point for the counter attack. Default is 6.

ExtractionSecondWaveRespawnDelay 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
RespawnRatio What ratio of total bots to speed respawn after objective captured. Default is 0.8
ExractionRespawnRatio What ratio of total bots to speed respawn after extraction objective is captured. Default is 0.5
ExtractionSecondWaveRespawnRatio What ratio of total bots to speed respawn once the second wave of the extraction begins. Default is 0.4
SpawnRatioAtStart What ratio of total bots to speed spawn at start of round. Default is 0.6
RespawnRatioDelay 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
ExtractionSecondWaveDelay 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
bSaveProgress Saves progress and skips completed objectives after defeat. Default is 1.
------------ ----------------------------------------------------------------------------
bRandomize 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.
MinRatio Minimum random ratio to use for SpawnRatioAtStart and RespawnRatio. Default is 0.3
MaxRatio Maximum random ratio to use for SpawnRatioAtStart and RespawnRatio. Default is 0.5
RandomWaveChance Chance for a second wave to randomly occur between MinTime and MaxTime seconds after the first wave. Default is 1.
MinTime Minimum time after first wave to wait before randomly spawning a second wave. Default is 30.
MaxTime Maximum time after first wave to wait before randomly spawning a second wave. Default is 50.
RandomWaveMultiplier 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
RandomWaveText 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:

[/Script/Insurgency.INSSurvivalGameMode]
bForceSoloWaves=1
SoloWaves=2
NumWaves=6
ExtractionObjectiveHoldTime=150
BotRepositionDelay=5
DefaultReinforcementWaves=1
MinimumEnemies=20
MaximumEnemies=30
BotMinimumSpawnRange=5000
BotMaximumSpawnRange=6000
BotRespawnDistance=8000
BotSpawnDelay=10.0
BotRespawnDelay=15.0
MinimumBotsPerCompletedObjective=0.5
MaximumBotsPerCompletedObjective=0.5
BotDPRRespawnFirst=0
BotDPRRespawnFinal=0

[/ScaleSurvival/Mutators/ScaleSurvival.ScaleSurvival_C]
StartRespawnDelay=40.0
FinalRespawnDelay=25.0
ExtractionRespawnDelay=8.0
SpawnRatioAtStart=0.4
RespawnRatioDelay=15.0
ExtractionRespawnRatio=0.2
ExtractionSecondWaveDelay=45.0
ExtractionSecondWaveRatio=0.6
ExtractionSecondWaveRespawnDelay=3
bSaveProgress=1
bRandomize=1
MinRatio=0.25
MaxRatio=0.35
RandomWaveChance=1
RandomWaveMultiplier=1.4
MinTime=40
MaxTime=60
RandomWaveText=Incoming wave!
ResetWaveCount=2

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:

[/ScaleSurvival/Mutators/ScaleSurvival.ScaleSurvival_C] 
StartRespawnDelay=15.0
FinalRespawnDelay=10.0 
ExtractionRespawnDelay=6.0 
RespawnRatioDelay=10.0 
ExtractionRespawnRatio=0.2 
ExtractionSecondWaveDelay=45.0 
ExtractionSecondWaveRatio=0.4 
ExtractionSecondWaveRespawnDelay=3
bSaveProgress=1 
Timing=0.1
bRandomize=1
MinRatio=0.2
MaxRatio=0.4
RandomWaveChance=1.1
RandomWaveMultipler=1.8
MinTime=30
MaxTime=50
RandomWaveText=Incoming wave!

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.

Releases

FilenameSizeVersionAddedOptions
filedata.15.zip11.77kb-

filedata.14.zip11.31kb2.5

filedata.13.zip10.8kb2.4

filedata.12.zip10.32kb2.3.1

filedata.11.zip10.31kb2.3

filedata.10.zip9.79kb2.2.1

filedata.9.zip13.66kb2.2

filedata.8.zip9.23kb2.1

filedata.7.zip8.64kb2.0

filedata.6.zip7kb1.4

filedata.5.zip6.93kb1.3

filedata.4.zip5.84kb1.2.1

filedata.3.zip5.84kb1.2

filedata.2.zip5.85kb1.1

filedata.1.zip4.76kb1.0

filedata.zip5.06kb1.0

6 comments

Join the community or sign in with your gaming account to join the conversation:

allycat3372
allycat3372 @allycat3372

hi, I would be interested to know with what programming language you made this mod, I would be willing to make a mod on the modification of the waves in this game

TL
TayLord @taylord

There is a Sandstorm Mod Editor that is available from Epic Games store. This is the same tool that all mods are made using. It's primarily a graphical programming language. There's not much documentation or support, but you just play with it till you get what you want.

n0ri
n0ri @n0ri

Is this html on purpose in the code?
SpawnRatioAtStart=0.4<br>RespawnRatio=0.4
RespawnRatioDelay=10.0<br>bSaveProgress=1

TL
TayLord @taylord

Should be better now. Let me know if it's unclear. The default spawning is unintuitive. Let me know if you find good settings for higher player counts and I can update the description.

TL
TayLord @taylord

No. Mod.io interprets certain combinations of characters as html and turns it into gibberish. Really frustrating. I probably just need to put a link in for it to work. I'll update the description.

TL
TayLord @taylord

*New in version 2.1:
Lots more functionality
Removed delay for extraction on reset
Added ExtractionRespawnRatio, ExtractionSecondWaveDelay, ExtractionSecondWaveRatio, and ExtractionSecondWaveRespawnDelay
Bug fixes