Doom Definition File

A Doom Definition File, or DDF, is a file used by the source port EDGE as an alternative to DeHackEd and as a method of expanded editing for EDGE's features. Many believe DDF is the most powerful function of EDGE so far, due to its fine-grained ability to control many different parts of the engine. Many weapon modifications have arisen based on EDGE and DDF.

Current DDF Library
As of version 1.29 beta 2 (released on February 5, 2005), there are 16 different types of DDF files, each covering a specific aspect of EDGE's customizability. More DDF types are planned for release in later versions of EDGE.


 * ANIMS.DDF: Allows animated flats and textures to be defined or altered. This can also be used with custom patches.
 * ATTACKS.DDF: Allows attacks to be created or altered. Attack classes (corresponding to the Resistance and Immunity classes in THINGS.DDF) can be defined, along with custom radius areas, or even altered to kill or harm enemies and players in unique ways, including custom pain and death states.
 * COLMAP.DDF: Allows the definition of new colormaps (which are usually used with powerups, or submerged liquid sectors).
 * FONTS.DDF: Allows modification of the fonts used in the game. This was added in version 1.29 beta 1.
 * GAMES.DDF: Allows episodes to be defined or altered. As a bonus, this allows both Doom and Doom II to be played in the same game if the user has both programs; both games are displayed in the menu. "Hell on Earth" will be the name for the Doom II 'episode' when it is used in EDGE.
 * IMAGES.DDF: Allows extensive editing and customization of many types of images, such as flats, sprites, and wall textures. Currently, it supports PNG files; JPG support is planned for a future release. This was added in version 1.29 beta 1.
 * LANGUAGE.LDF: Allows multi-language support, editing of text strings, and (in a future release) editing of intermission texts. (Although it uses the LDF extension, this still works much like a DDF.) English, Turkish, French, Spanish, Swedish, Dutch, German and Finnish are initially supported as of version 1.29 beta 1.
 * LEVELS.DDF: Allows the definition of new mapname lumps, e.g. MAP00 or E0M0. This also allows control of whether or not levels have intermission screens, story intermission screens, or secret level exits in them, as well as which levels belong to which episodes.
 * LINES.DDF: Allows control over linedef types. Usually used for various new types of switches, Wolfenstein-style line-doors, light switches, teleporters, level exits, or several unique types (such as a shootable end switch).
 * PLAYLIST.DDF: Allows control of music lumps used by the game, or can be used to specify files on the user's hard drive or a CD-ROM for in-game play. Supports MUS, MIDI, CD Tracks, and now Ogg Vorbis as of version 1.29 beta 1 (MP3 was once supported, but then dropped by the EDGE team due to legal concerns).
 * SECTORS.DDF: Allows control of custom sector types. Examples can include a damage sector that inflicts damage much more often, silent teleporters, or even 'liquid' sectors (with the help of Extrafloors).
 * SOUNDS.DDF: Allows control of sound effect lumps.
 * STYLES.DDF: Allows control over the format of the menus, intermission screens, console, and automap. (Fonts can be changed with FONTS.DDF.) This feature was added in version 1.29 beta 1.
 * SWITCH.DDF: Allows custom on/off animation sequences for wall switches, such as SW1STON6/SW2STON6, as well as control over the sounds the switches make when activated.
 * THINGS.DDF: Allows customization of things, such as monsters, items, keys, ammo, and even 'helper' creatures which attack hostile monsters or opposing players. Attack immunity and resistances are also supported, as is a seamless image resizing engine that allows sprites to be toned down without pixelization in the game (thus, higher resolution sprites may be used). Other features include custom thing states and permissions, allowing the creation of unusually complex creatures or items (e.g. a monster with 20+ different weapons).
 * WEAPONS.DDF: Allows extensive customizability of weapons, including support for secondary attacks, weapon silencing, weapon upgrading, spin up/spin down states, and other options (many of which have only recently been introduced). Up to 64 different weapons can be defined in the current release of EDGE.

Radius Scripting

 * EDGE.SCR: Not an actual DDF, but a somewhat primitive scripting language called "Radius Script" which uses radius markers on the X, Y, and optionally Z planes to define an area for scripted actions to occur. The main EDGE website states that this is to be replaced with a more powerful system.

DDF file types not yet available, but confirmed for future release

 * HUD.DDF: According to the EDGE team, this will allow the customization of the HUD display, while adding more features overall, including 4+ digit counters, separate counters for armor types, and support for up to 12 different ammo types.