Sub-Tick System
The Sub-Tick System is a revolutionary networking architecture introduced in Counter-Strike 2 that fundamentally changes how player actions are processed by the game server. It replaces the traditional tick-rate model used in CS:GO and previous Counter-Strike titles.
Overview
In traditional multiplayer games, the server processes game state at fixed intervals called "ticks." In CS:GO, competitive servers ran at 64 ticks per second (64Hz), while community and third-party servers ran at 128 ticks per second (128Hz). The limitation was that any player action (shooting, moving, throwing grenades) could only be registered at the next tick boundary, introducing up to 15.6ms of potential delay on 64-tick servers.
CS2's sub-tick system eliminates this limitation by recording the exact moment an action occurs between ticks and relaying that precise timing to the server. The server then processes the action at the exact time it happened, not at the next tick boundary.
How It Works
Traditional Tick System (CS:GO)
- Player presses fire at time T
- Client waits for next tick boundary
- Tick packet sent to server with the action
- Server processes at the tick boundary
- Result: Action delayed by up to 1/tickrate seconds
Sub-Tick System (CS2)
- Player presses fire at time T
- Client records the exact sub-tick timestamp
- Tick packet includes the precise timestamp within the tick
- Server processes the action at the exact recorded time
- Result: Action processed at the precise moment it occurred
What This Means for Gameplay
Shooting
In CS:GO, two players firing at nearly the same time could have different outcomes depending on which tick boundary their shots landed on. In CS2, the sub-tick system ensures shots are processed at the exact moment they were fired, making gunfights more consistent and fair.
Movement
Player movement is evaluated at sub-tick precision:
- Counter-strafing and stopping accuracy is more precise
- Peeking angles registers more accurately
- Movement-dependent mechanics feel more responsive
Grenades
Grenade trajectories and timing are calculated with sub-tick precision:
- Smoke and flash lineups are more consistent
- Jump-throws produce identical results regardless of tick timing
- Grenade pop timings are more predictable
Tick Rate in CS2
CS2 servers run at 64 ticks per second. However, because the sub-tick system records precise timing between ticks, the effective precision is significantly higher than 64Hz. Valve has stated that the sub-tick system makes the difference between 64-tick and 128-tick servers irrelevant, as actions are no longer quantized to tick boundaries.
This was a controversial decision, as many CS:GO players preferred 128-tick servers. Valve's position is that sub-tick provides equal or better precision than 128-tick servers while being more bandwidth-efficient.
Technical Details
- Each game tick, the client sends input data with sub-tick timestamps
- The server replays inputs at the precise reported times during tick simulation
- This applies to all player actions: shooting, movement, grenade throws, interactions
- The system is transparent to players — no configuration needed
Community Reception
The sub-tick system was one of the most discussed features of CS2:
- Supporters argue it provides inherently better responsiveness than any fixed tick rate
- Critics point to perceived inconsistencies and argue 128-tick was sufficient
- Valve continues to refine the system through updates
Comparison with CS:GO
| Aspect | CS:GO (64-tick) | CS:GO (128-tick) | CS2 (Sub-Tick) |
|---|---|---|---|
| Action precision | ~15.6ms | ~7.8ms | Sub-millisecond |
| Server bandwidth | Lower | Higher | Moderate |
| Grenade consistency | Tick-dependent | Better | Precise |
| Movement registration | Tick-quantized | Tick-quantized | Continuous |
See Also
- Counter-Strike 2 — Game overview
- Source 2 Engine — The engine powering CS2
- CS:GO — The predecessor and its tick-rate system
- Counter-Strike History — Franchise evolution