Two silent failure modes hit eight addons today:
1. BP→RP dep drift. When an RP version was bumped, dependent BPs kept
naming the old version. Bedrock loaded both packs but disconnected
the texture pipeline, so blocks rendered as map_color cubes in the
inventory. Aligned spark_pet, heyhe_pet, camping_supplies, dynamite,
home_sign, postal_service, private_chest BP deps to actual RP
versions. Bumped postal/private_chest RP versions to 1.0.1 to bust
client RP caches.
2. Missing minecraft:geometry. Bedrock 1.21+ silently fails to render
custom blocks in inventory unless geometry is declared — even for
plain full cubes, no warning logged. Added
minecraft:geometry.full_block to post_office, mailbox, and
private_chest. Same fix already applied to sun_lamp and the wild
cherry tree blocks in their respective addon commits.
Saved both failure modes to project memory so they're easy to recognise
next time someone sees "all my custom blocks show as solid coloured
cubes in the inventory".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bedrock 1.21+ rejects minecraft:icon as a *block* component (it's an
*item* component), failing block registration with "child 'minecraft:icon'
not valid here". The post_office and mailbox blocks never registered, so
their recipes failed (silverlabs:post_office / silverlabs:mailbox missing)
and the items didn't appear in the in-game inventory despite the addon
being marked active in the world settings.
Reverts the additions made in f126eeb to those two block JSONs only;
the rest of the multi-mailbox script logic from that commit is unchanged.
Inventory icons now fall back to the material_instances texture (same
visual as before f126eeb).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Players can now place up to 5 mailboxes, each labelled like a lodestone
waypoint. Sending mail picks recipient then mailbox; redirect collapses
one of your own mailboxes into another and removes the source.
- v1 -> v2 schema migration runs once on boot; existing claims default to
label "Mailbox".
- Two-step send picker (skipped when recipient has only one mailbox).
- Post office root menu adds Redirect option.
- Per-entry break handling so removing one mailbox keeps the others claimed.
- minecraft:icon component + 16x16 inventory icons for both blocks.
- Refreshed pack_icon.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Follow-up to 4324882. The { "context": "always_unlocked" } form triggered
"malformed unlocking context" on 1.26-series Bedrock (AlwaysUnlocked pascal
form fared no better). Empty-array form is the universally accepted "recipe
always known" shape. This unblocks mc-lobby which was crashing on boot.
Also reverts block format_version on mailbox.json + smart_crafting_table.json
to 1.21.0 — every other working block in the repo uses that, so the prior
1.21.60 choice was unnecessary.
- 19 dragon + portal recipes (spark_pet_BP, lobby_transfer_BP): unlock -> []
- 7 other recipes touching unlock { context: ... }: same
- 2 block files: format_version 1.21.60 -> 1.21.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- recipes: add unlock { context: always_unlocked } to all spark_pet and lobby_transfer recipes (1.20+ requirement) — fixes mc-lobby crash loop
- spark_dragon entity_sensor: wrap in subsensors[] and convert sensor_range → range [a,b] per 1.21 schema
- anthrax_cat interact: wrap event/filters in on_interact to match Bedrock 1.21 interact schema
- block format_version: bump mailbox and smart_crafting_table to 1.21.60
- item icons: replace { texture: X } with shorthand string form
- heyhe_egg description: replace bare category with menu_category block
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>