GitHub - ValveResourceFormat/ValveResourceFormat: Source 2 Viewer is an all-in-one tool to browse VPK archives, view, extract, and decompile Source 2 assets, including maps, models, materials, textures, sounds, and more.
Valve's Source 2 resource file format parser, renderer, decompiler, and exporter. The library component is called ValveResourceFormat (VRF).
Contributing
This tool is based entirely on reverse engineering as Valve does not provide Source 2 documentation or code. Not all formats are fully supported. If you are interested in helping, take a look at the open issues and join our Discord. See CONTRIBUTING.md and AGENTS.md for more information.
Supported resource types
| Ext | Name | Support |
|---|---|---|
| vagrp | Animation Group | ๐ |
| valst | Action List | ๐ |
| vanim | Animation | ๐ |
| vanmgrph | Animation Graph | ๐ |
| vcd | Choreo | ๐ |
| vcdlist | Choreo Scene File Data | ๐ |
| vcompmat | Composite Material | ๐ |
| vcss | Panorama Style | ๐ |
| vdata | Data | ๐ |
| vents | EntityLump | ๐ |
| vjs | Panorama Script | ๐ |
| vmap | Map | ๐ |
| vmat | Material | ๐ |
| vmdl | Model | ๐ |
| vmesh | Mesh | ๐ |
| vmix | VMix | ๐ |
| vmks | Sheet | ๐ |
| vmorf | MorphSet | ๐ |
| vnmclip | NmClip | ๐ |
| vnmgrph | NmGraph | ๐ |
| vnmikrig | NmIKRig | ๐ |
| vnmskel | NmSkeleton | ๐ |
| vnmvar | NmGraph Variation | ๐ |
| vpcf | Particle System | ๐ |
| vpdi | Panorama Dynamic Images | ๐ |
| vphys | Physics Collision Mesh | ๐ |
| vpost | Postprocessing Settings | ๐ |
| vpram | Processing Graph Instance | ๐ |
| vpsf | Particle Snapshot | ๐ |
| vpulse | Pulse Graph Definition | ๐ |
| vrman | ResourceManifest | ๐ |
| vrmap | Resource Remap Table | No |
| vrr | Response Rules | ๐ |
| vseq | Sequence Group | No |
| vsmart | Smart Prop | ๐ |
| vsnap | Particle Snapshot | ๐ |
| vsnd | Sound | ๐ |
| vsndevts | Sound Event Script | ๐ |
| vsndstck | Sound Stack Script | ๐ |
| vsurf | Surface Properties | No |
| vsvg | Panorama Vector Graphic | ๐ |
| vtex | Compiled Texture | ๐ |
| vts | Panorama TypeScript | ๐ |
| vvis | World Visibility | ๐ |
| vwnod | World Node | ๐ |
| vwrld | World | ๐ |
| vxml | Panorama Layout | ๐ |
| econitem | Economy Item | ๐ |
| herolist | Dota Hero List | ๐ |
| item | Artifact Item | ๐ |
| vdpn | Dota Patch Notes | ๐ |
| vdvn | Dota Visual Novels | ๐ |
| bin | Tools Asset Info | ๐ Handled by ToolsAssetInfo |
| dat | Closed Captions | ๐ Handled by ClosedCaptions |
| vcs | Compiled Shader | ๐ Handled by CompiledShader |
| vdacdefs | DAC Game Defs Data | No |
| vfe | Flex Scene File | ๐ Handled by FlexSceneFile |
| vfont | Bitmap Font | ๐ Decrypts VFONT1, supported in Source 1 and Source 2. |
| vpk | Pak (package) | ๐ Handled by ValvePak |
List of supported magics
| Magic | Description |
|---|---|
0x03564B56 |
VKV\x03 - First binary keyvalues 3 encoding with custom block compression |
0x4B563301 |
KV3\x01 - Binary keyvalues 3 (version 1) |
0x4B563302 |
KV3\x02 - Binary keyvalues 3 (version 2) |
0x4B563303 |
KV3\x03 - Binary keyvalues 3 (version 3) |
0x4B563304 |
KV3\x04 - Binary keyvalues 3 (version 4) |
0x4B563305 |
KV3\x05 - Binary keyvalues 3 (version 5) |
0x564B4256 |
VBKV - binary keyvalues 1 (handled by ValveKeyvalue) |
0x55AA1234 |
VPK - valve package (handled by ValvePak) |
0x44434356 |
VCCD - closed captions |
0xC4CCACE8 |
tools asset info |
0xC4CCACE9 |
tools asset info (newer version) |
0x32736376 |
vcs2 - compiled shader |
0x414D5A4C |
LZMA compression marker |
0x64637662 |
bvcd - binary choreo scene |
0xFEEDFACE |
navigation mesh |
0xFADEBEAD |
grid navigation |
0x31415926 |
murmurhash2 seed used by StringToken |
0xEDABCDEF |
murmurhash64 seed used to encode resource IDs |
VFONT1 |
"encrypted" font file |
0x00564645 |
VFE - flex scene file |
GUI
Source 2 Viewer keeps its settings in %LocalAppData%/Source2Viewer/settings.vdf.
License
Contents of this repository are available under MIT license, except for Tests/Files folder which contains files that have likely come from Valve's games.
Code signing policy
Free code signing provided by SignPath.io, certificate by SignPath Foundation.