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:
- increases synchronization latency between server and clients
- lowers simulation precision
- can make the game feel less responsive
High tickrate:
- can make controls and hit registration feel more responsive
- requires more CPU and bandwidth
- can expose physics or synchronization bugs
Quick recommendation
| Scenario | Value |
|---|---|
| You are unsure | keep 30 |
| Private 6-player server | test 45-60 |
| Public 12-player server | test 45-60 carefully |
| International players | stable 30-45 is better than packet loss |
| Kicks, desync, or odd physics | revert 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:
- do not start with
120,240, or1000 - do not raise bandwidth caps to huge values without monitoring
- do not change tickrate, rate limits, and mutators at the same time
- after each change, test late waves, not only an empty server
5. Testing plan
- Back up
PCServer-KFEngine.ini. - Set
NetServerMaxTickRate=45. - Test on a normal map with 6 players.
- If there is no packet loss, kicks, or desync, test
60. - Tune
MaxInternetClientRatefor the player count. - Test several late waves and a boss wave.
- 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.