Commit Graph
10 Commits
Author SHA1 Message Date
logan e7d6691466 feat(pack): ship offline usernamecache to clients for Jade
Jade resolves tamed-animal owner names client-side; its Mojang profile
lookup can't resolve offline-mode UUIDs and it falls back to NeoForge's
UsernameCache, which the client loads from <game>/usernamecache.json.
Ship that file (side = "client", installed at the game root) so migrated
owners stop showing as "???".

Maintain the mapping with tools/sync-usernamecache.py after new logins.
2026-10-06 23:28:00 -04:00
logan 0adfb6c656 feat(pack): add Icy's Better Horses and its Modonomicon dependency
Icy's Better Horses declares client_side/server_side as required, so it ships
to both sides. It hard-requires Modonomicon [1.120.4,) on BOTH sides, which the
pack was missing; GeckoLib [4.7.5,) is already present at 4.9.3, and
cloth-config (optional) is already present too.

Pinned to the NeoForge 1.21.1 builds: Modrinth lists two different files both
numbered 2.1.0.1 (Forge/1.20.1 and NeoForge/1.21.1), and resolving by version
number alone silently picks the wrong one.

Also ignore shaderpacks/*.zip and xaero-migration-kit/ in .packwizignore. The
former duplicated the existing .pw.toml metafiles and the latter is local
migration scratch that the file already says must never ship, but packwiz
refresh was indexing both into the pack.
2026-10-06 19:43:10 -04:00
logan e36bff8a4d chore(pack): pin Akashic Tome's whitelist to this pack's guidebooks
Enumerated every guidebook-type item across all 209 mods (30 items) and pinned
them explicitly in config/akashictome-common.toml.

Finding: no config was strictly required. Akashic Tome's "Whitelisted Names"
substring-matches the item's registry PATH (verified from AttachementRecipe
bytecode: getPath + toLowerCase + contains, with getHoverName and
getDescriptionId absent), and the shipped 15-entry default list already covers
every book in this pack. The explicit id list is what keeps the tome working
if that name list is ever trimmed.

All Patchouli books share the single item id patchouli:guide_book and cannot
be listed individually. They still morph under their real owning mod, because
Patchouli's ItemModBook overrides getCreatorModId to return the book's owner.

Also drops the shipped defaults' whitelist ids and mod aliases, which all
reference mods that are not installed.
2026-10-06 19:12:36 -04:00
logan 387ee1ef9b chore(pack): make config files opt-in and ship a PetProtect default
.packwizignore ignored config/ and defaultconfigs/ wholesale. They are now
ignored per-entry (config/*) with deliberately authored files re-included at
the bottom of the file, so one config can ship without any risk of pulling
every runtime-generated config into the index - which matters because this
repo doubles as a server directory.

Ships config/petprotect.json disabling BOTH pet damage and death protection.
PetProtect's isInvulnerableTo mixin gates on prevent_pet_damage alone, so
disabling prevent_pet_death by itself leaves pets invulnerable to nearly all
damage and Pet Cemetery's death -> collar -> respawn loop still never fires.
prevent_pet_attack remains true, so pets are not provoked into fights.

Without this file the two mods cancel each other: PetProtect's defaults keep
pets immortal, so Pet Cemetery is dead weight.

The config installs on clients as well as the server; that is harmless since
petprotect itself is side = "server", but packwiz has no per-file side flag
for non-metafile entries.
2026-10-06 18:27:42 -04:00
logan 1d02bf1cf6 feat(pack): replace FTB Chunks with Open Parties and Claims and Xaero's maps
FTB Chunks is the only mod in the FTB suite that nothing else depends on --
FTB Quests requires FTB Library and FTB Teams only, and ships no claim-chunk
task type -- so it can leave without touching quests. Open Parties and Claims
takes over claims and force-loading, and the Xaero's suite restores the
minimap, world map and waypoints that b0542f9 removed.

The three Xaero's entries are byte-identical to the ones b0542f9 deleted, so
this reverts the map half of that commit rather than integrating anything new.
Xaero's + OPAC is also the pairing both projects document: the world map
displays OPAC claims and lets you claim and forceload from the map screen.

Drops config/ftbchunks-client.snbt and the .packwizignore negation that
shipped it, since the FTB Chunks minimap it enabled no longer exists. Also
keeps authoring/review material and migration scratch out of the pack index.

Server-side follow-up (not shippable, lives in the world save): set
maxPlayerClaimForceloads to 25, point primaryPartySystem at FTB Teams, and
decide claims.forceload.offlineForceload.
2026-09-30 22:04:56 -04:00
logan 25b3f78cdc chore(pack): untrack C2ME runtime cache
The previous commit accidentally captured cache/c2me-dfc (regenerated at runtime) and packwiz indexed it. Ignore cache/ and drop it from the index.
2026-09-29 03:00:50 -04:00
logan b0542f982e feat(pack): replace Xaero's map mods with the FTB Chunks minimap
Removes the Xaero mapping suite -- Xaero's World Map, Xaero's Minimap,
Xaero Train Map and the Waystones compatibility -- and enables the FTB
Chunks minimap, so FTB Chunks provides all mapping.

Xaero Train Map and the Waystones compat had to go with the maps: the
former declares a required dependency on xaeroworldmap, and the latter
references only xaero/common and xaero/minimap classes. Nothing in the
pack declared a dependency on xaeros-minimap.

The minimap needs an explicit config because FTB Chunks computes
minimap.enabled once as !hasOtherMinimapMod() and then persists the
result. With Xaero's Minimap installed that resolved to false and was
written into players' configs, where it sticks, so removing the other
minimap mod alone would not re-enable it. config/ftbchunks-client.snbt is
the location the mod itself documents for modpack defaults, and unlike
defaultconfigs/ it also overrides configs that already exist.

.packwizignore moves from excluding config/ wholesale to config/* plus a
negation, so this one modpack-default config ships while server config
stays untracked.
2026-09-28 18:50:14 -04:00
logan 59cef9e2f2 chore(pack): exclude server tooling from packwiz index
tools/ holds the RCON helper and graceful-restart script used to operate the
server; they are not pack content and must not be indexed for clients.
2026-09-24 17:09:51 -04:00
logan df2a4f4fcd fix(pack): exclude server config and runtime files from packwiz index
A packwiz refresh run in the server directory would have indexed
config/, kubejs/ and other runtime files into the pack index.
2026-09-24 15:33:13 -04:00
logan f99e3bee3e chore(pack): add .packwizignore for server-generated files
Keeps the NeoForge libraries, world data, jars and other runtime files
out of the pack index when running packwiz refresh in a server dir.
2026-09-23 16:39:56 -04:00