Christmas Patriarch

Killing Floor 2 Tickrate Guide

Important: treat these settings as technical reference, not as a universal recipe. Excessive tickrate can cause desync, odd physics, kicks, or extra crashes.

What tickrate means

A tick is one game simulation step. Tickrate is how many simulation steps the server runs per second. For a server, it is roughly the equivalent of FPS: higher tickrate updates game state more often, but increases CPU and network load.

Low tickrate:

High tickrate:

Quick recommendation

ScenarioValue
You are unsurekeep 30
Private 6-player servertest 45-60
Public 12-player servertest 45-60 carefully
International playersstable 30-45 is better than packet loss
Kicks, desync, or odd physicsrevert to 30-35

Do not change tickrate blindly on a production server. Test on an empty server first, then during real waves with players.

1. Client: BaseEngine.ini

The client-side maximum tickrate is in:

Steam\steamapps\common\killingfloor2\Engine\Config\BaseEngine.ini

Find:

[IpDrv.TcpNetDriver]

Settings to change:

NetServerMaxTickRate=60
LanServerMaxTickRate=60

Make sure you edit [IpDrv.TcpNetDriver], not [Engine.DemoRecDriver]. Demo recorder settings do not change network play.

Should clients change this?

A client cannot force someone else’s server to tick faster. If the server stays at 30, a client-side value above 30 will not provide real benefit. It only lets the client use a higher tickrate where the server is already configured higher.

2. Server: PCServer-KFEngine.ini

On a dedicated server, the file is usually:

killingfloor2\KFGame\Config\PCServer-KFEngine.ini

In [IpDrv.TcpNetDriver]:

[IpDrv.TcpNetDriver]
NetServerMaxTickRate=60
LanServerMaxTickRate=60

The default 30 for internet and 35 for LAN can be raised to 60. That is a reasonable testing ceiling, but not a stability guarantee for every server.

3. Rate limits and bandwidth

If you increase tickrate, check the bandwidth caps:

[IpDrv.TcpNetDriver]
MaxClientRate=32000
MaxInternetClientRate=32000

For a 12-slot server, you can test:

[IpDrv.TcpNetDriver]
MaxClientRate=64000
MaxInternetClientRate=64000

The point is not to “speed up the internet”. The point is to avoid a bandwidth cap that is too low for more frequent updates.

4. Why huge values are risky

Very high values can cause random kicks, desync, and odd physics. These are especially annoying because they look like general instability instead of an obvious config mistake.

Practical limits:

5. Testing plan

  1. Back up PCServer-KFEngine.ini.
  2. Set NetServerMaxTickRate=45.
  3. Test on a normal map with 6 players.
  4. If there is no packet loss, kicks, or desync, test 60.
  5. Tune MaxInternetClientRate for the player count.
  6. Test several late waves and a boss wave.
  7. If players report falling through floors, jitter, or kicks - revert.

For a public server, stable 45 is better than a “nice” 60 that breaks the game for some players.

6. Ready profiles

Conservative public server

[IpDrv.TcpNetDriver]
NetServerMaxTickRate=45
LanServerMaxTickRate=45
MaxClientRate=32000
MaxInternetClientRate=32000

Private 6-slot server

[IpDrv.TcpNetDriver]
NetServerMaxTickRate=60
LanServerMaxTickRate=60
MaxClientRate=32000
MaxInternetClientRate=32000

12-slot test server

[IpDrv.TcpNetDriver]
NetServerMaxTickRate=60
LanServerMaxTickRate=60
MaxClientRate=64000
MaxInternetClientRate=64000

7. Rollback

If the change makes things worse, restore the default profile:

[IpDrv.TcpNetDriver]
NetServerMaxTickRate=30
LanServerMaxTickRate=35
MaxClientRate=15000
MaxInternetClientRate=15000

Restart the server after rollback. For the client, restore BaseEngine.ini from backup or verify game files through Steam.