CS2 Config & Settings Guide
Master your configuration for optimal performance and consistency
Your CS2 configuration determines everything from visual fidelity and framerate to input responsiveness and network performance. A well-tuned config gives you a competitive edge by ensuring consistent behavior, optimal performance, and comfortable controls. This guide covers config file locations, autoexec setup, video optimization, network tuning, launch options, and how to manage your settings across machines.
Config File Locations
CS2 stores its configuration files in the game's cfg directory within the Steam installation. The exact path depends on your operating system and where Steam is installed.
Windows
- Default Steam path: C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
- Custom Steam library: <drive>:\SteamLibrary\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\
- Cloud-synced settings: C:\Program Files (x86)\Steam\userdata\<steamid>\730\local\cfg\
macOS
- Default path: ~/Library/Application Support/Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/
- Access tip: The Library folder is hidden by default — press Cmd+Shift+G in Finder and paste the path
Linux
- Default path: ~/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/
- Flatpak Steam: ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/
Key Config Files
- cs2_machine_convars.vcfg: Machine-specific settings including video, audio, and hardware configuration
- cs2_user_convars.vcfg: User-specific settings including crosshair, keybinds, and gameplay preferences
- autoexec.cfg: Your custom configuration file — executed on every game launch when properly configured
- config.cfg: Legacy config file — CS2 primarily uses the .vcfg format but still supports .cfg execution
How Autoexec.cfg Works in CS2
An autoexec.cfg is a plain text file containing console commands that execute automatically when CS2 launches. This is the recommended way to maintain custom settings because it ensures your configuration is applied consistently, is easy to back up, and can be shared with others.
Creating an Autoexec
Open a text editor (Notepad, VS Code, or any plain text editor) and create a new file. Add your desired console commands, one per line. Save the file as autoexec.cfg in your CS2 cfg folder. Make sure the file extension is .cfg and not .cfg.txt — enable file extensions in your file explorer to verify.
Ensuring Autoexec Runs on Launch
Add +exec autoexec.cfg to your CS2 launch options in Steam. Right-click Counter-Strike 2 in your Steam library, select Properties, and enter the command in the Launch Options field. This guarantees the autoexec runs every time the game starts.
Autoexec Best Practices
- Comment your settings: Use // at the start of a line to add comments explaining each command
- Group related commands: Organize by category — crosshair, network, audio, keybinds — for easy editing
- End with host_writeconfig: Adding
host_writeconfigat the end of your autoexec ensures changes are written to the active config - Test incrementally: Add a few commands at a time and verify they work before adding more
- Include echo confirmation: Add
echo "Autoexec loaded successfully"as the last line to confirm execution in the console
Example Autoexec Structure
A well-organized autoexec typically contains sections for network settings, crosshair configuration, audio preferences, keybinds and buy binds, viewmodel positioning, and miscellaneous gameplay commands. Each section begins with a comment header for easy navigation.
Important Config Settings
These are the most impactful console variables you can customize in CS2. Each directly affects your gameplay experience and competitive performance.
Crosshair Settings
- cl_crosshairstyle 1: Static crosshair — does not expand when moving or shooting
- cl_crosshairsize 2: Length of crosshair arms in pixels
- cl_crosshairgap -1: Gap between crosshair center and arm start — negative values pull arms inward
- cl_crosshairthickness 1: Width of crosshair lines
- cl_crosshaircolor 1: Crosshair color preset — 1 for green, 4 for custom RGB
- cl_crosshair_drawoutline 1: Adds a dark outline around the crosshair for visibility
Viewmodel Settings
- viewmodel_fov 68: Field of view for the weapon model — 68 is the maximum, showing more of the weapon
- viewmodel_offset_x 2.5: Horizontal position of the viewmodel
- viewmodel_offset_y 0: Depth position of the viewmodel
- viewmodel_offset_z -1.5: Vertical position of the viewmodel
- viewmodel_presetpos 0: Set to 0 to use custom offset values instead of presets
- cl_bob_lower_amt 5: Controls weapon bobbing while moving — lower values reduce distraction
Audio Settings
- volume 0.5: Master volume — keep moderate and adjust system volume instead
- snd_headphone_pan_exponent 1: Adjusts spatial audio panning for headphones
- snd_front_headphone_position 45: Front speaker simulation angle for headphones
- snd_rear_headphone_position 135: Rear speaker simulation angle for headphones
- snd_10ch_pan_rule 1: Headphone spatialization mode — set to 1 for stereo headphones
Video Settings for Performance vs Quality
Video settings have the largest impact on framerate. Finding the right balance between visual quality and performance is essential for competitive play, where high framerates translate directly to smoother aim and lower input latency.
Resolution
Resolution is the single most impactful video setting. Dropping from 1920x1080 to 1280x960 reduces pixel count by 44%, yielding 30-50% more frames on most systems. Many professional players use 1280x960 with 4:3 stretched aspect ratio, which makes player models appear wider. Choose between native resolution for clarity or lower resolution for framerate.
Key Video Settings
- Global Shadow Quality: High impact on FPS — Low disables most dynamic shadows, saving significant GPU time. Medium is a reasonable compromise for visibility
- Shader Detail: Controls lighting calculations and reflections — Low provides the best performance. Set to at least Medium if you want to see Doppler skin patterns clearly
- Model / Texture Detail: Medium impact — Low reduces texture resolution. Most players use Medium for a balance of visibility and performance
- Multisampling Anti-Aliasing (MSAA): None provides the best performance. 2x MSAA is a reasonable compromise if jagged edges bother you. 4x and above significantly reduce framerate
- Texture Filtering: Bilinear for maximum performance, though the FPS difference from higher settings is minimal on modern GPUs
- VSync: Always disable VSync for competitive play — it adds significant input lag by synchronizing framerate to monitor refresh rate
- FXAA: Disable for best performance and sharpest image. FXAA adds slight blur that can obscure distant enemies
Recommended Competitive Settings
For competitive play, prioritize framerate over visual quality. Use the lowest settings your visual comfort allows. Shadows on Low and Shaders on Low provide the largest FPS gains. Keep texture detail at Medium or higher so enemy models remain clear and distinguishable. Disable VSync, FXAA, and MSAA. Set your FPS limit with fps_max 0 for uncapped framerate.
Mouse Settings & Raw Input
Consistent mouse input is critical for building aim muscle memory. CS2 offers several settings that control how your mouse input is processed.
Essential Mouse Commands
- sensitivity: Your in-game sensitivity multiplier — most competitive players use values between 1.0 and 3.0 at 400 or 800 DPI
- m_rawinput 1: Bypasses Windows mouse acceleration and processing — always enable for consistent aim
- zoom_sensitivity_ratio 1.0: Multiplier applied when using scoped weapons — 1.0 keeps the same feel as unscoped, many prefer 0.8-1.0
DPI and Sensitivity Relationship
Your effective sensitivity is DPI multiplied by in-game sensitivity. A player at 400 DPI with 2.0 sensitivity has the same effective sensitivity as someone at 800 DPI with 1.0 sensitivity. Most professional players use effective sensitivities (eDPI) between 600 and 1200. Lower sensitivities provide more precise aim at the cost of requiring larger mouse movements.
Windows Mouse Settings
With raw input enabled (m_rawinput 1), Windows pointer speed and acceleration settings are bypassed entirely. However, it is still recommended to set Windows pointer speed to 6/11 (default) and disable Enhance Pointer Precision in Windows mouse settings. This provides a clean baseline if raw input is ever disabled.
Network Settings
Network settings control how your client communicates with the game server. Proper network configuration reduces visual inconsistencies, improves hit registration feel, and minimizes the impact of latency.
Essential Network Commands
- rate 786432: Maximum bandwidth in bytes per second — set to the maximum to allow the server to send full updates
- cl_interp 0: Client-side interpolation delay — setting to 0 lets the game calculate the optimal value automatically
- cl_interp_ratio 1: Interpolation ratio — use 1 for stable wired connections, 2 for wireless or unstable connections
- cl_updaterate 128: How often the client requests updates from the server — set to 128 for maximum update frequency
- cl_cmdrate 128: How often the client sends input updates to the server — match this with cl_updaterate
Understanding Interpolation
Interpolation smooths the gap between server updates by predicting player positions between ticks. Lower interpolation values reduce the visual delay but can cause jittering on unstable connections. A cl_interp_ratio of 1 provides the lowest interpolation delay for reliable connections, while 2 adds a buffer for connections with packet loss.
Diagnosing Network Issues
Enable the network graph with net_graph 1 to monitor your connection in real time. Watch for loss (packet loss percentage), choke (outgoing packet throttling), and variance in ping. High loss or choke values indicate network problems that no amount of config tuning can fix — address the underlying connection issue instead.
Launch Options Explained
Launch options are command-line parameters passed to CS2 when it starts. They configure engine-level behavior that cannot be changed through in-game settings or console commands during runtime.
Recommended Launch Options
- -novid: Skips the Valve intro video on startup — saves a few seconds on every launch
- -high: Sets the CS2 process to high priority in Windows — can improve performance on systems with many background processes
- +exec autoexec.cfg: Executes your autoexec configuration file on launch
- +fps_max 0: Uncaps framerate from the start — avoids temporary cap during loading
- -console: Opens the developer console on startup
Launch Options to Avoid
- -threads: No longer does anything meaningful in CS2 — the engine manages threading automatically
- -tickrate 128: Obsolete — CS2 uses sub-tick architecture and this parameter has no effect
- -nod3d9ex: Does not apply to CS2 which uses DirectX 11 / Vulkan
- -lv: Low violence mode — not supported and has no effect in CS2
How to Set Launch Options
Right-click Counter-Strike 2 in your Steam library, click Properties, and enter your launch options in the text field. Separate multiple options with spaces. Launch options take effect the next time you start the game — no restart is needed if CS2 is not currently running.
How to Backup and Restore Settings
Backing up your config ensures you can quickly restore your settings after a reinstall, hardware change, or when setting up a new computer.
What to Back Up
- autoexec.cfg: Your primary custom config file with all personal settings
- cs2_machine_convars.vcfg: Machine-specific settings including video and audio
- cs2_user_convars.vcfg: User preferences including crosshair, binds, and gameplay settings
- Any custom .cfg files: Practice configs, warmup configs, or custom bind configurations
Backup Methods
Copy your cfg folder to a safe location — cloud storage (Google Drive, Dropbox, OneDrive), a USB drive, or a dedicated backup folder. If you use an autoexec.cfg with all your important settings, backing up that single file is often sufficient. Consider using version control (Git) if you frequently experiment with settings.
Restoring Settings
To restore, copy your backed-up config files into the CS2 cfg folder, overwriting the existing files. Launch CS2 with +exec autoexec.cfg in your launch options. Verify your settings are applied by checking key binds, crosshair appearance, and video settings in-game.
How to Reset Settings to Default
If your configuration becomes corrupted, causes issues, or you simply want a fresh start, you can reset CS2 settings in several ways.
Full Reset
Navigate to your CS2 cfg folder and delete or rename the following files: cs2_machine_convars.vcfg, cs2_user_convars.vcfg, and any custom .cfg files. Launch CS2 and the game will regenerate default configuration files. You will need to reconfigure your keybinds, crosshair, video settings, and any custom preferences.
Partial Reset
To reset only specific categories, use the in-game settings menu. Each settings tab (Video, Audio, Controls, Game) typically has a Reset to Default option. This approach preserves your other settings while resetting only the selected category.
Steam Cloud Considerations
CS2 may sync settings through Steam Cloud. If you reset locally but Steam Cloud restores old settings, you may need to disable Steam Cloud sync for CS2 temporarily. Right-click CS2 in Steam, select Properties, and uncheck Steam Cloud synchronization. Perform your reset, then re-enable cloud sync if desired.
Sharing Configs with Others
Sharing your configuration is useful for team standardization, helping friends set up their game, or publishing your settings for the community.
Sharing Your Autoexec
The simplest method is to share your autoexec.cfg file directly. Send the file via Discord, email, or any file-sharing platform. The recipient places it in their CS2 cfg folder and adds +exec autoexec.cfg to their launch options. Include comments in your autoexec explaining what each section does so the recipient can customize settings to their preference.
Sharing Individual Settings
For specific settings like crosshair codes, use the in-game crosshair sharing system. CS2 generates shareable crosshair codes that can be applied through the settings menu. For other settings, share the relevant console commands as text that the recipient can paste into their console.
Team Standardization
Competitive teams often standardize certain settings across all players. Common standardized settings include network rates, voice communication binds, and team-specific utility keybinds. Create a shared team.cfg that players exec alongside their personal autoexec to maintain consistency.
Frequently Asked Questions
Where is the CS2 config file located?
On Windows, the CS2 config files are located at C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\game\csgo\cfg\. On macOS, check ~/Library/Application Support/Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/. On Linux, look in ~/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/game/csgo/cfg/.
Does autoexec.cfg still work in CS2?
Yes, autoexec.cfg works in CS2. Create a file named autoexec.cfg in your CS2 cfg folder and add the launch option +exec autoexec.cfg. CS2 will execute all commands in the file every time the game launches. Some commands from CS:GO may have been removed or changed in CS2.
What are the best launch options for CS2?
Recommended launch options include -novid (skips intro video), -high (sets process priority to high), and +fps_max 0 (uncaps framerate). Avoid outdated options like -threads or -tickrate as these no longer apply in CS2. Keep launch options minimal — most settings belong in your autoexec.cfg.
How do I reset CS2 settings to default?
To reset all settings, delete or rename the config files in your CS2 cfg folder (particularly cs2_machine_convars.vcfg and cs2_user_convars.vcfg), then launch the game. CS2 will regenerate default config files. You can also use the in-game settings menu to reset individual categories like video, audio, and controls.
What network settings should I use in CS2?
Set rate to 786432 for the maximum bandwidth allowance. Use cl_interp_ratio 1 for a wired connection or cl_interp_ratio 2 for wireless. Set cl_interp 0 to let the game calculate the optimal interpolation value automatically. These settings minimize the delay between server updates and what you see on screen.