LINES

From 3DGE Wiki
Jump to: navigation, search

Lines/Sectors

Line information is stored in either the lines.ddf file or the DDFLINE data lump. Sector information is stored in the sector.ddf file or in the DDFSECT data lump.

If you are looking for the Line Type IDs for EDGE, you can find those available here.
Much of the line and sector ddf code is related or identical, so their descriptions are combined in this one section! Please keep this in mind while working with lines and sectors.

These files are used to create and modify map effects, such as doors, elevators, platforms etc.

In both lines.ddf and sectors.ddf each entry consists of a unique mapnumber, enclosed in square brackets, followed by a series of commands to define the properties of the line or sector. These numbers are the ones used in your map editor, and for ease they are often grouped together according to their type.

WHAT COMMAND TYPE DESCRIPTION
L ACTIVATE_SOUND [sound] The sound played when when the line is activated.
L ACTIVATORS [special] Specifies what can activate the line, in the form of a comma seperated list. Can be either "PLAYER", "MONSTER" or "OTHER"
L,S AMBIENT_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 AUTO [boolean] Triggers this line automatically at level start. This line must be pushable.
L,S CEILING.DEST_OFFSET [float] Specifies an offset to where the fixed ceiling moves to. This number will be added to CEILING_DESTREF to get the end height.
L,S CEILING.DEST_REF [special]

Specifies where the ceiling moves to. E.g CEILING, NEXTNEIGHBOUR etc. See the list of possible [#ref DEST_REF]'s below.

L,S CEILING.OTHER_OFFSET [float] For PLAT and CONTINUOUS ceiling types. If specified, this offset is used to modify the return position. I.e. The ceiling can start at one position, but when set in motion it can move between 2 different positions.
L,S CEILING.OTHER_REF [float]

For PLAT and CONTINUOUS ceiling types, Specifies the return position of the ceiling as a [#ref DEST_REF].

L,S CEILING.PAUSE_TIME [time] Specifies the time that MOVEWAITRETURN and CONTINUOUS ceilings wait between moves.
S CEILING.SCROLL_ANGLE [float] The direction that the ceiling texture will scroll. 0 for East, 90 for North, 180 for West, 270 for South, etc..
S CEILING.SCROLL_SPEED [float] The speed that the ceiling texture scrolls at. 0 means no scrolling, higher values are faster, and 32.0 means one pixel per tic.
L,S CEILING.SFX_DOWN [sound] The sound to make while the ceiling is moving down. Should be a looping sound.
L,S CEILING.SFX_START [sound] The sound to make when the ceiling starts moving.
L,S CEILING.SFX_STOP [sound] The sound to make when the ceiling stops moving.
L,S CEILING.SFX_UP [sound] The sound to make while the ceiling is moving up, should be a looping sound.
L,S CEILING.SPEED_DOWN [float] Specifies how fast the ceiling moves down (see above).
L,S CEILING.SPEED_UP [float] Specifies how fast the ceiling 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 CEILING.TEXTURE [string] Specifies what texture to change the ceiling to. This can either be specified as a texture from a wadfile or as one of the following special referances "-" or " ". E.g. if CEILING.TEXTURE is "-" the ceiling texture will change to a surrounding sector's ceiling texture, ori f it is " " the ceiling texture will change to the sector on the front side of the activating line's ceiling texture.
L,S CEILING.TYPE [special]

Specifies how the ceiling moves. See the list of [#floor_type ceiling types] below.

L,S CEILING.WAIT_TIME [time] The time to wait before ceiling begins moving at all.
L COUNT [integer] The number of times this line can be activated (-1 is infinite).
L,S CRUSH [boolean] If TRUE then sector movement will crush and kill creatures. If FALSE then sector will return instead of crushing.
S DAMAGE.DEATH_STATE [state] What STATES to use if something dies from this sectors damage. E.g. CRUSHDEATH
S DAMAGE.DELAY [tics] How often creatures take damage from this sector.
S DAMAGE.PAIN_STATE [state] What STATES to use if something is in pain because of damage from this sector. E.g. ACIDPAIN
S DAMAGE.VAL [float] Simple damage dealt by this sector.
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_OUT_SFX [sound] The sound to make while the outside loop is moving.
S DRAG [float] Speciifies the amount of drag there is in this sector, when a player is moving without being in contact with the ground. 1 is normal
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 EXTRAFLOOR_TRANSLUCENCY [float] Number between 0 and 1 (0 is fully see through, 1 is fully opaque). (?? May be depricated ??).
L EXTRAFLOOR_TYPE [special]

Adds an extra floor to the tagged sector(s). See the list of [#extrafloor extrafloor types] below.

L FAILED_MESSAGE [special] message to print when a player fails to activate an object. Refers to entry in languages.ddf
L,S FLOOR.DEST_OFFSET [float] Specifies an offset to where the fixed floor moves to. This value will modify the destination specified in DEST_REF.
L,S FLOOR.DEST_REF [special]

Specifies where the floor moves to. E.g CEILING, NEXTNEIGHBOUR etc. See the list of possible [#ref DEST_REF]'s below.

L,S FLOOR.OTHER_OFFSET [float] For PLAT and CONTINUOUS floor types. If specified, this offset is used to modify the return position. I.e. The platform can start at one position, but when set in motion it can move between 2 different positions.
L,S FLOOR.OTHER_REF [float]

For PLAT and CONTINUOUS floor types, Specifies the return position of the floor as a [#ref DEST_REF].

L,S FLOOR.PAUSE_TIME [time] Specifies the time that MOVEWAITRETURN and CONTINUOUS floors wait between moves.
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.
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_START [sound] The sound to make when the floor starts moving.
L,S FLOOR.SFX_STOP [sound] The sound to make when the floor stops 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.SPEED_DOWN [float] Specifies how fast the floor moves down (see above).
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.TEXTURE [string] Specifies what texture to change the floor to. This can either be specified as a texture from a wadfile or as one of the following special referances "-" or " ". E.g. if FLOOR.TEXTURE is "-" the floor texture will change to a surrounding sector's floor texture, ori f it is " " the floor texture will change to the sector on the front side of the activating line's floor texture.
L,S FLOOR.TYPE [special]

Specifies how the floor moves. See the list of [#floor_type floor types] below.

L,S FLOOR.WAIT_TIME [time] The time to wait before floor begins moving at all.
S FRICTION [float] Speciifies the amount of friction there is to moving through this sector. 1 is normal. Less than this and you slide like crazy, more than this and you get bogged.
S GRAVITY [float] Speciifies the level of gravity there is in this sector. 1 is normal however 0.5 allows swimming.
L KEYS [special]

This linedef requires one or more keys to operate, specified in a comma seperated list. See the list of [#keys keys] below for what can be included here. 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 LADDER [float] Turns the linedef into a climbable ladder with the height specified.
L,S LIGHT_BRIGHT_TIME [time] Specifies how long the light is bright/gets bright for. (can also use LIGHT_BRIGHTTIME). Only really useful if LIGHT_DARK_TIME is also used.
S LIGHT_CHANCE [percentage] The chance that the lights will change if type is set to FLASH. This check is made at the end of each period of LIGHT_TIME. Needs both LIGHT_BRIGHT_TIME and LIGHT_DARK_TIME to be specified to work properly.
L,S LIGHT_DARK_TIME [time] Specifies how long the light is dark/gets dark for. (can also use LIGHT_DARKTIME) Only really useful if LIGHT_BRIGHT_TIME is also used.
L,S LIGHT_LEVEL [integer] Specifies the lighting level to change to.
L,S LIGHT_SYNC [time] The period of gametime to syncronise changes in lighting to. With a value of 2, the light will start glowing/flashing when the level time is a multiple of two seconds.
L,S LIGHT_TYPE [special] Specifies what type of light it is. Options are GLOW, FLASH, FLICKER, SET or STROBE
L LINE_EFFECT [special] Specifies the type of line to line effect to use. Primarily for Boom compatability. Options are TRANSLUCENT, VECTOR_SCROLL, OFFSET_SCROLL, SCALE_TEX, SKEW_TEX, LIGHT_WALL, UNBLOCK_THINGS, BLOCK_SHOTS and BLOCK_SIGHT. A comma seperated list can be used to specify multiple effects.
L MUSIC [music] When this line is activated, the current music changes to that of the playlist entry specified.
L NEWTRIGGER [integer] Once this linetype has been activited it changes to the type specified by the NEWTRIGGER command. This is so you can do things like a switch you push once to turn on, push again to turn off.
S PUSH_ANGLE [float] The direction that objects are pushed while in this sector. 0 is East, 90 is north and so on.
S PUSH_SPEED [float] The speed with which objects are pushed.
S PUSH_ZSPEED [float] The vertical direction that objects are pushed while in this sector. 0 is normal, > 0 is upwards.
L RADIUS_TRIGGER [special] Used to provide a link between linedefs and radius trigger scipt effects. Values are 'ENABLE_TAGGED' or 'DISABLE_TAGGED'. When a such linedef with a tag of 17, is activated (via shoot, push or walk), all radius triggers with the tag number of 17 would either be enabled or disabled as appropriate.
L SCROLL_PARTS [special] Specifies the texture parts to scroll. Values can be LEFT, LEFT_UPPER, LEFT_MIDDLE, LEFT_LOWER, RIGHT, RIGHT_UPPER, RIGHT_MIDDLE, and RIGHT_LOWER . A comma seperated list can be used to specify multiple scroll parts.
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 SCROLL [special] Specifies which directions to scroll the wall texture. These can be UP, DOWN, LEFT or RIGHT. You can specify more than one direction by using a comma seperated list, eg SCROLL=LEFT,RIGHT;
L SCROLLING_SPEED [float] How fast the wall scrolls. (Normal value is 1).
S SECRET [boolean] This sector is counted as part of the level's secret percentage.
L SECSPECIAL [float] Refers to a sector special in sectors.ddf.
L SECTOR_EFFECT [special] Specifies the type of line to sector effect to use. Primarily for Boom compatability. Options are LIGHT_CEILING, LIGHT_FLOOR, PUSH_THINGS, SCROLL_CEILING, SCROLL_FLOOR, RESET FLOOR, RESET CEILING, ALIGN FLOOR, ALIGN CEILING, SCALE FLOOR and SCALE CEILING. A comma seperated list can be used to specify multiple effects.
L SINGLESIDED [boolean] Single sided lines can only be activated from the front. (Usually used to allow player to exit from a teleporter).
L SLIDER.DISTANCE [float] How far the slider opens, specified as a percentage of the total line length.
L SLIDER.PAUSE_TIME [time] The length of time the slider should remain open, before closing again
L SLIDER.SEE_THROUGH [boolean] Denotes whether the slider is see-through or not. If so, then monsters line of sight will not be blocked by this line.
L SLIDER.SFX_CLOSE [sound] The sound to play while the slider is closing.
L SLIDER.SFX_OPEN [sound] The sound to play while the slider is opening.
L SLIDER.SFX_START [sound] The sound to play when the slider starts moving.
L SLIDER.SFX_STOP [sound] The sound to play when the slider stops moving.
L SLIDER.SPEED [float] How fast the slider moves when it opens and closes. Specified in distance per tics.
L SLIDER.TYPE [special] Specifies where the slider opens from. Can be either LEFT, RIGHT or CENTER.
L SPECIAL [special]

[#linespecial Special] tags for lines.

S SPECIAL [special]

[#sectorspecial Special] tags for sectors.

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 TELEPORT_DELAY [time] The time before an object can start moving again after being teleported.
L TELEPORT_SPECIAL [special]

[#teleport_special Special] tags for teleport.

L TELEPORT [boolean] Teleport the activating thing to the tagged sector.
L,S TRANSLUCENCY [float] Specifies how translucent the mid-masked texture on this linedef will be.
L TYPE [special] Specifies how the line is activated. Can be either "WALK", "PUSH" or "SHOOT".
L,S USE_COLOURMAP [colourmap] Specifies which colourmap to use for lighting in this sector, or extrafloor sectors taggged to this line.
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 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.

FLOOR.TYPE and CEILING.TYPE

TYPE DESCRIPTION
BUILDSTAIRS Builds a staircase of step height DEST_OFFSET.
CONTINUOUS The floor/ceiling will move repeatedly between it's destination and it's starting position. If specified, it will pause for PAUSE_TIME at each position.
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.
PLAT The floor/ceiling will move to the destination, wait for PAUSE_TIME then return to it's starting position for PAUSE_TIME before moving again.
STOP Stops a continuous floor/ceiling from moving.

DEST_REFs

DEST REF DESCRIPTION
ABSOLUTE Moves to the exact position specified by DEST_OFFSET.
CEILING The sector's current ceiling height.
FLOOR The sector's current floor height.
HISURROUNDINGCEILING The highest surrounding ceiling height.
HISURROUNDINGFLOOR The highest surrounding floor.
LOSURROUNDINGCEILING The lowest surrounding ceiling height.
LOSURROUNDINGFLOOR The lowest surrounding floor.
LOWESTBOTTOMTEXTURE Aligns with the shortest bottom texture surrounding.
NEXTLOWESTFLOOR The floor surrounding that is next lowest.
NEXTHIGHESTFLOOR The floor surrounding that is next highest.
NEXTLOWESTCEILING The ceiling surrounding that is next lowest.
NEXTHIGHESTCEILING The ceiling surrounding that is next highest.

LIGHT_TYPEs

LIGHT TYPE DESCRIPTION
FLASH Light alternates ramdomly between light and dark according to LIGHT_PROBABILITY, LIGHT_BRIGHT_TIME, and LIGHT_DARK_TIME.
FLICKER The light will flicker randomly (like fire).
GLOW The light will smoothly alternate between light and dark.
SET The light will be set instantly.
STROBE Light alternates between light and dark according to LIGHT_BRIGHT_TIME and LIGHT_DARK_TIME.

TELEPORT_SPECIAL

SPECIAL DESCRIPTION
SAME_HEIGHT Keep the same floor-relative height that you entered the teleporter with.
SAME_OFFSET Keep the same centre-of-line-relative offset (between the teleporter line and the landing site).
SAME_SPEED Keep the original speed that you entered the teleporter with.
ALL_SAME Just a shorthand for all of the above.
LINE Line-to-line teleporting (target is a linedef with same tag as the teleport linedef).
FLIPPED Your direction after teleporting is flipped 180 degrees.
SILENT No fog, no noise.
RELATIVE Affects the angle you face after teleporting. It maintains the relative angle difference between the source linedef and the target linedef.

LINE SPECIALS

The following can be used with the SPECIAL commmand in lines.ddf

SPECIAL DESCRIPTION
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).
SWITCH_SEPARATE The switch will only change the texture on the pushed linedef, and not all the other linedefs with the same tag.

SECTOR SPECIALS

The following can be used with the SPECIAL commmand in sectors.ddf

SPECIAL DESCRIPTION
AIRLESS Enables airless mode in this sector. When a player is fully submerged in a sector with this special, the air meter appears in the corner of the HUD, which indicates how much air the player has left.
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.
PUSH_ALL Makes sure all objects are pushed, including NOGRAVITY ones.
PUSH_CONSTANT The push is a constant amount. Good for conveyor belts. Without this flag the push is like a force and things with more MASS will move slower..
SWIM Activates swimming mode when a player is in a sector assigned this special. This allows up and down movement in the sector, plus forward motion in the mlook directon. Jump also works differently. For this to work well, the sector should have a lower GRAVITY than normal and have similar FRICTION and DRAG values. VISCOSITY could also be used.
WHOLE_REGION Makes damage apply to the whole sector (and not just when you're standing on the floor). Also affects pushing sectors: without this flag the push only happens when the object is touching the floor

EXTRAFLOOR

The following are the different types of extrafloor that can be used.

SPECIAL DESCRIPTION
BOOMTEX Use BOOM's texture model (where the real sector's flats are used for the upper part, and the control sector's flats are used for the lower part). Normally the real flats are used for the lowest floor & highest ceiling, and the control flats are used for the extra floor & any ceiling underneath it.
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.
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).
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.
THICK Defines a thick solid extrafloor, which has a top, bottom and sides.
THIN Defines a thin solid extrafloor - it is just a surface (a single plane, with no sides). This is the default.
WATER Objects tagged WATERWALKER cannot penetrate extrafloors tagged as WATER. (Can be used to keep creatures like fish under water).

KEYS

The following key types can be used in EDGE.

TYPE DESCRIPTION
RED_CARD Red keycard.
BLUE_CARD Blue keycard.
YELLOW_CARD Yellow keycard.
RED_SKULL Red skull key.
BLUE_SKULL Blue skull key.
YELLOW_SKULL Yellow skull key.
GREEN_CARD Green keycard.
GREEN_SKULL Green skull key.
GOLD_KEY Gold key.
SILVER_KEY Silver key.
BRASS_KEY Brass key.
COPPER_KEY Copper key.
STEEL_KEY Steel key.
WOODEN_KEY Wooden key.
FIRE_KEY Fire key.
WATER_KEY Water key.

Doom Definition Files
DDFlogo.gif