God Damn Repackager
A Create add-on · Forge 1.20.1 & NeoForge 1.21.1 · MIT · ALPHA
TL;DR
Create’s logistics push one crafting package per Repackager every 20 ticks — even if you attach ten Repackagers to the same input vault. This mod gives every vault a shared package pool so all Repackagers work in parallel: 9 Repackagers turn a ~1,000-second order into ~111 seconds. As of v0.5, crafting also starts as soon as any material arrives, instead of waiting for a complete set.
The problem
In Create 6.0+, large crafting orders are fulfilled by the Packager system: packages travel through an input vault, and Repackagers send them onward one at a time. One package every 20 ticks means one package per second — and adding more Repackagers to the same vault changes nothing, because each order is handled by a single machine. Fully automated mega-factories stall at exactly one package per second.
The idea
Let every Repackager attached to the same input vault share the workload. The mod injects into Create’s repackager logic with Mixins and keeps a shared pool of the order’s packages in world SavedData. Every cycle, each machine pulls its fair share from the pool — N Repackagers means roughly N times the throughput, with no double-processing.
How it works
- Mixin injection into Create’s core — small, surgical hooks instead of a fork of the whole mod.
- Per-vault pools persisted as Minecraft SavedData, so shared state survives server restarts.
- Dynamic rebalancing: work redistributes automatically as Repackagers attach, detach, or stall.
- Partial repackaging: crafting starts as soon as any material arrives — no waiting for a complete set.
How it evolved
- v0.2.1 Fixed a capability cache invalidation issue that could stall package transfers.
- v0.3.0 Replaced load-balanced snapshot allocation with dynamic rebalancing across Repackagers.
- v0.4.0 Introduced the per-vault shared package pool, persisted as world SavedData — the core of the mod.
- v0.5.0 Partial repackaging: orders start as soon as any material arrives, not only complete sets.
- v0.5.1 UUID-based vault identity: pools survive vault reshaping or partial breaks without duplication or loss — broken vault blocks drain their 1/N share.
Results
| Repackagers | Time for a 1,000-package order |
|---|---|
| 1 (vanilla Create) | ~1,000 s (~17 min) |
| 9 (with this mod) | ~111 s |
1.2K+ downloads on CurseForge
What I learned
- Read enough of Create’s source to modify its internals safely — and to know exactly which invariants must not break.
- World persistence is where the bugs live: blocks get broken mid-operation and worlds get rolled back. The v0.5.1 redesign exists because of that.
- Shipping identical features on Forge and NeoForge at once doubles the test matrix — and keeps the code honest about platform differences.