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 fromdata/bedrock/1.26.51of the same commit, which is what minecraft-data's owndataPathsuses for 1.26.60. - CloudburstMC/Data
0021592("More 26.60 data"). Since 26.60, itsblocks.jsondescribes collision asgeometry.collisionand no longer ascollisionShape. The generator reads both forms (see below). - gophertunnel
d483610(protocol 2225, level sound event names) and pmmp/BedrockDatabdb44a4(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.60 | 1.26.51 | |
|---|---|---|
| blocks / block states | 1 480 / 23 960 (new: icicle, ice_crystal, disc_press; redstone_wire, fire and chorus_plant have more states) | 1 477 / 22 091 |
| items | 2 080 (new: the three blocks and frostbite_spawn_egg; some network ids moved) | 2 076 |
| entities | 138 (new: ice_ball, 0.25 × 0.25) | 137 |
| particles | 81 (new: ice_ball_break) | 80 |
| effect ids, enchantment ids, biomes, sounds, other entity sizes | identical |
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):animateand theitem_use_on_entityanditem_releasetransactions have ahandbyte (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 sendsmain_hand, exceptswingArm('left')and the release that endsactivateItem(true), which sendoff_hand.item_usealready had the hand in every family. - Item stack request numbering (feature
stackRequestHasCraftReserved): 1.26.60 inserted the actioncraft_reserved, which is wire type 16 and legacy type 18.non_implementedandresults_deprecatedtherefore 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 forresults_deprecatedmakes 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_updateadd_entity/add_playerpassenger_of_block,set_passenger_of_blockstart_game.editor_level_migration_versiondimension_datacloud fieldsplayer_list(play_fab_idmoved 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_typeid 1.26.51 uses has the same number on 1.26.60. The only new one, 86, is the plain-wordtimeMarkerNameof the new/time … <timeMarkerName> <occurrence>and/time … <clockName>overloads.bot.tabCompleteuses the 1.26.51 table. - Transport:
server.propertiesshipstransport=nethernet(as on 1.26.51). It has a newserver-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 forserver-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).