craftablescience / sourcepp
Several modern C++20 libraries for sanely parsing Valve formats.
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing craftablescience/sourcepp in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewSource Pretty Parsers Several modern C++20 libraries for sanely parsing Valve formats. Other Languages Wrappers for libraries considered complete exist for C, C#, and/or Python, depending on the library. The C# wrappers can be found on NuGet in the sourcepp package. The Python wrappers can be found on PyPI in the sourcepp package. Included Libraries Library Supports Read Write Bindings bsppp BSP v17-27 • Console modifications • Left 4 Dead 2 modifications • Strata Source modifications ✅ ✅ Python fspp * Source 1 filesystem accessor ✅ ✅ gamepp Get Source engine instance window title/position/size ✅ ❌ C C# Python Run commands in a Source engine instance remotely ❌ ✅ kvpp DMX • Legacy binary v1-2 encoding ( binary_vN ) • Legacy SFM v1-9 encoding ( sfm_vN ) • Binary v1-5, v9 encodings ( binary , binary_seqids ) • srctools encodings ( unicode_* ) ✅ ❌ Python KeyValues v1 Binary ✅ ✅ KeyValues v1 Text † ✅ ✅ mdlpp * MDL v44-49 ✅ ❌ VTX v7 ✅ ❌ VVD v4 ✅ ❌ sndpp * WAV ✅ ❌ XWV v0-1, v4 ✅ ❌ steampp Find Steam install folder ✅ • C C# Python Find installed Steam games ✅ • Find Steam game library assets ✅ • toolpp FGD (Source 1) • J.A.C.K. modifications • Hammer++ modifications • Strata Source modifications ✅ ✅ Python WC (CmdSeq) v0.1-0.2 • Hammer++ modifications • Strata Source modifications ✅ ✅ vcryptpp VICE encrypted files ✅ ✅ C C# Python VFONT encrypted fonts ✅ ✅ vpkpp 007 v1.1, v1.3 (007 - Nightfire) ✅ ❌ C C# Python APK (Fairy Tale Busters) ✅ ✅ FGP v2-3 (PS3, Orange Box) ✅ ✅ FPX v10 (Tactical Intervention) ✅ ✅ GCF v6 ✅ ❌ GMA v1-3 (Garry's Mod) ✅ ✅ HOG (Descent) ✅ ❌ OL (Worldcraft Object Library) ✅ ❌ ORE (Narbacular Drop) ✅ ❌ PAK (Quake, WON Half-Life) • SiN modifications • HROT modifications ✅ ✅ PCK v1-2 (Godot Engine) ✅ ✅ VPK pre-v1, v1-2, v54 • Counter-Strike: 2 modifications • Counter-Strike: Source ClientMod modifications ✅ ✅ VPK (Vampire: The Masquerade - Bloodlines) ✅ ✅ VPP v1-3 (Red Faction) ✅ ❌ WAD v3 ✅ ✅ XZP v6 (Xbox, Half-Life 2) ✅ ❌ ZIP • BEE_PACK alias (BEE2.4 Package) • BMZ alias (Source 1 Bonus Maps) • FPK alias (Tactical Intervention) • PK3 alias (Quake III) • PK4 alias (Quake IV, Doom 3) • PKZ alias (Quake II RTX) • XZP2 modifications (X360 & PS3, misc. Source 1 titles) ✅ ✅ vtfpp APNG ✅ ❌ C C# Python BMP ✅ ✅ EXR v1 ✅ ✅ FRAMES (PS3, Orange Box) ✅ ❌ GIF ✅ ❌ HDR ✅ ✅ JPEG ✅ ✅ PIC ✅ ❌ PNG ✅ ✅ PNM (PGM, PPM) ✅ ❌ PPL v0 ✅ ✅ PSD ✅ ❌ QOI ✅ ✅ SHT v0-1 ✅ ✅ TGA ✅ ✅ TTX (TTH, TTZ) v1.0 ✅ ✅ VBF v3 ✅ ❌ VTF v7.0-7.6 • Strata Source modifications • XTF v5.0 (Xbox, Half-Life 2) • VTFX v8 (X360 & PS3, Orange Box) • VTF3 v8 (PS3, Portal 2 & CS:GO) ✅ ✅ WebP ✅ ✅ (\*) These libraries are incomplete and still in development. Their interfaces are unstable and will likely change in the future. Libraries not starred should be considered stable, and their existing interfaces will not change much if at all. Note that wrappers only exist for stable libraries. (†) Many text-based formats in Source are close to (if not identical to) KeyValues v1, such as VMT and VMF). Gallery Anything using the parser set that I know of, directly or indirectly. These are only the tools and games using that I know of. If you would like to be listed here, email me or join my Discord server, I'd love to hear from you! Tools • fgptool: A tool to crack the filepath hashes in The Orange Box PS3 file groups. • fOptimizer: A GUI-based collection of tools written in Python for cutting down on unnecessarily bloated Garry's Mod addon sizes. • gimp-vtf: A GIMP plugin to load and save VTF files. • [gm_addon_optimization_tricks](https://github.com/wrefgtzweve/gm_ad _...truncated for preview_