Skip to content

THE TOOLBOX

✦ the source, the spec & the merger ✦

Everything that makes Grimoire tick is open and free. Here is the code, the format slush designed for trading mod loadouts, and the companion tool that beats Deadlock's mod limit.

THE SOURCE CODE!!1!

📜 Slush97/grimoire · the whole grimoire

Grimoire is an open-source mod manager for Deadlock. The desktop client, the docs, the issue tracker: all of it lives in one public repo. Star it, fork it, file a bug, or just read how the sausage is made.

  • MITMIT licensed, free forever. Fork it, read it, ship your own. No login, no subscription, the mods are yours.
  • OFFOffline first. No telemetry, no heartbeat, no analytics, EVER. A fresh install phones home for NOTHING!!!
  • GBFull GameBanana 1-Click install. Click the Grimoire button on any Deadlock mod page and it downloads, scans, extracts, and registers itself.
  • LIBLibrary manager, Hero Locker, and shareable profiles all baked in. Electron + React on the desktop, better-sqlite3 underneath.

THE MOD PROFILE SPEC

⚗ mp1 · the format slush designed

A mod profile is your whole loadout: every mod, in priority order, with its settings. The mp1 format makes one portable, shareable, and readable by any tool, not just Grimoire. Built so a loadout outlives the app that made it.

  • mp1Share a whole mod loadout as one tiny code: mp1:<base64url(gzip(json))>. A 30 mod profile squeezes down to 1 to 2 KB. Paste it in a Discord message!!!
  • JSONOr save it as a .modprofile.json file (proposed MIME application/vnd.modprofile+json). Human readable, diff-able, archivable.
  • OPENGame AND manager agnostic by design. Any tool can read or write it: the spec is public, with full resolution rules + a conformance checklist + security notes.
  • v1.1Schema version 1.1. Grimoire layers optional extensions on top (crosshair settings, autoexec commands) without breaking other readers.

how a share code looks
mp1:H4sIAAAA...<gzipped json>

VPKMERGE

⚒ vpkmerge · beat the mod limit

vpkmerge combines a pile of Valve Pak (.vpk) files into one (or splits one back into many). Deadlock caps mounted mod VPKs at roughly 100, so pre-merging lets you run a stack the engine would otherwise refuse.

  • 100Deadlock only mounts ~100 mod VPKs at once. vpkmerge fuses many VPKs into one, so you can run WAY more mods than the engine wants to allow!!!
  • GUIShips as a CLI binary AND a desktop GUI: drag and drop, reorderable mod priority, and a visual conflict resolver with Source 2 texture previews.
  • WINThree collision policies: LastWins (default), FirstWins, or Error (--strict, refuse to merge on any conflict). You decide who wins.
  • RSPure-Rust vpkmerge-core crate under the hood: inspect(), detect_conflicts(), merge(), split(). Reads chunked VPKs (_dir + _000, _001...) transparently.

merge from the command line
vpkmerge out_dir.vpk mod1_dir.vpk mod2_dir.vpk --verbose