Conversation
…server blockStates.json and blockCollisionShapes.json of every bedrock version from 1.16.201 to 1.26.51, exported from each Bedrock Dedicated Server build by bedrock-data-generator: - blockStates.json: the server's block palette in runtime id order; - blockCollisionShapes.json: what the game collides with (BlockLegacy::addCollisionShapes), one shape per state, blocks in blocks.json order. Replaces the Geyser-derived files up to 1.21.120, which held centre + size boxes, missed blocks and states, and took the phantom boxes the game leaves at the world origin (pressure plates before 1.19.50, buttons and fire, the end portal frame's eye) as the block's. A version whose file is the same as the one before points to it in dataPaths.json: every file is unique. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Every version's blocks.json fits its palette: exactly its blocks, each with its own state range. Where minecraft-data reused a blocks.json of an older palette (1.17.30, 1.19.20 - 1.19.70, 1.20.80, 1.26.40 - 1.26.51) or had none (1.16.201, 1.16.210), it is generated as minecraft-data-extractor-legacy2 does. - defaultState is the game's default state of each block (BlockLegacy::mDefaultState) instead of its first state; in the other files only that value changes. - dataPaths.json: blocks, blockStates and blockCollisionShapes where every entry has them (after attributes). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…tions Every bedrock version resolves biomes (1.16.201 and 1.16.210 had none). The 1.21.60 file, used up to 1.26.51, had alphabetical indexes for ids and no rainfall or depth; it and the files missing biomes the server sends (legacy_frozen_ocean, cherry_grove, pale_garden, sulfur_caves, dappled_forest) are regenerated with the game's ids, temperatures and rainfall. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ntifiers Every bedrock version resolves entities (1.16.201 and 1.16.210 had none). The earlier files miss up to 24 entities the server sends, have wrong runtime ids (goat and axolotl 0, villager_v2 15 from 1.21.0) and null hitboxes; they are regenerated with the game's identifiers and runtime ids. The 1.18.11, 1.21.60 and 1.21.80 files, which no version uses any more, are removed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The steve skins held the capturing accounts' PlayFab persona ids in SkinId, SkinResourcePatch and SkinGeometryData; they are replaced by a fixed id. Each version now has the skin its own client sends (the 1.16.201 file served every version up to 1.20.71, while the skin changed five times); the 1.20.80 and 1.21.50 files, which no version uses any more, are removed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.20.30 to 1.21.50 used the 1.20.10 strings and 1.21.80 to 1.26.51 the 1.21.70 ones, missing up to 2,745 keys and with changed values; each now has its own server's en_US.lang (1.21.124 and 1.26.45 share the identical 1.21.120 and 1.26.40 files). The existing files are unchanged: regenerated, they are the same byte for byte. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Every bedrock version resolves items (1.16.201 to 1.17.0 had none), each with exactly the items its server's registry has. Versions that used an older version's file get their own; 1.18.11 and 1.18.30 no longer list names that are not items (pistonArmCollision, movingBlock, ...); 1.21.100 and 1.21.111 give each item its runtime id, as the 1.26 files do, so the registry prismarine-registry writes from them is the server's. The other files are kept as they were. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The one bedrock attributes.json (1.16.201, used up to 1.19.63) listed Java's attributes (generic.follow_range, generic.attack_damage, ...), and later versions had none. Every version now has the attributes its server sends: the saturation default and exhaustion max change at 1.18.30, and 1.26.20 adds friction_modifier, bounciness and air_drag_modifier. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- blocks.json: hardness, resistance, light, display names, drops (Bedrock item ids), stack size, bounding box from the server; harvestTools / material from its block tags, with a materials.json per version - items.json: stack size, durability, names from the item registry; one entry per data value; repairWith by Bedrock names - entities.json: hitboxes from the behavior packs, names from the language file - biomes.json: dimension, depth, rain from biome_definition_list; unique names - effects.json, enchantments.json, entityLoot.json: new, per version, in Bedrock's numbering, from the server - language.json: keys without trailing spaces Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Tested this PR with a live-server validator (bedrock block palette + collisions). Static validation — 54/54 versions with data pass (1.16.201 → 1.26.51, own data or dataPaths-resolved):
Live ground-truth against running BDS:
Method: a tool taps prismarine-chunk's No issues found on my end. Only the pre-palette alphas (0.14/0.15/1.0) have no block states, as expected. |
…from the first build with digger tags Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
…they became Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
…cket - 1.16.201: recipe network ids are varint (as in 1.16.210), not zigzag32 - 1.17.30, 1.17.40: potion container recipes come before material reducers - 1.21.0 - 1.21.30: a user data (shulker box) recipe has no unlocking requirement With these every build's recipe network ids decode as 1..n, each once. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0132eAANHgXLt5rE9E6H7eh6
|
Re-tested at 9bb2868 (with the new entity / foods / biome / crafting_data / pre-1.21.50 dig-data commits) through the Item durability across 1.21.x is fixed here. On the current released data, damageable items resolve to End-to-end, not just block data. Booting fresh BDS worlds and connecting the adapter with this branch's data: One consumer note. For consumers that ship a generated Happy to run the full version x server-type (BDS / PowerNukkitX / PocketMine) x offline+authed matrix against it if useful. |
blocks.json harvestTools and materials.json are what each build's Item::getDestroySpeed and
Item::canDestroySpecial answer, so digTime gives the game's break time for every block and item.
Before 1.21.50, swords dig any block at 1.5 (materials default). Blocks that need a tool nothing
has get harvestTools {}.
No description provided.