Skip to content
On this page

Bedrock 1.26.60

The 1.26.60 protocol family: protocol 2225, BDS 1.26.60.6, 1.26.61.1, 1.26.62.1 and 1.26.63.1. All four builds answer the same protocol, so createBot({ version }) accepts the family ('1.26.60') or any of the builds; the bot reports bot.version === '1.26.60' and bot.protocolVersion === 2225. The data was probed on BDS 1.26.63.1, and the probe and the live smoke test ran against all four builds. The four builds showed no observable difference: the same effect, enchantment and biome ids, entity sizes and available_commands tree. The reference for every other page of these docs is 1.26.51.

Data

@bedboo/bedrock-data ships data/1.26.60/, generated from:

  • minecraft-data 3.119.0 data/bedrock/1.26.60 (blocks, block states, collision shapes, items). Materials come from data/bedrock/1.26.51 of the same commit, which is what minecraft-data's own dataPaths uses for 1.26.60.
  • CloudburstMC/Data 0021592 ("More 26.60 data"). Since 26.60, its blocks.json describes collision as geometry.collision and no longer as collisionShape. The generator reads both forms (see below).
  • gophertunnel d483610 (protocol 2225, level sound event names) and pmmp/BedrockData bdb44a4 (biome ids, as for 1.26.51).
  • A live probe of BDS 1.26.63.1 (scripts/probe/1.26.60.json).

Differences from 1.26.51 found there:

1.26.601.26.51
blocks / block states1 480 / 23 960 (new: icicle, ice_crystal, disc_press; redstone_wire, fire and chorus_plant have more states)1 477 / 22 091
items2 080 (new: the three blocks and frostbite_spawn_egg; some network ids moved)2 076
entities138 (new: ice_ball, 0.25 × 0.25)137
particles81 (new: ice_ball_break)80
effect ids, enchantment ids, biomes, sounds, other entity sizesidentical

Collision of bamboo, pointed_dripstone and sulfur_spike: BDS offsets these blocks per position. The 26.60 Cloudburst dump gives their model boxes before that offset (space: 'model_base', translation: 'native_result'). The generator keeps minecraft-data's boxes, as for 1.26.51. It also checks that those boxes are exactly the model boxes moved by one horizontal offset. Any other disagreement still fails the generation.

Wire differences

bedboo builds every packet in the 1.26.51 shape. The differences that matter are handled per family with bot.supportFeature:

  • Hand (feature actionPacketsHaveHand): animate and the item_use_on_entity and item_release transactions have a hand byte (main_hand | off_hand), which 1.26.51 does not have. Without it, bedrock-protocol could not write a swing, an attack or a release at all. bedboo sends main_hand, except swingArm('left') and the release that ends activateItem(true), which send off_hand. item_use already had the hand in every family.
  • Item stack request numbering (feature stackRequestHasCraftReserved): 1.26.60 inserted the action craft_reserved, which is wire type 16 and legacy type 18. non_implemented and results_deprecated therefore moved to legacy ids 19 / 20; on 1.26.51 they are 18 / 19. Wire names are mapped by bedrock-protocol, but bedboo writes the legacy byte itself. A craft that still sends 19 for results_deprecated makes BDS 1.26.60.6 drop the connection without a disconnect packet.
  • The following are read-only, or not used by bedboo, so they need no change:
    • level_chunk.client_biome_update
    • add_entity / add_player passenger_of_block, set_passenger_of_block
    • start_game.editor_level_migration_version
    • dimension_data cloud fields
    • player_list (play_fab_id moved from the skin to the record)
    • clientbound_update_sound_data (now a tagged union)
    • environment attribute payloads, EaseType (now a varint)
    • four reserved container slot types
    • new packets: stonecutter recipe selection, cursor item drag, matchmaking, audio content
  • Time is still synchronised with sync_world_clocks.

Server behaviour

  • Commands: every value_type id 1.26.51 uses has the same number on 1.26.60. The only new one, 86, is the plain-word timeMarkerName of the new /time … <timeMarkerName> <occurrence> and /time … <clockName> overloads. bot.tabComplete uses the 1.26.51 table.
  • Transport: server.properties ships transport=nethernet (as on 1.26.51). It has a new server-udp-ports=19132, the UDP port(s) of NetherNet client connections. When you run several servers on one host, give each of them its own value, as for server-port.
  • Probe note: a summoned camel sometimes spawns sitting (0.945 high). The standing box (1.7 × 2.375, the same as 1.26.51) is the one in the data.
  • The join sequence, the loading-screen gate, chunk requests, server-authoritative inventory, item tags (recipes use the same tags as on 1.26.51), digging, placing, crafting, walking and chat behave as on 1.26.51 (BDS notes).