Tool textures (GoldSrc): Difference between revisions
Speedvoltage (talk | contribs) m (Translucent does not remove clipnodes. Any texture can be made translucent if their texture name is prepended with @ sign.) |
SirYodaJedi (talk | contribs) (→HLBASICS.WAD: already clear) |
||
| (16 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
{{gldsrc topicon}} | |||
{{TabsBar|main=Tool textures}} | |||
[[Tool textures]] are used, mostly by the tools but sometimes by the engine, to perform special tasks. | |||
{{ | {{Stub}} | ||
{{tip|Most mappers should use {{mono|[[#ZHLT.WAD|ZHLT.WAD]]}}, as it contains all necessary tool textures used by [[ZHLT]], [[VHLT]], and derivatives.}} | {{tip|Most mappers should use {{mono|[[#ZHLT.WAD|ZHLT.WAD]]}}, as it contains all necessary tool textures used by [[ZHLT]], [[VHLT]], and derivatives.}} | ||
{{ModernImportant|Most of the tool textures should not be mixed with regular textures. Main exceptions to this rule are NULL, NOCLIP, and SOLIDHINT. Additionally, tool textures should not be mixed with other tool textures. Main exceptions to this rule are hint with skip, and BLACK_HIDDEN with skip.}} | {{ModernImportant|Most of the tool textures should not be mixed with regular textures, unless you know '''exactly''' what you're doing. Main exceptions to this rule are NULL, NOCLIP, and SOLIDHINT. | ||
{{note|Other combinations are possible, but should be used with caution to avoid unexpected results. For example, texturing a regular brush CLIP face will allow bullets to be shot through the brush, while still preventing the brush from being walked through.}} | |||
Additionally, tool textures should not be mixed with other tool textures. Main exceptions to this rule are hint with skip, and BLACK_HIDDEN with skip.}} | |||
== HALFLIFE.WAD == | == HALFLIFE.WAD == | ||
{| class="standard-table" width="100%" | {| class="standard-table" width="100%" | ||
| Line 15: | Line 19: | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-curlyBLUE.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-curlyBLUE.png|64px]] | ||
| align="center" | {{Code| {BLUE }} | | align="center" | {{Code| {BLUE }} | ||
| An invisible brush face if attached to {{Ent|func_wall}} or similar brush entity with rendermode solid. {{ | | An invisible brush face if attached to {{Ent|func_wall}} or similar brush entity with rendermode solid. {{warning|Faces using this texture are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-curlyINVISIBLE.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-curlyINVISIBLE.png|64px]] | ||
| Line 27: | Line 31: | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-BLACK.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-BLACK.png|64px]] | ||
| align="center" | {{Code| BLACK }} | | align="center" | {{Code| BLACK }} | ||
| A plain black texture for unlit areas, such as the bottom of deep pits. {{ | | A plain black texture for unlit areas, such as the bottom of deep pits. {{warning|Faces using this texture are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} (if part of brush entity) or increase texture scale to {{code|4.0}} to avoid wasting allocblock.}} {{tip|If the map does not have a skybox, it sometimes is also possible (depending upon map layout) to use the SKY texture and set BLACK in the map properties for the sky texture, saving allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-CLIP.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-CLIP.png|64px]] | ||
| Line 40: | Line 44: | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-SKY.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-SKY.png|64px]] | ||
| align="center" | {{Code| SKY }} | | align="center" | {{Code| SKY }} | ||
| Used for displaying the [[Skybox (2D)|skybox]]. {{ | | Used for displaying the [[Skybox (2D)|skybox]]. {{bug|hidetested=1|[[VHLT]] expects the {{Code|sky}} tool texture to be lowercase and will not compile skies correctly if the tool texture does not fit these critera.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-TRANSLUCENT.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-TRANSLUCENT.png|64px]] | ||
| align="center" | {{Code| TRANSLUCENT }} | | align="center" | {{Code| TRANSLUCENT }} | ||
| Mirrors the brush faces inside out (more precisely, it renders the backface the same way func_water does). It is different from CONTENTWATER in the sense that translucent '''cannot''' be tied to any entity whatsoever and '''cannot''' use more than 1 texture on all of its faces without the compiler logging an error and stopping the process. Additionally, it is visible in the world, but not solid, whereas CONTENTWATER is invisible. Walking into a brush with such texture will cause a HOM effect. Finally, translucent will block VIS. | | Blocks VIS, but not the player. | ||
{{note|Mirrors the brush faces inside out (more precisely, it renders the backface the same way func_water does). It is different from CONTENTWATER in the sense that translucent '''cannot''' be tied to any entity whatsoever and '''cannot''' use more than 1 texture on all of its faces without the compiler logging an error and stopping the process. Additionally, it is visible in the world, but not solid, whereas CONTENTWATER is invisible. Walking into a brush with such texture will cause a HOM effect. Finally, translucent will block VIS. {{tip|Any texture can be given this effect. Prepend the texture name with {{code|@}} (e.g {{mono|@curtains}}).}} }} | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-WHITE.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-WHITE.png|64px]] | ||
| Line 52: | Line 57: | ||
== HLBASICS.WAD == | == HLBASICS.WAD == | ||
{{Code|HLBASICS.WAD}} is found in {{cscz|4}} and {{dod|4}}, and is used to avoid needing to load {{Code|HALFLIFE.WAD}} for maps that don't use base {{hl|3.1}} textures. | {{Code|HLBASICS.WAD}} is found in {{cscz|4}} and {{dod|4}}, and is used to avoid needing to load {{Code|HALFLIFE.WAD}} for maps that don't use base {{hl|3.1}} textures. Some of these are also in {{czds|4}}, via {{Code|RITUAL_STANDARD.WAD}}, as well as in {{cscz|4}}, via {{Code|CZRITUAL_STANDARD.WAD}}. | ||
{| class="standard-table" width="100%" | {| class="standard-table" width="100%" | ||
| Line 62: | Line 67: | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-curlyblue.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-curlyblue.png|64px]] | ||
| align="center" | {blue | | align="center" | {blue | ||
| An invisible brush face if attached to {{Ent|func_wall}} or similar brush entity with rendermode solid. {{ | | An invisible brush face if attached to {{Ent|func_wall}} or similar brush entity with rendermode solid. {{warning|Faces using this texture are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_1.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_1.png|64px]] | ||
| Line 75: | Line 80: | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_hurt.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_hurt.png|64px]] | ||
| align="center" | aaa_hurt | | align="center" | aaa_hurt | ||
| Used for mapping organization purposes. Useful if the map is shared between multiple level designers. | | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_hurt. | ||
{{warning|Using any texture other than AAATRIGGER or NULL on a trigger entity will result in lightmaps being created for the entity! Use VHLT's {{code|-nullfile}} flag to automatically retexture applicable entites to NULL in HLCSG{{how}}, or add the {{ent|zhlt_invisible}} KV and set it to 1 (this can be set as default for applicable FGD entries).}} | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_multi.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_multi.png|64px]] | ||
| align="center" | aaa_multi | | align="center" | aaa_multi | ||
| Used for mapping organization purposes. Useful if the map is shared between multiple level designers. | | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_multiple. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_once.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_once.png|64px]] | ||
| align="center" | aaa_once | | align="center" | aaa_once | ||
| Used for mapping organization purposes. Useful if the map is shared between multiple level designers. | | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_once. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_push.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_push.png|64px]] | ||
| align="center" | aaa_push | | align="center" | aaa_push | ||
| Used for mapping organization purposes. Useful if the map is shared between multiple level designers. | | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_push. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_push2.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-aaa_push2.png|64px]] | ||
| Line 94: | Line 100: | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-AAATRIGGER.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-AAATRIGGER.png|64px]] | ||
| align="center" | AAATRIGGER | | align="center" | AAATRIGGER | ||
| Used for [[ | | Used for [[trigger]] brush entities. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-clip.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-clip.png|64px]] | ||
| Line 102: | Line 108: | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-cr_matleaf.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-cr_matleaf.png|64px]] | ||
| align="center" | cr_matleaf | | align="center" | cr_matleaf | ||
| {{dod}} Makes leaf sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush for leafy props. {{ | | {{dod}} Makes leaf sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{code|rendermode}} set to solid and {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush and shadow caster for leafy props. {{warning|Invisible faces are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-cr_matmetal.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-cr_matmetal.png|64px]] | ||
| align="center" | cr_matmetal | | align="center" | cr_matmetal | ||
| {{cscz}}{{czds}}{{dod}} Makes metal sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush for metalic props. {{ | | {{cscz}}{{czds}}{{dod}} Makes metal sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{code|rendermode}} set to solid and {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush and shadow caster for metalic props. {{warning|Invisible faces are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-hint.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO+DOD hlbasics-hint.png|64px]] | ||
| Line 137: | Line 143: | ||
| align="center" style="user-select:none" | [[File:CZERO hlbasics-black.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO hlbasics-black.png|64px]] | ||
| align="center" | black | | align="center" | black | ||
| A plain black texture for unlit areas, such as the bottom of deep pits. {{ | | A plain black texture for unlit areas, such as the bottom of deep pits. {{warning|Faces using this texture are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO hlbasics-cr_matbark.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO hlbasics-cr_matbark.png|64px]] | ||
| align="center" | cr_matbark | | align="center" | cr_matbark | ||
| {{cscz}} Makes wood sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush for | | {{cscz}} Makes wood sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{code|rendermode}} set to solid and {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush and shadow caster for wooden props. {{warning|Invisible faces are still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:CZERO hlbasics-cr_matcard.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO hlbasics-cr_matcard.png|64px]] | ||
| Line 160: | Line 166: | ||
| align="center" style="user-select:none" | [[File:CZERO hlbasics-skycull.png|64px]] | | align="center" style="user-select:none" | [[File:CZERO hlbasics-skycull.png|64px]] | ||
| align="center" | skycull | | align="center" | skycull | ||
| | | Functions like {{code|sky}}. | ||
In {{czds|4}}, any exterior faces of skybox brushes must be textured with skycull for {{ent|env_rain (GoldSrc)|alt=env_rain}} and {{ent|env_snow (GoldSrc)|alt=env_snow}} to work properly. | |||
|} | |} | ||
| Line 172: | Line 179: | ||
| align="center" style="user-select:none" | [[File:DOD hlbasics-cr_mathvymetal.png|64px]] | | align="center" style="user-select:none" | [[File:DOD hlbasics-cr_mathvymetal.png|64px]] | ||
| align="center" | cr_mathvymetal | | align="center" | cr_mathvymetal | ||
| {{dod}} Identical to CR_MATMETAL. {{ | | {{dod}} Identical to CR_MATMETAL. {{bug|hidetested=1|Likely intended to be used for "Heavy Metal" material, available in DoD's {{Path|sound/materials|txt}}, but not used by this texture. Use IR_PIPEM8 instead.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:DOD hlbasics-cr_matsand.png|64px]] | | align="center" style="user-select:none" | [[File:DOD hlbasics-cr_matsand.png|64px]] | ||
| align="center" | cr_matsand | | align="center" | cr_matsand | ||
| {{dod}} Makes sand sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush for | | {{dod}} Makes sand sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{code|rendermode}} set to solid and {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush and shadow caster for sandy props, such as sandbags. {{warning|Invisible faces still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:DOD hlbasics-cr_matwood.png|64px]] | | align="center" style="user-select:none" | [[File:DOD hlbasics-cr_matwood.png|64px]] | ||
| align="center" | cr_matwood | | align="center" | cr_matwood | ||
| {{dod}} Makes wood sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush for | | {{dod}} Makes wood sounds when walked on, if present in {{Path|sound/materials|txt}}. Tie to a {{Ent|func_wall}} with {{code|rendermode}} set to solid and {{Code|renderamt}} set to {{Code|0}} (aka invisible) to use as a clip brush and shadow caster for wooden props. {{warning|Invisible faces still have lightmap a created for them, despite not being noticeable. Use {{code|zhlt_striprad}} to avoid wasting allocblock.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:DOD hlbasics-NULL.png|64px]] | | align="center" style="user-select:none" | [[File:DOD hlbasics-NULL.png|64px]] | ||
| Line 198: | Line 205: | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-AAATRIGGER.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-AAATRIGGER.png|64px]] | ||
| align="center" | {{Code| AAATRIGGER }} | | align="center" | {{Code| AAATRIGGER }} | ||
| Used for [[ | | Used for [[trigger]] brush entities. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-BEVEL.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-BEVEL.png|64px]] | ||
| Line 206: | Line 213: | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-BLACK.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-BLACK.png|64px]] | ||
| align="center" | {{Code| Black_HIDDEN }} | | align="center" | {{Code| Black_HIDDEN }} | ||
| | | Similar to {{Code|NULL}}, but has a lightmap. This texture is used to correct lightmap errors. Models get their lighting information from the lightmaps of world geometry directly below them. However, lightmaps from brush entities (like func_wall) are ignored, thereby causing the model to update its lighting information multiple times when transitioning from world geometry to brush entities (therefore taking the lightmap from world geometry below that brush entity) and vice versa (see the two zombies in Unforeseen Consequences crossing a set of grates on the floor). Additionally, light_environment overrides lightmaps completely, meaning that models will not update their lighting information properly between areas. While this is fine for models that stay within one lightmap, like an Osprey, for every other models that transition between light and dark areas, their lighting information doesn't get updated. BLACK_HIDDEN can fix lighting on those models when placed strategically, thereby eliminating incorrect updates of lighting information of models. {{ModernImportant|Proper usage of this texture is important. Set this texture to only the top face of the brush and all the other sides to skip. Tie this to a func_detail and set {{mono|zhlt_noclip}} to {{mono|1}}.}} {{bug|hidetested=1|This texture is rendered in {{sc|4}}.}} | ||
{{tip|Any texture with the suffix {{code|_HIDDEN}} will behave in this manner.}} | |||
{{note|The map must be VISed and {{cmd|r_novis}} must be disabled for this texture to be invisible.}} | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-BOUNDINGBOX.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-BOUNDINGBOX.png|64px]] | ||
| Line 231: | Line 240: | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-CLIPHULL2.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-CLIPHULL2.png|64px]] | ||
| align="center" | {{Code| CLIPHULL2 }} | | align="center" | {{Code| CLIPHULL2 }} | ||
| Like {{Code|CLIP}}, but only affects | | Like {{Code|CLIP}}, but only affects large entities (including bullsquids).<br>Use to create collision for these entities when using {{code|[[HLBSP|-nohull2]]}}. | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-CLIPHULL3.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-CLIPHULL3.png|64px]] | ||
| Line 239: | Line 248: | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-CONTENTEMPTY.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-CONTENTEMPTY.png|64px]] | ||
| align="center" | {{Code| CONTENTEMPTY }} | | align="center" | {{Code| CONTENTEMPTY }} | ||
| Removes collision from a brush and marks it as an empty volume. | | Nodraw texture which forces a brush's contents to Empty. | ||
Removes collision from a brush and marks it as an empty volume. | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-CONTENTWATER.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-CONTENTWATER.png|64px]] | ||
| align="center" | {{Code| CONTENTWATER }} | | align="center" | {{Code| CONTENTWATER }} | ||
| | | Nodraw texture which forces a brush's contents to Water. | ||
Disables backface culling on all other faces of the brush. Usually used to simulate volumetric lighting. | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-HINT.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-HINT.png|64px]] | ||
| Line 251: | Line 262: | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-NOCLIP.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-NOCLIP.png|64px]] | ||
| align="center" | {{Code| NOCLIP }} | | align="center" | {{Code| NOCLIP }} | ||
| Not drawn in game, and disables collision for all faces on the brush. | | Not drawn in game, and disables hull 1-3 collision for all faces on the brush. May also be titled {{code|NULLNOCLIP}}. | ||
Unlike CONTENTEMPTY, noclip is still solid to pointhull traces, such as hitscan bullets. | |||
|- | |- | ||
| align="center" style="user-select:none" | [[File:DOD hlbasics-NULL.png|64px]] | | align="center" style="user-select:none" | [[File:DOD hlbasics-NULL.png|64px]] | ||
| Line 259: | Line 271: | ||
{{Note|While no lightmap data is generated on NULL faces, NULL brushes still cast shadows, unless tied to a {{Ent|func_wall}}.}} | {{Note|While no lightmap data is generated on NULL faces, NULL brushes still cast shadows, unless tied to a {{Ent|func_wall}}.}} | ||
{{ | {{tip|Despite common misconception, it is not necessary to use NULL on faces that don't touch [[visleaves]], as these are automatically removed by HLCSG. This means faces that are outside the map and faces that are flush with another one.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-ORIGIN.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-ORIGIN.png|64px]] | ||
| Line 268: | Line 280: | ||
| align="center" | {{Code| SKIP }} | | align="center" | {{Code| SKIP }} | ||
|Tells the compiler to completely skip this face. | |Tells the compiler to completely skip this face. | ||
{{ | {{modernImportant|It is different from NULL! Skip does '''not''' seal the world and is non solid. Null still creates a plane and is solid in the world.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:HalflifeWad-SKY.png|64px]] | | align="center" style="user-select:none" | [[File:HalflifeWad-SKY.png|64px]] | ||
| Line 274: | Line 286: | ||
| Used for displaying the [[Skybox (2D)|skybox]]. | | Used for displaying the [[Skybox (2D)|skybox]]. | ||
{{ | {{bug|hidetested=1|[[VHLT]] expects the {{Code|sky}} tool texture to be lowercase and will not compile skies correctly if the tool texture does not fit these critera.}} | ||
|- | |- | ||
| align="center" style="user-select:none" | [[File:ZHLTwad-SOLIDHINT.png|64px]] | | align="center" style="user-select:none" | [[File:ZHLTwad-SOLIDHINT.png|64px]] | ||
| Line 292: | Line 304: | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_0}} | | align="center" | {{Code|!cur_0}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on +X (going east). Always fullbright. | ||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_90}} | | align="center" | {{Code|!cur_90}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on +Y (going north). Always fullbright. | ||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_180}} | | align="center" | {{Code|!cur_180}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on -X (going west). Always fullbright. | ||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_270}} | | align="center" | {{Code|!cur_270}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on -Y (going south). Always fullbright. | ||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_dwn}} | | align="center" | {{Code|!cur_dwn}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on -Z (going down). Always fullbright. | ||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| align="center" | {{Code|!cur_up}} | | align="center" | {{Code|!cur_up}} | ||
| | | Water which acts like a func_pushable with a speed of 2048 units on +Z (going up). Always fullbright. | ||
|- | |||
| align="center" | N/A | |||
| align="center" | {{Code|CONTENTSOLID}} | |||
| Nodraw texture which forces a brush's contents to Solid. | |||
|- | |||
| align="center" | N/A | |||
| align="center" | {{Code|CONTENTSKY}} | |||
| Nodraw texture which forces a brush's contents to Sky. | |||
|- | |- | ||
| align="center" | N/A | | align="center" | N/A | ||
| Line 318: | Line 338: | ||
| Brushes with this texture will subdivide faces they touch. It can be used to eliminate bad lighting caused by opaque entities. | | Brushes with this texture will subdivide faces they touch. It can be used to eliminate bad lighting caused by opaque entities. | ||
|} | |} | ||
{{note|The {{code|!cur_*}} textures also work on the original compilers, and can be used as [[texture prefixes|prefixes]].}} | |||
== External links == | == External links == | ||
* {{twhl|category:Tool_Textures|Tool Textures category on TWHL Wiki}} | * {{twhl|category:Tool_Textures|Tool Textures category on TWHL Wiki}} | ||
[[Category:GoldSrc]] | [[Category:GoldSrc]] | ||
[[Category: Level Design]] | [[Category:Level Design]] | ||
[[Category:GoldSrc Textures]] | |||
[[Category:GoldSrc Glossary]] | |||
Latest revision as of 07:06, 16 November 2025
Tool textures are used, mostly by the tools but sometimes by the engine, to perform special tasks.
HALFLIFE.WAD
| Image | Name | Usage / Notes |
|---|---|---|
|
{BLUE
|
An invisible brush face if attached to func_wall or similar brush entity with rendermode solid. zhlt_striprad to avoid wasting allocblock. |
|
{INVISIBLE
|
Functions same as {BLUE.
|
AAATRIGGER
|
Used for trigger brush entities. XENO.WAD uses a cropped image of Gabe Newell's face instead. | |
|
BLACK
|
A plain black texture for unlit areas, such as the bottom of deep pits. zhlt_striprad (if part of brush entity) or increase texture scale to 4.0 to avoid wasting allocblock. |
CLIP
|
See Clip texture | |
ORIGIN
|
Treated as the origin point for rotating entities, such as func_door_rotating. | |
|
SKY
|
Used for displaying the skybox. sky tool texture to be lowercase and will not compile skies correctly if the tool texture does not fit these critera. |
|
TRANSLUCENT
|
Blocks VIS, but not the player.
@ (e.g @curtains). |
|
WHITE
|
Mainly used as texture light (texture that casts lighting). |
HLBASICS.WAD
HLBASICS.WAD is found in
Counter-Strike: Condition Zero and
Day of Defeat, and is used to avoid needing to load HALFLIFE.WAD for maps that don't use base Half-Life textures. Some of these are also in
Condition Zero Deleted Scenes, via RITUAL_STANDARD.WAD, as well as in
Counter-Strike: Condition Zero, via CZRITUAL_STANDARD.WAD.
| Image | Name | Usage / Notes |
|---|---|---|
|
{blue | An invisible brush face if attached to func_wall or similar brush entity with rendermode solid. zhlt_striprad to avoid wasting allocblock. |
|
aaa_1 | |
|
aaa_2 | |
|
aaa_3 | |
|
aaa_hurt | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_hurt.
-nullfile flag to automatically retexture applicable entites to NULL in HLCSG[How?], or add the zhlt_invisible KV and set it to 1 (this can be set as default for applicable FGD entries). |
|
aaa_multi | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_multiple. |
|
aaa_once | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_once. |
|
aaa_push | Used for mapping organization purposes. Useful if the map is shared between multiple level designers. Designed to be used with trigger_push. |
|
aaa_push2 | |
| AAATRIGGER | Used for trigger brush entities. | |
| clip | See Clip texture. | |
| cr_matleaf | sound/materials.txt. Tie to a func_wall with rendermode set to solid and renderamt set to 0 (aka invisible) to use as a clip brush and shadow caster for leafy props. zhlt_striprad to avoid wasting allocblock. | |
| cr_matmetal | sound/materials.txt. Tie to a func_wall with rendermode set to solid and renderamt set to 0 (aka invisible) to use as a clip brush and shadow caster for metalic props. zhlt_striprad to avoid wasting allocblock. | |
|
hint | |
| ORIGIN | Treated as the origin point for rotating entities, such as func_door_rotating. | |
| SKIP | ||
|
sky | Used for displaying the skybox. |
Condition Zero only
| Image | Name | Usage / Notes |
|---|---|---|
| bark | No special purpose; use cr_matbark instead. | |
|
black | A plain black texture for unlit areas, such as the bottom of deep pits. zhlt_striprad to avoid wasting allocblock. |
| cr_matbark | sound/materials.txt. Tie to a func_wall with rendermode set to solid and renderamt set to 0 (aka invisible) to use as a clip brush and shadow caster for wooden props. zhlt_striprad to avoid wasting allocblock. | |
| cr_matcard | Unused, likely intended for non-existent "cardboard" material. | |
| cull | No purpose; likely used by unreleased in-house compilers. | |
| leaf | ||
| loc | No purpose; likely used by unreleased in-house compilers. | |
|
skycull | Functions like sky.
In |
Day of Defeat only
| Image | Name | Usage / Notes |
|---|---|---|
| cr_mathvymetal | sound/materials.txt, but not used by this texture. Use IR_PIPEM8 instead. | |
| cr_matsand | sound/materials.txt. Tie to a func_wall with rendermode set to solid and renderamt set to 0 (aka invisible) to use as a clip brush and shadow caster for sandy props, such as sandbags. zhlt_striprad to avoid wasting allocblock. | |
| cr_matwood | sound/materials.txt. Tie to a func_wall with rendermode set to solid and renderamt set to 0 (aka invisible) to use as a clip brush and shadow caster for wooden props. zhlt_striprad to avoid wasting allocblock. | |
| NULL | Identical to ZHLT's NULL texture. |
ZHLT.WAD
ZHLT.WAD is used for the additional features provided by the ZHLT and VHLT compilers. It does not come with any vanilla first-party
GoldSrc title, but instead comes with ZHLT/VHLT.
| Image | Name | Usage / Notes |
|---|---|---|
AAATRIGGER
|
Used for trigger brush entities. | |
|
BEVEL
|
Fixes clipping errors caused by uneven terrain or brushes. This texture is experimental and is essentially replaced by the CSG parameter -cliptype precise. |
|
Black_HIDDEN
|
Similar to NULL, but has a lightmap. This texture is used to correct lightmap errors. Models get their lighting information from the lightmaps of world geometry directly below them. However, lightmaps from brush entities (like func_wall) are ignored, thereby causing the model to update its lighting information multiple times when transitioning from world geometry to brush entities (therefore taking the lightmap from world geometry below that brush entity) and vice versa (see the two zombies in Unforeseen Consequences crossing a set of grates on the floor). Additionally, light_environment overrides lightmaps completely, meaning that models will not update their lighting information properly between areas. While this is fine for models that stay within one lightmap, like an Osprey, for every other models that transition between light and dark areas, their lighting information doesn't get updated. BLACK_HIDDEN can fix lighting on those models when placed strategically, thereby eliminating incorrect updates of lighting information of models. _HIDDEN will behave in this manner.r_novis must be disabled for this texture to be invisible. |
|
BOUNDINGBOX
|
Creates a bounding box around an object, thereby replacing an existing one, or creating one that doesn't exist. |
CLIP
|
See Clip texture.
zhlt_noclip set to 1 and a clip brush surrounding the brush. | |
|
CLIPBEVEL
|
Acts like BEVEL but for clipnodes. |
|
CLIPBEVELBRUSH
|
Acts like CLIPBEVEL, but affects every single face. |
|
CLIPHULL1
|
Like CLIP, but only affects standing-up players and regular-sized NPCs.
|
|
CLIPHULL2
|
Like CLIP, but only affects large entities (including bullsquids).Use to create collision for these entities when using -nohull2.
|
|
CLIPHULL3
|
Like CLIP, but only affects crouching players.
|
|
CONTENTEMPTY
|
Nodraw texture which forces a brush's contents to Empty.
Removes collision from a brush and marks it as an empty volume. |
|
CONTENTWATER
|
Nodraw texture which forces a brush's contents to Water.
Disables backface culling on all other faces of the brush. Usually used to simulate volumetric lighting. |
HINT
|
Splits a visleaf. Applied to one or two faces. Used in combination with skip. | |
|
NOCLIP
|
Not drawn in game, and disables hull 1-3 collision for all faces on the brush. May also be titled NULLNOCLIP.
Unlike CONTENTEMPTY, noclip is still solid to pointhull traces, such as hitscan bullets. |
NULL
|
Not drawn in game, seals leaks, and is skipped by HLRAD. Blocks visibility if used on all surfaces of the same brush. Optimally, every face that can't be seen during normal gameplay should have this texture.
| |
ORIGIN
|
Treated as the origin point for rotating entities, such as func_door_rotating. | |
SKIP
|
Tells the compiler to completely skip this face.
| |
|
sky
|
Used for displaying the skybox.
sky tool texture to be lowercase and will not compile skies correctly if the tool texture does not fit these critera. |
SOLIDHINT
|
SOLIDHINT can be used to fix faces getting split by the visibility engine (can be seen with gl_wireframe 2) due to uneven, rotated or more generally, complex brushwork that is not nicely square. Usually useful on terrain where a lot of vertex manipulation happens. Apply SOLIDHINT to the unseen part of the brush, where NULL would normally go. |
Missing ZHLT tool textures
ZHLT supports some additional tool textures that aren't found in ZHLT.WAD or any official WAD file.
| Image | Name | Usage / Notes |
|---|---|---|
| N/A | !cur_0
|
Water which acts like a func_pushable with a speed of 2048 units on +X (going east). Always fullbright. |
| N/A | !cur_90
|
Water which acts like a func_pushable with a speed of 2048 units on +Y (going north). Always fullbright. |
| N/A | !cur_180
|
Water which acts like a func_pushable with a speed of 2048 units on -X (going west). Always fullbright. |
| N/A | !cur_270
|
Water which acts like a func_pushable with a speed of 2048 units on -Y (going south). Always fullbright. |
| N/A | !cur_dwn
|
Water which acts like a func_pushable with a speed of 2048 units on -Z (going down). Always fullbright. |
| N/A | !cur_up
|
Water which acts like a func_pushable with a speed of 2048 units on +Z (going up). Always fullbright. |
| N/A | CONTENTSOLID
|
Nodraw texture which forces a brush's contents to Solid. |
| N/A | CONTENTSKY
|
Nodraw texture which forces a brush's contents to Sky. |
| N/A | SPLITFACE
|
Brushes with this texture will subdivide faces they touch. It can be used to eliminate bad lighting caused by opaque entities. |
!cur_* textures also work on the original compilers, and can be used as prefixes.



























