func_door

From Sven Co-op
Jump to navigation Jump to search
func_door
Type

brush

Status

supported

 


Simple entity for objects moving in a straight line. Mostly used for plain sliding doors. Func_doors are triggered on touch, unless they have a name, in which's case they require to be triggered manually. The movement-direction is set by the angles keyvalue. The distance traveled is computed by the extents of the door's hull into the set direction. If your door is 64 units in width (X-axis) and set to move east, it will move 64 units east when triggered. If your door is 96 units in length (Y-axis) and set to move north, it will move 96 units north. If your angle is not a multiple of 90, it gets weird and complicated; couldn't figure out what's the maths behind that. When the door is blocked while moving, it will apply its damage and, by default, move back into the position it came from and idle without further action. An exception is when the door has already been opened and its movement is a result of automatic delayed closing; it will then attempt to close every time the delay runs out, till it closes without getting blocked. The door can be blocked multiple times as it moves forth/back, changing its direction and goal-position every time - also applying damage every time - till it reaches the goal-position.

1 Keyvalues

Speed : speed

Movement-speed in units per second.

Master : master

Put the name of a multisource entity to lock this door.

Move Sound : movesnd

Sound that is played while the door is moving.

Move Sound Loops? : movesnd_loop

Sets if Move Sound should be looped during brush movement until it stops.

Stop Sound : stopsnd

Sound which is played once as the door stops moving.

Delay before close; -1 stay open : wait

Delay till the door will automatically close after having opened. Setting this to -1 makes the door never close again. When the door is toggleable, this is obsolete.

Lip : lip

Length in units to subtract from the precomputed movement-distance of the door. Negative values increase the movement-distance.

Damage inflicted when blocked : dmg

Damage to apply to whatever blocks the door.

Fire on open (obsolete) : fireonopen

Target to trigger when the door finishes opening.

Fire on close (obsolete) : netname

Target to trigger when the door finishes closing.

Fire On Open Start : fireonopening

Entity to trigger when door starts opening.

Fire On Open Start Trigger State : fireonopening_triggerstate

Set the use-type with which the entity specified above will be fired.

Fire On Close Start : fireonclosing

Entity to trigger when door starts closing.

Fire On Close Start Trigger State : fireonclosing_triggerstate

Set the use-type with which the entity specified above will be fired.

Fire On Open End : fireonopened

Entity to trigger when door ends opening.

Fire On Open End Trigger State : fireonopened_triggerstate

Set the use-type with which the entity specified above will be fired.

Fire On Close End : fireonclosed

Entity to trigger when door end closing.

Fire On Close End Trigger State : fireoncloed_triggerstate

Set the use-type with which the entity specified above will be fired.

Strength : health

It used to be damage amount for door to be opened, it is not supported anymore. Now it's amount of damage to take before they gets destroyed (when "Breakable" is set to 'Yes').

Locked Sound : locked_sound

Sound to play when a player tries to open the door but it's locked because it has a targetname or uses a multisource entity.

Unlocked Sound : unlocked_sound

Another sound to play when the door is opened.

Locked Sentence : locked_sentence

Sentence to play when a player tries to open the door but it's locked because it has a targetname or uses a multisource entity. (Only works a few times, probably because it'd be weird if the announcer was spamming all the time)

Unlocked Sentence : unlocked_sentence

Sentence to play when the door is opened. (Only works a few times, probably because it'd be weird if the announcer was spamming all the time)

Sound Replacement File : soundlist

Allows you to setup a sound replacement file for the func_door sounds. The path begins in 'svencoop/sound/mapname', whereas 'mapname' would be your map's name. You can go to the parent directory using '../'. A valid sound replacement file contains one or more lines with two sound-paths, which are separated by a space and wrapped into quotes. The first sound is the sound to be replaced. The second sound is the new sound. Sound-paths start in the sound directory. You cannot go to the parent directory using '../' in that case. These sounds do not need to be precached using a custom_precache point entity.

Who can open this : m_iOpenFlags

Specify who can open this door by touching/using it (if it has no targetname, or targetname is set to be ignored (see below)). If set to something other than default, this will cause the old spawnflags which are usually used to keep track of this to be ignored and causes the door to only orient using this setting instead.

Ignore Targetname : m_fIgnoreTargetname

Set whether the door should ignore its targetname or not. This is useful when you need to reference the func_door in another entity but still want the door to open on touch.

Obey Trigger Mode : m_iObeyTriggerMode

Originally, func_door would not interpret use-types "Off" and "On" as "Toggle". This keyvalue allows you to use "On" to open the door and "Off" to close the door. You can also set this to have the door react to "On"- and "Off"-triggering while it is moving, and go closing when it is currently opening and vice versa.

Move Sound Override : noise1

Custom sound file that is playing when entity is moving. Overrides default "Move Sound" sound.

Stop Sound Override : noise2

Custom sound file to play when the entity ends movement. Overrides default "Stop Sound" sound.

Locked Sound Override : locked_sound_override

Sound file to use when attempting to open locked entity. Useful when you don't want to use sound from default sound list. This overrides default "Locked Sound" sound.

Unlocked Sound Override : unlocked_sound_override

Sound file to use when entity is unlocked. Useful when you don't want to use sound from default sound list. This overrides default "Locked Sound" sound.

Locked Sentence Override : locked_sentence_override

Sentence from sentences.txt to use when attempting to open locked entity. Useful when you want to override locked sentence with your own sentence.

Unlocked Sentence Override : unlocked_sentence_override

Sentence from sentences.txt to use when entity is unlocked. Useful when you want to override unlocked sentence with your own sentence.

Breakable Keyvalues

Breakable : breakable

If set to 'Yes', the entity will be breakable, just like func_breakable entity. All breakable keyvalues are functional when this key is set to 'Yes':

Strength : health

Set how many hit points this entity has.

Fire on break : target

The entity triggers its target when it breaks.

Material type : material

Choose the material which matches what your entity is supposed to be the most. The material type affects the entity's sounds emitted when it takes damage, as well as which gibs are created when it is destroyed. If the material is set to 'Unbreakable glass', the entity is, regardless of how funny that is, in fact, unbreakable.

Instant break : instantbreak

If set to 'Yes', this entity will break instantly if hit with a crowbar.

Instant break weapon : weapon

Allows you to specify an instant-break weapon other than the crowbar.

Gibs direction and velocity : explosion

Set whether the gibs fly relative to where the attack came from, damage received and material (e.g. concrete gibs fly with less velocity) or randomly. This has no effect on entities destroyed via a trigger. Note: Blowing up stuff is much more fun when shit goes flying instead of just falling to the ground as if nothing happened.

Gib model : gibmodel

Custom model of broken entity parts. Models with multiple 'Submodels' uses all of sub-models for gibs.

Explode Magnitude (0=none) : explodemagnitude

If greater than zero, the entity will cause an explosion at its position when it breaks. The greater the magnitude, the more damage the explosion will cause. Note that explosion damage values above 200 are know to cause explosion damage to even go through walls.

HUD info name : displayname

If "Show HUD Info" is set to 'Yes', this is a name of entity to display on-screen when player is looking at this entity.

Only Trigger : onlytrigger

Set it to 'Yes' to make entity breakable only via triggering it.

Break on Trigger : breakontrigger

Set it to 'Yes' to make entity breakable via trigger. It is not a duplicate of keyvalue above.

Repairable : repairable

If set to 'Yes', this entity can be repaired by using weapon_pipewrench on it.

Show HUD info : showhudinfo

If set to 'Yes', the HUD information (name, health e.t.c.) are shown.

Immune to Clients : immunetoclients

Players can't deal a damage to this entity when this option is set to 'Yes'.

Explosives Only : explosivesonly

If set to 'Yes', this entity can be damaged by explosives only.

Classification : classify

Classification of this entity. If specified, enemies of this class will attack this entity.

Item Inventory Rules

List of inventory-related keyvalues used with item_inventory entity. Whenever player is attempting to use an entity, the inventory test runs. If test result is negative, the entity won't work. In other case, entity can be used as normal, but only by player who passed the test with required inventory conditions:

Inventory: Need item(s) : item_name_required

Item(s) (names separated by spaces) required to use this entity. Refers to "Item name" value of item_inventory.

Inventory: Need item(s) from group(s) : item_group_required

Groups (separated by spaces), in which carried items belong to, required to use this entity. Refers to "Item group name" value of item_inventory.

Inventory: Item count in group need have : item_group_required_num

Minimal number of items, that belong to specified group, required to use this entity. Use with "Inventory: Need item(s) from group(s)" keyvalue. Value of '0' means that all items from current group are required.

Inventory: CAN'T have item : item_name_canthave

Items in player inventory that will fail the test, and disallow usage of this entity. Refers to "Item name" value of item_inventory.

Inventory: CAN'T have item from group : item_group_canthave

Items in player inventory, which belong to specified group, that will fail the test, and disallow usage of this entity. Refers to "Item group name" value of item_inventory.

Inventory: Item count in group CAN'T have : item_group_canthave_num

Minimal number of items in player inventory, which belong to specified group, that will fail the test, and disallow usage of this entity. Refers to "Item group name" value of item_inventory. Value of '0' means no single item from current group should be equipped to pass the test.

On pass: Ignore item's on use triggers? : pass_ignore_use_triggers

If set to 'Yes' item's trigger targets from 'Target: On use (by trigger)' will not be fired when item is used by this entity.

On pass: Drop item(s) : pass_drop_item_name

Items to force-drop when the test result is positive, and entity is used successfully. Refers to "Item name" value of item_inventory. Multiple item names are separated by spaces.

On pass: Drop item(s) from group(s) : pass_drop_item_group

Items to force-drop, that belong to specified group, when the test result is positive, and entity is used successfully. All items from this group will be dropped.  Refers to "Item group name" value of item_inventory. Multiple item names are separated by spaces.

On pass: Ignore item's on drop triggers? : pass_ignore_drop_triggers

If set to 'Yes' item's trigger targets from 'Target: On drop' will not be fired when item is dropped by this entity with 'Drop items(s)' events above.

On pass: Return item(s) : pass_return_item_name

Items to return to their starting positions when test result is positive. Refers to "Item name" value of item_inventory. Multiple item names are separated by spaces.

On pass: Return item(s) from group(s) : pass_return_item_group

Items, that belong to specified group, to return to their starting positions when test result is positive. All items from this group will be returned. Refers to "Item group name" value of item_inventory. Multiple group names are separated by spaces.

On pass: Ignore item's on return triggers? : pass_ignore_return_triggers

If set to 'Yes' item's trigger targets from 'Target: On return' will not be fired when item is returned by this entity with 'Return items(s)' events above.

On pass: Destroy item(s) : pass_destroy_item_name

Items to remove when test result is positive. Refers to "Item name" value of item_inventory. Multiple item names are separated by spaces.

On pass: Destroy item(s) from group(s) : pass_destroy_item_group

Items, that belong to specified group, to remove when test result is positive. All items from this group will be removed. Refers to "Item group name" value of item_inventory. Multiple group names are separated by spaces.

On pass: Ignore item's on destroy triggers? : pass_ignore_destroy_triggers

If set to 'Yes' item's trigger targets from 'Target: On Destroy' will not be fired when item is destroyed by this entity with 'Destroy items(s)' events above.

Target: Inventory rules failed : target_on_fail

Entity to trigger whenever test result is negative.

2 Flags

1 : Starts Open

If set, the door will treat its predetermined open- and close-position as swapped, meaning it will start in its open position, but treat it as its closed position. This is useful when you want your door to start open and still receive proper lighting, or the node-graph to generate properly before closing the door manually (if it is a toggleable door).

4 : Don't link

If set, this door won't synchronize its movement with identically named doors. This is useful when triggering many doors with different speeds or different movement-lengths by the same name. If not set, doors with the same name will adjust their individual speeds to open/close simultaneously, orienting at how the first related door the game engine finds would behave timing-wise.

8 : Passable

If set, the door is entirely non-solid. It also cannot be triggered on-touch anymore then.

32 : Toggle

If set, this door ignores its delay before closing; nonetheless, it must not be 0 then for some reason.

256 : Use Only

If set, this door can be triggered by using it but not by touching it anymore. This does not outrule activation by triggering, though.

512 : Monsters Can't

If set, monsters cannot cause this door to move. They can, otherwise, even if it is a use-only- or trigger-only-door, so don't forget to set this when you need it!

1024 : No Link-Checking

If set, the door won't check for doors to link with, causing this door to not be considered for link-orientation by the game engine; it can still be caused to be linked by other func_doors.

3 Notes

  • If the func_door kills something which blocked it, it will proceed instead of returning (behavior was changed to this in SC 4.5).

4 Issues

  • The "Message if triggered"-keyvalue does nothing.

5 Changes

  • 5.0 Steam Release: Added 'Inventory Rules', 'Sound Override', 'Locked Sound Override', 'Unlocked Sound Override', 'Locked Sentence Override', 'Unlocked Sentence Override', 'Move Sound Override' and 'Stop Sound Override' keyvalues.