"High ping" is what players call several different problems that feel the same in-game: warping, delayed hits, rubber-banding. Some of it is genuine latency to the server, some is choke from bad rate settings, and some is packet loss on your line. The fixes are different for each, so the first job is to read what is actually happening with net_graph instead of guessing. This guide is client-side; if the whole server lags for everyone, that is a server issue — see server FPS and high ping on one server.
1. Turn on net_graph and learn to read it
net_graph 3 net_graphpos 2
The readout shows three numbers that matter:
| Label | Meaning | Bad sign |
|---|---|---|
| ping / fps | Round-trip latency to the server | High and stable = distance; high and jumpy = jitter |
| loss | Packets lost between you and the server | Any sustained loss above 0 is a line problem |
| choke | Updates the server wanted to send but your rate would not accept | Sustained choke = your rate settings are too low |
Loss and choke are the important distinction: loss is a network fault you often cannot fix from the game, while choke is almost always your own rate settings and is fixable in ten seconds.
2. Fix choke with correct rates
Choke means the server is throttling to your rate. On a modern engine, set generous values:
rate 100000 cl_updaterate 101 cl_cmdrate 101
If choke persists, the server's sv_maxrate or sv_maxupdaterate is the ceiling and you cannot raise past it from the client. The full explanation of the interaction is in best client rates and, server-side, the rate cvars guide.
3. Set interpolation to match your update rate
The old interpolation cvar in CS 1.6 is ex_interp. A default of 0.1 adds 100 ms of visual delay. Set it to match your update rate — the correct value is 1 divided by cl_updaterate:
ex_interp 0.01
At cl_updaterate 101, 0.01 is right (roughly 1/100). Do not set it lower than that or you will see other players warp; the interpolation window must cover the gap between updates.
4. Pick a server you can actually reach
No cvar beats physics. A server on another continent will always have high ping. In the server browser, sort by ping and favour ones under about 60 ms. If a single server is bad while others are fine, the route to that host is the problem, not your PC — high ping to one server only covers that case.
5. Clear your local line
Ping and loss both get worse when your connection is busy. Before blaming the game:
- Stop downloads, streaming and cloud backups on every device on the network.
- Use a wired Ethernet connection; Wi-Fi adds jitter and loss that show up as warping.
- Close background apps that hammer the network.
If net_graph shows loss that only appears when someone else in the house streams, the fix is your network, not CS.
6. Confirm it is not the 25th Anniversary netcode
The 2023 update changed networking, and some players got worse results with it — especially against old servers. If your ping and loss are fine everywhere except older servers, rolling back to the steam_legacy build is a legitimate test; see switching to steam_legacy.
Common errors
- Choke that will not go away — the server caps your rate below what you set. Nothing on the client fixes it; it is
sv_maxrate/sv_maxupdaterateon the server. - Players warp even at low ping —
ex_interpis too low or your update rate is being clamped. Setex_interp 0.01withcl_updaterate 101. - Ping fine, hits still feel late — high
ex_interp(0.1). Lower it to match your update rate. - Loss on Wi-Fi — move to Ethernet. Wi-Fi packet loss is the classic invisible cause of "lag".
- Only one server is bad — a routing problem to that host, not your setup.
Verification
With net_graph 3 up, join a nearby server and confirm: ping steady and reasonable for the distance, loss at 0, and choke at 0 during normal play. If all three hold and the game still feels off, the problem is the specific server's performance, not your connection. Save your rate, cl_updaterate, cl_cmdrate and ex_interp into your config so they survive a restart.









