Datapackではゲーム内のクラフトレシピをJSONファイルで自由に追加・変更できます。この記事では、作業台での「形状あり」「形状なし」レシピ、かまどのレシピ、加工台のレシピを順番に実装しながら、recipe JSONの基本的な書き方を身につけましょう。前回記事で作ったアイテムタグ(my_ores)をそのまま素材として使う実践的なサンプルも用意しています。
対応バージョン:Java Edition 1.21.11
前提知識
- Datapackの基本フォルダ構成を理解していること(Datapackの作り方 入門編)
- アイテムタグの仕組みを知っていること(タグでブロック・アイテムをグループ化しよう)※前回記事
前回記事で作った my_datapack を引き続き使います。まだ準備ができていない方は、新しいDatapackをゼロから作ってもかまいません。
recipe JSONを置くフォルダ
Java Edition 1.20.5以降、レシピファイルの保存先は data/<namespace>/recipe/(単数形)に変わっています。1.20.4以前は recipes/(複数形)でしたので、バージョンに合わせて確認してください。
my_datapack/
├── pack.mcmeta
└── data/
└── my_datapack/
├── recipe/
│ ├── magic_block.json ← 形状ありレシピ
│ ├── any_ore_dust.json ← 形状なしレシピ(タグ使用)
│ ├── magic_block_smelt.json ← かまどレシピ
│ └── magic_block_cut.json ← 加工台レシピ
└── tags/
└── item/
└── my_ores.json ← 前回作ったアイテムタグ
recipe/ フォルダの中にJSONファイルを1レシピ1ファイルで作成します。ファイル名がそのままレシピのID(my_datapack:magic_block)になりますが、ゲームプレイ中にこのIDが表示されることはないので、わかりやすい名前で問題ありません。
ステップ1:形状ありレシピ(crafting_shaped)
作業台で素材の配置パターンを指定するレシピです。まず data/my_datapack/recipe/magic_block.json を作成します。
{
"type": "minecraft:crafting_shaped",
"key": {
"d": "minecraft:diamond",
"g": "minecraft:gold_ingot",
"e": "minecraft:emerald"
},
"pattern": [
"dgd",
"geg",
"dgd"
],
"result": {
"count": 1,
"id": "minecraft:beacon"
}
}
pattern は3×3のグリッドを文字列の配列で表します。各文字が key のどの素材に対応するかを定義します。スペース(半角空白)は「空のスロット」を意味します。result の id に出力アイテムのID、count に個数を書きます。

ステップ2:形状なしレシピ(crafting_shapeless)
素材の配置順序・場所を問わないレシピです。前回記事で作った #my_datapack:my_ores アイテムタグを素材に使います。data/my_datapack/recipe/any_ore_dust.json を作成します。
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
"minecraft:flint",
"#my_datapack:my_ores"
],
"result": {
"count": 1,
"id": "minecraft:redstone"
}
}
ingredients に素材のリストを並べます。アイテムIDは文字列でそのまま書き、アイテムタグは先頭に # をつけた文字列で書きます(1.20.5以降の新フォーマット)。タグを使うと、鉄インゴット・金インゴット・ダイヤモンド・エメラルドのどれと火打ち石を組み合わせても同じ結果が出るレシピを1ファイルで定義できます。

ステップ3:かまどレシピ(smelting)
かまどで精錬するレシピです。data/my_datapack/recipe/magic_block_smelt.json を作成します。
{
"type": "minecraft:smelting",
"ingredient": "minecraft:netherrack",
"result": {
"id": "minecraft:magma_block"
},
"experience": 0.7,
"cookingtime": 100
}
ingredient(単数形)に素材を1つ書きます。experience は精錬後にもらえる経験値量(小数可)、cookingtime は精錬にかかるtick数です(20tick = 1秒)。通常のかまどのデフォルトは200tickです。高速精錬にしたければ値を小さく、ゆっくりにしたければ大きくしましょう。
同様のタイプとして、高速精錬かまど用の minecraft:blasting、燻製器用の minecraft:smoking、焚き火用の minecraft:campfire_cooking があります。書き方はほぼ同じで、"type" を変えるだけです。

ステップ4:加工台レシピ(stonecutting)
加工台(Stonecutter)で使えるレシピです。data/my_datapack/recipe/magic_block_cut.json を作成します。
{
"type": "minecraft:stonecutting",
"ingredient": "minecraft:quartz_block",
"result": {
"id": "minecraft:quartz_bricks",
"count": 4
}
}
加工台レシピは pattern も key も不要です。ingredient に素材、result に出力アイテム、count に個数を書くだけです。1素材→複数種類の出力を作りたい場合は、ファイルを出力アイテムの数だけ増やして別々に定義します。

動作確認の手順
- ファイルを保存したら、ゲーム内で
/reloadを実行してDatapackを再読み込みする - チャットに赤いエラーメッセージが出た場合はJSONのカンマ・括弧の閉じ忘れ、または
"type"のタイポを疑う - クリエイティブモードのレシピブックを開き、追加したレシピが表示されているか確認する
- 実際に作業台・かまど・加工台に素材を入れて正しくクラフトできることを確認する
レシピブックに表示されない場合は "type" の文字列が正確かどうかを確認しましょう。スペルミスがあると静かに無効化されることがあります。
まとめ
- レシピファイルは
data/<namespace>/recipe/フォルダに1レシピ1ファイルで置く(1.20.5以降は単数形) - 形状ありレシピ(
crafting_shaped)はpatternとkeyで配置を定義し、形状なし(crafting_shapeless)はingredientsに素材を列挙するだけでよい - 素材はアイテムIDをそのまま文字列で、タグは
#namespace:tagnameの文字列で書く(1.20.5以降の新フォーマット)。複数アイテムに対応した柔軟なレシピが1ファイルで書ける - かまどレシピは
smelting・blasting・smokingと種類があり、cookingtimeとexperienceで時間と経験値を調整できる - 加工台レシピ(
stonecutting)は配置不要でシンプル。複数出力先はファイルを分けて対応する
次の記事「ドロップテーブルをカスタマイズしよう(loot_table)」では、モブのドロップやブロックの収穫物をJSONで自由に書き換える方法を解説します。
関連ツール
recipe JSONの書き方に慣れてきたら、GUIで素材を選ぶだけでJSONを自動生成してくれる外部ツールも活用してみましょう。Misode’s Generator(Recipe)は、レシピタイプや素材をブラウザ上で選択するだけでそのまま使えるJSONを出力してくれます。バージョン切り替えにも対応しているので、書き方の確認やプロトタイプ作りに重宝します。仕組みを理解した上で補助的に使うと、制作スピードが一気に上がります。
