Two problems, one of them mine.
Reverts thrown_banger/bundle/dynamite from geometry.snowball back to
geometry.item_sprite. Syncing these from main to the host produced
"[Geometry][error] geometry not found?" on the client -- geometry.snowball
does not resolve, while the April item_sprite version the host had been
running does. main was newer but had never been deployed, so the change had
never been validated against a running client. Newer is not the same as
correct, and this should have been verified before syncing rather than
assumed from the timestamps.
Separately, the client was reporting "Missing referenced asset" for every
custom block geometry -- tent_panel_l/r, hammock_slab, portal_field,
dragon_basket -- and spamming "A block must have baked material data in order
to tessellate!" 182,683 times, once per frame per unrenderable block. Those
geometry files exist and are valid; the client was serving stale cached copies
of the resource packs that predate them. Dynamite was the one pack that
refreshed, precisely because its version had just been bumped, which is why
dynamite appeared in game and camping supplies did not.
So every RP that ships models/blocks geometry is bumped to force a re-download:
spark_pet, camping_supplies and lobby_transfer, plus dynamite to carry the
geometry revert. Dependent BP manifests follow, and the world pins were set
explicitly rather than by the repin helper, which correctly refused these --
shared/ holds duplicate copies of the same UUIDs at older versions, so
"version on disk" is ambiguous for them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Gf1kZypRDfPL1YiWUS1LC
Two issues an addon-wide audit turned up.
The portal-texture commit bumped lobby_transfer_RP to 1.0.1 but left the
behavior pack's dependency on it pinned at 1.0.0. A dependency whose version
does not match the referenced pack's header is exactly the kind of mismatch
that makes Bedrock drop a pack, so this was a regression waiting to bite.
portal_field carries a menu_category, so it appears in the creative inventory,
but had no lang entry -- it showed as the raw key tile.silverlabs:portal_field
.name. The other four portal blocks were already named.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Gf1kZypRDfPL1YiWUS1LC
The four portal blocks referenced vanilla texture paths from their own pack
(emerald_block, amethyst_block, prismarine_bricks, end_portal_frame_top)
without shipping those files. While the blocks rendered through the legacy
blocks.json path this was invisible; once minecraft:geometry made
material_instances take effect the lookup failed outright and they rendered
as missing-texture.
Ships real 16x16 textures generated through scripts/build-textures.py: a dark
stone frame around a glowing field, one hue per destination -- jamie green,
lyla purple, mya teal, plus a gold-ringed frame. terrain_texture.json now
points at these instead of vanilla paths, so every key in the pack resolves
to a file the pack actually contains.
lobby_transfer_RP bumped to 1.0.1 so clients re-download rather than serving
cached art; the lobby world pin was updated to match.
Known issue, not fixed here: lobby_transfer_RP and hub_return_transfer_BP
share pack UUID b2c3d4e5-1111-2222-3333-fedcba654321. They never load on the
same server today, so the collision is latent, but it makes version bumps on
either pack risky and should be resolved with a fresh UUID plus a pin update.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Gf1kZypRDfPL1YiWUS1LC
- camping: replace cube tent with A-frame slope panels (tent_panel_l/r) +
cardinal_direction permutations; vote-skip sleep that mixes
player.isSleeping bed sleepers with tent occupants and respects the
playersSleepingPercentage gamerule; new weathered-canvas texture.
- lobby: walk-through silverlabs:portal_field block (no collision,
translucent swirl, cross-plane geo) auto-placed above each portal frame;
invisible silverlabs:portal_label entity floats above each portal with
the destination world name; transfer detection now scans down through
the field to find the destination frame.
- postal: regenerate post_office and mailbox block textures so they fill
the full block face (brick + POST plaque, full red panel with slot/latch
/flag/rivets) instead of small sprites floating on transparent.
- dynamite + tow-boat: ship the addons (volumes wired into all four
worlds; enabled_packs registers them into Mya's world).
- art: build-textures.py extended; build-art-catalog.py added to project.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Portal frame crafted from obsidian + ender pearl, combined with crystals
(emerald/amethyst/prismarine) to create world-specific portal blocks.
Stepping on a portal block triggers transfer. Includes resource pack with
vanilla textures, block definitions, crafting recipes, and updated script.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>