Skip to content

MAT Enums & Draconic SurfaceProps

Vuthakral edited this page Aug 21, 2023 · 1 revision

About

The Source engine has an internal system of materials referred to generally by the community as "MATs", in reference to their enumeration shorthand just being "MAT_". There is a generalized list of MAT types which are commonly found in all Source games, but each game can (and usually does) have a few special ones, most of which are undocumented. Through the course of community crowdsourcing via a console message whenever an unknown MAT gets encountered by the Draconic Base I have been able to garner a massive list of what is most surely an almost complete list of every MAT enumeration you may ever encounter in Garry's Mod.

MAT Enumerations

Click to expand.
	MAT_DEFAULT
	MAT_DEFAULT_SILENT
	MAT_ANTLION
	MAT_ARMORFLESH
	MAT_BLOODYFLESH
	MAT_ZOMBIEFLESH
	MAT_STRIDER
	MAT_HUNTER
	MAT_PAPER
	MAT_EGGSHELL
	MAT_ANTLION_EGGSHELL
	MAT_FLESH
	MAT_WATERMELON
	MAT_ALIENFLESH
	MAT_CLIP
	MAT_NO_DECAL
	MAT_PLASTIC
	MAT_PLASTIC_BARREL
	MAT_PLASTIC_BOX
	MAT_PAINTCAN
	MAT_POPCAN
	MAT_CANISTER
	MAT_VENT
	MAT_GRENADE
	MAT_WEAPON
	MAT_CROWBAR
	MAT_METAL
	MAT_METALVEHICLE
	MAT_COMBINE_METAL
	MAT_COMBINE_GLASS
	MAT_GUNSHIP
	MAT_ROLLER
	MAT_SOLIDMETAL
	MAT_SLIPPERYMETAL
	MAT_METALPANEL
	MAT_METALVENT
	MAT_METAL_BARREL
	MAT_FLOATING_METAL_BARREL
	MAT_METAL_BOX
	MAT_GRATE
	MAT_CHAINLINK
	MAT_COMPUTER
	MAT_CONCRETE
	MAT_RUBBER
	MAT_RUBBERTIRE
	MAT_MUD
	MAT_DIRT
	MAT_STONE
	MAT_ROCK
	MAT_BOULDER
	MAT_SAND
	MAT_ANTLIONSAND
	MAT_FOLIAGE
	MAT_SLOSH
	MAT_GRASS
	MAT_CARPET
	MAT_FABRIC
	MAT_CLOTH
	MAT_WOOD
	MAT_WOOD_CRATE
	MAT_WOOD_FURNITURE
	MAT_WOOD_SOLID
	MAT_WOOD_PLANK
	MAT_WOOD_PANEL
	MAT_CARDBOARD
	MAT_TILE
	MAT_POTTERY
	MAT_SNOW
	MAT_PORCELAIN
	MAT_PLASTER
	MAT_GLASS
	MAT_GLASSBOTTLE
	MAT_ICE
	MAT_WARPSHIELD
	MAT_ITEM
	MAT_JALOPY
	MAT_AIRBOAT
	MAT_SLIME
	MAT_WADE

"This is way too much for me to have to account for!"

Yeah, I agree. That's why I made a list of these in the base internally which correspond to generic strings for you to be able to pull the "substance" of a surface without needing to account for potentially up to 6 different MATs for the same effect.

The Draconic Material System

The strings:

  • fabric
  • cardboard
  • bugshell
  • dirt
  • dust
  • flesh
  • gas
  • glass
  • liquid
  • metal
  • metaldrum
  • metalhollow
  • paint
  • plastic
  • rubble
  • sand
  • shards
  • snow
  • synth
  • tile
  • wood
  • stone

Okay, but how do I use/get/compare for these values?

If you acquire the MAT enum of the desired surface/etc, you can call DRC.SurfacePropDefinitions[MAT_ENUM] and it will return a table of "substances" which make up the material. The first one will be the most appropriate, and anything else is additional post-stuff such as dust intended for effects-related work within the Draconic Base itself. If you are only interested in the surface-level substance of the material, instead just call DRC.SurfacePropDefinitions[MAT_ENUM][1] to only get the primary value.

Clone this wiki locally