All tools

mjolnir CLI

Inspect and patch tag data from the command line.

The same tag engine the editor runs on, driven from a shell. It reads an installed game read-only, prints fields with their resolved values, and patches one by name — as a dry run until you ask for a file. It is also how the format's claims are checked, over all 12,290 shipped tags at once.

Previews

No screenshots yet.

Build it

No binary is published yet — build it from the repository. The result lands at target/release/mjolnir.

1
Clone
git clone https://github.com/devnull9090/mjolnir-core
2
Build
cd mjolnir-core; cargo build --release -p blam-cli
3
Point it at the game
$env:HCE_PAKS = "C:\Program Files (x86)\Steam\steamapps\common\Halo Campaign Evolved\Meteorite\Content\Paks"
4
Try it
.\target\release\mjolnir.exe groups

What it does

Find your way around

mjolnir groups summarises all 101 tag groups with counts; mjolnir list and mjolnir values take you from a group to one tag's fields, with enums, bitfields, references and colours resolved to names.

Set a field by path

The same dotted path the editor shows on hover. Every set reports which bytes moved, re-parses the result and reads the value back out — and writes nothing until you pass --out.

Check the whole install

validate, roundtrip and recode run over all 12,290 tags: structural invariants, byte-identical rewrites, and a decode/re-encode of every field. None of them writes anything.

Poke the running game

mjolnir poke locates a tag's payload in the live process and writes a field into it, confirming the bytes afterwards. Gone at the next launch, and never on disk.

Export the schema

mjolnir defs dumps the whole definition corpus as JSON — field names, types and offsets. Schema only: extracted tag values are game content and stay on your machine.

What you need

ToolchainRust (stable) — cargo build
GameHalo Campaign Evolved (Steam)
PathsHCE_PAKS env var, or --paks
OodleOptional — OODLE points at a DLL for ~4× faster decodes

Nothing shipped is ever modified: the game's containers are opened read-only, and an edit produces a new file.