- 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
75 lines
3.4 KiB
Markdown
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** 💙🔥❄️
|