プラットフォーム
Forge MOD
Codexeで作るForge(とNeoForge)のMOD。バージョン、リクエストに書くこと、ForgeGradleのビルド、mods.toml、よくある問題。
更新日
Forgeは、大規模なイベントバスとレジストリの仕組みを持つ、長い歴史のあるMODローダーです。Codexeは、ForgeGradleを使った完全なGradleプロジェクトを生成します。
#リクエストに書くこと
- MinecraftとForgeのバージョン: 「Forge 1.20.1」など。書かなかった場合は、Minecraft 1.20.1とForge 47が使われます。
- NeoForge: NeoForge(1.20.2以降)を使いたい場合は、はっきりそう書いてください。CodexeはNeoForgeのプロジェクトを認識し、それに合ったGradleの構成でビルドします。
- 内容: アイテム、ブロック、エンティティ、クリエイティブタブ、レシピ、設定、そしてクライアント側の要素があるかどうか。
A Forge 1.20.1 mod: adds a "Copper Hammer" tool (durability 250) that mines a 3x3 area of stone-type blocks. Crafted from copper ingots and sticks. Registered with DeferredRegister, added to the Tools creative tab, English lang file.#Codexeが生成するもの
- 正しいForgeGradleとGradleのバージョンを指定した
build.gradle、gradle.properties、settings.gradle。 - MOD ID、ローダーの範囲、依存関係を宣言する
META-INF/mods.toml(またはneoforge.mods.toml)。 @Modのエントリークラス、DeferredRegisterのレジストリ、イベントのサブスクライバー。- アセット: 言語ファイル、モデル、仮のテクスチャ。
#ビルドと検証
MODは準備完了になる前にコンパイルされ、JARにはmods.toml、neoforge.mods.toml、mcmod.infoのいずれかが含まれていなければなりません。JavaはMinecraftのバージョンから選ばれます(1.20.5より前は17、1.20.5からは21)。最初のビルドではForgeのツールチェーンをダウンロードするため、数分かかることがあります。MODのビルドは10分で停止します。
#よくある問題
| 症状 | 考えられる原因 |
|---|---|
| 「Mod file … needs language provider javafml」 | mods.tomlのローダーのバージョン範囲がForgeのバージョンと合っていません。正確なForgeのバージョンを書いてください。 |
| 起動時のレジストリエラー | DeferredRegisterの外でオブジェクトが登録されています。移すようチャットで頼んでください。 |
| シングルプレイでは動くが、サーバーでクラッシュする | 共通コードからクライアント専用のクラスを参照しています。 |