MC 26.3 Snapshot 4: SDL3, Custom Fuels and a Loot Table Overhaul
Swap GLFW for SDL3, adds custom furnace and brewing fuel components, and rewrites how loot tables reference data.
The Java team dropped Snapshot 4 of 26.3 on a Thursday instead of the usual Wednesday - peak vacation season in Sweden, apparently. Schedule aside, this is one of the meatiest snapshots of the cycle, with a full swap of the game's windowing backend and a sweeping rework of how loot tables reference other data.
Goodbye GLFW, hello SDL3
Minecraft now uses SDL3 instead of GLFW for window management, input and platform integration. That single change ripples through a lot of settings you have probably touched at some point:
Key bindings now use physical keys instead of keyboard-layout-specific key codes, finally fixing the long-standing complaint that Ctrl+A and friends were mapped to a US layout no matter what you actually type on.
Borderless Fullscreen is now the default, and switching between Borderless and Exclusive no longer needs a restart.
Exclusive fullscreen on macOS is gone, and the Raw Input mouse setting has been removed - the game always uses relative mouse mode in-game now.
On Linux, the game prefers Wayland natively when available.
macOS players holding a key while typing now get the native accent and candidate popup.
The window has a minimum size of 320 by 240 pixels.
Heads up: Mojang flags known crashes with Exclusive fullscreen on Windows multi-monitor setups and on Wayland, so stick with Borderless for now.
Custom fuels are here
Two new data components let creators define their own fuel behaviour without touching tags:
minecraft:cooking_fuel - sets burn time and a speed multiplier for Furnaces, Smokers and Blast Furnaces.
minecraft:brewing_fuel - sets the number of brews and a speed multiplier for Brewing Stands. The #brewing_fuel item tag has been removed, so the component is now the only way to register brewing fuels.
Both pull their values from the new minecraft:number_provider registry, and Mojang shipped a whole family of vanilla providers (time_coal, time_lava_bucket, time_wool_carpets and many more) so you can reuse the exact vanilla burn times. Smoker and Blast Furnace recipes now share the same cooking time as their Furnace versions, with the speedup handled by the speed multiplier instead.
Signs get safer
Signs no longer automatically execute click events in custom text, and text components on newly placed Signs are no longer resolved by default. A new allow_op_features boolean (defaulting to false) restores the old behaviour. Existing Signs from older worlds keep it enabled, but anything you place from now on needs it set explicitly. Signs also gained sign_text_front, sign_text_back and waxed components, which show up in item tooltips.
New gameplay and mob bits
Spectators can finally interact with portals to teleport - a fix for a bug that had been open for years.
Armadillos no longer try to roll up when submerged in liquids.
minecraft:villager_food defines what Villagers will eat and how much hunger it satiates.
minecraft:mob_visibility lets equippable items change the range at which mobs can detect you, from a 2-block bubble at 0.0 all the way to a tenfold increase at 10.0.
Cushions gained a colour component and a new #cushion_uses_collision_shape block tag.
Loot tables, predicates and number providers
This is the section datapack authors will want to sit down for. Loot table types with a dedicated registry now accept registry element and tag references almost everywhere: a field that used to take one inline value will now take a namespaced ID, a list of IDs, a list of inline values, or a hash-prefixed tag. That applies to advancements, item modifiers, loot tables, number providers, predicates, recipes and slot sources. The old minecraft:reference types are obsolete and have been removed as a result.
Alongside that, plenty of fields got renamed for consistency - conditions becomes condition, functions becomes modifier, and the type-describing fields on functions and predicates are now just type. The minecraft:block_state_property condition is gone, replaced by the more capable minecraft:match_block, which can also match block entity NBT and components.
World generation changes
Mob spawning has moved out of Biomes and into Environment Attributes, via the new gameplay/natural_mob_spawns and gameplay/creature_world_gen_spawn_probability attributes. Noise Settings got a rework too: aquifers and ore veins are now optional objects with their own density functions instead of simple on/off toggles. Density functions gained sub, div, negate, lerp, floor, round, ceil, truncate and a standalone beardifier, plus a batch of clearer argument names (left/right, input, value).
Quality of life
The debug overlay can now run at its own GUI scale, separate from the rest of the game (F3 + F6 to configure), and gained a player_speed readout and a display refresh rate line. The Creative inventory also got reordered so mineral ingredients come before tiered ones that craft into equipment, and the Natural Blocks tab now flows Overworld to Nether to End like the other tabs.
Bug fixes
The list is long and heavy on input and rendering fixes, including several Improved Transparency crashes, macOS shift-scroll weirdness, and a pile of keybinding issues that the SDL3 switch cleared out. Poplar textures, cushions and the ender dragon all got touch-ups too.
As always, snapshots can corrupt worlds, so back up first or run them in a separate folder.
Commentaires (0)
- Soyez le premier à commenter !
