Skip to content

SteamDatabase/ValveResourceFormat

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.

VRF / Valve Resource Format

GitHub Workflow Status

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.

βš’ View the official website for downloads.

Join our Discord

Join our Discord

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.

Not all formats are 100% supported, some parameters are still unknown and not fully understood.

Supported resource types

Ext Name Support
vanim Animation πŸ‘
vagrp Animation Group πŸ‘
vanmgrph Animation Graph No
vseq Sequence Group No
vpcf Particle System πŸ‘
vmat Material πŸ‘
vmks Sheet No
vmesh Mesh πŸ‘
vtex Compiled Texture πŸ‘
vmdl Model πŸ‘
vphys Physics Collision Mesh πŸ‘
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 πŸ‘
vpost Postprocessing Settings πŸ‘
vrmap Resource Remap Table No
vcss Panorama Style πŸ‘
vxml Panorama Layout πŸ‘
vpdi Panorama Dynamic Images No
vjs Panorama Script πŸ‘
vsvg Panorama Vector Graphic πŸ‘
vsnap Particle Snapshot πŸ‘
vpsf Particle Snapshot No
vmap Map πŸ‘
vrr Response rules πŸ‘
Β  Β  Β 
vpk Pak (package) πŸ‘ Handled by ValvePak
vcs Compiled Shader πŸ‘ Partially supported by CompiledShader
vfont Bitmap Font πŸ‘ Decrypts VFONT1, supported in Source 1 and Source 2.
dat Closed Captions πŸ‘ Handled by ClosedCaptions
bin Tools Asset Info πŸ‘ Partially handled by ToolsAssetInfo
vdpn Dota Patch Notes πŸ‘
vdacdefs DAC Game Defs Data No
vfe Face poser No
vcd VCD No
vcdlist VCD list No

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)
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

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.