To access your configuration file (config.cfg), you will have to locate it first. If, when installing steam, you’ve left all the installation prompts to default, then it’s reasonable to assume that this is the path you need to follow to be able to locate your config file.

You might be wondering, why did we look for these two files in particular and what you’re supposed to do with them now. To make it as simple as possible, a config is file that consists of CS:GO commands.

Those commands are the same ones you can input in your console. Editing your config before you jump in game can save a lot of time over single command input trough the console.
We will not cover all the 
commands there are in game, cause not all are that important and some of them have no effect because the official Valve servers enforce them to be set at a certain value.


By default, no program is linked to open .cfg files.

.CFG extension stands for configuration file. Once you double click on it, you will be greeted with this window.

You will want to select the second option. Once you click “OK”, you will be able to select the desired program.

As you can see, I’ve highlighted 2 options. I prefer Notepad++ over the regular Notepad because it has a lot more options and uses. Notepad++ doesn’t come preinstalled with Windows but it’s free to download and use forever.
If you’re okay with the regular Notepad, you’re 
free to use it. Select either and check the “Always use the selected program to open this kind of file” box, so you don’t have to repeat the step every time you want to access such file.

Before we start you can check our Now that we have everything ready, we can start with basic commands.


So you’ve opened your config.cfg file and you see all these lines of commands. A lot of commands 400+. What now ? As I said earlier not all of them make a difference since not all of them are client based and some are enforced by the server you’re playing on.
Here I will list some of the commands I 
find very useful. When changing or inserting the command/value I find it that it’s best to just search for the command you want to change in your existing config.cfg and just change the value. So just press CTRL+F and search away.

fps_max value - what this does is sets a limit on how many framerates to use.
Keep in mind that if your computer can’t go over, e.g. fps_max 300, would only make your framerates drop more if your PC can get only 120 fps, because it will constantly try and go towards 300, thus causing more stress on your hardware. If you have a great gaming RIG, you can even put fps_max 0. What this does is removes the limit on how far it can go.
So if your average is 300-400 you may even put it on zero. My fps almost 
never goes under 200, so I like to keep it on 250. Even though I can sometimes get 350 fps on certain parts of some maps.

cl_radar_scale value - with this command you can set the level of zoom on your radar. Default value is 0.7. Minimum value is 0.25 and max is 1. I keep it on 0.5. You should play with it and see what works for you. Keep in mind that when set on 1, it’s fully zoomed in and if you go lower the minimap on the radar is more visible.

cl_radar_always_centered value - If set to 0, the radar is maximally used. Otherwise the player is always centered. Default value is 1. I prefer 0.

cl_timeout value - If your connection drops while in a game, you will see in game the time before an automatic disconnect from the server. This command tells the game how long to wait before the disconnect. Default value is 30, which is also the maximum and lowest you can go is 4 seconds.

cl_radar_rotate value - as the name of the command says, it either rotates the radar as you move or it stays still. Values are 0 for it to stay still and 1 to keep it rotating. I prefer 1.

cl_righthand value - this command has 2 values. 0 and 1. Default is 1 and it makes your model hold the gun with a right hand. Setting it to 0 will make it hold it in it’s left hand. It’s down to personal preference but I like it on the left side. Keep in mind it’s only client based so won’t make a difference when hiding in a corner if your enemies see your gun.

cl_showhelp value - Enables or disables the in-game tips for beginners. Values are 0 and 1. Set it to 0 to disable it or 1 to enable it.

mm_dedicated_search_maxping value - when searching for a matchmaking game, the game will always try and find you a server where your ping is the best. So the server located closest to you. Default value is 150, but you can set it to a lower value. Keep in mind that if you set it too low, you might have difficulties finding the game. This also depends on how good your internet connection is.

cl_downloadfilter value - values are (all, none, nosounds). This command determines which files can be downloaded from the server. Default value is all.

cl_autowepswitch value - It can be set to 0 or 1. What it does is make you automatically switch to picked up weapon, if it’s more powerful than the one you already have. I keep it to 0, because it’s not always a good moment for an automatic weapon switch.

closeonbuy value - When using the buy menu, it will not close automatically after you’ve bought something. Set it to 1 to close the buy menu after buying something.

hud_takesshots value - Auto-saves a scoreboard screenshot at the end of a map. It’s handy if you want to keep them and keep track on how well you’ve preformed.

voice_scale value - Sets the overall volume of voice over IP. Default is 1 which is also the max value.

hud_scaling value - This command scales hud elements. Hud elements represent the ammunition, your HP, number of players and such things you see on your screen.
Default is 0.85 , min. 0.5 and max 0.95.

cl_hud_color value - Changes the color of your hud. Values are 0 = default, 1 = light blue, 2 = orange, 3 = green, 4 = purple, 5 = white.

volume value - min. 0 max. 1. As the name of the command says, it changes the master volume in- game. 0 mutes everything and 1 is maximum volume in-game. You need to play with it to find an optimal value. I personally use 0.2.

voice_enable value - Values are 0 and 1. If set to 0 you won’t be able to hear players talk in-game. If set to 1, you will be able to hear them.

r_cleardecals - this command doesn’t have a value, but what it does is it clears bullets, blood decals and everything else on the map. This is useful when, e.g. playing aim deathmatch maps. Small map, many players always shooting. Best way to use it is to bind it to a command you use all the time when playing.

What I like to do when going on a deathmatch server is bind it with this command. bind mouse1 “+attack;r_cleardecals”, so basically every time you press your left click to shoot, it will automatically clear everything as well.

These are most of the commands that I find the most useful. With that in mind, there are probably some commands that I don’t find useful but others do. You will see many players, experienced or new to the game, download and use configs from professional players.
I don’t advise this to anyone, but 
then again, you can get used to everything. Changing the config file basically changes the way your game works.

Every player plays differently. Some spray more when shooting, others like to tap and shoot 1 bullet at the time or short bursts of bullets. It all depends on your personal preference. I’ve been playing for a long time so I already know what I’m comfortable with and what kind of playstyle suits me the most. Keep in mind that your FPS can be crucial to your playstyle.

Before I had a decent PC I was unable to effectively go for 1 taps, it was easier to spray. So if you are willing to go online and download some config from a pro, pick wisely and try to match someone with a similar playstyle as yours.


So now that we’ve gone over some of the commands from config file and explained what it is, you might be wondering why do we need autoexec and what that file does. autoexec.cfg is a another config file, whose name basically stands for automatically executed.
what’s stored in it are grouped commands that are used as scripts, fps configs or just general config commands that are stored in here instead of config.cfg.

If by default, you don’t have this file in your /cfg/ folder, fell free to create it and call it autoexec.cfg then save. Some of the most useful scripts I like to use are a buy script and jumpthrow script. I will now share with you some of the scripts.
Using these won’t get you banned on any official servers but when playing 
on 3rd party sites, like Faceit, Esea or such you should always check their FAQ and do a little research of your own.

Jumpthrow script is not allowed to be used in pro games but allowed in matchmaking. You can paste the lines of code you want to add in your autoexec.cfg and just save the file.

// remove the bobbing of the weapon back and forth, when you run.

cl_bob_lower_amt "0"

cl_bobamt_lat "0"

cl_bobamt_vert "0"

// scale the HUD depending on what resolution you use, 1 is max.

hud_scaling "1"

// causes the scope to move less while moving scoped and reduces bobbing effect

cl_bobcycle "2"


alias "+jumpthrow" "+jump;-attack"

alias "-jumpthrow" "-jump"

bind "t" "+jumpthrow"

// usual rate commands

cl_cmdrate "128"

cl_updaterate "128"

rate "128000"

// lowers delay between sounds

snd_mixahead "0.05"

snd_musicvolume "0"

snd_headphone_pan_exponent "2"

snd_headphone_pan_radial_weight "2

snd_legacy_surround "0"

snd_pitchquality "1"

dsp_enhance_stereo "0"

// removes the shifting of the arm when crouching down

cl_viewmodel_shift_left_amt "0"

cl_viewmodel_shift_right_amt "0"

m_mousespeed 0

m_mouseaccel 0

These are the commands I use in my autoexec file. In case you’re wondering what the jumpthrow script is and why the professionals aren’t allowed to use it I’ll try to explain it.

When throwing certain smokes or flashes, in order to do them correctly you need to time your jump and throw of the desired nade in perfect sync.

It is quite hard to do so. This script enables you to do it perfectly every time. You simply press and hold mouse1 (left click) on your mouse and then press the key you’ve set your bind on. In my case it’s letter T on my keyboard.

I also use a buy script. You can check it out here and use it if you find it useful or create on for yousefl.

///////// buy script

bind "kp_ins" "buy vest;"

bind "kp_del" "buy defuser;"

bind "kp_enter" "buy vesthelm;"

bind "kp_end" "buy m4a1;buy ak47;"

bind "kp_leftarrow" "buy awp;"

bind "kp_slash" "buy smokegrenade;"

bind "kp_multiply" "buy flashbang;"

bind "kp_minus" "buy hegrenade;"

bind "kp_plus" "buy incgrenade;buy molotov;"

bind "kp_home" "buy famas;buy galilar;"

bind "kp_uparrow" "buy ump45;"

bind "kp_pgup" "buy mag7;buy sawedoff;"

bind "kp_rightarrow" "buy nova;"

bind "kp_5" "buy fn57;buy tec9;"

bind "kp_downarrow" "buy p250;"

bind "kp_pgdn" "buy deagle;"

As you can see, I use my numpad keys in my buy script. You can set it to whatever key you like. If you have trouble understanding it, there will be a guide shortly only for generating a buy script to your liking, or you can use one of many generators found online.