* The library component of Source 2 Viewer is called ValveResourceFormat (VRF).
Valve's Source 2 resource file format parser, decompiler, and exporter.
Source 2 files usually end with _c, for example .vmdl_c.
This repository is split into three components:
- CLI Decompiler - File data viewer, decompiler and a playground for testing new formats and features.
- GUI Viewer - A vpk archive viewer and extractor. Also supports viewing resources such as sounds, textures, models, maps, and much more.
- Library - Provides public API to parse resource files and some helpers.
β View the official website for downloads.
![]() |
![]() |
![]() |
![]() |
- VPK viewer which supports opening and exporting files
- Creating new vpk archives
- Model viewer and decompiler to glTF and modeldoc
- Map viewer and decompiler to glTF and vmap
- Material decompiler to vmat
- Sound player
- Binary KeyValues3 parser
- NTRO support
This tool is based entirely on a reverse engineered effort because Valve does not provide any documentation or Source 2 code (SDK or engine code), while the Source 1 SDK and leaked engine code are helpful, a lot of systems and formats have changed.
The code contained in this repository is based on countless hours of reverse engineering Source 2 games and not all intricate details have been figured out.
If you are interested in helping, take a look at the open issues and join our Discord.
Not all formats are 100% supported, some parameters are still unknown and not fully understood.
| Ext | Name | Support |
|---|---|---|
| vagrp | Animation Group | π |
| vanim | Animation | π |
| vanmgrph | Animation Graph | No |
| vcompmat | Composite Material | No |
| vcss | Panorama Style | π |
| vdata | Data | π |
| vents | EntityLump | π |
| vjs | Panorama Script | π |
| vmap | Map | π |
| vmat | Material | π |
| vmdl | Model | π |
| vmesh | Mesh | π |
| vmorf | MorphSet | π |
| vpcf | Particle System | π |
| vpdi | Panorama Dynamic Images | No |
| vphys | Physics Collision Mesh | π |
| vpost | Postprocessing Settings | π |
| vpsf | Particle Snapshot | No |
| vpulse | Pulse Graph Definition | No |
| vrman | ResourceManifest | π |
| vrmap | Resource Remap Table | No |
| vrr | Response rules | π |
| vseq | Sequence Group | No |
| vsmart | Smart Prop | Partially |
| 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 | WorldVisibility | No |
| vwnod | WorldNode | π |
| vwrld | World | π |
| vxml | Panorama Layout | π |
| Β | Β | Β |
| vpk | Pak (package) | π Handled by ValvePak |
| vcs | Compiled Shader | π Handled by CompiledShader |
| vfont | Bitmap Font | π Decrypts VFONT1, supported in Source 1 and Source 2. |
| dat | Closed Captions | π Handled by ClosedCaptions |
| bin | Tools Asset Info | π Handled by ToolsAssetInfo |
| vdpn | Dota Patch Notes | π |
| vdacdefs | DAC Game Defs Data | No |
| vfe | Flex Scene File | π Handled by FlexSceneFile |
| vcd | VCD | No |
| vcdlist | VCD list | π |
| 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) |
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 |
0x31415926 |
murmurhash2 seed used in various places (like entity keys) |
VFONT1 |
"encrypted" font file |
0x00564645 |
VFE - flex scene file |
Contents of this repository are available under MIT license, except for Tests/Files folder contains files which have likely come from Valve's games.




