SteamDatabase / ValveResourceFormat

πŸ”¬ Valve's Source 2 resource file format parser and decompiler

Home Page:https://vrf.steamdb.info

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

πŸ”¬ Valve's Source 2 resource file format parser and decompiler

https://vrf.steamdb.info

License:MIT License


Languages

Language:C# 94.7%Language:GLSL 5.3%Language:JavaScript 0.0%