Valve Material Type - VMT

A material is a .vmt ("Valve Material Type") text file that defines a two-dimensional surface. It contains all of the information needed for Source to simulate the surface visually, aurally, and physically.

The contents of a material will fall into some or all of these categories:

  1. Texture names

A simple example

LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

This is a very basic shingle beacharrow-up-right material.

  1. The LightmappedGenericarrow-up-right shader is used, which means that the material is for use on surfaces with lightmapsarrow-up-right (i.e. brushesarrow-up-right).

  2. The { character opens a set of parameters

  3. The $basetexturearrow-up-right parameter is given with coast\shingle_01, which is the location of a texture. This is what will be drawn on the screen.

  4. $surfaceproparrow-up-right gives the material the physical properties of gravel.

  5. The } character closes a set of parameters

It's important to remember that this material can only be used on brushes. If it needed to be used on modelsarrow-up-right, for instance, another version would need to be created using the VertexLitGenericarrow-up-right shader.

Most of the time switching materials from one shader to another is as simple as changing their first line, since a great number of parameters are shared between them. Some params only work with certain shaders, like Phongarrow-up-right effects, which are only available with VertexLitGeneric, but unfortunately you won't encounter any critical errors if a param isn't understood by the shader. It just won't have any effect. **Tip:**If you ever need to use a space or tab character in a parameter value, you must wrap the whole value with "quote marks". You'll often see absolutely everything wrapped like this - save yourself some typing, as that's unnecessary.

Finding materials

SteamPipe

When Valve updated some games to SteamPipearrow-up-right, the materials were moved from GCFarrow-up-right into VPKarrow-up-right files. VPK Files work with GCFScapearrow-up-right.

More info on SteamPipe herearrow-up-right

Non-SteamPipe Games

in non SteamPipearrow-up-right source games, Materials are stored in the materials\ folder of your game or mod. The best way to browse them is from Hammerarrow-up-right's texture selection screen.

If you want to edit or view the code of Valve's material files you will first need to extract them from their GCFarrow-up-right package with GCFScapearrow-up-right. They tend to be stored in GCFs with 'materials' in their name.

Last updated

Was this helpful?