カスタムレシピのメモ書き
カスタムレシピ
いくつかのアイテムを他のアイテムに変換するための設定JSON。データパックで指定可能。
以下のレシピを好きに作れる。
- インベントリでのクラフト
- 作業台でのクラフト
- かまどでの製錬
- 燻製器での製錬
- 溶鉱炉での製錬
- 焚き火での製錬
- 石切り台でのクラフト
カスタムレシピの置き場所
datapack/<データパック>/data/<パック>/recipes/<レシピ名>.json
もしもバニラの挙動を置き換える場合は、
datapack/<データパック>/data/minecraft/recipes/<置き換える対象>.json
JSONの内容
共通のプロパティ
{ "type": "minecaraft:crafting_shaped", "group": "x" }
プロパティ | 説明 | 定義値 | 必須 |
---|---|---|---|
type | クラフトのタイプ。 このタイプによって他のプロパティが異なる。 - crafting_shaped : 形が固定のクラフトレシピ - crafting_shapeless : 形が自由なクラフトレシピ - smelting : かまどのレシピ - smoking : 燻製器のレシピ - blasting : 溶鉱炉のレシピ - campfire_cooking : 焚き火のレシピ - stonecutting : 石切り台のレシピ |
string | ● |
group | 複数のレシピを1つにまとめるタグ。 ここが同じ文字のレシピは、1つのレシピヘルパーとして扱われる。 (インベントリのレシピを見た時に1つにまとめられる) |
string |
形が固定なクラフトのプロパティ
作業台やインベントリで使える形が固定のクラフトレシピのみ。
{ "pattern": [ " A ", "BBB" ], "key": { "A": { "item": "minecraft:stone" }, "B": { "tag": "x:stones" } }, "result": { "item": "minecraft:diamond", "count": 2 } }
プロパティ | 説明 | 定義値 | 必須 |
---|---|---|---|
pattern | レシピの形。 任意の1文字で種類を配置する。 空白は何も置かないという設定。 |
list | ● |
key | pattern で使った文字に割り当てるアイテム。アイテムID item もしくはアイテムタグtag を指定可能。 |
object | ● |
result.item | クラフト後のアイテム。 | string | ● |
result.count | クラフト後のアイテムの数。 | number |
形が自由なクラフト共通のプロパティ
作業台やインベントリで使える配置が決まっていないクラフトレシピのみ。
{ "ingredients": [ { "item": "minecraft:stone" }, { "tag": "x:armors" } ], "result": { "item": "minecraft:diamond", "count": 2 } }
プロパティ | 説明 | 定義値 | 必須 |
---|---|---|---|
ingredients | クラフトに使うアイテム。 アイテムID item もしくはアイテムタグtag を指定可能。 |
list | ● |
result.item | クラフト後のアイテム。 | string | ● |
result.count | クラフト後のアイテムの数。 | number |
製錬のクラフト共通のプロパティ
かまど、燻製器、溶鉱炉、焚き火のクラフトレシピ。
{ "ingredient": [ { "item": "minecraft:stone" }, { "tag": "x:armors" } ], "result": "minecraft:diamond", "experience": 0.1, "cookingtime": 200 }
プロパティ | 説明 | 定義値 | 必須 |
---|---|---|---|
ingredient | クラフトに使うアイテム。 アイテムID item もしくはアイテムタグtag を指定可能。 |
list | ● |
result | クラフト後のアイテム。 | string | ● |
experience | クラフト完了時に経験値を取得できる確率。 0~1の間で指定。 |
number | |
cookingtime | クラフト完了までかかる時間(tick)。 | number |
石切りのクラフトのプロパティ
石切り台のクラフトレシピ。
{ "ingredient": [ { "item": "minecraft:stone" }, { "tag": "x:armors" } ], "result": "minecraft:diamond", "count": 1 }
プロパティ | 説明 | 定義値 | 必須 |
---|---|---|---|
ingredient | クラフトに使うアイテム。 アイテムID item もしくはアイテムタグtag を指定可能。 |
list | ● |
result | クラフト後のアイテム。 | string | ● |
count | クラフト後のアイテムの数。 | number | ● |
サンプル
時計のクラフトレシピ
{ "type": "minecraft:crafting_shaped", "pattern": [ " # ", "#X#", " # " ], "key": { "#": { "item": "minecraft:gold_ingot" }, "X": { "item": "minecraft:redstone" } }, "result": { "item": "minecraft:clock" } }
金インゴットの製錬レシピ
{ "type": "minecraft:smelting", "ingredient": { "item": "minecraft:gold_ore" }, "result": "minecraft:gold_ingot", "experience": 1.0, "cookingtime": 200 }
レシピの覚え方
パック名をminecraftにして、バニラの情報を書き換える
デフォルトの挙動が変わるので注意
コマンドでレシピを覚える
## レシピを覚える recipe give @p x:original_recipe
進捗でレシピを覚える
{ : "rewards": { "recipes": ["x:original_recipe"] } }
クラフト後のアイテムにNBTを指定する
現状、クラフト元のアイテムやクラフト後のアイテムにはNBTを指定できません。
なので、多少強引ではありますが、クラフト後のアイテムだけでもNBTを指定するために、進捗を使って強制的にアイテムの置き換えを行います。
アイテムのクラフト結果を「知識の本にする」
{ : "result": { "item": "minecraft:knowledge_book" } }
進捗で「レシピ開放」を検知してファンクションを呼び出す
{ "criteria": { "placeholder": { "trigger": "minecraft:recipe_unlocked", "conditions": { "recipe": "x:original_recipe" } } }, "rewards": { "function": "x:unlock_recipe" } }
ファンクションで「知識の本」を取り替える
# 知識の本を消す clear @s knowledge_book # アイテムを渡す give @s (アイテム) # 再度トリガーをかけるため、進捗を取り消す advancement revoke @s only x:advancement # レシピも消しておく recipe take @s x:recipe