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,
Deadlock,
Half-Life: Alyx,
SteamVR,
and more…
A cross-platform console application that can export and decompile Source 2 resources similar to the main application.
// 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 API documentation