User:MrFunreal/Sandbox
Assume the data on this page to not be fully fleshed out for as long as it remains here.
MrFunreal (talk)
List of L4D2 Detail sprites
Left 4 Dead 2 has three different sources of where it got its nature textures and their detail sprites from. Some from Counter-Strike: Source, Left 4 Dead, and some made new for Left 4 Dead 2.
Unfortunately, these are sometimes mutually exclusive, by virtue of their detail props needing to use a different "Detail Material File
" setting, which can be found when heading to "Map Properties" in Hammer.
Luckily this can be avoided by taking a few extra steps, as described in Making materials compatible.
This page helps to remove the confusion as to what materials are compatible with each other, by listing them by what "Detail Material File
" they must use.
Should you want multiple materials that are not compatible because of different "Detail Material File
" requirements, you will need to create a dupe of the vmt that you want to use and swap its %DetailType to one using the same "Detail Material".

%DetailType "urban_overgrown_docks" does not exist in neither L4D1 nor L4D2.
These two are contained in this Github Repo, amongst many other updates to hammers fgd.
Separated by Detail Material
These four lists show all materials in L4D2 that do make use of %DetailType in their vmt files.
Refer to these when deciding what materials to use, in order to make sure you only use the ones with the identical Detail Material File
setting in Hammer.
DetailSprites
BlendLeavesTrainyardDirtB.vmt is the only material that uses detail/detailsprites.
Which means your map can not use any other materials with sprites on it, as none other share this Detail Material.
But you may easily edit this vmt to use a different detailtype. Whatever detail type this vmt has when compiling the map will be used, no matter of the vmt on other machines are not the same.

DetailSprites_Overgrown
These blend materials all use "details/DetailSprites_Overgrown.vmt". These can only be used with each other, or any blend materials that do not have any sprites to begin with.
Material Name | %DetailType used |
---|---|
blendswampmudroots01_lowdensity | urban_overgrown_lowdensity |
blend_blacktop_07 | urban_grass_overgrown |
blend_blacktop_08 | urban_grass_overgrown |
blend_blacktop_09 | urban_grass_overgrown |
blend_brick_brick01 | urban_grass_overgrown |
blend_brick_brick02 | urban_grass_overgrown |
blend_brick_dirt_01 | urban_grass_overgrown |
blend_brick_grass_01 | urban_dry_overgrown |
blend_dirt_cane | urban_dry_overgrown |
blend_grass_concrete_01 | urban_dry_overgrown |
blend_grass_grass_02 | urban_grass_overgrown |
blend_grass_grass_02_lowdensity | urban_grass_overgrown_lowdensity |
blend_grass_gravel_01 | urban_grass_overgrown |
blend_grass_gravel_lowdensity | urban_grass_overgrown_lowdensity |
blend_grass_mud_01 | urban_grass_overgrown |
blend_milltowngrass01wet | urban_dry_overgrown |
blend_rubble_03 | urban_grass_overgrown |
blend_urbandirtlawn01 | urban_dry_overgrown |
blend_urbandirtlawn01wet | urban_dry_overgrown |
blend_urbandirtlawn01wet | urban_dry_overgrown |
blendswampmudleaves02b | urban_overgrown |
blendswampmudroots01 | urban_overgrown |
blendswamprootleaves01 | urban_overgrown |
blendswamprootleaves01_lowdensity | urban_overgrown_lowdensity |
RuralDetailSprites
These blend materials all use "details/RuralDetailSprites.vmt". These can only be used with each other, or any blend materials that do not have any sprites to begin with.
Material Name | %DetailType used |
---|---|
blend_alleydirt_leaves* | alleydirt_leaves |
blend_docks_grass_dirt* | urban_overgrown_docks |
blend_leaves_dirt | rural_dirt_leaves02 |
blend_leaves_dirt_nomod | rural_dirt_leaves02 |
blend_leaves_forest | rural_dirt_leaves02 |
blenddirt01grass_ruddy_small | rural_dkdirt_grass |
blenddirtlawn01 | rural_dkdirt_grass_smalltown |
blenddirtleaves | rural_dirt_leaves |
blenddirtleaves02 | rural_dirt_leaves |
blenddirtleaves03 | rural_dirt_leaves02 |
blenddirtleaves03_smalltown | rural_dirt_leaves02 |
blenddirtleaves03_smalltown2 | rural_dirt_leaves02 |
blenddirtleaves04 | rural_dirt_leaves02 |
blenddirtleaves_docks* | urban_overgrown_docks |
blenddrkdirtgrass_ruddy | rural_dkdirt_grass_trainyard |
blenddrygrassdirt | rural_dirt_road |
blendleavestrainyarddirt | rural_trainyarddirt_leaves |
blendroadleaves01 | rural_dirt_leaves02 |
blendroadleaves01b | rural_dirt_leaves02 |
blendrootleaves01 | rural_dirt_leaves02 |
grasslawn_dry01 | rural_dkdirt_grass |
grasslawn_patchy01_detailprop | rural_dirt_leaves02 |
tiblendrockleaves1 | rural_dirt_leaves |
tiblendrockstone1 | rural_dirt_leaves |
tiblendrockstone2 | rural_dirt_leaves |
tiblendrockstone3 | rural_dirt_leaves |
tiblendrockstone4 | rural_dirt_leaves |

No Detail Material
The following materials do not have any grass or plant sprites. This allows them to be used with any other material without issue.
- blend_alley_conc_dirt
- blend_blacktop_01
- blend_blacktop_01_cheap
- blend_blacktop_01_wet
- blend_blacktop_02
- blend_blacktop_02wet
- blend_blacktop_03
- blend_blacktop_03wet
- blend_blacktop_03wet_dirt
- blend_blacktop_04
- blend_blacktop_05
- blend_blacktop_06
- blend_blacktop_06
- blend_blacktop_brick_01
- blend_blacktop_brick_01b
- blend_blacktop_cobb_01
- blend_blacktop_cobb_01dry
- blend_blacktop_cobb_02
- blend_blacktop_cobb_02_dry
- blend_cliff_leaves
- blend_concrete_01
- blend_dirt_concrete_01
- blend_dirt_concrete_01wet
- blend_dirt_concrete_02
- blend_dirt_concrete_03
- blend_dirt_concrete_03wet
- blend_dirt_concrete_04
- blend_dirt_concrete_06
- blend_dirt_ext_01
- blend_dirt_ext_03
- blend_dirt_mud_01
- blend_dirtrubble01
- blend_docks_dirt_gravel
- blend_docks_grass_pavement
- blend_donner_rubble1_dirtfloor013a
- blend_grass_black_01
- blend_grass_grass_01
- blend_grass_grass_02_cheap
- blend_grass_gravel_01_cheap
- blend_grasslawn_dirt_nosprites
- blend_leaves_dirt_nodetail
- blend_leaves_dirt_nodetail_mod
- blend_leaves_estuary
- blend_logs_moss
- blend_lots_conc_dirt
- blend_lots_conc_grass
- blend_lots_conc_pavement
- blend_milltowngrass02wet
- blend_milltowngrass03wet
- blend_milltowngrass04wet
- blend_river_dirt02
- blend_roof_01
- blend_rubble_01
- blend_rubble_02
- blend_sand03_cliff
- blend_sidewalk02
- blend_sidewalk_01
- blend_sidewalk_01_wet
- blend_sidewalk_01dry
- blend_sidewalk_dirt
- blend_sidewalk_grass
- blend_urbandirtlawn01_cheap
- blendbeachleaves
- blendconcrete38a12a_noshadow
- blendconcrete_dirt
- blenddirtcorn01
- blenddirtdirt001a
- blenddirtleaves03_burned
- blenddirtleaves03_nodetail
- blenddirtparkinglot01
- blendgrassstonepath
- blendgraveldirt001a
- blendmudleaves
- blendpavementleaves
- blendrockcavewall
- blendrockleaves
- blendrockleaves02
- blendrockleaves03
- blendrockwaterleaves
- blendrockwaterrock
- blendswamprootleaves01_cheap
- grassdirt_blend
- milground011_rock2b
- ti_nospr_blendrockstone1
- ti_nospr_blendrockstone2
- ti_nospr_blendrockstone3
- ti_nospr_blendrockstone4
- tiblendwaterrockstone
- zblendwetrockurock
Existing %DetailTypes
When creating custom materials you must make sure all materials make use of the same "Detail Material" setting in Hammer Hammer.
This list shows what %DetailTypes exist and which Detail Material File
they use. Pick any of these for your custom materials.
%DetailType | Detail Material File |
---|---|
compound_gravelgrass | detail/detailsprites |
desert_2weeds1shrub_01 | detail/detailsprites |
militia_darkleaves_grass | detail/detailsprites |
militia_leaves_darkleaves | detail/detailsprites |
militia_leaves_grass | detail/detailsprites |
militia_leaves_sand | detail/detailsprites |
militia_rock_grass | detail/detailsprites |
militia_sand_grass | detail/detailsprites |
prodgrasses | detail/detailsprites |
rural_cornfield_leaves | detail/ruraldetailsprites |
rural_dirt_leaves | detail/ruraldetailsprites |
rural_dirt_leaves02 | detail/ruraldetailsprites |
rural_dirt_leaves02_lowdensity | detail/ruraldetailsprites |
rural_dirt_road | detail/ruraldetailsprites |
rural_dkdirt_grass | detail/ruraldetailsprites |
rural_dkdirt_grass_smalltown | detail/ruraldetailsprites |
rural_dkdirt_grass_trainyard | detail/ruraldetailsprites |
rural_grass_leaves | detail/ruraldetailsprites |
rural_gravel_weeds01 | detail/ruraldetailsprites |
rural_trainyarddirt_leaves | detail/ruraldetailsprites |
swamp_ground01 | detail/ruraldetailsprites |
urban_dirt_leaves02 | detail/ruraldetailsprites |
urban_dry_overgrown | detail/detailsprites_overgrown |
urban_grass_overgrown | detail/detailsprites_overgrown |
urban_grass_overgrown_lowdensity | detail/detailsprites_overgrown |
urban_overgrown | detail/detailsprites_overgrown |
urban_overgrown_lowdensity | detail/detailsprites_overgrown |
alleydirt_leaves | detail/ruraldetailsprites |
urban_overgrown_docks | detail/ruraldetailsprites |
Making materials compatible
If you do want to use two or more materials that are usually mutually exclusive, you need to edit them to use any %DetailType from the table above that use the same Detail Material File
.
You can achieve this without needing to ship a custom material with your map.
Simply take the file out of your game, recreate the folderpath like any regular addon would, edit the %DetailType value in the vmt, and pack into a vpk named pak01_dir.vpk.
Once that is done, create a folder in your L4D2 directory, next to the DLC folders, named "Detailtype_edits" that contains this pak01_dir.vpk.
Next, open the gameinfo.txt in steamapps\common\Left 4 Dead 2\left4dead2
and scroll down until you see "Game update". Above that line, add "Game Detailtype_edits".
This will successfully mount your modified materials with different %DetailType value.
As long as you only change the %DetailType value, the game will read that date during compile and use that modified %DetailType value in every subsequent compile, until this gameinfo edit is undone or the vpk is deleted.
The genius of this approach is that the maps remember what %DetailType value had been used when the map was compiled.
This means that the custom %DetailType value is kept and you do not need to ship this modified material with your map, as the game already has this material.