Killing Floor 2

Killing Floor 2

Controlled Difficulty - Chokepoints Edition[archive]
rat  [developer] 2 Feb @ 12:23am
Update 4.5.0
Info
Regarding the 4.5.0 Changelog. I'm posting additional information here because the item description has reached the character limit.

Config SpawnCycles
You can now define multiple spawn cycles in the config file. All wave length variants are supported ([4, 7, 10]), and they scale down just like normal spawn cycles.

On the first run, the following config section will be generated in ControlledDifficulty_Custom.ini:
[Controlled_Difficulty.CD_ConfigSpawnCycleCatalog] Version=1

To add a new spawn cycle, create an entry in the following format:
SpawnCyclePresetList=( Name="my_cycle_v1", Author="me", WaveDefs=("1FP,1GF", "2FP,2GF", "3FP,3GF", "4FP,4GF") )

Due to the way the config is parsed, you must format this object into a single line like this:
SpawnCyclePresetList=(Name="my_cycle_v1",Author="me",WaveDefs=("1FP,1GF","2FP,2GF","3FP,3GF","4FP,4GF"))
Full Example with Two Custom Spawn Cycles

[Controlled_Difficulty.CD_ConfigSpawnCycleCatalog] Version=1 SpawnCyclePresetList=(Name="my_short_cycle_v1",Author="me",WaveDefs=("1FP,1GF", "2FP,2GF", "3FP,3GF", "4FP,4GF")) SpawnCyclePresetList=(Name="my_medium_cycle_v1",Author="me as well",WaveDefs=("1FP,1GF", "2FP,2GF", "3FP,3GF", "4FP,4GF", "5FP,5GF", "6FP,6GF", "7FP,7GF"))

If your cycle doesn't appear in the list, check the first console messages—there will likely be an explanation.

Extra Server-Side Parameters Under Controlled_Difficulty.CD_CustomSettings
This section has been my personal testing ground for some time to see how changes affect gameplay. I highly recommend deleting everything in this section and letting the server reload the config.
New Parameters Added in the Update

  • UseClosestPlayerAsTarget <true/false> - Changes zed targeting to the closest player. [Default: false]
    • This was the default behavior between 2020(?) and 2023. It was known as the "join order" theory, but in reality, it was a bug where zeds, under very specific circumstances, would target the first player on the list. (HazardousMonkey learned about this from someone and shared it with the community.)
    • I decided to revert this in the "final update" because it noticeably altered map flow. Normally, zeds consider multiple factors when picking targets—enabling this forces them to always target the closest player.

  • ForceServerGC <true/false> - Forces the server to run garbage collection on every map restart. [Default: false]
    • Added after noticing some memory was not being cleaned between "seamless travel" (map switching). This usually isn’t an issue, but for peace of mind, you can enable this. (May cause server crashes.)

  • ForceClientGC <true/false> - Forces clients to run garbage collection on every map restart. [Default: false]
    • Works the same as ForceServerGC, but for clients.
Last edited by rat; 2 Feb @ 1:08pm