Patch Notes

Minecraft Java 26.4 Snapshot 1: Vulkan becomes the default Graphics API

Official Minecraft still — chest minecarts on rails rolling toward a Nether portal inside a yellow-green Sulfur Cave lined with sulfur spikes
Mojang Studios via https://www.minecraft.net/en-us/article/minecraft-java-edition-26-2, Softcap caption

Mojang’s Java Team published Minecraft 26.4 Snapshot 1 on 22 September 2026, the first snapshot toward Java Edition 26.4. The post frames it as a technical open: Vulkan becomes the default graphics API, with world-generation, mushroom placement, networking, dedicated-server properties, data-pack and resource-pack format bumps, shader tweaks, and a long fixed-bugs list. Primary source for every system, packet field, server property, pack version, and ticket below: Minecraft 26.4 Snapshot 1 (Java Team). Mojang has not published a full 26.4 release date with this snapshot, and the notes do not claim Bedrock Vulkan parity.

Vulkan is now the default Graphics API

Under Video Settings → Graphics API, “Default” now behaves the same as “Prefer Vulkan.” The game also stops automatically changing the Graphics API setting when it detects a startup crash. Players who need OpenGL can still pick it explicitly in that menu; the snapshot does not remove the setting.

That default shift is the reader-facing headline of Snapshot 1. The rest of the notes lean technical — pack formats, handshake packets, dedicated-server gates, and worldgen plumbing — so builders, server hosts, and datapack authors should read past the graphics line.

World generation and mushrooms

Pre–Caves and Cliffs upgrades: upgrading worlds that predate Caves and Cliffs will now also generate sulfur caves below old chunks.

Mushrooms: Red and Brown Mushrooms can now be placed on any block with a solid top face, regardless of lighting. They still cannot spread unless brightness is less than 13, or the support block overrides light requirements (mycelium-style exceptions stay in force). The tracker ticket tied to the light-level placement parity note is MC-311773.

Technical pack versions

  • Data Pack version is now 122.0
  • Resource Pack version is now 98.0

Packs and tools aimed at 26.4 Snapshot 1 need those format numbers.

New and changed network packets

minecraft:mod_list custom payload

Snapshot 1 adds a minecraft:mod_list custom packet payload meant to tell servers which client mods are present so debugging is simpler. A vanilla client sends an empty packet at the start of the configuration phase, because vanilla does not know about mods — third-party modding platforms remain responsible for filling that list.

minecraft:intention host field grows query-style parameters

The host field in the serverbound minecraft:intention packet can now carry additional parameters. Previously it stored only the domain used to connect. The new shape looks like a URI query string: the domain may be followed by ?, then key=value pairs separated by &. Empty values can omit the =. Keys and values use standard URI percent-encoding. Keys that start with _ are reserved for vanilla.

Official example shape: example.com?key1=value2&key2 (second key with an empty value).

Players can type those properties into any Server Address field in the multiplayer server list. Addresses in the form id@hostname are parsed as hostname?_id=id, which pairs with the new dedicated-server allowlist below.

If the target uses SRV DNS records, the host field carries both the original and resolved domains. When those differ, the resolved domain is primary and the original is attached as the _o (“origin”) property; the intention packet’s port field uses the resolved port. Host field size is extended to 1024 characters.

Mojang’s own caution: the intention / intent handshake traffic is unencrypted, so these properties must not carry security-sensitive secrets.

minecraft:transfer gains properties

The minecraft:transfer packet adds a properties field — a string-to-string map — that is merged into the host field of the minecraft:intention packet sent to the transfer target.

Dedicated server properties

Three new (or newly documented) server properties land in Snapshot 1:

allowed-connection-ids — a comma-separated list of IDs. When non-empty, the server matches those values against the _id property on the intention packet. No match means the connection is rejected for both status and login. Players without the correct _id in the server address will not see status and cannot join. Combined with id@hostname address entry, this is how hosts gate who can even ping the box.

status-contact-details — when set, the value is sent in the minecraft:status_response JSON under a contact property. It is meant as a human-readable way to reach the owners even when the server has no website. Format is unrestricted beyond “human-readable.”

enable-legacy-status — can disable the legacy (pre-1.7) status and ping protocol. Default is true to preserve existing behavior. Modern or legacy status still requires enable-status to be on for any status information to be sent.

Data Pack 122.0 detail

Multi-noise biome sources: entries for different biomes can no longer overlap across all noise parameters with the same offset.

Commands and NBT

  • /fillbiome now fills biomes with block accuracy.
  • NBT conversion from floating-point types to integer types now always converts to the closest valid number after rounding down (addresses inconsistent cast behavior called out in MC-276879).

straight_trunk_placer

Adds optional trunk_width — an int provider for trunk width centered on the origin, defaulting to 1.0.

Placed features

The XZ domain of placed features included in biomes is validated. Placement may only land inside a 3×3 chunk region; selecting a position outside that range is invalid. The notes say the feature’s own size is not yet considered, so oversized features can still overflow a chunk.

cuboid placement: xz_size and y_size now mean the actual cuboid size instead of being implicitly one block larger. An xz_size of 2 produces a 2×2 footprint, not 3×3.

fixed_placement: positions now requires at least one element.

Noise settings and tags

  • default_block is removed from noise settings. It is always air; any other block must come from the material rule.
  • minecraft:steep no longer treats Eroded Badlands “surface extension” height modifications in an order-dependent way.
  • New biome tag #generated_in_below_zero_retrogen — biomes to generate below worlds that predate Caves and Cliffs (pairs with the sulfur-cave upgrade note above).
  • New collection tag #is_cave.

Order-independent transparency shaders

The OIT algorithm is simplified: wavelet math is replaced with depth bin–based accumulation. Mojang reports slightly better performance on at least some devices and fewer average floating-point precision issues. Shader define changes:

  • OIT_WAVELET_RANK removed
  • OIT_COEFF_COUNT replaced by OIT_NUMBER_OF_DEPTH_BINS
  • OIT_COEFF_ATTACHMENT_COUNT renamed to OIT_TRANSMITTANCE_TARGET_COUNT

Fixed bugs in 26.4 Snapshot 1

Every ticket Mojang listed in the snapshot notes:

TicketFix summary
MC-8959Player auto-jumps when pressing against a block while in water
MC-44560Entities jump by themselves when pushed to the edge of water or lava
MC-50749Jumping into water against a wall causes bounce
MC-123848Item frames (and items in them) drop atop the attached block instead of under it when removed from a ceiling
MC-135211Entities auto-jump when falling into 1-block-deep water from certain heights
MC-135212Entities auto-jump when falling into water of any depth from certain heights
MC-262252Lush caves and dripstone caves generation poorly defined
MC-276879/data truncates floats when casting to longs, but rounds down otherwise
MC-278651Host name in handshake packets for SRV records inconsistent
MC-296053Item frames don’t update properly when modifying Facing NBT
MC-299060Setting item-frame direction with commands can desync
MC-303702Small gaps still appear in item models
MC-307065Missing optimization for side faces of builtin/generated item model
MC-310051Floating-point cancellation artifacts from bits.fsh
MC-310131Placeable entities momentarily appear at the wrong location when placed
MC-310767Pipelines always declare a D32_FLOAT depth attachment format with the Vulkan backend
MC-311195Placed armor stands rotated incorrectly for one tick
MC-311265World border renders incorrectly from outside
MC-311473Scroll-wheel item duplication in Creative can produce ghost items
MC-311582Desert pyramid map texture has one inconsistent pixel
MC-311726Water inside waterlogged copper grates has falling fluid state set true
MC-311727Standing-on-air check doesn’t use the player’s updated position
MC-311773Red and brown mushrooms couldn’t be placed at any light level (unlike Bedrock)
MC-311786/test run with out-of-range rotationSteps errors
MC-311788Teleporting item frames moves them further than they should visually
MC-311818Traveling to the End in Spectator regenerates the obsidian platform
MC-311836Minecart sounds distorted
MC-311859Damaged dyed wolf armor no longer showed cracks on colored parts
MC-311966“Quit Shortcuts” tooltip called the Command key “Cmd”

The water auto-jump cluster (MC-8959, MC-44560, MC-50749, MC-135211, MC-135212) is the survival-facing fix pack. Item-frame tickets (MC-123848, MC-296053, MC-299060, MC-311788), Creative ghost stacks (MC-311473), Spectator End platform regen (MC-311818), and Vulkan depth-attachment formatting (MC-310767) round out the rest.

How to get the snapshot

Snapshots are Java Edition only. In the Minecraft Launcher, enable snapshots under the Installations tab and select the 26.4 snapshot build. Mojang warns that testing versions can corrupt worlds — back up saves and/or use a separate game directory from your main worlds. A cross-platform server jar is linked from the snapshot page; bugs go to the Minecraft issue tracker.

Who it hits

Players feel the Vulkan default and the water auto-jump / mushroom / item-frame / Creative / Spectator End fixes first. Server hosts get allowed-connection-ids, status-contact-details, and enable-legacy-status, plus intention-host query params and transfer properties. Datapack and resource-pack authors must retarget Data Pack 122.0 and Resource Pack 98.0, including trunk width, placed-feature 3×3 validation, cuboid size semantics, default_block removal, and the new biome / cave tags. Shader authors need the OIT depth-bin define renames. Modding platforms remain responsible for filling minecraft:mod_list.