MultiLoader 1.21+ · Part 2

Setting Up RegistrationUtils

BEGINNER MULTILOADER 1.21-1.21.1 8 min read · May 17, 2026
MultiLoader 1.21+ · 28 parts
1 Getting Started with MultiLoader 1.21+ 2 Setting Up RegistrationUtils 3 Creating Items (MultiLoader 1.21+) 4 Creating Blocks (MultiLoader 1.21+) 5 Data Generation: Block & Item Models (MultiLoader 1.21+) 6 Data Generation: Block Loot Tables (MultiLoader 1.21+) 7 Data Generation: Crafting Recipes (MultiLoader 1.21+) 8 Data Generation: Block & Item Tags (MultiLoader 1.21+) 9 Custom Food Items (MultiLoader 1.21+) 10 Custom Tools (MultiLoader 1.21+) 11 Custom Armour (MultiLoader 1.21+) 12 Block Entities (MultiLoader 1.21+) 13 Config Files (MultiLoader 1.21+) 14 Custom Sounds (MultiLoader 1.21+) 15 Events and Listeners (MultiLoader 1.21+) 16 Networking and Custom Packets (MultiLoader 1.21+) 17 Data Generation: Advancements (MultiLoader 1.21+) 18 Data Generation: Language Files (MultiLoader 1.21+) 19 Custom Entities (MultiLoader 1.21+) 20 Ore Generation (MultiLoader 1.21+) 21 Introduction to Mixins (MultiLoader 1.21+) 22 Custom Particles (MultiLoader 1.21+) 23 Menus & Screens (MultiLoader 1.21+) 24 Key Bindings (MultiLoader 1.21+) 25 Custom Potion Effects (MultiLoader 1.21+) 26 Custom Enchantments (MultiLoader 1.21+) 27 Custom Commands (MultiLoader 1.21+) 28 Custom Biomes (MultiLoader 1.21+)

RegistrationUtils is a Gradle plugin providing registration utilities for Minecraft multi-loader projects. The plugin installs the dependency and shadows it into your mod's jar when you build, so you won't need to declare any hard runtime dependencies. It also makes registering blocks, items, and other objects across NeoForge and Fabric much simpler.

NOTE
Make sure you have completed the Getting Started tutorial before continuing. You need a working MultiLoader template project open in IntelliJ IDEA.

Adding the Plugin

Open build.gradle in your root directory (not in any subproject). Find the plugins block at the top and add the RegistrationUtils plugin:

groovy
plugins {
// ... existing plugins ...
id 'com.matyrobbrt.mc.registrationutils' version '1.21.0-0.2.1'
}
TIP
Always check the RegistrationUtils releases page for the latest version number that targets your Minecraft version.

Configuring RegistrationUtils

Still in the root build.gradle, add the following block anywhere outside the plugins and subprojects sections:

groovy
registrationUtils {
group 'com.example.examplemod.registration'
projects {
fabric { type 'fabric' } // the fabric subproject
neoforge { type 'neoforge' } // the neoforge subproject
common { type 'common' } // the common subproject
}
}

The group property sets the Java package where RegistrationUtils will generate the necessary helper classes. Use the same group you defined in gradle.properties plus a.registration suffix, for example com.example.examplemod.registration.

The three project names (fabric, neoforge, common) must match the subproject names defined in your settings.gradle. Each entry tells RegistrationUtils which loader type applies so it can generate the correct registration provider implementations.

WARNING
The project names here are case-sensitive and must match exactly. If your template uses different casing (e.g., NeoForge with a capital N), update accordingly.

Refreshing Gradle

Once you have saved the changes to build.gradle, open the Gradle tool window in IntelliJ IDEA and click the Refresh (sync) button. Gradle will download the plugin, apply it, and generate the registration helper files into the registration package you specified.

After the sync completes, you should see a new registrations folder appear inside your common project's generated sources. This contains the RegistrationProvider interface and loader-specific implementations that we will use in the Items and Blocks tutorials.

You can find the source for this tutorial here:

View Source on GitHub
NEXT IN SERIES

Creating Items (MultiLoader 1.21+)

Build an ItemRegistry using RegistrationProvider, register a custom item, add a generated item model and texture, wire up a creative tab, and add localisation — all from the common module.

Continue →