Doom Definition File

A Doom Definition File, or DDF, is a method 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 1.29 Beta 1 (released on December 23, 2004), there are 16 different individual DDF files, each covering a specfic aspect of EDGE's customability. 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 1.29 Beta 1.
 * GAMES.DDF: Allows episodes to be defined or altered. This gives a bonus feature of being able to play BOTH Doom and Doom 2 in the same game if the user has both: 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 of many types of images, such as flats, sprites, textures, etc to be customized through various unique manners, and currently supports PNG files, and later will support JPG. This was added in 1.29 Beta 1.
 * LANGUAGE.LDF: Allows multi-language support. Although under the LDF format, this still works much like a DDF. English, Turkish, French, Spanish, Swedish, Dutch, German and Finnish are initally supported as of 1.29 Beta 1.
 * LEVELS.DDF: Allows the definition of new mapname lumps, such as MAP00, or E0M0, for example. This also allows control of whether levels have an intermission screen, story intermission screen, or secret level exits in them, as well as which episode the level is part of.
 * LINES.DDF: Allows control over linedef types, usually used for various new types of switches, Wolfenstein-stype line-doors, light switches, teleporting, level exits, or several unique types, such as a shootable end switch are possible for example.
 * PLAYLIST.DDF: Allows control of music lumps used by the game, or can be used to refer to files on the user's hard drive or a CD-ROM to play in-game. Supports MUS, MIDI, CD Tracks, and now Ogg Vorbis as of 1.29 Beta 1 (MP3 was supported prior, but was dropped by the EDGE team over legal concerns).
 * SECTORS.DDF: Allows control of custom sector types. Examples can include a damage sector that damage much more often, or 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, automap, and includes font support with FONTS.DDF. This feature was added in 1.29 Beta 1.
 * SWITCH.DDF: Allows control of custom on/off frames 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 allows the creation of helper creatures that can be used to 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, allowing high quality sprites to be used. Other features include the permission for custom states, allowing the creation of complex creatures or items (eg. a monster with 20+ different weapons).
 * WEAPONS.DDF: Allows extensive customability of weapons, including support for Secondary attacks, weapon silencing, weapon upgrading, spin up, and spin down states, and other various options, many of which of only been recently introduced. Up to 64 different weapons can be defined in the current release of EDGE.

Radius Scripting

 * EDGE.SCR: Not an actual DDF in the sense, but more of 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 claims that the team plans on replacing this with a more powerful system in the future.

DDF file types not yet released but have been confirmed for future use

 * HUD.DDF: According to the EDGE team, this will allow the customisation 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.