[22:59:58] [pool-31-thread-1/FATAL] [mixin/]: Mixin apply for mod sable failed sable.mixins.json:explosion.ExplosionMixin from mod sable -> net.minecraft.world.level.Explosion: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("INVOKE") on net/minecraft/world/level/Explosion::sable$redirectBlockExplosionResistance with priority 1000 cannot inject into net/minecraft/world/level/Explosion::explode()V merged by ca.spottedleaf.moonrise.mixin.collisions.ExplosionMixin with priority 1000 [INJECT_PREPARE Applicator Phase -> sable.mixins.json:explosion.ExplosionMixin from mod sable -> Prepare Injections -> handler$dog000$sable$redirectBlockExplosionResistance(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;Ljava/util/Set;IIIIDDDDFDDDFLnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;Lcom/llamalad7/mixinextras/sugar/ref/LocalFloatRef;Lcom/llamalad7/mixinextras/sugar/ref/LocalRef;)V -> Prepare -> -> { target: explode()V }]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/world/level/Explosion::sable$redirectBlockExplosionResistance with priority 1000 cannot inject into net/minecraft/world/level/Explosion::explode()V merged by ca.spottedleaf.moonrise.mixin.collisions.ExplosionMixin with priority 1000 [INJECT_PREPARE Applicator Phase -> sable.mixins.json:explosion.ExplosionMixin from mod sable -> Prepare Injections -> handler$dog000$sable$redirectBlockExplosionResistance(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;Ljava/util/Set;IIIIDDDDFDDDFLnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;Lcom/llamalad7/mixinextras/sugar/ref/LocalFloatRef;Lcom/llamalad7/mixinextras/sugar/ref/LocalRef;)V -> Prepare -> -> { target: explode()V }]
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:312) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar#175!/:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:248) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar#175!/:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:475) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar#175!/:0.15.2 mixin.0.8.7] {}
at TRANSFORMER/mixinextras.neoforge@0.5.3/com.llamalad7.mixinextras.wrapper.InjectorWrapperImpl.prepare(InjectorWrapperImpl.java:56) ~[mixinextras-neoforge-0.5.3.jar#426!/:?] {re:classloading}
at TRANSFORMER/mixinextras.neoforge@0.5.3/com.llamalad7.mixinextras.sugar.impl.SugarWrapperImpl.prepare(SugarWrapperImpl.java:70) ~[mixinextras-neoforge-0.5.3.jar#426!/:?] {re:classloading}
at TRANSFORMER/mixinextras.neoforge@0.5.3/com.llamalad7.mixinextras.wrapper.WrapperInjectionInfo.prepare(WrapperInjectionInfo.java:64) ~[mixinextras-neoforge-0.5.3.jar#426!/:?] {re:classloading}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1407) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:731) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:315) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:246) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:437) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:418) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/org.spongepowered.mixin/org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[sponge-mixin-0.15.2 mixin.0.8.7.jar:0.15.2 mixin.0.8.7] {}
at MC-BOOTSTRAP/cpw.mods.modlauncher@11.0.5/cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-11.0.5.jar:11.0.5 main.901c6ea8] {}
at MC-BOOTSTRAP/cpw.mods.modlauncher@11.0.5/cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:94) ~[modlauncher-11.0.5.jar:?] {}
at MC-BOOTSTRAP/cpw.mods.modlauncher@11.0.5/cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-11.0.5.jar:?] {}
at MC-BOOTSTRAP/cpw.mods.modlauncher@11.0.5/cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:57) ~[modlauncher-11.0.5.jar:?] {}
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:190) ~[securejarhandler-3.0.8.jar:?] {}
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.lambda$findClass$20(ModuleClassLoader.java:298) ~[securejarhandler-3.0.8.jar:?] {}
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:311) ~[securejarhandler-3.0.8.jar:?] {}
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:298) ~[securejarhandler-3.0.8.jar:?] {}
at cpw.mods.securejarhandler/cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:214) ~[securejarhandler-3.0.8.jar:?] {}
at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?] {}
at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?] {re:mixin}
at java.base/java.lang.Class.privateGetDeclaredMethods(Unknown Source) ~[?:?] {re:mixin}
at java.base/java.lang.Class.getMethodsRecursive(Unknown Source) ~[?:?] {re:mixin}
at java.base/java.lang.Class.getMethodsRecursive(Unknown Source) ~[?:?] {re:mixin}
at java.base/java.lang.Class.getMethod0(Unknown Source) ~[?:?] {re:mixin}
at java.base/java.lang.Class.getMethod(Unknown Source) ~[?:?] {re:mixin}
at TRANSFORMER/neoforge@21.1.227/net.neoforged.neoforge.common.CommonHooks.overridesEqualsAndHashCode(CommonHooks.java:1500) ~[neoforge-21.1.227-universal.jar#245!/:?] {re:classloading}
at TRANSFORMER/neoforge@21.1.227/net.neoforged.neoforge.common.CommonHooks.markComponentClassAsValid(CommonHooks.java:1439) ~[neoforge-21.1.227-universal.jar#245!/:?] {re:classloading}
at TRANSFORMER/neoforge@21.1.227/net.neoforged.neoforge.common.CommonHooks.<clinit>(CommonHooks.java:1448) ~[neoforge-21.1.227-universal.jar#245!/:?] {re:classloading}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.item.Item$Properties.component(Item.java:437) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,re:classloading,pl:mixin:APP:fabric-item-api-v1.mixins.json:ItemSettingsMixin from mod fabric_item_api_v1,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.item.Item$Properties.fireResistant(Item.java:419) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,re:classloading,pl:mixin:APP:fabric-item-api-v1.mixins.json:ItemSettingsMixin from mod fabric_item_api_v1,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.item.Items.<clinit>(Items.java:118) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:classloading}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.LightBlock.getShape(LightBlock.java:64) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:classloading}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.getShape(BlockBehaviour.java:650) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:mixins.iris.json:MixinBlockStateBehavior from mod iris,pl:mixin:APP:moonrise.mixins.json:collisions.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:moonrise.mixins.json:starlight.blockstate.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:copycats-common.mixins.json:foundation.copycat.BlockStateBaseMixin from mod copycats,pl:mixin:APP:moreculling.mixins.json:blockstates.BlockStateBase_moreMixin from mod moreculling,pl:mixin:APP:moreculling.mixins.json:models.cullshape.BlockStateBase_cullShapeMixin from mod moreculling,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateBaseMixin from mod ferritecore,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.getShape(BlockBehaviour.java:646) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:mixins.iris.json:MixinBlockStateBehavior from mod iris,pl:mixin:APP:moonrise.mixins.json:collisions.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:moonrise.mixins.json:starlight.blockstate.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:copycats-common.mixins.json:foundation.copycat.BlockStateBaseMixin from mod copycats,pl:mixin:APP:moreculling.mixins.json:blockstates.BlockStateBase_moreMixin from mod moreculling,pl:mixin:APP:moreculling.mixins.json:models.cullshape.BlockStateBase_cullShapeMixin from mod moreculling,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateBaseMixin from mod ferritecore,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.state.BlockBehaviour.getCollisionShape(BlockBehaviour.java:322) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:computing_frames,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:simulated.mixins.json:accessor.BlockBehaviourAccessor from mod simulated,pl:mixin:APP:fabric-object-builder-v1.mixins.json:AbstractBlockAccessor from mod fabric_object_builder_api_v1,pl:mixin:APP:create.mixins.json:accessor.BlockBehaviourAccessor from mod create,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase$Cache.<init>(BlockBehaviour.java:920) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:copycats-common.mixins.json:foundation.copycat.BlockStateBaseCacheMixin from mod copycats,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateCacheMixin from mod ferritecore,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.initCache(BlockBehaviour.java:488) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:mixins.iris.json:MixinBlockStateBehavior from mod iris,pl:mixin:APP:moonrise.mixins.json:collisions.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:moonrise.mixins.json:starlight.blockstate.BlockStateBaseMixin from mod moonrise,pl:mixin:APP:copycats-common.mixins.json:foundation.copycat.BlockStateBaseMixin from mod copycats,pl:mixin:APP:moreculling.mixins.json:blockstates.BlockStateBase_moreMixin from mod moreculling,pl:mixin:APP:moreculling.mixins.json:models.cullshape.BlockStateBase_cullShapeMixin from mod moreculling,pl:mixin:APP:ferritecore.blockstatecache.mixin.json:BlockStateBaseMixin from mod ferritecore,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.Blocks.<clinit>(Blocks.java:7811) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.world.level.block.FireBlock.bootStrap(FireBlock.java:342) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:fabric-content-registries-v0.mixins.json:FireBlockMixin from mod fabric_content_registries_v0,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.Bootstrap.bootStrap(Bootstrap.java:45) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,re:classloading,pl:mixin:APP:yumi_mc_core.mixins.json:BootstrapMixin from mod yumi_mc_core,pl:mixin:A}
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.main.Main.lambda$main$0(Main.java:114) ~[client-1.21.1-20240808.144430-srg.jar#244!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:veil.debug.mixins.json:client.DebugMainMixin from mod veil,pl:mixin:A,pl:runtimedistcleaner:A}
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?] {}
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?] {}
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:?] {}
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:?] {}
at java.base/java.lang.Thread.run(Unknown Source) [?:?] {re:mixin}
From the crash log, Sable fails to inject because Moonrise has already merged/modified the same target method.
This looks like a direct mixin conflict on explosion/collision logic.
[22Apr2026 21:10:27.514] [main/WARN] [mixin/]: Method overwrite conflict for isUnobstructed in sable.mixins.json:block_placement.EntityGetterMixin from mod sable, previously written by ca.spottedleaf.moonrise.mixin.collisions.EntityGetterMixin. Skipping method.
[22Apr2026 21:10:32.178] [pool-31-thread-1/FATAL] [mixin/]: Mixin apply for mod sable failed sable.mixins.json:explosion.ExplosionMixin from mod sable -> net.minecraft.world.level.Explosion: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("INVOKE") on net/minecraft/world/level/Explosion::sable$redirectBlockExplosionResistance with priority 1000 cannot inject into net/minecraft/world/level/Explosion::explode()V merged by ca.spottedleaf.moonrise.mixin.collisions.ExplosionMixin with priority 1000 [INJECT_PREPARE Applicator Phase -> sable.mixins.json:explosion.ExplosionMixin from mod sable -> Prepare Injections -> handler$dog000$sable$redirectBlockExplosionResistance(Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;Ljava/util/Set;IIIIDDDDFDDDFLnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;Lcom/llamalad7/mixinextras/sugar/ref/LocalFloatRef;Lcom/llamalad7/mixinextras/sugar/ref/LocalRef;)V -> Prepare -> -> { target: explode()V }]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/world/level/Explosion::sable$redirectBlockExplosionResistance with priority 1000 cannot inject into net/minecraft/world/level/Explosion::explode()V merged by ca.spottedleaf.moonrise.mixin.collisions.ExplosionMixin with priority 1000
Moonrise is being used for low-level world/collision/threading optimizations, while Sable is used for physical block/sub-level simulation.
Both mods seem to touch the same explosion/collision code path, and the crash happens during mixin application before the game fully starts.
Minecraft Version
1.21.1
Moonrise Version
0.1.0-beta.15+2eae1b1
Mod Loader
NeoForge
Logs and Crash Reports
Additional Context
Description
There is a startup crash caused by a mod incompatibility between Moonrise and Sable on NeoForge 1.21.1.
The exact incompatibility point appears to be:
net.minecraft.world.level.Explosion::explode()Vsable.mixins.json:explosion.ExplosionMixinca.spottedleaf.moonrise.mixin.collisions.ExplosionMixinFrom the crash log, Sable fails to inject because Moonrise has already merged/modified the same target method.
This looks like a direct mixin conflict on explosion/collision logic.
Versions
1.21.121.1.2270.1.0-beta.15+2eae1b10.1.0-beta.15+2eae1b1.51.1.3Crash log
Notes
Moonrise is being used for low-level world/collision/threading optimizations, while Sable is used for physical block/sub-level simulation.
Both mods seem to touch the same explosion/collision code path, and the crash happens during mixin application before the game fully starts.