Introduction

About NeoForge

NeoForge is the new kid on the block. For the 1.20.1 cycle, Architectury Loom has provided support for using NeoForge. However, we did not create an API specifically for NeoForge as it was unnecessary. (and architectury api is still built on Forge 46.0.1 to this day, the first version of Forge 1.20)

While they have been working hard on changing the toolchain for the 1.20.2 cycle. As of writing this, NeoForge is still quite far away from their ambitions. We don't know how much work would be needed to support their new setup, but we will definitely continue to support NeoForge in our build tools.

On September 22, 2023, we polled our users and mod developers (an @everyone ping sorry), and here are the results:

Note that percentages exceed 100% as users may choose multiple options.

Fabric Quilt MinecraftForge NeoForge Total Unique Users
1. Users / devs use currently 75% 13% 45% 27% 529
2. Devs (API or not) support in the future 84% 17% 23% 69% 420
3. Devs (who uses API) support currently 89% 15% 82% N/A 293
4. Devs (who uses API) support in the future 82% 22% 21% 75% 304

From this result, we are seeing a 1 : 3.57 ratio for MinecraftForge : NeoForge on developers' support for modloaders in the future.

Out of those who voted for MinecraftForge on question 3, we are seeing a 1 : 3.23 ratio for MinecraftForge : NeoForge going forward, here's what they voted for on question 4:

Fabric Quilt MinecraftForge NeoForge
4. Devs (who uses API) support in the future 85% 21% 26% 84%

For now, we will provide support for both Forge and NeoForge for the 1.20.2 cycle, until demand for MinecraftForge has completely diminished. When that happens, we will provide a transitional period for modders who want to continue develop for MinecraftForge.

As the APIs on both platform differ, we will prioritize compatibility for NeoForge over MinecraftForge in situations where it is impossible to maintain compatibility for both.

We will write up another page for when Architectury API is available for NeoForge 1.20.2.

Changes

  • ClientRawInputEvent.MOUSE_SCROLLED now has an extra amountX parameter, so from (amount) to (amountX, amountY)
  • ClientScreenInputEvent.MOUSE_SCROLLED now has an extra amountX parameter, so from (amount) to (amountX, amountY)
  • PlayerEvent.PLAYER_ADVANCEMENT now provides AdvancementHolder instead of Advancement
  • StandardRegistrarOption.SAVE_TO_DISC no longer exists as Fabric removed that option