lurelockv1.0

The mod format

route: folder → stamp → manifest → revert contract: bytes-in, bytes-out

A mod is a folder. Lurelock doesn't compile, inject or wrap anything — it walks your folder, copies the files into the client's content tree, and records every copy in the manifest. Disabling a mod is a manifest replay in reverse.

01The format

A mod folder contains any set of files that map onto the client's content paths. A mod.json is optional but recommended:

my-mod/
├─ mod.json
└─ content-swap/
   ├─ textures/
   │  └─ splash.png
   └─ fonts/
      └─ interface.ttf
{
  "id": "my-mod",
  "name": "My Mod",
  "version": "1.0.0",
  "stamp": "content-swap/",
  "author": "you",
  "note": "Splash and interface font swap."
}
  • stamp — folder inside the mod that maps onto the client content root. Defaults to the whole mod folder.
  • Paths inside stamp must stay under the content root. The manager refuses absolute paths or .. segments.

02Where files land

Targets are resolved from the located client install at stamp time. Typical content paths:

targettypical path
texturesClient/Content/textures
fontsClient/Content/fonts
soundsClient/Content/sounds
themes / uiClient/Content/ui

If a target folder doesn't exist, Lurelock creates it — and records that fact, so restore can remove the folder again when it was us who made it.

03The manifest

Every instance keeps a manifest of stamps:

{
  "instance": "brim-main-01",
  "stamps": [
    {
      "mod": "my-mod",
      "created_dirs": ["textures"],
      "files": ["textures/splash.png"],
      "original_sha256": "e3b0c…",
      "ts": "2026-09-18T21:04:00Z"
    }
  ]
}

Before copying, Lurelock snapshots the destination file's original hash when it isn't already tracked. Restore finds the original_sha256 and puts that byte-for-byte data back — which is why "restore clean client" is exact rather than approximate.

04Toggling

Toggle off = revert this mod's files (with originals restored), keep its manifest entry. Toggle on = re-stamp from the mod folder. Nothing in the mod folder itself is ever modified by the toggle.

05Restore clean client

From the manager deck: restore clean client replays the manifest backwards for the whole instance — files back to their originals, then created directories removed. The mod folders in your profile are left untouched, so nothing is destroyed, only disassembled.

06Packing & sharing

The manager's "pack" action zips a mod folder into a .lurelock file (a zip with mod.json at the root). The stamp contract and path limits are enforced on import, so a hostile pack can't write outside the content root.