Setting up Your Controls
Setting up your controls effectively and efficiently are keys to playing a good game of Quake. It's worth investing some time to tweak your controls so that you can focus on outplaying your opponent and not fighting your keyboard.
When I say 'controls', I'm actually talking about two distinct components.
- Physical assignment of keys on the keyboard and mouse
- Creation of an autoexec.cfg file to save key assignments, scripts, and other custom variables
Setting Up The Keyboard
Caveat
I will only address keyboard mouse combos here. While there are many other types of controllers you can use, I haven't tried them, so I can't really write an intelligent article about optimizing them for your game.
The key assignments are for Quake 3:Arena, but the basic principles hold true for any first person shooter.
Your configuration should be specific to the way you play. Everyone has their favorite set up and if anyone tells you that there is one best way to set up your controls, they're plain wrong. Copying another player's set up is a good way to get started, but you need to tweak it until it's right for you.
Principles
I follow three principles when setting up my controls:
- Comfortability. If you're like many people who play Quake for hours at a time, your configuration should allow you to comfortably rest your fingers on a small set of keys and minimize the stretching and reaching you have to do. This will let you play more effectively for a longer period of time.
- Key Efficiency. Ultimately, you want to have the smallest number of keys, which allows you access to all key weapons, movements, and other often-used commands. If you have too many keys or your scripts are too complex, you will begin losing track of what each key does. Additionally it's easy to accidentally hit the wrong button during a critical moment. I tend to use a lot of scripts in my autoexec to improve the flexibility of my configuration and reduce the number of keys I have to manage.
- Effectiveness. Last but not least, the configuration needs to work for you. What works for the top ranked player might be totally ineffective for you. This requires a little bit of thought on your part. As you play, think about what commands you are always using, which keys you always have to stretch for, and how keys might be more naturally arranged.
Key Assignment
Now mentally separate your keyboard into three pieces of real estate. I'll call them the Primary, Secondary, and Tertiary Zones. Where you assign keys should be a function of how critical the key is to your game. In many cases, what is important to one person is non-essential to another. For example, I have MOUSE2 bound to take screenshots, just because I like taking a lot of screenies. Other people don't take screenshots and would never have a critical key like MOUSE2 used for something so 'trivial'.
| Zone | Description | Commonly Bound Commands |
| Primary | Consists of 7-9 keys and all mouse buttons (my mouse only has 3 keys and the wheel). These should be the commands you need when you're in an intense life and death firefight. I can play an entire game without my fingers ever leaving these keys/buttons, which minimizes the amount of moving and reaching I have to do. | Attack
Forward/Backward
Strafe Left/Right
Favorite Weapons
Grapple
Weapprev/Weapnext
Jump |
| Secondary | Consists of the keys surrounding the Primary Zone. Getting to these keys require a minor stretch but are still easy to get to without removing most of your fingers from the Primary Zone. You should feel comfortable getting to these keys during the course of an active shoot out. | Scores
Crouch
Zoom
Other weapons
Button 2 and 3 (use)
Drop Rune (Coliseum only) |
| Tertiary | Tertiary keys require a major stretch to access and could require removing your hand from the Primary zone or the mouse. For this reason, the Tertiary Zone should contain non self-preservation critical keys. | Chat messages (this may differ if playing team games)
Demo controls
All other miscellaneous functions
FPS counter or Timer toggles |
If you're a beginner, launch Quake and go to the Main Menu. Select Controls and you will find all the commands nicely laid out, waiting for you to assign keys. If you are beyond that and already have an autoexec, edit from there. I do all of my config editing in my autoexec using Notepad.
Start off with figuring out which keys you want to use for movement. Once you have that figured out, assign the surrounding keys. Remember, as you move away from the Primary Zone, the commands and functions should be increasingly less important.
When you think you are finished, fire up a Skirmish game and play against a couple of bots to get a feel for the new config. Does it feel OK? Are you still stretching to get to a key? Did you forget something? If you need to tweak some more, get right back in and tweak away until your satisfied or too tired to care.
Here's what my keyboard layout looks like:
Maintenance
A good configuration should let you concentrate on the game, not make you fight your keyboard. If it doesn't work, tweak it and keep playing with your set up until you're happy. As you play, you'll also collect new scripts or change the way you play. In some cases, you will start playing mods with very specific key binds. Don't be afraid to tweak every now and then to adapt your key configuration to best support your most current style of play.
Adapting Your Configuration To New Games or Mods
If you’re like me, you play several FPS games (Unreal Tournament, Serious Sam, Counter-Strike) or lots of mods (Urban Terror, PwrWeapons, Weapons Factory, etc.), some of which have different key requirements than plan vanilla Quake 3. To keep things as simple as possible, I try to keep the basic keyboard set up the same for all games. However, each game has special keys or actions that are more important than in Vanilla Quake, so it’s warrents revisiting your keyboard layout. This new layout will get saved, as it’s own config so that I can execute it whenever I play.
It’s an easy process but you have to understand the differences between your standard game, whatever you play most often, and your new game or mod. I’ll use Urban Terror Beta 2.0 as a case example of how my basic Quake 3 config was adapted:
- Jumping is a key skill in Q3:A. You learn to strafe-jump, bunny-hop, and are constantly leaping from spot to spot. Because it is such a critical action, +moveup occupies a key spot in my primary zone, the SPACE key. However, in Urban Terror, I don’t jump very often. Each jump takes away from stamina and there are not as many occasions to jump around. Instead, there is a sprint function, which gives me a crucial burst of speed to cross danger areas like roads. In this case, +moveup gets moved to my tertiary zone and sprint gets the SPACE key.
- Urban Terror limits the number of weapons you can carry to 5. I have almost all of these weapons bound to 2 keys (primary – secondary, and sidearm – grenade). Because I have all of my weapons accessible through 2 keys, weapprev and weapnext are less important. Instead, I value the ability to rapidly scroll through zoom settings since I’m partial to weapons with scopes. Therefore I’ve moved weapprev and weapnext from my primary zone, the MOUSEWHEEL and replaced them with zoom in and zoom out.
- Urban Terror requires a separate key assignment to open doors and reload your weapons, pretty key activities in my book. Each of these gets assigned to the primary zone, reload in place of screenshot on MOUSE2 and open doors in place of the grapple. Bandaging yourself and your teammates is also a fairly common task, so bandages goes to the secondary zone.
- In a team game, general chatting with the field is probably less important then staying in touch with your buddies. I swapped the positions of messagemode (general chat) and messagemode2 (team only). In fact, I added a whole new section to my terror.cfg file assigning team communications binds to the keypad.
Each game or mod has it’s own set of keys that will be more of less important (buy commands in counterstrike, dodge and alternate fire mode in Unreal Tournament, etc.). Get into the game and really understand what is important in your existing configuration and what needs to be important in order to do well in the new game. Once you have a first pass complete, fire up a game and give it a go. I tweaked my Urban Terror configuration for an evening before I got it just how I want it.
Back to Index
Setting Up The Autoexec File
Building a solid autoexec.cfg file is the second step to setting up your controls. The autoexec is a file that will be executed whenever Quake is launched. It should contain all of the key button assignments, settings, commands, bindings, and scripts that you may want to change every now and then.
The reason you will want to save all of your settings in an autoexec file is that Quake will not overwrite the autoexec.cfg while it will overwrite q3config.cfg every time you start the game. Additionally, q3config.cfg does not save scripts.
Caveat
What you add to your autoexec is very much a personal decision. Like the keyboard setup, what works for one person, might not work for you. It will take a little bit of thought and experimentation. However, copying someone else's autoexec is often a good way to get started. There is a link to my autoexec at the bottom of the page if you want to take a look.
Creating An Autoexec File
If you don't have your own autoexec file, create one by opening notepad and typing the following line:
seta model "mynx/blue"
Save it to your /baseq3 directory as "autoexec.cfg". You have to encase the filename within the quotes. Notepad has a nasty habit of adding a .txt extension on files. Verify that the .txt extension did not get tagged on. Make sure you have "hide extensions of files with known file types" turned off so you can see what type of files it is. If you did it right, when you launch Quake, you should be wearing the Mynx skin instead of your regular skin.
Organizing the Autoexec
The autoexec loads binds and settings from top to bottom. This means that if you bound the same key to two functions or have two conflicting settings; the last one listed will be the active when the game starts.
I've organized my autoexec in a couple of discrete sections for better organization and to facilitate sharing of sections such as server lists and communications binds. This way, I always know where to look for something, or if I'm helping someone who used my autoexec as a base, I can walk him or her through problems.
| Section | Typical Commands/Variables (examples) |
| Player Setting. Commands that define who I am in the game. Unique to me. | name
model headmodel |
| Video and Network Settings. Commands and variables, which affect my visual quality and connection to the Net. Unique to my system. | rate
com_maxfps
r_vertexlighting
cg_drawgun |
| Misc Game Settings. Unique to my game playing/viewing preferences. | cg_fov sensitivity
cg_drawcrosshair |
| Movement Settings. Unique to the way I play, but can be shared with others. | forward/back
moveright/moveleft
button 5 |
| Weapons Settings. Unique to the way I organize my weapons, but can be shared with others. | Weapon binds
Zoom |
| Function Keys. Mostly used for toggles that turn information on and off | cg_drawFPS
cg_drawtimer
cg_drawthirdperson |
| Other Game Commands. Unique to the way I play, but can be shared with others | scores
screenshot
Start and Stop recording a series of 5 demos
Binds to exec configs for other games (pwrweapons.cfg, terror.cfg) |
| Executables. Separate files that execute during the start up process, but are meant for sharing with others. In the case of team communication binds or server lists, I can e-mail them to teammates so that we are all using the same messages. |
Comm.cfg
Serverlist.cfg
demo.cfg |
| Scripts. Scripts and toggles that can be shared with others. | 7 Multiple weapon scripts (includes TA weapons)
Demo recording script
3x - 6x zoom toggle |
When you want to edit your autoexec, use Wordpad or Notepad as your editing tool. Try to keep the autoexec as neat as possible and use //comments to help annotate what different commands do. Quake will not execute anything that follows a pair of double-backslashes (//).
Example of //
Maintenance
Just like you have to tweak your keyboard configuration and keep it up-to-date, you have to do the same for your autoexec. Over time, you'll add new scripts, reassign binds, update your hardware, etc that will require changes to the file. Play with it until you get it just right.
Back to Index
Troubleshooting Your Control Setup
If you're thinking about tweaking your control configuration, start by asking a few diagnostic questions:
- Are you always reaching to get at critical keys?
- Do you store all of your custom bindings and settings in Q3config.cfg?
- Do you lose track of what each key does during games?
- When you edit your autoexec.cfg, do you have a difficult time finding the line you want to edit?
- Do you have a lot of keys that pretty much do the same thing?
A few people have asked to review their autoexec files and I've found some common themes:
- Using the arrow keys for movement. This is usually a holdover from old DOOM days, but some people persist in using the arrow keys for movement because that is what they learned on. For starters, you might consider moving your movement keys to either a WASD/ESDF configuration or use the keypad - depending on whether you're left or right handed. The arrow keys are almost always an inefficient choice because, on most keyboards, there are no other keys that are contiguous around them. This means, that in order to execute any other command other than move, you are forced to stretch.
- Multiple and redundant binds. There are several reasons that multiple keys can end up bound to the same or similar functions. Sometimes you delete scripts and forget to reassign the keys, other times, you might have a button bound to show the FPS counter and another counter to remove it. Start off by cleaning up your autoexec and removing inactive binds. You might be surprised at how much extra space you find. Next, see if there are scripts or toggles that can help you consolidate keys. I use a lot of two-weapon toggles and other keys bound to turn the timer or FPS counter on and off. There isn't space here to talk about scripts, but you can visit The Bind or my scripting tutorial for a quick tutorial.
- No organization to the autoexec. Often times, I see people who have used q3config.cfg as the basis for their autoexec but haven't bothered to reorganize or group similar functions. My Quake 2 config is like this. In the case of key assignments, q3config lists them alphabetically. This may help you identify which keys are free, but if you are trying to bind movement keys, you'll have to hunt all over the place. Likewise, when I bind weapons, I want to look at key assignments as a group because 1) I want to make sure I haven't left anything out and 2) I want to see where the keys are in relation to one another. Do whatever works best for you, but grouping keys somewhat will make editing your autoexec a little easier.
- Leaving weapons assigned to the default number keys. 1-0 are the default assignments for weapons but you probably want to consolidate your weapon assignments to 1-6 and one or two closer to your movement keys. 7-0 are probably too far away from your Primary Zone to reach effectively, especially since some of the more powerful weapons are numbered higher. Group them into a tighter group and pick one or two of your favorite weapons and move them where you can most easily access them.
Remember, have fun and just play the game!
Back to Index
Additional Resources
Ifurita's Basic Scripting Tutorial
Ifurita's Autoexec
Console Commands and Variables
The Bind:Arena
Go back to Quake 4 Dummies