## Contents

- Introduction
  - About the console
  - Using this reference
  - Console variable types
  - Obsolete commands and variables
  - Button commands
- Reference
  - Customization
  - Screenshots
  - Chatting
  - Gameplay
  - Cheating
  - Display
  - Renderer
  - Video
  - Bots
  - Automap
  - Player settings
  - Debugging
  - Effects
  - Sounds
  - Music - MIDI
  - Music - SPC
  - Music - Timidity
  - Music - CD
  - Input - Keyboard
  - Input - Mouse
  - Input - Joystick
  - Other commands and cvars

## About the console

ZDoom's console is a powerful tool for interacting with the game engine directly. There are two methods for accessing it:

1. Open the options menu and select "Go to console."
2. Press a key bound to the toggleconsole command. The normal key for this is the ` key (the key to the left of 1 and above Tab).

Once the console is open, you can type in commands and they will appear at the bottom of the console. If you type a command that is wider than the console, the command view scrolls to fit the most recently part of the command on the screen. Press Enter to execute the command.

To close the console and return to the game, press ` again or press Esc.

The console is divided into three distinct sections:

1. The largest part of the console is the console buffer. This shows the last 32768 bytes printed to the console (which are also printed to the top of the screen when the console is closed).
2. Underneath the console buffer is the command line. This is where you enter all your commands at.
3. Just beneath the command line is the ZDoom version number. If you're not sure what version of ZDoom you're playing, just open the console and look in its lower-right corner.

There are several special keys that function in the console:

> Enter
>   Execute the current command line.
> Tab
>   Move forward through the possible completions for the current command. To use this feature, type the first few characters of a command or cvar, then press Tab. For example, if you type `cl_` and then press Tab, the first press of the Tab key will list all the possible choices that begin with cl_. Each time you press Tab after that, the next choice in the list will be placed on the command line.
> Shift+Tab
>   Move backward through the possible completions for the current command.
> Left arrow
>   Move the cursor left on the command line.
> Right arrow
>   Move the cursor right on the command line.
> Home
>   Move the cursor to the first character on the command line.
> End
>   Move the cursor to the last character on the command line.
> Backspace
>   Delete the character to the left of the cursor
> Del
>   Delete the character underneath the cursor
> Up arrow
>   Scroll backward through the most recently typed command lines.
> Down arrow
>   Scroll forward through the most recently typed command lines.
> Ctrl+C
>   Copy the current command line to the clipboard.
> Ctrl+V
>   Paste the contents of the clipboard to the command line.
> Ctrl+D
>   When pressed on an empty command line, executes the contents of the con_ctrl_d cvar as if it had been typed at the command line.
> Page Up
>   Scroll the console buffer up one line.
> Page Down
>   Scroll the console buffer down one line.
> Shift+Page Up
>   Scroll the console buffer up one page.
> Shift+Page Down
>   Scroll the console buffer down one page.
> Ctrl+Home
>   Scroll to the top of the console buffer.
> Ctrlr+End
>   Scroll to the bottom of the console buffer.

You can also use your mouse wheel to scroll through different things on the console:

> Wheel Up
>   Scroll the console buffer up three lines.
> Wheel Down
>   Scroll the console buffer down three lines.
> Ctrl+Wheel Up
>   Scroll the console buffer up one page.
> Ctrl+Wheel Down
>   Scroll the console buffer down one page.
> Shift+Wheel Up
>   Scroll backward through the most recently typed command lines.
> Shift+Wheel Down
>   Scroll forward through the most recently typed command lines.

## Using this reference

This reference lists every cvar and command found in ZDoom. To make browsing easier, they have been split into different sections according to category. If you already know the name of the command or cvar you want, you can use the index to jump directly to it.

Because cvars are like special commands, there is no separation between commands and cvars. However, each entry is color coded:

command required-parameter [optional-parameter]
Green entries are commands. Commands are actions that the game can perform.

The command's name and any parameters it takes are listed at the top of the box. The parameters are all listed in italics. If a parameter is not required for the command to operate, then it is surrounded by square brackets [like this].

The rest of the box is devoted to a description of the command, which tells what the command does and what any of its parameters do.

cvar
type: default
Cyan entries are cvars. A cvar (short for console variable) contains a value that the game uses to control its operations.

Like commands, the first part of the box contains the cvar's name. However, parameters are never listed because cvars always have one optional parameter. If you use a cvar without a parameter, the cvar's current value is printed to the console. If you provide a parameter for the cvar, then that will become the cvar's new value.

The next part of the box is the cvar's type and default value. The type determines what kinds of values the cvar can hold, and its default is the value it will have when the game can't find an .ini to load its settings from.

The remainder of the box is used to describe how the cvar is used.

flag cvar
flag in other cvar: default
Blue entries are flag cvars. These are similar to the other types of cvars, except they don't have any values of their own. Instead, they pick apart the contents of another cvar so that you don't need to remember any numbers to use the other cvar.

## Console variable types

There are seven types of cvars:

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?"

color
  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.
GUID
  This type variable is used to hold a GUID (Globally Unique Identifier). It is currently used only by joy_guid.
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.

## Obsolete commands and variables

The following commands and variables were present in ZDoom 1.22 but have been removed:

configver
  This variable was used by ZDoom to determine which version wrote the zdoom.cfg. This has been replaced by the [LastRun] section of zdoom.ini and is no longer accessible from the console.
def_patch
  You can now have multiple dehacked patches loaded automatically. To do this, add a [Doom.DefaultDehacked] section to zdoom.ini like this:

      [Doom.DefaultDehacked]
      Path=my_first_patch.deh
      Path=my_second_patch.deh

  You can add as many Path= lines as you like. Not all Dehacked patches will work well together. Changes made by patches listed later will override any changes made by patches listed earlier that affect the same things. If you specify any patches with -deh or -bex at the command line, then those patches will be loaded instead of the ones listed here.
i_remapkeypad
  The keypad is never remapped to non-keypad keys anymore. This cvar came from a time when you could only assign a function to at most two different keys. Now that Quake-style keybindings are possible, this cvar is no longer necessary and has been a source of confusion.
impulse
  Use the new slot command instead.
nobfgaim
  This was renamed to sv_nobfgaim and is now a part of dmflags2.
vid_noptc
  PTC is no longer used for video, so there is nothing for this cvar to disable.
testgibs
  This variable never did anything useful in 1.22.
sv_friction
  Friction was never configurable from the console.

## 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.
addslotdefault slot weapon
Adds a single weapon to the list of weapons in a weapon slot, but only if that weapon is not already in a slot. If the weapon is already present in a slot (either the slot specified to addslotdefault or some other slot), then this command does nothing. When used inside a KEYCONF lump, this command must be preceded by a weaponsection command.
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.

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
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.
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.
weaponsection ini-section-name
This command is similar to addkeysection. Upon execution, it loads all the weapon slot assignments from the corresponding ini-section-name section in zdoom.ini. When you quit the game, the weapon slots will also be stored in the specified section in zdoom.ini instead of their standard location so that they do not overwrite the player's normal weapon assignments.

## 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 neccessarily 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_dir
string: ""
This is the directory where screenshots will be saved if you do not provide a filename to the screenshot command. If this is unspecified (i.e. you leave it at its default), screenshots will be saved to the current working directory.
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 "pcx"
    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.

## Gameplay

## 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 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.
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.
mdk
This cheat will kill whatever you are looking at.
morphme
Transforms you into a chicken in Heretic and a pig in Hexen.
noclip
Toggles noclipping mode on/off.
notarget
Toggles notarget mode on/off. While active, monsters will not target you unless you hurt them first.
powerup
Powers you up in Heretic as if you had used a Tome of Power.
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_capfps
boolean: false
Traditionally, Doom has been limited to displaying only 35 frames per second. In ZDoom, this limitation has been shattered, and the game will normally run as fast as your processor allows. If you prefer the limited framerate originally offered by Doom, you can set this cvar to true, and the game will never run faster than 35 FPS. If your machine is too slow to run faster than 35 FPS, you might also experience better gameplay by setting this cvar to true.
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.
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_notablist
boolean: false
When you press tab on the console to complete a command, a list of possible completions will normally be printed the first time you press tab and subsequent presses of tab will cycle through the different completions. By setting this cvar to true, the list will not be printed and every press of tab will cycle through the possible completions.
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:

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

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

0. Brick
1. Tan
2. Gray
3. Green
4. Brown
5. Gold
6. Red
7. Blue
8. Orange
9. White
10. 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:

0. Normal detail level. Equivalent to Doom's high detail mode.
1. Double pixels horizontally. Equivalent to Doom's low detail mode.
2. Double pixels vertically.
3. 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_drawfuzz
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_skyboxes
boolean: true
Set this to false to disable the drawing of skyboxes. Then every sky will be drawn as a standard sky instead of as a skybox.
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 useable 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. Because Doom's internal game rate and frame rate are linked, the framerate will never be (much) above 35 fps.
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_speedtest
Runs a test to measure the speed of writing to video memory compared to the speed of writing to system memory.
vid_vsync (Win32 only)
boolean: true
Set this to false to disable vsync. Not all video cards support disabling vsync, and Doom's frame rate is capped at 35 FPS, so there's really no reason why you would want to disable vsync.
vid_winscale
float: 1
Unimplemented.

## 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_next_color
integer: 11
Not implemented.
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_cheat
integer: 0
This cvar controls the state of the automap cheat. In Doom, this is equivalent to how many times you have used the IDDT cheat. The other games have similar cheats. It has three possible values:

0. No cheating. The automap only shows you what you have already seen or whatever the full-map pickup reveals.
1. Show every line on the map, including those that would normally never be seen on the map.
2. Show everything on the map, including all lines and actors.

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_ovtrans
float: 1
Currently unimplemented.
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_secretwallcolor
color: "00 00 00"
The color of lines that are marked secret when you are using the automap cheat. When you aren't using the automap cheat, secret walls are drawn the same color as one-sided lines.
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.
playerclass
string: "Fighter"
This is the player's class when playing Hexen. It can have one of four values:

1. Fighter
2. Cleric
3. Mage
4. Random

Changes to this cvar only take effect when you start a new game with the map command.
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:

0. Red
1. Blue
2. Green
3. 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.
cl_noprediction
boolean: false
In order to provide more responsive network play, ZDoom normally uses player prediction so that you can move immediately without waiting to receive packets from the other machines in the game. Doom didn't have prediction, and if you don't like it, you can turn it off by setting this cvar to true.
clearscancycles
Used for profiling the wallscan function.
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:

0. Whenever you enter a new level and whenever the level requests it.
1. Only when the level requests it.
2. 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.
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 useable 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.
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.
genglnodes
boolean: false
When set to true, GL-friendly nodes will be generated and used in playce of whatever BSP tree was saved with the map. You must also set gennodes to true for this cvar to have any effect.
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.
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.
opl_enable
boolean: false
When set to true, MUS music will be played using classical OPL2 FM synthesis as used by many of the sound cards available during the old DOS days when Doom was young. This can be very processor-intensive, so don't use it if you have a low end machine.
opl_frequency
integer: 11025
This is sampling rate the OPL emulation will run at. Setting it to less than a real OPL chip can drastically effect the pitch of certain sounds, since the emulation does no interpolation for samples that aren't emulated. A real OPL chip runs at a little over 30000 Hz.
opl_onechip
boolean: false
Setting this to true will limit the emulation to only one OPL2 chip instead of two. One chip is not really enough to play Doom's music, and most old sound cards had either two OPL2 chips or one OPL3 chip (which acts like two OPL2 chips), but it can make the emulation up to twice as fast.
opl_singlevoice
boolean: false
Setting this to true will cause all double voice instruments to use only one voice. Many Doom instruments use two voices, so this is not recommended.
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.
showloadtimes
boolean: false
When set to true, various performance counters will be printed to the console whenever a map is loaded.
showrngs
Prints the current seed for every random number generator.
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 neccessary to avoid actually loading multiple copies of the same sound into memory.
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.
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.

## Effects

cl_bloodsplats
boolean: true
When true, whenever something bleeds, it has a chance of leaving blood spots on nearby walls. Setting this to false might help performance on low-end machines.
cl_bloodtype
integer: 0
Controls how blood is drawn. Supported values are:

0. Blood is drawn as sprites
1. Blood is drawn as both sprites and particles
2. Blood is drawn as particles only

cl_maxdecals
integer: 1024
This is the maximum number of automatically generated decals (such as bullet marks and blood) that can appear in a level at one time. It does not effect decals that level authors have placed in their levels manually. Setting this to 0 will disable all decals except any that a level comes with.
cl_missiledecals
boolean: true
Set this to false if you don't want exploding missiles to leave scorch marks.
cl_pufftype
integer: 0
Controls how bullet puffs are drawn. Supported values are:

0. Puffs are drawn as sprites
1. Puffs are drawn as particles

cl_rockettrails
boolean: true
Controls whether or not rockets leave trails of smoke behind them.
telezoom
boolean: true
When true, teleporters will create an Unreal-like zooming effect when you use them.
test expression true-command [false-command]
Evaluates expression and executes true-command if the result is non-zero. If the result is zero, then false-command will be executed instead (if you specified it).

Examples:

      test $cl_run "echo cl_run is on" "echo cl_run is off"
      test = + 2 2 4 "echo 2+2 really is 4"
      test <= $screenblocks 10 "echo the view window is shrunk" "echo the view window is full size"

transsouls
float: 0.75
This is the amount of translucency exhibitted by lost souls. Valid values are in the interval (0.0,1.0]. Larger values mean less translucency.
wipetype
integer: 1
Selects the type of screen wipe to use. There are currently four possible settings for this cvar:

0. No wipe
1. Melt
2. Burn
3. Crossfade

## Sounds

eaxedit
Opens the EAX editor.
eaxedit_test
boolean: true
When true, the EAX environment currently shown in the editor will be used for all areas of the map. This allows for interactive tweaking of different environments.
snd_3d
boolean: false
Setting this cvar to true will enable the use of 3D sound hardware.
snd_buffersize
integer: 0
This is the length of the sound buffer in milliseconds. Leaving this at 0 will use the sound card's default buffer size. If that is unacceptable, you can try setting the buffer size manually. Buffer sizes can be any multiple of 20. Sizes that are not will be rounded up to the nearest multiple of 20. Smaller buffers produce less latency but are more prone to "breaking up" or "stuttering". You want the buffer size to be as low as possible without stuttering. Each time you change the buffer size, you should use snd_reset to test the new buffer size.
snd_channels
integer: 12
This cvar determines the number of channels used for mixing sound effects. Larger values generally sound better but also require a faster processor. In general, anything between 8-16 should be plenty.
snd_driver
integer: 0
Selects a machine-specific sound driver. The available drivers depends both on the setting of snd_output and on the hardware installed. The snd_listdrivers command will list the drivers available for the current output device.
snd_flipstereo
boolean: false
Setting this to true causes sounds to the left of the listener to play on the right channel and vice-versa. Use this if your sound setup is screwy and has stereo reversed.
snd_fpumixer
boolean: false
Setting this to true will force the use of the high-quality FPU mixer. This is usually slower than the standard mixer, and you probably won't notice a difference.
snd_listdrivers
Lists the drivers supported by the current snd_output setting.
snd_matrix
boolean: false
Setting this to true enables simple software support for the rear channel in a surround system. I don't have a surround system, so I don't know how jarring the transition from front to back is.
snd_movievolume
float: 1.0
This is the volume movies are played back at and can range from 0 to 1.
snd_musicvolume
float: 0.3
This is the volume digital music is played at and can range from 0 to 1. Digital music includes MODs, OGGs, MP3s, and SPCs.
snd_output
string: "default"
Selects either DirectSound or WaveOut for sound playback. "Default" selects WaveOut under NT 4 and DirectSound under all other operating systems. "DSound" or "DirectSound" will force the use of DirectSound, and "WinMM" or "WaveOut" will force the use of WaveOut.
snd_pitched
boolean: false for Doom, true for other games
When set to true, the random pitch effect found in early versions of Doom will be simulated. For Doom, this defaults to false because pitch shifting was present only in early versions of that game. For Heretic and Hexen, this defaults to true because all versions of those games use pitch shifting.
snd_reset
Activates any changes that have been made to snd_3d, snd_output, snd_samplerate, or snd_driver.
snd_samplerate
integer: 44100
This is the sampling rate (in Hz) at which sounds are mixed in the game. This effects the sound quality for everything except MIDI music. Most DOOM sounds are only 11025 Hz, but some are 22050 Hz, and digital music sounds best with higher sampling rates, so the default is for CD quality sound—44100 Hz.
snd_sfxvolume
float: 0.5
This is the volume at which sound effects are played and can range from 0 to 1. This does not set the volume for your sound card's wave playback.
snd_status
Lists information about the current sound device.
snd_surround
boolean: true
When true, selected sounds will be played on the surround channel. This effect is actually intended for people with two speakers because it gives certain sounds an "airier" sound. If you have a Dolby Pro-Logic decoder, think it's annoying, or have a buggy soundcard that mixes in stereo but outputs in mono, you should turn this off.
snd_waterreverb
boolean: true
Controls the use of reverb in underwater areas. False disables the reverb, and true enables it. People complained that the reverb sounds bad with a SoundBlaster Live!, although I don't know if that's just because they weren't used to it or becuase the Live! card stinks. I think it sounds fine with an Audigy and a Vortex2.

## Music - MIDI

snd_listmididevices
This command lists the MIDI devices available in the system. Devices in this list can be used in the snd_mididevice cvar to select which device plays music.
snd_mididevice
integer: -1
This cvar determines which MIDI device ZDoom uses for MIDI and MUS music. A value of -1 indicates to use the Windows MIDI Mapper, while other values select specific MIDI devices. A complete list of MIDI devices available can be obtained with the snd_listmididevices command.
snd_midiprecache
boolean: true
Works around a bug in the GUS PnP drivers by precaching every instrument in a song just before playback begins. If you don't have one of these cards, you can set this to false to speed up music transitions.
snd_midivolume
float: 0.5
This is the volume MIDI and MUS music is played at and can range from 0 to 1.

## Music - SPC

SPC playback is only supported by the Windows version of ZDoom. You must also have snesapu.dll in your search path for it to work. The WinAmp plugin SNESAmp will automatically install this DLL for you, or you can download a copy of it from the ZDoom downloads page.
spc_8bit
boolean: false
Set this to true to playback SPCs using 8-bit quality instead of 16-bit.
spc_amp
integer: 30
Sets the SPC pre-amplification level.
spc_frequency
integer: 32000
Sets the sample rate to play SPCs at.
spc_lowpass
boolean: false
Set this to true to enable the SPC lowpass filter.
spc_noecho
boolean: false
Set this to true to disable echo processing in SPC playback.
spc_oldsamples
boolean: false
Set this to true to use the old ADPCM sample decompression routine for SPCs.
spc_quality
integer: 1
Determines the type of interpolation used when playing SPCs:

0. No interpolation
1. Linear interpolation
2. Cubic interpolation
3. Gaussian interpolation

spc_stereo
boolean: true
Set this to false to prevent playing SPCs in stereo.
spc_surround
boolean: false
Set this to true to use pseudo surround sound when playing SPCs.

## Music - Timidity

Under Linux, Timidity is the only way to hear MIDI music. Most, if not all, Linux distributions should come with a copy of Timidity. If you can't get music to play in ZDoom, make sure Timidity is properly set up to play music from the command line before touching the cvars here.

Under Windows, Timidity is also supported as snd_mididevice -2. The Windows version of ZDoom requires a special version of Timidity available from the ZDoom downloads page.

timidity_8bit
boolean: false
Set this to true to make Timidity output 8-bit instead of 16-bit audio.
timidity_byteswap
boolean: false
Set this to true to make Timidity swap the upper 8 bits and the lower 8 bits of audio data when it is outputting 16-bits. Probably nobody needs this.
timidity_chorus
string: "0"
The contents of this cvar are supplied to Timidity's -EFchorus option.
timidity_exe
string: "timidity.exe" (Win32) or "timidity" (Linux)
The name of the Timidity executable to use. If Timidity is not in the current path, you also need to specify the full pathname. Under Windows, you must include the .exe prefix.
timidity_extargs
string: ""
This cvar is used to supply any extra arguments to Timidity. Its contents are appended to the command line that ZDoom generates using the other timidity cvars.
timidity_frequency
integer: 22050
This is the sample rate that Timidity will play the music at.
timidity_pipe
integer: 60
This is the approximate size, in milliseconds, of the stream buffer the game uses to mix Timidity's output with the rest of the game audio. Setting the buffer size to 0 will cause Timidity to send its output directly to the sound card instead of through the game. Most, if not all, PCI sound cards should be fine with this set to 0. Older sound cards will require this to be non-zero so that ZDoom can mix the music with the rest of its sounds.
timidity_reverb
string: "0"
The contents of this cvar are supplied to Timidity's -EFreverb option.
timidity_stereo
boolean: true
Set this to false to force Timidity's output to be monaural instead of stereo.

## Music - CD

cd_close
Closes the CD tray.
cd_drive
string: ""
This is the drive letter of the CD drive that the CD commands will affect. If you only have one CD drive, you can leave it blank. Doing so will cause the game to use the default CD drive.
cd_eject
Ejects the CD tray.
cd_enabled
boolean: true
Set this to false if you don't want CD audio support.
cd_pause
Pauses CD playback.
cd_play [track]
Starts playing a CD. If you specify a track, that specific track will be looped. Otherwise, the entire CD will play.
cd_resume
Resumes CD playback that was previously paused.
cd_stop
Stops CD playback.

## Input - Keyboard

turnspeeds [speed1] [speed2] [speed3] [speed4]
Controls how quickly you turn with the keyboard. Using this command without any parameters lists the current turning speeds. To set the speeds, specify at least one, and any you do not specify will be filled in automatically. The different speeds are used in the following situations:

1. Turning while walking
2. Turning while running
3. Just started turning while walking
4. Just started turning while running

## Input - Mouse

freelook
boolean: 0
When true, mouse aiming will always be on, regardless of the state of +mlook.
in_mouse (Win32 only)
integer: 0
This cvar selects which method ZDoom will use to read the mouse. Valid values are:

0. Automatically select a method based on the operating system
1. Use normal Win32 API calls (default for Windows NT 4).
2. Use DirectInput (default for all other Windows).

invertmouse
boolean: false
When true, reverses the way mouse movement up and down is interpreted with +mlook. Normally, moving the mouse forward will make you look up, and moving it back will make you look down. Setting this cvar to true changes this behavior so that moving the mouse forward makes you look down, and moving it back makes you lookup.
lookspring
boolean: true
When true, all -mlook commands will also generate centerview commands.
lookstrafe
boolean: false
When true, moving the mouse left and right will always cause the player to strafe left and right regardless of the state of +strafe.
m_filter
boolean: false
Setting this to true will smooth mouse input if your framerate exceeds your mouse's sampling rate. The only mice that really need this are serial mice, since those are typically sampled only 40 times each second. Utilities exist to increase the sampling rate of PS/2 mice under Windows 9x, and USB mice are always sampled considerably more frequently.
m_forward
float: 1.0
This is the sensitivity of moving forward and backward with the mouse.
m_noprescale
boolean: false
Setting this to true will use the raw mouse movements to control mouse input. Normally, the horizontal and vertical axes are multiplied by different scalars before being processed by the input code.
m_pitch
float: 1.0
This is the sensitivity of looking up and down with the mouse.
m_side
float: 2.0
This is the sensitivity of strafing left and right with the mouse.
m_yaw
float: 1.0
This is the sensitivity of looking left and right with the mouse.
mouse_sensitivity
float: 1.0
The larger this cvar, the more sensitive the game is to all mouse movements.
use_mouse
boolean: true
When this cvar is false, ZDoom will ignore the mouse.

## Input - Joystick

Joystick support in ZDoom 2 has been extended considerably since ZDoom 1.22. It is now based around five virtual axes and a fully reconfigurable controller. Several cvars below bind a real joystick axis to a virtual axis. The virtual axes are listed below:

0. None: The joystick axis is unused.
1. Yaw: The joystick axis controls looking left and right.
2. Pitch: The joystick axis controls looking up and down.
3. Forward: The joystick axis controls moving forward and backward.
4. Strafe: The joystick axis controls moving left and right.
5. Up: The joystick axis controls moving up and down.

Each real axis also has a corresponding threshold cvar. This controls how far the axis must be moved from its centered position before its movement will be registered with the game. This distance is also known as the axis' dead zone. If you find that you are "twitching" are moving very slowly when you have your controller centered, you should increase the threshold for the corresponding axis until the problem goes away. A value of 0 means the axis has no dead zone, and a value of 1 means the dead zone covers the entire range of the axis' movement.

joy_dial
integer: 0 (unused)
The virtual axis the controller's dial represents.
joy_dialthreshold
float: 0.15
The size of the dial's dead zone.
joy_forwardspeed
float: -1.0
How quickly you move forward and backward with the forward axis.
joy_guid
GUID: {00000000-0000-0000-0000-000000000000}
This is the GUID for the controller ZDoom will use for input. If it does not correspond to any controller currently connected to the system, then the default controller will be used instead. The easiest way to set this is by using the joystick menu.
joy_pitchspeed
float: -0.75
How quickly you look up and down with the pitch axis.
joy_sidespeed
float: 1.0
How quickly you move left and right with the strafe axis.
joy_slider
integer: 0 (unused)
The virtual axis the controller's slider represents.
joy_sliderthreshold
float: 0.15
The size of the slider's dead zone.
joy_speedmultiplier
float: 1.0
This cvar controls the overall sensitivity/movement speed possible with a joystick. Values above 1.0 will allow you to reach full speed with less movement of the joystick, but they will not let you go any faster than normal (use the turbo cvar for that). Values less than 1.0 will prevent you from reaching full speed with the joystick. One potentially useful trick is to create these two aliases:

    alias +creep "joy_speedmultiplier 0.25"
    alias -creep "joy_speedmultiplier 1.0"

If you bind +creep to a button, then whenever that button is held down, you will walk with the joystick instead of run.
joy_upspeed
float: -1.0
How quickly you move up and down with the up axis.
joy_xaxis
integer: 1 (yaw)
The virtual axis the controller's X axis represents.
joy_xrot
integer: 0 (unused)
The virtual axis the controller's rotational X axis represents.
joy_xrotthreshold
float: 0.15
The size of the rotational X axis' dead zone.
joy_xthreshold
float: 0.15
The size of the X axis' dead zone.
joy_yawspeed
float: -1.0
How quickly you look left and right with the yaw axis.
joy_yaxis
integer: 3 (forward)
The virtual axis the controller's Y axis represents.
joy_yrot
integer: 0 (unused)
The virtual axis the controller's rotational Y axis represents.
joy_yrotthreshold
float: 0.15
The size of the rotational Y axis' dead zone.
joy_ythreshold
float: 0.15
The size of the Y axis' dead zone.
joy_zaxis
integer: 4 (strafe)
The virtual axis the controller's Z axis represents.
joy_zrot
integer: 1 (pitch)
The virtual axis the controller's rotational Z axis represents.
joy_zrotthreshold
float: 0.15
The size of the rotational Z axis' dead zone.
joy_zthreshold
float: 0.15
The size of the Z axis' dead zone.
use_joystick
boolean: false
Set this cvar to true if you want to use a joystick with ZDoom.

## Other commands and cvars

addrocketexplosion
boolean: false
When false, rocket explosions are drawn with normal translucency. When true, rocket explosions use additive translucency instead, producing a brighter effect.
alwaysapplydmflags
boolean: false
Normally, some dmflags are only used in deathmatch. If alwaysapplydmflags is true, then they will also be used in single-player and co-op games.
centerview
Causes the player to look straight ahead.
changemap map
Exits the current level and continues the game on the specified map. Unlike the map and idclev commands, this command *will* work properly during network games and is recorded in demos. Unfortunately, it has occasionally resulted in some problems. It should, however, be safe enough to use most of the time.
changemus music
Changes the currently playing music. Music should be the name of a music lump or file on disk (which need not have been specified with the -file parameter).
changeskill skill
Changes the current skill of the game. The skill change will take effect at the next map change. The skill must be a number. The default skill levels range from 0 to 4 inclusive.
chase
Turns the chasecom on and off. This command also works while watching demos, so you can bind it to a key and watch demos in the third person.
chase_dist
float: 90
This is how far away from the player the chasecam likes to be, but it will get closer as necessary to avoid going inside walls.
chase_height
float: -8
This is the base height above the top of the player's head that the chasecam will be positioned at. Looking up and down will move the camera in the opposite direction so that the player stays at approximately the same height on the screen. Large values of this cvar (either positive or negative) will produce strange output.
chasedemo
boolean: false
If this cvar is true, then demos will automatically start with the chasecam active.
cl_run
boolean: false
When non-zero, the game will always treat movement commands as if +speed is active.
clear
Clears the console of all text.
cmdlist [pattern]
Lists all commands supported by the current version of ZDoom.

If you specify a pattern, then only those cvars that match the pattern will be listed. Patterns can contain the wildcards * (which substitutes for zero or more characters) and ? (which substitutes for exactly one character).

compatflags
integer: 0
This cvar contains gameplay flags that control compatibility with the original Doom.

Value | Description
--- | ---
1 | compat_shortTex
2 | compat_stairs
4 | compat_limitpain
8 | compat_silentpickup
16 | compat_nopassover
32 | compat_soundslots
64 | compat_wallrun
128 | compat_notossdrops
256 | compat_useblocking
512 | compat_nodoorlight

compat_limitpain
flag in compatflags: false
When true, Pain Elementals will not shoot out Lost Souls if there are already 20 or more Lost Souls on the level.
compat_nodoorlight
flag in compatflags: false
When true, the BOOM lighting extension to local doors is disabled. Briefly, because local doors do not use their tag, BOOM extended them to use the tag to indicate a sector that should have its light level changed as the door opens and closes. This should normally not cause any problems with pre-BOOM maps.
compat_nopassover
flag in compatflags: false
When true, you will not be able to move above or below other things, even if there is enough room for you to fit. You will have to go around them instead, just like in Doom.
compat_notossdrops
flag in compatflags: false
When true, items dropped by monsters will appear on the floor as they did in Doom. When false, the monsters will appear to toss out items as in Heretic.
compat_shortTex
flag in compatflags: false
Controls the way the shortest texture around a sector is determined for specials that use it. When set to false, the blank texture (-) is not considered for the height. When true, the standard Doom behavior is replicated, and the blank texture is considered for the height. The blank texture is actually represented internally as being 64 pixels tall, so Doom could be tricked into thinking the shortest visible texture was only 64 pixels tall, even if it was really taller.
compat_silentpickup
flag in compatflags: false
When true, only you will hear yourself when you pick up an item.
compat_soundslots
flag in compatflags: false
When true, actors will be limited to only one sound slot each. Normally, actors have eight sound slots that can be used to play different sounds simultaneously, so you cannot shut off the BFG sound by landing on the ground. This lets you use the "silent BFG" trick by forcing the landing sound and weapon sounds (and every other sound you make) into the same sound slot.
compat_stairs
flag in compatflags: false
When true, a Doom stairbuilding bug is retained that could effect a few levels.
compat_useblocking
flag in compatflags: false
When true, any special line can block a line activated by pressing the +use key, even if the special line has nothing to do with +use.
compat_wallrun
flag in compatflags: false
When true, the original buggy Doom movement clipping code is emulated, allowing players to perform the wall run.
con_ctrl_d
string: ""
When you press Ctrl-D on a blank line in the console, the command in this cvar is executed. For example, if you set con_ctrl_d to "quit", then pressing Ctrl-D will quit the game.
cvarlist [pattern]
Lists the values of all currently defined cvars. Each cvar can also be prefaced by multiple flags. These are:

- `A`Cvar gets saved in the config file.
- `U` Cvar contains user info.
- `S` Cvar contains server info.
- `-` Cvar can only be changed from the command line.
- `L` Changes to cvar's contents don't take effect until the next game.
- `C` Cvar has an internal callback.
- `*` Cvar was created by the user and is meaningless to the game.

If you specify a pattern, then only those cvars that match the pattern will be listed. Patterns can contain the wildcards * (which substitutes for zero or more characters) and ? (which substitutes for exactly one character).
cvarlistplain
This command works similarly to cvarlist, except it does not include flag information or list user-created cvars. Its primary purpose is to provide a simple list of cvars that can be exported and checked against this file to ensure it is complete.
deathmatch
boolean: false
When true, deathmatch rules are used for the game. When the game is started with -altdeath or -deathmatch, this cvar is automatically set to true.
dimamount
float: 0.2
This is the amount of dimcolor to mix with the background when a menu is displayed. Setting it to 0 will cause the background to be untouched, and 1 will replace the background with dimcolor completely.
dimcolor
color: "ff d7 00"
This is the color to mix with the background when a menu is displayed.
dmflags
integer: 0
This cvar controls the behavior of several aspects of gameplay. To determine what value to store in this cvar, select the desired features from the table below and add their values together. If a feature is marked with (DM), then that feature will only be active during a deathmatch game.

Value | Description
--- | ---
1 | Do not spawn health items (DM)
2 | Do not spawn powerups (DM)
4 | Leave weapons around after pickup (DM)
8 | Enables the original ZDoom falling damage
16 | Enables Hexen falling damage
64 | Stay on the same map when someone exits (DM)
128 | Spawn players as far as possible from other players (DM)
256 | Automatically respawn dead players (DM)
512 | Do not spawn armor (DM)
1024 | Kill anyone who tries to exit the level (DM)
2048 | Don't use any ammo when firing
4096 | Don't spawn monsters
8192 | Monsters respawn sometime after their death
16384 | Powerups other than invulnerability and invisibilty respawn
32768 | Monsters are fast
65536 | Don't allow jumping
131072 | Don't allow freelook
262144 | Invulnerability and invisibility powerups respawn
524288 | Don't allow any actors to pass over or under other actors
1048576 | The arbitrator controls the FOV for all players (DM)

sv_barrelrespawn
flag in dmflags: false
When true, barrels will eventually respawn after they are destroyed. Changing this to true in the middle of a game will not effect barrels that have already been destroyed.
sv_falldamage
flag in dmflags: false
When true, Hexen-style falling damage will be applied whenever you fall too fast and land on something.
sv_fastmonsters
flag in dmflags: false
When true, monsters will move faster than normal.
sv_fastweapons
integer: 0
Controls how fast player weapons are. It can be set to one of three values:

0. Weapons are normal speed.
1. All weapon frames take 1 tic.
2. All weapon frames that perform an action take 1 tic, and all other weapon frames are skipped entirely.

sv_forcerespawn
flag in dmfalgs: false
When true, players will respawn automatically after they die.
sv_infiniteammo
flag in dmflags: false
When true, firing a weapon will not use any ammo.
sv_itemrespawn
flag in dmflags: false
When true, items will respawn after they have been picked up.
sv_monsterrespawn
flag in dmflags: false
When true, monsters will respawn after they have been killed.
sv_noarmor
flag in dmflags: false
When true, no armor will be spawned on the next map loaded.
sv_nobfgaim
flag in dmflags2: false
When set to 1, prevents manual aiming of the BFG. It will still aim up or down if you shoot it at something, but you won't be able to, for instance, shoot it at the ground to quickly generate tracer damage by looking down.
sv_noexit
flag in dmflags: false
When true, any players who attempt to exit the level will be killed. The only way to leave the level is to set a timelimit or fraglimit or change the map with the changemap command.
sv_nofov
flag in dmflags: false
When true, only the arbitrator will be able to set the horizontal field-of-view with the fov command, and the arbitrator's FOV will be used for all players.
sv_nofreelook
flag in dmflags: false
When true, disables looking up and down and forces the players to view straight ahead.
sv_nohealth
flag in dmflags: false
When true, no health items will be spawned on the next map loaded.
sv_noitems
flag in dmflags: false
When true, no powerups or artifacts will be spawned on the next map loaded.
sv_nojump
flag in dmflags: false
When true, players' clothes will become so heavy that they cannot possibly jump no matter how hard they try.
sv_nomonsters
flag in dmflags: false
When true, no monsters will be spawned on the next map loaded.
sv_oldfalldamage
flag in dmflags: false
When true, the old ZDoom-style falling damage will be applied whenever you land on something too quickly.
sv_respawnprotect
flag in dmflags2: false
When true, players will be invulnerable for two second after spawning.
sv_respawnsuper
flag in dmflags: false
When true, Doom's invulnerability sphere and blur sphere will be able to respawn like regular items.
sv_samelevel
flag in dmflags: false
When true, the only way to go to a different level is with the changemap command.
sv_spawnfarthest
flag in dmflags: false
When true, players will be spawned as far as possible from any other players.
sv_weapondrop
flag in dmflags: false
When true, players will drop their weapons when they die.
sv_weaponstay
flag in dmflags: false
When true, weapons will not disappear when a player picks them up. This does not apply to weapons dropped by monsters or other players.
dmflags2
integer: 0
This cvar contains additional gameplay flags that were originally added in Skull Tag. Some of them were also available as separate flags in earlier ZDooms. To determine what value to store in this cvar, select the desired features from the table below and add their values together. If a feature is marked with (DM), then that feature will only be active during a deathmatch game.

Value | Description
--- | ---
2 | Players drop their current weapon when they die
32768 | Prevents manually aiming the BFG up and down
65536 | Barrels respawn after they explode (DM)
131072 | Players are temporarily invulnerable immediately after spawning (DM)

endgame
Ends the current single player game and drops the console down to cover the screen.
exit
This is a synonym for quit and quits the game.
forcewater
boolean: false
When set to true, all BOOM-style deep water will be swimmable. This is not the default, because the effect used to produce it can be used for more than just deep water (although water is probably its most common use).
fov [viewfield]
When used without a parameter, returns the current horizontal field of vision. When viewfield is specified, sets the field of vision. This can be between 1 and 179 degrees. The default is 90. Notice that this is a command and not a cvar.
fraglimit
integer: 0
If this cvar is non-zero, the game will automatically advance to the next level once anyone gets this many frags. (deathmatch only)
history
Prints the most recently executed console commands that you can cycle through by pressing the up and down arrow keys.
hxvisit warp-trans
Changes to the level specified by warp-trans. Unlike idclev, hxvisit determines the map to go to by finding a map defined in MAPINFO with a matching warp-trans. Hence, it emulates the Hexen visit cheat.
idclev level-code
Changes to the level specified by level-code.
idmus level-code
Changes the music to that associated with the specified level.
idmypos
boolean: false
When true, constantly displays the player's current position and view angle.
infighting
integer: 0
Controls monster infighting. It has three possible values:

1. Monsters never fight other monsters
2. Monsters do not fight other monsters of their own kind unless they use bullet attacks. This is the standard Doom behavior.
3. Monsters will fight other monsters, including those of their own kind.

invnext
Selects the next inventory item you possess.
invprev
Selects the previous inventory item you possess.
invuse
Actives the currently selected inventory item.
invuseall
Activates every inventory item you possess.
land
If you are using a flight item, deactivates it and causes you to land.
language
string: "auto"
This is the language most game messages use. If it is "auto" or unknown, the settings in the Regional Settings control panel will be used to determine an appropriate language. Set this to "enu" if you want to use the standard U.S. English messages.
map map-name
Starts a new game on the specified map. This command should only be used when playing a single player game. To change maps in multiplayer, use the changemap command.
Activates the advanced sound options menu.
Activates the compatibility options menu.
Activates the display options menu.
Asks the user if they want to end the current game, and returns to the title screen if they do.
Activates the new game menu.
Activates the gameplay options (dmflags) menu.
Displays the help screen.
Activates the joytick/game controller configuration menu.
Activates the customize controls menu.
Activates the load game menu.
Activates the main menu.
Activates the MIDI device selection menu.
Activates the mouse configuration menu.
Activates the options menu.
Activates the player setup menu.
Asks the user if they want to quit, and quits if they do.
Activates the save game menu.
Activates the sound options menu.
Activates the video mode menu.
pause
Pauses and unpauses the game.
playdemo demo
Plays a demo. The demo can be a file on disk or a lump in a wad.
playlist playlist.m3u [shuffle|position]
Loads a WinAmp .m3u playlist. Any music that would normally be played will be ignored, and the songs in the playlist will be played instead. If you add the word shuffle after the name of the .m3u file, the playlist will be replayed in a random order. In place of shuffle, you can also specify a number corresponding to the song number in the playlist you want to play first.
playlistnext
Plays the next song in the playlist.
playlistpos position
Starts playing the song at the specified position in the playlist.
playlistprev
Plays the previous song in the playlist.
playliststatus
Displays the number of songs in the playlist and the currently playing song.
queryiwad
boolean: true
When ZDoom finds more than one game IWAD and you have not used the -iwad parameter, it will normally ask you to select which one you want to play with. Set this to false, and the first IWAD found will automatically be used.
quickload
Loads the last quicksaved game.
quicksave
Quick saves the game.
quit
Exits ZDoom and saves all configuration information to disk.
screenblocks
integer: 10
This cvar determines the size of the view window. Valid values are in the range 3-12 inclusive. Attempts to set this cvar to values outside this range will be truncated. 3 is the smallest view window, and 12 is full screen. 11 is also full screen, but includes a small heads-up display. 10 is almost full screen, except it includes the status bar at the bottom of the screen.
select item
Selects an inventory item by name. Supported names are:

- invulnerability
- invisibility
- health
- superhealth
- tomeofpower
- healingradius
- summon
- torch
- firebomb
- egg
- fly
- blastradius
- poisonbag1
- poisonbag2
- poisonbag3
- teleportother
- speed
- boostmana
- boostarmor
- teleport
- puzzskull
- puzzgembig
- puzzgemred
- puzzgemgreen1
- puzzgemgreen2
- puzzgemblue1
- puzzgemblue2
- puzzbook1
- puzzbook2
- puzzfweapon
- puzzcweapon
- puzzmweapon
- puzzgear1
- puzzgear2
- puzzgear3
- puzzgear4

setcolor cvar color-name
Sets cvar to a color value specified in the X11R6RGB lump. (This is the X11R6.rgb file from a standard X-Windows system.) If color-name cannot be found, the contents of cvar are left unchanged. The file colors.txt included with the ZDoom archive contains a list of all the color names listed in zdoom.wad.

This command is redundant now that color cvars can be set to color names directly without using the setcolor command.

setslot [slot weapons...]
The setslot command is used to configure the weapon slots from within the game. Without any parameters, it lists the weapons currently assigned to each slot. If you specify a slot number, then the weapons in the slot will be replaced by those on the command line. If you don't specify any weapons, the slot will be cleared. There are ten slots numbered 0-9, and each slot can hold up to eight weapons. If a slot has more than one weapon, the slot command will cycle through them in reverse order. You can use the `dumpclasses weapon` command to get a list of the weapon names.

Examples:
  `setslot 1 Fist Chainsaw`
  `setslot 2 Pistol`

show_messages
boolean: true
When this variable is true, game messages will be displayed at the top of the screen. Regardless of the state of this cvar, console messages will always be displayed in the console. If logging is enabled, messages will also be written to disk.
sizedown
Decrements screenblocks by 1, shrinking the view window.
sizeup
Increments screenblocks by 1, enlarging the view window.
skill
integer: 2
This variable contains the game skill, ranging from 0 to 4 inclusive. Changes to this cvar only take effect when a new level is loaded.
slot slot-number
Selects the next weapon from the specified weapon slot.
splashfactor
float: 1.0
This controls the amount of damage players receive when they fire a rocket and it explodes right next to them. It applies only to the player who fires the rocket; all others receive normal damage. A value of 0.5 would apply only half damage to the player. A value of 2.0 would apply double damage. Other values are similar. Useful mostly for people who like to rocket jump and don't like dying if they don't have 100% health and a lot of armor.
spynext
During a cooperative game or while watching a multiplayer demo, this command will switch your view to the next player.
spyprev
During a cooperative game or while watching a multiplayer demo, this command will switch your view to the previous player.
stop
Stops demo recording and exits the game.
stopmus
Stops playing the current song.
sv_aircontrol
float: 0.00390625
Sets the amount of control you have while in the air. 1 is the same control you have while on normal ground. 0 is no control at all—the original Doom setting—you have to wait until you land before you can change direction. The default value is very close to the standard Doom value but still large enough to allow you to stand next to a ledge and jump onto it.
sv_gravity
float: 800
This is the overall gravity of the entire level. 800 is normal gravity.
teamdamage
float: 0.0
Controls how much damage players can do to their teammates. This is multiplied to the normal damage done, so a value of 0 means that players cannot hurt their teammates. A value of 1 means that players deal full damage to their teammates. You can also set this to values greater than 1 to deal extra punishment to your teammates.
teamplay
boolean: false
When set to true, players will be recognized by team. Otherwise, everyone is treated as if they aren't on a team regardless of the settings of their team cvars. Useful primarily for the friendy fire avoidance dmflag and say_team command.
testblend color amount
Sets the palette blend to a specified color and amount. color can be either a color name defined in the X11R6RGB lump or a color string. amount can be any number between 0.0 and 1.0 inclusive and specifies how much of color should be mixed with the palette, with 0.0 being no mixing and 1.0 being full mixing.
testcolor color
Sets the light color of any sectors using the default light to color. color can be either a color defined in the X11R6RGB lump or a color string.
testfade color
Temporarily sets the fade color of the current level to color. Most levels fade to black by default, but this can be changed with the MAPINFO lump. color can be either a color defined in the X11R6RGB lump or a color string.
timedemo demo
Plays a demo as fast as the refresh rate will allow and displays the average framerate attained during playback. Due to limitations in the current demo system, this command will also exit the game when the demo finishes. See also: playdemo
timelimit
float: 0
When this cvar is non-zero, the game will automatically advance to the next level after this many minutes have elapsed. (deathmatch only) See also: fraglimit
toggle cvar
Toggles the value of cvar between false and true (zero and non-zero).
toggleconsole
Toggles display of the console on/off.
togglemessages
Toggles display of game messages on/off. The only difference between doing this and "toggle show_messages" is that this command always displays a message describing the current state of messages.
turn180
Quickly turns your player around 180 degrees.
use item
Uses a specific inventory item. The supported item names are the same as for the select command.
useflechette
This command will make you use whichever type of flechette you have. There are actually three different types of flechettes, and which one you pick up when you walk over a flechette is determined by your player's class. This command is equivalent to `use ArtiPoisonBag1`, `use ArtiPoisonBag2`, or `use ArtiPoisonBag3`, depending on which type of flechette is in your inventory.
var_friction
boolean: true
When set to false, normal friction is applied to the player in all cases. Otherwise, the amount of friction applied is determined by the sector the player is in.
var_pushers
boolean: true
When set to false, disables the BOOM push/pull wind effects.
weapnext
Selects the next weapon (in order) that you own and have ammo for.
weapon weapon-number
Activates a specific weapon if you are carrying it and have enough ammo. Weapon numbers may change in the future, so you are encouraged to use addslot to add weapons for use with the slot command instead.
weapprev
Selects the previous weapon (in order) that you own and have ammo for.
whereisini
Prints the location of the current zdoom.ini to the console. The zdoom.ini file is normally stored in the user's profile directory. It may not be immediately obvious where that is, so you can use this command to find out.
wi_percents
boolean: true
When false, intermission stats are printed as absolute values such as "7 of 9". When true, intermission stats are printed as percentages such as "50%".

### Index

+/-attack
+/-back
+/-forward
+/-jump
+/-klook
+/-left
+/-lookdown
+/-lookup
+/-mlook
+/-movedown
+/-moveleft
+/-moveright
+/-moveup
+/-right
+/-showscores
+/-speed
+/-strafe
+/-use

#### A

addbot
addkeysection
addmenukey
addrocketexplosion
addslot
addslotdefault
alias
alwaysapplydmflags
am_backcolor
am_cdwallcolor
am_cheat
am_fdwallcolor
am_gridcolor
am_interlevelcolor
am_intralevelcolor
am_lockedcolor
am_notseencolor
am_overlay
am_ovotherwallscolor
am_ovtelecolor
am_ovthingcolor
am_ovtrans
am_ovunseencolor
am_ovwallcolor
am_ovyourcolor
am_rotate
am_secretwallcolor
am_showitems
am_showmonsters
am_showsecrets
am_showtime
am_thingcolor
am_tswallcolor
am_usecustomcolors
am_wallcolor
am_xhaircolor
am_yourcolor
anubis
archivecvar
atexit
autoaim
autosavenum

#### B

bind
binddefaults
bot_allowspy
bot_next_color
bot_observer
bumpgamma

#### C

cd_close
cd_drive
cd_eject
cd_enabled
cd_pause
cd_play
cd_resume
cd_stop
centerview
changemap
changemus
changeskill
chase
chase_dist
chase_height
chasedemo
chat_substitution
chatmacro0
chatmacro1
chatmacro2
chatmacro3
chatmacro4
chatmacro5
chatmacro6
chatmacro7
chatmacro8
chatmacro9
cl_bbannounce
cl_bloodsplats
cl_bloodtype
cl_capfps
cl_maxdecals
cl_missiledecals
cl_noprediction
cl_pufftype
cl_rockettrails
cl_run
cl_showmultikills
cl_showsprees
cl_spreaddecals
clear
clearscancycles
clearwallcycles
cmdlist
color
compat_limitpain
compat_nodoorlight
compat_nopassover
compat_notossdrops
compat_shortTex
compat_silentpickup
compat_soundslots
compat_stairs
compat_useblocking
compat_wallrun
compatflags
con_centernotify
con_ctrl_d
con_midtime
con_notablist
con_notifytime
con_scaletext
countdecals
countdecalsreal
crosshair
crosshaircolor
crosshairgrow
crosshairhealth
crosshairscale
cvarlist
cvarlistplain

#### D

deathmatch
defaultbind
demo_compress
developer
dimamount
dimcolor
dir
disableautosave
dmflags
dmflags2
doublebind
dumpclasses
dumpmap
dumpmapthings
dumpspawnables

#### E

eaxedit
eaxedit_test
echo
endgame
error
error_fatal
eval exec
exit

#### F

fly
forcewater
fov
fraglimit
freelook
freeze
fullscreen

#### G

gameversion
gamma
genblockmap
gender
genglnodes
gennodes
get
give
god

#### H

history
hud_scale
hxvisit

#### I

idclev
iddqd
idmus
idmypos
in_mouse
infighting
invertmouse
invnext
invprev
invuse
invuseall

#### J

joy_dial
joy_dialthreshold
joy_forwardspeed
joy_guid
joy_pitchspeed
joy_sidespeed
joy_slider
joy_sliderthreshold
joy_speedmultiplier
joy_upspeed
joy_xaxis
joy_xrot
joy_xrotthreshold
joy_xthreshold
joy_yaxis
joy_yawspeed
joy_yrot
joy_yrotthreshold
joy_ythreshold
joy_zaxis
joy_zrot
joy_zrotthreshold
joy_zthreshold

#### K

key
kill

#### L

land
language
listbots
logfile
lookspring
lookstrafe

#### M

m_filter
m_forward
m_noprescale
m_pitch
m_side
m_yaw
map
mdk
menu_advsound
menu_compatibility
menu_display
menu_endgame
menu_game
menu_gameplay
menu_help
menu_joystick
menu_keys
menu_load
menu_main
menu_mididevice
menu_mouse
menu_options
menu_player
menu_quit
menu_save
menu_sound
menu_video
messagemode
messagemode2
morphme
mouse_sensitivity
movebob
msg
msg0color
msg1color
msg2color
msg3color
msg4color
msgmidcolor
msgmidcolor2

#### N

name
neverswitchonpickup
noclip
nofilecompression
noise
notarget

#### O

opl_enable
opl_frequency
opl_onechip
opl_singlevoice

#### P

pause
pings
playdemo
playerclass
playerinfo
playersounds
playlist
playlistnext
playlistpos
playlistprev
playliststatus
playmovie
playsound
png_gamma
png_level
powerup
print
puke
pullin

#### Q

queryiwad
quickload
quicksave
quit

#### R

r_columnmethod
r_detail
r_drawflat
r_drawfuzz
r_drawmirrors
r_drawplayersprites
r_drawtrans
r_fogboundary
r_particles
r_skyboxes
r_stretchsky
r_viewsize
r_visibility
rebind
removebots

#### S

say
say_team
screenblocks
screenshot
screenshot_dir
screenshot_quiet
screenshot_type
scriptstat
select
set
setcolor
setslot
show_messages
showloadtimes
showrngs
sizedown
sizeup
skill
skin
skins
slot
snd_3d
snd_buffersize
snd_channels
snd_driver
snd_flipstereo
snd_fpumixer
snd_listdrivers
snd_listmididevices
snd_matrix
snd_mididevice
snd_midiprecache
snd_midivolume
snd_movievolume
snd_musicvolume
snd_output
snd_pitched
snd_reset
snd_samplerate
snd_sfxvolume
snd_status
snd_surround
snd_waterreverb
soundlinks
soundlist
spc_8bit
spc_amp
spc_frequency
spc_lowpass
spc_noecho
spc_oldsamples
spc_quality
spc_stereo
spc_surround
splashfactor
spray
spynext
spyprev
st_scale
stat
stillbob
stop
stopmus
storesavepic
summon
sv_aircontrol
sv_barrelrespawn
sv_cheats
sv_falldamage
sv_fastmonsters
sv_fastweapons
sv_forcerespawn
sv_gravity
sv_infiniteammo
sv_itemrespawn
sv_monsterrespawn
sv_noarmor
sv_nobfgaim
sv_noexit
sv_nofov
sv_nofreelook
sv_nohealth
sv_noitems
sv_nojump
sv_nomonsters
sv_oldfalldamage
sv_respawnprotect
sv_respawnsuper
sv_samelevel
sv_spawnfarthest
sv_weapondrop
sv_weaponstay

#### T

team
teamdamage
teamplay
telezoom
test
testblend
testcolor
testfade
ticker
tilt
timedemo
timelimit
timidity_8bit
timidity_byteswap
timidity_chorus
timidity_exe
timidity_extargs
timidity_frequency
timidity_pipe
timidity_reverb
timidity_stereo
toggle
toggleconsole
togglemap
togglemessages
transsouls
turbo
turn180
turnspeeds
tx
ty

#### U

unbind
unbindall
undoublebind
unset
use
use_joystick
use_mouse
useflechette

#### V

var_friction
var_pushers
vid_attachedsurfaces
vid_currentmode
vid_defbits
vid_defheight
vid_defwidth
vid_fps
vid_listmodes
vid_noblitter
vid_palettehack
vid_setmode
vid_speedtest
vid_vsync
vid_winscale

#### W

warp
weapnext
weapon
weaponsection
weapprev
whereisini
wi_percents
wipetype