Back to mods
No Null Processors project artwork

CurseForge · Minecraft mod

No Null Processors

Fixes structure crash in 1.17+ due to null processor lists coming from nowhere

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

Quick answer

Which No Null Processors release should I use?

Updated 3 years ago
Latest stable file No Null Processors Fabric v2.0.2 (1.18.1 MC)
Game version 1.18
Loader Fabric

No Null Processors Fabric v2.0.2 (1.18.1 MC) targets 1.18 with Fabric. 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 No Null Processors 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 Fabric
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 No Null Processors Fabric v2.0.2 (1.18.1 MC) need?

No Null Processors Fabric v2.0.2 (1.18.1 MC). 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 No Null Processors without breaking your instance.

Built for No Null Processors Fabric v2.0.2 (1.18.1 MC). Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use No Null Processors Fabric v2.0.2 (1.18.1 MC). It targets 1.18 with Fabric; 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 No Null Processors Fabric v2.0.2 (1.18.1 MC). It opens that exact file at the source.

About this project

What does No Null Processors add?

Files

Forge download: Click here

Fabric download: Click here



NOTE: 1.18.2 FIXED NULL PROCESSORS SO THIS MOD IS NO LONGER NEEDED FOR THAT MC VERSION AND NEWER


INFO

Have you been trying to pre-generate large areas of your world with pregenerator mods and keep randomly crashing with this error?

Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.structure.processor.StructureProcessorList.getList()" because the return value of "java.util.function.Supplier.get()" is null

at net.minecraft.structure.pool.SinglePoolElement.createPlacementData(SinglePoolElement:148) ~[?:?]

at net.minecraft.structure.pool.SinglePoolElement.generate(SinglePoolElement:124) ~[?:?]

Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.class_5497.method_31027()" because the return value of "java.util.function.Supplier.get()" is null

at net.minecraft.structure.pool.SinglePoolElement.createPlacementData(SinglePoolElement:148) ~[?:?]

at net.minecraft.structure.pool.SinglePoolElement.generate(SinglePoolElement:124) ~[?:?]

If so, congrats! You found a really wacky bug in 1.17.1 Minecraft! This mod aims to fix that.

The bug is tricky to explain but basically to trigger it, you need a mod or datapack that has processor lists created by worldgen json files, use a chunk pregenerator mod or something to load a massive amount of chunks, and then load all those chunks that contains structures that uses json processor lists. Randomly, that may crash due to a null processor list.
So what's going on? Well, Minecraft has a registry of processor lists inside that should be created at world startup. Then when the game needs it, it grabs it from the registry but it shouldn't be rewriting that registry at runtime. Cause that would be bad right? Well...

When a structure layout is created during worldgen, the game saves that layout and what pieces were picked into the chunk itself. Then later, as the chunk is being made, it loads that piece from the chunk to spawn in the world. Except, upon reading that structure piece from the chunk, it also needs to read the processor list attached to the piece to know what processors should run for that piece. And it's here that the bug is done. The code to read the processor list is incorrect and will take the processor it reads and register it again to the registry, replacing itself with itself, and then use it.

And this registry replacing with itself is not threadsafe. And since minecraft creates chunks in a multithreaded way... there exists a point where two structure pieces using the same processor could try reading/writing to that same exact entry in the registry. And when this rare collision occurs, one of the structure pieces may end up with a null processor which then crashes the game because the game cannot handle spawning a null processor because it doesn't exist!

Wacky right? Super weird and painful to debug but thanks to another modder, we were able to figure this out and create this fix. As far as we know, 1.16.5 does not have this issue. The problem started in 1.17.0 and continues to persist to 1.18.1. However, 1.18.2 fixed this bug. The fix this mod does is it caches the RegistryOps used for each individual processor list so it only writes itself to the registry once and reuses that forever. Thus avoiding the whole issue with multiple read/writes to that same specific registry entry. (In theory lol)

Hope this helps!

Discord Link to #telepathicgrunt-mods channel for my mods! :

https://discord.gg/K8qRev3yKZ

discord-logo-png-free-transparent-png-logos-discord-png-logo-300_300 (PNG)  | BeeIMG

Project description from CurseForge.

Pick your setup

No Null Processors by Minecraft version and loader

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

6 available setups

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

Recent files

No Null Processors versions and loaders

7 of 7 releases match

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