
mixin-guide
by ksoichiro
A dimension mod for Minecraft that adds Chrono Dawn, a time-themed world with custom portals, boss battles, and time-manipulating artifacts. Supports Fabric & NeoForge.
SKILL.md
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
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon
