Source 2 Viewer

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.

This open-source project is based entirely on a reverse engineered effort as there is no Source 2 SDK.

All Source 2 projects are supported including Counter-Strike 2, Dota 2, Half-Life: Alyx, SteamVR, Aperture Desk Job, and more…

Inferno Night by Angel, created by decompiling with Source 2 Viewer.

Command line utility

A cross-platform console application that can export and decompile Source 2 resources similar to the main application.

Download Decompiler for your OS from GitHub

ValveResourceFormat

.NET library that powers Source 2 Viewer, also known as VRF. This library can be used to open and extract Source 2 resource files programmatically.

Get ValveResourceFormat from NuGet | View on GitHub

ValvePak

.NET library to read Valve Pak (VPK) archives. VPK files are uncompressed archives used to package game content. This library allows you to read and extract files out of these paks.

Get ValvePak from NuGet | View on GitHub

ValveKeyValue

.NET library to read and write files in Valve key value format. This library aims to be fully compatible with Valve's various implementations of KeyValues format parsing.

Get ValveKeyValue from NuGet | View on GitHub
C#
// Open package and read a file
using var package = new Package();
package.Read("pak01_dir.vpk");

var packageEntry = package.FindEntry("textures/debug.vtex_c");
package.ReadEntry(packageEntry, out var rawFile);

// Read file as a resource
using var ms = new MemoryStream(rawFile);
using var resource = new Resource();
resource.Read(ms);

Debug.Assert(resource.ResourceType == ResourceType.Texture);

// Get a png from the texture
var texture = (Texture)resource.DataBlock;
using var bitmap = texture.GenerateBitmap();
var png = TextureExtract.ToPngImage(bitmap);

File.WriteAllBytes("image.png", png);
View and export files in VPK packages
Preview maps and models in 3D space
View and export textures along with other resources
Use the command line utility
Maps, models, and meshes can be exported to glTF format. Maps can be decompiled to vmap for use in Hammer editor. Models can be decompiled to ModelDoc format. Exporting materials will correctly split textures. Source 2 Viewer is also known as S2V.
Trending workshop items. If you want to appear here, add a link to Source 2 Viewer in the item description: https://valveresourceformat.github.io