VPKEdit is an open source MIT-licensed tool that can extract from, preview the contents of and write to several pack file formats. It also supports creating new VPKs.
Please read this file for step-by-step installation instructions.
Supported file formats:
Format | Description | Create | Read | Write |
---|---|---|---|---|
BMZ | Bonus Map Zip (Source Engine) | ❌ | ✅ | ✅ |
BSP | Source 1 Map | N/A | ✅ | ✅ |
FPX | VPK modification (Tactical Intervention) | ❌ | ✅ | ✅ |
GCF | Game Cache File (Pre-SteamPipe Steam games) | ❌ | ✅ | ❌ |
GMA | Garry's Mod Addon | ❌ | ✅ | ✅ |
GRP | Game Resource Package (Build Engine) | ❌ | ✅ | ✅ |
PAK | PAcK file (Quake, original Half-Life, etc.) | ❌ | ✅ | ✅ |
PCK | Godot PaCK file (Standalone or embedded) | ❌ | ✅ | ✅ |
VPK | Valve PacK file (Source Engine) | ✅ | ✅ | ✅ |
ZIP | ZIP file (Uncompressed) | ❌ | ✅ | ✅ |
Preview files contained within the pack file without extracting them:
Create VPKs of any version from scratch or an existing folder
Add and remove files and folders from writable pack files
Extract files and folders from readable pack files
Switch version of existing VPKs
Native Linux compatibility
User interface translated to the following languages (support the translation effort here):
Please read this file to see all keyboard shortcuts.
A separate application with no external dependencies (vpkeditcli
) provides a command-line interface. Currently it can only create VPK files.
See the open issues on this repository marked as an enhancement.
This project accepts a wide range of contributions, mostly code and translations. Code contributions are done through this GitHub repository. Translations are open to everyone, only requiring a free POEditor account, and are hosted at https://poeditor.com/join/project/yxR9MLc9X2. Any contributors will be added to the credits in the form of a text file shipped with the CLI application and a popup in the GUI application.
This tool is powered by an open-source pack file editing library, libvpkedit
. This library's code is stored in this same repository,
written in C++20 and also under the MIT license. Its code was initially based off of ValvePak
and the Valve Developer Wiki (see the credits for more information).
A C wrapper library, libvpkeditc
, is also present in this repository, and its compilation can be enabled in the CMake options. It translates the C++ library
into a C interface with largely minimal to no overhead.