VRF / Valve Resource Format
Valve's Source 2 resource file format parser, decompiler, and exporter.
Source 2 files usually files 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.
Chat
Prefer IRC? Join #steamdb-vrf on chat.freenode.net
Eye catchy screenshots
![]() |
![]() |
![]() |
![]() |
What's supported?
- Model viewer
- Map viewer
- Sound player
- VPK viewer which supports opening and exporting files
- Read only VPK API
- Binary KeyValues3 parser
- NTRO support
Why does VRF suck?
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.
Supported resource types
| Ext | Name | Support |
|---|---|---|
| vanim | Animation | |
| vagrp | Animation Group | |
| vseq | Sequence Group | No |
| vpcf | Particle System | |
| vmat | Material | |
| vmks | Sheet | No |
| vmesh | Mesh | |
| vtex | Compiled Texture | |
| vmdl | Model | |
| vphys | Physics Collision Mesh | No |
| vsnd | Sound | |
| vmorf | MorphSet | No |
| vrman | ResourceManifest | |
| vwrld | World | |
| vwnod | WorldNode | |
| vvis | WorldVisibility | No |
| vents | EntityLump | |
| vsurf | Surface Properties | No |
| vsndevts | Sound Event Script | |
| vsndstck | Sound Stack Script | |
| vrmap | Resource Remap Table | No |
| vcss | Panorama Style | |
| vxml | Panorama Layout | |
| vpdi | Panorama Dynamic Images | No |
| vjs | Panorama Script | |
| vsvg | Panorama Vector Graphic | |
| vpsf | Particle Snapshot | No |
| vmap | Map | |
| Β | Β | Β |
| vpk | Pak (package) | |
| vcs | Compiled Shader | CompiledShader, see #151 |
| vfont | Bitmap Font | VFONT1, supported in Source 1 (CS:GO) and Source 2 (Dota 2). |
| dat | Closed Captions | ClosedCaptions |
| bin | Tools Asset Info | ToolsAssetInfo, see #226 |
| vdpn | Dota Patch Notes | No |
Not all formats are 100% supported, some parameters are still unknown and not fully understood.
License
Contents of this repository are available under MIT license, except for Tests/Files folder contains files which have likely come from Valve's games.




