Files
firefrost-operations-manual/docs/skills/minecraft-mod-dev/SKILL.md
Claude b133c44920 feat(skills): Add minecraft-mod-dev skill from skill.fish
- Source: chouzz
- Covers NeoForge and Fabric mod development
- Inter-mod integration (JEI, AE2, Create)
- Migration protocol for upgrading legacy mods
- Added Firefrost context
- Updated SKILLS-INDEX.md

Chronicler #73
2026-04-09 12:53:09 +00:00

75 lines
3.4 KiB
Markdown

---
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** 💙🔥❄️