ZDoom supports a special MAPINFO lump that can be used to define special characteristics for the different maps in a WAD/PK3, in addition to defining custom skill levels, intermissions, and game settings.
MAPINFO and ZMAPINFO
If you create a mod compatible with other source ports, but wish to use some ZDoom-specific MAPINFO options when played in ZDoom, it is advised to create a ZMAPINFO lump for ZDoom, and a different MAPINFO lump for other ports. The ZMAPINFO lump has to use the new format; while the MAPINFO can use the old syntax or the Hexen one, if the mod is for Hexen.
Note that if a ZMAPINFO is present, MAPINFO will not be parsed at all.
MAPINFO contains six types of entries: game information, episode definitions, map definitions, cluster definitions, skill definitions, and intermission definitions, which are indicated by the keywords “gameinfo”, “episode”, “map”, “cluster”, “skill”, and “intermission” respectively.
After the above keyword, the name or number of the defined element is specified (e.g. map E2M4) followed by a block of properties enclosed in curly-braces which affect the newly-created element. Properties may take zero or more parameters and are specified in the following format:
property = value1, value2, value3...
Within this article, parameters that are required are enclosed in <angle brackets>, while optional parameters are enclosed in [square brackets]. A parameter that is enclosed in neither type of bracket is a literal value that must be typed exactly as shown in order to work.
If a property is specified with no parameters, only the property name (no equals sign) is needed. In addition, all string parameters must be enclosed within quotation marks (as shown).
MAPINFO/ZMAPINFO lumps can include others with the include keyword. For example:
include mapinfo/gameconfig.txt include mapinfo/skills.txt include mapinfo/episode1.txt
Only the most important notions are described on this page, for examples and complete listing of all commands and properties, refer to each definition's subpage.
See cluster definition for full list of properties and examples.
An episode definition begins with the keyword “episode”.
See episode definition for full list of properties and examples.
A map definition begins with the keyword “map”. You can also specify standard characteristics for later map definitions by using the keyword “defaultmap” or “adddefaultmap” instead:
See map definition for full list of properties and examples.
Skill definitions begin with the keyword “skill” followed by the name of the skill and the properties block.
See skill definition for full list of properties and examples.
GameInfo definitions begin with the keyword "gameinfo" followed by a list of properties. This sets some miscellaneous data about the game such as what lump to use for the title picture.
See GameInfo definition for full list of properties and examples.
Custom Intermissions can now be defined. A map can jump to one by declaring it in the map definition. Custom intermission definitions begin with the keyword "intermission" followed by a name, and then a list of properties. This define an intermission sequence, such as Doom II's cast call or Hexen's chess game.
See Intermission definition for full list of properties and examples.
Options for ZDoom's child ports
The MAPINFO syntax allows properties to be specified for ZDoom-derivitave engines that support them. All others will skip over these lines.