← Back to Guides
Settings

CS2 Autoexec Guide: How to Save Your Settings Permanently

How to build an autoexec.cfg so your CS2 settings survive every update - with command values anchored to cs2pedia's pro-settings dataset, not generic placeholders.

An autoexec isn’t a list of secret commands that make you better - it’s a plain text file that runs every time CS2 launches and re-applies the settings you actually chose. That distinction matters because CS2 quietly resets some console values on certain updates, and a config that runs at startup is the only reliable way to make them stick.

The command values in this guide aren’t invented placeholders: where the setting exists in cs2pedia’s dataset of 1,000+ pro profiles, the example values are the most common ones pros run, computed at build time from that database. The autoexec is the mechanism; the pro data is what you put in it.

Why You Need an Autoexec

CS2 stores most of your preferences in its own config files, but those files get overwritten or reset under specific conditions - a major update, a Steam Cloud conflict between two machines, or a verify-files pass. When that happens, your crosshair, viewmodel, and radar tweaks revert to defaults and you rebuild them by hand.

An autoexec file fixes this permanently: it’s a script of console commands that CS2 reads on launch, so whatever it contains is re-applied every session regardless of what the game reset.

The second reason is portability. One autoexec.cfg is your entire setup in a single file you can back up, sync, or drop onto a new PC. You set it once, and your config follows you instead of living invisibly inside the game’s internal state.

File Location and Creation

The autoexec lives in CS2’s cfg folder. On a default Windows Steam install, that’s:

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

If you moved Steam or use a second library, the path changes but the tail is always the same: ...\game\csgo\cfg\. The reliable way to find it: in Steam, right-click Counter-Strike 2 → ManageBrowse local files, then open game\csgo\cfg. Valve has changed config paths before across CS:GO-to-CS2 builds, so verify the folder this way rather than trusting a hardcoded path.

To create the file:

  1. Open the cfg folder above.
  2. Create a new text file and name it autoexec.cfg - make sure it isn’t secretly autoexec.cfg.txt. Enable “File name extensions” in Windows Explorer so you can see and remove the .txt.
  3. Open it in any plain text editor (Notepad is fine) and paste your commands, one per line.

Then tell CS2 to run it on launch. In Steam, right-click CS2 → PropertiesGeneralLaunch Options, and add:

+exec autoexec.cfg

The +exec launch option is the durable way to guarantee the file runs every time; relying on CS2 to auto-load it has been inconsistent across builds. This launch flag is accurate for CS2 builds circa 2024–2026.

Crosshair Commands

These set your crosshair from the console. The most-used values across the dataset are shown after each command - but crosshair is the one setting where you should treat the data as a starting point, not gospel: it’s pure visual preference, and the spread below is wider than for most settings.

cl_crosshairstyle 4      // 4 = Classic Static (the standard competitive choice)
cl_crosshaircolor 5      // 5 = Custom color (then set the RGB below)
cl_crosshairsize 2       // length of each crosshair line
cl_crosshairgap -3       // gap between the center and the lines (negative = tighter)
cl_crosshairthickness 1  // line thickness

What each does: cl_crosshairstyle picks the crosshair behavior - style 4 is the static, non-moving “Classic Static” crosshair that the overwhelming majority of pros use, because a static crosshair doesn’t expand when you move or shoot. cl_crosshaircolor selects a preset color, or 5 for a custom RGB you define with cl_crosshaircolor_r/g/b. cl_crosshairsize, cl_crosshairgap, and cl_crosshairthickness control the dimensions.

1 most common cl_crosshairsize -3 most common cl_crosshairgap 1 most common cl_crosshairthickness

The numeric crosshair dimensions are well-recorded across the dataset, so the modal values above are a solid default. For the full breakdown of pro crosshair codes and how to import one directly, see the crosshair settings guide.

Viewmodel Settings

The viewmodel is where your weapon sits on screen. These four commands cover it, and unlike crosshair, the dataset shows a strong consensus - most pros cluster on the same handful of values.

viewmodel_fov 68        // field of view for the weapon model
viewmodel_offset_x 2.5  // horizontal position (right is positive)
viewmodel_offset_y 0    // forward/back position
viewmodel_offset_z -1.5 // vertical position (down is negative)

viewmodel_fov is the most impactful: a higher value pushes the weapon further from the camera, freeing up screen space. The offsets nudge the gun left/right, forward/back, and up/down. Among the pros who recorded a viewmodel, the field is heavily concentrated:

viewmodel_fov (pro distribution)
Value
Pros
Share
68
812
84.2%
60
85
8.8%
65
40
4.1%
64
8
0.8%
54
7
0.7%
Based on 964 of 1001 pro profiles that recorded this setting (4% unrecorded) · cs2pedia dataset · July 2026
A clear majority run the maximum-allowed value; the rest sit just below it.

The most common offset values across the recorded profiles are:

2.5 modal viewmodel_offset_x 0 modal viewmodel_offset_y -1.5 modal viewmodel_offset_z

If you want the gun out of your way with no further thought, the modal block above is the safe pick - it’s what most of the recorded field already runs.

Network and FPS Commands

These are the settings most autoexec guides obsess over, and the place to be most careful: these network values are not in cs2pedia’s dataset, so there’s no pro-usage figure to anchor them to. The recommendations here come from how CS2’s networking works, not from a usage percentage.

fps_max 0          // 0 = uncapped; or set to your monitor's refresh rate
cl_interp_ratio 1  // interpolation safety margin
cl_interp 0        // let the ratio drive interpolation

fps_max 0 removes the frame cap entirely. Some players instead cap it slightly above their monitor’s refresh rate to reduce frame-time variance - both are defensible; uncapped is the simplest default. cl_interp_ratio 1 with cl_interp 0 is the standard low-latency interpolation setup recommended by Valve’s own networking guidance for CS2; the old habit of hand-tuning cl_interp to a specific decimal is a CS:GO-era ritual that the modern networking model makes unnecessary.

One more thing to skip: the -tickrate 128 launch option. CS2 runs sub-tick - the server samples your inputs continuously rather than on a fixed 64- or 128-tick cadence - so the old -tickrate 128 flag does nothing in CS2 and can be removed. For the authoritative behavior of any networking command, Valve’s official CS2 documentation is the primary source; prefer it over third-party blogs.

Radar and HUD Settings

These shape the information layer of your screen. The radar fields are recorded for a smaller share of the dataset than crosshair or viewmodel, so treat the figures below as “common among the pros who reported them,” not a full-field consensus.

cl_radar_always_centered 0  // 0 = scrolling radar (shows more of the map)
cl_radar_scale 0.4          // zoom level of the radar
hud_scaling 0.95            // overall HUD size

cl_radar_always_centered 0 switches from a player-centered radar to a scrolling one that keeps the whole bombsite area visible - the more common competitive choice. cl_radar_scale sets the zoom; lower shows more map. hud_scaling resizes the entire HUD.

cl_radar_always_centered (pro distribution)
Value
Pros
Share
Yes
582
83.9%
No
112
16.1%
Based on 694 of 1001 pro profiles that recorded this setting (31% unrecorded) · cs2pedia dataset · July 2026
Among the pros who reported this setting, a scrolling (non-centered) radar is the clear majority.
0.4 most common cl_radar_scale 0.95 most common hud_scaling

Because radar and HUD scaling are sparsely recorded relative to the full dataset, the captions above disclose exactly how many profiles each figure is based on. Don’t read a sparse field as a unanimous standard.

Sample Autoexec Block

Here’s a clean, commented autoexec built from the pro modal values above for the recorded settings, plus the networking lines that come from Valve’s model rather than the dataset. Paste this into autoexec.cfg, then adjust the crosshair and viewmodel lines to taste:

// ── Crosshair (adjust to preference) ──
cl_crosshairstyle 4       // static crosshair
cl_crosshaircolor 5       // custom color
cl_crosshaircolor_r 0     // custom RGB (this default = green)
cl_crosshaircolor_g 255
cl_crosshaircolor_b 0
cl_crosshairsize 2        // line length
cl_crosshairgap -3        // tighter gap
cl_crosshairthickness 1   // line thickness

// ── Viewmodel (pro modal values) ──
viewmodel_fov 68
viewmodel_offset_x 2.5
viewmodel_offset_y 0
viewmodel_offset_z -1.5

// ── Radar & HUD ──
cl_radar_always_centered 0  // scrolling radar
cl_radar_scale 0.4
hud_scaling 0.95

// ── Network & FPS (from Valve's model, not dataset) ──
fps_max 0
cl_interp_ratio 1
cl_interp 0

// ── Confirm the file ran ──
host_writeconfig            // save current config to disk
echo "autoexec loaded"

Two commands at the bottom earn their place. host_writeconfig forces CS2 to write the current configuration to disk immediately, so the values you just set are persisted rather than living only in memory. echo prints a line to the console - it’s how you’ll verify the file actually ran.

Verifying the Autoexec Loads

The fastest check is the echo line above. Enable the developer console (Settings → Game → Enable Developer Console → Yes), launch CS2, then open the console with the tilde key (~). If you see:

autoexec loaded

in the console output, your file ran. If it didn’t appear, the usual causes are a misnamed file (autoexec.cfg.txt), the wrong cfg folder, or a missing +exec autoexec.cfg launch option - re-check all three.

You can also confirm any individual value took effect by typing the command name alone in the console - for example viewmodel_fov with no value prints the current setting. If it matches your file, the autoexec is doing its job.

A Note on the Data

The example values in this guide are computed at build time from cs2pedia’s dataset of 1,000+ active pro profiles, for the settings that profiles actually record - crosshair dimensions, viewmodel, radar, and HUD. The networking and FPS lines are not pro-usage figures; they come from how CS2’s sub-tick model and interpolation work, and Valve’s documentation is the authority there. The dataset is a snapshot, not a live per-event feed, so treat the modal values as current-but-not-instant.

To go deeper: see the crosshair settings guide for full crosshair-code import, the mouse settings guide for sensitivity and eDPI, and the video settings guide for resolution and graphics. To see exactly which pros run which values, browse the player profiles.