DMAPINFO

From DoomWiki.org

Revision as of 15:16, 6 January 2020 by Gez (talk | contribs)


The 2019 release of Doom and Doom II by id Software added support for MAPINFO lumps, called DMAPINFO. These are used by the engine to customize attributes of the game that can't be changed through the WAD file. If DMAPINFO is not present, the engine will fall back to vanilla behavior.

There are currently three valid blocks in DMAPINFO: episode, endsequence and map.

MAP block

map blocks defines a level in the game. Each map block has four required parts: a lump name, a display name, and valid mapnumber and episodenumber properties. All other fields are optional, and will fallback to vanilla behavior if not present.

map "<lump>" "<displayed name>"
{
    next = "<map lump>"
    secretnext = "<map lump>"
    par = <par time in seconds>
    music = "<music lump name>"
    episodenumber = <1-indexed episode number>
    mapnumber = <1-indexed map number within episode>
    endsequence = "<id of end sequence>"
    sky1 = "<sky lump name>", <sky scroll speed>
    map07special
}

- next: When a level is completed, the next field tells the game which map to load next. If not present, the game returns to the main menu. This is typically used on the last level of the episode, to end the game.

- secretnext: When a level is completed through a secret exit, the secretnext lump name is used to send the player to this level instead of the next one. If not present, the regular next map is used.

- par: Sets the par time of the level to be shown to the player, in seconds.

- music: If set, use the music stored at this lump name instead of the default. Currently, music lumps must be in MUS or MIDI formats.

- episodenumber: This is a required field, and allows the level select UI to attach a map to an episode in a defined order. The value is an integer, and corresponds to the nth defined episode.

- mapnumber: This is a required field, and allows the level select UI to order the maps in a set order. The value is an integer.

- endsequence: Play the end sequence with the given ID at the end of the level. After the sequence ends, the next or secretnext maps will be loaded next. There is not currently a way to set a sequence on a secret exit.

- sky1: Override the sky with the specified sky lump. Scroll speed is an optional integer to set the speed of sky scrolling.

- map07special: Enables special sectors 666 and 667 to be active for this map when playing DOOM II WADs.

EPISODE block

episode "<lump of first level>"
{
    name = "<displayed episode name>"
}

episode sections are currently only used by the UI in order for level selection. No other properties except name are currently supported.

ENDSEQUENCE block

endsequence "<id>"
{
    text = "this is an example text"
    "This is how you do line breaks"
    ""
    "Fourth line"
    flat = "<lump of background flat>"
    music = "<music lump>"
}

endsequence sections are used to override the built-in text screens, allowing map authors to place them after any map, with custom text, music, and textures. They are triggered after beating a map that has an endsequence option inside a map section.