Tool textures (Source): Difference between revisions
SirYodaJedi (talk | contribs) (→General — Common: shouldn't eat non-detail brushes... in theory. Eating detail brushes is a bug, though, since detail has higher priority.) |
m (not ent) |
||
Line 54: | Line 54: | ||
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.<br> | 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.<br> | ||
An example of its use is in the "space" backgrounds during the G-Man monologues in {{hl2|2}} or for crude buildings in the 3D Skybox.<br> | An example of its use is in the "space" backgrounds during the G-Man monologues in {{hl2|2}} or for crude buildings in the 3D Skybox.<br> | ||
Uses | Uses [[UnlitGeneric]] in: {{hl2}} {{portalseries}} {{as}} <br> | ||
Uses | Uses [[LightmappedGeneric]] in: {{csseries|src=1}} {{dods}} {{l4dseries}}<br> | ||
In games where it uses LightmappedGeneric, you may want to use <code>vgui/black</code> instead (to avoid wasting lightmap usage) or make your own tool texture. | In games where it uses LightmappedGeneric, you may want to use <code>vgui/black</code> instead (to avoid wasting lightmap usage) or make your own tool texture. | ||
|- id="white" | |- id="white" | ||
Line 152: | Line 152: | ||
| {{No}} | | {{No}} | ||
| {{No}} | | {{No}} | ||
| Blocks the [[line of sight]] of [[NPC]]s and [[bot]]s.<br> {{ | | Blocks the [[line of sight]] of [[NPC]]s and [[bot]]s.<br> {{cmd|mat_wireframe|1/2}} will reveal that, while this texture doesn't block [[visleaf|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 {{Ent|func_brush}} with its <tt>Solidity</tt> keyvalue set to a solid state. (A Block LOS <tt>func_brush</tt> can still be traversed in this state.) | ||
|- id="blocklight" | |- id="blocklight" | ||
| [[File:Toolsblocklight.gif|64px]] | | [[File:Toolsblocklight.gif|64px]] | ||
Line 217: | Line 217: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes|Yes <br /> (Marks)}} | | {{Yes|Yes <br /> (Marks)}} | ||
| {{l4dseries}} Identical to <tt>ToolsBlack</tt>, but no fog will appear in front of it. Uses the | | {{l4dseries}} Identical to <tt>ToolsBlack</tt>, but no fog will appear in front of it. Uses the [[UnlitGeneric]] shader.<br> | ||
Inherits various City17 [[%25keywords]] from <tt>ToolsBlack</tt>. | Inherits various City17 [[%25keywords]] from <tt>ToolsBlack</tt>. | ||
|- id="black_noportal" | |- id="black_noportal" | ||
Line 544: | Line 544: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes | Yes <br /> (Marks)}} | | {{Yes | Yes <br /> (Marks)}} | ||
| No effect; uses nonexistent [[material map compile flags|compile flag]] | | No effect; uses nonexistent [[material map compile flags|compile flag]] [[%CompileFog]]. | ||
(You can use this for {{Ent|func_smokevolume}} instead of the Trigger texture, but NOT for {{Ent|func_dustcloud}}.) | (You can use this for {{Ent|func_smokevolume}} instead of the Trigger texture, but NOT for {{Ent|func_dustcloud}}.) | ||
|- id="skybox" | |- id="skybox" | ||
Line 658: | Line 658: | ||
| {{Yes}} | | {{Yes}} | ||
| {{No}} | | {{No}} | ||
| {{l4dseries}} Same as '''Climb Versus''', with the only difference being that <tt>climb_alpha</tt> uses | | {{l4dseries}} Same as '''Climb Versus''', with the only difference being that <tt>climb_alpha</tt> uses [[$alphatest]], while <tt>climb_versus</tt> uses [[$additive]].<br> | ||
This texture may be usable in spots where the texture is applied over a translucent material, in order to fix [[$translucent#Flickering_and_Reversed_Depth|sorting issues]], but it has so far never been used in any official campaign. | This texture may be usable in spots where the texture is applied over a translucent material, in order to fix [[$translucent#Flickering_and_Reversed_Depth|sorting issues]], but it has so far never been used in any official campaign. | ||
|- id="climb_versus" | |- id="climb_versus" | ||
Line 734: | Line 734: | ||
| {{tf2|only}}</br>Light is not blocked by this texture, except in {{csgo}}.<br> | | {{tf2|only}}</br>Light is not blocked by this texture, except in {{csgo}}.<br> | ||
Despite being in the <tt>Materials/Tools</tt> folder, this is not a tool texture. It has no abilities. It is simply an invisible texture used for [[Clip_texture|displacement clipping]], where you make an invisible displacement instead of a clip brush because making intricate clip brushes is difficult.<br> | Despite being in the <tt>Materials/Tools</tt> folder, this is not a tool texture. It has no abilities. It is simply an invisible texture used for [[Clip_texture|displacement clipping]], where you make an invisible displacement instead of a clip brush because making intricate clip brushes is difficult.<br> | ||
{{tf2}} Uses {{ | {{tf2}} Uses {{cmd|$decal|1}} and {{cmd|$surfaceprop|"dirt"}}.<br> | ||
|- id="Clear" | |- id="Clear" | ||
| [[File:Toolswhite.gif|64px]] | | [[File:Toolswhite.gif|64px]] | ||
Line 746: | Line 746: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Both|Depends on use}} | | {{Both|Depends on use}} | ||
| {{l4dseries}} Basic | | {{l4dseries}} Basic [[LightmappedGeneric]] that has no abilities other than being invisible.<br> | ||
Officially used like <tt>invisibledisplacement</tt> for [[Clip_texture|displacement clipping]].<br> | Officially used like <tt>invisibledisplacement</tt> for [[Clip_texture|displacement clipping]].<br> | ||
Has no VMT properties other than {{ | Has no VMT properties other than {{cmd|$alphatest|1}}. | ||
|- id="Invismetal" | |- id="Invismetal" | ||
| [[File:Toolinvismetal.png|64px]] | | [[File:Toolinvismetal.png|64px]] | ||
Line 789: | Line 789: | ||
| {{Yes}} | | {{Yes}} | ||
| {{Yes}} | | {{Yes}} | ||
| {{l4dseries}} Basic | | {{l4dseries}} Basic [[UnlitGeneric]] texture that has no abilities.<br> | ||
Used with {{Ent|func_brush}} to make it non-solid and fade away when approached.<br> | Used with {{Ent|func_brush}} to make it non-solid and fade away when approached.<br> | ||
It being <tt>UnlitGeneric</tt> makes it seems as if it were glowing in a warm color, but is not listed in | It being <tt>UnlitGeneric</tt> makes it seems as if it were glowing in a warm color, but is not listed in [[lights.rad]], so it won't actually emit any light for [[VRAD]] to compile.<br> | ||
Only used in {{code|c8m2_subway}} behind the three windows to the right of the entrance of the end map saferoom building, to simulate glowing light in a room.<br> | Only used in {{code|c8m2_subway}} behind the three windows to the right of the entrance of the end map saferoom building, to simulate glowing light in a room.<br> | ||
|- id="wrongway" | |- id="wrongway" | ||
Line 821: | Line 821: | ||
| {{Yes}} | | {{Yes}} | ||
| {{csgo}} Used for brushes that are temporarily blocking Terrorists during the freezetime of the {{csgo mode|Retakes}} [[CS:GO Game Modes|game mode]]. It is only visible to [[player]]s that are close to the origin of the entity that this material is applied to (e.g., {{Ent|func_brush}}), achieved with the <code>PlayerProximity</code> [[material proxies|material proxy]]. | | {{csgo}} Used for brushes that are temporarily blocking Terrorists during the freezetime of the {{csgo mode|Retakes}} [[CS:GO Game Modes|game mode]]. It is only visible to [[player]]s that are close to the origin of the entity that this material is applied to (e.g., {{Ent|func_brush}}), achieved with the <code>PlayerProximity</code> [[material proxies|material proxy]]. | ||
{{warning|Does not work as intended on [[world brush]]es and {{Ent|func_detail}}s as they have no origin: In-game, the | {{warning|Does not work as intended on [[world brush]]es and {{Ent|func_detail}}s as they have no origin: In-game, the [[$alpha]] is either equal to the <tt>$alpha</tt> of the closest functioning application of this material on screen or - if there is none - the <tt>$alpha</tt> remains "stuck" at some value, no matter the proximity.}} | ||
|} | |} | ||
[[Category:Source]] | [[Category:Source]] | ||
[[Category:Level Design]] | [[Category:Level Design]] | ||
[[Category:Material System]] | [[Category:Material System]] |
Revision as of 03:00, 4 April 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 1, %compileDetail 1 and %compilenodraw 1 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.






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), 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.
For Half-Life 2 you need to do this for every single gameinfo in all episodes. Some games have a "Custom" folder, and Some do not. Forcing the gameinfo to load files like this will always work, no matter the game or branch.

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.).
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() 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. | |
![]() |
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. | |
![]() |
No | No | Yes | No | Yes | Yes | Yes | Yes (No Marks) |
![]() See Blockbullets for info on how to actually block bullets and projectiles.
| |
![]() |
No | No | Yes | No | Yes | Yes | Yes | No | Solid to prop_physics, projectiles, players, & NPCs. Not solid to bullets.
| |
![]() |
No | No | Yes | No | Yes | Yes | Yes | No | Used for ladders in most multiplayer games except ![]() | |
![]() |
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 "glass footsteps" version into the list
![]() ![]() | |
![]() |
N/A | No | No | No | No | No | No | No | [![]() ![]() | |
![]() |
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.) | |
![]() |
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. | |
![]() |
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.
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() "black" shader.![]() Todo: Find more about
"black" shader | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() ![]() Inherits various City17 %keywords from ToolsBlack. | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (Marks) |
![]() | |
![]() |
No | No | No | No | Yes | Yes | Yes | Yes (No Marks) |
![]() | |
![]() |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
![]() | |
![]() |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
![]() | |
![]() |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
![]() | |
![]() |
No | Yes | Yes | Yes | Yes | Yes | Yes | Yes (No Marks) |
![]() |
Optimization
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
Yes | No | Yes | No | No | No | No | No | Use with areaportals (func_areaportals and func_areaportalwindows ). Can be used with other brush entities, such as some triggers.
| |
![]() |
No | No | Yes | No | No | No | No | No | Instructs VVIS to cut visleaves along this texture, but does nothing else. | |
![]() |
No | No | No | No | No | No | No | No | Has no effect on anything (except bomb in ![]() 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. | |
![]() |
Yes | No | No | No | No | No | No | No | Used only for the occluding sides of func_occluder entities.
Unlike toolstrigger, toolsoccluder will correctly work when VBSP is compiled with -nodrawtriggers. |
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.).
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
No | No | No | No | Yes | Yes | No | No | Solid to players and NPCs but not other objects.
![]()
| |
![]() |
No | No | No | No | Yes | No | No | No | Solid to NPCs only.![]() ![]() ![]() ![]() | |
![]() |
No | No | No | No | No | Yes | No | No | Solid to players only.
| |
![]() |
Yes | Yes | Yes | N/A | Yes | Yes | Yes | Yes (Marks) |
(removed since ![]() ![]() ![]() (See Player Clip above for the tool texture that restricts player movement.) |
Clips — Game-Specific
These tool textures are only available in specific Source engine games.
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
No | No | No | No | No | No | Solid to Grenades | No | ![]() | |
![]() |
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.).
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
Yes | No | Yes | No | Yes | Yes | Yes | Yes (Marks) |
No effect; uses nonexistent compile flag %CompileFog.
(You can use this for func_smokevolume instead of the Trigger texture, but NOT for func_dustcloud.) | |
![]() |
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. | |
![]() |
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. | |
![]() |
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" .)
![]() | |
![]() |
Yes | No | No | No | No | No | No | No | (in all games since ![]() Used in conjunction with multiple env_fog_controllers to change fog colours 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.
Image | Filename | 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 |
---|---|---|---|---|---|---|---|---|---|---|
![]() |
No | No | Yes | Yes | Yes | Yes | Yes | Yes | ![]() | |
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. | ||
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. | ||
Visible to Infected | No | No | No | Yes | Yes | Yes | No | ![]() ![]() | ||
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. | ||
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. | ||
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. | ||
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.
![]() | ||
![]() |
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. | |
![]() |
Fully Translucent | Depends on use | Depends on use | N/A | Yes | Yes | Yes | Depends on use | ![]() ![]() Officially used like invisibledisplacement for displacement clipping. | |
![]() |
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 | 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. | |
![]() |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ![]() ![]() Used with func_brush to make it non-solid and fade away when approached. | |
![]() |
Yes (in ![]() Only to Infected (in ![]() ![]() |
No | Yes | No | Yes | Yes | Yes | Yes (No Marks) |
![]() ![]() ![]()
![]() | |
![]() |
Doesn't work correctly | No | Yes | No | Yes | Yes | Yes | Yes | ![]() ![]() PlayerProximity material proxy.
![]() |