Counter-strike 1.6 Key Bindings Not Working Causes and Fixes

Last updated: May 6, 2026

Key bindings in Counter-Strike 1.6 stop working for a few specific reasons – a server overwrote your config, a conflicting bind is blocking the command, the syntax was typed incorrectly, or the bind was not saved permanently. This guide covers every fix and includes a complete bind syntax reference so you can set up and protect your binds correctly. If your installation is corrupted, download Counter-Strike 1.6 first.

CS 1.6 Key Bindings Not Working – Causes

Symptom Cause Fix
Specific key does nothing Bind was cleared or overwritten by server Rebind the key, save in autoexec.cfg
All binds reset after joining a server Server sent stuffcmd to overwrite config.cfg Set config.cfg and autoexec.cfg to Read-only
Key works sometimes but not always Two commands bound to same key, conflict Check bindlist, unbind then rebind correctly
Buy bind does nothing Outside buy zone or after buy phase ended Normal behavior – buy binds only work in buy zone during buy phase
Bind set in console but lost after restart Bind not saved to config.cfg or autoexec.cfg Add bind to autoexec.cfg permanently
Console shows bind but key still does nothing Wrong key name used in bind command Check correct key names – see special keys table below

Correct Bind Syntax

The bind command in CS 1.6 follows this exact structure:

bind "KEY" "command"

Both KEY and command must be in quotation marks. Key names are not case-sensitive. Examples:

bind "F1" "buy ak47"
bind "SPACE" "+jump"
bind "MWHEELUP" "+jump"
bind "mouse3" "slot3"
bind "v" "+voicerecord"

Common syntax mistakes that silently fail:

Wrong Correct Problem
bind F1 buy ak47 bind "F1" "buy ak47" Missing quotes – only first word of command executes
bind "F1" buy ak47 bind "F1" "buy ak47" Missing quotes around command – ak47 is ignored
bind "f1" "+buy ak47" bind "F1" "buy ak47" + prefix only works with engine actions like +jump, not buy commands

Check Your Current Binds

Open the developer console (~) and type:

bindlist

This lists every active bind. Look for:

  • Your missing bind – if it is not in the list, it was cleared
  • Duplicate binds – same key assigned to two different commands
  • Wrong command – bind exists but points to wrong action

To check a specific key’s bind:

bind F1

The console shows what F1 is currently bound to. If it returns nothing – the key is unbound.

Fix a Specific Bind

To fix a single bind without touching others:

  1. Open console (~).
  2. First unbind the specific key:
    unbind "F1"
  3. Then set the correct bind:
    bind "F1" "buy ak47"
  4. Type writecfg to save to config.cfg.

Do not use unbindall unless you want to reset every single bind including movement keys (W/A/S/D), jump (SPACE), fire (mouse1), and everything else. That command removes all binds without warning.

Fix Conflicting Binds

If a key is bound to two commands, only one executes. This happens when scripts or configs add a bind to a key that already has one.

  1. Type bindlist in console and look for duplicates.
  2. Unbind the conflicting key:
    unbind "KEY"
  3. Rebind with the correct command.
  4. Save with writecfg.

Fix Binds Resetting After Server Join

Some servers send console commands to clients using stuffcmd – this can overwrite your config.cfg, clear binds, or set unwanted cvars. This is called slowhacking and is the most common reason binds reset after joining a server.

The fix is to make your config files Read-only so servers cannot write to them:

  1. Add all your binds to autoexec.cfg in your cstrike folder.
  2. Right-click autoexec.cfg → Properties → check Read-only → Apply.
  3. Right-click config.cfg → Properties → check Read-only → Apply.
  4. Rejoin the server – your binds now survive the connection.

If config.cfg is Read-only, CS 1.6 cannot write new settings to it – including server-sent overwrites. Your binds stay exactly as you set them.

Save Binds Permanently in autoexec.cfg

Binds set in console are saved to config.cfg which can be overwritten by servers. The safest place for binds is autoexec.cfg – it executes on every game launch before any server connection.

  1. Navigate to your cstrike folder:
    • Steam: Steam\steamapps\common\Half-Life\cstrike\
    • Non-Steam: Counter-Strike 1.6\cstrike\
  2. Open or create autoexec.cfg with Notepad.
  3. Add all your binds:
    bind "F1" "buy ak47"
    bind "F2" "buy m4a1"
    bind "F3" "buy vesthelm"
    bind "F4" "buy hegrenade"
    bind "MWHEELUP" "+jump"
    bind "MWHEELDOWN" "+jump"
    bind "v" "+voicerecord"
  4. Save the file.
  5. Set autoexec.cfg to Read-only.

Useful CS 1.6 Binds Reference

Bind Command Effect
bind "F1" "buy ak47" buy ak47 Instantly buy AK-47
bind "F1" "buy m4a1" buy m4a1 Instantly buy M4A1
bind "F2" "buy vesthelm" buy vesthelm Buy Kevlar + Helmet
bind "F3" "buy hegrenade" buy hegrenade Buy HE Grenade
bind "F4" "buy flashbang" buy flashbang Buy Flashbang
bind "F5" "buy smokegrenade" buy smokegrenade Buy Smoke Grenade
bind "F6" "buy defuser" buy defuser Buy Defuse Kit (CT)
bind "MWHEELUP" "+jump" +jump Scroll wheel jump for bhop
bind "MWHEELDOWN" "+jump" +jump Scroll wheel jump for bhop
bind "q" "lastinv" lastinv Quick switch to last weapon
bind "v" "+voicerecord" +voicerecord Push-to-talk voice chat
bind "n" "nightvision" nightvision Toggle night vision goggles
bind "KP_END" "buy awp" buy awp Numpad 1 to buy AWP

For a complete list of all buy commands with prices, see the CS 1.6 key bind generator.

Special Key Names for CS 1.6 Bind Command

Some keys have specific names in CS 1.6 that differ from what you might expect:

Physical Key CS 1.6 Name Example
Scroll wheel up MWHEELUP bind "MWHEELUP" "+jump"
Scroll wheel down MWHEELDOWN bind "MWHEELDOWN" "+jump"
Middle mouse button mouse3 bind "mouse3" "slot3"
Mouse button 4 (side) mouse4 bind "mouse4" "+jump"
Mouse button 5 (side) mouse5 bind "mouse5" "buy hegrenade"
Numpad 0-9 KP_INS, KP_END, KP_DOWNARROW… bind "KP_END" "buy awp"
Numpad Enter KP_ENTER bind "KP_ENTER" "buy ak47"
Page Up PGUP bind "PGUP" "buy vesthelm"
Page Down PGDN bind "PGDN" "buy hegrenade"
Left Ctrl CTRL bind "CTRL" "+duck"
Left Shift SHIFT bind "SHIFT" "+speed"
Tilde / Grave Cannot be bound Reserved for console

To find the exact name of any key – open console and type key_listboundkeys or press the key while the console is open. The console shows the key name.

Last Resort – Reset All Binds to Default

If your binds are completely broken and you want to start fresh:

  1. Open console (~).
  2. Type:
    unbindall
    exec keyboard.cfg
  3. This removes all binds and restores the default keyboard layout.
  4. Then manually add your custom binds one by one.
  5. Save everything to autoexec.cfg and set it to Read-only.

Alternatively, delete config.cfg from your cstrike folder entirely. CS 1.6 generates a fresh default config with all standard binds on next launch. Then add your custom binds on top.

If you want the most stable version, see all the available game resources plus you can click here for the download Counter-Strike 1.6 original setup.