Counter-Strike 2December 5, 2024

CS2 Sub-Tick Architecture Explained for Server Admins

Understand how Valve replaced 128-tick servers with the new sub-tick architecture and what it means for your server network settings.

For over a decade in CS:GO, the community battled over 64-tick (Matchmaking) vs 128-tick (FACEIT/ESEA). In Counter-Strike 2, Valve eliminated this debate entirely by hardcoding the server tickrate to 64 and introducing Sub-Tick architecture.

What is Sub-Tick?

In traditional tick-based servers (like CS:GO), if you clicked your mouse to shoot, the server didn't register that shot until the start of the next "tick" (a fraction of a second later). This caused the infamous "I shot him but he didn't die" moments.

In CS2, the client records the exact microsecond you clicked your mouse. When the server processes the next 64Hz tick, it looks at those timestamps and retroactively calculates exactly who shot first between ticks.

Can I Force 128-Tick in CS2?

No. Shortly after the beta, community servers figured out how to force 128-tick by modifying command-line parameters. Valve explicitly patched this out. The engine is now hardcoded to 64 ticks per second. Any attempts to force 128-tick will result in desync and animation bugs.

Optimizing Network Settings for Sub-Tick

Because the sub-tick system sends timestamps, packet delivery is more crucial than ever. Ensure your server.cfg is not restricting bandwidth:

sv_maxrate 0 // Unrestricted bandwidth
sv_minrate 786432 // Forces high bandwidth for modern connections

Do not mess with cl_updaterate or cl_cmdrate server-side; CS2 locks these to prevent clients from causing sub-tick desync.