Tool textures (Source): Difference between revisions
(→Clips — Common: listed func_clip_vphysics, even though its technically a brush entity.) |
(Reworded areaportal, occluder. Simplified skip, clip. playerclip is ignored by nav generation. func_clip_vphysics is especially useful for weapons. blockbullets can be used for regocnizability, seen on csgo's de_vertigo heli.) |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 82: | Line 82: | ||
| {{Yes|Yes <br> (No Marks)}} | | {{Yes|Yes <br> (No Marks)}} | ||
| {{Warning|This tool texture is actually just a solid invisible wall in every way shape and form. It does absolutely nothing useful.<br>See [[Blockbullets]] for info on how to actually block bullets and projectiles.}} | | {{Warning|This tool texture is actually just a solid invisible wall in every way shape and form. It does absolutely nothing useful.<br>See [[Blockbullets]] for info on how to actually block bullets and projectiles.}} | ||
{{csgo}} Use | {{csgo}} Use <code>blockbullets_cs</code> variant, which correctly stops bullets even with 1 unit thickness.<br> | ||
This texture can be used on invisible shooting targets acting as triggers, so that such brushes are recognizable at a glance in the editor. This can be a {{ent|func_button}} covering (a part of) a prop that fires outputs when shot. | |||
|- id="invisible" | |- id="invisible" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolsinvisible.gif|64px]] <br> toolsinvisible | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolsinvisible.gif|64px]] <br> toolsinvisible | ||
| Line 331: | Line 332: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| | | | ||
{{Important|This texture alone does not bring areaportal functionalities to a brush. It must be tied to {{Ent|func_areaportal}} or {{Ent|func_areaportalwindow}}.}} | |||
This texture is intended to be used on [[areaportal]] entities. They typically fill up door frames or window frames to split the map's world brushes into "rooms" to optimize the rendering.<br>Alternatively, this texture could also be used with other brush entities, such as some triggers, but this is not recommended. | |||
|- id="hint" | |- id="hint" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolshint.gif|64px]] <br> [[Hint brush|toolshint]] | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolshint.gif|64px]] <br> [[Hint brush|toolshint]] | ||
| Line 353: | Line 356: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| Has no effect on anything | | Has no effect on anything Skip faces are removed during compile, so a brush textured with Skip won't prevent leaks. | ||
Useful in combination with Hint tool textures | Useful in combination with Hint tool textures to prevent the other sides from cutting VIS, and as a tool in Hammer for grouping, moving and place-holding objects. | ||
{{ | {{note|{{css}} Solid to the [[weapon_c4|bomb]]. This can be exploited by a mapper to prevent the bomb from falling into a pit if planted too close to the edge.}} | ||
|- id="occluder" | |- id="occluder" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolsoccluder.gif|64px]] <br> [[Occluder|toolsoccluder]] | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolsoccluder.gif|64px]] <br> [[Occluder|toolsoccluder]] | ||
| Line 367: | Line 369: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| | | | ||
{{Important|This texture alone has no effect, except on <code>func_occluder</code> entities.}} | |||
This texture is intended to be used on {{ent|func_occluder}} entities and only on those very sides of it that should occlude. | |||
Unlike toolstrigger, toolsoccluder will correctly work when VBSP is compiled with {{code|-nodrawtriggers}}. | Unlike toolstrigger, toolsoccluder will correctly work when VBSP is compiled with {{code|-nodrawtriggers}}. | ||
|} | |} | ||
| Line 401: | Line 405: | ||
{{Source 2013}} Also solid to item pickups like ammo packs but not dropped weapons.<br> | {{Source 2013}} Also solid to item pickups like ammo packs but not dropped weapons.<br> | ||
{{css}}{{csgo}} Solid to dropped [[weapon_c4|C4]]. Solid to [[hostage_entity|hostages]] in {{css}}.<br> | {{css}}{{csgo}} Solid to dropped [[weapon_c4|C4]]. Solid to [[hostage_entity|hostages]] in {{css}}.<br> | ||
{{csgo}}{{Garry's Mod}} | {{csgo}}{{Garry's Mod}} There are clip textures with different {{cmd|$surfaceprop}}s to get footstep sounds right: Concrete, Dirt, Glass, Grass, Gravel, Metal, Metal Sand Barrel, Metal Grate, Metal Vehicle, Plastic, Rubber, Rubber Tire, Sand, Tile, Wood, Wood Basket, Wood Crate. There are workarounds for games that don't have these various clip materials. | ||
{{main|Clip texture}} | |||
|- id="npcclip" | |- id="npcclip" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolsnpcclip.gif|64px]] <br> toolsnpcclip | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolsnpcclip.gif|64px]] <br> toolsnpcclip | ||
| Line 428: | Line 431: | ||
{{Source 2013}} Also solid to item pickups like ammo packs but not dropped weapons.<br> | {{Source 2013}} Also solid to item pickups like ammo packs but not dropped weapons.<br> | ||
{{css}}{{csgo}} Solid to [[player]]s, [[bot]]s (!), and dropped [[weapon_c4|C4]]. Solid to [[hostage_entity|hostages]] in {{css}}.<br> | {{css}}{{csgo}} Solid to [[player]]s, [[bot]]s (!), and dropped [[weapon_c4|C4]]. Solid to [[hostage_entity|hostages]] in {{css}}.<br> | ||
{{l4dseries}} Solid to the survivors only. | {{l4dseries}} Solid to the survivors only. | ||
{{warning|Brushes with this texture are ignored by the [[Nav Mesh|nav mesh]] generation, which affects games with [[bot]]s. Use the red clip texture instead, especially to block out the level and to clip floors and props, otherwise the game is prone to generate areas that are unreachable, malformed or simply missing.}} | |||
|- id="playercont" | |- id="playercont" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolsplayercont.gif|64px]] <br> toolscontrolclip | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolsplayercont.gif|64px]] <br> toolscontrolclip | ||
| Line 444: | Line 448: | ||
|- id="func_clip_vphysics" | |- id="func_clip_vphysics" | ||
| style="text-align:center; font-family:monospace, monospace" | '''No Image''' <br> [[func_clip_vphysics]] | | style="text-align:center; font-family:monospace, monospace" | '''No Image''' <br> [[func_clip_vphysics]] | ||
| {{ | | {{N/A}} | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| Line 452: | Line 456: | ||
| {{Yes}} | | {{Yes}} | ||
| {{No}} | | {{No}} | ||
| | | The entity {{ent|func_clip_vphysics}} is technically not a tool texture. It clips only physical entities, for example weapons to prevent them from getting stuck or unreachable in complex geometry. Usually the <code>toolsnodraw</code> or <code>toolsclip</code> texture is used on it.<br>It has been listed here for completeness sake. | ||
|} | |} | ||
| Line 521: | Line 525: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes | Yes <br> (Marks)}} | | {{Yes | Yes <br> (Marks)}} | ||
| | | {{Deprecated}} Uses nonexistent [[material map compile flags|compile flag]] ([[%CompileFog]]) and therefore has no effect. | ||
However, you can use this for {{Ent|func_smokevolume}} instead of the Trigger texture, but NOT for {{Ent|func_dustcloud}}. | |||
|- id="skybox" | |- id="skybox" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Toolsskybox.png|64px]] <br> [[Skybox Basics|toolsskybox]] | | style="text-align:center; font-family:monospace, monospace" | [[File:Toolsskybox.png|64px]] <br> [[Skybox Basics|toolsskybox]] | ||
| Line 560: | Line 564: | ||
{{Confirm|Can it be fixed to function properly if its [[VMT]] settings are changed in the Source code and recompiled?}} | {{Confirm|Can it be fixed to function properly if its [[VMT]] settings are changed in the Source code and recompiled?}} | ||
|- id="fog volume" | |- id="fog volume" | ||
| style="text-align:center; font-family:monospace, monospace" | [[File:Fogvolume.jpg|64px]] <br> [[fog_volume| | | style="text-align:center; font-family:monospace, monospace" | [[File:Fogvolume.jpg|64px]] <br> [[fog_volume|fogvolume]] | ||
| {{Yes}} | | {{Yes}} | ||
| {{No}} | | {{No}} | ||
| Line 570: | Line 574: | ||
| {{No}} | | {{No}} | ||
| {{Left 4 Dead|since}} | | {{Left 4 Dead|since}} | ||
{{Warning| Must be use with {{Ent|env_fog_controller}} to function, as it has no special functions on its own.}} | |||
Used to change fog colors and densities in a level.<br> Fog inside its volume will not appear to have different attributes when viewed from outside its volume, as it globally changes the appearance of all fog across the map when entered. | |||
|} | |} | ||
Latest revision as of 21:38, 4 November 2025
Tool textures are used, mostly by the tools but sometimes by the engine, to perform special tasks. They can easily be found in
Hammer by using tools\ as a filter in the texture browser, but other tool textures may be located in different directory.
Anyone can make their very own tool texture, by utilizing available material map compile flags, such as %CompileNonSolid, %CompileDetail and %CompileNoDraw for a tool texture which is not solid, does not cut visleafs and is invisible.
A %tooltexture may also be set, which is only to be seen in Hammer's texture browser, while the $basetexture is seen in-game; however, the self made tool textures must be shipped with the map, else they might not work.
This page contains tool textures which can be found on any Source games (including description for third-party games which changes how the tool texture works or have different behavior). For third-party games specific tool textures, see third-party page.
dev/dev_windowportal in For example, ![]()
have Clip for both teams, Player Clip for survivors and NPC Clip for infected; however, it also has func_playerinfected_clip just for player controlled infected.
toolsinvisible, toolsinvisibleladder, and invismetal. Which are never seen and would be wasteful to create visleaves for them. You may want to add
%CompileDetail to the offending materials to prevent them from cutting visleaves. The modified VMT's do not need to be shared with the compiled map, as only vbsp uses these compile flags right when building the maps. But you do need to use custom folder (if available, preferred), or pack these up in a vpk file and load them into hammer by editing the gameinfo to load your vpk with modified files above all other folders and search paths.
toolsinvisibleladder, it alternatively is possible in some games to use %CompileClip (and optionally $translucent) instead of %CompileNoDraw and %CompilePassBullets, but only if tied to func_ladder (works in General
General — Common
These tool textures are available in every Source engine game.
Some of these textures have special function in some games. These special functions are noted by having the game's icon listed in the description (such as
,
, ![]()
,
, etc.).
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsblack |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
tools/toolsblack texture, not the LightmappedGeneric Halflife/Black texture.This texture is often used for brushes that are far away and they are dark. It cannot be lit by any type of light, but is affected by fog color. An example of its use is in the "space" backgrounds during the G-Man monologues in Uses UnlitGeneric in: |
toolswhite |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
(in all games since Identical to lights/white (which is available in all Source games), but doesn't cast any light by default. Using glass surfaceprop. |
toolsblockbullets |
No | No | Yes | No | Yes | Yes | Yes | Yes (No Marks) |
See Blockbullets for info on how to actually block bullets and projectiles.
|
toolsinvisible |
No | No | Yes | No | Yes | Yes | Yes | No | Solid to prop_physics, projectiles, players, & NPCs. Not solid to bullets.
|
toolsinvisibleladder |
No | No | Yes | No | Yes | Yes | Yes | No | Used for ladders in most multiplayer games except |
toolsnodraw |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
Not drawn in game, seals leaks, and is skipped by VRAD. 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. Todo: Insert this version into the list |
toolsorigin |
N/A | No | No | No | No | No | No | No | [ |
toolsblock_los |
No | No | No | Yes | No | No | No | No | Blocks the line of sight of NPCs and bots.mat_wireframe 1/2 will reveal that, while this texture doesn't block visleaves, it draws crossing polygons, and they alone are capable of preventing the engine from rendering enveloped brushwork. This can be worked around by turning the Block LOS–textured brush into a func_brush with its Solidity keyvalue set to a solid state. (A Block LOS func_brush can still be traversed in this state.)
|
toolsblocklight |
No | Yes | No | No | No | No | No | No | Casts shadows artificially. Only used at compile time by VRAD. Does not seal leaks. See more uses here. |
toolstrigger |
Yes | No | No | No | No | No | No | No | Used on triggers and on func_viscluster entities. Visible if used on an entity without EF_NODRAW. |
General — Game-specific
These tool textures are only available in specific Source engine games.
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsblack_cheap |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
in Black shader. |
toolsblack_nofog |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
Inherits various City17 %keywords from ToolsBlack. |
toolsblack_noportal |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
In |
toolsblack_noportal_nofog |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
in |
toolsblack_noportal_skybox |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
in $basetexture and contains keywords from $basetexture parameter doesn't have any effect on the Black shader, this hints that the material could have previously used the UnlitGeneric shader.
|
toolsnolight |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
|
toolsblockbullets2 |
No | No | No | No | Yes | Yes | Yes | Yes (No Marks) |
|
toolsnodraw_roof |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
|
toolsnodraw_wood |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
|
toolsnodraw_metal |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
|
toolsnodraw_portal |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
in |
Optimization
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsareaportal |
Yes | No | Yes | No | No | No | No | No |
This texture is intended to be used on areaportal entities. They typically fill up door frames or window frames to split the map's world brushes into "rooms" to optimize the rendering. |
toolshint |
No | No | Yes | No | No | No | No | No | Instructs VBSP to cut visleaves along this texture, but does nothing else. |
toolsskip |
No | No | No | No | No | No | No | No | Has no effect on anything Skip faces are removed during compile, so a brush textured with Skip won't prevent leaks.
Useful in combination with Hint tool textures to prevent the other sides from cutting VIS, and as a tool in Hammer for grouping, moving and place-holding objects. |
toolsoccluder |
Yes | No | No | No | No | No | No | No |
func_occluder entities.This texture is intended to be used on func_occluder entities and only on those very sides of it that should occlude.
Unlike toolstrigger, toolsoccluder will correctly work when VBSP is compiled with |
Clips
Clips — Common
These tool textures are available in every source engine game.
Some of these textures have special function in some games. These special functions are noted by having the game's icon listed in the description (such as
,
, ![]()
,
, etc).
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsclip |
No | No | No | No | Yes | Yes | No | No | Solid to players and NPCs but not other objects.
Main article: Clip texture
|
toolsnpcclip |
No | No | No | No | Yes | No | No | No | Solid to NPCs only. |
toolsplayerclip |
No | No | No | No | No | Yes | No | No | Solid to players only.
|
toolscontrolclip |
Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes (Marks) |
(removed since [ |
| No Image func_clip_vphysics |
N/A | No | No | No | No | No | Yes | No | The entity func_clip_vphysics is technically not a tool texture. It clips only physical entities, for example weapons to prevent them from getting stuck or unreachable in complex geometry. Usually the toolsnodraw or toolsclip texture is used on it.It has been listed here for completeness sake. |
Clips — Game-Specific
These tool textures are only available in specific Source engine games.
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsgrenadeclip |
No | No | No | No | No | No | Solid to Grenades | No | |
toolsdroneclip |
No | No | No | N/A | N/A | No | No | No |
Sky and Fog
Sky and Fog — Common
These tool textures are available in every Source engine game.
Some of these textures have special function in some games. These special functions are noted by having the game's icon listed in the description (such as
,
, ![]()
,
, etc).
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsfog |
Yes | No | Yes | No | Yes | Yes | Yes | Yes (Marks) |
[ However, you can use this for func_smokevolume instead of the Trigger texture, but NOT for func_dustcloud. |
toolsskybox |
No | No | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
This texture is used to make 3D skyboxes. Casts light if there is a light_environment entity in the map. Things such as another area of a map will render on top of the skybox. An areaportal can stop this from happening, but it's generally better practice to add more scenery to cover the stuff that shouldn't be seen, reposition those things out of view, or just don't have an opening in that area. |
toolsskybox2d |
No | No | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
(in all games since Casts light if there is a light_environment entity in the map. No effect if used in the same PVS as the toolsskybox tool texture. |
toolsskyfog |
No | Yes | Yes | N/A | N/A | Yes | N/A | Yes (Marks) |
The SkyFog texture does not contain any properties. There is currently no existing corresponding Shader called "skyfog". (Generates error Error: Material "toolsskyfog" uses unknown shader "SkyFog".)
|
fogvolume |
Yes | No | No | No | No | No | No | No | (in all games since Used to change fog colors and densities in a level. |
Sky and Fog — Game-Specific
These tool textures are only available in specific Source engine games.
There are no game specific tool textures in this section.
Miscellaneous
These are textures that have a special use, sometimes only seen in one single game.
Some of these textures are not even "real" tool textures, as they do not possess any Compile Flags, but they have some important use that no other texture available can do.
| Texture | Visible if world brush |
Casts shadows | Cuts VIS leaves |
Blocks NPC LOS | Solid to NPCs | Solid to player(s) | Solid to physics | Solid to bullets | Usage / Notes |
|---|---|---|---|---|---|---|---|---|---|
toolsblockbomb |
No | No | Yes | Yes | Yes | Yes | Yes | Yes | |
climb |
No | No | No | No | Yes | Yes | Yes | No | Could be used in areas blocked by func_playerinfected_clip where Player Infected cannot go to and should be unable to see a climbing spot, but the AI should be able to use it for hordes. |
climb_alpha |
Visible to Infected | No | No | No | Yes | Yes | Yes | No | This texture may be usable in spots where the texture is applied over a translucent material, in order to fix sorting issues, but it has so far never been used in any official campaign. |
climb_versus |
Visible to Infected | No | No | No | Yes | Yes | Yes | No | |
hulkwall |
Visible to Infected | Yes | Yes | Yes | Yes | Yes | Yes | Yes | The texture itself has no special abilities other than being invisible to survivors. This texture is since superceeded by ../effects/tankwall. But this one was not removed from the game.See This page for further information. |
hulkwallglow |
Visible to Infected | Yes | Yes | Yes | Yes | Yes | Yes | Yes | The texture itself has no special abilities other than being invisible to survivors. This texture is since superceeded by ../effects/tankwall. But this one was not removed from the game.See This page for further information. |
../effects/tankwall |
Visible to Infected | Yes | Yes | Yes | Yes | Yes | Yes | Yes | The texture itself has no special abilities other than being invisible to survivors. See This page for further information. |
toolsdotted |
Yes | No | Yes | No | Yes | Yes | Yes | Yes (Marks) |
A face textured with this texture is rendered on top of all other brush geometry. Furthermore, a brush with Dotted on any face will not block visibility or cull any face that it touches, meaning that any area enclosed in a Dotted-textured brush will not be removed from the map in any way.
$alphatest. |
toolsinvisibledisplacement |
No | No | No | No | Yes | Yes | Yes | Depends on game | (only in Light is not blocked by this texture, except in Despite being in the Materials/Tools folder, this is not a tool texture. It has no abilities. It is simply an invisible texture used for displacement clipping, where you make an invisible displacement instead of a clip brush because making intricate clip brushes is difficult. |
../effects/clear |
Fully Translucent | Depends on use | Depends on use | N/A | Yes | Yes | Yes | Depends on use | Officially used like invisibledisplacement for displacement clipping. |
invismetal |
No | No | Yes | No | Yes | Yes | Yes | No | Creates metal sparks when shot, but bullets pass through. %CompileDetail 1 to prevent it from cutting visleaves, which makes it much more useful. Alternatively, tie it to a func_detail or other entity. |
| No Image Locked |
N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | This is a special tool texture, intended to prevent VMEX from decompiling any maps using this custom tool texture. BSPSource ignores this, rendering it useless.
It does not really exist, as every user has to make their own, but it is listed here for completeness sake. |
toolswarmlight |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Used with func_brush to make it non-solid and fade away when approached. |
wrongway |
Yes (in Only to Infected (in |
No | Yes | No | Yes | Yes | Yes | Yes (No Marks) |
|
wrongway_timer |
Doesn't work correctly | No | Yes | No | Yes | Yes | Yes | Yes | PlayerProximity material proxy.
|






























