Doom 3 Tutorials
This page contains a list of useful Doom 3 tutorials.
If you have or find any tutorials that are missing in this list please feel free to contact us.
Tutorials:
- Doom 3 Server auto download tutorial
- Doom 3 CD to a single DVD tutorial
- Doom 3 Custom mapcycle tutorial
- Doom 3 Custom flashlight tutorial
- Doom 3 Movie making tutorial
- Doom 3 Mp vchat fix tutorial
- Doom 3 Mapping tutorial
- Doom 3 Strafe jumping video tutorial
Doom 3 Server auto download tutorial
This tutorial will help you to setup the auto download function to your Doom 3 server.
Info:
Servers often run custom maps to give players a little more variety than the stock maps that come with Doom 3.
To allow players to join a server and get the extra files they need Doom 3 includes a simple system to automatically download files, which works well once you set it up correctly.
One thing to be clear on at the start is that the files that get downloaded do not come from the game server, it simply tells the player's copy of Doom 3 what extra files they need and where it can download them from. This can be either an http or an ftp server.
Auto download setup:
If you have "Phrantic II" and "Never Outgunned" on your Doom 3 server, the extra content that needs downloading to players would look like this (assuming the server is running on Windows):
C:\Program Files\Doom 3\base\map_swd3dm1.pk4
C:\Program Files\Doom 3\base\map_swd3dm2.pk4
You should place the copies for download on your web server with the files stored in a mirror folder structure, like this:
http://www.your-web-server.com/doom3/base/map_swd3dm1.pk4
http://www.your-web-server.com/doom3/base/map_swd3dm2.pk4
To configure the server for auto-download you need to set up some CVars in your server configuration file:
net_serverDownload
0 - Server doesn't provide any downloads
1 - Download requests will take the player to the web page set in the si_serverURL CVar - the game will shut down and open the web page.
2 - Server provides locations of the files required to Doom 3 on the player's PC. This value of 2 is what you need for auto-download.
net_serverDlBaseURL
This is the "root" folder on the download server where you have stored your files.
In the example above it would be "http://www.your-web-server.com/doom3".
This can be either an ftp or http location. (Do NOT put a slash on the end of the path or your auto-download may not work.)
net_serverDlTable
With Doom 3 (1.3 or 1.3.1) this has to be set to a list which included all of the files.
For the files in the example above you would use the setting below:
set net_serverDlTable "base/map_swd3dm1.pk4;base/map_swd3dm2.pk4"
Now add the following three lines to your Doom 3 server config file:
seta net_serverDownload "2"
seta net_serverDlBaseURL "http://www.your-web-server.com/doom3"
seta net_serverDlTable "base/map_swd3dm1.pk4;base/map_swd3dm2.pk4"
Save your Doom 3 server config file, then upload the following files: ("map_swd3dm1.pk4", "map_swd3dm2.pk4") on your web server with the correct folder structure.
Note: If you don't have your own download server create one for free on: 110MB.COM
Doom 3 CD to a single DVD tutorial
This tutorial will help you to backup your Doom 3 disks onto a DVD that will install Doom 3 completely onto your hard disk.
Notes:
You will need around 1.6 Gigs of free disk space to backup your Doom 3 disks.
Modification of Microsoft Installer files (MSI) requires a program such as "Orca" or something similar. (Orca is part of the Windows Installer SDK.)
If you install the Microsoft Platform SDK, you can get Orca. The full SDK is available from here:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
The Orca installer can be found by downloading these archives:
PSDK-FULL.11.cab
PSDK-FULL.12.cab
Inside those archives is the file "MSISDK-common.3.0.cab" (split between parts 11 and 12).
Inside that archive is a file called "Orca_Msi.FD66E721_5AA0_41BC_AA26_1EC8F7FA1175" - extract that someplace and rename it "Orca.msi" to allow you to install Orca by running the MSI file!
Instructions:
Create a folder called "DOOM3_DVD" on your hard drive.
Copy all files from CD1 to this folder.
Copy all .PK4 files from the "\Setup\Data\base" Folders from CD2 & CD3 to the "DOOM3_DVD\Setup\Data\base" folder on your hard drive (do NOT copy any other files from CD2 or CD3).
Open "Doom 3.msi" with Orca. On the left side of the program, scroll down and click on the "Media" selection.
Change "DiskPrompt" and "VolumeLabel" for each disk to "DOOM3_DVD" (this is what you will be labeling your DVD). Save and close Orca.
Optional: Want to be able to install DOOM 3 in something other than Windows 2000 or XP ?
Open the "Doom 3.msi" file with Orca again, scroll down to "LaunchCondition" on the left side of the screen, Right-click on "LaunchCondition" and select "Drop Table." Click "Yes" on the confirmation dialog, save and close Orca.
Burn all files to a DVD using your favorite burning program. Make sure to label the disc "DOOM3_DVD" (without quotes).
Doom 3 Custom mapcycle tutorial
This tutorial will help you to setup your own custom mapcycle file.
Info:
The mapcycle.scriptcfg file controls the server map rotation, the script is purged and reloaded at each map restart which happens on map change, but also when hitting GAMEON for persistance, you need to use the {get,set} Persistant functions.
Files with .scriptcfg extension can be loaded outside of pure paks. You can extract the default mapcycle.scriptcfg file from the pak000.pk4 file and drop it into the base folder.
mapcycle.scriptcfg example:
|
/* map cycling script sample - select with g_mapCycle the script is purged and reloaded at each map restart which happens on map change, but also when hitting GAMEON for persistance, you need to use the {get,set}Persistant functions files with .scriptcfg extension can be loaded outside of pure paks */ namespace mapcycle { void cycle() { // config float cycle_maps = 1; float cycle_gametypes = 0; // cycle maps and game types float replay_count = sys.getPersistantFloat( "replay_count" ); string si_gameType = sys.getcvar( "si_gameType" ); string si_map = sys.getcvar( "si_map" ); if ( replay_count <= 0 ) { // restart n times before next map if ( si_gameType == "Tourney" ) { replay_count = 3; } else { replay_count = 2; } } replay_count--; sys.setPersistantArg( "replay_count", replay_count ); if ( replay_count <= 0 ) { // restart n times before next map if ( si_gameType == "Tourney" ) { sys.setPersistantArg( "replay_count", 3 ); } else { sys.setPersistantArg( "replay_count", 2 ); } if ( cycle_maps > 0 ) { if ( si_map == "game/mp/d3dm1" ) { sys.setcvar( "si_map", "game/mp/d3dm2" ); } else if ( si_map == "game/mp/d3dm2" ) { sys.setcvar( "si_map", "game/mp/d3dm3" ); } else if ( si_map == "game/mp/d3dm3" ) { sys.setcvar( "si_map", "game/mp/d3dm4" ); } else if ( si_map == "game/mp/d3dm4" ) { sys.setcvar( "si_map", "game/mp/d3dm5" ); } else { sys.setcvar( "si_map", "game/mp/d3dm1" ); } } if ( cycle_gametypes > 0 ) { if ( si_gameType == "deathmatch" ) { sys.setcvar( "si_gameType", "Tourney" ); } else if ( si_gameType == "Tourney" ) { sys.setcvar( "si_gameType", "Team DM" ); } else if ( si_gameType == "Team DM" ) { sys.setcvar( "si_gameType", "Last Man" ); } else { sys.setcvar( "si_gameType", "deathmatch" ); } } } else { sys.say( "map cycle: restarting current map " + replay_count + " more time(s)" ); } } } |
Doom 3 Custom flashlight tutorial
This tutorial will help you to make a custom texture for your flashlight in Doom 3.
To make a custom texture for your flashlight in Doom 3, create a .pk4 file or copy one from your Doom 3 directory and clear it out.
You can use a compression program such as WinZip or WinRAR to open and compile .pk4 files.
Once you have an empty .pk4 file to work with, create a folder named "lights", (without quotes).
Grab the image you want to use and convert it to a .tga file (256 X 256 pixels is a good size).
Example image 1:

Example image 2:

Example image 3:

When you use the image it will be reversed, so mirror your image before saving it.
Name the image flashlight6.tga, place it in the lights folder and make sure that folder goes in your .pk4 file.
Then, rename the .pk4 file so it is the highest number in your Doom 3 directory.
For example, if you have a pak005.pk4 file already, you will have to name your new flashlight texture file pak006.pk4 for it to take effect.
Once you have renamed the file, place it in your base directory and start the game.
Doom 3 Movie making tutorial
This tutorial will guide you through the making of your own Doom 3 movie with ingame sound.
1 - Record a good demo.
Bring down the doom 3 console "CTRL + ALT + ~" and type "recorddemo".
The console will close and your session will be recorded until you die, send a "stoprecording" command, or quit to stop recording.
It defaults to "Doom 3\base\demos" and names it subsequently demo000.demo, if you don't supply any name to "recorddemo".
2 - Convert the demo to .tga frames.
Free up some diskspace, a long demo can easily eat up a few GigaByte.
Bring down the console and type "aviDemo demoname", for example:
"aviDemo demo000"
Your recorded demo will now playback and save screenshots for each frame.
This could take some time, but when it's done, quit Doom 3 and look in your "Doom 3\base\demos\demoname" folder. Here you will find the all the screenshots as .tga files.
Commands of intrest:
- com_aviDemoWidth "256" - output images width
- com_aviDemoHeight "256" - output images height
- com_aviDemoTics "2" - set FPS for output 1=15 | 2=30 | 3=45 | 4=60
- com_aviDemoSamples "0" - Smooth out edges with AA, try "16"
- af_timeScale "1" - set playback speed
- g_showHud "1" - show or hide hud
- com_showfps "1" - show or hide fps
- g_showPlayerShadow "0" - show or hide player shadow
- g_fov "90" - change Field Of View
- bind "f9" "recorddemo" - set the F9 button for start recording
- bind "f10" "stoprecording" - set the F10 button for stop recording
3 - Create an .avi video from your tga frames
Download this freeware program: pjBmp2Avi.rar
Start "pjBmp2Avi.exe" and select the path to your demo's screenshots folder in the "Directory" field.
For example: "C:\Program Files\Doom 3\base\demos\".
In the "Input Name" field type your recorded demo name.
For example: "demo000".
Change the file option from BMP to TGA. Now you should see a list of all the screenshots in the "Files" field.
You can also add game sounds to the video. Click Wave file and select the .wav that is stored in the same demo folder as the screenshots.
Go to "Output Options" and select path and name of the avi you wish to create.
For example: "C:\My_Doom3_movie.avi"
Click the Create button. An select a video codec when prompted, click "Ok" and the program will compile your .tga files to an avi file.
Once you have successfully created your avi file, the window will close (hopefully) and you're done!
Doom 3 Mp vchat fix tutorial
This tutorial will help you to fix the Multiplayer voice commands for Doom 3.
Info:
Doom 3 multiplayer has the ability to play audio chat lines in-game for purposes of taunting, congratulating, or for team-specific requests and instructions. In order to utilize this function, keys must be bound to them in the console. While this feature is unsupported, we will create a CFG file that when executed will bind the key-pad keys to those voice commands.
Here is a brief description of those bindings and their functions:
GENERAL KEYS
Keypad Insert = Great game
Keypad Minus = Hack
Keypad Del = That sucked
Keypad Slash = Die already
Keypad Plus = Switch channel (Global, Team)
GROUPS
Keypad Enter = Switch groups (Commands, Responses, Reports)
Commands
Keypad 1 = Cancel that
Keypad 2 = Pull back
Keypad 3 = Prepare for attack
Keypad 4 = Grab the armor
Keypad 5 = Cover me
Keypad 6 = Over here
Keypad 7 = Attack now
Keypad 8 = Move in
Keypad 9 = I'll take that
Reponses
Keypad 1 = I'm not ready
Keypad 2 = Negative
Keypad 3 = No way
Keypad 4 = Are you serious
Keypad 5 = I'm armed and ready
Keypad 6 = N/A
Keypad 7 = Yeah right
Keypad 8 = Roger
Keypad 9 = On my way
Reporting
Keypad 1 = I'm taking fire
Keypad 2 = I need a weapon
Keypad 3 = I need health
Keypad 4 = I have extra weapon
Keypad 5 = I have the armor
Keypad 6 = I have the powerup
Keypad 7 = Enemy has powerup
Keypad 8 = Enemy spotted
Keypad 9 = Item available
Creating Cfg files:
Create 6 .Cfg files (use notepad save with extention .cfg)
1 voice_global_commands.cfg
|
addChatLine "Voice : ^1Global ^1Commands" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChat voc_cancel_that" bind KP_DOWNARROW "clientVoiceChat voc_pull_back" bind KP_PGDN "clientVoiceChat voc_prepare_for_attack" bind KP_LEFTARROW "clientVoiceChat voc_grab_the_armor" bind KP_5 "clientVoiceChat voc_cover_me" bind KP_RIGHTARROW "clientVoiceChat voc_overhere" bind KP_HOME "clientVoiceChat voc_attack_now" bind KP_UPARROW "clientVoiceChat voc_movein" bind KP_PGUP "clientVoiceChat voc_ill_take_that" bind KP_PLUS "exec voice_team_commands.cfg" bind KP_ENTER "exec voice_global_responses.cfg" |
2 voice_team_commands.cfg
|
addChatLine "Voice : ^2Team ^1Commands" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChatTeam voc_cancel_that" bind KP_DOWNARROW "clientVoiceChatTeam voc_pull_back" bind KP_PGDN "clientVoiceChatTeam voc_prepare_for_attack" bind KP_LEFTARROW "clientVoiceChatTeam voc_grab_the_armor" bind KP_5 "clientVoiceChatTeam voc_cover_me" bind KP_RIGHTARROW "clientVoiceChatTeam voc_overhere" bind KP_HOME "clientVoiceChatTeam voc_attack_now" bind KP_UPARROW "clientVoiceChatTeam voc_movein" bind KP_PGUP "clientVoiceChatTeam voc_ill_take_that" bind KP_PLUS "exec voice_global_commands.cfg" bind KP_ENTER "exec voice_team_responses.cfg" |
3 voice_global_reporting.cfg
|
addChatLine "Voice : ^1Global ^3Reporting" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChat voc_im_taking_fire" bind KP_DOWNARROW "clientVoiceChat voc_i_need_a_weapon" bind KP_PGDN "clientVoiceChat voc_i_need_health" bind KP_LEFTARROW "clientVoiceChat voc_i_have_extra_weapon" bind KP_5 "clientVoiceChat voc_i_have_the_armor" bind KP_RIGHTARROW "clientVoiceChat voc_i_have_the_powerup" bind KP_HOME "clientVoiceChat voc_enemy_has_powerup" bind KP_UPARROW "clientVoiceChat voc_enemy_spotted" bind KP_PGUP "clientVoiceChat voc_item_available" bind KP_PLUS "exec voice_team_reporting.cfg" bind KP_ENTER "exec voice_global_commands.cfg" |
4 voice_team_reporting.cfg
|
addChatLine "Voice : ^2Team ^3Reporting" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChatTeam voc_im_taking_fire" bind KP_DOWNARROW "clientVoiceChatTeam voc_i_need_a_weapon" bind KP_PGDN "clientVoiceChatTeam voc_i_need_health" bind KP_LEFTARROW "clientVoiceChatTeam voc_i_have_extra_weapon" bind KP_5 "clientVoiceChatTeam voc_i_have_the_armor" bind KP_RIGHTARROW "clientVoiceChatTeam voc_i_have_the_powerup" bind KP_HOME "clientVoiceChatTeam voc_enemy_has_powerup" bind KP_UPARROW "clientVoiceChatTeam voc_enemy_spotted" bind KP_PGUP "clientVoiceChatTeam voc_item_available" bind KP_PLUS "exec voice_global_reporting.cfg" bind KP_ENTER "exec voice_team_commands.cfg" |
5 voice_global_responses.cfg
|
addChatLine "Voice : ^1Global ^2Responses" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChat voc_im_not_ready" bind KP_DOWNARROW "clientVoiceChat voc_negative" bind KP_PGDN "clientVoiceChat voc_no_way" bind KP_LEFTARROW "clientVoiceChat voc_are_you_serious" bind KP_5 "clientVoiceChat voc_im_armed_and_ready" bind KP_HOME "clientVoiceChat voc_yeah_right" bind KP_UPARROW "clientVoiceChat voc_roger" bind KP_PGUP "clientVoiceChat voc_on_my_way" bind KP_PLUS "exec voice_team_responses.cfg" bind KP_ENTER "exec voice_global_reporting.cfg" |
6 voice_team_responses.cfg
|
addChatLine "Voice : ^2Team ^2Responses" unbind KP_END unbind KP_DOWNARROW unbind KP_PGDN unbind KP_LEFTARROW unbind KP_5 unbind KP_HOME unbind KP_UPARROW unbind KP_PGUP unbind KP_RIGHTARROW unbind KP_PLUS unbind KP_ENTER bind KP_END "clientVoiceChatTeam voc_im_not_ready" bind KP_DOWNARROW "clientVoiceChatTeam voc_negative" bind KP_PGDN "clientVoiceChatTeam voc_no_way" bind KP_LEFTARROW "clientVoiceChatTeam voc_are_you_serious" bind KP_5 "clientVoiceChatTeam voc_im_armed_and_ready" bind KP_HOME "clientVoiceChatTeam voc_yeah_right" bind KP_UPARROW "clientVoiceChatTeam voc_roger" bind KP_PGUP "clientVoiceChatTeam voc_on_my_way" bind KP_PLUS "exec voice_global_responses.cfg" bind KP_ENTER "exec voice_team_reporting.cfg" |
Save all of them in your Doom 3 "base" folder. Example: (C:\Program Files\Doom 3\base).
After you have saved all the 6 .Cfg files in your Doom 3 base folder, create (or add) an autoexec.cfg file to the "base" folder as well.
autoexec.cfg
|
bind KP_MINUS "clientVoiceChat voc_hack" bind KP_SLASH "clientVoiceChat voc_die_already" bind KP_INS "clientVoiceChat voc_great_game" bind KP_DEL "clientVoiceChat voc_that_sucked" |
To use the multiplayer voice commands, execute from the console.
Example: exec voice_global_commands.cfg or add exec voice_global_commands.cfg to the end of your DoomConfig.cfg file.
Note: You will need to copy these files to any mod folder that you have for them to work correctly with mods.
Doom 3 Mapping tutorial
This tutorial will guide you through the making of two rooms, a door, and a keypad. We will also make the door unlock when the correct code is entered into the keypad.
1 - Shortcut Setup.
Before you start you will need a shortcut to the Doom 3 Editor.
To do this, create a new shortcut on the desktop.
Select an area on the desktop that is blank and then right mouse click, move the mouse pointer down to the "New" option in the dropdown menu and select "Shortcut" from the list of options.
A form will appear that has the cursor blinking in a box labeled "Type the location of the item", use the browse button to browse the Doom 3.exe (by default is C:\Program Files\Doom 3\Doom3.exe).
After you have browsed the Doom3.exe click next and select a name for the shortcut for example: "Doom 3 Editor" then Click "Finish".
Right-click on the created Shortcut (Doom 3 Editor) and click properties.
In the Target field, after the path to the Doom 3 executable file enter this:
+set r_fullscreen 0 +set r_multiSamples 0 +wait +wait +wait +editor
Then click Apply and OK.
2 - Making the two rooms.
Now run the Doom 3 Editor.
Now click on Media > Textures > textures > base_floor > a_diafloor_1b_fin
This is the texture we will use (We will only use one texture for the floor and walls)
Now draw a box in the top view and in the small windows (The caption is "Z") adjust the height of the box you just made.
Now click on the "hollow tool"
Press Escape (ESC) to deselect everything.
Draw a small box for a wall to seperate the two rooms.
Press the Spacebar to duplicate the wall.
Now click in it and drag it to the other side.
3 - Make and setup the door.
Press Escape.
Now select a new texture.
Use: Media > Textures > textures > base_door/airdoor
Now draw a box between the two walls.
Right-click inside the new box (Our Door) and select.
func > func_door
This will make it a door and name it func_door_1 as default.
Now click on the "Entity" button.
I want my door to move up.
Click on the "Up" button.
Here is the more tricky part.
In the "Key" field type: lip
In the "Val" field type: 1
Press Enter.
That will leave 1 unit of the door visible when the door is open.
Now in the "Key" field type: locked
In the "Val" field type: 2
Press Enter.
This will lock the door when the maps starts.
If you type 2 the door will not open when it is unlocked.
If you type 1 the door will open when it is unlocked.
4 -Make the keypad.
Press Escape.
Right anywhere and select: func > func_static
This will create a box.
Goto the "Entity" tab.
Click "Model"
A window will pop up.
Select a (gui)model to use.
We will use: base/models/mapobjects/guiobjects/techdrpanel1/techdrpanel1.lwo
click "OK"
You can see the model in the 3d view and top view.
Note: If you can't see it just press the Spacebar to duplicate the object
then just delete the old one.
Move the panel into place just like the walls.
Rotate it by pressing the rotate Z button.(See screenshot below)
You can also move it up and down in the "Z" window.
Now click "Gui"
And select the gui you want to use, in this case we will use this:
base/guis/doors/areakeypad.gui
click "OK"
Every gui have some "keys" that will control them. Those "keys" is called "gui_parm1", "gui_parm2", "gui_parm3" etc.
This gui have the "keys" 1 to 4.
1 to 3 is the code for the keypad and 4 is the location name.
So in the "Key" field type: gui_parm1
In the "Val" field type: 2
Press Enter.
In the "Key" field type: gui_parm2
In the "Val" field type: 5
Press Enter.
In the "Key" field type: gui_parm3
In the "Val" field type: 3
Press Enter.
So now the code for the door is 253.
Now in the "Key" field type: gui_parm4
And in the "Val" field type: Locked Room
Press Enter.
Now the keypad will display "Locked Room"
5 - Link the door to the keypad.
This is simple just select the keypad(Hold shift and left-click on it)
Goto "Entity" and in the "Key" field type: target
In the "Val" field type: func_door_1
Press Enter.
You will see a blue line between the Keypad and the door.
6 - Light and player.
Press Escape.
Right click in one of the rooms.
Select Light.
This will create a light move it to where you want it and move it up and down by using the "Z" window.
Press the Spacebar to duplicate it and move the new light to the other room.
Press Escape.
Right-Click in the room with the keypad.
Select: info > info_player_start
Move the info_player_start down to the floor using the "Z" window.
7 - Compile.
Now lets compile the map for use ingame.
Goto File>Save As.
THIS IS IMPORTANT!
Save the file to you doom3 > base > maps folder and give it a name.
For example: doomtutorial.
If the maps folder doens't exist just create it.
Now you click "Bsp" and then "bsp"
The map will now compile.
8 - Testing.
Now start Doom 3.
In the main menu press: ctrl + alt + ~
(~ = the button left to 1 on your keyboard)
The console will pop up.
Type: map "the name of the map"
Example: map doomtutorial
The map will load up and if you done everything right you will have a locked door.
Try to enter the code and the door will unlock.
Doom 3 Strafe jumping video tutorial
| Bookmark & Share: |
|










