ddf language
Animations | Attacks | Languages | Missions | Levels | Lindef and Sector Specials | SFX | Switch Textures | Weapons | Things

 
A ddf file is a simple text file that describes an object.

Comments: Anything enclosed with { and } are comments. They are ignored by the parser. eg
{ This is ignored. }

Spaces are ignored.

Case is ignored.

The underscore '_' is converted to a space.

Anything between quotes '"' is parsed as is eg "MAP01: Containment area"

The main structure to define an object is
[name]
param1=data1;
param2=data2;
...

The name of the object is the name used to refer to it.  Some ddf files' names are ignored.  Param1 and data1 etc are dependent on what type of object you are trying to define.  Put a semicolon after each define.
param=data1,data2,data3;
is the same as
param=data1;
param=data2;
param=data3;

Datatypes:
Boolean: can be 'true' or 'false'.
Integer: any whole number.
Fixed: any number between -32768 and 32767.  Precision is 0.000015.
Time: 
Music: a six letter string. 'D_' will be added to the front. ie 'INTER' to 'D_INTER'
SFX: a six letter string. 'DS' will be added to the front. ie 'PISTOL' to 'DSPISTOL'
String: a string of characters eg "MAP01: Containment area"
LumpName: an eight letter string, refering to something stored in the wad datafile.
Special: a special format only used by that ddf file.
Flags: a whole series of properties you can add.
States:
Language Ref:
 
 
Animations DDF.

Stored in anims.ddf.  Lump is DDFANIM.  Name is ignored.
 
Command Type Explanation
FIRST LumpName The first texture in the animation.
LAST LumpName The last texture in the animation.
TICS Time The time to display each frame
ISTEXTURE Integer If it is 0, this animation is a floor texture.  Otherwise it is a wall texture.

 
Attacks DDF.

Stored in attacks.ddf.  Lump is DDFATK.  Name gives a name to the attack, and must be unique.
 
Command Type Explanation
ATTACKTYPE Special The type of attack this is, eg close combat, projectile etc
ATTACK_SPECIAL Flags Flags for this attack.
ACCURACY Fixed How accurate this attack is. 1 is 100%, 0 is 0%.
ATTACK_HEIGHT Fixed How high above the attacking creature the attack is.  If it is 0, the attack will com from the creature's foot, so it is generally a good idea to make it bigger.  Almost all DOOM creatures have this as 32.
HEIGHT Fixed The height of the projectile launched.
RADIUS Fixed The radius of the spawned object.
SPEED Fixed How fast the spawned object moves.
FAST Fixed Will be multiplied to speed in nightmare and -fastparm
SHOTCOUNT Integer Number of shots fired for shot weapons.
X_OFFSET Integer Normally attacks are spawned from the centre of the attacking creature. X_OFFSET moves it right, and Y_OFFSET moves it towards relative to the target.
Y_OFFSET Integer See X_OFFSET
DAMAGE Integer How much damage this attack delivers.
DAMAGE_MULTI Integer If you don't want this attack to do the same amount of damage every time, use DAMAGE_MULTI and DAMAGE_RANGE.  The damage will be calculated by a Random number from 1 - DAMAGE_RANGE multiplied by DAMAGE_MULTI.  Minimum damage is DAMAGE_MULTI, maximum is DAMAGE_RANGE times DAMAGE_MULTI.
DAMAGE_RANGE Integer See DAMAGE_MULTI.
EXPLOD_DAMAGE Integer See damage, however EXPLOD_DAMAGE is delivered to all creatures within the explosion.
EXPLOD_DAMAGEMULTI Integer See DAMAGE_MULTI, however all creatures within the explosion willl be damaged.
EXPLOD_DAMAGERANGE Integer See DAMAGE_RANGE, however all creatures within the explosion willl be damaged.
ATTACKRANGE Fixed The target must be inside this range, or the attacking creature won't bother shooting, but attempt to get closer.
TOO_CLOSE_RANGE Integer The attacking creature won't use this attack, if the target is inside this range.  Used for if this is a ranged attack and the creature should close for a close combat attack.
NO_TRACE_CHANCE Integer Specifies the chance that this homing missile will not lock onto target.  0 is lock every time, 100 is fail every time.
KEEP_FIRING_CHANCE Integer Specifies the chance that a creature using this attack will keep firing as opposed to finding a better spot/moving etc.
ASSAULT_SPEED Integer Used for SKULLFLY attacks this is the speed at which the skull will fly.
PROJECTILE_SPECIAL Flags Flags that should be added to the missile.
TRANSLUCENCY Fixed How translucent the missile is. 0 is invisible, 1 is completely visible.
LAUNCH_SOUND SFX
ATTEMPT_SOUND SFX
ENGAGED_SOUND SFX
ACTIVE_SOUND SFX
DEATH_SOUND SFX
STATES States
DEATHSTATES States

 
ATTACKTYPE DESCRIPTION
PROJECTILE Launch a single missile at the target, eg Rockets, Imp Fireballs.
SPAWNER Launch a creature at the target, eg Pain Elementals
TRIPLE_SPAWNER Launch three creatures, eg Pain Elemental death.
FIXED_SPREADER Launches missiles in an ordered way like the Mancubus
RANDOM_SPREADER Launches a spread of missiles randomly
SHOT Fires a bullet weapon, eg pistol, shotgun, chaingun.
TRACKER Like the arch-vile attack.
CLOSECOMBAT Any close combat attack, like the demon's bite, the baron's scratch, or the chainsaw.
SKULLFLY For an object that launches itself at the target.
SMARTPROJECTILE Launch a missile at the target on an intercept course based on the target's current speed and direction.
SPRAY Instantly do damage to every monster in sight.  Like the BFG.

 
ATTACK_SPECIAL DESCRIPTION
SMOKING_TRACER Homing missile with a line of smoke behind it.
REMOVE_FAILED_SPAWN For SPAWNER attacktypes, if the spawned object doesn't fit it will be removed.
PRESTEP_SPAWN Move a SPAWNER object slightly forward so it is not spawned on top of it's master.
NEED_SIGHT The attack will only take place if the attacker can see it's target.
FACE_TARGET The attacker will be turned to face it's target.

 
Language DDF

Stored in default.ldf.  Lump is DDFLANG. Name is the language.

The language ddf file is different in that there are no set commands.  Each line defines a string.
eg.
MAP01Desc="Level 1: entryway";
Defines the string "Level 1: entryway" as MAP01Desc.  Then MAP01Desc can be used.
If no string exists for the wanted language, it will be found under [Default]
 
 
Mission DDF

Stored in mission.ddf.  Lump is DDFGAME. Name is the episode name.

This defines the intermission screens and title screens.
 
 
Command Type Description
BACKGROUND LumpName This is the background picture for intermissions.
SPLAT LumpName This is the picture placed over levels that are finished.
YAH1 LumpName This is the picture placed over the level you are at. (You are Here)
YAH2 LumpName If YAH1 doesn't fit on the page, this pic will be used instead.
PERCENT_SOUND SFX Sound made while counting kills, items and secrets etc.
DONE_SOUND SFX Sound made when the counting stops.
NEXTMAP_SOUND SFX Sound made before loading the next map.
MUSIC Music The music to play during this intermission.
ANIM Special An animation to play.
MAP Special Specifies where to place SPLATs for levels completed.
FIRSTMAP LumpName Specifies the first level in this mission.
GRAPHIC_NAME LumpName Specifies a picture of the mission's name to go into the start new game menu.
TITLE_MUSIC Music Some music to play when the TITLE_PIC is displayed.  Note that the mission is assumed not to exist if this music does not exist.
TITLE_PIC LumpName Specifies a picture to add to the sequence when the game starts.
TITLE_TIME Time Specifies how long to leave that picture displayed before changing it.

ANIM Command:

A frame in the animation is specified by:

picture:tics:x:y
where picture is the name of the graphic, tics is how long to wait before the next frame, and x and y are the screen coordinates to place the animation.  The screen coordinates are for a 320x200 screen can will be scaled automatically.

Use #END to end the animation and loop back to the start.

ANIM=WIA00000:3:224:104,WIA00001:3:224:104,WIA00002:3:224:104,#END;

MAP Command:

Specifies the position to draw splats on maps:

mapname:x:y
where mapname is the name of the map, and x and y are the screen coordinates to place the splat.  Also used for the You are Here picture.
 
 
Levels DDF

Stored in levels.ddf.  Lump is DDFLEVL. Name is the level name eg MAP01.
 
 
Command Type Description
LUMPNAME LumpName The lump to load the level from.
DESCRIPTION LanguageRef A description of the level for the automap
GRAPHIC_NAME LumpName A picture of the level's name for the intermissions.
SKY_TEXTURE LumpName The texture for the sky for this level.
MUSIC_NAME Music The level's background music.
SURROUND_FLAT LumpName The floor texture to be drawn as a border for the level.
SPECIAL Flags See below
NEXT_MAP String The level to go to when this level is finished.
SECRET_MAP String The level to go to if the secret exit is found.
AUTOTAG Integer When the level is started, find a linedef with this tag and push it.  See MAP07
PARTIME Time The par time for this level
EPISODE String The intermission for this level.
ENDTEXT LanguageRef Some text to display when the levels is finished.
ENDTEXTBACKGROUND LumpName A picture to display behind the text.
ENDTEXTFLAT LumpName A floor texture to be drawn behind the text.  Don't use ENDTEXTBACKGROUND and ENDTEXTFLAT at the same time.
ENDTEXTSPEED Numeric How fast the text should be written to the screen.
ENDTEXTWAIT Numeric How long to wait after writing all the text.
ENDPIC LumpName Picture to draw after all text has been written.
ENDPICWAIT Time Time to wait on each picture.
ENDCAST Boolean Show the cast list.
ENDBUNNY Boolean Show the bunny.
ENDMUSIC Music Music to play while writing text/drawing pics.
PRE* For every END function there is a corresponding PRE function.  The only difference is that PRE will be done before a level, but END is done after a level.

SPECIAL Flags:
Name Description
NO_JUMPING Disable jumping for this level.
NO_FREELOOK Disable look up/look down for this level.
NO_TRANSLUCENCY Disable translucency for this level.
NO_CHEATS Disable cheating for this level.
ITEM_RESPAWN Turns item respawning on for this level.
NO_ITEM_RESPAWN Disables item respawning for this level.
FAST_MONSTERS Enable fast monsters 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.
RESPAWN Turns respawning on
NO_RESPAWN Turns respawning off
STRETCH_SKY Stretches the sky for freelook.
NORMAL_SKY Turns off stretching the sky for freelook.
DISABLE_TRUE3D Disables True3dGamplay for this level.
NO_ENEMY_STOMP Makes monsters unable to telefrag.
NORMAL_BLOOD Turns extra blood off for this level.

 
Linedefs/Sectors DDF

Much of the linedef/sector ddf code is the same so they will both be described here.

Stored in lines.ddf and sectors.ddf.  Lumps are DDFLINE and DDFSECT.  Names are ignored.
 
 
* Command Type Description
L TRIGGER Numeric The number to use as the special linedef type in your map editor.
S NUMBER Numeric The number to use as the special sector type in your map editor.
L NEWTRIGGER Numeric When the line is activated, the special type is changed to this number.  This is so you can do things like a switch you push once to turn on, push again to turn off.
L TYPE Special Specifies how the line is activated.  Can be "WALK", "PUSH" or "SHOOT"
L ACTIVATORS Special Specifies who can activate the line.  Can be "PLAYER", "MONSTER", or "MISSILE"
L KEYS Special Specifies what key cards are needed to activated. Can be "BLUE_CARD", "RED_CARD", "YELLOW_CARD", "BLUE_SKULL", "RED_SKULL", "YELLOW_SKULL", "REQUIRES_ALL"  If you specify BLUE_CARD and RED_CARD a player with either can activate.  Use '+' to specify that a player MUST have that card to activate, eg "+YELLOW_CARD,+RED_CARD" for both the red card and yellow card required.
L FAILED_MESSAGE LanguageRef If the player doesn't have the right keys and trys to activate the line, this message is displayed.
L COUNT Numeric The number of times this line can be activated.
L SECSPECIAL Numeric The special type to change the tagged sector to.
CRUSH Boolean If TRUE then sector movement will crush and kill creatures.  If FALSE then sector will return instead of crushing.
FLOOR_TYPE Special Specifies how the floor moves.
FLOOR_SPEED_UP Fixed Specifies how fast the floor moves up.
FLOOR_SPEED_DOWN Fixed Specifies how fast the floor moves down.
FLOOR_DEST_REF Special Specifies where the floor moves to. eg CEILING, NEXTNEIGHBOUR etc..
FLOOR_DEST_OFFSET Fixed Specifies an offset to where the floor moves to, eg NEXTNEIGHBOUR + 4.
FLOOR_TEXTURE String Specifies what texture to change to.  In addition, if FLOOR_TEXTURE is '-' the floor texture will change to a surrounding sector's floor texture.  If it is '+' the floor texture will change to the sector on the front side of the activating line's floor etxture.
FLOOR_PAUSE_TIME Time The time to wait at the floor's destination befor returning.
FLOOR_WAIT_TIME Time The time to wait before moving at all.
FLOOR_SFX_START SFX The sound to make when the floor starts moving.
FLOOR_SFX_UP SFX The sound to make while the floor is moving up.  Should be a looping sound.
FLOOR_SFX_DOWN SFX The sound to make while the floor is moving down.  Should be a looping sound.
FLOOR_SFX_STOP SFX The sound to make when the floor stops moving.
CEILING_* For every floor function there is a ceiling function that does exactly the same, but to the ceiling instead of the floor.
DONUT Boolean Command to keep compatibility with DOOM.  Centre moves down, outside loop moves up and changes texture.
DONUT_IN_SFX SFX The sound to make while the central pillar is moving.
DONUT_IN_SFX_STOP SFX The sound to make when the central pillar stops moving.
DONUT_OUT_SFX SFX The sound to make while the outside loop is moving.
DONUT_OUT_SFX_STOP SFX The sound to make when the outside loop stops.
TELEPORT Boolean Teleport the activating thing to the tagged sector.
TELEPORT_DELAY Time The time before an object can start moving again after a teleport.
TELEIN_EFFECTOBJ String The object to make where the object teleported from.
TELEOUT_EFFECTOBJ String The object to make where the object lands.
LIGHT_TYPE Special Specifies what type of light it is.  (Glowing, flashing, flickering)
LIGHT_LEVEL Integer Specifies the light level to change to
LIGHT_DARK_TIME Time Specifies how long the light is dark/gets dark for.
LIGHT_BRIGHT_TIME Time Specifies how long the light is bright/gets bright for.
LIGHT_PROBABILITY Integer Specifies the probability of flickering for flickering LIGHT_TYPEs.
LIGHT_SYNC Time Used for getting lights to flash in sync.
EXIT Special Activating this line exits the level.  Can be "EXIT" for a normal exit or "SECRET" to exit to the secret level.
L SCROLL Special The wall texture should scroll in this direction. "UP"/"DOWN"/"LEFT"/"RIGHT"
L SCROLLING_SPEED Fixed How fast the wall scrolls.
COLOURMAPLUMP LumpName Specifies the colourmap to use.
COLOURMAP Numeric Specifies which colourmap to use.
GRAVITY Numeric Specifies the gravity in a sector.
FRICTION Fixed Specifies the sector's friction.
S VISCOSITY Fixed Specifies the sector's viscosity
SOUND SFX Plays an ambient sound in a sector.
MUSIC Music Changes the music.
L AUTO Boolean Triggers this line automatically at level start.
L SINGLESIDED Boolean Single sided lines can only be activated from the front.
L LUMPEXISTS String This line can only be activated if the specified lump exists.  Use "!" to specify that the line can only be activated if the specified lump does not exist. eg "!MAP01"
S SECRET Boolean This sector is counted as part of the secret percentage.
S DAMAGE Integer How much this sector damages the player.
S DAMAGETIME Time Specifies that DAMAGE is dealt every DAMAGETIME tics.

* L means linedefs only.  S means sectors only.
 
 
 

DOSDoom © 1998 DOSDoom Team.