Adjust network settings in the config file
These network settings are the most important commands you will type into your config file. Find the following commands in your config and change their values as noted:
Also, add rate to your config file with the following value:
Think of it like this: there are two versions of Counter-Strike being played, yours and the server's. The client version is (default) 100 milliseconds in the past of the "real" (server) version of the game world. The more updates you have, the less interpolation (prediction) is required by your PC to accurately figure out what the server world looks like. If the server and your client compare data, and the server overrides your hit, then what you think is a hit will be a miss. There may be times when you'll shoot someone and see blood, for example, but then the client reports 0 damage. This occurs because blood decals are client-side. Your client believes you scored a hit, draws the blood, and sends the packets to the server to be checked. If the server rules a miss, then the player takes 0 damage. This is why you want your client's perception of the world to be as close to the server's perception as possible.
Decreasing interpolation runs the moderate risk of experiencing laggy players' models jittering. It is beneficial to lose smoothness to gain accuracy. The goal for competitive play is to always have the lowest possible amount of client side interpolation and gain the most accurate representation of the game world. So we set our cl_interp value to 0.
By setting it to 0 the game will automatically set the interp to the lowest possible value allowed by the server.
Next we want as many updates per second as the server will possibly give us. A 66 tic Valve matchmaking server defaults rates to 66. In case you ever play on a higher tic rate server we want to set our cl_updaterate to “128” and our cl_cmdrate to “128.” You can use higher values, but it won't matter. With these settings, any time you connect to a higher value server, it will default you to the highest values allowed. The same goes with rate, which is the size of the packets. You want as much information as possible so we set this to “128000.” Again, this will default to the highest amount a server will allow. You can never have too much of a good thing!
"Now," you might ask, "my monitor's refresh rate is 60hz and thus those extra frames are not drawn, do I still benefit?" The answer is yes.
There are other variables to consider, such as input lag, mouse polling, and a general overall smoothness. If you have a high framerate, your input lag will be infinitely lower, and your mouse will feel smoother, even if your monitor is not actually drawing those frames. The physics, the tics, all the send/receive commands are still triggering themselves at a more rapid pace, and thus your representation of the game world is better, even if the frames are not technically being projected into your eyeballs.
Set up hotkeys for buys and grenades
Using a simple syntax in the config.cfg file, you can set up hotkeys to buy specific loadouts. The brackets below are to demonstrate where you'd place a word or letter, so don't actually type the brackets into the config file.
So, if you wanted to bind the up arrow to buy an AK or M4 (depending on team), the command would be:
Or if you wanted the home key to buy armor or head armor (based on cash) the command would be:
It is extremely useful to bind separate keys for different grenade types. This way, you can throw a counter-flash while completely blind, instead of fumbling through the grenade menu. It works the same way, but the command is “use" instead of "buy."
For example, let's say I want to bind “f” to put a flashbang in my hand. The command is: bind “f” “use weapon_flashbang.” Or maybe I want to use “v” to pull out a smoke grenade. bind “v” “use weapon_smokegrenade.” Here's a list of weapon codes in CS:GO.
Customize the HUD
There's a few tweaks to your HUD you can experiment with in the config file.
Customize your crosshair
There is no best crosshair, but I prefer small classic static. A static crosshair does not expand during movement. A dynamic crosshair in CS:GO does correctly show the accuracy values in real time, unlike in previous iterations of the game. I think most competitive players just do not use it because they are used to their legacy crosshairs, and the constant movement can be distracting. New players may benefit from the dynamic crosshair's visual feedback displaying how controlled movement improves their accuracy.
Again in the config file, change these values to customize your crosshair. Or simply use an online crosshair generation tool like this
Crosshair style and color can easily be adjusted in CS:GO's Game Settings menu.