Bedrock 1.26.45
Notes for the 1.26.45 protocol family: protocol 2169, BDS 1.26.45.1. Pass version: '1.26.45' or
version: '1.26.45.1' to createBot; bot.version is then '1.26.45' and bot.protocolVersion 2169. Everything
here was checked on a running BDS 1.26.45.1 and compared with BDS 1.26.51.1, the default version
(see BDS notes and Connection and versions).
Data
@bedboo/bedrock-data ships data/1.26.45/, generated by scripts/generate.js --version 1.26.45 from:
| Source | Pin |
|---|---|
| minecraft-data | 3.119.0 (bd8b5c60), data/bedrock/1.26.40 (minecraft-data points 1.26.45's blocks, items and materials there) |
| CloudburstMC/Data | 040a6cc9 (last commit before 26.50; the block dump is still called block_properties.json) |
| gophertunnel | 7f058e5d ("Updated for 1.26.45", protocol 2169) |
| pmmp/BedrockData | bdb44a48 (1.26.30, same as 1.26.51) |
| live probe | scripts/probe/1.26.45.json (BDS 1.26.45.1) |
Compared with 1.26.51:
- Blocks: 17 499 block states (1.26.51: 22 091). Every state hash matches the BDS dump (only
unknownis allowlisted, as on 1.26.51); the collision overrides are the same allowlist (doors,end_portal_frame). - Items: 1 976 items, all matching the BDS runtime item states.
shelf_mushroomdoes not exist yet, so theminecraft:mushrooms_for_stewrecipe tag only expands to the brown and red mushroom. - Biomes: 88 vanilla biomes, ids 0..194.
dappled_forest(195) arrived in 1.26.50. - Entities: no
cushionentity. Every other probed bounding box is the same as on 1.26.51. - Effects and enchantments: same ids as 1.26.51 (effects 1..37, enchantments 0..41).
Protocol differences
minecraft-data's 1.26.45 protocol is identical to 1.26.40's. Against 1.26.51 (protocol 2193) these differences touch what bedboo reads or writes:
- Double optionals (feature
optionalsHavePresenceFlag, shared with 1.26.40): the optional parts ofplayer_auth_input(item interaction and its actions, item stack request, block actions, vehicle rotation, predicted vehicle) and thewindow_id/flagsof every transaction action are each preceded by an outer presence bool that the client always writes astrue(gophertunnelDoubleOptionalFunc; minecraft-data's*_presencefields), andinput_datais itself optional. bedboo fills these bools in its serializer for this family (lib/bedrock/presence.js); left unset, bedrock-protocol writes them asfalseand a reader that follows the schema reads every later field one byte off. inventory_transaction:transaction_typeandactionsare optionals;item_usedata has nohandfield (no off-hand use transaction: the server uses the main hand).item_stack_response: extracontainers_presence/item_stack_id_presencebools; read as before.- Read but unused differences:
boss_eventhas an extraplayer_id,move_entity_deltahas noticks,play_soundhas nobypass_listener_range_check/playback_position_seconds,dimension_datanames its height fieldsmax_height/min_height, sub-chunk height maps are 256-byte buffers,camera_presetshas no starting rotation, andserverbound_pack_setting_changehas no string-list value. - Not in 1.26.45:
set_player_furnace_optionsandrecord_started(bedboo uses neither).
Server differences
- Default transport: BDS 1.26.45.1 ships
transport=raknet(featuredefaultTransportIsNethernetis false). NetherNet works too whenserver.propertiesselects it. - Commands:
available_commandsnumbers thecommandparameter type (/execute … run <command>) 88 instead of 90, as on 1.26.40, sobot.tabCompleteuses the 1.26.40 table for it. Every other parameter type id bedboo completes (targets 8/10, positions 64/65, message 68, raw text 70, JSON 74) is the same. There is no/serveridentitycommand. - Same as 1.26.51: world time comes from
sync_world_clocks(noset_time), the loading screen gate after spawn, the join sequence and the effect, enchantment and item stack request numbering.
Tests
BEDBOO_VERSION=1.26.45 pnpm test runs the unit tests against this family (CI runs it in the unit matrix). There
is no test/fixtures/1.26.45/join_flat capture: the tests that replay the recorded join encode details of the
1.26.51 capture (entity ids, recipe network ids, item counts) and skip on 1.26.45.