
Aeronautics Levitite Server Fix
Lets Levitite Blend crystallize on dedicated servers for Create: Aeronautics 1.2.1 and older (fixed upstream in 1.3.0).
Aeronautics Levitite Server Fix
A tiny server-side fix for Create: Aeronautics that lets Levitite Blend crystallize on dedicated servers.
Do you need this? Only if you run Create: Aeronautics 1.2.1 or older on a dedicated server. This bug is already fixed upstream in Aeronautics 1.3.0 — if you can update to 1.3.0+, do that instead and you don't need this mod. (1.3.0 requires Sable 2.0, so this exists for packs that are pinned to Aeronautics ≤1.2.1 / Sable 1.x.)
The problem
On a dedicated server, right-clicking Levitite Blend with a catalyzer (torch, flint & steel, fire charge, campfire) does nothing, and the server log throws:
java.lang.RuntimeException: Attempted to load class
net/minecraft/client/player/LocalPlayer for invalid dist DEDICATED_SERVER
at net.neoforged.fml.common.asm.RuntimeDistCleaner.processClassWithFlags
at dev.eriksonn.aeronautics.network.packets.LevititeCatalystCrystallizationPacket.handle(:38)
→ Failed to process a synchronized task of the payload: aeronautics:levitite_blend_crystallize
It works in singleplayer because the integrated server shares the client distribution.
Why: the server-side crystallization packet handler called LevititeCatalyzerHandler.isCatalyzer(...). That class is client-tainted — its onUse references the client-only LocalPlayer — so loading it on a dedicated server trips NeoForge's RuntimeDistCleaner, the packet fails, and crystallization never happens.
(Tracked upstream as Simulated-Project issue #664; fixed by commit a86bd1d, released in Aeronautics 1.3.0.)
The fix
A single Mixin redirects that one tainted call to a server-safe inline item-tag check — exactly what isCatalyzer computes internally (item.is(#aeronautics:levitite_catalyzer) || item.is(#aeronautics:levitite_soul_catalyzer)). The dedicated server therefore never loads the client-tainted class, and the rest of the handler (which is already dist-safe) crystallizes normally.
- No compile-time dependency on Aeronautics — the Mixin targets it by name.
- The Mixin config is non-required: on Aeronautics 1.3.0+ (where the method was refactored away) it simply finds no target and no-ops harmlessly instead of crashing. So it's safe to leave installed across an Aeronautics update.
Install
- NeoForge 1.21.1 only.
- Put the jar in your server's
mods/folder. Clients don't need it (singleplayer already works), though it's harmless if present. - Requires Create: Aeronautics to do anything; does nothing on its own.
Compatibility
| Aeronautics version | Effect of this mod |
|---|---|
| ≤ 1.2.1 | Fixes server-side levitite crystallization |
| ≥ 1.3.0 | No-ops (already fixed upstream) — safe to remove |
License
MIT. Contains no Create: Aeronautics code — the Mixin references it by name only.
Credits
- Create: Aeronautics by Eriksonn / The Creators of Aeronautics.
- Root-cause writeup and fix by DaciteRocks.
