What a CS2 cfg file is and how it works

CS2 Config: How to Create, Load and Manage CFG Files

Where the cfg folder is, how to make a config, three ways to load it, autoexec.cfg, several configs at once, copying your current settings and fixing a config that won't run

Counter-Strike 2 still uses the same .cfg system players know from CS 1.6 and CS:GO. A config is a text file with console commands, binds and small scripts. You load it, and your whole setup is back in a second: after a reinstall, on another PC, or when an update resets something.

In this guide I show where CS2 keeps configs, how to create one without the classic .cfg.txt mistake, how to load it from the console, launch options or autoexec, how to split a big config into several files, and what to check when a config doesn't run. There's also a starter autoexec you can copy.

What Is a CS2 Config File (.cfg)

A .cfg file is plain text, one console command per line. When the game runs it, it does exactly what you would do by typing those lines into the console one by one. So a config can hold anything the console accepts: sensitivity, sound, FPS settings, HUD, radar, crosshair, binds and aliases.

sensitivity 1.2
volume 0.4
fps_max 400
bind "mouse4" "+jump"
CS2 configuration files: autoexec.cfg, cs2_user_convars_0_slot0.vcfg and cs2_machine_convars.vcfg
Your .cfg files and the game's own .vcfg files

Don't mix it up with the game's own settings files. CS2 saves everything you change in the menu into .vcfg files, like cs2_user_convars_0_slot0.vcfg and cs2_user_keys_0_slot0.vcfg. The game writes them itself. Your .cfg files are yours: CS2 never changes them, it only runs them.

Backup

Settings come back after a reinstall, a new PC or a reset with one command.

Presets

Separate configs for practice, bots, grenades or recording, loaded only when you need them.

Allowed

Configs only run commands the game already has. No VAC risk, that's what they are made for.

Where Is the CS2 Config Folder

If Steam is installed in the default place, the folder for your configs is:

C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\

On Linux it's ~/.steam/steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/. The game folder is still called Counter-Strike Global Offensive, that's normal.

Path to the CS2 cfg folder in Windows Explorer
The cfg folder when the Steam library is on another drive

How to Find the Folder Through Steam

If CS2 is in another Steam library or on another drive, let Steam open the folder for you:

  1. Steam → Library → right-click Counter-Strike 2.
  2. Manage → Browse local files . Or Properties → Installed Files → Browse .
  3. In the folder that opens go to game → csgo → cfg.
Installed Files tab of Counter-Strike 2 in Steam with the Browse button
Properties → Installed Files → Browse
Browse local files for Counter-Strike 2 in the Steam library
Manage → Browse local files

All configs you want to run go into this cfg folder or into a subfolder inside it. Where the game keeps its .vcfg files, the userdata folder and the difference between them is covered in my CS2 config location guide.

How to Create a CS2 Config File

  1. Open the cfg folder.
  2. Right-click → New → Text Document, name it for example config.txt.
  3. Open it in Notepad, put your commands in, one per line, and save.
  4. Rename it from config.txt to config.cfg and confirm the extension change.

Turn On File Extensions in Windows

The most common mistake: Windows hides extensions, you rename the file to config.cfg, and in reality it becomes config.cfg.txt. The game won't see it. To be sure, turn extensions on:

  • Windows 11: in File Explorer open View → Show → File name extensions.
  • Any Windows: Control Panel → File Explorer Options → View → untick Hide extensions for known file types .
File Explorer Options with Hide extensions for known file types
Untick "Hide extensions for known file types"

Notepad also likes to add .txt on its own. When saving, set Save as type to All files, or put the name in quotes: "config.cfg".

Comments in a Config

Everything after // on a line is a comment, the game skips it. I use comments to split a config into sections and to remember why a value is there.

// Mouse
sensitivity 1.15
// FPS and telemetry
fps_max 400
cl_hud_telemetry_frametime_show 2 // always show FPS

How to Load a Config in CS2 (exec Command)

A config can be loaded by hand from the console or automatically at start, through launch options or autoexec.cfg (next section).

From the Console

  1. Settings → Game → Enable Developer Console (~) → Yes.
  2. Press ~ to open the console.
  3. Type the command and press Enter:
exec config

The .cfg at the end is optional, exec config.cfg works too. This is the way for configs you switch during a session: practice, bots, grenades. More useful commands for them are in my CS2 console commands guide.

From Steam Launch Options

Launch options can run console commands at start. A command there starts with +.

  1. Steam → Library → right-click Counter-Strike 2 → Properties.
  2. On the General tab find Launch Options.
  3. Add at the end of the line:
+exec config
Steam launch options for CS2 with +exec config.cfg
The config runs every time the game starts

Launch options run after autoexec.cfg, so if the same command is in both, the value from the launch options wins. Which other launch options make sense in CS2 (not many) is in my CS2 launch options guide.

How to Set Up autoexec.cfg in CS2

autoexec.cfg is the one config CS2 runs by itself every time it starts. The exec autoexec.cfg call is built into the engine, you can find that line in the game files. It doesn't exist by default, you create it like any other config:

  1. In the cfg folder create autoexec.txt.
  2. Put your always-on settings inside.
  3. Rename it to autoexec.cfg (not autoexec.cfg.txt).

No launch options needed. Many guides tell you to add +exec autoexec anyway. It's not needed, and when you troubleshoot later it's one more line that confuses you. I don't add it.

How to Check That Autoexec Works

Put cl_showfps 1 in it. The FPS counter shows up right in the main menu, so you know autoexec ran without loading a map. Remove the line later if you don't need the counter.

Testing autoexec.cfg in CS2 with cl_showfps 1
FPS counter in the main menu: autoexec.cfg ran

Another way is echo autoexec loaded at the end of the file, the text shows up in the console. More ways to show FPS are in how to show FPS in CS2.

What to Put in Autoexec

Only what you always want: mouse, crosshair, HUD, radar, sound, binds. Practice setups, bot commands and server rules don't belong there, load them with exec when you need them. A ready example is in the starter autoexec below.

How to Manage Multiple CS2 Config Files

A config grows fast, and a 200-line file is hard to read and fix. Split it by topic and let one file load the rest:

autoexec.cfg
Main settings: mouse, crosshair, HUD, radar, sound. At the end it loads the others.
binds.cfg
All key binds.
scripts.cfg
Aliases and scripts.
practice.cfg, bots.cfg
Loaded by hand when needed, never from autoexec.
exec binds
exec scripts
Managing several CS2 config files with autoexec.cfg and exec
One main config loads the others

Configs run from top to bottom. If the same command appears twice, the later value wins, also across files. So the order of the exec lines matters.

Keep Your Configs in a Subfolder

The cfg folder also holds the game's own files (game mode configs, server.cfg and others). I keep mine in a subfolder, for example cfg\myfiles\. It's cleaner, you never touch Valve's files by accident, and backing up or moving to another PC is one folder.

CS2 doesn't look into subfolders by itself, so give the path in exec. All of these work the same:

exec myfiles\config
exec myfiles/config
exec \myfiles\config.cfg

The game is relaxed here: slash or backslash, with or without the leading slash and the .cfg extension.

How to Copy Your Current CS2 Settings into a Config

You don't have to write a config from zero. If you already play with settings you like, the game has all the values in its own files, linked to your Steam account:

...\Steam\userdata\YOUR_STEAM_ID\730\local\cfg\
cs2_user_convars_0_slot0.vcfg
Your settings: crosshair, HUD, radar, mouse and other values.
cs2_user_keys_0_slot0.vcfg
All your current binds.
CS2 vcfg files in the Steam userdata folder
CS2 .vcfg files linked to your Steam account

YOUR_STEAM_ID is the short number of your account (SteamID3), if you have several folders there. My SteamID Lookup shows it for any profile.

Open the file in Notepad, find the lines you need and copy them into your .cfg as normal commands: a line like "cl_crosshairstyle" "4" becomes cl_crosshairstyle 4. Don't edit the .vcfg files themselves while the game is running, CS2 overwrites them. If you changed something in the console and want it saved right away, run host_writeconfig.

How the .vcfg files work, which one stores what and how to move them safely is in my config location guide.

Starter CS2 Autoexec You Can Copy

A clean base to build on. Every command here exists in the current CS2 build, the crosshair part uses the new commands from the September 2026 update. Change the values to yours, delete what you don't need.

// autoexec.cfg - runs every time CS2 starts

// Mouse
sensitivity 1.25
zoom_sensitivity_ratio 1

// FPS
fps_max 400
fps_max_ui 200

// Crosshair (new commands)
cl_crosshairstyle 4
cl_crosshair_length 4
cl_crosshair_thickness 1
cl_crosshair_gap 2
cl_crosshairdot 0
cl_crosshair_drawoutline 1
cl_crosshaircolor_r 0
cl_crosshaircolor_g 255
cl_crosshaircolor_b 255
cl_crosshaircolor_a 255
cl_crosshair_recoil 0

// HUD and radar
cl_radar_rotate 1
cl_radar_always_centered 0
cl_radar_scale 0.5
cl_hud_radar_scale 1.1
cl_teamid_overhead_mode 1
cl_hud_telemetry_frametime_show 1
cl_hud_telemetry_ping_show 1

// Sound
volume 0.5
snd_voipvolume 1

// Binds
bind "mwheeldown" "+jump"

// Other configs from the myfiles folder, remove // if you have them
//exec myfiles/binds
//exec myfiles/scripts

// Check: FPS counter in the main menu = autoexec ran
cl_showfps 1
echo autoexec.cfg loaded

Don't want to type? The CS2 Config Generator builds an autoexec with clicks, and the CS2 Binds Generator does the same for binds.

CS2 Config Not Working? How to Fix It

Open the console after exec. It usually tells you what went wrong, and most problems are one of these:

couldn't exec ..., missing file
The game didn't find the file. Check the name, the folder and the hidden .txt at the end.
Unknown command
The command doesn't exist in CS2. Many lines from CS:GO configs are dead ( net_graph , cl_forcepreload , mat_queue_mode ), and in September 2026 the crosshair commands were renamed. Check with find plus part of the name.
Command too long. Ignoring.
One line or alias is longer than about 400 characters. Split it into several aliases.
Nothing happens online
Server commands (mp_*, bot_*, most sv_*) and anything that needs sv_cheats work only on a server you host.
Settings come back
Something runs later and overwrites your value: another config, launch options, or you changed the setting in the menu after the config ran.
Bind does nothing
Quotes are missing or not closed. A bind with several commands needs them: bind "f" "cmd1; cmd2".

See How Configs Load (-dev)

Add -dev to launch options and the console shows a loading report at start, including which config files ran. Useful for troubleshooting, but remove it afterwards, it's not meant for normal play.

Will an Update Reset My Config?

Your own .cfg files are not touched by updates. What can change is the game: a renamed command, like the crosshair ones, simply stops doing anything. Keep a copy of your config folder anyway, and if your settings ever go completely wrong, see how to reset all settings in CS2.

Conclusion

A config in CS2 is not about copying pro settings. It's about a setup that loads the same way every time and comes back in a second after a reinstall or a reset. Put the always-on settings in autoexec.cfg, keep practice setups in separate files, use a subfolder and comments, and check with find when a command from an old config does nothing.

Start from your current settings in the .vcfg files, then change things slowly as your game changes.

CS2 Config Files FAQ

Where do I put a config in CS2?

In ...\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\ or in a subfolder inside it.

How do I run a config in CS2?

Open the console and type exec plus the file name, for example exec config. For a file in a subfolder: exec myfiles/config.

Does autoexec.cfg work in CS2?

Yes. CS2 runs autoexec.cfg from the cfg folder by itself on every start. You don't need to add it to launch options.

What is the difference between config.cfg and autoexec.cfg?

A config with any other name runs only when you exec it or put it in launch options. autoexec.cfg runs on its own at every start, so it's the place for permanent settings.

Why doesn't my config load?

Usually the file is really called config.cfg.txt, it's in the wrong folder, or the name in exec has a typo. The console tells you when it can't find the file.

Can I get banned for using a config?

No. Configs, binds and aliases only run commands the game already has.

Where are my current CS2 settings saved?

In cs2_user_convars_0_slot0.vcfg and cs2_user_keys_0_slot0.vcfg in Steam\userdata\YOUR_STEAM_ID\730\local\cfg\. You can copy values from there into your own config.

Can I share my config with other players?

Yes, it's a text file. They put it into their cfg folder and run it. Values like sensitivity and crosshair are personal though, so adjust them.

More CS2 Guides

Leave a Reply

Your email address will not be published. Required fields are marked *