zDoom Command Line
A typical command line looks like:
zdoom -skill 4 -warp 24
"-skill 4" and "-warp 24" are two of the command line parameters ZDoom supports. There are several others, described below:
Contents
[hide]
* 1 Configuration options
* 2 Play options
* 3 Loading options
* 4 Debug options
* 5 Multiplayer options
* 6 Other options
Configuration options
-bits numbits
Specifies the display depth. Currently, only 8 is supported.
-width x
-height y
Specifies the desired resolution of the screen. If only one of -width
or -height is specified, ZDoom will try to guess the other one based on
a standard aspect ratio. If the specified resolution is not supported
by your DirectDraw drivers, ZDoom will try various resolutions until it
either finds one that works or gives up. To determine which resolutions
ZDoom can use, use the vid_describemodes command from the console once
you have started the game.
-blockmap
Causes ZDoom to ignore all the BLOCKMAP information a map provides and
generate it instead. This is equivalent to +set genblockmap 1.
-cdrom
Causes ZDoom to look for savegames and zdoom.cfg in a directory called
C:\ZDOOMDAT. Screenshots will also be saved in this directory.
-config configfile
Causes ZDoom to use an alternative configuration file. If configfile
doesn't exist, it will be created.
-iwad iwadfile[.wad]
The IWAD file specified after this parameter will be used as the game
IWAD file instead of the default one. Normally, ZDoom looks for IWADs
in the following order and uses the first one it finds:
* doom2f.wad
* doom2.wad
* plutonia.wad
* tnt.wad
* doomu.wad
* doom.wad
* doom1.wad
* heretic.wad
* heretic1.wad
* hexen.wad
* hexdd.wad
* strife1.wad
* strife0.wad
ZDoom will look for the IWAD in the current directory, in the same
directory as zdoom.exe, in the directory set in the DOOMWADDIR
environment variable, and in the directory set in the HOME environment
variable.
-nocdaudio
Disables CD audio. Since only the Windows version supports CD audio,
other versions ignore this option.
-noflathack
Some wads were able to use new flats with the original Doom.exe. ZDoom
will normally try and detect them. Use this switch to prevent that.
-noidle (Windows only)
When the user presses Alt-Tab to switch from ZDoom to another window,
ZDoom will normally reduce its priority class so that it doesn't slow
the rest of the system down. By specifying this parameter, ZDoom will
try to run at full speed even when it isn't the active window.
-nojoy (Windows only)
Disables joystick support. If you have an old-fashioned gameport
(non-USB) device attached, it can slow down the game even if you don't
intend to use it. Use -nojoy to avoid the slowdown that comes from
polling it for input. Only the windows version supports a joystick.
-nomusic
Prevents the playback of music.
-nosfx
Prevents the playback of sound effects. Because of the nature of MOD
music, this also disables playback of MODs.
-nosound
Disables both music and sound effects.
-oldsprites
Disables sprite renaming. Unless you're playing a mod for Heretic or
Hexen that replaced a few select sprites, you don't need this.
Play options
-avg
Stands for "Austin Virtual Gaming." Automatically advances to the next
level after 20 minutes. This is equivalent to +set timelimit 20 or
-timer 20.
-fast
Sets the dmflags cvar to make the monsters as fast as in nightmare mode
even if you aren't playing nightmare.
-nomonsters
Sets the dmflags cvar so that monsters are not spawned on levels.
-respawn
Sets the dmflags cvar so that monsters respawn even if you aren't
playing at nightmare difficulty.
-timer x
Causes ZDoom to automatically advance to the next level after x
minutes. This is equivalent to +set timelimit x.
-turbo x
Causes player movement to be x% as fast as normal. Valid values are
10-256, with 100 being normal. Values larger than 100 are considered
cheating. This is equivalent to +set turbo x.
Loading options
-deh dehfile[.deh]
Causes ZDoom to apply a DeHackEd or .bex patch to the game. This must
be a text patch; binary patches are not supported. (As far as I know,
most patches are text patches so this shouldn’t be too much of a
problem.) Also, only patch format 6 is known to be supported. Other
formats may or may not work properly. If the .deh extension is omitted,
ZDoom will automatically add it.
-bex bexfile[.bex]
This is the same as -deh, except the default file extension is .bex.
-file file1[.wad] file2[.wad] file3[.wad] ...
Used to load one or more PWAD files which generally contain
user-created levels. Files listed further right take precedence to
files listed before them, so as an example, if both file1.wad and
file2.wad contain have a MAP01, the MAP01 in file2.wad would be used
instead of the one in file1.wad If the .wad extension is omitted, ZDoom
will automatically add it.
-loadgame saveXX.[zds]
Automatically loads the specified savegame. To find out a save's file
name, press F1 while it is highlighted in the save or load menu. If you
don't include the .zds extension, ZDoom will automatically add it for
you.
-playdemo demofile[.lmp]
ZDoom will automatically play the specified demo when it starts. If the
.lmp extension is omitted, it will automatically be added.
-record demofile[.lmp]
Records a demo. The -warp parameter or +map command should also be used
if you don't want to record the demo on MAP01 or E1M1. You may only
record from the start of a map. Loading a savegame and recording from
there is unsupported.
To stop the demo recording, use the "stop" console command. If the .lmp
extension is omitted, it will automatically be added. Unlike regular
DOOM, only one person in a multiplayer game needs to specify the
-record parameter if they want to record a demo. However, if someone
quits before the person recording the demo does, the person recording
will automatically quit, too, because I didn't bother to give demos a
way to record when a player leaves the game.
+playerclass class (for HEXEN only)
for example:
+playerclass FIGHTER
+playerclass CLERIC
+playerclass MAGE
+playerclass RANDOM
-skill x
Sets the initial skill level. This is overridden if you start a new
game from the New Game menu.
Note that this is different from the skill cvar, which ranges from 0-4
-timedemo demofile[.lmp]
Plays back a demo faster than -playdemo and displays a framerate when
the demo is over. If the .lmp extension is omitted, it will
automatically be added.
-warp m
-warp e m
For Doom II, starts the game on map m. For other versions of doom,
starts the game on episode e, map m. The +map command can also be used
to perform this action, but it expects the actual name of the map.
(i.e. MAP01, E1M1, ...)
Debug options
-noblit
Causes ZDoom not to update the display on the screen, but it stills
draws everything to an internal buffer. Only useful with -timedemo.
-nodraw
Causes ZDoom not to draw anything at all. Only useful with -timedemo.
-debugfile
Causes ZDoom to write network debugging information to a file called
debugN.txt where N is your player number.
-devparm
Prints a message telling you that you "useless mode is activated." With
the original Doom, using -devparm was the only way to take screenshots.
With ZDoom, screenshot is just another command, so -devparm serves no
real purpose.
+set developer 1
Prints a bunch of debugging messages to the console.
-0
Resets the window position to the top-left corner of the screen.
Multiplayer options
-altdeath
Informs ZDoom that you will be playing a deathmatch game and sets the
dmflags cvar so that items other than invulnerability and invisibilty
respawn after being picked up. Only player 1 needs to specify this.
-deathmatch
Informs ZDoom that you will be playing a deathmatch game and sets the
dmflags cvar so that weapons stay behind when a player picks them up.
Only player 1 needs to specify this.
-dup x
Causes ZDoom to transmit fewer player movement commands across the
network. Valid values range from 1-9. For example, -dup 2 would cause
ZDoom to send half as many movements as normal.
-extratic
Causes ZDoom to send a backup copy of every movement command across the network.
-host x
This machine will function as a host for a multiplayer game with
<x> players (including this machine). It will wait for other
machines to connect using the -join parameter and then start the game
when everyone is connected.
-join host's IP address[:host's port]
Connect to a host for a multiplayer game.
-net console-number hosts ...
Informs ZDoom that you will be playing a network game. Using the
-host/-join parameters instead is strongly recommended because they are
much easier to use.
-netmode 0
Uses Doom's classic peer-to-peer network model. In this model, every
computer talks to every other computer in the game, so the amount of
traffic generated by this model grows exponentially with the number of
players in the game, to the point that if you have more than four
players, you should seriously consider using -netmode 1 instead. Even
with only three or four players, you might want to use -netmode 1. For
only a two player game, it doesn't really matter which netmode you use.
-netmode 1
Uses a master/slave network model. Instead of every computer talking to
every other computer, the slaves only talk to the master, and the
master relays all the packets to the other computer. Hence, the amount
of traffic generated by this model grows linearly with the number of
players in the game. Perhaps the most important consequence of this is
that with -netmode 1, firewalled computers can join in a network game
so long as the master (player 1) is not firewalled. This netmode is
incompatible with the -net option, so you must use -host/-join to use
netmode 1 (which you should be doing anyway).
-port x
Specifies an alternate IP port for this machine to use during a network
game. By default, the port 5029 is used.
Other options
In
addition to the above parameters, console commands can be included on
the command line by preceding them with a '+'. Some, however, will
cause the game to crash if you use them (such as cheats). If you wish
to change a cvar in this manner, it is a good idea to use the set
command. This is because any set commands will be executed just after
the config file is loaded, and all other commands are executed after
every game subsystem has been initialized. For example, to turn on
developer messages when you start ZDoom, use the command line:
zdoom +set developer 1
instead of
zdoom +developer 1
If you use the second line, you'll miss out on all the developer messages that get generated during the startup process.
Please also see:
* CCMDs (Console Commands)
* CVARs (Console Variables)
* Frontend
Remember,
if you are not comfortable with the frequent use of the command line,
you may enter these commands into any text editor, then save the
document with a .bat extension for future use.