
Create Collision Crashfix
Fixes the Create 6.0.10 server crash where moving contraptions (pulley/drill quarries) throw NullPointerException "mf.axis" is null
Über diese Mod
Create Collision Crashfix
A tiny, single-mixin hotfix for a server-fatal crash in Create 6.0.10 on Minecraft 1.21.1 (NeoForge).
The problem
A moving Create contraption can hard-crash the server tick loop:
java.lang.NullPointerException: Cannot read field "x" because "mf.axis" is null
at com.simibubi.create.foundation.collision.ContinuousOBBCollider.collideMany(ContinuousOBBCollider.java:153)
at com.simibubi.create.content.contraptions.ContraptionCollider.collideEntities(ContraptionCollider.java:166)
at com.simibubi.create.content.contraptions.ContraptionHandler.tick(ContraptionHandler.java:54)
Description: Exception in server tick loop
Once it happens the world usually crash-loops on load, because the offending contraption fires the same crash every tick.
When it triggers: a moving contraption's collision check hits a degenerate, zero-distance case — an entity's bounding-box center lands exactly on a contraption block's center on every axis. The most common real-world trigger is a rope pulley + drill quarry (e.g. a drill array with the pulley in the center column), but rotating bearings, tree farms with a saw, and similar setups can also hit it.
This is an upstream Create bug, present only in 6.0.10 (6.0.9 is unaffected). The official fix is Create PR #10301, milestoned for 6.0.11, which is not released yet. Downgrading to 6.0.9 is not an option for most packs because many Create addons require create >= 6.0.10.
Related upstream reports
- Issue #10218 (tracking) — https://github.com/Creators-of-Create/Create/issues/10218
- Issue #10278 —
mf.axisis null when entity AABB center coincides with contraption block center — https://github.com/Creators-of-Create/Create/issues/10278 - Issue #10344 — https://github.com/Creators-of-Create/Create/issues/10344
- Issue #10353 — https://github.com/Creators-of-Create/Create/issues/10353
- Issue #10378 — contraption collision NPE edge cases — https://github.com/Creators-of-Create/Create/issues/10378
- Issue #10479 — tree farm crashes server when loaded — https://github.com/Creators-of-Create/Create/issues/10479
- Upstream fix: PR #10301 — https://github.com/Creators-of-Create/Create/pull/10301
The fix — what changed and why it works
Inside Create's ContinuousSeparationManifold#separate, the separation axis (and normalAxis) are recorded only when the tested distance is non-zero:
if (distance != 0.0 && -diff <= Math.abs(this.separation)) {
this.axis = axis; // never runs in the degenerate, coincident-center case
this.separation = separation;
}
In a perfectly coincident overlap every separation test runs with distance == 0, so axis/normalAxis stay null. collideMany then dereferences them (mf.axis.x) and the server dies.
This mod wraps the two field reads in collideMany with a null guard (MixinExtras @WrapOperation). When the recorded axis is null, it returns Vec3.ZERO, so the degenerate collision contributes zero push for that tick instead of crashing. The next tick the entity has moved sub-voxel, a valid separation axis exists, and collision resolves normally — no stuck entities, no clipping.
@WrapOperation(
method = "collideMany",
at = @At(value = "FIELD",
target = "L.../ContinuousOBBCollider$ContinuousSeparationManifold;axis:Lnet/minecraft/world/phys/Vec3;",
opcode = Opcodes.GETFIELD),
remap = false)
private static Vec3 guardAxis(@Coerce Object manifold, Operation<Vec3> original) {
Vec3 value = original.call(manifold);
return value == null ? Vec3.ZERO : value; // same for normalAxis
}
Why Vec3.ZERO specifically, and why it's safe:
- When
axisis null, the pairedseparationscalar isDouble.MAX_VALUE. A non-zero fallback axis would computeaxis * MAX_VALUEand fling the entity to infinity.0 * MAX_VALUE == 0neutralizes it cleanly — no NaN, no teleport. axisandnormalAxisare the only nullableVec3reads incollideMany(stepSeparationAxisisfinaland non-null; thecollision*fields are primitivedouble), so this covers every null-deref site in the method.- The guard activates only on the null/degenerate path. Every normal collision is byte-for-byte unchanged.
The fix mirrors the intent of upstream PR #10301; it is deliberately surgical so it cannot affect non-degenerate physics.
Compatibility
- Minecraft 1.21.1 · NeoForge 21.1.x
- Create 6.0.10 only. The mod is hard-pinned to
create [6.0.10]. On any other Create version it refuses to load with a clearrequires create [6.0.10]message — which is your reminder to remove it once Create 6.0.11 (with the official fix) is out. - Install on both client and server (versions must match).
- No mixin into addon classes — it only guards two field reads inside Create core, so it coexists with addons that mixin
ContraptionCollider(Create Big Cannons, Aeronautics, Sable, etc.).
License
MIT. Ships no Create code — just a mixin and metadata.
Verfügbare Versionen
Create Collision Crashfix auf dem Server installieren
Server bestellen
Bestelle einen Minecraft Java Server mit mindestens 4 GB RAM (6 GB empfohlen).
neoforge Loader setzen
Wähle im Panel unter "Egg" den neoforge-Loader und die passende Minecraft-Version (1.21.1).
Mod installieren
Öffne den Mod-Browser im Dashboard und suche nach "Create Collision Crashfix". Klicke "Installieren" – fertig! Alternativ: Lade die .jar via SFTP in den /mods Ordner.
Kompatibilität
Mod-Loader
Minecraft-Versionen
1.21.1
Server-seitig
✓ ErforderlichEmpfohlener RAM
6 GB(min. 4 GB)Häufige Fragen
Create Collision Crashfix Server crasht beim Start – was tun?
Häufigste Ursache: falsche neoforge-Version oder zu wenig RAM. Prüfe im Server-Log (latest.log), ob ein "OutOfMemoryError" oder "Mixin"-Fehler auftritt. Bei Mado Hosting: Stelle sicher, dass mindestens 4 GB RAM zugewiesen sind und der Loader zur Mod-Version passt (1.21.1). Über das Panel kannst du den Loader mit einem Klick wechseln.
Ist Create Collision Crashfix mit neoforge kompatibel?
Create Collision Crashfix unterstützt offiziell neoforge für Minecraft 1.21.1. Im Mado Dashboard werden inkompatible Loader-Kombinationen automatisch erkannt.
Server laggt mit Create Collision Crashfix – wie optimiere ich die Performance?
Empfohlener RAM: 6 GB (+1 GB pro 5 Spieler). Prüfe mit /spark profiler, ob Create Collision Crashfix den meisten Tick-Time verbraucht. Häufige Fixes: Server-View-Distance auf 8-10 reduzieren, bei Forge "performant" oder "starlight" als Zusatz-Mod installieren. Bei Mado Hosting läuft dein Server auf NVMe-SSDs mit dedizierten CPU-Kernen für minimale Latenz.
Ähnliche Mods
Modded Server mieten
Installiere Create Collision Crashfix mit nur einem Klick auf deinem Server.