Source 2 Viewer
Browse VPK archives, view, export, and decompile Source 2 assets, including maps, models, materials, textures, sounds.
Fully open-source and reverse-engineered.
New version released since your last visit — view changelog
Render, inspect, extract, and decompile files from CS2, Dota 2, Deadlock, Half-Life: Alyx, and every other Source 2 game.
Preview any model with its animations, skeleton, and physics.
Open game archives without unpacking them, and extract single files or whole folders.
Animation graphs, Pulse scripts, and map entity I/O drawn as node graphs.
Use the same .NET libraries as Source 2 Viewer in your own projects, or export files from scripts with the command line tool.
Export and decompile Source 2 resources from the command line on Windows, Linux, and macOS.
.NET library that powers Source 2 Viewer (S2V), also known as VRF. This library can be used to open and extract Source 2 resource files programmatically.
// 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);
Source 2 Viewer is open-source and built by volunteers. Every contribution helps make it better for everyone.