Back to mods
NeoBackports project artwork

CurseForge · Minecraft mod

NeoBackports

Backports of various Neoforge / 1.21.1 features to 1.20.1 for easier maintenance between versions

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which NeoBackports release should I use?

Updated 2 days ago
Latest stable file NeoBackports - 1.4.2
Game version 1.20.1
Loader Forge

NeoBackports - 1.4.2 targets 1.20.1 with Forge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.

Where it goes

Is NeoBackports required on the client, server, or both?

The project page does not say whether this file belongs on the client, dedicated server, or both.

Client Source doesn’t say
Dedicated server Source doesn’t say
Loader for this release Forge
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

The source does not explicitly classify this release as client-only or server-only.

What else does NeoBackports - 1.4.2 need?

NeoBackports - 1.4.2. Change the file and its required mods may change too.

No extra mods listed for this file

This file does not list any required mods. Do not add a library just because a different file uses it.

This file does not list any required or optional mods.

Before you install it

Add NeoBackports without breaking your instance.

Built for NeoBackports - 1.4.2. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use NeoBackports - 1.4.2. It targets 1.20.1 with Forge; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    This file does not list any required mods. Do not add a library just because a different file uses it.

  3. 03

    Put it on the correct side

    The project page does not say whether this file belongs on the client, dedicated server, or both.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside NeoBackports - 1.4.2. It opens that exact file at the source.

About this project

What does NeoBackports add?

A library for using neoforge 1.21.1 features and methods on forge 1.20.1

This mod is intended to be used as a library included with other mods. Currently, the only standalone features are blurred 1.21-style gui backgrounds. Manually installing a newer version than is packaged is only useful for fixing bugs

Current features include:

  • Datamaps
  • Data components
  • Data attachments
  • Stream codecs
  • Blurred gui backgrounds (enabled with a built-in resourepack)
  • DeferredHolders (and their subtypes)
  • 1.21.1-style networking
  • Recipe serializers with codecs
  • useItemOn and useWithoutItem methods for blocks

... and a lot of convenience interface extensions

Q&A

  • Why backport to 1.20.1? wouldn't it make more sense to help devs port up instead of down?
  • Making a lib for foward porting is fundamentally pointless, as it carries technical debt and would require porting the lib up every new version. Devs would never get used to new features, even when they are objectively better, and would make laggier and buggier mods. Doing it this way means we can satisfy the 1.20 crowd while still pushing them towards newer version
  • This sounds like a synitra connector type mod, could it work that way?
  • Theoretically, if I put a lot of work into it, it could make very tiny 1.21.1 mods run on 1.20.1, but the support would be extremely limited so it's not work the time. TLDR: NO

Installation instructions

Since this lib uses interface injections, switching from ForgeGradle to ModDevGradle Legacy gradle plugin is required. Documentation here and a working MDK here

In build.gradle:

repositories {
    // Some other repositories you might have...
    
    maven {
        url = 'https://nikdo53.github.io'
    }
}


dependencies {
    // Some other dependencies you might have...

    jarJar(modImplementation("net.nikdo53:NeoBackports:${neobackports_version}"))
    interfaceInjectionData("net.nikdo53:NeoBackports:${neobackports_version}")
}

In gradle.properties:

# Set to whatever is latest
neobackports_version=1.4.1

Technical differences

Features aren't backported 1 to 1 (due to backend differences between versions) but should be similar enough for most mods to just work without major differences

Class names

In order to make the difference between original forge/vanilla classes and backported ones, backported classes get the "neo" suffix, for example:

  • SmithingRecipe -> SmithingRecipeNeo
  • PacketDistributor -> PacketDistributorNeo
  • DeferredRegister -> DeferredRegisterTyped (this ones different cuz i forgot)

Data components/attachments

Unlike 1.21.1, these are just clever wrappers for existing features (item nbt and capabilities respectively), meaning that other mods not using this API should be able to access them like normal.

Datamaps

These have been (with permission) ported directly from neoforges code with minimal differences. Note that the login packet which handshaked known datamaps has been removed and non-mandatory are generally not supported. I might return to this in the future, but since this mod is required on both client and server, it's probably not very useful (and 1.20.1 login packets are weird)

Stream codecs

The ByteBuf generic has been removed, since everything uses FriendlyByteBuf:

StreamCodec<RegistryFriendlyByteBuf, SomeClass> -> StreamCodec<SomeClass>

The icon is a tibetan fox, it looks pissed cuz its been forced to use forge

Project description from CurseForge.

Pick your setup

NeoBackports by Minecraft version and loader

Choose the version and loader you play, then open the matching release.

1 available setups

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

NeoBackports versions and loaders

9 of 9 releases match

Looking for an older file? The official CurseForge project page is in Resources.