SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
|
Several modern C++20 libraries for sanely parsing Valve formats, rolled into one big repository.
Name | Supports | Read | Write | Wrappers |
---|---|---|---|---|
bsppp |
BSP v17-27 | ✅ | ✅ | |
dmxpp |
DMX Binary v1-5 | ✅ | ❌ | |
gamepp |
Get Source engine instance window title/position/size | ✅ | ❌ | |
Run commands in a Source engine instance remotely | ❌ | ✅ | ||
kvpp |
KeyValues v1* | ✅ | ✅ | |
mdlpp |
MDL v44-49† | ✅ | ❌ | |
VTX v7 | ✅ | ❌ | ||
VVD v4 | ✅ | ❌ | ||
steampp |
Find Steam install folder | ✅ | - | C |
Find installed Steam games | ✅ | - | ||
toolpp |
FGD (Source 1)
• Hammer++ modifications • Strata Source modifications |
✅ | ✅ | |
WC (CmdSeq) v0.1-0.2
• Strata Source modifications |
✅ | ✅ | ||
vicepp |
VICE Encrypted Files | ✅ | ✅ | C C# |
vpkpp |
BMZ | ✅ | ✅ | C C# |
BSP v17-27 | ✅ | ✅ | ||
FPX v10 (Tactical Intervention) | ✅ | ✅ | ||
GCF v6 | ✅ | ❌ | ||
GMA v1-3 (Garry's Mod) | ✅ | ✅ | ||
PAK (Quake, WON Half-Life) | ✅ | ✅ | ||
PCK v1-2 (Godot Engine) | ✅ | ✅ | ||
PK3 (Quake III) | ✅ | ✅ | ||
PK4 (Quake IV, Doom 3) | ✅ | ✅ | ||
VPK v1-2 | ✅ | ✅ | ||
VPK (Vampire: The Masquerade - Bloodlines) | ✅ | ✅ | ||
ZIP (and BZ2, GZ, XZ, ZSTD) | ✅ | ✅ | ||
vtfpp |
VTF v7.0-7.6 | ✅ | ✅ |
(*) Many text-based formats in Source are close to (if not identical to) KeyValues v1, such as VDF, VMT, and VMF.
(†) The MDL parser is not complete. It is usable in its current state, but it does not currently parse more complex components like animations. This parser is still in development.
steampp
is based on the SteamAppPathProvider library by @Trico Everfire and Momentum Mod contributors.vpkpp
's GCF parser was contributed by @bt and @ymgve.vtfpp
's write support is based on work by @Trico Everfire.A list of projects using the sourcepp
parser set. If you'd like to see your project here, make a PR!
vpk.exe
.sourcepp
libraries to Godot. Allows GDScript to work with the libraries, and allows Godot to directly load Source engine assets from a user project or from installed Source games.sourcepp
is used to parse Steam depot configs, as well as enable indexing the contents of VPKs.