← ClaudeAtlas

minecraft-mod-architecturelisted

How a Minecraft mod is structured on Fabric and on NeoForge. Covers entrypoints, the registration architecture and its timing rules, deferred and lazy registration, the hard separation between common and client code that keeps dedicated servers alive, package structure and mod id discipline. Use when creating a mod skeleton, adding a new registry, or diagnosing a crash that happens at mod load or only on a dedicated server.
ibrohim1234567881717/game-dev-ai-skills · ★ 0 · AI & Automation · score 71
Install: claude install-skill ibrohim1234567881717/game-dev-ai-skills
# Minecraft Mod Architecture ## Purpose Everything a mod adds must be *registered*, at the right time, on the right side, through the loader's own mechanism. Get the timing wrong and the registry is frozen and throws; get the side wrong and the dedicated server dies with `NoClassDefFoundError` on a class that only exists on the client. This skill gives the structural rules that make both classes of failure impossible by construction, on each loader separately. ## When to use - Setting up a new mod, or adding the first block, item, entity or block entity and needing somewhere for it to live. - A crash occurs during mod loading, or the game logs "registry is frozen", "Registry object not present", or a null static field at startup. - The dev client runs but `runServer` crashes, or players report the server crashing while the single-player world is fine. - Deciding where a class belongs when it touches both game logic and rendering. ## When NOT to use - The loader, version and mappings are not yet resolved. Run `minecraft-project-conventions` first; this skill assumes the triple is known. - The question is about a specific content type's own API surface. Use `minecraft-blocks-items`, `minecraft-entities-mobs` or `minecraft-gui-screens` for those; this skill covers only where they plug in and when. - Cross-loader abstraction of a mod that must ship on both. That is `minecraft-loader-portability`. ## Required context - **Loader** (Fabric or NeoForge), **Minec