Sinborn Pack Fixes
A small Forge 1.20.1 compatibility mod that fixes four specific problems in packs built on HistoryStages. It was written for Sinborn Odyssey II, a 439 mod progression pack where every recipe is gated behind research scrolls, but nothing here is pack specific. If you are building anything with heavy HistoryStages coverage, you will hit at least the first of these.
What it fixes
1. The "String too big" login crash
HistoryStages syncs its stage definitions to the client in a single packet with a 262,144 character cap. A pack with full-coverage gating blows straight past that, and every player is thrown out at login with String too big or Invalid player data. This mod gzip-compresses the payload and raises the ceiling, so a complete scroll set syncs cleanly.
If your pack gates thousands of items and players cannot log in, this is almost certainly why.
2. Particle Rain load-order race
Particle Rain 4.0.0-beta.5 can read its config before it is initialised, and async sprite stitching then crashes the loading overlay. This guarantees ConfigManager.config is non-null at class init.
3. Found items stay pickable
HistoryStages' onItemPickup ignored lockItemPickup=false and ejected gated items back out of players' inventories. That breaks loot: you find a sword you have not researched yet and the game takes it off you.
This no-ops that block, so gating applies to crafting, not to possession. You can carry and use what you find. You still cannot make it until you have studied it.
4. Per-player JEI hiding
HistoryStages' built-in JEI hide only checks global stages. It never consults individual, per-player stages, so a pack that gates per player shows every item in JEI regardless of the setting.
This reimplements the hide against the individual-aware lock check, and re-applies it on stage sync and on unlock. The pass is idempotent and tracks hidden entries by ID rather than by ItemStack, so hiding survives a relog instead of quietly falling apart.
Requirements
- Minecraft 1.20.1, Forge
- HistoryStages (required)
- JEI, for fix 4
- Particle Rain, for fix 2 (optional, the fix simply does nothing without it)
Notes
- Server and client both need it, and the versions must match, since fix 1 changes how the sync packet is encoded.
- It adds no items, blocks, recipes or config. It is only patches.
- MIT licensed. Use it, fork it, ship it in your pack, no permission needed.

