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:
- Audio
- Text files (any encoding)
- KeyValues files (text files with syntax highlighting)
- Images
- Source 1 Textures
- Source 1 Models
-
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
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.