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
- Right-click
config.cfg→ Properties → uncheck Read-only if checked → OK. - Open
config.cfgwith Notepad. - 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" - Save the file (Ctrl+S).
- Launch CS 1.6 and verify the settings applied correctly.
- 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
- Open your
cstrikefolder. - Right-click inside the folder → New → Text Document.
- Name it exactly
userconfig.cfg— make sure the extension is.cfg, not.cfg.txt. - Open it with Notepad and add your settings (see the What to Save section below).
- Save the file.
Link userconfig.cfg to autoexec.cfg
autoexec.cfg runs automatically every time CS 1.6 launches.
- Check if
autoexec.cfgexists in yourcstrikefolder. If not — create it the same way as userconfig.cfg. - Open
autoexec.cfgwith Notepad. - Add this line:
exec userconfig.cfg - 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.
