Resolvers and lag compensation in CS2, explained

Resolvers and lag compensation in CS2, explained

May 4, 2026

Resolvers and lag compensation in CS2

"Resolver" is one of those HvH words that gets thrown around constantly without a clean definition. Here's the technical reality.

Lag compensation 101

When you fire a shot in CS2, your client says "I shot at tick 1234567 — at this moment the enemy was at coordinate X." The server rewinds the world to tick 1234567, checks if your bullet would have hit, and rules accordingly.

Source engine cvars:

  • sv_maxunlag (default 1.0s) — the maximum rewind window.
  • sv_clockcorrection_msecs (default 60) — how aggressively the server snaps a desynced clock.
  • sv_lagcompensation_strict — rejects rewinds that violate sanity (in CS2 only).

What a resolver does

An aimbot needs to fire at where the real body is, not where the visible body shows. With anti-aim, those don't match.

A resolver is the cheat's algorithm for guessing the real angle. Common signals:

  • Animation phase — leg/torso animations don't lie about real movement direction.
  • Velocity — players moving fast can't anti-aim freely; possible angles are constrained.
  • Last known good shot — last hitbox we hit gives a real reference.
  • Statistical history — over N shots, learn this player's jitter pattern.

A "perfect resolver" is impossible — the cheat has only the same network data the server has, and the server itself can't always tell where someone is shooting from.

How sub-tick changes the math

Pre-CS2 (CSGO), the server bucketed all inputs into 15.625 ms tick windows. A resolver had a clean discrete input to predict against.

CS2 sub-tick stamps inputs with microsecond precision. The server can now distinguish "fired at sub-tick 4" from "fired at sub-tick 11." This:

  • Helps the server — it sees finer-grain jitter patterns.
  • Hurts old resolvers — anti-aim that relied on tick-aligned jitter breaks.
  • Breaks fake-flick — the choke-and-burst pattern is more visible across sub-ticks.

What admins can tune

For the cleanest HvH experience:

sv_maxunlag 0.5         // halve the rewind window
sv_clockcorrection_msecs 15   // strict clock correction
sv_unlag_fixstuck 1     // close stuck-extrapolation exploits
sv_unlag 1

Don't go below sv_maxunlag 0.2 — legitimate high-ping players will get rejected.

What admins cannot fix

  • Anti-aim itself. Visible-yaw decoupling from firing-yaw is allowed by the protocol; you can't ban it without rewriting CS2.
  • Resolver accuracy. Server doesn't know what cheat the client uses.
  • Hardware-level macros. A player using a hardware DT macro (very rare) can't be detected without VAC.

TL;DR

Lag comp = server rewinds time to validate shots. Resolver = cheat algorithm to guess real angle behind anti-aim. CS2 sub-tick adds microsecond input timestamps, which both improves server-side resolution and breaks older cheat techniques. Admins can tighten sv_maxunlag and sv_clockcorrection_msecs for cleaner play.