A new version of Minecraft is coming soon with some changes that affect most mod makers. As always, we ask all players to be patient, and give mod developers time to update to this new version. We kindly ask everyone not to pester them. We also recommend all players make backups of their worlds.

26.2 introduces the ability for the backend to be changed between the default OpenGL backend and an experimental Vulkan backend, with OpenGL planned to be removed once the Vulkan backend is stable. Developers making use of raw OpenGL calls rather than going through the Blaze3D API will need to migrate for their mods to work.

Here is a list of several major modder-facing changes in this version, using the names provided by the unobfuscated game.

Fabric changes

Developers should use Loom 1.17 and Gradle 9.5.1 (at the time of writing) to develop mods for Minecraft 26.2. Players should install the latest stable version of Fabric Loader (currently 0.19.3).

Enum extensions

Fabric Loader 0.19.0 and Loom 1.17 bring with them a new API for enum extensions, implemented via Fabric Mixin at runtime and classtweaking at compile time. For more information, see the dedicated article on the Fabric Docs.

Tag removal

Fabric API 0.150.1 introduced a new API for removing entries from tags, useful for both mod developers and modpack developers wishing to safely modify tags without replacing them in their entirety.

As an example, the below will remove minecraft:brick from the values of this tag. Other entries within #c:bricks will still be added.

{
  "replace": false,
  "values": [
    "#c:bricks",
    "minecraft:snowball"
  ],
  "fabric:remove": [
    "minecraft:brick"
  ]
}

Fluid interaction API

Fabric API 0.150.1 also introduced the currently experimental Fluid Interaction API, allowing mod developers greater control over how their fluids interact with entities. To use it, register a fluid tag containing your mod’s fluid, and an instance of FluidBehaviour, which can either be created directly or via a builder.

EntityFluidInteractionRegistry.register(ModTags.ACID, 
                                        FluidBehavior.simple()
                                        .allowBoats(true)
                                        .allowSwimming(false)
                                        .build());

Attended client commands

Fabric API 0.152.0 introduced the ability to set .requires(FabricClientCommandSource::attended) on client commands, allowing mods to ensure that the user has confirmed that they expect to run the given client command. Without this, the server could provide a text component that when clicked runs a client command without the user being able to see the command.

Minecraft changes

26.2 is a smaller update with more minor changes than 26.1, focused primarily on rendering (as always) and registration. We have only listed a few of the major non-rendering changes here. For a more comprehensive list of changes, please see NeoForged’s upcoming porting “primer”.

Registration and data generation

The vanilla game now stores block ids and item ids seperately, in BlockIds, BlockItemIds, and ItemIds. These keys are used for data generation rather than the raw Block or Item instances.

This necessitated the removal of valueLookupBuilder. It’s recommended to match vanilla and seperate your ids from your Blocks as well.

Gui reorganization

Various GUI and HUD methods have been moved to dedicated classes for the Gui and Hud, which included moving the methods for retrieving and setting the current screen out of Minecraft. The Gui and Hud are both available from Minecraft.

// Setting the screen
- Minecraft.getInstance().setScreen()
+ Minecraft.getInstance().gui.setScreen()