Counter-Strike Networking Tips
- None of this will VAC ban you. They’re in-game configurations.
- Enable the console from your options and bind it to a button. I like the tilde ` button. It’s just under escape.
- Open the console and enter “net_graph 3” to start seeing pertinent information in a corner of your screen.
Latency (aka Ping)
The time it takes for a message to be sent from your computer to a server and back again to you. A round-trip time. Measured in milliseconds (ms).
Play on a server as close to your physical location as possible. Or by getting a better internet situation (wired over wireless), Fiber, etc...
Frame Rate per Second (aka FPS)
How many times your screen updates with a new picture per second. Most people have 60FPS in 2015.
With a powerful graphics card and monitor you can go up to 144Hz (144FPS). That means instead of your screen updating every 16ms (60FPS), it will update every 7ms. That’s a global 9ms improvement.
[Show your work: (1/144fps)*1000 =~ 6.9ms]
Lots of people talk about tick rates. ESEA servers are 128 tick while Valve servers are mostly ~66 tick. What this rate means is how many times the server does calculations on things that occur per second. It’s very difficult to calculate the pros and cons of these differing tick rates in a practical environment, however it is a common concensus among pro gamers with pings <50ms that 128tick rate servers are more reliable in terms of truth of what’s going on. With pings >50ms and a 60Hz monitor I don’t imagine it makes too much of a difference though — it can go both ways. As a rule of thumb however, the faster things are the better.
Play on 128 tick servers. Host your own or pay to play on ESEA (referral link attached ❤).
Poorly named “Rate” simply means download speed in bytes per second. Capped at 128,000 bytes/second(~128kbps)
Keep it at max unless your internet speed is somehow slower.
In console: rate “128000”
Short for interpolation. This is a complicated strategy employed by the game developers to make things appear smooth. Since lag can cause people to rubber band, they predict where a player should/would be if they didn’t lag and move the player accordingly for all other game clients. Calculations are based on movement velocity since you cant be running forward and turn around instantly without first slowing down.
Do not change this. Keep cl_interp at 0.
Some ratio used to calculate the interpolation. You want more if you need more interpolation. Use integers to avoid complex computations.
cl_interp_ratio 1 if you have little to no packet loss (check this with net_graph 3)
cl_interp_ratio 2 if you have regular packet loss
cl_interp_ratio 3 if you have a fairly big amount of packet loss
The mount of updates you send to the server per second. One update covers all the changes you need since they’re batched together, so it doesn’t need to be higher than the lowest value between server tick rate and your FPS.
No clear answer on this one. I made mine 128 since I have 144FPS and play on 128 tick servers. Min(128, 144) = 128. When in doubt, make it equal to your stable FPS to be safe, as you don’t want to keep tweaking this for every server you play on and it doesn’t need to be higher as that’s just a waste of bandwidth. Sending too much info to the backend may cause your game to lag and I’m pretty sure the server drops packets if too many are sent. Reduce this if you’re noticing too much packet choke.
In console: cl_cmdrate “128”
The mount of updates you want the server to send you per second. Very similar to cl_cmdrate.
Make it 128 to be safe in all cases, because the server should only send you as many updates as it wants to send (usually tick rate). Reduce this value if you’re noticing too much packet loss.
In console: cl_updaterate “128”
Use this website http://autoexec.global-offensive.com/
- Rate -> Update based on what you’ve learned in this article
- Mouse -> fix “Mouse sensitivity” to your liking
- Misc -> Check “Take a screenshot of scoreboard after every game”
- Radar -> Uncheck “Rotate”
Hopefully this short guide helped clarify some things. Feel free to pose any questions or leave inline comments with improvements! Thanks!