CS 1.6 Settings Keep Resetting? How to Save Them Permanently

Last updated: May 4, 2026

CS 1.6 settings reset after every launch or get overwritten when joining servers because config.cfg has no write protection and servers can push their own settings to your client. This guide covers every method to save settings permanently — config.cfg editing, userconfig.cfg setup, autoexec.cfg, and read-only protection. If your installation is corrupted and configs do not save at all, download a clean CS 1.6 build first.

Why Settings Reset

CS 1.6 settings reset for one of four reasons:

Cause What Happens Fix
Server overwrites config Server pushes settings via stuffcmd when you join — resets sensitivity, crosshair, binds userconfig.cfg + read-only
config.cfg not writable Windows blocks the game from saving changes — settings appear to apply but reset on next launch Uncheck Read-only on config.cfg, run as Admin
config.cfg is Read-only Your changes in-game never save because the file is protected Temporarily remove Read-only, make changes, re-enable
Corrupted config.cfg File contains broken syntax — game falls back to defaults Delete config.cfg, CS 1.6 creates a new one on next launch

Method 1: Edit config.cfg Directly

config.cfg stores all in-game settings. Editing it directly and setting it to Read-only is the simplest permanent solution.

Find config.cfg

Version Default config.cfg Location
Steam C:\Program Files (x86)\Steam\steamapps\common\Half-Life\cstrike\config.cfg
Non-Steam C:\Games\Counter-Strike 1.6\cstrike\config.cfg

Edit and save settings

  1. Right-click config.cfg → Properties → uncheck Read-only if checked → OK.
  2. Open config.cfg with Notepad.
  3. Find the settings you want to change and edit the values. Example:
    sensitivity "2.0"
    cl_crosshair_color "50 250 50"
    volume "0.8"
    hud_fastswitch "1"
  4. Save the file (Ctrl+S).
  5. Launch CS 1.6 and verify the settings applied correctly.
  6. Right-click config.cfg → Properties → check Read-only → OK.

Read-only after editing is critical — without it, the next server you join can overwrite your config.

Method 2: userconfig.cfg + autoexec.cfg

This is the recommended method for most players. Instead of editing config.cfg directly, you keep your personal settings in a separate file that loads automatically on every launch — and cannot be overwritten by servers.

Create userconfig.cfg

  1. Open your cstrike folder.
  2. Right-click inside the folder → New → Text Document.
  3. Name it exactly userconfig.cfg — make sure the extension is .cfg, not .cfg.txt.
  4. Open it with Notepad and add your settings (see the What to Save section below).
  5. Save the file.

Link userconfig.cfg to autoexec.cfg

autoexec.cfg runs automatically every time CS 1.6 launches.

  1. Check if autoexec.cfg exists in your cstrike folder. If not — create it the same way as userconfig.cfg.
  2. Open autoexec.cfg with Notepad.
  3. Add this line:
    exec userconfig.cfg
  4. Save the file.

Alternative — add exec to config.cfg: Instead of using autoexec.cfg, open config.cfg and add exec userconfig.cfg as the very last line. This also works but autoexec.cfg is cleaner because it survives config.cfg regeneration.

Set both files to Read-only

Right-click userconfig.cfg → Properties → check Read-only. Do the same for autoexec.cfg. Servers cannot overwrite Read-only files.

Read-Only Protection

Read-only prevents the game and servers from writing to your config files. This is the most important protection against settings resetting after joining servers.

File Set Read-only? Notes
config.cfg Yes — after editing Prevents server overwrites. Remove temporarily to make in-game setting changes.
userconfig.cfg Yes Servers cannot overwrite it. Edit in Notepad when changes needed.
autoexec.cfg Yes Prevents servers from injecting commands into your autoexec.

To temporarily edit a Read-only file: Right-click → Properties → uncheck Read-only → OK → edit → re-enable Read-only after saving.

What Settings to Put in userconfig.cfg

Put only the settings you have already configured and tested in-game. Do not copy a random config from the internet — different servers, ping ranges, and playstyles require different values. The categories below show what belongs in userconfig.cfg and what to avoid.

Safe to lock — these rarely need server-specific changes

// Mouse — use your own tested values
sensitivity "YOUR_VALUE"
m_filter "0"
m_customaccel "0"

// HUD
hud_fastswitch "1"
hud_draw "1"

// Audio
volume "YOUR_VALUE"
voice_enable "1"
voice_scale "1.0"

// Key bindings — add only the ones you use
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "b" "buymenu"

Lock carefully — depends on your setup

m_rawinput: Set to 1 if your build supports it — type m_rawinput 1 in console first. If console returns “Unknown command” your build does not support it — do not add it to userconfig.cfg.

fps_max: Do not set a fixed value without testing. Non-Steam builds commonly run at 100, 128, 200, or 300 FPS depending on server tickrate and personal preference. Steam version already manages this. Set whatever value you have tested and confirmed stable on your system.

gl_vsync: Set to 0 only if you have confirmed V-Sync causes issues on your system. Some monitors need it enabled.

Do not lock — must change per server or situation

rate, cl_updaterate, cl_cmdrate, ex_interp: These depend on server tickrate and your ping. Locking wrong values causes lag on servers with different configurations. Set these manually per server or leave them to server defaults.

cl_weather: This is a server-side variable on most servers — they will override it regardless of your config. No point locking it.

crosshair settings: Some servers reset crosshair via plugins. Lock them only if they are consistently reset — otherwise leave them in config.cfg.

Lines starting with // are comments — ignored by the game, useful for organizing your file.

Troubleshooting — Settings Still Resetting

Problem Cause Fix
Settings reset after launch autoexec.cfg not executing or exec line missing Verify exec userconfig.cfg is in autoexec.cfg or last line of config.cfg
Settings reset after joining server config.cfg not Read-only Set config.cfg and userconfig.cfg to Read-only
userconfig.cfg changes not applying File is Read-only — your edits are not saved Temporarily remove Read-only, edit, re-enable
File extension wrong Windows saved as userconfig.cfg.txt Enable “Show file extensions” in Windows Explorer, rename to remove .txt
Antivirus blocking writes Antivirus flags CS 1.6 config writes as suspicious Add CS 1.6 folder to antivirus exclusions
config.cfg keeps regenerating CS 1.6 deletes broken config and creates new one Check config.cfg for syntax errors — missing quotes or brackets break the file

Quick Reference

Action How
Find config.cfg CS 1.6 folder → cstrike → config.cfg
Create userconfig.cfg New text file in cstrike folder, rename to userconfig.cfg
Auto-load userconfig Add exec userconfig.cfg to autoexec.cfg or last line of config.cfg
Protect from server overwrites Set config.cfg, userconfig.cfg, autoexec.cfg to Read-only
Apply in-game changes permanently Remove Read-only → make change in game → re-enable Read-only
Reload userconfig mid-session Open console (~) → type exec userconfig.cfg

You can visit our main project page as well as use this link to download Counter-Strike 1.6 safely. If you enjoyed reading this.