DOOM 3 Hints

Modifying DEF files

  • This is quite a bit different from using the console to enter simple cheat codes and change environment variables. DEF files define attributes for game entities, such as monsters, weapons, etc. It can be fun to play around with some of the values, but you have to be careful since they can affect gameplay in unpredictable ways.

    In order to find the DEF files, you'll need a program like WinRAR to look into the PK4 files in the "Program Files\Doom 3\base" directory on your hard drive. The "def" directory is compressed into the file PAK004.PK4, so load it up with WinRAR. Click on the "def" directory to select it, then choose to extract it to your "base" directory. The game will see the extracted DEF files and use them instead of referring to the PK4 file. This is done so you can edit the files however you want to and then "restore" back to the originals simply by deleting the new "def" directory. (You can also delete individual DEF files from the directory to cause the game to revert to the PK4 for those items only.)

    Once you've extracted the "def" directory, use Microsoft Notepad to load up any file in it that sounds interesting to monkey around with. For instance, you can load up the monster files and give them fewer hit points, or the weapon files to make weapons much more powerful.

    As an example, load up the "weapon_pistol" file and search for "damage" (quotes included). There should be a 14 in quotes a little ways to the right of the word "damage" on the same line. Change the 14 to any number you like to alter the power of a bullet fired by the pistol. For instance, a value of "1000" would kill any non-boss monster in one shot.

    For another example, consider that most monsters' attacks (esp. melee attacks) will knock your character around, greatly spoiling his aim and making you dizzy. Setting the g_knockback variable to zero isn't enough to fix this (though it does keep you from being pushed backward by melee attacks). Search a monster's DEF file for the terms "kick_time" and "dv_time" and change the value of all instances found to zero. That'll help keep your marine steady under fire.