メインコンテンツへスキップ
50% off 全プラン対象、期間限定。月額 $2.48/mo
14 min left
ゲームとメディア

Minecraft モッドパック開発で ChatGPT を活用する 5 つの実践的な方法

B 著者 Bill 14 分で読めます
AI chat window returning a diagnosis next to a Minecraft crash log and KubeJS recipe script

クラッシュレポートを ChatGPT に貼り付けると、パックに入ってもいないモッドを自信満々に名指しします。KubeJS のレシピを頼めば返ってくるのは event.recipes.minecraft.shaped(...)。これは現行の KubeJS レシピ例と一致しない旧来の構文です。FTB Quests のブロックを頼めば JSON 風のカンマが返ってきて、1.21.1 世代のクエストファイルが使う複数行 FTB SNBT 形式を壊しかねません。

壊れているのはツールではなく、プロンプトです。AI モデルは古い Minecraft モッド開発の例に逆戻りしがちで、これは現行の KubeJS や FTB Quests のファイルには危険です。正確なゲームバージョン、ローダーのビルド、対象ファイル形式、そして自分のコードから取った動作する例をモデルに渡せば、出力は「自信満々に間違っている」から「おおむね正しい、残りは検証せよ」へ変わります。

肝心なのはここです。これらのプロンプトは、すでに課金しているアシスタント(ChatGPT、Claude、Copilot)でそのまま使え、クラッシュ解析ツールの登録も追加サブスクリプションも要りません。そして出力を読めることが前提です。AI が生成した KubeJS は KubeJS を知っている人にとっての下書きの近道であり、幻覚のアイテム ID を見抜けないなら痛い目を見ます。以下は、タスク別かつバージョンを明示した 5 つのプロンプトで、それぞれ実際に返ってくる例と、どこで間違うかの注記を添えています。

要約

Minecraft モッドパック開発に最適な ChatGPT プロンプトは、毎回三つの情報を与えます。正確な Minecraft のバージョン、正確なモッドローダーとそのバージョン、そして自分のコードベースから取った動作する例です。この文脈があれば、AI はクラッシュの切り分け、KubeJS レシピ、FTB Quests の SNBT、モッド候補リスト、コミットメッセージについて、より使える初稿を出せます。ただしアイテム ID、API 呼び出し、16 進のクエスト ID はすべて自分で検証します。AI は有能なモッド作者を速くするだけで、パックを書き上げてはくれません。

これらのプロンプトにできないこと

何かをコピーする前に、期待値を整えておきましょう。

  • モッドパックを代わりに作ってはくれません。 各プロンプトが下書きするのは成果物ひとつ(レシピ、クエストブロック、診断)だけで、それをすでに設計中のパックに組み込むのはあなたです。
  • KubeJS や SNBT を教えてはくれません。 下の構文に見覚えがないなら、失敗パターンは素通りしてしまいます。まず形式を覚え、それから AI で速度を上げましょう。
  • 実際のテストサーバーの代わりにはなりません。 AI はスタックトレースについて推論しますが、150 個のモッドを読み込んだ状態でパックが実際に起動するかは教えてくれません。
  • 正しい出力を保証しません。 AI が返すものはすべて、確認すべき初稿として扱い、完成した答えとは考えないでください。

AI が何かを書く前に正しい文脈を必要とする理由

Minecraft version, loader build, and known-good code example supplying context to an AI prompt

うまくいくプロンプトと「Minecraft のレシピを作って」といった漠然としたプロンプトの違いは、文脈です。バージョンとローダーを省けば、モデルは 1.21.1 の NeoForge パックに古い KubeJS 構文を生成したり、存在しないアイテム ID をでっち上げたり、FTB SNBT を普通の JSON のように整形したりしかねません。スクリプトは何もしないか、結局は自分で読むことになるログの奥に埋もれたエラーで失敗します。

そのため本記事のすべてのプロンプトは同じ 3 部構成の文脈を持ち、その中身は自分のパックから埋めます。

  1. 正確な Minecraft のバージョン: 1.20.1、1.21.1 など、実際に使っているバージョン。
  2. 正確なモッドローダーとバージョン: Forge、NeoForge、Fabric、Quilt のいずれかと、ビルド番号。
  3. 自分のコードベースから取った動作する例を、可能な限り添えてください。自分の server_scripts/にある本物のレシピをひとつ、有効なクエストブロックをひとつ、過去のコミットメッセージをひとつ。これが品質を左右する最大のてこです。モデルは、自分で推測した API より、目の前に渡された具体例のほうをはるかに忠実に真似ます。

プロのヒント: バージョン行は省いてよい飾りではありません。Minecraft 1.20.1 向けの KubeJS 6.x と Minecraft 1.21.1 向けの KubeJS 7.2.x は別物であり、実際にインストールされているビルドも依然として重要です。ゲーム、ローダー、KubeJS の正確なバージョンを省いたプロンプトは、モデルに推測を求めているのと同じです。

プロンプト:クラッシュログの切り分け

Minecraft crash log moving through suspect ranking and controlled mod testing

このプロンプトは、スタックトレースの壁を、疑わしいモッドの順位付きリストと次の一手に変えます。手当たり次第の二分探索を省く最短ルートです。

You are helping me diagnose a Minecraft crash. Here is the context:
- Minecraft version: 1.21.1
- Mod loader + version: NeoForge [paste your exact build]
- What triggered it: crash on world load, ~150 mods
- (If it looks like a missing-dependency error, I'll paste the mod list too)

Here is the full crash report (or the first 100 lines plus every Caused by: block):
[paste the crash-report text or the top of latest.log]

Tell me:
1. The most likely cause, in one sentence.
2. A ranked list of the 2-3 mods most likely involved and why.
3. The single next step you'd take to confirm which one it is.
Keep it short. Don't guess at mods that aren't in the trace.

実際に返ってくる答えはこんな具合です。

考えられる原因:ワールド読み込み中の mixin 競合。2 つのモッドが同じクラスに注入している可能性があります。容疑者:(1) フレーム org.spongepowered.asm.mixin.transformer は適用に失敗している mixin を指しており、対象クラスを持つモッドが第一の容疑者です。(2) エンティティ描画に触れる 2 つ目のモッドが 1 フレーム上に現れています。(3) 可能性は低いものの、失敗直前に読み込まれた設定系モッドも考えられます。次の一手:容疑者 2 つを外して起動し、1 つずつ戻していく。リストの半分を消すより速くこの組み合わせを確定できます。

調整すべき点: 診断が曖昧に返ってくるなら(「何かのモッドが競合しています」)、トレースが足りていません。最初の 100 行ではなくクラッシュレポート全文を貼り、バージョン付きのモッド一覧も添えてください。それでも歯切れが悪いなら、ログは本当に犯人を名指ししておらず、二分探索に戻ることになります。

どこで間違うか: 本当の原因がトレースの別の場所にあっても、AI は絶対の自信で犯人モッドを名指しします。その答えは判決ではなく、順位付きの仮説として扱ってください。確認は、実際にモッドを外して起動してみることでしかできません。

ここが飛ばされがちな工程です。AI はスタックトレースを読みますが、実運用に近い条件でパックがきれいに起動するかは教えてくれません。クラッシュの中には、素早いシングルプレイ起動ではなく、複数のモッドがサーバー上で同時に初期化されて初めて現れるものがあるからです。まさにここで欲しくなるのが 使い捨てのテストサーバーです。Cloudzy のマーケットプレイスには ワンクリックの Minecraft Forge デプロイ Ubuntu Server 24.04 LTS 上で動きます。マーケットプレイスには最小 RAM 2 GB と記載されていますが、それはプラットフォームの下限であって、大規模モッドパックのサイジング目標ではありません。小さなテストパックなら RAM 4 GB と 2 vCPU が妥当な出発点で、モッドが 100 個を超えるなら 8 GB と 4 vCPU あたりから始め、そこからプレイヤー数、ワールド生成、実際のプロファイリング結果に合わせて調整します。立ち上げ、負荷をかけた状態で修正を確認し、そして壊す。

ゲーミング用VPS

高速NVMe VPSホスティングでラグのないゲームサーバーを。

ゲーミング用VPS

プロンプト:KubeJS レシピの生成

このプロンプトは、パックが実際に使っている API そのままで KubeJS レシピを下書きします。ただし、モデルが真似できるよう、自分のスクリプトから動作するレシピを先に貼り付けることが前提です。

Write a KubeJS recipe for me.
- Target: Minecraft 1.21.1 / NeoForge [paste exact build] / KubeJS [paste exact installed 7.2.x build]
  (For the older line, use: Minecraft 1.20.1 / your exact loader build / your exact installed KubeJS 6.x build)
- Goal: a shaped recipe that crafts 3x create:andesite_alloy from
  iron nuggets and andesite.

Here is one working recipe from my server_scripts/ so you match my API style:
[paste one real ServerEvents.recipes block from your pack]

Output only the recipe, inside a ServerEvents.recipes(event => {...}) block.
Use item IDs exactly as I'd find them in-game; flag any ID you're unsure exists.

Minecraft 1.21.1 向けの KubeJS 7.2.x 系を指定し、例を貼り付けておけば、現行の event.shaped() 構文が返ってきます。これは KubeJS レシピ公式ドキュメント:

// KubeJS 7.2.x - Minecraft 1.21.1 / NeoForge
ServerEvents.recipes(event => {
  event.shaped(
    Item.of('create:andesite_alloy', 3),
    ['III', 'IAI', 'III'],
    { I: 'minecraft:iron_nugget', A: 'minecraft:andesite' }
  )
})

調整すべき点: Minecraft 1.20.1 なら、モデルがその系統に合わせられるよう、正確なローダーのビルドとインストール済みの KubeJS 6.x のビルドを明記してください。バニラのレシピを削除・置換したい場合は、 event.remove({ output: '...' }) or event.replaceInput(...) と明示的に指定してください。メソッド名を挙げれば、モデルは即興で作りません。

どこで間違うか: ここでは主に 2 つの失敗が起きます。幻覚のアイテム ID(create:andesite_alloy は実在しますが、 create:andesite_gear は存在しないかもしれません)、そして対象行を書き忘れたときのバージョン違いの出力です。すべてのアイテム ID をインストール済みモッドと突き合わせ、スクリプトをテストパックに入れて kubejs/logs/server.log.

プロのヒント: 新しいものを頼む前に、自分の server_scripts/ から既知の良い例をひとつ貼ることは、どんなプロンプトの言い回しよりも価値があります。モデルは、half-remembered な抽象的「正しい」API よりも、目の前の具体例をはるかに忠実に真似るからです。

プロンプト:FTB Quests のクエストブック作成(1.21.1 の SNBT)

FTB Quests SNBT and JSON5 formats compared across Minecraft versions

このプロンプトは、FTB Quests のエントリを FTB の拡張 SNBT 形式 で Minecraft 1.21.1 向けに下書きします。SNBT は JSON に似ているためモデルがどうしても JSON として扱いたがるので、この一連の中で最も難しい AI タスクです。Minecraft 26.1.2 以降では FTB Quests は JSON5 を使います 。そのためそちらではこの SNBT 用プロンプトを使わないでください。

Write an FTB Quests task block in FTB SNBT for Minecraft 1.21.1 / NeoForge.

FTB SNBT is NOT JSON. Follow these rules exactly:
- Do not use commas between fields in multiline objects.
- Match the 16-character UPPERCASE hexadecimal ID format used by my existing quests
  (example: 7942A6A571A4C5EB).
- Put the required amount in the task-level count field as a long (count: 8L); keep the nested item stack count at 1.
- This is a task block only; do not add chapter-level fields such as filename or quests.

Goal: an "item" task requiring 8x minecraft:diamond.
Match this known-good block's structure exactly:
[paste a valid SNBT block from your existing chapter file]

Output only the SNBT block.

有効だと分かっているブロックを手本に出力させます。

{
    id: "7942A6A571A4C5EB"
    type: "item"
    item: {
        count: 1
        id: "minecraft:diamond"
    }
    count: 8L
}

調整すべき点: 単一のタスクではなく章全体が必要なら、 filename そして quests: [...] リストを含む章のラッパーを求め、そのうえで各クエストに 16 文字の重複しない 16 進 ID を要求します。ID を使い回したり形式を変えたりするようなら、正しいと分かっている ID を 2 つ 3 つ貼り、それに合わせるよう指示してください。

どこで間違うか: 複数行の FTB SNBT に JSON のカンマを足したり、必要な個数をタスク階層の count フィールドではなく入れ子のアイテムスタック内に入れたり、壊れたクエスト ID を生成したりします。どれか一つでも章の読み込みを止めたり、タスクのカウントを狂わせたりします。すべてのブロックを、動作すると分かっている構造と突き合わせて検証し、次の場所に置く前にサーバーログを確認してください: config/ftbquests/.

プロンプト:テーマ別のモッド選定

このプロンプトは AI を発想の近道として使います(これから調べるテーマ別のモッド候補リスト)。何が実在するかについての真実の情報源としては、決して使いません。

Suggest mods for a modpack with this theme: [your theme, e.g. "steampunk
automation, tech-focused, no magic"].
- Minecraft version: 1.21.1
- Loader: NeoForge

For each suggestion, give me:
- The mod name and what it contributes to the theme.
- Whether you're confident it exists for 1.21.1 / NeoForge, or unsure.

Mark anything you're not certain about as UNVERIFIED. Do not assert
availability you're not sure of; I'll confirm each one on CurseForge/Modrinth.

役に立つ答えは、確信のある候補と当て推量とを分けています。

1.21.1 / NeoForge で確認済みの例(正確なファイルはご自身で確認を): 作成は自動化と機械装置向け、 Immersive Engineeringはマルチブロック機械と工業技術向けです。UNVERIFIED:[モデルが確認できない小規模アドオン]。何かを追加する前に必ずプロジェクトページを確認してください。

調整すべき点: 制約をさらに強めましょう。CurseForge か Modrinth に確認できるページがあるモッドだけを求め、モッドごとに 1 行の互換性メモ(依存関係、既知の競合)も出させれば、候補リストがそのまま調査用チェックリストになります。

どこで間違うか: AI はモッド名も対応バージョンも平然と捏造します。もっともらしい名前の実在しないモッドをでっち上げたり、1.19 で止まっているものに 1.21 対応ビルドがあると言い張ったりします。どの提案も CurseForge や Modrinth で確認すべき手がかりであって、そのままモッドリストに入れる項目ではありません。

プロンプト:変更履歴とコミットメッセージの作成

これは一連の中で最もリスクが低く、最も信頼できる AI タスクです。自分が作った差分を渡して要約させるだけで、これは本当に得意です。

Here are the changes in this modpack update (from my packwiz .pw.toml
adds/removes/updates):
[paste your git diff or a list of added/removed/updated mods]

Write two things:
1. A Conventional Commit message (type(scope): summary + a short body).
2. A short player-facing changelog entry, with a friendlier tone and no file names.

Only summarize the changes I gave you. Don't invent changes I didn't list.

実際の差分を与えれば、そのまま出せる出力が返ってきます。

feat(mods): update Create stack and remove old storage entry

- Added Create: Steam 'n' Rails and Create Crafts & Additions
- Removed Simple Storage Network
- Updated JEI to the 1.21.1 build listed in the supplied diff

プレイヤーの皆さんへ:このアップデートでは Create のテックツリーに列車と電気機械が加わり、変更セットに挙がっているストレージ系モッドが削除され、JEI のレシピ索引が更新されます。

調整すべき点: トーンは明示的に指定します。コミットログは簡潔に、プレイヤー向けの案内は少し温かめに。フルリリースなら、更新全体の差分をまとめて渡し、変更履歴をセクション分け(追加 / 変更 / 削除)して出させましょう。

どこで間違うか: 渡した差分の要約に徹させている限り、ほとんどありません。唯一の実質的なリスクは、実際には行っていない変更で変更履歴を水増しすることなので、「他に何が変わったか推測して」とは頼まないこと。本物の差分を渡し、その範囲に留めさせてください。

出力を信じてはいけないとき(失敗パターン一覧)

覚えるのが 1 節だけなら、この節にしてください。上のどのタスクでも、AI の失敗の仕方は少数かつ予測可能で、それぞれに、すでに部品が揃っている打ち手があります。

障害モードどこで起きるかどう補うか
幻覚のアイテム IDKubeJS レシピ、クエストアイテムすべての ID を実際のモッドと照合し、本物の ID をプロンプトに貼る
KubeJS API のバージョン違いKubeJS レシピゲームバージョン、ローダーのビルド、正確な KubeJS のビルドを毎回プロンプトに書く
SNBT を JSON として扱う(カンマ)FTB Questsプロンプト内に「同じ階層のフィールド間にカンマを入れない」と明記し、正しいと分かっているブロックと突き合わせる
不正なクエスト ID(小文字・長さ違い)FTB Quests16 文字の大文字 16 進数を指定し、有効な ID を例として与える
モッドの提供状況の幻覚モッド選定追加する前に、すべての提案を CurseForge/Modrinth で確認する

大半は 2 つの手法でカバーできます。第一に、正確なゲームバージョン、ローダーのビルド、対象フォーマット、動作する例を毎回プロンプトに入れること。第二に、2 段階で回すこと。まず成果物を生成させ、それを貼り戻して、FTB SNBT の区切り方やクエスト ID の形式といった具体的な制約に照らして点検させます。二度見させると、モデルは自分のミスをそれなりの割合で自力で拾います。

どれも、あなたが出力を読むことの代わりにはなりません。ただ、一から書けば何時間もかかるところが、読むだけの数分で済むというだけです。

結論

ChatGPT がモッドパック開発で役立つのは、自分のパックの現実の制約に沿って働かせたときだけです。正確なゲームバージョン、ローダーのビルド、対象フォーマット、既知の良い例を与え、そのうえで、あらゆるレシピ、クエストブロック、診断を、ログと実際のテスト環境を生き延びなければならない下書きとして扱ってください。そうすれば、モデルに不相応な権限を渡すことなく、速さの利点だけを手元に残せます。

よくある質問

AI は Minecraft のクラッシュログを読めますか?

読めます。クラッシュレポート全文、少なくとも最初の 100 行と、すべての Caused by: ブロックを、Minecraft のバージョンとローダーのビルドとあわせて貼り付けてください。能力の高いモデルなら、スタックトレースを読んで犯人らしいモッドを順位付けできます。これで手当たり次第の二分探索を省き、そのうえで仮説をテスト環境で確認しましょう。

KubeJS のレシピに ChatGPT をどう使えばよいですか?

必ず Minecraft のバージョン、ローダーのビルド、インストール済みの正確な KubeJS のビルドを明記してください。KubeJS 6.x は Minecraft 1.20.1 系、KubeJS 7.2.x は Minecraft 1.21.1 系です。自分の server_scripts/ から動作するレシピを貼って自分のスタイルに合わせさせ、そのうえで全アイテム ID を検証し、API は KubeJS のログで確認してください。

FTB Quests の作成にはどんなプロンプトが有効ですか?

Minecraft 1.21.1 では、FTB の複数行 SNBT のルールを明文化してください。フィールド間にカンマを入れない、既存クエストが使う 16 文字の 16 進 ID 形式に合わせる、元データが使っている箇所では型付き数値サフィックスを保持する、そしてタスク側のフィールドを次のような章レベルのフィールドと混ぜない、という具合です: filename。既知の良いブロックを添え、読み込む前に結果を検証してください。Minecraft 26.1.2 以降では FTB Quests がこのデータを JSON5 で保存するため、バージョンに合った JSON5 の例を使ってください。

AI は良質な Minecraft のモッドやモッドパックを書けますか?

単独では書けません。AI は、出力を読んで検証できる開発者を速くします。レシピ、クエスト、診断を一から書くより素早く下書きしてくれるからです。レビューなしで動くモッドやパックを安定して生み出すことはありません。その分野を知る人が下書きツールとして使えば確かな高速化になりますが、自律的な作者として扱えば、避けられたはずの誤りをそのまま出荷することになります。

AI にはどの Minecraft バージョンとローダーを伝えればよいですか?

毎回、両方です。正確な Minecraft のバージョン(たとえば 1.21.1)と、Forge、NeoForge、Fabric、Quilt のいずれかの正確なローダーとビルドを明記してください。これらがないと、モデルは古い構文やローダー非互換の構文を選びかねません。本番に持ち込む前に、テストパックで結果を検証しましょう。

共有

ブログの他の記事

読み進める。

デプロイの準備はできましたか? 月額2.48ドルから。

2008年から独立運営のクラウド。AMD EPYC、NVMe、40 Gbps。14日間返金保証。