You guessed it.... Water! A water
texture (one prefixed with
!
) will act as water, but binding it to an entity gives added advantages. By the way, this entity looks a lot like
func_door
, because it indeed shares the exact same codebase, so as to allow it to be able to move (flooding etc.)
Attributes
- Name (targetname) - Property used to identify entities.
- Render FX (renderfx) - Gives objects special render effects. Think of it as modifying whatever the Render Mode puts out. The options are as follows:
- 0 = Normal
- 1 = Slow Pulse
- 2 = Fast Pulse
- 3 = Slow Wide Pulse
- 4 = Fast Wide Pulse
- 5 = Slow Fade Away
- 6 = Fast Fade Away
- 7 = Slow Become Solid
- 8 = Fast Become Solid
- 9 = Slow Strobe
- 10 = Fast Strobe
- 11 = Faster Strobe
- 12 = Slow Flicker
- 13 = Fast Flicker
- 14 = Constant Glow
- 15 = Distort
- 16 = Hologram (Distort and Fade)
- Render Mode (rendermode) - Controls the type of rendering that is used for an object. Options are:
- 0 = Normal
- 1 = Color
- 2 = Texture
- 3 = Glow
- 4 = Solid
- 5 = Additive
- Pitch Yaw Roll (angles) - Sets the pitch (up / down), yaw (left / right) and roll (bank) respectively. The compass in WorldCraft / Hammer corresponds to Yaw. The settings are not always (or not all) used.
- Master (master) - The name of a
multisource
(or game_team_master
) entity. A master must usually be active in order for the entity to work. Thus they act almost like an on/off switch, in their simplest form, and like an AND gate in the case of the multisource.
- Move Sound (movesnd) - [No effect] The sound that is played when the door opens. Options are:
- 0 = No Sound (
common/null.wav
)
- 1 = Servo (Sliding) (
doors/doormove1.wav
)
- 2 = Pneumatic (Sliding) (
doors/doormove2.wav
)
- 3 = Pneumatic (Rolling) (
doors/doormove3.wav
)
- 4 = Vacuum (
doors/doormove4.wav
)
- 5 = Power Hydraulic (
doors/doormove5.wav
)
- 6 = Large Rollers (
doors/doormove6.wav
)
- 7 = Track Door (
doors/doormove7.wav
)
- 8 = Snappy Metal Door (
doors/doormove8.wav
)
- 9 = Squeaky 1 (
doors/doormove9.wav
)
- 10 = Squeaky 2 (
doors/doormove10.wav
)
- Stop Sound (stopsnd) - [No effect] The sound that is played after the door closes. Options are:
- 0 = No Sound (
common/null.wav
)
- 1 = Clang with brake (
doors/doorstop1.wav
)
- 2 = Clang reverb (
doors/doorstop2.wav
)
- 3 = Ratchet Stop (
doors/doorstop3.wav
)
- 4 = Chunk (
doors/doorstop4.wav
)
- 5 = Light airbrake (
doors/doorstop5.wav
)
- 6 = Metal Slide Stop (
doors/doorstop6.wav
)
- 7 = Metal Lock Stop (
doors/doorstop7.wav
)
- 8 = Snappy Metal Stop (
doors/doorstop8.wav
)
- Target (target) - When the door is opened, it triggers the entity with the name specified by Target.
- Locked Sound (locked_sound) - [No effect] Sounds to play when the door is 'locked'. Options are:
- 0 = None (
common/null.wav
)
- 2 = Access Denied (
buttons/button2.wav
)
- 8 = Small zap (
buttons/button8.wav
)
- 10 = Buzz (
buttons/button10.wav
)
- 11 = Buzz Off (
buttons/button11.wav
)
- 12 = Latch Locked (
buttons/latchlocked1.wav
)
- Unlocked Sound (unlocked_sound) - [No effect] Sound to play when the door is 'unlocked'. Options are:
- 0 = None (
common/null.wav
)
- 1 = Big zap & Warmup (
buttons/button1.wav
)
- 3 = Access Granted (
buttons/button3.wav
)
- 4 = Quick Combolock (
buttons/button4.wav
)
- 5 = Power Deadbolt 1 (
buttons/button5.wav
)
- 6 = Power Deadbolt 2 (
buttons/button6.wav
)
- 7 = Plunger (
buttons/button7.wav
)
- 8 = Small zap (
buttons/button8.wav
)
- 9 = Keycard Sound (
buttons/button9.wav
)
- 10 = Buzz (
buttons/button10.wav
)
- 13 = Latch Unlocked (
buttons/latchunlocked1.wav
)
- 14 = Light Switch (
buttons/lightswitch2.wav
)
- Locked Sentence (locked_sentence) - [No effect] Sentence that is spoken when the door is 'locked'. Options are:
- 1 = Gen. Access Denied (
NA
)
- 2 = Security Lockout (
ND
)
- 3 = Blast Door (
NF
)
- 4 = Fire Door (
NFIRE
)
- 5 = Chemical Door (
NCHEM
)
- 6 = Radiation Door (
NRAD
)
- 7 = Gen. Containment (
NCON
)
- 8 = Maintenance Door (
NH
)
- 9 = Broken Shut Door (
NG
)
- Unlocked Sentence (unlocked_sentence) - [No effect] Sentence that is spoken when the door is 'unlocked'. Options are:
- 1 = Gen. Access Granted (
EA
)
- 2 = Security Disengaged (
ED
)
- 3 = Blast Door (
EF
)
- 4 = Fire Door (
EFIRE
)
- 5 = Chemical Door (
ECHEM
)
- 6 = Radiation Door (
ERAD
)
- 7 = General Containment (
ECON
)
- 8 = Maintenance area (
EH
)
- FX Amount (renderamt)
- FX Color (rendercolor)
- Global Entity Name (globalname)
- Kill Target (killtarget)
- Speed (speed) - Speed at which the entity moves once triggered.
- Delay before close (wait) - If not toggleable then this is the amount of time before the water returns to its original position. (
-1
makes it stay 'open')
- Lip (lip) - lip remaining after move, useful if you want the water to disappear completely, or inversely, to have a little bit left over.
- Damage inflicted when blocked (dmg) - Doesn't work.
- Message if triggered (message)
- Fire on Close (netname)
- Health (health) - Doesn't work.
- Minimum light level (_minlight)
- ZHLT Lightflags (zhlt_lightflags)
- Light Origin Target (light_origin)
- Contents (skin) - Values:
- -3 = water
- -4 = slime
- -5 = lava
- Wave Height (WaveHeight) - Overrides the height set in
worldspawn
.
Flags
- Starts open (1) - If triggered, it will start in the open position
- Don't link (4)
- Passable (8)
- Toggle (32)
- Use only (256)
- Monsters Can't (512)
- Not in Deathmatch (2048)
Notes
- [Software mode] Water textures have procedural ripple effect applied to the textures. Wave Height has no effect.
- [GL/D3D mode] Water surfaces are replaced with a mesh of wave polygons, and 3D rendering animation applied laterally and vertically at amount specified in Wave Height. The mesh grid is fixed at 64uĆ64u and textures are stretched to fit the grid. Faces that are not perfectly level are not rendered.
- You can set the default wave height in the
worldspawn
properties (Map -> Map Properties).
- Some of the
func_door
-derived properties don't work with func_water
. For example, none of the sound attributes work, and dmg
doesn't work because func_water
is not solid.
- The damage dealt by slime and lava is tied to your framerate. Higher fps deals more damage per second. To deal damage steadily, use
trigger_hurt
.
- To get the water to look like it's flowing, use a water texture that starts with
scroll
.
- Use a
func_conveyor
or trigger_push
to create a current.
- You can try the Contents (skin) attribute, with the same values, on other brush entities (e.g.
func_train
) if you want more control over a volume of liquid.
Water is always rendered no matter where you are. A cheaper alternative is to use NULL texture for the water brush, set wave height to 0, set its render mode to texture and fx amount to 0. This will prevent the water from rendering, but you'll still be able to swim in it.
Use a func_door on top of it, with NULL texture except on top where you put actual water texture. Set render mode to texture and fx amount to 100. Set the passable flag.
If you want to create rising water, set the same target name to both the water and the door and trigger them together. Don't forget to set delays to the same values.
If you have a large amount of water, scale your door water texture by two or three.
It's also possible with BSP binary hacking to rename a normal texture used on normal brushwork into water, bypassing the culling done by the compiler, so that any surface it's applied to ā walls, ceilings, etc ā has the wavy effect, but with waveheight of 0.