Asset Types
Every asset a Source 2 game uses is one of the types in this table1.
The .Extension column is the extension of the source file. The compiled file the engine actually loads adds _c to it, so a .vmat becomes a .vmat_c. How the two relate, and the container every compiled file shares, is covered in the section overview.
The Compiler column names the backend inside the resource compiler that produces the compiled form. A few types are not compileable: they exist only on the source side, or are produced by another tool.
The Info column says what creates the asset and what it is for. Rows marked Unused or Deprecated are formats of older engine branches that current games no longer write.
| Type | .Extension | Compiler | Info |
|---|---|---|---|
| VPK | vpk | CompileMap (only for maps) | Valve Pak. Is used to store content, see VPK. A single archive tops out at 4 GiB. |
| KV3 | kv3 | CompileKV3 | KeyValues3. Main file used for almost all asset types. Supports binary encodings, versioning and data annotation. |
| VData Asset | vdata | CompileVData | VData asset. Form of Generic Data loaded by game for various stuff like weapons, heroes, abilities, decalgroups, styles, asset tags, precipitation, modifiers, entity subclasses, tagged sounds. Depending on the generic_data_type that comes from schemas. See detail_prop_types.vdata for a worked example. |
| Animation File | vanim | CompileAnimation | Used by Legacy VMDL. Unused. |
| Animation Group | vagrp | CompileAnimGroup | Used by Legacy VMDL. Unused. |
| Sequence Group | vseq | CompileSequence | Used by Legacy VMDL. Unused. |
| Particle Asset | vpcf | CompileParticle | Particles. Created in the Particle Editor. |
| Material Asset | vmat | CompileMaterial | Materials. Created in the Material Editor. |
| Mesh Asset | vmesh | CompileRenderMesh | Used by Legacy VMDL. Unused. |
| Texture Asset | vtex | CompileTexture | Textures. Created by either the Material Editor, manual .vtex file or anything involving Panorama (VPDI/VDATA). |
| Model Asset | vmdl | CompileModel | Model. Created in the ModelDoc Editor. Compiled file embeds multiple blocks in itself. |
| Physics Collision | vphys | CompileVPhysXData | Legacy Physics Collision file, used for Legacy VMDL and pre-Jun 6 2023 map compile. Unused. |
| Sound Asset | vsnd | CompileSound | Sound file. Compiled out of a mp3/wav file. Can embed encoding data from encoding.txt and phoneme/morph data from soundname.txt. |
| Sound Container | vsnd | CompileSound | Soundcontainer. Shares the .vsnd extension with Sound, but is actually a .vdata file with a data type CVoiceContainerBase. A special kind of sound with rules/unique properties. |
| Morphset Asset | vmorf | CompileMorph | Used by Legacy VMDL. Unused. |
| Resource Manifest | vrman | CompileResourceManifest | Resource Manifest. Tells the game to load specified assets when being read. |
| World Asset | vwrld | CompileWorld | World Asset. Part of a compiled map file. Loads defined in it worldnodes, lightmaps and entity lumps. |
| Worldnode Asset | vwnod | CompileWorldNode | World Node Asset. Part of a compiled map file. Loads defined worldnode models/scene objects. |
| Worldvis Asset | vvis | CompileMapVisibility | World Visibility Asset. Part of a compiled map file. Loads map visibility data. Visibility data are stored in voxel clusters. |
| Entitylump Asset | vents | CompileEntityLump | Entitylump Asset. Part of a compiled map file. Loads all defined map entities. Regular map entities are stored in default_ents.vents file, while point_template/world_layer entity lumps are stored in hammeridofapointtemplate#entitylumpname.vents_c. |
| Surfaceproperties Asset | vsurf | CompileSurfaceProperties | Surfaceproperties Asset. Has all the defined surface properties that Material Editor can use for materials. |
| Soundevent Script | vsndevts | CompileSoundEventScript | Soundevent Script. Before being played in the game, your sound must be defined here. Then, that new soundevent can be defined anywhere else where it's needed. |
| Soundstack Script | vsndstck | CompileSoundStackScript | Soundstack Script. Rules,operators and parameters for all the soundevents of the game. |
| Mixgraph | vmix | CompileVMix | Mixgraph Data. Created in the VMix Tool. |
| Postprocessing Settings | vpost | CompilePostProcessing | Postprocessing settings. Created in the Postprocessing Editor. Controls postprocessing. |
| Resource Remap Table | vrmap | CompileResourceRemapTable | Resource Remap Table. Unknown. Unused. |
| Panorama Style | vcss | CompilePanorama | Panorama Style. Compiled .css file, defines how a Panorama UI element will look. |
| Panorama Layout | vxml | CompilePanorama | Panorama Layout. Compiled .xml file, a skeleton of a Panorama UI element. |
| Panorama Dynamic Images | vpdi | CompilePanorama | Panorama Dynamic Images. Acts the same purpose as Resource Manifest, but for Panorama images. They will be converted from source image asset to .vtex_c upon compile. |
| Javascript | vjs | CompileJavaScript | Javascript. Created from a .js file. |
| Typescript | vts | CompileTypeScript | Typescript. Created from a .ts file. |
| PulseGraphDef | vpulse | CompilePulseGraphDef | Pulse Graph Definition. Created in the Pulse Editor. |
| Vector Graphic | vsvg | CompileVectorGraphic | Vector Graphic. Created from a .svg file. |
| Particle Snapshot | vsnap | CompileSnap | Particle Snapshot. Made in the Particle Editor, child asset for the Particle Asset, acts as a reference for the particle. |
| ModelDoc Template | vmodel_template | CSimpleAssetTypeInfo (not compileable) | ModelDoc Template. |
| ModelDoc Prefab | vmdl_prefab | CSimpleAssetTypeInfo (not compileable) | ModelDoc Prefab, is essentially a .vmdl. Used by .vmdl files to share nodes. |
| Animgraph Asset | vanmgrph | CompileAnimgraph | Animgraph1 Animgraph. Requires a .vmdl to compile. Animgraph 1 Graph, used for animation behavior, states, and etc. Currently being replaced by Animgraph2. |
| Animgraph Subgraph | vsubgrph | CSimpleAssetTypeInfo (not compileable) | Animgraph1 Subgraph. Used by .vanmgrph files to share nodes, tags and parameters, is essentially a Animgraph group in a separate file. |
| Map Asset | vmap | CompileMap | Map Asset. Compiled version does nothing and only references all the necessary stuff to load the map, while the source version is a VMAP file, a DMX document edited in Hammer. |
| Subrect Asset | rect | CSimpleAssetTypeInfo (not compileable) | Subrect Asset. Created in the Subrect Editor, used for hot-spotting in Hammer. |
| Composite Material Kit | vcompmat | CompileVCompMat | Composite Material Asset. Used by CS2 for weapon skins. |
| Econ Item | econitem | CompileCS2EconItem | Economy Item. Used by the CS2 Item Editor. |
| Smart Prop | vsmart | CompileVSmart | SmartProp. A prop with a defined set of rules and parameters in the VData Editor. Allows for much more control over a prop. |
| Response Rules | vrr | CompileResponseRules | Response Rules. Plays voicelines in response to events in the game. |
| Choreo Scene File Data | vcdlist | CompileChoreoSceneFileData | Choreo Scene File Data. A combination of .vcd files for Choreo Scenes. Deprecated. |
| VCD File (Choreo) | vcd | CompileChoreoScene | Valve Choreography Data. Stores choreography data for use with Faceposer and the game. |
| Animgraph2 Skeleton | vnmskel | CompileNmSkel | Animgraph2 Skeleton. Used by Animgraph2 for skeleton(s) and bonemask data. |
| Animgraph2 Clip | vnmclip | CompileNmClip | Animgraph2 Clip. Animation file used by Animgraph2. Can contain events to respond from graphs. |
| Animgraph2 Graph | vnmgraph | CompileNmGraph | Animgraph2 Graph. Animgraph2's graph. Contains all the necessary behavior. Graph variations have a vnmgraph.+variationname suffix. |
| Animgraph2 Variation | vnmvar | CompileNmGraphVariation | Animgraph2 Variation. Deprecated. |
| VModuleMetadata | vmmd | CVMMDAssetTypeInfo (not compileable) | Module Metadata. Contains all of the metadata about the module (like server.dll, resourcecompiler.dll) like resourcemanifests to load on startup and Pulse bindings. |
| CompiledShader | vcs | CompiledShader (uses vfxcompile) | CompiledShader. Contains all the shader data. Comes in multiple sets depending on the shader type. Stored in shaders_platform/api.vpk. |
| FlexSceneFile | vfe | Not compileable | FlexSceneFile. Has expressions/phonemes data used by game/Faceposer. |
| ClosedCaptions | dat | Compiled from txt with captioncompiler | Compiled Closed Captions file. |
| DAC Game Defs Data | vdacdefs | CompileDACGameDefsData | Dota Underlords Game Definitions file. Compiled version is a KV3 file. |
| Dota Visual Novels | vdvn | CompileDotaVisualNovels | Visual Novels for various Dota 2 events. |
| Dota Patch Notes | vdpn | CompileDotaPatchNotes | Patch Notes for Dota 2. |
| Dota Hero List | herolist | CompileDotaHeroList | Hero List for Dota 2. |
| Item | item | CompileDotaItem | Item. Piece of items_game.txt. |
| Tools Asset Info | bin | Not compileable | Information file about all referenced assets used in Tools. |
| Bitmap Font | vfont | Not compileable | Bitmap font. |
| Processing Graph | vpram | ? | Processing Graph. Precursor to legacy VMDL nodes. |
| Surface Graph | vsgraph | ? | Surface Graph. Unknown. |