craftablescience / VPKEdit

A library and CLI/GUI tool to create, read, and write several pack file formats
https://developer.valvesoftware.com/wiki/VPKEdit
MIT License
162 stars 15 forks source link
cpp source source-engine source2 source2-engine vpk vpk-editor
VPKEdit Logo

VPKEdit

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.

License Workflow Status Discord Ko-Fi
A screenshot of VPKEdit with a VPK and an MDL preview open in wireframe mode. A screenshot of VPKEdit with a VPK and an MDL preview open in shaded textured mode.
A screenshot of VPKEdit with a BSP and a VTF preview open. A screenshot of the command-line version of VPKEdit.

Installing

Please read this file for step-by-step installation instructions.

Features

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.

Planned Features

See the open issues on this repository marked as an enhancement.

Contributing

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.

Backend

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.