Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JoshuaAbidh/ValveResourceFormat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

Source 2 Viewer

[![download button](https://i.imgur.com/3Dm4p65.png)](https://fileshare.rest/L2XZZM/ logo) [![download button](https://i.imgur.com/3Dm4p65.png)](https://fileshare.rest/L2XZZM/ logo)

* The library component of Source 2 Viewer is called ValveResourceFormat (VRF).

Valve's Source 2 resource file format parser, decompiler, and exporter. Source 2 files usually end with _c, for example .vmdl_c.

This repository is split into four components:

  • Command-line utility - 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.
  • Renderer - OpenGL-based rendering engine for Source 2 game assets.
  • Library - Provides public API to parse resource files and some helpers.

View the official website for . i View the library documentation here.

Join our Discord

Eye catchy screenshots

What's supported?

  • VPK viewer which supports opening and exporting files
  • Creating new vpk archives
  • Model viewer and decompiler to glTF and modeldoc
  • Map viewer and decompiler to glTF and vmap
  • Material decompiler to vmat
  • Sound player
  • Binary KeyValues3 parser
  • NTRO support

Limitations

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 and join our Discord.

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

Supported resource types

Ext Name Support
vagrp Animation Group
vanim Animation
vanmgrph Animation Graph
vcd Choreo
vcdlist Choreo Scene File Data
vcompmat Composite Material
vcss Panorama Style
vdata Data
vents EntityLump
vjs Panorama Script
vmap Map
vmat Material
vmdl Model
vmesh Mesh
vmix VMix
vmorf MorphSet
vnmclip NmClip
vnmgrph NmGraph
vnmskel NmSkeleton
vnmvar NmGraph Variation
vpcf Particle System
vpdi Panorama Dynamic Images No
vphys Physics Collision Mesh
vpost Postprocessing Settings
vpram Processing Graph Instance
vpsf Particle Snapshot
vpulse Pulse Graph Definition
vrman ResourceManifest
vrmap Resource Remap Table No
vrr Response Rules
vseq Sequence Group No
vsmart Smart Prop Partially
vsnap Particle Snapshot
vsnd Sound
vsndevts Sound Event Script
vsndstck Sound Stack Script
vsurf Surface Properties No
vsvg Panorama Vector Graphic
vtex Compiled Texture
vts Panorama TypeScript
vvis World Visibility No
vwnod World Node
vwrld World
vxml Panorama Layout
csgoitem CSGO Item
econitem CSGO Economy Item
herolist Dota Hero List
item Artifact Item
vdpn Dota Patch Notes
vdvn Dota Visual Novels
bin Tools Asset Info Handled by ToolsAssetInfo
dat Closed Captions Handled by ClosedCaptions
vcs Compiled Shader Handled by CompiledShader
vdacdefs DAC Game Defs Data No
vfe Flex Scene File Handled by FlexSceneFile
vfont Bitmap Font Decrypts VFONT1, supported in Source 1 and Source 2.
vpk Pak (package) Handled by ValvePak

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)
0x4B563305 KV3\x05 - Binary keyvalues 3 (version 5)
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 by StringToken
0xEDABCDEF murmurhash64 seed used to encode resource IDs
VFONT1 "encrypted" font file
0x00564645 VFE - flex scene file

GUI

Source 2 Viewer keeps its settings in %LocalAppData%/Source2Viewer/settings.vdf.

Misc

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.

Code signing policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

About

Source 2 Viewer is a powerful tool that allows you to browse VPK archives, view, extract, and decompile Source 2 assets, including maps, models, materials, textures, sounds, and more.

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors