12-Jul-2023
This entity is used to create water. In game, every flat surface of the brushes of this entity will be waving up and down a specified distance. The brushes which are part of this must be cuboids, ideally snapped to 64-units-grid. It requires liquid ('!') texture for waving. Func_water is also a door type, it can be triggered to be opened and closed the same was as func_door- useful for rising/ascending water. Func_water should be touching the floor whenever it's closed or open or it may produce strange errors or become invisible. Func_water have breakable functionality (if enabled) just like other door types, however it cannot be destroyed by direct attack (bullet/melee), you can still destroy func_water by explosions or area of effect attacks(e.g. weapon_egon).
Keyvalues |
Global Entity Name globalname : Global name of entity, allows to have one entity in the multiple maps (e.g. elevator in map1 and map2 have the same "Global Entity Name" which tells the engine to treat those entities as a one single entity, so all elevator settings, positions, actions e.t.c. are copied to another map in a moment of map transitions.
OnDestroy Function ondestroyfn : Name of the function to use from already parsed .as script files when entity is destroyed (killed) in any way. If the function belongs to namespace, you must use prefix with the namespace name (e.g. mynamespace::MyFunction) for the keyvalue.
Name targetname : Set name of func_water so other entities can trigger it to move water. As water is a door type in GoldSrc, it can be moved just like func_door. Behaviour, when triggered, depends on "Obey Trigger Mode" value. See "Obey Trigger Mode" for more details on how water behaves depending on selected mode. Can be kill-targeted.
Target target : Entity to trigger whenever water completely "opens" or "closes". Trigger use-type is 'Toggle'.
Delay Before Trigger delay : Delay before trigger entity specified in "Target".
Kill Target killtarget : Entity to remove when water "opens".
Name In Filter tinfilter : Semicolon-separated list of targetnames to either be forbidden or required (specified in "Name In Filter Type") on the caller-entity. Can also specify only one.
Name In Filter Type tinfiltertype : Set whether to forbid or require certain targetname(s) (specified in "Name In Filter") on the entity which tries to trigger me in order to accept triggering.
Class In Filter cinfilter : Semicolon-separated list of classnames to either be forbidden or required (specified in "Class In Filter Type") on the caller-entity. Can also specify only one.
Class In Filter Type cinfiltertype : Set whether to forbid or require certain classname(s) (specified in "Class In Filter") on the entity which tries to trigger me in order to accept triggering.
Name Out Filter toutfilter : Semicolon-separated list of targetnames to either be forbidden or required (specified in "Name Out Filter Type") on targeted entities. Can also specify only one.
Name Out Filter Type toutfiltertype : Set whether to forbid or require certain targetname(s) (specified in "Name Out Filter") on the target entities.
Class Out Filter coutfilter : Semicolon-seperated list of classnames to either be forbidden or required (specified in "Class Out Filter Type") on targeted entities. Can also specify only one.
Class Out Filter Type coutfiltertype : Set whether to forbid or require certain classname(s) (specified in "Class Out Filter") on the target entities.
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 (0 = all) 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 (0 = all) 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 triggered 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 triggered 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 triggered 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 triggered 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.
Classification classify : Set the class of the spawned func_water. Think of how even though zombies and human grunts, by default, both are the players' enemies, yet have a dislike for and attack each other as well. This relation is created through the respective classes of the two entity types. For a complete table of how different classes react to each other, see monster class relation table.
Render FX renderfx : Set custom render FX effect. Only works when "Render Mode" is set to different than 'Normal'
Render Mode rendermode : Render mode determines how this entity is rendered.
FX Amount (1 - 255) renderamt : Render amount to use when other than "Render Mode" 'Normal' is used.
FX Color (R G B) rendercolor : Used with "Render Mode" 'Color' and 'Glow' to set color. Also sets color of 'Glow Shell' "Render Mode".
Pitch Yaw Roll (X Y Z) angles : Where Z means Y and Y means Z, that is, when you're thinking Hammer-grid. (Hammer uses Z for height and Y for depth, while every other sane 3D-application does this the other way round; nonetheless this keyvalue description has the letters in the conventional order) This, technically, is a 3D-vector containing Euler-angles to describe either the entity's rotation or direction of effect. E.g. a func_door_rotating will use this as its initial rotation, while a trigger_push will keep its original alignment and use this for the direction of its push-effect instead. Euler-angles are a hierarchical system to determine an object's orientation in 3D-space. A yaw-value of 0 would mean the entity would face east. (right in top-down view) 90 would mean it would face north. (up in top-down-view) After yaw, pitch is applied. Think aiming up/down with your character in first person. At last, the roll-value is applied. Think your character falling over sideways in first person. Some entities, mostly point entities, do not use the angles keyvalue for any purpose.
ZHLT Template Model Target zhlt_usemodel : For Brush entities: sets brush model template of this entity. Set it to the name of other brush entity (now called a template) and it's brush model will be used instead. Templates might save server resources by "copying" single brush entity (template identified by name) and using it in multiple places (can be used for entities like tables, columns, barrels, cars e.t.c.). Also one template occupies only one entity slot when compiling a map, no matter how many entities refers to it. For model-based point entities: copy display model of specified entity, to use it's model instead. Using "Custom model" is more appropriate in most cases, however, when it's not possible, use "ZHLT Copy Lighting From Target".
ZHLT Copy Lighting From Target zhlt_copylight : For Brush entities: copies light info from specified entity. This can be useful when we want this entity to be light up in a similar way the other entity of the map is, e.g. we have few func_pushables on map, and they are lit differently, tough they can be moved (and lightning is not updated on dynamic entities), it may looks shabby. With this keyvalue we can prevent this making all func_pushables received light in a same way. Another example: we have few windows in corridor (e.g. func_breakables), all of them receive a light in acceptable way, but the last window receive part of the light from another room and breaking whole atmosphere. We can set this window "Copy Lightning From Target" to any other window to fix this. Note that this can be also used for completely different entities, so we copy lightning from func_door to func_breakable as well. For model-based point entities: if model lightning does not satisfy you (e.g. it's too dark) you can specify a name of entity here to copy it's lightning values- it can be other model-based entity or simply info_target.
ZHLT Disable Clipping zhlt_noclip : Enable or disable collision of entity.
ZHLT Invisible zhlt_invisible : Brush entities only. Determines if entity should be visible.
ZHLT Custom Shadow (when opaque) zhlt_customshadow : Opaque brush entities only. If "ZHLT Ligth Flags" of this entity uses any of the option with 'Opaque' word, this will allow to customize shadow dropped by this entity. Value format: [0 - 1.0] [0 - 1.0] [0 - 1.0], use three values for color or only one for transparency.
ZHLT Embed Light Map (when translucent) zhlt_embedlightmap : Transparent brush entities only. Set it to 'Yes' and this transparent entity will take a light from environment making it looks much more natural. Use it when entities (e.g. glass represented by func_wall) omits lightning from surrounding. Note that this is expensive so shouldn't be used too often, but resolution of those lightmaps can be controlled by keyvalue explained below.
ZHLT Embed Light Map Resolution zhlt_embedlightmapresolution : Value of power of two that controls the resolution of embedded lightmaps of transparent textures (see keyvalue above). Higher value for better optimization. Default and recommended value is 4.
ZHLT Light Flags zhlt_lightflags : Brush entities only. Changes light casting or receiving setting.
ZHLT Light Origin Target light_origin : Set it to the name of info_target, this entity will receive lights from specified info_target position instead of it's own position. As a lot of entites can moves and lightning is not updated dynamically you can choose how your entity will be lit in game (e.g. elevators, pushables e.t.c.). Now you don't need to put the whole entity in the well-lit room at map start to make them look desirable.
Locked Sound locked_sound : Sound to play when a player tries to use the func_water but it's locked because it has a targetname or uses a multisource entity.
Unlocked Sound unlocked_sound : Sound to play if func_water is pressed/touched while not locked.
Locked Sentence locked_sentence : Sentence to play when a player tries to use func_water but it's locked because it has a targetname or uses a multisource entity. Sentences are picked from sound/default_sentences.txt file.
Unlocked Sentence unlocked_sentence : Sentence to play when the door is opened. Plays only few times.
Locked Sound Override locked_sound_override : Sound file to use when attempting to open locked func_water. Useful when you don't want to use sound from default sound list. This overrides default "Locked Sound" sound. Note that other sounds format (AIFF, ASF, DLS, FLAC, IT, M3U, MID, MOD, MP2, MP3, OGG, S3M, VAG, WMA, XM) can be used, even if editor sound browser allows to pick only WAV files.
Unlocked Sound Override unlocked_sound_override : Sound file to use when func_water opens. Useful when you don't want to use sound from default sound list. This overrides default "Unlocked Sound" sound. Note that other sounds format (AIFF, ASF, DLS, FLAC, IT, M3U, MID, MOD, MP2, MP3, OGG, S3M, VAG, WMA, XM) can be used, even if editor sound browser allows to pick only WAV files.
Locked Sentence Override locked_sentence_override : Sentence from "default_sentences.txt" or custom sentences file (which can be added in map properties) to use when attempting to open locked func_water. Useful when you want to override locked sentence with your own sentence.
Unlocked Sentence Override unlocked_sentence_override : Sentence from "default_sentences.txt" or custom sentences file (which can be added in map properties) to use when func_water opens. Useful when you want to override locked sentence with your own sentence.
Fire On Start fireonstart : Entity to trigger when func_water starts moving. Trigger use-type can be specified below.
Fire On Start Trigger State fireonstart_triggerstate : Set the use-type with which the entity specified above will be triggered.
Fire On Stop fireonstop : Entity to trigger when func_water stops moving. Trigger use-type can be specified below.
Fire On Stop Trigger State fireonstop_triggerstate : Set the use-type with which the entity specified above will be triggered.
Fire On Open Start fireonopening : Entity to trigger when func_water starts opening. Trigger use-type can be specified below.
Fire On Open Start Trigger State fireonopening_triggerstate : Set the use-type with which the entity specified above will be triggered.
Fire On Close Start fireonclosing : Entity to trigger when door starts closing. Trigger use-type can be specified below.
Fire On Close Start Trigger State fireonclosing_triggerstate : Set the use-type with which the entity specified above will be triggered.
Fire On Open End fireonopened : Entity to trigger when door ends opening. Trigger use-type can be specified below.
Fire On Open End Trigger State fireonopened_triggerstate : Set the use-type with which the entity specified above will be triggered.
Fire On Close End fireonclosed : Entity to trigger when door end closing. Trigger use-type can be specified below.
Fire On Close End Trigger State fireonclosed_triggerstate : Set the use-type with which the entity specified above will be triggered.
Speed speed : Movement speed in units per second.
Master master : Name of the multisource entity that (temporary) locks this func_water. If master is specified the func_water will be disabled and will play locked sounds and sentences. When multisource entity is triggered/being triggering by all possible inputs, the func_water will be unlocked. When multisource lost at least one input signal, the entities becomes locked again.
Move Sound movesnd : Sound that is played while the func_water is moving.
Move Sound Loops? movesnd_loop : Sets if "Move Sound" should be looped during movement until it stops.
Stop Sound stopsnd : Sound which is played once as the func_water stops moving.
Move Sound Override noise1 : Sound file to use when the func_water is moving. Useful when you don't want to use sound from default sound list. This overrides default "Move Sound" sound. Note that other sounds format (AIFF, ASF, DLS, FLAC, IT, M3U, MID, MOD, MP2, MP3, OGG, S3M, VAG, WMA, XM) can be used, even if editor sound browser allows to pick only WAV files.
Stop Sound Override noise2 : Sound file to use when the func_water is stop moving. Useful when you don't want to use sound from default sound list. This overrides default "Stop Sound" sound. Note that other sounds format (AIFF, ASF, DLS, FLAC, IT, M3U, MID, MOD, MP2, MP3, OGG, S3M, VAG, WMA, XM) can be used, even if editor sound browser allows to pick only WAV files.
delay before close, -1 stay open wait : Delay till the func_water will automatically close after having opened. Setting this to -1 makes it never close again. When the "Toggle" flag is selected, this is obsolete.
Lip lip : Length in units to subtract from the precomputed movement-distance of the func_water. Negative values increase the movement-distance.
Damage inflicted when blocked dmg : Damage to apply to entity that attempts to blocks the func_water.
Message if triggered message : Not functional.
Strength health : Set how many hit points this entity has if "Breakable" is set to 'Yes'
Minimum light level _minlight : Sets the minimum light level. Set this value if entity is too dark on compiled map. Also useful for things like computer screens or holograms. Default is 0, max 1.
Sound Replacement File soundlist : Allows you to setup a sound replacement file for the func_water 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 func_water by touching/using it (if it has no targetname, or targetname is set to be ignored with "Ignore Targetname")). 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 func_water to only orient using this setting instead.
Ignore Targetname m_fIgnoreTargetname : Set whether the func_water should ignore its targetname or not. This is useful when you need to reference the func_water in another entity but still want it to open on touch.
Obey Trigger Mode m_iObeyTriggerMode : Controls how func_water behave when triggered with different use-types.
Breakable breakable : If set to 'Yes', the func_water gets functionality of func_breakable entity. All breakable keyvalues are functional when this key is set to 'Yes'.
Fire on break fireonbreak : If "Breakable" is set to 'Yes' then this is entity to trigger when func_water breaks. Trigger use-type is 'Toggle'.
Material type material : If "Breakable" is set to 'Yes' then this is material which matches what your func_water is supposed to be the most. The material type affects the func_water'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 func_water is, regardless of how funny that is, in fact, unbreakable..
Instant Break instantbreak : If "Breakable" is set to 'Yes' then this let you enable instant break of func_water if hit with a "Instant break weapon" specified below. Note that this still can be damaged by other sources normally.
Instant Break Weapon weapon : If "Breakable" is set to 'Yes' this allows you to specify an instant-break weapon when "Instant break" is set to 'Yes'.
Gibs' direction and velocity explosion : If "Breakable" is set to 'Yes' you can choose 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 the func_water 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 : If "Breakable" is set to 'Yes' you can choose custom model of broken entity parts. Models with multiple 'Submodels' uses all of sub-models for gibs. If "Material Type" is set to 'Glass' then spawned gibs are transparent.
Explode Magnitude (0=none) explodemagnitude : Requires "Breakable" set to 'Yes'. If greater than zero, the func_water 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 : Requires "Breakable" set to 'Yes'. If "Show HUD Info" is set to 'Yes', this is a name to display on-screen when player is looking at this func_water.
Only Trigger onlytrigger : Requires "Breakable" set to 'Yes'. Make the func_water breakable only via triggering it.
Break On Trigger breakontrigger : Requires "Breakable" set to 'Yes'. You can allow the func_water to breakable via trigger. It is not a duplicate of keyvalue above.
Repairable repairable : With "Breakable" set to 'Yes' this allows to specify if the func_water can be repaired by using weapon_pipewrench on it.
Show HUD Info showhudinfo : With "Breakable" set to 'Yes' you can also enable HUD info when looking at this func_water (name, health e.t.c.).
Immune To Clients immunetoclients : Requires "Breakable" set to 'Yes'. While breakable func_water can be damaged by anyone or everything, you can disable if player should belong to this privileged group.
Explosives Only explosivesonly : Requires "Breakable" set to 'Yes'. With this setting you can set the func_water react only to explosion damage.
Contents skin : Content of the water to use.
Wave Height WaveHeight : Height of the waves. Larger values for higher waves.
1 : Starts Open : If set, the func_water 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 func_water to start open and still receive proper lighting, or the node-graph to generate properly before closing the func_water.
4 : Don't link : If set, this func_water won't synchronize its movement with identically named func_water. This is useful when triggering many func_water with different speeds or different movement-lengths by the same name. If not set, the func_water entities with the same name will adjust their individual speeds to open/close simultaneously, orienting at how the first related func_water the game engine finds would behave timing-wise.
8 : Passable : If set, the func_water is entirely non-solid. It also cannot be triggered on-touch anymore then. Much more optimal way to do this is to set "ZHLT Disable Clipping" to 'Always non-solid' unless you don't want to have bullets blocked by func_water.
32 : Toggle : If set, this func_water ignores its "delay before close" keyvalue; nonetheless, it must not be 0 then for some reason.
256 : USE Only : If set, this water can be triggered by using it but not by touching it anymore. It should be selected if you need your water to be opened or closed by using it by whatever reason.
512 : Monsters Can't : If set, monsters cannot cause this func_water 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 func_water won't check for another func_water to link with, causing this one to not be considered for link-orientation by the game engine; it can still be caused to be linked by other func_water.
2048 : Not in Deathmatch : Obsolete in Sven Co-op. Makes the entity don't appear in Multiplayer Games.
It is advised to experiment with large texture scale values on the water surface, as the game engine will first fit the texture to be 64 units wide and high. Doing so can greatly improve performance and looks.
Rotating the surface texture by non-by-90-divisible values causes shred water surface.
Multiple func_water entities touching on edge will not correctly blend into each other unless both are snapped to 64-units-grid on the touching corners..