From 2fcb8b492e441b7d30ced328a9c017dfeef099a4 Mon Sep 17 00:00:00 2001 From: Logan Date: Thu, 1 Oct 2026 01:21:24 -0400 Subject: [PATCH] chore(pack): drop FTB Quests, FTB Teams and FTB XMod Compat 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. --- analysis/FTB-CHUNKS-SWAP.md | 54 ++++++++++++++++++++++++++++++----- index.toml | 15 ---------- mods/ftb-quests-forge.pw.toml | 13 --------- mods/ftb-teams-forge.pw.toml | 13 --------- mods/ftb-xmod-compat.pw.toml | 13 --------- pack.toml | 2 +- 6 files changed, 48 insertions(+), 62 deletions(-) delete mode 100644 mods/ftb-quests-forge.pw.toml delete mode 100644 mods/ftb-teams-forge.pw.toml delete mode 100644 mods/ftb-xmod-compat.pw.toml diff --git a/analysis/FTB-CHUNKS-SWAP.md b/analysis/FTB-CHUNKS-SWAP.md index df7b744..26e601c 100644 --- a/analysis/FTB-CHUNKS-SWAP.md +++ b/analysis/FTB-CHUNKS-SWAP.md @@ -1,10 +1,12 @@ # FTB Chunks -> Open Parties and Claims + Xaero's maps -**Status:** implemented in the pack (working tree, uncommitted) - 2026-09-30 +**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. FTB Teams, FTB Quests, FTB Library, FTB XMod Compat and -FTB Backups 3 all stay. -**Accepted cost:** every player re-claims their land and re-creates their waypoints. +**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**. @@ -49,7 +51,7 @@ versions, same sha512s - so this is a revert of the map half of that commit, not | 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 `primaryPartySystem` = FTB Teams | Must be set, or OPAC runs its own parallel party system. | +| 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. | @@ -73,7 +75,8 @@ versions, same sha512s - so this is a revert of the map half of that commit, not - `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` -> FTB Teams + - `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 @@ -123,7 +126,44 @@ Re-add `mods/ftb-chunks-forge.pw.toml` (and the client config if the minimap def `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. -## 7. Docs that need follow-up +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 `/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; diff --git a/index.toml b/index.toml index 654124d..a63aef9 100644 --- a/index.toml +++ b/index.toml @@ -305,21 +305,6 @@ file = "mods/ftb-library-forge.pw.toml" hash = "2e72d40c6d7b128981b19b71c19d45eb6813f1af87ae1abe1cf92adfa5e8223f" metafile = true -[[files]] -file = "mods/ftb-quests-forge.pw.toml" -hash = "93330f6ec85532067df176c6baee0e0f6d685c78088b1a2217726f6421899148" -metafile = true - -[[files]] -file = "mods/ftb-teams-forge.pw.toml" -hash = "c21c2308684a75cda7dd9d557d129c9f89f49be527da3d5aa675fff444c11f5e" -metafile = true - -[[files]] -file = "mods/ftb-xmod-compat.pw.toml" -hash = "6ad22c468d67dcbb65784e161d4af9e671d3437cb5bfb1e86a42ae25207cf25b" -metafile = true - [[files]] file = "mods/fusion-connected-textures.pw.toml" hash = "7411c38665af0ee0b17613ac80daaa040a5f59b046d418421297acf2c6fa8c9c" diff --git a/mods/ftb-quests-forge.pw.toml b/mods/ftb-quests-forge.pw.toml deleted file mode 100644 index b2e9903..0000000 --- a/mods/ftb-quests-forge.pw.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "FTB Quests (NeoForge)" -filename = "ftb-quests-neoforge-2101.1.36.jar" -side = "both" - -[download] -hash-format = "sha1" -hash = "b2ede29b98a3022c22065fbe9b1761e385a28683" -mode = "metadata:curseforge" - -[update] -[update.curseforge] -file-id = 8885017 -project-id = 289412 diff --git a/mods/ftb-teams-forge.pw.toml b/mods/ftb-teams-forge.pw.toml deleted file mode 100644 index 8fc880c..0000000 --- a/mods/ftb-teams-forge.pw.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "FTB Teams (NeoForge)" -filename = "ftb-teams-neoforge-2101.1.11.jar" -side = "both" - -[download] -hash-format = "sha1" -hash = "62b65f752d0326edd13244e58d5f2aec035da4e9" -mode = "metadata:curseforge" - -[update] -[update.curseforge] -file-id = 8724782 -project-id = 404468 diff --git a/mods/ftb-xmod-compat.pw.toml b/mods/ftb-xmod-compat.pw.toml deleted file mode 100644 index 7f60daf..0000000 --- a/mods/ftb-xmod-compat.pw.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "FTB XMod Compat" -filename = "ftb-xmod-compat-neoforge-21.1.12.jar" -side = "both" - -[download] -hash-format = "sha1" -hash = "1f68bf714cf7ea3e07b23c6b8c1ebe516b325047" -mode = "metadata:curseforge" - -[update] -[update.curseforge] -file-id = 8909889 -project-id = 889915 diff --git a/pack.toml b/pack.toml index 7216c4a..331ff23 100644 --- a/pack.toml +++ b/pack.toml @@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0" [index] file = "index.toml" hash-format = "sha256" -hash = "80220fc3f737beda7794679fb8a18b70b2b68c5cd7f88b479bc0380e7311bb64" +hash = "f8440954feca2fde012fe8cedb664a48aa3e08ae67ce00125aa7c5ea31d58c56" [versions] minecraft = "1.21.1"