Garry's Mod Wiki


  IMaterial CreateMaterial( string name, string shaderName, table materialData )


Creates a new material with the specified name and shader.

Materials created with this function can be used in Entity:SetMaterial and Entity:SetSubMaterial by prepending a "!" to their material name argument.
This does not work with patch materials.
.pngs must be loaded with Material before being used with this function.

Issue Tracker: 1531
This will not create a new material if another material object with the same name already exists.

Issue Tracker: 3103


1 string name
The material name. Must be unique.
2 string shaderName
The shader name. See Shaders.
3 table materialData
Key-value table that contains shader parameters and proxies.

Unlike IMaterial:SetTexture, this table will not accept ITexture values. Instead, use the texture's name (see ITexture:GetName).


1 IMaterial
Created material


Alternative to render.SetColorMaterial, mainly for use with Entity:SetMaterial

CreateMaterial( "colortexshp", "VertexLitGeneric", { ["$basetexture"] = "color/white", ["$model"] = 1, ["$translucent"] = 1, ["$vertexalpha"] = 1, ["$vertexcolor"] = 1 } )