CSGO-teaser.jpg


Article by Jonny "Waffles" Fuller

Counter-Strike: Global Offensive s surge in popularity over the past few months makes now a great time to join one of the most competitive multiplayer shooters on PC. This visual guide will teach you how to set up your game for the maximum competitive advantage. There s no singular best practice, as a lot of configuration is personal preference, but there are tweaks you can make to graphics and network settings, keybindings, and more to help outplay the competition.
Understand your graphics settings


There s no consensus among the competitive community about which screen resolution is the best. Lots of players look towards the pros using ancient 4:3 resolutions such as 800x600 for guidance. However, there is no singular advantage provided by using 4:3 resolutions. Some hardcore players use these resolutions because they were optimal in the 1.6 era and allowed legacy CRTs to hit higher refresh rates, and pros are generally change-averse.

But when you re using a 4:3 resolution, your horizontal field of view is just 74 degrees. Some players prefer this narrow view as it allows them to focus centrally on their target, and positions the radar closer to center. At 16:9 the player has a 90-degree field of view, which allows more vision towards the edges of the screen. I value this peripheral vision over narrow focus, and thus use 1920x1080 (16:9). Ideally, you want to use the native resolution of your monitor while maximizing your framerate.

The single best way to increase your FPS is to drop your resolution, so let's dig into CS:GO's graphics settings.
Improve FPS with launch options


Make all your graphical adjustments with the knowledge that CS:GO is a CPU-limited game in general. There s no holy grail console or config command that can dramatically improve your FPS, but there are some slight tweaks we can make.

Drop all your in game graphics settings to low, disable anti-aliasing, enable multi-core rendering
Add these launch options to your launch parameters in Steam (see screenshot above):

-novid -console -high -threads 4

These commands disable the intro, enable the console, set the process affinity to high, and grant your cores to CS:GO, even though technically Source can only use 3 threads. Some players add the -processheap parameter thinking it will grant better fps, but because this substitutes Windows memory management for Valve s own code it is highly recommend to remove it.

The next step involves modifying CS:GO's config file. It's a bit more complicated, but allows us to make some really useful tweaks.
Adjust graphics settings in the config file


Find your config.cfg in the cfg folder within the game directory (default C:\Program Files (x86)\Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\cfg). If you don't already have file extensions enabled in Windows, you should enable them now to make sure that, when you edit the config file, it retains the .cfg extension. To turn on file extensions, click Organize in Windows Explorer, click Folder and search options, tab over to View, and uncheck Hide extensions for known file types. Now let's edit config.cfg. You can open it in Windows Notepad, but it'll be easier to read with a more advanced text editor, like the free Notepad++.

Now, edit these lines in the config file. For most of them, you'll simply be switching out a 0 for a 1, or something similar.

r_drawtracers_firstperson Set to "0" - Disable first-person tracers. Enemy tracers are still drawn.

mat_monitorgamma Set to "2.1" - The brighter the better so you can illuminate enemies.

mat_queue_mode "-1" - Auto-detect multi-core rendering

mat_savechanges Add this line to write video settings to the registry.

cl_forcepreload 1 - Forces the game to load all the sound and art assets on map load. This can help you if you experience stuttering when certain sounds go off, such as throwing a grenade into a bunch of props

cl_disablehtmlmotd 1 - disables those annoying ads when connecting to a server

cl_autowepswitch 0 - Disables automatically switching to a primary gun you pick up off the ground so you don t draw an unloaded weapon

cl_disablefreezecam 1 - Disables the annoying freeze on death so you can make proper calls to your team mates

You can save your changes, but don't close the config file just yet. Next, we're going to tweak the most vital of all CS:GO settings: network settings.


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:

cl_interp "0"
cl_cmdrate "128"
cl_updaterate "128"

Also, add rate to your config file with the following value:

rate "128000"

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.

bind buy

So, if you wanted to bind the up arrow to buy an AK or M4 (depending on team), the command would be:

bind KP_UPARROW buy ak47;buy m4a1

Or if you wanted the home key to buy armor or head armor (based on cash) the command would be:

bind KP_HOME buy vest;buy vesthelm

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.

Rifles
ak47 : AK-47
aug : Aug
famas : Famas
galilar : Galil
m4a1 : M4
sg556 : Sig aka Krieg

Sniper Rifles
awp : AWP
g3sg1 : Terrorist Autosniper
scar20 : CT Autosniper
ssg08 : Scout

Shotguns
mag7 : Mag7 CT Pump shotgun
nova : Nova Pump Shotgun
xm1014 : Auto Shotty
sawedoff : T Pump Shotgun

Pistols
p250 : P250
elite : Dual Berettas
fiveseven : Five-SeveN
deagle : Desert Eagle
tec9 : Tec9

SMGs
bizon : PP-19 Bizon
mac10 : Mac 10
mp7 : MP7
mp9 : CT MP9 (TMP replacement)
p90 : P90
ump45 : UMP

Machine Guns
m249 : Machinegun
negev : Negev Machine Gun

Utility
decoy : Decoy Grenade
flashbang : Flash Grenade
hegrenade : HE Grenade
incgrenade : CT Incendiary Grenade
molotov : T Incendiary Grenade
smokegrenade : Smoke Grenade
Customize the HUD


There s a few tweaks to your HUD you can experiment with in the config file.

hud_scaling (0.5-0.95) - Allows you to change the size of the HUD
cl_radar_always_centered 0 - A lot of players prefer the default 1 but as in-game lead I like being able to see the entire map on the radar
cl_radar_scale ".4" - changes the radar zoom size so you can see more
Customize your crosshair


There is no best crosshair, but I prefer small classic static. A static crosshair does not expand during movement. As the crosshair s expansion does not accurately reflect current accuracy values I recommend using a static crosshair.

Update: After talking to Matt Wood from Valve, who wrote "the same data that's used to determine the accuracy of your bullets is used to draw the spread of the crosshair (on the same frame)," Matt is definitely right and what I wrote about the dynamic crosshair wasn't correct. 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.

cl_crosshairdot "0" - This command disables the center dot
cl_crosshair_drawoutline "1" - I recommend everyone turn this outline on so the crosshair is more visible
cl_crosshair_outlinethickness "2" - Set to 1, 2, or 3 to adjust thickness. I prefer 2.

Crosshair style and color can easily be adjusted in CS:GO's Game Settings menu.


Choose the right mouse sensitivity


Want greater control and accuracy in combat? To find the right mouse sensitivity, lower your sensitivity to a level that feels uncomfortable to play at, and then raise it one notch. The lower your sensitivity the more control you as a player have over your accuracy. While you need to find a sensitivity that works for you, I generally suggest a complete mouse swipe should be around 120 degrees of in-game movement. Remember, in CS, if someone is behind you, you re probably already dead anyway.

You want to completely eliminate mouse acceleration. Mouse acceleration increases the distance traveled based on speed of the movement. This is not ideal for consistency. You want a 1:1 ratio between mouse movement and in-game view rotation.

In the Windows Control Panel, make sure your mouse sensitivity is set to the sixth notch. Disable enhanced pointer precision to remove windows modifiers and disable acceleration.

Disable all mouse acceleration in your mouse drivers, if you use special software from Razer, Steelseries, etc. If you use a gaming mouse and software which allows custom DPI settings, use the native DPI of your mouse so there is no interpolation. If your software allows, use a 500 Hz or 1000 Hz refresh rate on the mouse. 125 Hz = 8 ms; 500 Hz = 2 ms; 1000 Hz = 1 ms.
Selecting a mouse


There are six variables to consider when purchasing a competitive mouse: DPI, hardware acceleration, prediction, max perfect control speed, malfunction speed, and lift off distance. DPI stands for dots per inch. The higher the DPI, the faster the mouse will move per inch. A lot of gaming mice are sold at stupidly high DPIs. Be aware these products are not always ideal.

The other variables are much more important than a high DPI. Hardware acceleration is built in mouse acceleration. You want to avoid this at all costs. A lot of laser mice suffer hardware acceleration, as well as some older mice like the MX518.

Prediction, also known as angle snapping, causes the mouse to try to smooth out your input and create a straight line. Max perfect control speed and malfunction speed are related. The max perfect control speed is the speed at which the mouse begins to lose perfect tracking, and the malfunction speed is when tracking ceases to work. Have you ever flicked your mouse for a shot and your control spasmed? Your mouse s control speeds are too low and it is time to upgrade!

Lift off distance is the lift height required to stop tracking. If you do not want to do all the research I highly recommend a Logitech G400 at 800 DPI.
Selecting a mousepad


There s a million options available to gamers when it comes to mouse surfaces. There are two general types: resistance pads and slick pads. A cloth pad would be an example of a resistance pad. The friction of the cloth against the mouse skates requires more effort for the same movement, thus offering more granular control. Slick pads decrease friction and allow for quick snapshots. I recommend a cloth pad for new players starting out. If you have to use a laser mouse avoid black pads, as they can cause some tracking problems.

I use an 11 year old DKT fat cloth pad. Get_Right, arguably the best player in the world, uses a Zowie speed pad and Zowie EC1 Evo. The Steel Series QCK mouse pads are also incredible. It really comes down to personal preference.