Doom 3 Tweak Guide
[Page 7] Advanced Tweaking
You can change more than just the settings available under the in-game menus in Doom 3. Since it is based on a highly advanced engine, there are many, many variables which can be adjusted to alter the way in which Doom 3 looks, sounds and operates on your machine. Why would we want to alter these variables - shouldn't the programmers who designed the game know best and have already set them up optimally? Well of course they do, and yes Doom 3 is heavily optimized already. But there are so many different combinations of PC hardware and software that it is impossible for any games developer to customize the game to suit your machine perfectly. So tweaking command variables means you can further customize the engine to run at its best on your particular setup. Furthermore, since you can alter many of the settings within the game to suit your personal preferences, so too there are many more finicky settings you can access in the console to further refine image quality and controls to suit your tastes. Tweaking is not something people do to appear cool, nor is it a waste of time. It yields real performance improvements and allows you to exercise your right to have the game looking and feeling precisely how you want it to.
There are two main ways in which you can access and alter command variables in Doom 3 - through the Console and through .cfg (Config) files. To save time in this guide, I detail all the major commands one by one in the next section, and you can then decide the method to use to implement particular ones. The methods are essentially interchangeable, meaning changing the variable using one method has the same impact as doing it another way - the only difference is which is more convenient for you. These methods are detailed below:
The Doom 3 Console
The console is the closest you can get to having direct real-time access to Doom 3's engine. Through the console you can enter commands to change engine variables during the game. To open the console, start Doom 3 and then press the CTRL, ALT and ~ keys together (in some countries you will have to press CTRL, ALT and the key directly beneath the ESC key if ~ doesn't work). You will see the console come down, and you can enter text at the command prompt. A list of commands you can enter are covered in the next section. To make regular access to the console easier, enter the following line into the console:
set com_allowconsole 1
This means that you can now open and close the console by simply pressing the '~' key (the key above TAB), and not three keys at once. Note that to make this setting (and many other settings) "stick", i.e. remain enabled even after quitting and restarting Doom 3, you will need to insert it into a Config file, or in the game icon's Target line, both of which are covered below.
Doom 3 Config Files
Although you can alter many variables by entering them into the console, most command variables need to be set each and every time you start Doom 3. This is because the game engine resets these variables to their default state as the engine initializes at startup. By default, when the game engine starts, it automatically detects the presence of, and runs the command variables from two specific files: DoomConfig.cfg and AutoExec.cfg. DoomConfig.cfg already exists in your \Doom 3\base\ directory, and you can edit it using a text editor like Windows WordPad or Notepad. However changing some of the settings in DoomConfig.cfg will see them reset to default values again the next time you restart Doom 3. So the best thing to do is create a new text file, rename it to "AutoExec.cfg" (without quotes) and place it in your \Doom 3\base\ directory. You can now enter all your custom tweaks and settings into this file, and they will come into effect automatically each and every time you start Doom 3. This makes it easier to keep track of what you have tweaked, and if at any time you want to remove all your tweaks, you can simply delete the AutoExec.cfg file.
Note that there is another way of executing a config file, and that is to firstly create a config file with any name you wish, e.g. MyTweaks.cfg, place it in the \Doom 3\base\ directory, and then in the Doom 3 console at any time type:
exec MyTweaks.cfg
This will run all the command variables in your new .cfg file, however unless you actually execute this file it will not be automatically run at startup time - only DoomConfig.cfg and AutoExec.cfg are automatically detected and run by Doom 3.
Doom 3 Icon Commands
There is one more way you can run command variables for Doom 3 - enter them as part of the command line for the Doom 3 icon. To do this, first right-click on the icon you use to launch Doom 3, and then select Properties. In the Target box, you will see something like this:
"C:\Program Files\Doom 3\Doom3.exe"
You can add command variables to the end of this line by using a space and then a '+' sign in front of each command. For example, to allow easy access to the console each time you start Doom 3, change the target line to the following:
"C:\Program Files\Doom 3\Doom3.exe" +set com_allowconsole 1
Note that there are quotes around the target to the Doom3.exe file, but after that, simply add a space and a plus sign before each command. Another example is provided below with two commands:
"C:\Program Files\Doom 3\Doom3.exe" +set com_allowconsole 1 +set r_gamma 1.3 +disconnect
This means that every time I use this icon to launch Doom 3, it changes my console to one-key access (using the '~' key), changes my gamma from 1.0 to 1.3, and skips the introductory movie. Note the spacing - none between the plus signs and command, but a single space between each separate command.
So Which Way Is Best?
Now you know how to apply command variables in the Doom 3 engine, as I mentioned before, there is no single way which is the "best way". Each method works, it just depends on what you find more convenient. I personally prefer to place all my tweaks in a single AutoExec.cfg file, because that way I can see at a glance all the settings I've changed, and if need be I can remove the file (e.g. for troubleshooting purposes), or change each setting back to default. I can also easily back up this file so I can quickly reapply the same tweaks if ever I reinstall Doom 3, or if my settings are lost after I patch the game.
However, I suggest that you use the in-game console to try some commands and what effect they have on the game, and then you can insert them into your AutoExec.cfg file once you've determined if they're worth using, and which values work best for you. Some commands are only really useful if used in the console - for example the "recorddemo" command records a custom demo...not something you want to have in your AutoExec.cfg file at any point. Also note that certain commands don't come into effect until the game is restarted (e.g. if vid_restart is used), so you will have to experiment by placing those in your AutoExec.cfg first, see what they do, and then decide whether to keep them or not.
Importantly, if you are going to edit DoomConfig.cfg, first make a backup of the file so that should something go wrong you can restore the file to its original state. Also, some people recommend that you make changes to DoomConfig.cfg and then make the file read only to prevent the game from erasing/resetting some of the changed settings. I personally don't recommend this, as Doom 3 needs to have write access to DoomConfig.cfg so that for example when you change one of the in-game settings or a key binding, it can record the change in that file.
The next section provides a list of all the game's command variables, and descriptions for most of them.