The automap is a map displayed when the user presses the appropriate key (the tab key by default) (Down D-Pad on Xbox 360). As all levels in Doom, Heretic, Hexen and Strife are flat when viewed from above (it is not possible to have rooms above rooms), the map is easily generated by the software and easily comprehended by the player. (This is in contrast to Doom's close contemporary Descent, which had a 3D map that was more challenging to navigate.) Most of Doom's fully 3D successors, starting with Quake, have either abandoned the idea of a top-down map, or circumvented the problem of displaying a Z-axis by artificially dividing each level into 'floors' or 'zones'.
Several keys perform actions inside the automap:
- F: Toggles follow mode. If follow mode is on, the map remains centered on the player, and if not, it is possible to scroll the map using the arrow keys while the player remains stationary.
- M: Marks the current position with a number. Up to ten markers may be placed, numbered 0 through 9; further uses of the M key will cause the existing set of numbers to be sequentially erased in favor of the new positions. (In Doom95, this function is extremely buggy and may even cause the program to crash.)
- C: Clears all marked positions.
- G: Toggles grid on/off.
- +: Zooms in.
- -: Zooms out.
- 0: Zooms out fully. If pressed a second time without leaving automap mode, returns the map to its previous scale.
- Tab: Exits automap and returns to normal view.
- O: Toggles overlay mode (if the source port supports it), which displays the automap superimposed over the regular game view.
If one of these keys has also been mapped to a gameplay function (e.g. firing or running), the above table overrides that key's default behavior during automap mode. All other keys can be used as normal, however.
The lines in the automap are color-coded. Red lines indicate solid walls. Yellow lines indicate changes in ceiling height (e.g. doors). Brown lines indicate changes in floor height. Light gray lines indicate areas which have not yet been visited (made visible by the computer map powerup). This color scheme may vary depending on the source port being used.
While it is possible to walk around in automap mode, the map itself will not update: the lines shown in the map are marked by the rendering process, which does not occur while the automap is turned on. As the Doom instruction manual notes, playing in automap mode is a dubious long-term strategy, since monsters cannot be seen. Certain source ports avoid the entire issue by including the automap in a heads-up display.
Regardless of the view size setting in-game, the automap fills the entire screen and displays the status bar.
In cooperative mode, all players show up as arrows on the automap, with colors corresponding to the players' colors (red, green, brown, and indigo). In deathmatch mode, however, opponents are not visible on the map.
When an external demo lump is viewed using the -playdemo command line parameter, the automap can be accessed, and the automap cheat code works. The automap is not accessible during a built-in demo, or while running a demo with the -timedemo or -fastdemo switches; pressing the tab key in these modes brings up the game menu.
During the design of a level, linedefs can be flagged by the author so as not to appear on the automap even if the computer map powerup is obtained. However, the iddt cheat code will display all lines. Linedefs can also be flagged to appear on the map even before they have been rendered.
To avoid giving away secrets, concealed doors can also be marked so as to initially appear red on the map, as though they were solid walls.
The iddt cheat code can be used to display all linedefs and Things on the map. Zooming in closely on the player while this is active shows the letters "ddt", a reference to Dave Taylor who wrote the automap code.
In the Doom source code, there is still a residue of an implemented but unused automap strobing effect, which would cause the automap to slowly fade to a low lighting level and then back to full brightness cyclically. This feature is either left as dead code or altogether eliminated in most source ports.