Console Commands

From ZDoom

Jump to: navigation, search

Console Commands are used to alter the way ZDoom does something, such as changing the sound volume, changing DMflags, etc...

You access the console by pressing "~" at any time. (This depends on your keyboard layout, for German keyboard, it is "^", but to summarize it, it is the key above TAB.)

Contents

Console variable types

There are six types of cvars: Boolean, Integer, Float, String, Colour and Flag.

boolean

This type of variable represents a yes/no or on/off value. It can only be set to true or false. As shorthand, setting a boolean variable to 0 will set it to false, and setting it to anything non-zero will set it to true.

integer

This is an ordinary number without a decimal point. For example, 1 is an integer, but 1.2 is not.

float

This is an ordinary number that can have a decimal point.

string

This is a series of text characters enclosed in quotes: For example, "Felix loitered lecherously on the lot" is a string. If you removed the quotes around it, then it would not be a string. If you need to use quotes inside a string, preface it with a backslash.

Are you "The One" of old?

would be written like this as a string:

"Are you \"The One\" of old?"

colour

This type of variable is a series of three hexadecimal numbers representing the amounts of red, green, and blue (in that order) in a color. For example, pure red would be represented as "ff 00 00". As a shorthand, you can set a color variable with one of several color names, and the RGB values will be set for you. (EDIT: That's just a string, i.e. testcolor "ff 00 00")

flag

This type of variable mirrors a setting in dmflags or dmflags2. Setting its value will set the corresponding value in one of those variables, and getting its value will get the corresponding value from one of the other two variables. This is designed to make using dmflags easier, because you don't have to memorize any numbers.

Button Commands

Button commands are commands that represent buttons and come in pairs. Each "button" has a command prefixed by a + and another corresponding command prefixed by a -. The + version of the command simulates pushing the button, and the - version of the command simulates releasing the button.

When you bind a command that begins with + to a key, releasing the key will automatically execute the same command with the + replaced by a -. Note that this works for aliases as well as the commands listed here. This provides a useful way to bind multiple actions to a single key. Suppose you want the normal Doom behavior of moving forward and using when you double click the right mouse button. If you use the commands

bind mouse2 +forward
doublebind mouse2 +use

ZDoom will move you forward when you press the right mouse button. When you double click it, you will press use, but you will not move forward. To simulate the standard Doom behavior, you can replace the doublebind command with these three commands instead:

alias +useforward "+use; +forward"
alias -useforward "-use; -forward"
doublebind mouse2 +useforward

Now when you double click the right mouse button, the +useforward alias will be executed. Because +useforward's name begins with a + releasing the right mouse button will execute the -useforward alias (whether or not -useforward is defined).

This behavior of executing a - command when a key is released applies only to the first command or alias bound to the key. If you bind a key to "+forward; +right", releasing the key will execute the command "-forward; +right" and not "-forward; -right". As shown above, you can use aliases to get the correct behavior.

Another trick you can do with aliases is to create a key that only executes the + command without executing the - command. If you wanted a key that will make you move forward when you press it, and will keep you moving forward even after releasing it, you can use an alias like this:

alias go "+forward"

Then instead of binding +forward to a key, you bind go to the key instead. This works because go does not begin with a + so nothing will happen when you release the key?ZDoom only looks at the command actually bound to the key to determine if it should execute a - command when the key is released; it does not look inside aliases.

Standard buttons

+attack Use your weapon.
-attack Stop using your weapon.

+use Start trying to use anything in front of you.
-use Stop trying to use anything in front of you.

+back Move backward.
-back Stop moving backward.

+forward Move forward.
-forward Stop moving forward.

+jump Start jumping.
-jump Stop jumping.

+left Start turning left.
-left Stop turning left.

+right Start turning right.
-right Stop turning right.

+moveleft Start strafing left.
-moveleft Stop strafing left.

+moveright Start strafing right.
-moveright Stop strafing right.

+lookdown Start lowering your view.
-lookdown Stop lowering your view.

+lookup Start raising your view.
-lookup Stop raising your view.

+movedown Start moving down if swimming or flying.
-movedown Stop moving down.

+moveup Start moving up if swimming or flying.
-moveup Stop moving up if swimming or flying.

+strafe Causes +left and +right to behave like +moveleft and +moveright;
-strafe Returns +left and +right to their normal behavior.

+klook Causes +forward and +back to act like +lookup and +lookdown instead.
-klook Returns +forward and +back to their normal behavior.

+mlook Moving the mouse up and down will make you look up and down.
-mlook Moving the mouse up and down will make you move forward and backward. However, if freelook is true, then moving the mouse up and down will still change your view instead of moving you.

+showscores Display a scorelist for deathmatch games.
-showscores Hide the deathmatch scorelist.

+speed Start running.
-speed Start walking.

Customization

addkeysection (menu-heading) (ini-section-name)

This command does two things. First, it adds a new heading called menu-heading to the controls menu. You can use the addmenukey command to add your own custom keys beneath this heading. Second, it loads all the bindings from the corresponding ini-section-name section in zdoom.ini. You can use this command multiple times to create different sections in the menu and ini for different sets of commands. If you use a menu-heading that was already added to the menu, new controls added with addmenukey will appear at the end of that section, but the bindings will not be reloaded from the ini.

addmenukey (description) (command)

Adds a new control to the controls menu. Description is the name of this control in the menu, and command is a console command or alias to be executed when the control is pressed. New controls are added to the last section specified with addkeysection.

addslot (slot) (weapon)

Adds a single weapon to the list of weapons in a weapon slot.

alias (new-command) [command-string]

If specified with no parameters, will display a list of all current aliases. If only new-command is specified, it will be removed from the list of aliases. If command-string is also specified, it will be added to the list of aliases as new-command. For example, to create a new command to kill the monsters on the level, you can use the command:

alias massacre "kill monsters"

Then you can use the newly created massacre command to kill all the monsters on the level. You can use ; add more commands:

alias weirdness "kill monsters; Give all; Summon doomimp"

That would kill all monsters, give you all invertory and summon an imp. You can use wait (tics) to put a delay between commands. Example:

alias "kill monsters; Give all; wait 10; Summon doomimp"

Which would kill all the monsters, give all, wait 10 tics and then summon an imp. Also if you run out of space for the alias you can link to another alias. You can easily change your alias by editing your zdoom ini file.

archivecvar (cvar)

When you create a custom cvar with the set command, it will not normally be saved in the ini. You can use archivecvar after creating the cvar to indicate that the custom cvar's value should persist even after you quit.

atexit [command]

If you specify a command, it will be added to a list of console commands to execute when the user quits the game. Commands are executed in the reverse order that they were added in. If you do not specify any arguments to atexit, then it will list the current set of commands that will execute when you quit.

bind (key [command string])

If no parameters are specified, the entire list of bound keys will be printed to the console. If only [key] is specified, the binding for that specific key will be printed. If both [key] and [command string] are specified, [command string] will be bound to [key].

binddefaults

Binds all keys to their default commands. This will not unbind any keys that do not have any default bindings, so if you want to properly restore the default controls, you need to use unbindall first.

defaultbind (key [command string])

Binds command to the key if and only if key is not already bound and there are no keys already bound to command.

doublebind (key [command string])

This command works just like bind, except it controls the action that occurs when a key is double-clicked. If a key does not have a doublebinding, then double-clicking it has the same result as pressing it twice. Otherwise, the first press will execute the normal command set with bind, and the second press of the double-click will execute the command set with doublebind.

eval expression [variable]

Evaluates a mathematical expression and either prints it to the console or stores it in variable. Expressions are written using prefix notation instead of the more common infix notation. Basically, you first specify what you want to do (the operator) and then what you want to do it to (the operands). You must separate operators and operands with spaces.

Examples:

To compute 2+2:

eval + 2 2

To compute 5-3:

eval - 5 3

To compute 2+(5*6):

eval + 2 * 5 6

To decrease the number of screenblocks:

eval - $screenblocks 1 screenblocks

The supported operators are:

+ a b Adds a and b. 
- a b Subtracts b from a. 
* a b Multiplies a and b. 
/ a b Divides a by b. 
% a b Calculates the remainder of a/b. 
^ a b Raises a to the b-th power . 
< a b Produces 1 if a is less than b and 0 if not. 
<= a b Produces 1 if a is less than or equal to b and 0 if not. 
> a b Produces 1 if a is greater than b and 0 if not. 
>= a b Produces 1 if a is greater than or equal to b and 0 if not. 
= a b Produces 1 if a is equal to b and 0 if not.
== a b Produces 1 if a is equal to b and 0 if not. 
!= a b Produces 1 if a is not equal to b and 0 if it is. 
<> a b Produces 1 if a is not equal to b and 0 if is. 
xor a b Calculates the bit-wise exclusive-or of a and b. 
& a b Calculates the bit-wise and of a and b. 
| a b Calculates the bit-wise or of a and b. 
&& a b Calculates the logical and of a and b. 
|| a b Calculates the logical or of a and b.

exec (script-file)

Executes a series of commands stored in the script-file as if they had been typed in at the console directly.

key value1 [value2]

Translates all parameters to the command into their corresponding key values which are used internally for command and alias lookup. Probably not very useful for the average user.

puke (script [arguments])

Executes an ACS script on the current map, optionally passing it up to three numerical arguments. If you try this on multiplayer, sv_cheats must be enabled.

pullin (wadfile)

Loads a wadfile at startup. This command is only valid inside .cfg files that have been execed at startup.

set (cvar) (value)

Sets cvar to value. If cvar does not exist, it will be created.

rebind (binding)

Changes the binding for the key that caused the rebind command to execute. For obvious reasons, this command cannot be used at the console.

Example:

bind b "echo setting 1; rebind \"echo setting 2\""

This will cause the first press of b to echo "setting 1" to the console. All future presses of b will echo "setting 2" instead.

unbind (key)

Removes a binding from the specified key.

unbindall

Removes all bindings and doublebindings from every key. To restore the default bindings, you can use the binddefaults command. There is no way to restore any custom bindings after issuing this command except by retyping each bind command or using the controls setup menu.

undoublebind (key)

Removes a doublebinding from the specified key.

unset (cvar)

Undefines a user-created cvar.

Screenshots

png_gamma

float: 0
Controls the gamma level stored in PNG screenshots. If this is 0, then your current gamma setting will be used.

png_level

integer: 5
This is the level of compression to use for PNG screenshots. 0 is no compression at all, 1 is minimal compression (fastest), 9 is maximum compression (slowest), and intermediate values offer intermediate compression. 5 is offers a decent trade-of between file size and compression time. An uncompressed image will not necessarily save faster than a compressed image, because the extra time needed to write out a complete uncompressed image may be longer than the time required to compress the image. If you need to create screenshots as quickly as possible, consider setting screenshot_type to "pcx".

screenshot [file]

Dumps a copy of the screen to disk as a PNG or PCX file. If file is not specified, the screenshot will be saved to the directory the game was run from with a name of the form doom????.png.

screenshot_quiet

boolean: false
Setting this to true will suppress the messages informing you what file a screenshot was saved to.

screenshot_type

string: "png"
Determines the type of screenshots that will be saved. This can be either "png" or "pcx". In my empirical studies, PNG screenshots are about half the size of pcx screenshots. PCX screenshots have the advantage that they require less time to create so are most useful for rapid screenshot generation. The following sequence of console commands will take a screenshot every frame. You can use an external program to assemble these into a video, if desired.

screenshot_type "png"
screenshot_quiet true
alias autoshot "screenshot; wait 1; autoshot"
autoshot

If you use the autoshot alias, the command alias autoshot will stop automatic screenshot taking before you hit 10000 screenshots (approximately 4 minutes, 45 seconds).

storesavepic

boolean: true
Setting this to false will produce smaller savegames (by about 14k typically) by not storing a screenshot inside the savegame.

Chatting

chat_substitution

boolean: false
Set this to true if you want to chat using special keywords that will be replaced with appropriate text when your messages are sent. The supported keywords are:

$health
Replaced by your current health.
$weapon
Replaced by the name of your current weapon.
$armor
Replaced by your current armor count.
$ammocount
Replaced by your current ammo count.
$ammo
Replaced by the name of your current ammo.

As an example, if you just started a new game of Doom and have chat substitution turned on, when you send the message "My health is $health, and I am using a $weapon", the message that is actually sent will be "My health is 100, and I am using a Pistol".

chatmacro0
chatmacro1
chatmacro2
chatmacro3
chatmacro4
chatmacro5
chatmacro6
chatmacro7
chatmacro8
chatmacro9
string
These are all strings that can be assigned to hotkeys in chat mode. To use these, enter chat mode and then hold down Alt and press one of the number keys. The string stored in the corresponding chatmacro cvar will be sent as if you had typed it yourself.

messagemode

Enters message entry mode. Anything typed while in this mode will be sent to everyone else as if you had used the say command once you press enter.

messagemode2

This is just like messagemode except that the message is only sent to other members of your team. If teamplay is false or you don't have a team, then this command will work just like messagemode and send the message to everyone.

say (message)

Sends a message to everyone playing. If your message begins with "/me" then "/me" will be replaced by your name ala IRC.

say_team (message)

This is just like say except it only sends a message to your teammates. If teamplay is inactive, then this command will act exactly like say and send the message to everyone.

Cheating

sv_cheats

boolean: false When true, cheats will be allowed in Nightmare difficulty and network games. For purposes of fairness, this cvar can only be set from the command line when you run ZDoom. This is to avoid situations where the key player in a multiplayer game (player 1) could go to the console and type something like this:

sv_cheats 1
god
sv_cheats 0

whereby rendering himself immune to the attacks of others.

anubis

Toggles monster fear on and off. Scared monsters will run away from you and attack less frequently.

fly

Toggles fly mode on and off.

give (item)

Gives an item to the player. Give understands the following special items:

all - gives you everything 
health - gives you full health 
weapons - gives you every weapon 
ammo - gives you full ammo 
armor - gives you full armor 
keys - gives you every key 

It also understands the names of individual inventory items. Use the command dumpclasses inventory for a complete list of these.

god

Toggles God (Degreelessness) mode on/off. While active, you cannot be hurt by normal attacks (although somethings such as telefragging will still kill you). Also known as iddqd.

iddqd

The same as god, except it also gives you 100 health.

kill [monsters]

If used as "kill monsters", will kill all monsters on the level. Otherwise, it will kill you instead. This command is broken in netgames, so don't use it unless you are playing a single player game.

mdk

This cheat will kill whatever you are looking at. Use a crosshair to get the exact point of what to kill.

morphme

Transforms you into a chicken in Heretic and a pig in Hexen and Doom (The latter only happens if you have the relevant graphics present).

noclip

Toggles noclipping (Walk through walls) mode on/off.

notarget

Toggles notarget mode on/off. While active, monsters will not target you unless you hurt them first. In "modern FPS", monsters "can't find you" when in notarget mode. This is not the case with ZDoom.

powerup

Powers you up in Heretic as if you had used a Tome of Power.

summon (actor-class)

Spawns a new actor in front of you. A complete list of actors can be obtained with the dumpclasses actor command. For a list of actors limited to those you can place in an editor, use the dumpmapthings command. It is possible to spawn actors from another game with this command, but they will not be visible unless you provide the missing graphics for them.

summonfriend (actor-class)

Same as summon, but causes monsters created using this command to attack non-friendly monsters instead of you

sv_fastweapons (0-2)

Float: 0
Increases speed of weapons in Doom, Heretic, and Hexen. Setting to 2 makes weapons even faster.

turbo

float: 100
This cvar affects how quickly the player moves. A value of 100 will cause the player to move at normal speed, 200 will cause the player to move at 200% of normal speed, 50 will cause the player to move at 50% of normal speed, etc. Valid values range from 10 to 256.

Display

bumpgamma

Increases the current gamma level by 0.1. If the new gamma level would be greater than 3.0, it wraps the gamma around to 1.0

cl_bbannounce

boolean: false
When true, enables the Bloodbath announcer for deathmatch games. The Bloodbath announcer is "The Voice" from Monolith Software's Blood game. To hear the announcer, you need to load Blood's sounds.rff either at the command line or through one of zdoom.ini's [*.Autoload] sections. You can get this file either from the demo or full version of Blood. If you don't have sounds.rff, you can still see the announcer's messages even though you won't hear anything.

cl_showmultikills

boolean: true
Set this to false if you don't want to see Unreal Tournament-style messages when a player makes several kills in a short period of time.

cl_showsprees

boolean: true
Set this to false if you don't want to see Unreal Tournament-style messages when a player is on a killing spree.

cl_spreaddecals

boolean: true
ZDoom clips decals to sidedefs. In order to hide this, the game will create as many duplicate decals on adjoining sidedefs as needed to make it appear that there is only one unbroken decal on the wall. Set this cvar to false if you don't want this.

cl_maxdecals

integer: 0-2147483647 default: 1024
Decals are things such as blood stains and bullet holes on walls. Setting this to 0 will disable blood and bullet marks on walls.

con_centernotify

boolean: false for Doom, true for Heretic and Hexen
When true, notify messages at the top of the screen are centered. Otherwise, they are justified against the left margin.

con_midtime

float: 3
This is the number of seconds that messages in the middle of the screen will be displayed before they dispapper.

con_notifytime

float: 3
This is the number of seconds that new messages will stay at the top of the screen before they start scrolling away.

con_scaletext

boolean: false
If this cvar is true, then message text will be scaled to larger sizes depending on the screen resolution so that it will stay approximately the same size it would be on a 320x200 screen.

crosshair

integer: 0
If this cvar is non-zero, it draws a crosshair. If this cvar is negative, the crosshair is translucent, otherwise it is opaque. The specific crosshair drawn depends on the value of this cvar.

crosshaircolor

color: "ff 00 00"
This is the crosshair's color if crosshairhealth is false.

crosshairgrow

boolean: false
Set this to true if you want the crosshair to temporarily enlarge each time you pick up an item.

crosshairhealth

boolean: true
When true, the crosshair's color reflects your current health. Green is healthy, red is near death, and intermediate colors are somewhere in between. Set this to false, if you want the crosshair to have a constant color (specified by the crosshaircolor cvar) instead.

crosshairscale

boolean: false
Set this to true if you want the crosshair to always appear the same size at all resolutions. Leaving it at false causes the crosshair to be drawn normally.

gamma

float: 1.0
Controls the amount of gamma correction applied to the display. 1.0 is equivalent to no correction, while larger numbers translate into a brighter display, and smaller numbers translate into a darker display. 0.0 is invalid and will be rejected. Negative numbers are technically invalid but will be accepted solely for the novelty value doing so provides.

hud_scale

boolean: false
Controls scaling of the fullscreen hud. At resolutions of 640x400 or above, setting this cvar to true will cause the icons to be scaled to approximately the same size they would be at 320x200. If this cvar is false, the icons will always be drawn without any scaling.

msg

integer: 0
This is the minimum message level that you will see. You will not see any messages with a lower priority than this. The different message levels are:

  1. Item pickup
  2. Obituaries
  3. Critical messages
  4. Chat messages
  5. Chat messages from a teammate

msg0color

integer: 6
This cvar controls the color used to display level 0 (item pickup) messages. Available colors are:

  1. Brick
  2. Tan
  3. Gray
  4. Green
  5. Brown
  6. Gold
  7. Red
  8. Blue
  9. Orange
  10. White
  11. Yellow

msg1color

integer: 5
This cvar selects the color used to display level 1 (obituary) messages. Available colors are the same as for" msg0color.

msg2color

integer: 2
This cvar selects the color used to display level 2 (critical) messages. Available colors are the same as for msg0color.

msg3color

integer: 3
This cvar selects the color used to display level 3 (chat) messages. Available colors are the same as for msg0color.

msg4color

integer: 3
This cvar selects the color used to display level 4 (team chat) messages. Available colors are the same as for msg0color.

msgmidcolor

integer: 5
This cvar selects the color used to display messages in the middle of the screen. Available colors are the same as for msg0color.

msgmidcolor2

integer: 4
This cvar selects the color used to display messages in the middle of the screen that are sent to everyone. Available colors are the same as for msg0color.

st_scale

boolean: false
When this cvar is true, the status bar will be scaled so that it covers the entire width of the screen in higher resolutions. At low resolutions this may look ugly, but at high resolutions it should look good enough.

Renderer

r_columnmethod

integer: 1
Selects which of two algorithms to use to draw sprites and masked textures. Method 0 is the original algorithm used by DOOM. Method 1 is a new algorithm optimized for Pentium IIs and can perform significantly better with that or comparable processors. Ironically, method 0 is slightly faster than method 1 on Pentium III and Athlon processors (though not significantly so).

r_detail

integer: 0
This cvar selects the detail level of the view window. Valid values are:

  1. Normal detail level. Equivalent to Doom's high detail mode.
  2. Double pixels horizontally. Equivalent to Doom's low detail mode.
  3. Double pixels vertically.
  4. Double pixels horizontally and vertically.

Because of the way the renderer works, doubling pixels horizontally offers more of a speed-up than doubling them vertically does. Unless you have a very slow computer, there should be no reason to use any detail level other than 0.

r_drawflat

boolean: false
When set to 0, segs will be drawn as solid colors instead of textures. This is useful if you want to see how a node builder split a level's linedefs. Otherwise, it just looks ugly.

r_drawfuzzbr

boolean: true
When set to false, the "fuzz" effect on spectres and partially invisible players will be replaced with translucency.

r_drawmirrors

boolean: true
Setting this false will disable the display of mirrors.

r_drawplayersprites

boolean: true
When false, the game will not draw the player's weapon or muzzle flash, which can be nice for screenshots.

r_drawtrans

boolean: true
Setting this to false will disable all translucency effects in the game.

r_fogboundary

boolean: true
Setting this to false will disable the display of fog boundaries. Fog boundaries are sections where two areas with different fog colors meet. If the boundary is not drawn, then it will look like there is no fog at all in front of the boundary. Some old levels may look bad with fog boundary drawing enabled, which is why this cvar is available.

r_particles

boolean: true
If set to true, particles are drawn. Otherwise, they aren't.

r_stretchsky

boolean: true
Controls whether or not short sky textures are stretched so that you don't see them wrap when you look up.

r_viewsize

string
This cvar contains the width and height of the current view window. This cvar is read only.

r_visibility [visibility]

Without any parameters, displays the current visibility. With a parameter, the visibility is set. Standard visibility for the Doom engine is 8. Visibility determines how quickly light drops off with distance from the viewer. At 0 visibility, there is no change in lighting with depth.

Video

fullscreen

boolean: true
If this cvar is true, the game will be displayed fullscreen. Otherwise, it will be drawn in a window. Some video cards may require that you have fullscreen false in order to run ZDoom.

vid_attachedsurfaces (Win32 only)

boolean: false
Controls how the game allocates video memory. False is the standard setting and will always produce a usable display. If you find that there are patches of pure black and pure white on the screen (especially noticeable when a demon is right in your face), try setting this to true. Certain old Windows 95 video drivers are said to need this fix, and it is also necessary under NT 4. Unfortunately, many new video drivers (including those under NT 4) will produce a scrambled display if the screen width is not 512 or 1024 pixels and this is set to true.

vid_currentmode

Displays the resolution of the current video mode.

vid_defbits

integer: 8
Ignored. This cvar is meant to specify the default screen depth, but the setting is currently ignored because only 256-color displays are supported.

vid_defheight

integer: 200
Specifies the default screen height to use if not overridden at the command line by the -height switch.

vid_defwidth

integer: 320
Specifies the default screen width to use if not overridden at the command line with the -width switch.

vid_listmodes

Lists all resolutions supported by the current display driver.

vid_fps

boolean: false
When true, displays the average framerate over the past second in the lower-left corner of the screen.

vid_noblitter (Win32 only)

boolean: true
Setting this to false will allow the use of the hardware to assist moving image data to video memory. When I initial wrote the code to use the blitter, it was faster than not using it. Now the blitter is slower, and I can't figure out why, so the default is true.

vid_palettehack (Win32 only)

boolean: false
When this cvar is true, the game will refresh the palette every time the screen is redrawn. This can be useful with some buggy video drivers. If the display is fine without it, leave it that way because this can slightly slow things down.

vid_setmode (width) (height) [depth]

Sets the screen mode to width x height with an optional color depth (if your video hardware supports it). Only a depth of 8 is supported. See also vid_currentmode, vid_listmodes

vid_showpalette

Displays the palette in the upper-left corner of the screen. Useful for debugging problems with the palette.

vid_speedtest

Tests the speed to which video and system memory is written and prints the results to the console.

vid_vsync (Win32 only)

boolean: true
Set this to false to disable vsync. Not all video cards support disabling vsync.

Bots

addbot [name]

Spawns a bot. If a name is given, the corresponding bot in bots.cfg will be spawned. Otherwise, a bot will be picked at random from bots.cfg.

bot_allowspy

boolean: false
Allows you to see through the eyes of bots during botmatch games.

bot_observer

boolean: false
When set to 1, the player will experience minimal interaction with the world, and bots will ignore him.

listbots

Lists the bots available in bots.cfg, and indicates which are currently playing.

removebots

Removes any bots from the game. Bots will also be automatically removed from network games when the arbitrator quits.

Automap

togglemap

Toggles the automap on/off.

am_backcolor

color: "6c 54 40"
The color of the automap background. Changes to this cvar take effect the next time the automap is activated.

am_cdwallcolor

color: "4c 38 20"
The color of two-sided lines that have a different ceiling height on each side.

am_fdwallcolor

color: "88 70 58"
The color of two-sided lines that have a different floor height on each side.

am_gridcolor

color: "8b 5a 2b"
The color of the automap grid.

am_interlevelcolor

color: "ff 00 00"
The color of inter-level teleporters. These are teleporters that teleport you to a different map.

am_intralevelcolor

color: "00 00 ff"
The color of intra-level teleporters. These are teleporters that teleport you to a different location on the same map.

am_lockedcolor

color: "00 00 98"
The color of lines that open locked doors.

am_notseencolor

color: "6c 6c 6c"
The color of lines on the automap that haven't yet been seen. Visible with a computer area map.

am_overlay

boolean: false
Normally, the togglemap command switches the automap between fully off and fully on. Setting this cvar to "1" will cause togglemap to draw the automap on top of the player's view before it draws the automap fullscreen. (Bad description, I know. Just try it)

am_ovotherwallscolor

color: "00 88 44"
The color of passable lines on the automap when the map is overlayed.

am_ovtelecolor

color: "ff ff 00"
The color of teleporters�both inter- and intra-level�on the overlayed automap.

am_ovthingcolor

color: "e8 88 00"
The color of things visible with the automap cheat when the map is overlayed.

am_ovunseencolor

color: "00 22 6e"
The color of unseen lines on the automap when the map is overlayed.

am_ovwallcolor

color: "00 ff 00"
The color of impassable walls when the automap is overlayed.

am_ovyourcolor

color: "fc e8 d8"
The color of the arrow representing the player in single player games when the map is overlayed.

am_rotate

boolean: false
Normally, the automap is always drawn such that north is at the top of the screen. Setting this cvar to "1" causes the automap to be drawn so that lines toward the top of the screen are always directly in front of the player's view. This can be particularly useful when the automap is overlayed.

am_showitems

boolean: false
When true, the fullscreen automap will display a count of all the "special" items you have found on the map. These are the same items that are used to determine the Items stat on the intermission screen.

am_showmonsters

boolean: true
When true, the fullscreen automap will display a count of the number of monsters that have been killed in the current level and the total number of monsters in the level.

am_showsecrets

boolean: true
When true, the fullscreen automap will display a count of the number of secrets that have been found in the current level and the total number of secrets in the level.

am_showtime

boolean: true
When true, the fullscreen automap will display the total amount of time you have been in a level (excluding time that has been paused).

am_thingcolor

color: "fc fc fc"
The color of things revealed with the map cheat.

am_tswallcolor

color: "88 88 88"
The color of two-sided lines that don't have any difference in floor or ceiling heights on either side. Only seen using map cheat.

am_usecustomcolors

boolean: true
When true, the automap uses the colors specified by the am_* cvars, otherwise it uses the standard DOOM automap colors.

am_wallcolor

color: "2c 18 08"
The color of one-sided and secret walls in the automap.

am_xhaircolor

color: "80 80 80"
The color of the "crosshair" dot in the center of the automap.

am_yourcolor

color: "fc e8 d8"
The color of the arrow representing the player in single player games.

Player Settings

autoaim

float: 5000
This represents the vertical distance from an object that the player's sight must be before that object is aimed at. Setting this cvar to "0" disables autoaiming, while large values such as "5000" will reproduce the original DOOM behavior of always autoaiming.

color

color
This is your player's color. The default varies depending on which game you are playing.

gender

string: "male"
This is the gender of your player. Valid values are "male", "female", and "neuter". Anything else will be treated as male. When you die, certain messages will be altered to reflect the gender selected here. Unfortunately, I don't provide any non-male player sounds, so you'll still sound like a man no matter what this cvar is set to unless you provide your own sounds.

movebob

float: 0.25
Controls how much the view bobs up and down while you are moving. 0 would be no bob at all.

name

string: "Player"
This is your player's name. This is only really useful in a multiplayer game, but it can also be set for single player.

neverswitchonpickup

boolean: false
When this cvar is true, you won't automatically switch to a new weapon when you pick one up.

skin

string: "base"
This is your player's skin. "Base" is the name of the regular Doom marine and is always available. Additional skins are contained in wad files that you either load with -file at the command line or autoload using the .ini or skins directory.

stillbob

float: 0
Controls the amount of bobbing up and down that occurs when standing still. 0 is no bobbing at all.

team

integer: 255
This is the team that your player belongs to. It is only meaningful during deathmatch games. There are four teams available:

  1. Red
  2. Blue
  3. Green
  4. Gold

Using a team of 255 is special and will automatically assign you to whichever team has fewer players.

Debugging

autosavenum

integer: 0
This cvar keeps track of the number used for the next automatic save and is updated each time an automatic save is made. You cannot change it from the console.

clearwallcycles

Used for profiling the wall drawer.

countdecals

Returns the internal count of automatically generated decals.

countdecalsreal

Iterates through every automatically generated decal in the level and returns how many are present. Compare this value with what countdecals returns to ensure that the internal count is accurate.

demo_compress

boolean: true
Keep this cvar true to compress demos so that they take up less space on disk.

developer

boolean: false
When true, prints various debugging messages to the console.

dir [[path/][pattern]]

This command lists the contents of a directory. It supports wildcards (but will not recurse into multiple directories). If [path] is not specified, it will display the contents of the directory the game was run from.

disableautosave

integer: 0
Controls how frequently the game automatically saves for you. The possible settings are:

  1. Whenever you enter a new level and whenever the level requests it.
  2. Only when the level requests it.
  3. Never.

dumpclasses [base-class]

Displays a list of all classes in the game. You can use base-class to limit the list to only those classes that derive from base-class. For example, dumpclasses actor will only show those classes that can be spawned in a level (including actors from all supported games). If you only want a list of weapons, you can use dumpclasses weapon. This list can be quite long and exceed the length of the console buffer, so it is a good idea to capture its output to a file using the logfile command.

dumpheap

Prints detailed information about the zone heap. Probably not very useful to the average user. The zone heap's primary purpose is to hold graphics while you run around a level so that they don't need to be constantly reloaded from disk.

dumpmap (wadname) [mapname]

Saves the current state of the level (minus actors) to a new wad called wadname. If you don't specify a mapname, it will be saved as MAP01. I used this while testing the internal node builder. Because ZDoom can now load Build maps, you can use this as a simple Build->Doom converter (although limitations in the Doom map format will likely force you to make several edits to produce a usable map).

dumpmapthings

Lists all the map editor numbers for actors in the current game. dumpspawnables Lists all the spawn numbers for actors in the current game.

echo (string)

Prints string to the console.

error (error-message)

Simulates an error by killing the current game and falling back to the fullscreen console with the specified message.

error_fatal (error-message)

Simulates a fatal error by exiting the game completely and showing the error-message.

freeze

Use this command once to freeze gameplay (while still allowing you to move around). Use it again to unfreeze gameplay. This will not work in multiplayer.

gameversion

Prints the version number and compile date of ZDoom.

genblockmap

boolean: false
Set this to true to force the game to ignore the blockmap saved with a map and always generate it from scratch, whether it needs to be generated or not.

gennodes

boolean: false
Set this to true if you want the game to ignore the BSP tree saved with a map and always build a new one. A value of true for gennodes also implies a true value for genblockmap.

get (cvar)

Displays the value of cvar. This is redundant because typing the name of the cvar alone at the console will accomplish the same thing.

logfile [log-file]

If log-file is not specified, console logging will be stopped (if active). Otherwise, a file named log-file will be created on disk, and all console output will be recorded in it as well as on the screen.

nofilecompression

boolean: false
This is a debugging cvar used to disable file compression. You should leave it set to false.

noise

boolean: false
When set to true, the current status of all sound channels is displayed on the screen.

pings

This lists a very rough estimate of the speed of the connection between your machine and any others in the game. In reality, the values printed by this command aren't even pings; they're just the number of milliseconds that have passed since the last time you received a network packet from the other machines.

playerinfo [player-number]

Without parameters, lists the numbers for each player in the game. If you specify a player-number, then details about that player's user info will be listed.

playersounds

Lists the player sounds defined by each player class and skin.

skins

Lists the names of the skins that were loaded when the game was started.

playmovie (filename)

Plays a movie. Gameplay will be halted either until the movie finishes or the user presses the Escape key. Under Windows, DirectShow is used to play the movie, so you can watch anything that Windows Media Player can play. Movie playback is not implemented under other operating systems.

playsound (sound)

Plays a sound on the local machine. Like all other sounds in the game, sound must be properly defined in a SNDINFO lump before you can use it.

print (string)

Prints a named string to the console. These are the strings you can edit with a bex patch.

scriptstat

Lists the scripts running on the current level.

soundlinks

Lists the links between different sounds that use the same sound data. Links are generated dynamically while you play, so it is possible for this command to give different results in different games and even at different times during the same game.

soundlist

Lists all the sounds defined and the lumps that they alias to. Unlike regular Doom, ZDoom refers to sounds using a long name and uses a SNDINFO lump to map those to the lumps in a WAD file that contain the actual sounds. Logical sounds that refer to the same sound data will have links generated as necessary to avoid actually loading multiple copies of the same sound into memory.

spray (decal)

Sprays a decal on a nearby wall so you can see what it looks like.

stat [page]

Displays profiling information. When used alone, displays a list of available displays. Use one of those as the page parameter to toggle the display on and off.

stat (blit)

Time spent copying the display to video memory.

stat (bots)

Time spent doing bot-related activities.

stat (destroys)

Statistics on object deletion each frame.

stat (detail)

Time spent replicating pixels for low detail modes.

stat (fps)

Time spent rendering the scene (not the same as setting vid_fps to true).

stat (purge)

Statistics of memory purged from the zone heap each frame.

stat (sight)

Time spent in sight calculations.

stat (sound)

Number of active channels and %CPU used for sound.

stat (think)

Time spent running all thinkers.

stat (wallcycles)

Used in conjunction with clearwallcycles to profile the wall drawer.

ticker

boolean: false
When true, draws a series of dots at the bottom of the screen representing the number of tics it took to display the current frame. (One tic is 1/35th of a second.) When -devparm is specified on the command line, this cvar is automatically set to true. You can get a rough idea of your fps by counting the number of lit dots and dividing that from 35. A better way would be to use vid_fps.

tilt

boolean: false
Setting this to true causes all planes to be drawn using the sloped drawer, even if they aren't sloped.

tx

integer: 8
The horizontal scale for textures that don't specify their own.

ty

integer: 8
The vertical scale for textures that don't specify their own.

warp (x-coordinate) (y-coordinate)

Sends you to the specified coordinates immediately. This can be used with idmypos to debug problems in a specific area of a map.