mixin-guide
Guide for configuring Mixins in Architectury multi-loader projects
When & Why to Use This Skill
This Claude skill provides a specialized technical guide for configuring Mixins within Architectury multi-loader Minecraft modding projects. It streamlines the development workflow by detailing the structural differences required for Fabric and NeoForge loaders, specifically focusing on mapping conversions, refMap management, and build script optimization to ensure cross-platform compatibility.
Use Cases
- Setting up loader-specific Mixin configurations to handle the distinct mapping requirements of Fabric (Intermediary) and NeoForge (Mojang).
- Troubleshooting 'InvalidInjectionException' and refMap-related crashes in NeoForge development environments.
- Configuring Gradle build scripts to correctly include or exclude Mixin resources for production-ready JAR files.
- Implementing new Mixin classes across common and loader-specific modules while maintaining a clean project architecture.
| name | mixin-guide |
|---|---|
| description | Guide for configuring Mixins in Architectury multi-loader projects |
Mixin Configuration Guide
Purpose: Guide for configuring Mixins in Architectury multi-loader projects.
How it works: This skill is automatically activated when you mention tasks related to:
- Adding new Mixin classes
- Configuring Mixin files for Fabric or NeoForge
- Debugging Mixin-related errors (InvalidInjectionException, refMap issues)
- Setting up build configuration for Mixins
Simply describe what you want to do, and Claude will reference the appropriate guidance from this skill.
Critical: Loader-Specific Mixin Configurations (2025-12-02)
Problem: Fabric and NeoForge require different Mixin configurations due to mapping differences.
Loader-Specific Mixin Files
Fabric:
fabric/src/main/resources/chronodawn-fabric.mixins.json- Must include
"refmap": "common-common-refmap.json" - Required for Mojang → Intermediary mapping conversion in production
- Referenced in
fabric.mod.json
- Must include
NeoForge:
neoforge/src/main/resources/chronodawn-neoforge.mixins.json- Must NOT include refMap property
- Uses Mojang mappings directly in development environment
- Referenced in
META-INF/neoforge.mods.toml
Common:
common/src/main/resources/chronodawn.mixins.json- No refMap property
- Excluded from both JARs via build.gradle exclude rules
- Kept for reference only
Adding New Mixins
When adding new Mixin classes:
- Create Mixin class in
common/src/main/java/com/chronodawn/mixin/ - Update both loader-specific configs:
- Add to
chronodawn-fabric.mixins.json(with refMap) - Add to
chronodawn-neoforge.mixins.json(without refMap)
- Add to
- Do NOT modify
chronodawn.mixins.json(excluded from builds)
Build Configuration
Fabric (fabric/build.gradle):
processResources {
from(project(':common').sourceSets.main.resources) {
exclude 'chronodawn.mixins.json' // Exclude common config
}
}
shadowJar {
exclude 'chronodawn.mixins.json' // Also exclude from shadow JAR
}
NeoForge (neoforge/build.gradle):
from(project(":common").sourceSets.main.resources) {
exclude "chronodawn.mixins.json" // Already configured
}
Why This Separation is Necessary
- Fabric (Production): Runs with Intermediary mappings → needs refMap to translate method names
- NeoForge (Development): Runs with Mojang mappings → refMap causes InvalidInjectionException
- Root Cause: Architectury Loom generates refMap using Intermediary mappings, incompatible with NeoForge's Mojang mappings
Reference: Commit 77958c0 (fix: separate loader-specific Mixin configs)
Troubleshooting
InvalidInjectionException in NeoForge
Symptom: Mixin injection fails in NeoForge but works in Fabric.
Cause: NeoForge Mixin config includes refMap property.
Solution: Remove "refmap" from chronodawn-neoforge.mixins.json.
Mixin Not Applied
Symptom: Mixin class exists but doesn't apply at runtime.
Checklist:
- Verify Mixin class is in
chronodawn-fabric.mixins.json(for Fabric) - Verify Mixin class is in
chronodawn-neoforge.mixins.json(for NeoForge) - Check Mixin config is referenced in
fabric.mod.json/neoforge.mods.toml - Verify build excludes
chronodawn.mixins.jsonfrom JARs
RefMap Missing in Production
Symptom: Fabric mod works in dev but crashes in production with refMap errors.
Cause: Missing "refmap": "common-common-refmap.json" in chronodawn-fabric.mixins.json.
Solution: Add refMap property to Fabric Mixin config.
Last Updated: 2025-12-08 Maintained by: Chrono Dawn Development Team