This entity lets you create a stationary piece of geometry in your level which can then be modified (through its rendering properties) for a number of effects. Often used for things like unbreakable glass, masked textures (fences, ladders).
In the past it was also used for performance reasons, but nowadays
func_detail
(introduced by
Vluzacn's compile tools aka VHLT) offers a compelling alternative.
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
- 0 = Normal
- 1 = Color
- 2 = Texture
- 3 = Glow
- 4 = Solid
- 5 = Additive
- FX Amount (renderamt)
- FX Color (rendercolor)
- Global Entity Name (globalname)
- ZHLT Lightflags (zhlt_lightflags)
- Light Origin Target (light_origin)
- Minimum light level (_minlight)
Flags
Notes
- Unbreakable windows: Set the Render Mode to Texture, and the FX amount to about 100. This will make the entity see-through.
- Masked textures (blue background, prefixed with
{
): Apply a masked texture, then set the Render mode to Solid and the FX Amount to 255. The blue areas on the texture will not show up in the game.
- Animating textures (prefixed with
+
): At spawn, the textured face animates through the numbered set (+0
...+9
). Triggering the entity switches to the alphabet set (+A
...+J
) and back.
- Using the Color Render Mode replaces the entity's appearance with the solid colour as set in Render Color and FX Amount sets the opacity. All other details (textures, lightmaps, decals) are removed.
- Using Render Modes other than Normal and Solid renders the entity without lightmaps, making things like glass appear unnaturally fullbright. VHLT's
zhlt_embedlightmap
custom keyvalue can be used to bake the lightmaps onto the individual face's textures for more realistic appearance, at the cost of increased map file size.
- Render Modes other than Normal apply glass hit decals when hit with bullets or the crowbar. On Solid mode, decals are not rendered.
- Scrolling textures (prefixed with
SCROLL
): the FX Color attribute encodes the scroll speed of the scrolling textures as if the entity is a func_conveyor
entity, with the added benefit of preserving the animated texture switching function (vs. func_conveyor
reversing direction on trigger). See the notes on func_conveyor
's page for the formula. The default value of 0 0 0
is the same as 0 speed. You can even use env_render
to change the scroll speed.
- Small / complex objects: Brush entities don't break up world brushes (which can cause harsh transitions between light and dark, and performance decreases), so binding small stuff (light fittings, pipe flanges etc.) to
func_wall
entities often results in less world polygons. Note that Vluzacn's func_detail
offers more control in this regard, and doesn't count towards the in-game entity limit, so it's often a better choice. The choice between func_wall
and func_detail
falls between using more brush models (max. 512) with func_wall
and using more world leaves (max. 8196) with func_detail
, and in extreme cases, you need to balance the two.
- A
func_wall
blocks bullets. To create a piece of geometry that can be shot through, use a func_illusionary
, with CLIP brushes to add back player collision.
See Also
- Tutorial: Render Properties - A comprehensive guide on the various render modes and effects you can apply to entities, for which
func_walls
are one of the primary targets with regards to static world geometry.
func_wall
's style to-3
light
's custom pattern if needed, and whether it will be initially darkBut now that VHLT has light_surface, just use that instead.