lines / sectors.ddf

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.

WHATCOMMAND TYPEDESCRIPTION
LTYPE[special] Specifies how the line is activated. Can be either "WALK", "PUSH" or "SHOOT".
LACTIVATORS[special] Specifies what can activate the line. Can be "PLAYER", "MONSTER", or "MISSILE". Multiple activators are separated with commas, ie PLAYER, MISSILE.
LCOUNT[integer] The number of times this line can be activated (-1 is infinite).
LKEYS[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,SWHEN_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.
LNEWTRIGGER[integer] This is so you can do things like a switch you push once to turn on, push again to turn off.
LRADIUS_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,SCRUSH[boolean] If TRUE then sector movement will crush and kill creatures. If FALSE then sector will return instead of crushing.
SCRUSH_TIME[time] Time in tics that determines how often crush damage occurs.
SCRUSH_DAMAGE[float] The amount of damage caused by a crusher on each crush (how often is determined by crush time).
L,SFLOOR.TYPE[special] Specifies how the floor moves.
L,SFLOOR.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,SFLOOR.SPEED_DOWN[float] Specifies how fast the floor moves down (see above).
L,SFLOOR.DEST_REF[special] Specifies where the floor moves to. E.g CEILING, NEXTNEIGHBOUR etc.
L,SFLOOR.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,SFLOOR.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,SFLOOR.PAUSE_TIME[time] Specifies the time that MOVEWAITRETURN and CONTINUOUS floors wait between moves.
L,SFLOOR.WAIT_TIME[time] The time to wait before floor begins moving at all.
L,SFLOOR.SFX_START[sound] The sound to make when the floor starts moving.
L,SFLOOR.SFX_UP[sound] The sound to make while the floor is moving up, should be a looping sound.
L,SFLOOR.SFX_DOWN[sound] The sound to make while the floor is moving down. Should be a looping sound.
L,SFLOOR.SFX_STOP[sound] The sound to make when the floor stops moving.
SFLOOR.SCROLL_ANGLE[float] The direction that the floor texture will scroll. 0 for East, 90 for North, 180 for West, 270 for South, etc..
SFLOOR.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.

WHATCOMMAND COMMANDDESCRIPTION
L,SDONUT[boolean] Command to keep compatibility with DOOM. Centre moves down, outside loop moves up and changes texture.
L,SDONUT_IN_SFX[sound] The sound to make while the central pillar is moving.
L,SDONUT_IN_SFX_STOP[sound] The sound to make when the central pillar stops moving.
L,SDONUT_OUT_SFX[sound] The sound to make while the outside loop is moving.
L,SDONUT_OUT_SFX_STOP[sound] The sound to make when the outside loop stops.
LTELEPORT[boolean] Teleport the activating thing to the tagged sector.
LTELEPORT_SPECIAL[special] Special tags for teleport.
LTELEPORT_DELAY[time] The time before an object can start moving again after being teleported.
LTELEIN_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.
LTELEOUT_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,SLIGHT_TYPE[special] Specifies what type of light it is. (Glowing, flashing, flickering)
L,SLIGHT_LEVEL[integer] Specifies the light level to change to.
L,SLIGHT_DARK_TIME[time] Specifies how long the light is dark/gets dark for.
L,SLIGHT_BRIGHT_TIME[time] Specifies how long the light is bright/gets bright for.
L,SLIGHT_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,SLIGHT_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,SEXIT[special] Activating this line exits the level. Can be "EXIT" for a normal exit or "SECRET" to exit to the secret level.
L,STRANSLUCENCY[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.
LSCROLL[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;
LSCROLLING_SPEED[float] How fast the wall scrolls. (Normal value is 1).
L,SSCROLL_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,SUSE_COLOURMAP[colourmap] Specifies which colourmap to use for lighting.
L,SGRAVITY[float] Specifies the gravity in a sector. (Can be a negative value). Normal value is 8.
L,SFRICTION[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.
SVISCOSITY[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,SSOUND[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.
LMUSIC[music] Changes the current music.
LAUTO[boolean] Triggers this line automatically at level start. This line must be pushable.
LSINGLESIDED[boolean] Single sided lines can only be activated from the front. (Usually used to allow player to exit from a teleporter).
SSECRET[boolean] This sector is counted as part of the secret percentage.
SDAMAGE[integer] How much this sector damages the player.
SDAMAGETIME[time] Specifies that DAMAGE is dealt every DAMAGETIME seconds.
LEXTRAFLOOR_TYPE[special] Adds an extra floor to the tagged sector(s).
L,SEXTRAFLOOR_TRANSLUCENCY[float] Number between 0 and 1 (0 is fully see through, 1 is fully opaque).

* L means linedefs, S means sectors.

FLOOR_TYPE and CEILING_TYPEs

TYPEDESCRIPTION
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_REFs

DEST REFDESCRIPTION
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_TYPEs

LIGHT TYPEDESCRIPTION
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).

TELEPORT_SPECIAL

SPECIALDESCRIPTION
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.

LINE AND SECTOR SPECIALS

Uses a field "SPECIAL=...", which is like the one in things.ddf, and takes a comma-separated list of words.

WHATSPECIAL DESCRIPTION
SWHOLE_REGION Makes damage apply to the whole sector (and not just when you're standing on the floor).
SPROPORTIONAL 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.
LMUST_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).
LSWITCH_SEPARATE The switch will only change the texture on the pushed linedef, and not all the other linedefs with the same tag.

EXTRAFLOOR

SPECIALDESCRIPTION
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.