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, Deadlock, and more…
A cross-platform console application that can export and decompile Source 2 resources similar to the main application.
Download CLI for your OS from GitHub.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.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.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// 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);