← マイクラMODメモ トップ

マイクラのMOD作成方法

最終更新: 2026-09-26 / 対象: Java版(NeoForge / Fabric)

MODを「入れる」側から「作る」側に進むための入門です。 いきなり大きなMODを作るのではなく、アイテムを1つ追加して、jarファイルにして、ゲームで動かすところまでを目標にします。 Java の文法を少し知っていると進めやすいですが、テンプレートを使えば最初の一歩はそれほど難しくありません。

1. 作る前に決めること

「MODでしかできないこと」の目安は、新しい仕組みを持つブロック・エンティティ・画面(GUI)・描画などです。 アイテムの追加やレシピ変更だけなら、KubeJS のほうが圧倒的に早く作れます。

2. NeoForge と Fabric の選び方

NeoForgeFabric
特徴機能が多く、大型MOD・技術系MODが多い軽量で、新バージョンへの対応が早い
向いているもの既存の大型MOD(Create など)と連携するMOD小さな便利MOD、最新バージョン向け
設定ファイルMETA-INF/neoforge.mods.tomlfabric.mod.json
公式のテンプレートNeoForged の MDKFabric のテンプレート生成ページ

迷ったら、自分がよく遊んでいるMODパックと同じローダーを選ぶのがおすすめです。 作ったMODをすぐ普段の環境で試せて、困ったときに参考になるMODのソースも見つけやすくなります。

3. 開発環境の準備

  1. JDK(Java 開発キット)をインストールする
    必要な Java のバージョンは、Minecraft のバージョンで決まります(新しい Minecraft ほど新しい Java が必要)。 テンプレートの説明に書かれているバージョンに合わせてください。Eclipse Temurin などの無料の JDK で大丈夫です。
  2. IntelliJ IDEA(無料の Community 版で OK)をインストールする
    プラグインの「Minecraft Development」を入れると、テンプレート作成や補完が楽になります。
  3. Git(任意)… 変更の記録を残せるので、壊したときに戻せます。慣れてきたら入れるのがおすすめです。
複数の JDK が入っていると、違うバージョンの Java でビルドされて失敗することがよくあります。 IntelliJ の「Project Structure」と「Gradle の JVM」の両方で、使う JDK を確認してください。

4. テンプレートから始める

  1. NeoForge なら MDK、Fabric ならテンプレート生成ページから、対象バージョンのテンプレートを入手する
  2. MOD の ID(英小文字。例: my_first_mod)とパッケージ名(例: com.example.myfirstmod)を決めて設定する
  3. IntelliJ でフォルダを開き、Gradle の読み込みが終わるまで待つ(初回は数分〜十数分かかります)
  4. 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(...) を使って同じことをします。

② 見た目と名前を用意する

runClient で起動し、/give @s my_first_mod:ruby で手に入れば成功です。 紫と黒のチェック柄になる場合は、テクスチャかモデルのパスが間違っています。

6. jar にして配る

  1. Gradle の build タスクを実行する
  2. build/libs/ に jar ファイルができる(-sources が付いていないほうを使う)
  3. 普段のインスタンスの mods/ に入れて、動くか確認する

配布するなら CurseForge や Modrinth に登録するのが一般的です。 その際は、ライセンス(改変・再配布をどこまで認めるか)を決めて、説明ページにも書いておきましょう。

他人のMODのコードやテクスチャを、許可なく自分のMODに入れて配布するのはやめましょう。 参考にするのは問題ありませんが、コピーする場合はそのMODのライセンスを必ず確認してください。

7. プラグイン・データパックとの違い

MODプラグイン(Paper)データパック
入れる場所遊ぶ人全員のPC(とサーバー)サーバーだけワールド
新しいブロック・アイテム作れる基本は作れない(既存アイテムの見た目変更で工夫)既存アイテムの改造が中心
言語JavaJavaコマンド+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 のバージョンも一緒に入れると、同じ症状の報告が見つかりやすくなります。

関連ページ

トップ · 自作データ置き場 · 更新履歴 · お問い合わせ