• Stars
    star
    1,048
  • Rank 43,968 (Top 0.9 %)
  • Language
    C#
  • License
    MIT License
  • Created about 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔬 Valve's Source 2 resource file format parser and decompiler

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.

More Repositories

1

SalienCheat

👽 Cheating Salien minigame, the proper way
PHP
936
star
2

SteamTracking

🕵 Tracking things, so you don't have to
JavaScript
844
star
3

BrowserExtension

💻 SteamDB's extension for Steam websites
JavaScript
710
star
4

GameTracking-Dota2

📥 Game Tracker: Dota 2
Lua
648
star
5

GameTracking-CS2

📥 Game Tracker: Counter-Strike 2
JavaScript
625
star
6

steamdb.info-issues

🚱 Issue tracker for the SteamDB website
412
star
7

Protobufs

👑 Automatically tracked Steam, CS:GO, Dota 2, Artifact, Underlords and TF2 protobufs.
Shell
340
star
8

GameTracking

🛢 Dumping things, so you don't have to
Shell
254
star
9

SteamLinux

🐧 The Big List of Steam Games on GNU/Linux
PHP
207
star
10

FileDetectionRuleSets

🔎 Rules to detect game engines and other technologies based on Steam depot file lists
PHP
177
star
11

ValveKeyValue

📃 Next-generation Valve's key value framework for .NET
C#
104
star
12

UndocumentedAPI

💩 Undocumented Steam WebAPI Methods
91
star
13

ValvePak

📦 Fully fledged library to work with Valve's Pak archives in .NET
C#
90
star
14

MonsterMinigame

☠ Steam Summer Sale 2015 Monster Minigame fully reimplemented server clone
JavaScript
84
star
15

GameTracking-TF2

📥 Game Tracker: Team Fortress 2
Shell
79
star
16

steamstat.us

✅ Front-end of Steam services status website
HTML
74
star
17

SteamAppInfo

Parser for appinfo.vdf and packageinfo.vdf files used by the Steam client
C#
64
star
18

GameTracking-Underlords

📥 Game Tracker: Dota Underlords
CSS
36
star
19

TowerAttack

📊 Historic data of Steam Summer Sale 2015 minigame rooms and their levels
25
star
20

GameTracking-HalfLifeAlyx

📥 Game Tracker: Half-Life: Alyx
CSS
24
star
21

SteamworksDocumentation

📜 Scraper for Steamworks documentation
PHP
24
star
22

GameTracking-SteamVR

📥 Game Tracker: SteamVR Home
JavaScript
23
star
23

SteamTracking-GDPR

📜 Tracking Valve's GDPR related pages
Python
20
star
24

RemoteUI

🏴 Pewpew using unfinished features before they're official released arrrooo
HTML
19
star
25

GameTracking-Dota2Test

📥 Game Tracker: Dota 2 Test
CSS
19
star
26

SteamToTwitter

🕊 Tweets announcements from various Steam groups
C#
16
star
27

RemoteControlDocs

📻 API Documentation for the Steam Remote Control
15
star
28

GameTracking-Artifact-Beta

📥 Game Tracker: Artifact Foundry
Lua
11
star
29

GameTracking-Artifact

📥 Game Tracker: Artifact
CSS
9
star
30

SteamTokenDumper

🔢 Submit users' PICS access tokens to SteamDB
C#
7
star
31

GameTracking-Underlords-Android

📥 Game Tracker: Dota Underlords (Android)
Java
6
star
32

SteamHelpTracking

📜 Tracking Steam Help articles
PHP
2
star
33

.github

💗 Organization-wide community health files
1
star
34

steam-advanced-access-fetch-players

📈 Simple script to fetch Steam player count
JavaScript
1
star