Killing Floor 2 Tickrate Guide - Client and Server

Killing Floor 2 Tickrate Guide - Client and Server

  • Topic closed
  • You cannot reply to this topic

Killing Floor 2 Tickrate Guide - Client and Server A Killing Floor 2 tickrate guide covering BaseEngine.ini, PCServer-KFEngine.ini, NetServerMaxTickRate, MaxClientRate, and safe testing.

Geekrainian #1

    • Group: Admin
    • Posts: 974

    Posted:

    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

    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:

    • do not start with 120, 240, or 1000
    • 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

    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.

    Back