NeoForge 20.3 for Minecraft 1.20.3 and 1.20.4

Note: With the recent release of the Minecraft 1.20.4 hotfix version, we are dropping support for 1.20.3 and encourage all modders to update to NeoForge 20.4. The future plans mentioned here have not changed, but they will target 20.4 instead of 20.3.


The first beta release of NeoForge for Minecraft 1.20.3, NeoForge 20.3.1-beta is now released! Please try it out, play with it, develop with it, and give us feedback! We are not stable yet, so expect a few breaking changes in the coming weeks.

For players, you can grab the latest installer directly from https://neoforged.net/.

The rest of this blog post is for modders. Let’s talk about recent updates to NeoForge that modders porting to 20.3 should be aware of. Minecraft 1.20.3 itself also comes with a few technical changes, however that will not be covered in this post.


Capability rework

The most impactful change in 20.3 is the rework of the capability system. You can read all about it in our dedicated blog post.

Noteworthy recent additions

Let’s discuss a few changes that are already available in the 20.2 release series, and of course in all 20.3 releases, but you might not have heard about.

Access transformers inside mods.toml

Mods can now ship multiple access transformer files, by declaring them in their mods.toml:

[[accessTransformers]]
file="modid_base.at"

[[accessTransformers]]
file="modid_extra.at"

If no such entry is present, FML will fall back to META-INF/accesstransformer.cfg like before. We will continue to accept both formats for the foreseeable future.

Additionally, ATs still need to be specified for NeoGradle to apply them in your development environments:

minecraft {
    accessTransformers {
        file('src/main/resources/modid_base.cfg')
        file('src/main/resources/modid_extra.cfg')
    }
}

MixinExtras ships with NeoForge

MixinExtras by LlamaLad7 now ships with NeoForge and is enabled automatically. There is nothing required in your build.gradle with regards to MixinExtras anymore.

MixinExtras is a completary library to Mixin, designed to help modders write their Mixins in a more expressive and compatible way. If you use mixins in your mod, we encourage you to give the MixinExtras wiki a read.

If you want to override the bundled MixinExtras version with a newer one, you can do so by JiJing the newer version the same way you used to JiJ regular MixinExtras before this update.

Mixin configs inside mods.toml

Mixin configs can now be specified directly inside your mods.toml file, for example:

[[mixins]]
config="modid_base.mixins.json"

[[mixins]]
config="modid_extra.mixins.json"

We recommend using this new format in your mods. No Gradle support is needed anymore to use Mixins, and this opens the door to selectively-enabled mixin configs in the future.

Coming Soon

Before we can stabilize 20.3, we will be releasing an overhaul of our networking hooks and protocol to account for the configuration phase recently introduced by Mojang. If you are interested in the discussion, we encourage you to join our Discord server and look at the #brainstorming forum channel.

As usual, we also welcome all kinds of smaller contributions. The breaking change window for 20.3 will remain open for a few weeks. Now is a great time to start working on your Pull Requests.

1.20.2 Plans

NeoForge for 1.20.2 is now stable, starting from version 20.2.86 released a few days ago. Due to limited community adoption, we will only accept backports for critical bugfixes, provided that they are first submitted to and accepted for the 1.20.3 branch.