12

1201-mods-exsample

A reference guide for high-level architectural patterns in Minecraft 1.20.1 Forge modding.

Install

mkdir -p .claude/skills/1201-mods-exsample && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9841" && unzip -o skill.zip -d .claude/skills/1201-mods-exsample && rm skill.zip

Installs to .claude/skills/1201-mods-exsample

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Minecraft 1.20.1 Forge Moddingにおける実践的な実装パターン集。 エネルギー・GUI・ネットワーク・マルチブロック・レシピ・レンダリング・ スペル/AI/スクリプトなどの設計パターンを、17の主要Modの実装から抽出して解説。 Addon作成に使える部分は各Modトピックとして維持しつつ、Modに依存しない アーキテクチャ知識として整理する。
186 charsno explicit “when” trigger
Advanced

Key capabilities

  • BlockEntity design patterns
  • Energy system architecture
  • GUI and networking synchronization
  • Multi-block structure implementation
  • Data-driven recipe design

How it works

It extracts and documents design patterns from 17 major Minecraft mods to provide architectural guidance for complex mod development.

Inputs & outputs

You give it
Mod design requirements
You get back
Implementation pattern reference

When to use 1201-mods-exsample

  • Designing robust energy systems
  • Implementing custom GUI and networking
  • Optimizing BlockEntity performance

About this skill

概要

このSkillは Minecraft 1.20.1 Forge における設計パターンを、主要Modの実装から抽出したリファレンスです。 チュートリアルに載らない「実際の大規模Modがどう実装しているか」を設計カテゴリ別に整理し、 アーキテクチャ設計・パフォーマンス最適化・API設計・データ駆動設計などの実践的ノウハウを提供します。

✅ やるべきこと — 設計パターン別

BlockEntity設計

  1. BEが必要かどうかを最初に判断する — Botania機能花はBlock.tick() + scheduleTickで動作。BEは持続状態/Tick/ネットワーク参加が必要な場合のみ。
  2. BE登録方式はModの規模に合わせて選ぶ — 小規模: DeferredRegister / 中規模: Registrate / 大規模: 型安全ラッパー(Mek)かMachineBuilder(GT) / マルチローダー: abstract bind(Botania)。
  3. 保存データと同期データは分離して考える — 永続化(saveAdditional/load)・全量同期(getUpdateTag)・差分同期(カスタムパケット/SyncData/@SyncToClient)の3層構造を意識する。
  4. 同期頻度に応じて方式を選ぶ — 低頻度(数秒単位): 全量NBT / 中頻度(毎Tick数回): ContainerData / 高頻度(毎Tick): カスタム差分パケット / 宣言的: @SyncToClient/SyncData。
  5. Capability提供はResolver/Proxy/Holderの3層分離を検討する — Mekanismの設計が参考になる。BlockLookaside(Botania)という選択肢もある。

エネルギーシステム

  1. 独自電力型の定義はGregTech EUを参考にする — 実数型FloatingLong + Capabilityプロバイダ分離。long/doubleでは不足する精密演算への対処。
  2. 魔法エネルギーはBotania Mana / Ars Nouveau Source / Goety Soulを比較検討する — ネットワーク型(Mana) vs ブロック局所型(Source) vs マルチCapability型(Soul)の使い分け。
  3. 複数流体/ガス型はMekanism Chemicalを参考にする — ChemicalType + ChemicalStack + Capabilityの3層設計。IGasHandler / IInfusionHandler / IPigmentHandler の派生体系。
  4. 他Modエネルギーとの互換はMekanism IEnergyCompatを参考にする — FE互換ラッパーと動的変換レート。

GUI/UIフレームワーク

  1. ウィジェットツリーはLDLib ModularUIを参考にする — Widget親子構造 + SyncData自動双方向同期 + レイアウト自動計算。
  2. 高パフォーマンスUIはModernUIのスレッド分離を参考にする — 専用UIスレッド + ハンドラーメッセージパイプ + Granite GPUレンダリング。
  3. Containerのデータ同期はContainerData + カスタムパケットの組み合わせを理解する — 16bit制約とエネルギー量の2スロット分割。

ネットワーク/同期

  1. 大規模ネットワークグラフはAE2 ME Networkを参考にする — GridNode + GridTick のO(ネットワーク数)ティック vs O(ノード数)ティックの設計判断。
  2. 動的ネットワークはMekanism DynamicNetwork (CRTP)を参考にする — TransmitterNetworkRegistry + Network-Level Tickingによるパフォーマンス最適化。
  3. ブロック状態の自動同期はFarmer's DelightのSyncedBlockEntityを参考にする — 自動同期BE + ContainerDataパターン。

マルチブロック

  1. 複雑マルチブロックはGregTech MetaMachine/Patternを参考にする — Trait分離 + BlockPattern 3Dマッチング + ベンチレベルの機械階層。
  2. 簡易マルチブロックはMultiblocked2のJSON定義を参考にする — 宣言的JSON定義 + Traitシステム + 他Mod連携。
  3. 巨大コンテナ構造はMekanismの階層型マルチブロックを参考にする — 4層抽象(MultiblockManager→Data→Cache→FormationProtocol)の設計。

レシピ・データ駆動設計

  1. 大規模レシピインデックスはMekanism逆引きインデックスを参考にする — IngredientType別のO(1)ルックアップ。
  2. プラグインAPIはJEI/Jadeの段階的登録を参考にする — 登録フェーズを分割してロード順序問題を回避。
  3. データ駆動装備/武器はSuperbWarfare GunData JSONを参考にする — JSON定義パラメータ + アタッチメント合成システム。
  4. Codecファースト設計はEMIのComponentChangesパターンを参考にする — CodecがあればJSON⇔Javaの双方向変換が保証される。

レンダリング

  1. インスタンスレンダリングはCreate Flywheelを参考にする — BERフォールバック付きインスタンスレンダリング。
  2. カスタムモデルアニメーションはSuperbWarfare GeoRenderを参考にする — GeckoLibモデル + アニメーション状態マシン。
  3. エフェクトレンダリングはBotaniaの花エフェクトを参考にする — 軽量パーティクル + イベント駆動描画。

スペル/エフェクトシステム

  1. 構築型スペルはArs Nouveau Glyph/Context/Resolverを参考にする — Glyph(部品)→Context(実行環境)→Resolver(効果解決)の3層分離。
  2. イベント駆動ブロックはBotania機能花を参考にする — BlockEntityなしでBlockが機能する設計。ManaPoolやSparkの連携。

AI/エンティティ

  1. 高度エンティティAIはTouhouLittleMaidのBrainベースを参考にする — GoalSelectorよりBrain/Activity/Scheduleの方が拡張性が高い。
  2. 使い魔システムはArs Nouveau Familiar / Goety Summonを参考にする — プレイヤー追従・オーダー発行・スキル実行の一連の流れ。
  3. カスタムモデル/アニメーションはTouhouLittleMaidを参考にする — JSアニメーション定義 + マルチレイヤーモデルローダー。

スクリプト連携

  1. JSエンジン統合はKubeJS/Rhinoを参考にする — イベントブリッジ・型ラッパー・サンドボックスの3層設計。
  2. プラグインスクリプトのサンドボックス分離はKubeJSのセキュリティモデルを参考にする — ClassFilter + カスタムクラスローダー + タイムアウト制御。

パーティクルシステム

  1. カスタムパーティクルのフルライフサイクルを理解する — ParticleType登録→Particleクラス実装→Provider+SpriteSet→テクスチャ/particles.json→スポーン→(任意)ネットワーク同期。Botaniaの軽量設計方針も参考にする。
  2. サーバー発動パーティクルはSimpleChannelで送信する — 常時エフェクトはBlock.animateTick()でクライアントローカルで十分。レシピ完了などサーバー判断が必要な場合のみパケットを使う。
  3. パーティクルパフォーマンスを意識する — 同時表示2000超でFPS低下。addAlwaysVisibleParticleは必要な場面だけ。負荷に応じた動的スポーン制御を検討する。

カスタムシェーダー

  1. カスタムシェーダーはRegisterShadersEventでCoreShaderとして登録する — GLSL(.vsh/.fsh) + RenderType.CompositeRenderType + CompositeState の3点セット。
  2. PostChainポストプロセスはフルスクリーンGLパスのため高コスト — 1pass=1フルスクリーン描画。必要な場面だけ使い、軽量なエフェクトはParticle/シェーダーで済ませる。

ワールドジェン/鉱石生成

  1. ワールドジェンはConfiguredFeature/PlacedFeatureの2段階分離を理解する — Feature(生成ロジック)→ConfiguredFeature(設定)→PlacedFeature(配置)の3層パイプライン。
  2. カスタム鉱脈はFeatureクラス継承 + Partパイプラインで実装する — trunk→branch→leafの複数Part置換。StoneDepth + TagMatch RuleTestの組み合わせで鉱石タイプ別制御。
  3. 鉱石追加はBiome Modification APIで行うBiomeLoadingEvent + BiomeSelectors + FeatureOrder の順序制御。

設定システム

  1. ConfigはForgeConfigSpecで型安全に定義する — SpecPair + CommonConfig/ClientConfig/ServerConfigの3分割。カテゴリpush/popでグループ化。
  2. 動的ConfigやホットリロードはCachedConfig + JSONパターンを検討する — キャッシュ無効化 + ConfigEvent.Reloading購読。CodecベースJSON Configでランタイム変更。
  3. マルチローダー対応はInterfaceベースConfigを検討する — Configインターフェース + Forge/Fabric実装分離。CachedConfigラッパーで遅延読み込み。

Mixin戦略

  1. Mixinは@Mixin + @Inject + @Atの基本3点を押さえる — HEAD/RETURN/INVOKE選択基準。CallbackInfo vs CallbackInfoReturnableの使い分け。@Accessor/@Invokerでprivate公開。
  2. Mixinはdomain別パッケージ + mixin.jsonプラグインで組織化する — IMixinConfigPluginで条件付き適用。shouldApplyMixin()で他Mod競合回避。
  3. Mixin以外の選択肢を常に先に検討する — イベント購読 / Interface Injection / Capability / CoreModの順。

サンドボックス/スクリプトセキュリティ

  1. スクリプトサンドボックスはClassFilter + カスタムClassLoaderの直列で実装する — ホワイトリスト/ブラックリスト2段階フィルター。ASM ClassVisitorでバイトコード検証。
  2. スクリプト実行にはタイムアウト制御 + 例外ハンドリングを必須とする — Watchdogスレッドによる割り込み。InstructionCounterでPrecise制御。

パフォーマンス/キャッシュ

  1. 高頻度ルックアップはLoadingCache + LRU + TTLでキャッシュする — Caffeine/LRU + ヒット率/ミス率のMetrics計測を組み込む。
  2. BlockEntityキャッシュはチャンク単位の無効化 + ワールドアンロードリスナーで設計する — ChunkedBECache + WorldEvent.Unload購読。スナップショット反復でCME回避。

Mod統合/互換

  1. 他Mod統合はServiceLoaderベースのSPIで設計する — IModIntegration + ModIntegrationManagerで一括管理。ModList.get().isLoaded()でOptional分岐。
  2. JEI/Jade/Curios統合は専用Pluginクラスで疎結合に保つ — IXeiPlugin / ITooltipProvider / ICuriosSlot実装。Data Componentで共通データ共有。

レジストリ管理

  1. 登録はDeferredRegister + 型安全ラッパーで統一する — 16種のバニラレジストリ対応。RegisterEventでの動的追加も理解。
  2. カスタムレジストリはRegistryBuilder + NewRegistryEventで作成する — Codec + StreamCodec実装必須。フリーズ前にDatagen。
  3. DataFixerUpperでレジストリ名変更に備える — RenameDataFix / BlockStateRenameFixで破壊的変更回避。MissingMappingsEventで未登録エントリのリマップ。

❌ やってはいけないこと

  1. チュートリアルレベルの質問にこのSkillを使わない — 基礎は1201-forge-moddingスキルを参照。
  2. 外部Modの実装をそのままコピペしない — ライセンス違反になる。設計思想のみ参考にする。
  3. 独自電力型をいきなり作らない — FE(Forge Energy)で十分なケースが大半。どうしても必要な場合のみGregTech EUやBotania Manaを参考にする。
  4. マルチブロックをスクラッチで実装しない — Multiblocked2などのフレームワーク利用を先に検討する。
  5. 大規模ネットワークを単純なループで実装しない — AE2/MekanismのNetwork-Level Tickingパターンを理解してから設計する。
  6. GUI描画でバニラ範囲を超える場合に直接GLステートを操作しない — ModernUIの抽象化またはLDLibのWidgetを活用する。
  7. GUIスレッドでワールド操作をしない — ModernUIのメッセージパイプかSimpleChannelを使う。
  8. パーティクルシステムをスクラッチで書かないParticle / TextureSheetParticle の継承と ParticleProvider のファクトリパターンを理解してから実装する。
  9. MCのレンダリングパイプラインを無視してGL呼び出しを直接書かない — カスタムシェーダーは RegisterShadersEvent + RenderType の枠組みに従う。
  10. 独自Featureをスクラッチで書かない — 標準OreFeatureで十分なケースが大半。Trident/Partパイプラインが必要かどうかを先に判断する。
  11. Mixinの@Overwriteを避ける — compat問題の原因。@Inject / @Redirect / Interface Injectionで代替できないか必ず検討する。
  12. サンドボックスなしで外部スクリプトを実行しない — ClassFilter + カスタムClassLoader + タイムアウト制御の3点セットが必須。
  13. 大規模Modで全設定を1ファイルに詰め込まない — CommonConfig/ClientConfig/ServerConfigに分割する。

設計パターンリファレンス

| 設計カテゴリ | 内容 | ファイル | 読むタイミング | |---|---|---|---|---| | BlockEntity実装 | BE登録4方式、BEライフサイクル、ティック戦略、データ保存/読込、ネットワーク同期5方式、Capability提供、GUI連携、設計判断フローチャート | references/patterns/BE_IMPLEMENTATION.md | BEを新規実装・設計する際の最初に読むべき参照 | | エネルギーシステム | GregTech EU, Botania Mana, Ars Source, Goety Soul, Mekanism Chemical, FE互換 | references/patterns/POWER_SYSTEMS.md | 独自電力/エネルギー型を実装する際 | | GUI/UIフレームワーク | LDLib ModularUI Widgetツリー, ModernUIスレッド分離, ContainerData | references/patterns/GUI_FRAMEWORKS.md | カスタムGUIや高度なUIを実装する際 | | ネットワーク/同期 | AE2 GridNodeティック, Mekanism DynamicNetwork, Create Catnip, SyncedBlockEntity | references/patterns/NETWORK_SYNC.md | ブロック間ネットワーク・同期システムを実装する際 | | マルチブロック | GregTech MetaMachine+Pattern, Multiblocked2 JSON定義, Mekanism 4層抽象 | references/patterns/MULTIBLOCK.md | マルチブロック構造を実装する際 | | レシピ・データ駆動 | Mekanism逆引きインデックス, JEI/EMI Plugin, SuperbWarfare JSON駆動, KubeJSデータ | references/patterns/RECIPE_DATA.md | レシピシステム・データ駆動設計を実装する際 | | レンダリング | Create Flywheel, SuperbWarfare GeoRender, Botaniaエフェクト, BER, VertexConsumer実践, Flywheel Instance, GeckoLib実装手順, EntityRenderer | references/patterns/RENDERING.md | インスタンスレンダリングやカスタムモデルを実装する際 | | パーティクルシステム | ParticleType登録, Particleクラス実装, Provider/SpriteSet, テクスチャ設定, スポーン方法, Network同期, 応用パターン(軌跡/ビーム/バースト), 完全E2E例 | references/patterns/PARTICLE_SYSTEM.md | カスタムパーティクルエフェクトを実装する際 | | カスタムシェーダー | CoreShader登録, GLSLソース, RenderType+CompositeState, BER+シェーダー連携, PostChainポストプロセス | references/patterns/SHADER_SYSTEM.md | 発光/カスタム描画効果にシェーダーを使いたい際 | | スペル/エフェクト | Ars Nouveau Glyph 3層分離, Botania機能花 イベント駆動 | references/patterns/SPELL_EFFECT.md | 構築型スペルやエフェクトブロックを実装する際 | | AI/エンティティ | TouhouLittleMaid Brain, Ars Familiar, Goety Summon, Botania Spark | references/patterns/AI_ENTITY.md | 高度なエンティティAIや使い魔を実装する際 | | スクリプト連携 | KubeJS/Rhino イベントブリッジ・サンドボックス・CodecTypeWrapper | references/patterns/SCRIPTING.md | JSスクリプト連携やプラグインシステムを実装する際 | | ビルドアーキテクチャ | マルチモジュールBuild, Xplat/Forge/Fabric分離, ServiceLoader抽象, アノテーションプロセッサ | references/patterns/BUILD_ARCHITECTURE.md | 大規模Modのビルド構成・マルチローダー対応を設計する際 | | レジストリ管理 | カスタムレジストリ+フリーズ, 型安全RegistryObject, DoubleDeferredRegister, Addonアノテーション発見 | references/patterns/REGISTRY_MANAGEMENT.md | 多数のオブジェクトを体系的に登録するレジストリ設計を行う際


Content truncated.

When not to use it

  • Non-Forge Minecraft environments
  • Projects not targeting Minecraft 1.20.1

Prerequisites

JDK 17+Minecraft 1.20.1 Forge

Limitations

  • Strictly limited to Minecraft 1.20.1 Forge
  • Requires understanding of Java and Forge API

How it compares

It focuses on real-world large-scale mod implementations rather than generic tutorial-based approaches.

Compared to similar skills

1201-mods-exsample side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
1201-mods-exsample (this skill)02moNo flagsAdvanced
workflow-orchestration-patterns102moNo flagsAdvanced
ignite-cluster-setup17moReviewIntermediate
alm-processing15moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry