CS-Nation

Covering the future of Counter-Strike
advanced tutorial - ingame controls menu
What is the Ingame Controls Menu
The Ingame controls menu is the section in where you can assign keys to certain functions. Nearly all FPS games have a section where you can assign keys to certain functions, but unlike other games, HL allows you modify the section and customize it to your needs.

If you're clueless as to what menu I'm talking about, use these images as reference:

How do I convert my script to use the Ingame Control Menu.
It's actually quite simple to convert a script to use the Ingame Control Menu as long as you do not use binding inside your script. Unfortunatly, metabinds are not possible without A LOT of changes and screwing around and for those reasons I wont go into it here. If you need to do a toggle/cycling/switching alias use a extra alias.

For example:

alias float_on "bind f1 float_off; +moveup"
alias float_off "bind f1 float_on; -moveup"
Should become:
alias float_t "float_on"
alias float_on "alias float_t float_off; +moveup"
alias float_off "alias float_t float_on; -moveup"

Making/Modifing the file
1) Open up windows explorer and navigate your way to your half-life\cstrike directory and then go into the gfx directory, then the shell directory. Look for the file named kb_act.lst and open it in notepad or something similar. It should look something like this:
"buy"
"buyammo1"
"buyammo2"
"buyequip"
"chooseteam"
"radio1"
"radio2"
"radio3"
"nightvision"
"+attack"
"+attack2"
"+reload"
"drop"
"invprev"
"invnext"
"lastinv"
"+use"
"impulse 100"
"impulse 201"
"+forward"
"+back"
"+left"
"+right"
"+moveleft"
"+moveright"
"+speed"
"+jump"
"+duck"
"+moveup"
"+movedown"
"+lookup"
"+lookdown"
"centerview"
"+strafe"
"+mlook"
"+klook"
"slot10"
"slot1"
"slot2"
"slot3"
"slot4"
"slot5"
"slot6"
"slot7"
"slot8"
"slot9"
"+showscores"
"showbriefing"
"messagemode"
"messagemode2"
"snapshot"
"quit"
"Buy Menu"
"Buy Primary Ammo (Optional)"
"Buy Secondary Ammo (Optional)"
"Buy Equipment Menu (Optional)"
"Select Team"
"Standard Radio Messages"
"Group Radio Messages"
"Report Radio Messages"
"Turn nightvision on/off"
"Fire"
"Weapon Special Function"
"Reload weapon"
"Drop Current Weapon"
"Previous weapon (Optional)"
"Next weapon (Optional)"
"Last used weapon (Optional)"
"Use item (buttons, scientists, ...)"
"Flashlight"
"Spray logo"
"Move forward"
"Move back"
"Turn left"
"Turn right"
"Move left (strafe)"
"Move right (strafe)"
"Walk"
"Jump"
"Duck"
"Swim up"
"Swim down"
"Look up"
"Look down"
"Reset view"
"Strafe modifier"
"Mouse look"
"Keyboard look"
"Menu Item 0"
"Menu Item 1"
"Menu Item 2"
"Menu Item 3"
"Menu Item 4"
"Menu Item 5"
"Menu Item 6"
"Menu Item 7"
"Menu Item 8"
"Menu Item 9"
"Display multiplayer scores"
"Recap Mission Briefing(Optional)"
"Chat message"
"Team Chat message"
"Take screen shot"
"Quit game"

2) Ok The first section on the left in quotes is the alias/function name, and the second on the right is the description you want the end user to see. I'll use my previous floating alias from above as a Example. If I wanted to add the floating alias I would add the following to the kb_act.lst file and it would appear in the menu ingame.

"float_t"
"Floating Toggler"
3) You can also use add 'comments', inside the controls menu which will be visible by the end user. This is achieve by putting the word 'blank' as the function/alias (Note: you can also just put a space between the quotes). For example if you wanted to add a 'version indicator' so people know which version of your script a person is using you would do this.

"blank"
"You are running Version XXX"
4) Just save the file, load up CS and go to the controls menu. Please keep in mind that there is size limitations on how long the description of a alias can be in the kb_act.lst (it could get cut off) and there is also a physical limitation on the size of the file, but you will probably never run into that.