
Create Collision Crashfix
Fixes the Create 6.0.10 server crash where moving contraptions (pulley/drill quarries) throw NullPointerException "mf.axis" is null
About this 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.
Available Versions
How to Install Create Collision Crashfix on Your Server
Order Server
Order a Minecraft Java server with at least 4 GB RAM (6 GB recommended).
Set neoforge Loader
In the panel under "Egg", select the neoforge loader and matching Minecraft version (1.21.1).
Install Mod
Open the mod browser in the dashboard and search for "Create Collision Crashfix". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.
Compatibility
Mod Loaders
Minecraft Versions
1.21.1
Server-side
✓ RequiredRecommended RAM
6 GB(min. 4 GB)Frequently Asked Questions
Create Collision Crashfix server crashes on startup – what to do?
Most common cause: wrong neoforge version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 4 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.
Is Create Collision Crashfix compatible with neoforge?
Create Collision Crashfix officially supports neoforge for Minecraft 1.21.1. The Mado dashboard automatically detects incompatible loader combinations.
Server lagging with Create Collision Crashfix – how to optimize performance?
Recommended RAM: 6 GB (per 5 players). Use /spark profiler to check if Create Collision Crashfix consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.
Similar Mods
Rent Modded Server
Install Create Collision Crashfix with just one click on your server.