%CompileLadder

From Valve Developer Community
Jump to navigation Jump to search

Compiles brushes textured with this material as having ladder contents, meaning players will be able to climb up it. In some games, the material should be applied to a func_ladder brush entity in order for the navigation mesh to recognize it and to allowing NPCs to climb the ladder.
Materials with this flag are visible to players, unless %compilenodraw is also used. All ladders found so far also make use of %CompilePassBullets, as this function is not inherited by %CompileLadder already.

Note.pngNote:Due to how contents flags work, giving a brush ladder contents will cause all faces of the brush to be climbable.
PlacementTip.pngWorkaround:In Counter-Strike: Source[And others games?] if only one brush face is desired, you can add the ladder $surfaceprop to a material which will make only that brush face climbable.

Examples

tools/ToolsInvisibleLadder.vmt is a ladder that is not visible to players.

"LightmappedGeneric"
{
	"$basetexture" "Tools/toolsinvisibleladder"
	"%compilenodraw" 1
	"%compilepassbullets" 1
	"%compileladder" 1
	"%keywords" "airexchange,borealis,c17downtown,c17industrial,c17sewers,c17skyscraper,c17trainstation,combine,kraken,wasteland"
}

An improved version that does not cut visleaves would look like so:

"LightmappedGeneric"
{
	"$basetexture" "Tools/toolsinvisibleladder"
	"$translucent" 1
	"%compileladder" 1
	"%compiledetail" 1
	"%compilenodraw" 1
	"%compilepassbullets" 1
}

Metal/MetalLadder001a.vmt is visible to players.

"LightmappedGeneric"
{
	"$basetexture" "Metal/metalladder001a"
	"$surfaceprop" "metal"
	"%compileladder" 1
	"$alphatest" 1
	"%compilepassbullets" 1
}

Left 4 Dead seriesTools/Climb_Versus.vmt is only visible to infected players, due to the proxies.

UnlitGeneric
{
	$basetexture "tools\climb"
	$additive 1
	"%compileTeam" 2
	"%compilepassbullets" 1
	"%compileladder" 1

	$proxRange 0.0

	$proxTeam 1.0

	$one 1.0
	Proxies
	{
		PlayerTeam
		{
			team 3 
			resultVar $proxTeam
		}
		Subtract
		{
			srcVar1 $one
			srcVar2 $proxRange
			resultVar $alpha
		}
		Multiply
		{
			srcVar1 $alpha
			srcVar2 $proxTeam
			resultVar $alpha
		}
		TextureScroll
		{
			texturescrollvar $baseTextureTransform
			texturescrollrate 1
			texturescrollangle 90.00
		}
	}
}