Skip to content

Latest commit

 

History

History
236 lines (216 loc) · 13.5 KB

udmf.md

File metadata and controls

236 lines (216 loc) · 13.5 KB

UDMF (Universal Doom Map Format)

This page defines the dsda udmf namespace. Most features of this namespace form a subset of the zdoom namespace - they will be understood by both dsda-doom and gzdoom. Some new additions, marked with a 🦆, fill in some gaps. See the things and specials doc for more information about which specials and thing types are supported.

In principle, udmf features supported by both dsda-doom and gzdoom should work the same in each. However, there may be maps that do not work in one port or the other due to differences in the underlying physics, similar to other map formats. Significant deviation in behaviour is likely a bug.

It's strongly recommended to configure defaults with MAPINFO for cross-port consistency.

DSDA-Doom supports the zdoom and dsda namespaces and the zdbsp extended gl nodes gln, gl2, and gl3. Properties marked with a * are only supported by the opengl renderer.

Linedefs

Property Description
id integer Line ID / tag (default -1).
v1 integer Index of the first vertex.
v2 integer Index of the second vertex.
blocking bool Blocks things.
blockmonsters bool Blocks monsters.
blockplayers bool Blocks players.
blockfloaters bool Blocks floaters.
blocklandmonsters bool Block non-flying monsters.
blockprojectiles bool Blocks projectiles.
blockhitscan bool Blocks hitscan.
blockuse bool Blocks use.
blocksound bool Blocks sound.
blocksight bool Blocks sight.
blockeverything bool Blocks everything.
twosided bool Line has two sides.
dontpegtop bool Line upper texture is unpegged.
dontpegbottom bool Line lower texture is unpegged.
secret bool Line is drawn as one-sided on the map.
dontdraw bool Line never shows on the map.
mapped bool Line starts out mapped.
revealed bool Line starts revealed on the map.
jumpover bool Line is a strife-style railing.
playercross bool Can be activated by player cross.
playeruse bool Can be activated by player use.
monstercross bool Can be activated by monster cross.
monsteruse bool Can be activated by monster use.
impact bool Can be activated by projectile impact.
playerpush bool Can be activated by player push.
monsterpush bool Can be activated by monster push.
missilecross bool Can be activated by projectile cross.
anycross bool Can be activated by any non-projectile cross.
monsteractivate bool Can be activated by monsters.
playeruseback bool Can be activated by player use from the back.
firstsideonly bool Can only be activated from the front.
passuse bool Use action passes through the line.
checkswitchrange bool Switches can only be activated when vertically reachable.
locknumber integer
  • 0: No lock.
  • 1: Red key card.
  • 2: Blue key card.
  • 3: Yellow key card.
  • 4: Red skull key.
  • 5: Blue skull key.
  • 6: Yellow skull key.
  • 100: Any key.
  • 101: All 6 keys.
  • 129: Any red key.
  • 130: Any blue key.
  • 131: Any yellow key.
  • 132: Red card or skull.
  • 133: Blue card or skull.
  • 134: Yellow card or skull.
  • 229: Any key of each color.
repeatspecial bool Repeatable activation.
special integer Special action.
arg0 integer Special argument 0.
arg1 integer Special argument 1.
arg2 integer Special argument 2.
arg3 integer Special argument 3.
arg4 integer Special argument 4.
arg0str string Special argument 0 as a string (for certain actions).
sidefront integer Index of the first sidedef.
sideback integer Index of the second sidedef.
alpha float Translucency (default is 1.0).
translucent bool Line is 75% opague.
transparent bool Line is 25% opague.
clipmidtex bool Midtextures are clipped by the floor and ceiling.
* wrapmidtex bool Midtextures are wrapped.
midtex3d bool Actors can walk on the midtexture.
midtex3dimpassible bool The midtexture is impassible.
moreids string Space-separated list of extra IDs.
automapstyle integer
  • 0: Automatic (based on properties).
  • 1: One-sided.
  • 2: Two-sided.
  • 3: Different floor levels.
  • 4: Different ceiling levels.
  • 5: Reserved / unused (3D floor border).
  • 6: Wall with special non-door action.
  • 7: Secret.
  • 8: Unseen.
  • 9: Locked.
  • 10: Intra-level teleporter.
  • 11: Map exit.
  • 12: Unseen secret.
  • 13: Reserved / unused (portal).
health integer Line health (for use with damage / death special).
healthgroup integer Group ID of lines sharing health.
damagespecial bool Special activated when receiving damage that does not reduce health to 0.
deathspecial bool Special activated when health is reduced to 0.

Sidedefs

Property Description
offsetx integer X texture offset.
offsety integer Y texture offset.
texturetop string Upper texture.
texturebottom string Lower texture.
texturemiddle string Middle texture.
sector integer Sector index.
* scalex_top float X scale for upper texture (default is 1.0).
* scaley_top float Y scale for upper texture (default is 1.0).
* scalex_mid float X scale for middle texture (default is 1.0).
* scaley_mid float Y scale for middle texture (default is 1.0).
* scalex_bottom float X scale for bottom texture (default is 1.0).
* scaley_bottom float Y scale for bottom texture (default is 1.0).
offsetx_top float X offset for upper texture.
offsety_top float Y offset for upper texture.
offsetx_mid float X offset for middle texture.
offsety_mid float Y offset for middle texture.
offsetx_bottom float X offset for lower texture.
offsety_bottom float Y offset for lower texture.
light integer Light level.
light_top integer Upper texture light level.
light_mid integer Middle texture light level.
light_bottom integer Lower texture light level.
lightabsolute bool Light is absolute rather than relative to the owning sector.
lightabsolute_top bool Upper texture light is absolute rather than relative to the sidedef light level.
lightabsolute_mid bool Middle texture light is absolute rather than relative to the sidedef light level.
lightabsolute_bottom bool Lower texture light is absolute rather than relative to the sidedef light level.
nofakecontrast bool Disables fake contrast on this sidedef.
smoothlighting bool Enables smooth fake contrast on this sidedef.
clipmidtex bool Middle textures are clipped by the floor and ceiling.
* wrapmidtex bool Middle textures are wrapped.
🦆 xscroll float X units per frame to scroll line textures.
🦆 yscroll float Y units per frame to scroll line textures.
🦆 xscrolltop float X units per frame to scroll upper texture.
🦆 yscrolltop float Y units per frame to scroll upper texture.
🦆 xscrollmid float X units per frame to scroll middle texture.
🦆 yscrollmid float Y units per frame to scroll middle texture.
🦆 xscrollbottom float X units per frame to scroll lower texture.
🦆 yscrollbottom float Y units per frame to scroll lower texture.

Vertices

Property Description
x float X coordinate.
y float Y coordinate.

Sectors

Property Description
id integer Sector ID / tag.
heightfloor integer Floor height.
heightceiling integer Ceiling height.
texturefloor string Floor texture (flat).
textureceiling string Ceiling texture (flat).
lightlevel integer Light level.
special integer Sector special.
xpanningfloor float X offset for floor texture.
ypanningfloor float Y offset for floor texture.
xpanningceiling float X offset for ceiling texture.
ypanningceiling float Y offset for ceiling texture.
xscalefloor float X scale for floor texture.
yscalefloor float Y scale for floor texture.
xscaleceiling float X scale for ceiling texture.
yscaleceiling float Y scale for ceiling texture.
rotationfloor float Rotation of floor texture in degrees.
rotationceiling float Rotation of ceiling texture in degrees.
lightfloor integer Floor light level.
lightceiling integer Ceiling light level.
lightfloorabsolute bool Floor light is absolute rather than relative to the sector level.
lightceilingabsolute bool Ceiling light is absolute rather than relative to the sector level.
gravity float Sector gravity (default is 1.0).
silent bool Actors in the sector make no sound.
noattack bool Monsters in the sector do not attack.
hidden bool Sector will not be drawn on the map.
moreids string Space-separated list of extra IDs.
damageamount integer Damage inflicted by the sector. Negative numbers heal.
damageinterval integer Interval between damage applications (in tics, default is 32).
leakiness integer Probability of damage leaking through radiation suit (0 = never, 256 = always).
damagehazard bool Use strife-style delayed damage behavior.
🦆 xscrollfloor float X units per frame to scroll the floor.
🦆 yscrollfloor float Y units per frame to scroll the floor.
🦆 scrollfloormode integer Floor scroll mode (see table below).
🦆 xscrollceiling float X map units per frame to scroll the ceiling.
🦆 yscrollceiling float Y map units per frame to scroll the ceiling.
🦆 scrollceilingmode integer Ceiling scroll mode (see table below).
🦆 xthrust float X thrust magnitude (map units per frame^2).
🦆 ythrust float Y thrust magnitude (map units per frame^2).
🦆 thrustgroup integer Thrust group (see table below).
🦆 thrustlocation integer Thrust location (see table below).
🦆 colormap string Sector colormap.
🦆 skyfloor string Floor sky texture.
🦆 skyceiling string Ceiling sky texture.
🦆 frictionfactor float Friction factor. Ranges from 0 to 1 (default is 0.90625).
🦆 movefactor float Multiplier for actor ground movement, normally derived from the friction factor (default is 0.03125).

Scroll Mode

Flag Meaning
1 Affect textures
2 Affect static objects
4 Affect players
8 Affect monsters

Thrust Group

Flag Meaning
1 Affect static objects
2 Affect players
4 Affect monsters
8 Affect projectiles
16 Affect WINDTHRUST actors

Thrust Location

Flag Meaning
1 Affect grounded actors
2 Affect airborne actors
4 Affect ceiling actors

Things

Property Description
id integer Thing ID / tag.
x float X coordinate.
y float Y coordinate.
height float Z displacement relative to the floor (or ceiling for SPAWNCEILING things).
angle integer Facing angle in degrees.
type integer DoomEdNum.
skill1 bool Spawn in skill 1.
skill2 bool Spawn in skill 2.
skill3 bool Spawn in skill 3.
skill4 bool Spawn in skill 4.
skill5 bool Spawn in skill 5.
ambush bool Thing is deaf.
single bool Spawn in single-player mode.
dm bool Spawn in deathmatch mode.
coop bool Spawn in coop mode.
friend bool Spawn as a friend.
dormant bool Spawn dormant.
alpha float Translucency (default is 1.0).
translucent bool Thing is 66% opague.
invisible bool Thing is invisible.
special integer Special action.
arg0 integer Special argument 0.
arg1 integer Special argument 1.
arg2 integer Special argument 2.
arg3 integer Special argument 3.
arg4 integer Special argument 4.
arg0str string Special argument 0 as a string (for certain actions).
countsecret bool Picking this thing up counts as a secret.
gravity float Thing gravity. Positive values are multiplicative and negative values are absolute (default is 1.0).
health float Thing health. Positive values are multiplicative and negative values are absolute (default is 1.0).