This article's documentation is for the "GoldSrc" engine. Click here for more information.

Texture prefixes

From Valve Developer Community
Jump to navigation Jump to search

WAD textures do not have any metadata for special textures. Instead, the first few characters in the texture's name are used to dictate what the texture is used for.

Prefix Texture type Description
{ Alphatest Texels using the last index in the palette (index 255) will be treated as pure black with an alpha channel value of zero. If tied to an entity with a rendermode other than 0, said texels will be transparent.
! Liquid (water) A liquid, usually water. The face will be drawn with ripples in the software renderer or waves in the OpenGL renderer. If part of worldspawn, it will be swimmable. If tied to an entity, only the top face will be drawn.

Palette index 3 is used to control fog color, and the red value of palette index 4 is used to control fog thickness (with 255 being maximum fog).

Icon-Bug.pngBug:Liquids are always fullbright in the vanilla renders, but most compilers still generate lightmaps for them anyway, due to expecting Quake Quake's prefix of * instead. This will not affect the engine's allocblock limit, as they aren't actually loaded[confirm].
Tip.pngTip:If there is a significant amount of water in a map, the BSP size can be reduced by flagging the water surfaces as "special" in newbspguy newbspguy, then recompiling RAD. Alternatively, use ericw-tools and add _splitturb 0 to worldspawn. For func_water, VHLT's zhlt_striprad can be used.
!slime Slime Like water, deals damage to the player and some monsters when touched (if part of worldspawn).
!lava Lava Like slime, but deals double the damage (if part of worldspawn).
!cur_0 0° current Acts like water combined with a trigger_push with a speed of 2048 in the given direction (if part of worldspawn).
!cur_90 90° current
!cur_180 180° current
!cur_270 270° current
!cur_up Upwards current
!cur_dwn Downwards current
+0 to +9 Animated/Toggled Plays all textures in this set in sequence (at roughly 10 FPS). If tied to certain entities, such as func_wall or func_button, the sequence will toggle between numeric and alphabetic when the entity is targeted.
+A to +J
-0 to -9 Random tiling Each time the map loads, the engine will randomly assign one of the textures in this set to each appropriate surface. In software mode, the texture changes at the edges of the texture, whereas in OpenGL mode, the texture changes at the edges of the geometry it sits on.
Tip.pngTip:This feature does not work well on surfaces which are not 240x240 texel quads. Consider combining the variations into a larger megatexture instead.
@ Nonsolid visblocker Non-solid, but still blocks VIS. Does not have backface culling.
scroll Scrolling Scrolls horizontally based upon func_conveyor speed or other entities' rendercolor
sky Sky Not drawn in-game, but tells the engine to render the skybox behind all geometry in the current PVS.
Icon-Bug.pngBug:In OpenGL mode's non-multitextured renderer, rendering bugs occur when using multiple sky textures.
xeno_grapple_ Half-Life: Opposing Force Grapple point Textures with this prefix can be hooked onto with Half-Life: Opposing Force weapon_grapple
~ Self-illuminated (has fullbrights)
Obsolete-notext.pngDeprecated:Support removed before release; only functional in Half-Life Alpha 0.52's software renderer. Nonetheless, many of the vanilla base game textures are still properly formatted for this feature.

The last 32 colors in the palette are supposed to always be rendered at full brightness, regardless of lightmap brightness and rendermode.
Unlike other prefixes, this prefix can be used in conjunction with the animated/toggled texture prefix (ex +0~).

__rad Generated by HLRAD Textures generated for brush entities using VHLT's zhlt_embedlightmap feature are given this prefix.

See also