Skip to content

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

License

Notifications You must be signed in to change notification settings

ttrebuchon/ValveResourceFormat

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

βš’ You can download latest unstable build from AppVeyor.

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 πŸ‘ NTRO, KV3
vmat Material πŸ‘ NTRO
vmks Sheet No
vmesh Mesh πŸ‘
vtex Compiled Texture πŸ‘ DXT1, DXT5, I8, RGBA8888, R16, RG1616, RGBA16161616, R16F, RG1616F, RGBA16161616F, R32F, RG3232F, RGB323232F, RGBA32323232F, BC6H, BC7, IA88, PNG, JPG, ETC2, ETC2_EAC, BGRA8888, ATI1N, ATI2N
vmdl Model πŸ‘
vphys Physics Collision Mesh No
vsnd Sound πŸ‘ wav, mp3
vmorf MorphSet No
vrman ResourceManifest πŸ‘
vwrld World πŸ‘
vwnod WorldNode πŸ‘
vvis WorldVisibility No
vents EntityLump πŸ‘
vsurf Surface Properties No
vsndevts Sound Event Script πŸ‘ KV1, πŸ‘Ž KV3
vsndstck Sound Stack Script πŸ‘ KV1, πŸ‘Ž KV3
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) πŸ‘ Handled by ValvePak
vcs Compiled Shader ❓ Started work in CompiledShader, see #151
vfont Bitmap Font πŸ‘ Decrypts VFONT1, supported in Source 1 (CS:GO) and Source 2 (Dota 2).
dat Closed Captions πŸ‘ Handled by ClosedCaptions
bin Tools Asset Info πŸ‘ Partially handled by 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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 96.7%
  • GLSL 3.3%