Much of the linedef/sector ddf code is related or identical so it is described in this one section.
Data is stored in lines.ddf and sectors.ddf. Lumps are DDFLINE and DDFSECT. Numbers are used in [ ] (unlike the other DDF files which have names in [ ]) - these numbers are the ones used in your map editor.
WHAT | COMMAND | TYPE | DESCRIPTION |
L | TYPE | [special] | Specifies how the line is activated. Can be either "WALK", "PUSH" or "SHOOT". |
L | ACTIVATORS | [special] | Specifies what can activate the line. Can be "PLAYER", "MONSTER", or "MISSILE". Multiple activators are separated with commas, ie PLAYER, MISSILE. |
L | COUNT | [integer] | The number of times this line can be activated (-1 is infinite). |
L | KEYS | [special] | This linedef requires a key to operate. Can be RED, YELLOW or BLUE. If a + prefixes the key then that key is required, eg BLUE_CARD, BLUE_SKULL is blue keycard OR blue skull,but +BLUE_CARD, +BLUE_SKULL is blue keycard AND blue skullkey. |
L,S | WHEN_APPEAR | [special] | Used to enable or disable a particlar property of a lindef or sector depending on the game options currently being used. Format is identical to RTS usage e.g WHEN_APPEAR=1:2:3:4:5:sp:coop:dm means that the line or sector will work in single player, coop or dm and across all skill levels. |
L | NEWTRIGGER | [integer] | This is so you can do things like a switch you push once to turn on, push again to turn off. |
L | RADIUS_TRIGGER | [special] | Values are 'ENABLE_TAGGED' or 'DISABLE_TAGGED'. If you included this on a linedef with tag 17, each time this line was activated (via shoot, push or walk), all radius triggers that had a tag number of 17 would then be enabled or disabled as appropriate. |
L,S | CRUSH | [boolean] | If TRUE then sector movement will crush and kill creatures. If FALSE then sector will return instead of crushing. |
S | CRUSH_TIME | [time] | Time in tics that determines how often crush damage occurs. |
S | CRUSH_DAMAGE | [float] | The amount of damage caused by a crusher on each crush (how often is determined by crush time). |
L,S | FLOOR.TYPE | [special] | Specifies how the floor moves. |
L,S | FLOOR.SPEED_UP | [float] | Specifies how fast the floor moves up. Floors normally move at 1 unit per tic, plats move at 4 units per tic. Fractional values are allowed, e.g. 0.1 for an ultra-slow mover. |
L,S | FLOOR.SPEED_DOWN | [float] | Specifies how fast the floor moves down (see above). |
L,S | FLOOR.DEST_REF | [special] | Specifies where the floor moves to. E.g CEILING, NEXTNEIGHBOUR etc. |
L,S | FLOOR.DEST_OFFSET | [float] | Specifies an offset to where the fixed floor moves to. This number will be added to FLOOR_DESTREF to get the end height. |
L,S | 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 texture. |
L,S | FLOOR.PAUSE_TIME | [time] | Specifies the time that MOVEWAITRETURN and CONTINUOUS floors wait between moves. |
L,S | FLOOR.WAIT_TIME | [time] | The time to wait before floor begins moving at all. |
L,S | FLOOR.SFX_START | [sound] | The sound to make when the floor starts moving. |
L,S | FLOOR.SFX_UP | [sound] | The sound to make while the floor is moving up, should be a looping sound. |
L,S | FLOOR.SFX_DOWN | [sound] | The sound to make while the floor is moving down. Should be a looping sound. |
L,S | FLOOR.SFX_STOP | [sound] | The sound to make when the floor stops moving. |
S | FLOOR.SCROLL_ANGLE | [float] | The direction that the floor texture will scroll. 0 for East, 90 for North, 180 for West, 270 for South, etc.. |
S | FLOOR.SCROLL_SPEED | [float] | The speed that the floor texture scrolls at. 0 means no scrolling, higher values are faster, and 32.0 means one pixel per tic. |
* For every floor function there is a ceiling function (CEILING.) that performs exactly the same action, but to the ceiling instead of the floor.
WHAT | COMMAND | COMMAND | DESCRIPTION |
L,S | DONUT | [boolean] | Command to keep compatibility with DOOM. Centre moves down, outside loop moves up and changes texture. |
L,S | DONUT_IN_SFX | [sound] | The sound to make while the central pillar is moving. |
L,S | DONUT_IN_SFX_STOP | [sound] | The sound to make when the central pillar stops moving. |
L,S | DONUT_OUT_SFX | [sound] | The sound to make while the outside loop is moving. |
L,S | DONUT_OUT_SFX_STOP | [sound] | The sound to make when the outside loop stops. |
L | TELEPORT | [boolean] | Teleport the activating thing to the tagged sector. |
L | TELEPORT_SPECIAL | [special] | Special tags for teleport. |
L | TELEPORT_DELAY | [time] | The time before an object can start moving again after being teleported. |
L | TELEIN_EFFECTOBJ | [string] | The object to make where the object teleported from. The object will enter its CHASE states (if they exist) to make the flash effect. |
L | TELEOUT_EFFECTOBJ | [string] | The object where the object will land. This object must exist in the destination sector (and there should be only one). The object will enter its CHASE states (e.g. to make a flash effect). |
L,S | LIGHT_TYPE | [special] | Specifies what type of light it is. (Glowing, flashing, flickering) |
L,S | LIGHT_LEVEL | [integer] | Specifies the light level to change to. |
L,S | LIGHT_DARK_TIME | [time] | Specifies how long the light is dark/gets dark for. |
L,S | LIGHT_BRIGHT_TIME | [time] | Specifies how long the light is bright/gets bright for. |
L,S | LIGHT_PROBABILITY | [integer] | Ranges from 0 - 255. Only used if type = FLASH. The game chooses a random number between 0 and 255. If the value is smaller than LIGHT_PROBABILITY, the light goes dark for LIGHT_DARK_TIME. If it is larger, the light goes bright for LIGHT_BRIGHT_TIME. |
L,S | LIGHT_SYNC | [time] | Used for getting lights to flash in sync. With a value of 2, the light will start glowing/flashing when the level time is a multiple of two seconds. |
L,S | EXIT | [special] | Activating this line exits the level. Can be "EXIT" for a normal exit or "SECRET" to exit to the secret level. |
L,S | TRANSLUCENCY | [float] | The mid-masked texture on this linedef will be translucent. The value lies in the range 0 (fully see-through) to 1 (fully opaque). NOTE: this may become a percentage value in a future release of EDGE. |
L | SCROLL | [special] | The wall texture should scroll in this direction. Can be "UP", "DOWN", "LEFT" or "RIGHT". You can specify more than one direction by separating with commas, eg SCROLL=LEFT,RIGHT; |
L | SCROLLING_SPEED | [float] | How fast the wall scrolls. (Normal value is 1). |
L,S | SCROLL_XSPEED SCROLL_YSPEED | [float] |
Specifies the exact direction that the texture should scroll, e.g
scroll fast down & slowly left SCROLL_XSPEED = 0.5; SCROLL_YSPEED = -3.0; scroll fast down & slowly right SCROLL_XSPEED = -0.5; SCROLL_YSPEED = -3.0; |
L,S | USE_COLOURMAP | [colourmap] | Specifies which colourmap to use for lighting. |
L,S | GRAVITY | [float] | Specifies the gravity in a sector. (Can be a negative value). Normal value is 8. |
L,S | FRICTION | [float] | Change the tagged sector's friction. Practical testing indicates that 0.95 is about the mid point. Less than this and you slide like crazy, more than this and you get bogged. |
S | VISCOSITY | [float] | Specifies the sector's viscosity. 1.0 is normal, 0.5 slows you down to half speed, 2.0 makes you move twice as fast. |
L,S | SOUND | [sound] | Plays an ambient sound in a sector. (Can be a looping or single sound). You don't necessarily have to be inside the sector to hear the sound. |
L | MUSIC | [music] | Changes the current music. |
L | AUTO | [boolean] | Triggers this line automatically at level start. This line must be pushable. |
L | SINGLESIDED | [boolean] | Single sided lines can only be activated from the front. (Usually used to allow player to exit from a teleporter). |
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 seconds. |
L | EXTRAFLOOR_TYPE | [special] | Adds an extra floor to the tagged sector(s). |
L,S | EXTRAFLOOR_TRANSLUCENCY | [float] | Number between 0 and 1 (0 is fully see through, 1 is fully opaque). |
* L means linedefs, S means sectors.
TYPE | DESCRIPTION |
MOVE | The floor/ceiling will move to the destination and stop. |
MOVEWAITRETURN | The floor/ceiling will move to the destination, wait for PAUSE_TIME then return to it's starting position. |
CONTINUOUS | The floor/ceiling will move repeatedly between it's destination then it's starting position. |
BUILDSTAIRS | Builds a staircase of step height DEST_OFFSET. |
STOP | Stops a continuous floor/ceiling from moving. |
DEST REF | DESCRIPTION |
ABSOLUTE | Moves to the position specified by FLOOR_DEST. |
FLOOR | The sector's current floor height. |
CEILING | The sector's current ceiling height. |
LOSURROUNDINGCEILING | The lowest surrounding ceiling height. |
HISURROUNDINGCEILING | The highest surrounding ceiling height. |
LOSURROUNDINGFLOOR | The lowest surrounding floor. |
HISURROUNDINGFLOOR | The highest surrounding floor. |
NEXTHIGHESTFLOOR | The floor surrounding that is next highest. |
LOWESTBOTTOMTEXTURE | Aligns with the shortest bottom texture surrounding. |
LIGHT TYPE | DESCRIPTION |
SET | The light will be set instantly. |
STROBE | Light alternates between light and dark according to LIGHT_BRIGHT_TIME and LIGHT_DARK_TIME. |
FLASH | Light alternates ramdomly between light and dark according to LIGHT_PROBABILITY, LIGHT_BRIGHT_TIME, and LIGHT_DARK_TIME. |
GLOW | The light will smoothly alternate between light and dark. |
FLICKER | The light will flicker randomly (like fire). |
SPECIAL | DESCRIPTION |
SAME_DIR | Keep the original direction that you entered the teleporter with. |
SAME_SPEED | Keep the original speed that you entered the teleporter with. |
SAME_HEIGHT | Keep the same floor-relative height that you entered the teleporter with. |
PRESERVE | Just a shorthand for all of the above. |
SAME_OFFSET | Keep the same centre-of-line-relative offset (between the teleporter line and the landing site). |
ROTATE | Keep the original direction, but rotate it by the angle that the teleport thing faces. EAST will mean no change, WEST will mean turn 180 degrees, etc. Doesn't work with SAME_SPEED or SAME_OFFSET. |
Uses a field "SPECIAL=...", which is like the one in things.ddf, and takes a comma-separated list of words.
WHAT | SPECIAL | DESCRIPTION |
S | WHOLE_REGION | Makes damage apply to the whole sector (and not just when you're standing on the floor). |
S | PROPORTIONAL | Use with WHOLE_REGION, and when you're vertically half-in/half-out of the damaging sector, then damage is only 50%, and so on. |
L | MUST_REACH | The Linedef for a switch must be vertically reachable by the player, otherwise it cannot be activated. Only works if you indent the switch in a niche (the engine has no concept of the switch image on the texture). |
L | SWITCH_SEPARATE | The switch will only change the texture on the pushed linedef, and not all the other linedefs with the same tag. |
SPECIAL | DESCRIPTION | |
THIN | Defines a thin solid extrafloor - it is just a surface (a single plane, with no sides). This is the default. | |
THICK | Defines a thick solid extrafloor, which has a top, bottom and sides. | |
LIQUID | Defines a liquid extrafloor, which is not solid and can be passed through (by players, monsters, missiles and other objects). Normally it is thin (just a surface, like the surface of water or lava), but can be used with the THICK keyword too. | |
SEE_THROUGH | Use this to make a translucent extrafloor (even one that is totally invisible). | |
SHOOT_THROUGH | Specifies that bullets can pass through this extrafloor. (Always true for when LIQUID is used). | |
WATER | Objects tagged WATERWALKER cannot penetrate extrafloors tagged as WATER. (Can be used to keep creatures like fish under water). | |
SIDE_UPPER SIDE_LOWER | Extrafloors usually take the side texture from the tagged line of the dummy sector. Instead, this makes it use the upper/lower texture from the line where the extrafloor appears. Useful if the textures on the extrafloor's side need to change often. | |
FLOODER | Such an extrafloor will "flood" all vertical regions below it with the same sector properties. Useful for liquids that raise/lower past other extra floors. |
back to top
DDF docs written by Andy Baker and Ziggy Gnarly, with updates by Andrew Apted.
Site design by Fanatic (with graphics and modifications by Ziggy Gnarly). Problems with the docs, errors and comments should be directed to the EDGE team.
© EDGE Team 1998, 1999, 2000.