--- title: "How to Fix High Ping in CS 1.6" excerpt: "High ping, choke and loss have different causes and different fixes. Learn to read net_graph, set your rates correctly, and tell a server problem from a connection problem." category: "client" tags: "ping, network" image: "" read_time: "8 min read" ---
"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.
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.
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.
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.
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.
Ping and loss both get worse when your connection is busy. Before blaming the game:
If net_graph shows loss that only appears when someone else in the house streams, the fix is your network, not CS.
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.
sv_maxrate/sv_maxupdaterate on the server.ex_interp is too low or your update rate is being clamped. Set ex_interp 0.01 with cl_updaterate 101.ex_interp (0.1). Lower it to match your update rate.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.