マイクラのMOD作成方法
MODを「入れる」側から「作る」側に進むための入門です。 いきなり大きなMODを作るのではなく、アイテムを1つ追加して、jarファイルにして、ゲームで動かすところまでを目標にします。 Java の文法を少し知っていると進めやすいですが、テンプレートを使えば最初の一歩はそれほど難しくありません。
1. 作る前に決めること
- 対象の Minecraft バージョン … MODはバージョンが1つ違うだけで動かないことが多いです。遊んでいるMODパックに合わせるのが基本
- MODローダー … NeoForge か Fabric か(次の章)
- 本当にMODが必要か … レシピ変更や簡単な仕組みなら、MODを作らなくても データパックや KubeJS で足りることがあります
2. NeoForge と Fabric の選び方
| NeoForge | Fabric | |
|---|---|---|
| 特徴 | 機能が多く、大型MOD・技術系MODが多い | 軽量で、新バージョンへの対応が早い |
| 向いているもの | 既存の大型MOD(Create など)と連携するMOD | 小さな便利MOD、最新バージョン向け |
| 設定ファイル | META-INF/neoforge.mods.toml | fabric.mod.json |
| 公式のテンプレート | NeoForged の MDK | Fabric のテンプレート生成ページ |
迷ったら、自分がよく遊んでいるMODパックと同じローダーを選ぶのがおすすめです。 作ったMODをすぐ普段の環境で試せて、困ったときに参考になるMODのソースも見つけやすくなります。
3. 開発環境の準備
-
JDK(Java 開発キット)をインストールする
必要な Java のバージョンは、Minecraft のバージョンで決まります(新しい Minecraft ほど新しい Java が必要)。 テンプレートの説明に書かれているバージョンに合わせてください。Eclipse Temurin などの無料の JDK で大丈夫です。 -
IntelliJ IDEA(無料の Community 版で OK)をインストールする
プラグインの「Minecraft Development」を入れると、テンプレート作成や補完が楽になります。 - Git(任意)… 変更の記録を残せるので、壊したときに戻せます。慣れてきたら入れるのがおすすめです。
4. テンプレートから始める
- NeoForge なら MDK、Fabric ならテンプレート生成ページから、対象バージョンのテンプレートを入手する
- MOD の ID(英小文字。例:
my_first_mod)とパッケージ名(例:com.example.myfirstmod)を決めて設定する - IntelliJ でフォルダを開き、Gradle の読み込みが終わるまで待つ(初回は数分〜十数分かかります)
- Gradle の
runClientタスクを実行すると、開発用の Minecraft が起動します
テンプレートの中身は、だいたい次のような構成です。
my_first_mod/
├─ build.gradle … ビルドの設定
├─ gradle.properties … MOD ID・バージョンなど
└─ src/main/
├─ java/…/MyFirstMod.java … MODの入口(最初に呼ばれるクラス)
└─ resources/
├─ (mods.toml または fabric.mod.json)
└─ assets/my_first_mod/
├─ lang/ja_jp.json
├─ models/item/
└─ textures/item/
runClient で起動できるかだけを確認してください。
ここで起動できない場合は、コードではなく環境(JDK・Gradle)の問題です。
5. アイテムを1つ追加する
アイテムの追加は、どのローダーでも「登録」「モデル」「テクスチャ」「名前」の4つがセットです。 コードの書き方はローダーとバージョンで変わるので、ここでは流れと、NeoForge での例を示します。
① 登録する(NeoForge の例)
public class ModItems {
public static final DeferredRegister.Items ITEMS =
DeferredRegister.createItems(MyFirstMod.MOD_ID);
public static final DeferredItem<Item> RUBY =
ITEMS.registerSimpleItem("ruby");
}
MODの入口クラスのコンストラクタで ModItems.ITEMS.register(modEventBus); を呼ぶと、ゲームに登録されます。
Fabric では Registry.register(...) を使って同じことをします。
② 見た目と名前を用意する
- テクスチャ …
assets/my_first_mod/textures/item/ruby.png(16×16 の PNG) - モデル …
models/item/ruby.jsonなどの JSON(バージョンによって、アイテムモデルの定義ファイルの場所が追加で必要なことがあります。テンプレートや公式ドキュメントの例に合わせてください) - 名前 …
lang/ja_jp.jsonに{"item.my_first_mod.ruby": "ルビー"}、英語用にen_us.jsonも用意
runClient で起動し、/give @s my_first_mod:ruby で手に入れば成功です。
紫と黒のチェック柄になる場合は、テクスチャかモデルのパスが間違っています。
6. jar にして配る
- Gradle の
buildタスクを実行する build/libs/に jar ファイルができる(-sourcesが付いていないほうを使う)- 普段のインスタンスの
mods/に入れて、動くか確認する
配布するなら CurseForge や Modrinth に登録するのが一般的です。 その際は、ライセンス(改変・再配布をどこまで認めるか)を決めて、説明ページにも書いておきましょう。
7. プラグイン・データパックとの違い
| MOD | プラグイン(Paper) | データパック | |
|---|---|---|---|
| 入れる場所 | 遊ぶ人全員のPC(とサーバー) | サーバーだけ | ワールド |
| 新しいブロック・アイテム | 作れる | 基本は作れない(既存アイテムの見た目変更で工夫) | 既存アイテムの改造が中心 |
| 言語 | Java | Java | コマンド+JSON |
| 向いている用途 | 新要素の追加 | サーバーのルール・ミニゲーム・管理 | 配布ワールドの仕組み |
「参加者にMODを入れてもらわずに遊べるサーバーを作りたい」なら、MODではなくプラグインのほうが向いています。 プラグインも Java で書き、Gradle でビルドする流れはMODとほぼ同じです。
8. つまずきやすい点
| 症状 | よくある原因 |
|---|---|
| Gradle の読み込みで失敗する | JDK のバージョン違い。プロジェクトと Gradle の両方の設定を確認 |
| ゲームは起動するがMODが無い | MOD ID の不一致(設定ファイルとコードで違う) |
| アイテムが紫と黒のチェック柄 | テクスチャ・モデルのパス間違い、ファイル名の大文字 |
名前が item.my_first_mod.ruby のまま | lang ファイルのキーの書き間違い、JSON の書式エラー |
| 普段の環境でだけクラッシュする | ほかのMODとの相性、または対象バージョン・ローダーの違い |
logs/latest.log や crash-reports/ の中身を上から読むと、
「どのMODの、どのファイルで」問題が起きたかが書かれていることが多いです。
エラー文で検索するときは、MOD名と Minecraft のバージョンも一緒に入れると、同じ症状の報告が見つかりやすくなります。
関連ページ
- スクリプト作成方法(MODを作らずにカスタマイズする方法)
- コマンド作成方法
- 気になったMOD(紹介)(作りたいMODの参考に)