The GM's loot engine.
Generating loot takes longer than it should. The rulebook tables, the party level, whatever compendiums are installed. And then the real time sink in prep: does this bandit's bag have a bar of soap in it? Does that make sense for the location? or if you don't prep and need some loot "you find some gold and a healing potion, again".
The cache generator handles that. One click builds a terrain-appropriate, tier-scaled loot list with masking magic item names, then drops it onto the canvas as an Item Piles container.
Cache Generator
Pick a terrain, a party tier (1–4), and a cache origin (e.g. Apothecary, Armaments or others). The generator builds a full item list: coins split, weapons, gear, consumables, scrolls. Each slot has its own reroll button. Don't like the scroll, swap just that slot. Drag the container card onto the scene and it becomes a loot pile.
![]() |
![]() |
Masked Items and Identification
Every magical item in a generated cache is masked automatically at generation. No setup required. Players see a generic name and a blank icon: "Sling" not "Sling +1", "Unidentified Scroll" not the spell name, no rarity visible. The GM sees the real item throughout. Reveal individually with the identification wand (🪄) in the item header, run a bulk reveal, or leave items masked indefinitely. Works with any compendium source.
Cursed Item Pool
A cursed item in the pool is indistinguishable from ordinary loot: same name, same icon, same rarity badge. Players see nothing unusual. The GM sees a subtle indicator next to the item and knows exactly who is carrying what. The curse only fires when they use it.
A one-click loader pulls standard cursed items from your system compendium and registers them for injection: Berserker Axe, Bag of Devouring, and more. No companion module required. The standalone pool handles the full injection and reveal lifecycle. Works with Ionrift Cursewright for the full curse escalation system.
Signature Ledger
The cache generator only means something if there's a plan underneath it. The Signature Ledger is where that plan lives: per-character milestone timelines for signature items, a party shelf for shared loot, fairness tracking by power score deviation, and a budget monitor that surfaces disparity before it becomes a table problem.
The advisory panel is visible while generating caches, so you don't forget the paladin was supposed to get a +1 shield three sessions ago.
![]() |
![]() |
Scroll Management
Generated scrolls are tagged with spell name, level, school, and class hints. Scrolls the party already has access to are deprioritised automatically. Level caps prevent out-of-tier scrolls clogging the generator, with configurable jitter for lucky rolls. Pin specific scrolls to the Scroll Plan and they bypass the jitter system entirely, guaranteed to surface at a chosen milestone.
Requirements
- Ionrift Library - required dependency.
- DnD 5e system
- Item Piles: DnD5e (recommended) - drag-to-canvas cache placement and player loot transfers.
- Ionrift Cursewright (optional) - full cursed item lifecycle with escalation, activation, and narration.
Links
- GitHub - source, issues, changelog.
- Setup Guide
- Ionrift Wiki
Part of the Ionrift Module Suite



