FTB Teams was the only thing holding FTB Quests down -- FTB Quests' 1.21.1 build requires it, and its bytecode references dev/ftb/mods/ftbteams in 14 classes including the event handler, so it breaks at runtime without it. With quests unused, the whole block goes. XMod Compat only bridged Quests/Chunks/Ranks, all of which are now gone. FTB Library stays because FTB Backups 3 builds its config UI on it (Panel/Theme/Widget/ConfigGroup/ConfigValue/SNBTCompoundTag, 13 classes, and it does not bundle them despite declaring only neoforge). Architectury API stays because FTB Library references it in 47 classes. Verified before removing: FTB Library and FTB Backups 3 reference ftbteams, ftbquests and ftbxmodcompat in zero classes each, and nothing else in the pack references them. CurseForge-sourced mods drop from 9 to 5; pack is 146 mods. OPAC's built-in party system is now the only one, so primaryPartySystem should be left at its default rather than pointed at ftbteams.
180 lines
11 KiB
Markdown
180 lines
11 KiB
Markdown
# FTB Chunks -> Open Parties and Claims + Xaero's maps
|
|
|
|
**Status:** shipped - 2026-09-30 (`1d02bf1`, pushed). FTB Quests/Teams/XMod Compat removed after the
|
|
swap; see section 8.
|
|
**Decision:** replace FTB Chunks with **Open Parties and Claims (OPAC)** for claims/forceloading and
|
|
**Xaero's World Map + Minimap** for mapping, and drop the rest of the FTB suite that depended on it.
|
|
Remaining FTB mods: **FTB Backups 3** and **FTB Library** only.
|
|
**Accepted cost:** every player re-claims their land and re-creates their waypoints, and any FTB Quests
|
|
content and per-team progress is discarded.
|
|
|
|
Confidence tags follow `FINDINGS.md`: **VERIFIED** / **DOCUMENTED** / **COMMUNITY** / **INFERENCE**.
|
|
|
|
---
|
|
|
|
## 1. Why this works at all
|
|
|
|
The pack's earlier review (`MODLIST-REVIEW.md` §8) recommended keeping FTB Chunks on the grounds that
|
|
"wholesale replacement breaks FTB Quests/Teams". That is only true of a *wholesale* FTB removal.
|
|
**VERIFIED:** FTB Quests' build declares `ftb-library` + `ftb-teams` as required and `ftb-xmod-compat`
|
|
as optional - **not** FTB Chunks. FTB Quests also ships **no** claim-chunk task type. So FTB Chunks is
|
|
the one mod in the FTB suite that can leave without touching quests, provided Teams stays.
|
|
|
|
**VERIFIED:** nothing else in the pack declares FTB Chunks as a required dependency. The only
|
|
cross-mod hooks are inside FTB XMod Compat (KubeJS/GameStages progression, rank-based claim limits),
|
|
which degrade to inert modules.
|
|
|
|
## 2. What changed
|
|
|
|
| Action | Path |
|
|
| --- | --- |
|
|
| Removed | `mods/ftb-chunks-forge.pw.toml` (was `ftb-chunks-neoforge-2101.1.22`, CF 314906) |
|
|
| Removed | `config/ftbchunks-client.snbt` (the `minimap.enabled=true` modpack default) |
|
|
| Edited | `.packwizignore` - dropped `config/*` + `!config/ftbchunks-client.snbt`, back to `config/` |
|
|
| Added | `mods/open-parties-and-claims.pw.toml` - `neoforge-1.21.1-0.31.6` (`side = "both"`) |
|
|
| Added | `mods/xaeros-world-map.pw.toml` - `neoforge-1.21.1-1.46.0` (`side = "both"`) |
|
|
| Added | `mods/xaeros-minimap.pw.toml` - `neoforge-1.21.1-26.5.0` (`side = "both"`) |
|
|
| Added | `mods/xaeros-minimap-world-map-waystones-compatibility-forge.pw.toml` - `2.1.0` |
|
|
| Regenerated | `index.toml` (147 entries) and the `[index]` hash in `pack.toml` |
|
|
|
|
Net: **146 mods** (138 Modrinth/other + 8 CurseForge), down from 9 CurseForge-exclusive mods. All four
|
|
new mods are Modrinth-hosted, so they are checkable by `packwiz update`.
|
|
|
|
The three Xaero's entries are byte-identical to the ones deleted in `b0542f9` (2026-09-28) - same
|
|
versions, same sha512s - so this is a revert of the map half of that commit, not a new integration.
|
|
|
|
## 3. Where the pack traded one thing for another
|
|
|
|
| FTB Chunks capability | Replacement | Notes |
|
|
| --- | --- | --- |
|
|
| Chunk claims + protection | OPAC | Server config now lives in the world save, not the pack. |
|
|
| Forceload + offline ticking | OPAC `claims.forceload.offlineForceload` | Farms-vs-TPS trade is unchanged; reliability is less proven (see §5). |
|
|
| Minimap + fullscreen map | Xaero's Minimap + World Map | Now two client mods instead of one. |
|
|
| Waypoints + teleport | Xaero's Minimap | **No migration path** - see §4. |
|
|
| Party/team claims | OPAC's built-in party system | FTB Teams was removed, so this is the only party system now. `/oparties`, `/opm` for party chat. |
|
|
| Waystones on the map | `xaeros_waystones_compatibility` | Restored; it had been removed with the maps. |
|
|
| FTB Ranks permission overrides | `xaero.pac_max_claims` / `xaero.pac_max_forceloads` | Moot in practice: FTB Ranks was never installed. |
|
|
|
|
## 4. Migration runbook (server operator)
|
|
|
|
**Before the update**
|
|
1. Take a world backup. FTB Chunks' claim data stays in the save after the mod is removed, so this
|
|
backup is the rollback path.
|
|
2. Have each player screenshot or export their FTB Chunks waypoints. They live client-side under
|
|
`local/ftbchunks/`; **there is no FTB Chunks -> Xaero's converter** (only JourneyMap -> Xaero tools
|
|
exist). Re-entry is manual.
|
|
3. Capture who owned which claims/forceloads, so players have a checklist and an admin can pre-claim
|
|
using OPAC server-claim mode if desired.
|
|
|
|
**Cutover (one update, low-activity window)**
|
|
4. Do **not** run FTB Chunks and OPAC side by side - two claim systems means split protection logic.
|
|
Hard cutover.
|
|
5. Start the server once with OPAC installed so it generates
|
|
`world/serverconfig/openpartiesandclaims-server.toml`, then **stop the server**.
|
|
6. Edit the generated file (it carries `# Default:` comments for every key) and set at minimum:
|
|
- `maxPlayerClaims = 500` (matches the old FTB Chunks cap)
|
|
- `maxPlayerClaimForceloads = 25` (**decided 2026-09-30**; the stock default is lower, so leaving it
|
|
alone silently removes forceloading)
|
|
- `primaryPartySystem` -> leave at the built-in default (FTB Teams is gone; do **not** point it at
|
|
`ftbteams`)
|
|
- a decision on `claims.forceload.offlineForceload` (farms while offline vs TPS)
|
|
- add `claims.forceload.offlineForceload` to `playerConfigurablePlayerConfigOptions` /
|
|
`opConfigurablePlayerConfigOptions` if players should be able to toggle their own
|
|
7. Re-claim: each player re-claims their base and re-forceloads, via the OPAC UI (`'`) or the Xaero's
|
|
world map (right-click / drag-select).
|
|
|
|
**After**
|
|
8. Verify per-player forceloading actually keeps chunks ticking with the owner offline. This is the
|
|
known weak point (§5).
|
|
9. Verify protection across the modded stack - especially Create contraptions, Sable ships, and
|
|
fake-player automation.
|
|
10. Re-tier any rank/permission limits you were relying on.
|
|
|
|
## 5. Risks and open items
|
|
|
|
- **OPAC force-loading reliability is the one thing that can invalidate the swap.** Open upstream
|
|
issues report chunks marked forceloadable but never actually loaded (#855, #927, plus #237/#528).
|
|
**COMMUNITY.** Test before trusting; re-test on every OPAC bump. If it fails, this swap should be
|
|
rolled back - forceloading is the one feature the pack cannot work around.
|
|
- **OPAC is self-described beta** and releases frequently (0.31.6, 2026-09-10). **DOCUMENTED.**
|
|
- **OPAC and Xaero's are version-coupled** - OPAC's README tells users to keep the Xaero's mods on
|
|
their latest versions. Bump them together.
|
|
- **Claim protection parity is unverified.** OPAC protects vanilla plus a supported-mod list (Create is
|
|
built in on Forge), and needs manual exception entries for anything else. Open reports exist for
|
|
creeper explosions (#731) and modded projectiles (#758) inside claims. **COMMUNITY.** The pack's
|
|
Apotheosis/Sophisticated/Ars Nouveau/Alex's Mobs surface needs a pass.
|
|
- **Sable / Create Aeronautics.** A crash with Sable contraptions was reported (#873) and is **closed**,
|
|
but was not re-verified against 0.31.6. **COMMUNITY.** Ships are not covered by plain chunk claims
|
|
under either system; the pack has no ship-claim mod. Options if that matters:
|
|
`aeroclaims` ("Create Aeronautics: Claims", NeoForge 1.21.1, works with **OPAC or FTB**), or
|
|
`sable-protect`. Note that dropping FTB Chunks does close the door on `ftbchunksaerospace` and
|
|
`Create-Aeronautics-FTB-Chunks`.
|
|
- **Licensing.** OPAC is **LGPL-3.0** - no pack conditions. Xaero's World Map and Minimap are
|
|
**All Rights Reserved**: because this pack is distributed from `git.ljones.me` and not from
|
|
CurseForge/Modrinth, the terms require an **easily accessible credit link to an official Xaero page**
|
|
in the pack. Add one. **VERIFIED** (from the mods' own "Modpacks and Other" sections).
|
|
- **`side = "both"` for Xaero's** puts them on the server too. That buys reliable multi-world map
|
|
identity and server-side map profiles, and matches the pre-`b0542f9` configuration, but the server
|
|
then registers status effects that stop *vanilla* clients joining unless disabled in
|
|
`config/xaero/*`. All players get mods via packwiz, so this is not expected to matter.
|
|
- **Vanilla-client / optional-client is actually improved** for claims: OPAC's client side is optional,
|
|
so a player without it is still protected and can use `/oclaims` chat commands.
|
|
|
|
## 6. Rollback
|
|
|
|
Re-add `mods/ftb-chunks-forge.pw.toml` (and the client config if the minimap default is wanted) and
|
|
`packwiz refresh`. FTB Chunks' claim/forceload data is untouched in the world save, so existing claims
|
|
resume. Then remove OPAC and the Xaero's mods. Keep the pre-swap world backup regardless.
|
|
|
|
Note: rolling back the FTB Quests/Teams removal is a separate, larger job - re-adding them restores the
|
|
mods but **not** any quest content or team progress that was discarded, unless `<world>/ftbquests/` was
|
|
archived first.
|
|
|
|
## 7. Follow-up: removing the rest of the FTB suite
|
|
|
|
Follow-on decision (2026-09-30): drop **FTB Quests, FTB Teams and FTB XMod Compat** as well, leaving
|
|
only FTB Backups 3 and FTB Library.
|
|
|
|
**Why FTB Teams could not go on its own** - FTB Quests has a hard runtime dependency on it, not just a
|
|
launcher one:
|
|
|
|
| Evidence | Result |
|
|
| --- | --- |
|
|
| `FTB-Quests@1.21.1/main` build.gradle | `requires('ftb-library-forge')`, `requires('ftb-teams-forge')` |
|
|
| FTB Quests bytecode | references `dev/ftb/mods/ftbteams/` in **14 classes**, incl. `FTBQuestsEventHandler` |
|
|
| FTB Quests internals | `TeamData` class - quest progress is keyed per team |
|
|
|
|
The `mandatory = false` in FTB's `neoforge.mods.toml` files is launcher metadata; the bytecode
|
|
references are what actually break. FTB Quests also ships no claim-chunk task type, so nothing about
|
|
claims depended on it.
|
|
|
|
**Why XMod Compat went with it:** its integrations were Quests/Chunks/Ranks plus JEI/KubeJS/LuckPerms
|
|
bridges. With Quests and Chunks gone there is nothing left for it to bridge.
|
|
|
|
**Why Library stayed:** FTB Backups 3 uses FTB Library's config/UI classes (`Panel`, `Theme`, `Widget`,
|
|
`ConfigGroup`, `ConfigValue`, `SNBTCompoundTag`) - 13 classes, and it does **not** bundle them, despite
|
|
declaring only `neoforge` in its own metadata. Library in turn references `dev/architectury` in 47
|
|
classes, so Architectury API stays too.
|
|
|
|
**Verified before removing:** FTB Library and FTB Backups 3 reference `ftbteams`, `ftbquests` and
|
|
`ftbxmodcompat` in **0 classes** each, and nothing else in the pack references XMod Compat.
|
|
|
|
**Consequences accepted:** any authored FTB Quests content and per-team quest progress is discarded.
|
|
There is no longer any party system to point OPAC at, so `primaryPartySystem` stays at OPAC's built-in
|
|
default. The pack dropped from 9 to **5 CurseForge-sourced mods** and from 149 to 146 mods.
|
|
|
|
## 8. Docs that need follow-up
|
|
|
|
- **Map/waypoint rescue from the old FTB data** - see `analysis/FTB-XAERO-MAP-MIGRATION.md` and the
|
|
`tools/ftbchunks-reveal.py` + `tools/prune-world-to-reveal.py` scripts. Mask extraction is validated;
|
|
the world-save pruning step is written and unit-tested but not yet run.
|
|
|
|
- `FINDINGS.md` - §3.3, §7.1, §8 rows 2-3, appendix A and appendix B updated in this change; §1's
|
|
mod-count statistics were left at their earlier snapshot (a note was added).
|
|
- `MODLIST-REVIEW.md` §7.4 and §8 still say Open Parties and Claims is a SKIP/duplication and "Keep
|
|
FTB". **Stale** - the swap is now the intended design.
|
|
- `MODLIST-GROUPS.md` / `analysis/master-table.md` / `analysis/groups-table.md` carry the same stale
|
|
OPAC verdict.
|
|
- Not done: re-adding `xaero-train-map` (was `Ov2r3aVY`, 1.0.0). It is unblocked again by this change and
|
|
the pack has Create trains; one-line addition if wanted.
|