$surfaceprop
$surfaceprop
is a QC command available in all Source games.
It is also available as a shader parameter. It links the surface of either a material or model to a set of physical properties, including:
- What sounds are emitted during collisions
- What effects are emitted when the surface is shot
- Mass, buoyancy, bounciness...
- The effect of the surface on nearby sounds (reverberation, echo, absorption...)
Contents
Syntax
Syntax is the same for both models and materials:
$surfaceprop <name>
Names are defined in <game>\scripts\surfaceproperties_manifest.txt
(and the files it references). For a list of Valve's stock props, see Material surface properties.
Bug: Left 4 Dead does not display bullet decals properly on brick surfaces. If you're okay with the decals and visual effects being inappropriate, you can change the
$surfaceprop
to something else to fix it, such as concrete.Confirm: Is this fixed in Left 4 Dead 2?
In Materials
$surfaceprop
is not linked to any particular shader, so it can be used at any time.- Only brush based shaders require this parameter.
$surfaceprop
must always be defined within the collision property of the QC file if anything other than the default is to be used, however.
In Models
- It is unclear whether a model's mass is calculated from
$surfaceprop
orprop_data
. - Surface props can be defined for individual bones with
$jointsurfaceprop
.