Universal Doom Map Format
The Universal Doom Map Format (UDMF), also known as "TextMap" is a new map format described by text files. The format is the result of an ongoing cooperation between source port developers to create a standardized map format that is extensible and easy to code for.
Compatible source ports
- wad2udmf, by z34chris, converts maps in a WAD file to textmap format.
- UDMFConvert, by CO2, contains three dedicated executables to convert Doom maps, Hexen maps, and ZDoom maps.
The UDMF specification and the ZDoom extensions to the specification can both be found in the Git repository. The ZDoom extensions allow many more properties for vertices, things, linedefs, and sectors.
Note: UDMF-ZDoom allows to apply directly various transformations to textures. To display flat textures correctly in a port, editor or level viewer, the order of these transformation must be as follow: 1. UDMF scaling, 2. UDMF offsetting, 3. texture scaling (for hi-res textures), 4. UDMF rotating.
An UDMF map is made of, at a minimum, three lumps: the map header, TEXTMAP and ENDMAP. The header and ENDMAP are empty markers, whereas TEXTMAP contains all the raw map data: things, vertexes, linedefs, sidedefs, and sectors.
Differences for modders
UDMF allows to define additional flags and parameters directly, rather than having to use dummy line specials for that. As a result, a few functions are slightly different:
- Line_SetIdentification: Unavailable. This function is nothing more than a crutch for the Hexen map format, and therefore not needed in a textmap. All the properties that are set indirectly through this line special can be set directly instead.
- REVERBS: lines that are zone boundaries are marked with the zoneboundary property set to true, rather than through Line_SetIdentification.
- Polyobj_StartLine, Polyobj_ExplicitLine, Plane_Align, Teleport_Line, TranslucentLine, Scroll_Texture_Model: the lineid parameter used in these line specials should remain set to 0 in UDMF. TranslucentLine also has a moreflags parameter which is likewise useless in UDMF and shouldn't be set.
Conversion from the binary formats to UDMF
For historical reasons, ZDoom makes different assumptions depending on the map format. For this reason, when converting a map in Doom or Hexen format to UDMF in either of the ZDoom namespaces, it may induce blatant changes to the gameplay when comparing the original and the converted maps.
Doom format to UDMF
Every tagged sector needs to get added a 'dropactors = true;' line to remain compatible.
Doom-in-Hexen format to UDMF
ZDoom has two different types of line activation by monsters, lax and strict. In the lax mode, monsters can activate certain lines without the lines being tagged explicitly to allow them. ZDoom automatically assumes lax activation for non-Hexen maps in the Hexen format, but does not for UDMF. This part of the conversion can only be done in MAPINFO by adding the laxmonsteractivation property to the map. This only concerns games whose native format is the Doom format: Doom, Heretic, Strife, Chex Quest. Hexen-in-Hexen maps use strict activation by default.