Tools
The toolbox
Everything Grimoire is built on is open: the code, the format for trading mod loadouts, and the companion tool that gets around Deadlock's mod limit.
Slush97/grimoire
The source
The desktop client, the docs and the issue tracker all live in one public repo. Electron and React on the desktop, better-sqlite3 underneath.
Built with
- MIT
- Fork it, read it, ship your own. No login, no subscription.
- Works offline
- Managing the mods you already have needs no internet. The docs list every request the app does make.
- 1-Click
- The Grimoire button on a GameBanana mod page downloads, scans, extracts and registers the mod.
mp1
The mod profile spec
A mod profile is a whole loadout: every mod, in priority order, with its settings. The mp1 format makes one portable and readable by any tool, not only Grimoire.
- Share codes
- mp1:<base64url(gzip(json))>. A 30-mod profile fits in 1 to 2 KB, small enough to paste in a Discord message.
- Files
- Or save it as .modprofile.json (proposed MIME application/vnd.modprofile+json). Readable and diffable.
- Open
- Game and manager agnostic. The spec is public, with resolution rules, a conformance checklist and security notes.
- v1.1
- Grimoire layers optional extensions on top (crosshair, autoexec) without breaking other readers.
mp1:H4sIAAAA...<gzipped json> Rust
vpkmerge
Combines a pile of .vpk files into one, or splits one back into many. Deadlock mounts roughly 100 mod VPKs at most, so pre-merging lets you run a stack the engine would otherwise refuse.
- CLI and GUI
- A command-line binary and a desktop app with drag and drop, reorderable priority, and a conflict resolver with Source 2 texture previews.
- Collisions
- LastWins (the default), FirstWins, or Error (--strict) to refuse to merge on any conflict.
- Library
- The vpkmerge-core crate: inspect(), detect_conflicts(), merge(), split(). Reads chunked VPKs transparently.
vpkmerge out_dir.vpk mod1_dir.vpk mod2_dir.vpk --verbose