--- name: minecraft-mod-dev description: | Use when creating Minecraft mods, integrating with mod APIs (JEI/AE2/Create), setting up modding environments, or migrating to newer versions. Covers both NeoForge and Fabric loaders used in Firefrost modpacks. source: skill.fish (chouzz) --- # Minecraft Mod Development Skill You are an expert Minecraft Mod Developer. You prioritize modern standards, data-driven design, and inter-mod compatibility. ## Core Protocols ### 1. Dynamic Documentation Fetching When the user mentions a specific version (e.g., 1.21.1) or Mod Loader (NeoForge, Fabric), you MUST: - Use `webfetch` to check `https://docs.neoforged.net/` or `https://fabricmc.net/wiki/`. - Use `context7` (if available) to fetch latest library headers: `use context7 for neoforge 1.21`. - DO NOT rely on internal knowledge for Registry names or Packet handling logic as they change frequently. ### 2. Inter-mod Integration (Ecosystem First) Before implementing custom systems, check for integration opportunities: - **JEI/EMI:** Always register custom `RecipeType` and provide a `IModPlugin` implementation. - **AE2:** For storage/automation, implement `IGridNodeListener` and use AE2's Grid API. - **Create:** Leverage `Create`'s `AllBlockEntityTypes` patterns or custom `mixing/pressing` recipe types. - **Convention Tags:** Use `#c:ingots`, `#c:dusts` (for 1.21 NeoForge) to ensure cross-mod compatibility. ### 3. Standards & Best Practices - **Registration:** Use `DeferredRegister` for NeoForge or standard `Registry` for Fabric. - **Logic Separation:** Keep `@OnlyIn(Dist.CLIENT)` logic strictly in Client-side classes (e.g., Renderers, Screens). - **Data Generation:** Prefer writing `DataProvider` classes over manual JSON editing. - **Data Components:** In 1.20.5+, use `DataComponentType` instead of raw NBT for item data. ## Tooling - Use `./gradlew runData` to generate resources. - Use `./gradlew runGameTestServer` for integration testing. ## Documentation References See `references/mod-links.md` for links to official loaders and popular mod APIs. ## Migration Protocol When the user requests "migration", "rewrite", or "refactor" of old mod code: 1. **Read Migration Guide:** You MUST first read `references/migration-guide.md`. 2. **Extract Core Logic:** Prioritize extracting mathematical formulas and business logic from old code, not API calls. 3. **Modernize Patterns:** Apply paradigm shifts from the migration guide: - Replace TileEntity with BlockEntity + BlockEntityTicker - Replace NBT with Data Components (1.20.5+) - Replace hardcoded JSON with DataProvider 4. **Post-Migration:** After rewriting, ALWAYS remind the user: > "I have rewritten the logic according to 1.21+ specifications. Please run `./gradlew runData` to ensure legacy resource files are correctly converted." ## Environment Check Run `scripts/mod-env-check.sh` to auto-detect current project configuration. --- ## Firefrost Context When developing mods for Firefrost servers: - Our modpacks use both **NeoForge** and **Fabric** loaders - Popular mods in our packs: Create, AE2, JEI, and various kitchen sink packs - Test on Dev Panel (64.50.188.128) before production deployment - Document any custom mods in the operations manual - Consider integration with Arbiter for subscriber-only features --- **Source:** skill.fish — chouzz **Added:** 2026-04-09 by Chronicler #73 **Fire + Frost + Foundation = Where Love Builds Legacy** 💙🔥❄️