-
Notifications
You must be signed in to change notification settings - Fork 13
DDF Levels
Stored in the DDFLEVL data lump, or the levels.ddf file.
DDFLEVL allows you to specify what order maps are play in, and what the settings are for each one. Each entry consists of a unique name, enclosed in square brackets, plus a series of commands that specify the wadfile entry, episode it belongs to, music played during the level etc.
The level name should refer to the episode and where in the order it appears e.g. QD04. This will often be the same name used in the wadfile to identify the level.
The commands used for level entries are as follows:
COMMAND | TYPE | DESCRIPTION |
---|---|---|
AUTOTAG | [integer] | When the level is started, find a linedef with this tag and push it. (As seen in Doom2 MAP07) |
DESCRIPTION | [lang] | Description of the level for the automap. |
END.BUNNY | [boolean] | Show the bunny. (Doom 1 ending). |
END.CAST | [boolean] | Show the cast list. (Doom 2 ending). |
END.COLOURMAP | [colmap] | Use this colourmap for the text. |
END.GRAPHIC | [lumpname] | Picture to draw after all text has been written. |
END.GRAPHIC_WAIT | [time] | Time to wait on each picture. |
END.MOVIE | [lumpname] | Text will always be displayed first, followed by movie playback, followed by any defined graphics for this entry. |
END.MUSIC | [music] | Music to play while writing text / drawing pics, reference the [ENTRY NUMBER] in PLAYLIST.DDF. |
END.TEXT | [lang] | Some text to display when the level is finished. |
END.TEXT_FLAT | [flat] | Floor texture to be drawn behind the text, as an alternative to TEXT_GRAPHIC. Note: don't use TEXT_FLAT and TEXT_GRAPHIC at the same time ! |
END.TEXT_GRAPHIC | [lumpname] | Picture to display behind the text. |
END.TEXT_SPEED | [integer] | How fast the end text should be written to the screen, in tics. |
END.TEXT_WAIT | [integer] | How long to wait after writing all the text before proceeding, in tics. |
ENTERING_BACKGROUND | [lumpname] | Picture to draw which can be used to override the intermission background defined in games.ddf on a per level basis. |
EPISODE | [string] | Specifies which episode the map belongs to. e.g always HELL_ON_EARTH for Doom2. |
INDOOR_FOG_COLOR | [colmap entry] | Sets the fog color for all indoor sectors to the RGB value of the provided colormap entry in colmap.ddf. |
INDOOR_FOG_DENSITY | [percentage] | Sets the fog density for all indoor sectors to the provided percentage. |
LEAVING_BACKGROUND | [lumpname] | Picture to draw which can be used to override the intermission background defined in games.ddf on a per level basis. |
LUMPNAME | [lumpname] | The lump to load the level from. (Can be different from E1M1 and MAP03 format). |
MUSIC_ENTRY | [music] | The level's background music, reference the [ENTRY NUMBER] in PLAYLIST.DDF. |
NAME_GRAPHIC | [lumpname] | Picture of the level's name for the intermissions. |
NEXT_MAP | [string] | The level to go to when this level is finished. |
OUTDOOR_FOG_COLOR | [colmap entry] | Sets the fog color for all outdoor sectors to the RGB value of the provided colormap entry in colmap.ddf. |
OUTDOOR_FOG_DENSITY | [percentage] | Sets the fog density for all outdoor sectors to the provided percentage. |
PARTIME | [time] | The par time for this level. |
PRE.COLOURMAP | [colmap] | Use this colourmap for the text. |
PRE.GRAPHIC | [lumpname] | Picture to draw after all pre-text has been printed on the screen. |
PRE.GRAPHIC_WAIT | [time] | Time to wait on each picture. |
PRE.MOVIE | [lumpname] | Text will always be displayed first, followed by movie playback, followed by any defined graphics for this entry. |
PRE.MUSIC | [music] | Music to play while writing text / drawing pics, reference the [ENTRY NUMBER] in PLAYLIST.DDF. |
PRE.TEXT | [lang] | Some text to display before the level starts. |
PRE.TEXT_FLAT | [flat] | Floor texture to be drawn behind the text, as an alternative to TEXT_GRAPHIC. Note: don't use TEXT_FLAT and TEXT_GRAPHIC at the same time ! |
PRE.TEXT_GRAPHIC | [lumpname] | Picture to display behind the text. |
PRE.TEXT_SPEED | [integer] | How fast, in tics, the text should be printed on the screen. |
PRE.TEXT_WAIT | [integer] | How long, in tics, to wait after writing all the text. |
SECRET_MAP | [string] | The level to go to if the secret exit is found. |
SKY_STRETCH | [flags] | See below |
SKY_TEXTURE | [lumpname] | The texture for the sky for this level. |
SPECIAL | [flags] | See below |
STATS | [special] | What format of end of level statistics to use. Either DOOM or NONE at present |
SURROUND_FLAT | [flat] | The floor texture to be drawn as a border for the screen. |
TEMPLATE | [existing DDF entry] | This allows a new DDF entry to be based off an existing one. Inheritance for DDF basically. |
These special flags allow full control over various aspects of a level. Most of the time you will use the same flags in all of your levels (e.g NO_JUMPING).
SPECIAL | DESCRIPTION |
---|---|
AA_MLOOK | Enables/disables combined autoaim / mlook. |
AUTOAIM | Enables/disables autoaiming for this level. |
BOOM_COMPAT | Forces Boom compatability mode for the level. |
CHEATS | Enables/disables cheating for this level. |
CROUCHING | Enables/disables crouching for this level. |
ENEMY_STOMP | Enables/disables monsters being able to telefrag other monsters and players. |
FAST_MONSTERS | Enables/disables fast monsters for this level. |
ITEM_RESPAWN | Enables/disables item respawning for this level. |
JUMPING | Enables/disables jumping for this level. |
LIMIT_ZOOM | Enables/disables zoomed in view. |
MLOOK | Enables/disables look up/look down for this level. |
MORE_BLOOD | Turns extra blood on for this level. |
NORMAL_BLOOD | Turns extra blood off for this level. |
RESET_PLAYER | Starting this level resets a players stats to the default state: health and armour are reset, all extra weapons and ammo are lost, etc. |
RESPAWN | Enables/disables respawning for this level. |
RESURRECT_RESPAWN | Sets monsters to respawn by resurrecting themselves. |
TELEPORT_RESPAWN | Sets monsters to respawn by teleporting back to their start location. |
TRANSLUCENCY | Enables/disables translucency for this level. |
TRUE3D | Enables/disables True3Dgameplay for this level. |
WEAPON_KICK | Turns Weapon Kick effects on for the level. |
These special flags force methods of drawing non-skybox skies.
SPECIAL | DESCRIPTION |
---|---|
MIRROR | Will invert the sky texture at the horizon, scaled to account for vertical mouselook. |
REPEAT | Will repeat the sky texture at the horizon, scaled to account for vertical mouselook. |
STRETCH |
Will stretch from top to bottom to avoid texture repeat, scaled to account for vertical mouselook.
Does not preserve the original width/height ratio of the image. |
VANILLA | Will draw the sky texture once, but does not scale or otherwise account for vertical mouselook. |
Most flags can be used with a modifying prefix, as follows:
- none or "ENABLE_" : forces the setting on for the level, e.g ENABLE_RESPAWN turns on respawning.
- "NO_" or "DISABLE_" : forces the setting off for the level, e.g NO_JUMPING - players aren't allowed to jump.
- "USER_" : the user's preference (set via the option menu) is used for the level. This is the default when the flag is not mentioned at all.
The following are examples of complete level entries:
[MAP07]
LUMPNAME=MAP07;
NAME_GRAPHIC=CWILV06;
DESCRIPTION=Map07Desc;
SKY_TEXTURE=SKY1;
MUSIC_ENTRY=7;
SURROUND_FLAT=GRNROCK;
SPECIAL=NO_ENEMY_STOMP;
NEXT_MAP=MAP08;
PARTIME=120;<
PRE.TEXT=Level7Text;
PRE.TEXT_FLAT=SLIME16;
PRE.MUSIC="read_m";
EPISODE=HELL_ON_EARTH;
[E2M8]
LUMPNAME=E2M8;
NAME_GRAPHIC=WILV17;
DESCRIPTION=E2M8Desc;
SKY_TEXTURE=SKY2;
SURROUND_FLAT="FLOOR7_2";
SPECIAL=NO_ENEMY_STOMP;
SECRET_MAP=E2M9;
PARTIME=30;
MUSIC_ENTRY=49;
EPISODE=THE_SHORES_OF_HELL;
END.TEXT=Episode2Text;
END.TEXT_FLAT="SFLR6_1";
END.MUSIC=61;
END.GRAPHIC="VICTORY2";
END.GRAPHIC_WAIT=MAXT;
DDF docs written by Andy Baker and Ziggy Gnarly, with updates by Andrew Apted, Andy Brewood and Luke Brennan. © EDGE Team, et al. 1998 - 2024.