16/06/2020

# CSGO Network Settings

We can configure the rate at which our game client can receive network data in bytes. For most use cases we'll be fine using the max value.

# Best network settings

Before you jump into copying and pasting commands into your game, I recommend you to have a read over this post.

  • The server simulates the game in discrete time steps called ticks/seconds. So, a tickrate 128 means the server simulates the world every 7,8 milliseconds (128 times by second), a tickrate 64 means every 15 milliseconds. Simulating the world means calculates positions, registering shots, make grenades do their things, etc...
  • The only commands that matter for network configuration are: "rate", "cl_updaterate", "cl_cmdrate", "cl_interp", "cl_interp_ratio", "cl_predict", "cl_interpolate" and "cl_lagcompensation".

I recommend you to paste this commands into your autoexec.cfg. Learn how to create your autoexec for csgo.

I also recommend you to read over the article to have a better understanding of what the hell it is you're modifying in the game.

//Rate Settings
rate "786432"
cl_cmdrate "128"
cl_updaterate "128"
cl_interp "0"
cl_interpolate "1"
cl_interp_ratio "2"
cl_lagcompensation "1"
cl_predict "1
cl_predictweapons "1"

# A note on interpolation

Interpolation is commonly used in FPSs games like CSGO, where having a consistent position for an enemy on time across players is important. Interpolating means that, even if some packets are dropped, you will have smooth movement on the screen.

# Playing on LAN

This setting is good for LAN games or for playing online if your ping to the server is low. (<50ms)

cl_interp_ratio 1

# Playing online

If our connection is not as good or we tend to have loss, we should use the following value.

cl_interp_ratio 2

# A note on lag compensation

Between the representation of the world you have on your monitor and the situation of the world on which the server works, there is a HUGE difference. But, don't panic, the server knows the interpolation (if you don't know what it is, you didn"t read explications on "cl_interp" bad boy) of each players and the ping of each players. So, the server take care of the differences of configuration of each players. If you shoot a guy, you can sometimes have the sensation than your crosshair isn't on him even though you got the frag.

To compute the simulate time from the real time, the server takes care of your ping (the travel time of the date between client and server), and of your interpolation time. So, the only acceptable value for this is cl_lagcompensation 1 (it means lagcompensation activated).

# A note on tickrate

cl_updaterate 128 The value of this, 128 for example, means "hey server, I'm a client, send me 128 times/second an update of the world".

cl_cmdrate 128 The value of this, 128 for example, means "hey server, I will send you 128 times/second an update of my input (mouse, moving, ect...)"

The values of cl_cmdrate and cl_updaterate MUST be the same

# A note on network rates

# How to set the rates

To set the rates, simply type rate <number> into your console or add it to your autoexec.cfg

You should probably set your rates to the maximum even if your connection speed is not as fast as that of the command.

If we have a slow connection our experience might be slightly improved by setting a value more in line with our speed. Feel free to try them out if you want.

# Table of rates

connection speed command
0.5 Mbps rate 62500
1.0 Mbps rate 125000
1.5 Mbps rate 187500
1.57 Mbps rate 196608
2.0 Mbps rate 250000
2.5 Mbps rate 312500
3.0 Mbps rate 375000
3.5 Mbps rate 437500
4.0 Mbps rate 500000
4.5 Mbps rate 562500
5.0 Mbps rate 625000
5.5 Mbps rate 687500
6.0 Mbps rate 750000
6.2 Mbps rate 786432 (new Max)

# Acknowledgement

Thanks to APLIES for writing up this pastebin which provided a good amount of content for the post.