Skip to content

feat(protocol): update Bedrock to 1.26.60 - #465

Closed
AlexProgrammerDE wants to merge 1 commit into
ViaVersionAddons:mainfrom
StackAnvil:stackanvil/0001-update-bedrock-to-1-26-60
Closed

AlexProgrammerDE wants to merge 1 commit into
ViaVersionAddons:mainfrom
StackAnvil:stackanvil/0001-update-bedrock-to-1-26-60

Conversation

@AlexProgrammerDE

@AlexProgrammerDE AlexProgrammerDE commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Update the supported Bedrock release from 1.26.51 (protocol 2193) to 1.26.60 (protocol 2225). Java remains on 26.3.

This draft contains the standalone version patch applied directly to the pinned upstream base. It includes no StackAnvil setup or deferred inventory changes. The exported source patch is first in the upstreamable stack.

The update covers the changed actor passenger, animation hand, interaction/release hand, skin/player-list, chunk biome, dimension cloud, and editor migration fields. It refreshes the enums, palette, runtime item IDs, resource packs, particles, sounds, and mappings. Redstone connection states map directly to Java connections. Legacy connected blocks gain missing properties without losing explicit values at the unchanged block-state version.

Network settings use a uint16 no-compression sentinel, while frame headers use uint8. The decoder handles both widths and consumes a retained payload slice for uncompressed frames.

Use the explicit protocol-2225 enum values without the obsolete 2193 metadata repairs.
Keep resource-pack response variant indexes in the packet codec instead of the generated enum getter.
Unknown entity metadata still fails before its payload is read, without a synthetic generated enum member.
Supplement packet IDs from matching packet schemas when the summary enum omits them.
The generator rejects conflicting IDs and mixed-protocol input.
The container and resource-pack wire regressions belong to this version update.

Dimension data now retains cloud height and visibility with validated bounds.
Project these fields through Java 26.3 environment attributes, including transparent cloud color when clouds are disabled.
Preserve the other authored dimension attributes and retain the existing Overworld override boundary.
Six dimension regressions cover packet boundaries, signed ranges, overflow and attribute projection.
This behavior is part of the standalone version update and requires no deferred inventory implementation.
The existing native join receipts predate this cloud projection; current coverage uses packet and registry tests.

Sources: Mojang protocol 2225 metadata, the matching 1.26.60.5 GDK package, and the pinned Geyser data snapshot. Asset hashes and registry evidence are recorded in Data Asset Sources.md.

Validation:

  • The standalone patch applies and builds without StackAnvil setup. Style checks, mapping validation, and 19 targeted tests pass.
  • Enum regeneration from the 2225 archive leaves no diff in the standalone and full core checkouts.
  • Earlier migration validation: a raw protocol 2225 bootstrap reaches StartGame on official BDS 1.26.60.6 and captures its stable actor registry.
  • Downstream compatibility: all 103 core patches and 38 add-on patches replay. All four project builds pass.
  • Earlier migration validation: a fully patched Java 26.3 client with Iris shaders spawned on BDS 1.26.60.6 with zero dropped uncompressed frames. This downstream join is not a standalone-patch join test.

Experimental content uses documented Java fallbacks. Block seating and signed audio content remain unsupported; this patch does not establish complete parity for those features.

Target the released protocol 2225 rather than advertise the old 2193
packet layouts under a new version name. Decode the added actor seat,
animation hand, chunk biome, dimension cloud and editor migration fields;
move PlayFab identity from skin data to player-list entries and encode the
new interaction and release hand fields.

Regenerate protocol enums, resource packs, particles, sounds, palette and
item IDs from the 1.26.60 metadata and matching 1.26.60.5 client. Map native
redstone connection states directly and normalize legacy connected blocks
without erasing explicit values at the unchanged state version. Supply
Java type and shape fallbacks for experimental content without claiming
complete feature parity. Signed audio and block seating remain unsupported
Java features and are canceled explicitly.

Sources: Mojang/bedrock-protocol-docs release v1.26.60 (protocol 2225),
GeyserMC/Geyser a24ba9c8f07b38be6455e5e86d187a2ef2ffa6a8, and the
bubbles-wow/mcbe-gdk-unpack-archive 1.26.60.5 release. Record asset hashes
and the stable-versus-experimental entity evidence in Data Asset Sources.

Validate the standalone patch on the pinned upstream base with build,
style checks, packet-boundary tests and mapping validation. An isolated
official BDS 1.26.60.6 bootstrap reaches StartGame and captures its actor
registry with the unchanged production login helper.

Keep the uint16 NetworkSettings no-compression sentinel separate from the
uint8 frame-header sentinel. Both are all-ones at their respective width;
after the enum update, decoding an uncompressed frame must still admit
0xFF. Cover the negotiated codec boundary in a buffer-level regression.

Consume and retain the uncompressed frame payload as a slice so decoder
progress does not depend on the next handler advancing its buffer.

Use the 2225 metadata's explicit enum values without the obsolete 2193
container and text-origin corrections. Keep response union indexes in
the resource-pack codec and reject unknown entity data without adding a
synthetic generated enum member. Preserve container and packet-boundary
tests in this version update rather than a metadata-repair patch.

Complete packet IDs from same-protocol packet schema declarations when
the summary enum omits them. Reject conflicting or mixed-protocol input
and regenerate the enum without manual additions. Test supplementation,
wire discriminators, and invalid entity metadata.

Retain DimensionData cloud height and visibility in the dimension model
and project them through Java 26.3 environment attributes. The upstream
dimension path must apply these new fields rather than only consume them.
Use transparent cloud color when disabled; the Java day timeline multiplies
that color and preserves zero alpha. Preserve other dimension attributes.

Read minimum Y plus height range, reject nonpositive ranges and detect
upper-bound overflow. The earlier protocol-2193 Hive capture establishes
the bounds semantics; Mojang's matching 2225 DimensionDefinition schema
and us_1665751 note establish cloud synchronization. Six targeted tests
cover complete packet boundaries, signed bounds and registry projection.
This path works on pinned upstream without deferred inventory features.
@AlexProgrammerDE
AlexProgrammerDE force-pushed the stackanvil/0001-update-bedrock-to-1-26-60 branch 2 times, most recently from 0bef0ca to e125814 Compare October 27, 2026 21:06
@Exterminate5573

Copy link
Copy Markdown
Collaborator

Superseded by #466

AlexProgrammerDE added a commit to StackAnvil/ViaBedrock that referenced this pull request Oct 28, 2026
The 26.60 regeneration left the bundled packs without biome, fog, or render-controller definitions. Restore the 37 affected archives from the validated 26.60 source snapshot in PR ViaVersionAddons#465.

These archives restore 344 biome files, 249 fog files, and 214 controller files. Their source is the official 1.26.60.5 GDK package recorded in that draft. Preserve the manifests, licenses, and language data. Exercise the actual definition loaders against bundled archives.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants