ルートテーブル
ルートテーブル(Loot table)は、ランダムに出現するアイテム(構造物のチェストの中身、mobのドロップなど)を指定するシステムである。ver1.9で追加された。
JSON形式のファイルで記述されている。
保存場所
ver1.13以降
デフォルト
versions
┗<ver>.jar
┗ data
┗ minecraft
┗ loot_tables
┣ blocks:ブロックを壊した時のアイテム(ver1.14から)
┣ chests:チェスト
┣ entities:ドロップアイテム
┗ gameplay:釣り関連
※確認には解凍ツールが必要
自作
各ワールドのファイル
┗ datapacks
┗(データパック名)
┗data
┗ 名前空間(フォルダ)
┗loot_tables
┗(ルートテーブル名).json
データパックも参照。
loot_tablesフォルダの中にはさらにフォルダを作成してもよい。
なお、名前空間の名称をminecraftとすれば、デフォルトのルートテーブルをそのワールドに限って上書きすることができる。
ver1.12.2まで
デフォルト
versions
┗<ver>.jar
┗ assets
┗ minecraft
┗ loot_tables
┣ chests:チェスト
┣ entities:ドロップアイテム
┗ gameplay:釣り関連
※確認には解凍ツールが必要
自作
各ワールドのファイル
┗data
┗ loot_tables
┗名前空間(フォルダ)
┗(ルートテーブル名).json
名前空間フォルダの中にはさらにフォルダを作成してもよい。
なお、名前空間の名称をminecraftとすれば、デフォルトのルートテーブルをそのワールドに限って上書きすることができる。
ルートテーブルの参照
ルートテーブルを参照するときは、次のように書く。
名前空間:ルートテーブル名
デフォルトのルートテーブルの名前空間は minecraft である。
loot_tablesフォルダ内(ver1.12.2までは名前空間フォルダ内)にさらにフォルダを作った場合は、次のようにする。
名前空間:フォルダ名/ルートテーブル名
フォルダが複数の場合は以下のようになる。
名前空間:フォルダ名/…/フォルダ名/ルートテーブル名
使用の際に使うデータタグ
ルートテーブルによってインベントリを持つブロックまたはエンティティ(チェスト、トラップチェスト、ホッパー、チェスト付きトロッコ、ホッパー付きトロッコ、ディスペンサー(ver1.9.1から)、ドロッパー(ver1.9.1から)、シュルカーボックス(ver1.11から)、樽(ver1.14から))の中身およびmobのドロップを指定する際、以下のデータタグを使用する。
LootTable
LootTable:"minecraft:フォルダ名/ファイル名"
インベントリを持つブロック、エンティティの中身を指定するときに使用
LootTableSeed
LootTableSeed:<value>
確率を算出するための乱数として機能。8バイト整数値
DeathLootTable
DeathLootTable:"minecraft:フォルダ名/ファイル名"
mobのドロップを指定するときに使用
DeathLootTableSeed
DeathLootTableSeed:<value>
確率を算出するための乱数として機能。8バイト整数値
ルートテーブルの記法
ルートテーブルの記法の細部については、MOJANG公表のパッチノートと公式Wikiで内容に齟齬がある。
このページでは、原則としてパッチノートの内容に従い、パッチノートの明らかな誤りないし書き忘れと思われる個所は公式Wikiに拠った。
ルートテーブルのJSONの記法を解説する。
特記がないものはver1.9以降のすべてのバージョンで使用可能。それ以降のバージョンで追加・変更されたものはその都度注記する。
{
"type":"<値>",
"pools":[
{
"entries":[
{
"type":"<種類>",
"name":"<値>",
"children":[{<エントリー>}],
"expand":trueまたはfalse,
"weight":<4バイト整数値>,
"quality":<4バイト整数値>,
"conditions":[
{
"condition":"<コンディション名>",
"コンディション固有のタグ":"<値>"
}
],
"functions":[
{
"function":"<ファンクション名>",
"ファンクション固有のタグ":"<値>",
"conditions":[
{
"condition":"<コンディション名>",
"コンディション固有のタグ":"<値>"
}
]
}
]
}
],
"rolls":<4バイト整数値> / <数値セレクタ>,
"bonus_rolls":<4バイト整数値> / <数値セレクタ>,
"conditions":[
{
"condition":"<コンディション名>",
"コンディション固有のタグ":"<値>"
}
],
"functions":[
{
"function":"<ファンクション名>",
"ファンクション固有のタグ":"<値>",
"conditions":[
{
"condition":"<コンディション名>",
"コンディション固有のタグ":"<値>"
}
]
}
]
}
],
"functions":[
{
"function":"<ファンクション名>",
"ファンクション固有のタグ":"<値>",
"conditions":[
{
"condition":"<コンディション名>",
"コンディション固有のタグ":"<値>"
}
]
}
]
}
各タグの用途は次の通り。
"type":"<値>"
ver1.14で追加
ルートテーブルが指定する対象を決める(オプション)。可能な<値>は次の通り。
値 | 用途 |
---|---|
generic | 指定なし(デフォルト) |
empty | 何も生成しないルートテーブルの場合 |
entity | エンティティのドロップを指定する場合 |
block | ブロックを採掘した時に出るアイテムを指定する場合 |
chest | チェスト等の中身を指定する場合 |
fishing | 釣りで得られるアイテムを指定する場合 |
gift | 村人と猫の贈り物を指定する場合 |
advancement_reward | 進捗達成の報酬を指定する場合 |
barter | ver1.16で追加。ピグリンの取引内容を指定する場合 |
"pools":[{<プール1>},{<プール2>},…]
アイテムの生成を行うまとまり(プール)を指定する。
各プールごとに、そのプールに含まれるアイテム等が確率的に選ばれ、生成される。
このタグの直後の[ ]の直下の{ }が一つのプールとなるので、複数のプールを使いたい場合は{}を中身のタグごとコピーして増やせばよい。
"entries":[{<エントリー1>},{<エントリー2>},…]
プールに含まれるアイテムなど(エントリー)を指定。タグ直後の[ ]の直下の{ }が一つのエントリーを指定する。
エントリーの中のタグは以下の通り。
タグ | 用途 |
---|---|
type | エントリーの種類。何も生成しない場合はempty、 アイテムの場合はitem、 データパックのタグの場合はtag(ver1.14以降)、 ルートテーブルを参照する場合はloot_table、 ブロック固有のアイテムの場合はdynamic(ver1.14以降)、 他の複数のエントリーを参照する場合はgroup(ver1.14以降)、 他の複数のエントリーから1つを選ぶ場合はalternative(ver1.14以降)、 他の複数のエントリーを順番に選んでいく場合はsequence(ver1.14以降)とする。 |
name | typeがitem、tag、loot_table、dynamicの場合に必要。 itemならアイテムID(ver1.13以降はこちら、ver1.12.2まではこちらを参照)、 tagならデータパックのタグの名前、 loot_tableならルートテーブルのパス、 dynamicの場合、ブロックエンティティ固有のアイテムならcontents、旗・頭の場合はselfとする。 |
children | typeがgroup、alternative、sequenceの場合に必要。 直後の[ ]の中にエントリーを並べる。 |
expand | typeがtagの場合に必要。trueならそのタグに含まれるアイテムのうち1種類が選ばれ、falseならそのタグに含まれるすべての種類のアイテムが選ばれる。 |
weight | アイテムの出やすさ。 |
quality | 「幸運」または「不運」のステータス効果による補正。 (ステータスレベル)×(qualityの値)だけweightの値が増減する。 |
"rolls": <4バイト整数値> / $!数値セレクタ!$
そのプール内に生成されるエントリー数の合計。
ver1.13.2までは数値セレクタを以下の通り読み替える。
{"min":<4バイト整数値>,"max":<4バイト整数値>}
"bonus_rolls": <4バイト整数値> / $!数値セレクタ!$
「幸運」または「不運」のステータス効果による"rolls"の値の補正。
(ステータスレベル)×(bonus_rollsの値)だけrollsの値が増減する。
ver1.13.2までは数値セレクタを以下の通り読み替える。
{"min":<4バイト整数値>,"max":<4バイト整数値>}
"functions":[{<ファンクション1>}、{<ファンクション2>}、…]
アイテムに対してさらに詳しい指定を行う。指定に使えるファンクションについては以下で解説する。
エントリー、プール(ver1.14以降)、全体(ver1.14以降)の3階層で使用できる。
"conditions":[{<コンディション1>}、{<コンディション2>}、…]
アイテムが生成される条件を設定する。
ファンクションの内部、エントリー、プール(ver1.14以降)の3階層で使用できる。
コンディションについては以下で解説する。
ファンクションの一覧
特記がないものはver1.9以降のすべてのバージョンで使用可能。それ以降のバージョンで追加・変更されたものはその都度注記する。
apply_bonus
{
"function":"apply_bonus",
"enchantment":"<エンチャントID>",
"formula":"binominal_with_bonus_count / uniform_bonus_count / ore_drops",
"parameters":[
"extraRounds":<4バイト整数値>,
"probability":<4バイト浮動小数点値>,
"bonusMultiplier":<4バイト浮動小数点値>
]
}
ver1.14で追加
エンチャントレベルを反映してアイテムの生成数を変える。エンチャントIDはこちらを参照。
- binominal_with_bonus_countの場合:
- "enchantment"で指定したエンチャントのレベルをL、"parameters"の"extraRounds"の値をE、"probability"の値をPとして、二項分布(L+E, P)に従う値を返す。
- uniform_bonus_countの場合:
- "enchantment"で指定したエンチャントのレベルをL、"parameters"の"bonusMultiplier"の値をBとして、0とL×Bの間の任意の数を返す。
- ore_dropsの場合:
- "enchantment"で指定したエンチャントのレベルをLとすると、もともとのアイテムの生成数にmax(0,random(0,L+2)-1)+1を掛けた値を返す。
- ただしmax(a,b)はaとbのうち大きい方の値を表し、random(a,b)はaとbの間の任意の数を表す。
copy_name
{
"function":"copy_name",
"source":"block_entity"
}
ver1.14で追加
ブロックのカスタムネームを引き継ぐ。
ブロックを採掘したときに出るアイテムを指定する場合にのみ有効。
copy_nbt
{
"function":"copy_nbt",
"source":"block_entity / this / killer / killer_player / direct_killer",
"ops":[
{
"source":"<データタグのパス>",
"target":"<データタグのパス>",
"op":"replace / append / merge"
}
]
}
ver1.14で追加
データタグ(NBTタグ)の内容をコピーする。sourceで指定したタグからtargetで指定したタグへコピーが行われる。
opでreplaceとすると上書き、appendとするとリストへの追加(コピー先のタグがList型の場合)、mergeとするとタグへの追加(コピー先のタグがcompound型の場合)が行われる。
sourceの値は、ブロックエンティティの場合block_entity、エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
- データタグのパスの記法 (NBT path format)
- AでタグAを選択。
- {}でデータタグ全体を選択。
- {A:x}でタグA:xが含まれている場合に限りデータタグ全体を選択。
- A{}でCompound型のタグAを選択。
- A{B:x}でタグB:xを含むCompound型のタグAを選択。
- A[]でList型のタグAのすべての要素を選択。
- A[x]でList型のタグAの(x+1)番目の要素を選択。
- A[{}]でList型のタグAに含まれる{}で区切られた要素をすべて選択。
- A[{B:x}]でList型のタグAに含まれる{}で区切られた要素のうちタグB:xを含むものを選択。
- A.BでCompound型のタグAに含まれるタグBを選択。
これらは入れ子的に使用可能。
例えば{A:{B:{C:[D:135,E:534]}}}というタグ構造に対して、A.B.C[0]のように書くことでタグDを選択できる。
copy_state
{
"function":"copy_state",
"block":"<ブロックID>",
"properties":[
"<ブロックの状態>"
]
}
ver1.15で追加
ブロックの状態をコピーする。ブロックIDはこちらを、状態についてはこちらを参照。
enchant_randomly
{
"function":"enchant_randomly",
"enchantments":[<エンチャントID>]
}
ランダムなエンチャントを付与する。
enchantmentsタグがある場合はそこに書かれたエンチャントのいずれかが付与され、ない場合はそのアイテムに付与できるすべてのエンチャントが対象となる。
エンチャントIDはこちらを参照。
enchant_with_levels
{
"function":"enchant_with_levels",
"treasure":trueまたはfalse,
"levels":<4バイト整数値> / $!数値セレクタ!$
}
アイテムに特定のエンチャントレベルのエンチャントを付与する。
treasureはトレジャーエンチャントを付与するかどうか。
ver1.13.2までは「数値セレクタ」を次の通り読み替える。
{"max":<4バイト整数値>,"min":<4バイト整数値>}
exploration_map
{
"function":"exploration_map",
"destination":"<構造物のID>",
"decoration":"<マップアイコンのID>",
"zoom":<4バイト整数値>,
"search_radius":<4バイト整数値>,
"skip_existing_chunks":true / false
}
ver1.13で追加
白紙の地図を冒険家の地図に置き換える。
- destination
- その地図が示す構造物の種類を指定する。構造物のIDはこちらを参照。
- decoration
- 地図上で構造物を示すアイコンを指定する。アイコンのIDは以下の通り。
ID | 画像 | ID | 画像 | |
---|---|---|---|---|
player | banner_yellow | |||
frame | banner_lime | |||
red_marker | banner_pink | |||
blue_marker | banner_gray | |||
target_x | banner_light_gray | |||
target_point | banner_cyan | |||
player_off_map | banner_purple | |||
player_off_limits | banner_blue | |||
mansion | banner_brown | |||
monument | banner_green | |||
banner_white | banner_red | |||
banner_orange | banner_black | |||
banner_magenta | red_x | |||
banner_light_blue |
- zoom
- 地図の倍率。
- search_radius
- 構造物を探す距離(チャンク単位)
- skip_existing_chunks
- 生成済みのチャンクをスキップするかどうか(オプション)。デフォルトはtrue。
explosion_decay
{
"function":"explosion_decay"
}
ver1.14で追加
爆発があったときに、爆発力の逆数の確率でアイテムを消す。
furnace_smelt
{
"function":"furnace_smelt"
}
アイテムを精錬後のアイテムに置き換える。
fill_player_head
{
"function":"fill_player_head",
"entity":"this / killer / killer_player / direct_killer"
}
ver1.14で追加
プレイヤーの頭を特定のプレイヤーのものに置き換える。
limit_count
{
"function":"limit_count",
"limit":<4バイト整数値> / $!数値セレクタ!$
}
ver1.14で追加
生成されるアイテムのスタック数に上限を設ける。
looting_enchant
{
"function":"looting_enchant",
"count":<4バイト整数値> / $!数値セレクタ!$,
"limit":<4バイト整数値>
}
ドロップ増加のエンチャントに応じてドロップアイテム数を補正する。limitは上限を指定する。
ver1.13.2までは<数値セレクタ>を次の通り読み替える。
{"max":<4バイト整数値>,"min":<4バイト整数値>}
set_attributes
{
"function":"set_attributes",
"modifiers":[
{
"name":"<Modifier名>",
"attribute":"<Attribute名>",
"operation":"addition / multiply_base / multiply_total",
"amount":<4バイト浮動小数点値> / $!数値セレクタ!$,
"id":"<UUID>",
"slot":"mainhand/offhand/feet/legs/chest/head" / ["<以上のいずれか>"]
}
]
}
アイテムのAttributeを変更する。Attributeについてはこちらを参照。
ver1.13.2までは<数値セレクタ>を次の通り読み替える。
{"max":<4バイト浮動小数点値>,"min":<4バイト浮動小数点値>}
set_contents
{
"function":"set_contents",
"entries":[{<エントリー>}]
}
ver1.14で追加
インベントリのあるブロックのドロップに内容物を追加する。
内容物の指定は、entriesタグ内にルートテーブルのエントリーを並べて行う。
set_count
{
"function":"set_count",
"count":<4バイト整数値> / $!数値セレクタ!$
}
1スタックあたりのアイテムの個数を指定する。
ver1.13.2までは<数値セレクタ>を次の通り読み替える。
{"max":<4バイト整数値>,"min":<4バイト整数値>}
set_damage
{
"function":"set_damage",
"damage":<4バイト浮動小数点値> / $!数値セレクタ!$
}
アイテムの耐久値を設定する。"damage"で指定した数が1.0で耐久最大、0.0で耐久なしとなる。
ver1.13.2までは<数値セレクタ>を次の通り読み替える。
{"max":<4バイト浮動小数点値>,"min":<4バイト浮動小数点値>}
set_loot_table
{
"function":"set_loot_table",
"name":"<ルートテーブルのパス>",
"seed":<4バイト整数値>
}
ver1.14で追加
アイテムにルートテーブルを付与する。
seedはルートテーブルのシード値。ワールドのシード値とは無関係。
set_lore
{
"function":"set_lore",
"lore":["<説明文の1行目>","<説明文の2行目>",…],
"entity":"this / killer / killer_player / direct_killer",
"replace":true / false
}
ver1.14で追加
アイテムの説明文を書き換える。"entity"はテキスト中の@sを置き換えるのに使用する。
エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
replaceは上書きするかどうか。
set_name
{
"function":"set_name",
"name":"<名前>",
"entity":"this / killer / killer_player / direct_killer"
}
ver1.13で追加
アイテムの名前を書き換える。"entity"はテキスト中の@sを置き換えるのに使用する。
エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
set_nbt
{
"function":"set_nbt",
"tag":"<NBTタグ>"
}
アイテムにNBTタグを付与する。引用符(")は\でエスケープしなくてはいけない。
set_stew_effect
{
"function":"set_stew_effect",
"effects":[
{
"type":"<エフェクトID>",
"duration":<4バイト整数値>
}
]
}
ver1.14で追加
怪しげなシチューのエフェクトを指定。エフェクトIDはこちらを参照。
durationは継続時間。
コンディションの一覧
特記がないものはver1.9以降のすべてのバージョンで使用可能。それ以降のバージョンで追加・変更されたものはその都度注記する。
block_state_property
{
"condition":"block_state_property",
"block":"<ブロックID>",
"property":{<そのブロックの状態>}
}
ver1.14で追加
ブロックの種類および状態に対する条件。ブロックIDはこちらを、ブロックの状態はこちらを参照。
damage_source_properties
{
"condition":"damage_source_properties",
"predicate":{$!ダメージの種類共通!$}
}
ver1.14で追加
ダメージの種類に対する条件。
entity_properties
{
"condition":"entity_properties",
"entity":"this / killer / killer_player / direct_killer",
"predicate":{$!エンティティ共通!$}
}
エンティティに対する条件。
エンティティを倒したエンティティへの条件の場合はkiller、エンティティを倒したプレイヤーへの条件の場合はkiller_player、エンティティを直接倒したエンティティへの条件の場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
ver1.13.2までは以下のようであった。
{
"condition":"entity_properties",
"entity":"this / killer / killer_player",
"predicate":{
"on_fire":true / false
}
}
entity_scores
{
"condition":"entity_scores",
"entity":"thisまたはkillerまたはkiller_playerまたはdirect_killer",
"scores":{
"<スコアボードオブジェクト名>":<4バイト整数値> / $!数値セレクタ!$
}
}
スコアボードの値に対する条件。
エンティティを倒したエンティティへの条件の場合はkiller、エンティティを倒したプレイヤーへの条件の場合はkiller_player、エンティティを直接倒したエンティティへの条件の場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
ver1.13.2までは<数値セレクタ>を次の通り読み替える。
{"max":<4バイト整数値>,"min":<4バイト整数値>}
killed_by_player
{
"condition":"killed_by_player",
"inverse":true / false
}
他のエンティティを倒したプレイヤーがいるか(=エンティティがプレイヤーに倒されたか)を判定。inverseをtrueとすると、真偽が反転する。
location_check
{
"condition":"location_check",
"offsetX":<4バイト整数値>,
"offsetY":<4バイト整数値>,
"offsetZ":<4バイト整数値>,
"predicate":{$!位置共通!$}
}
ver1.14で追加
位置に対する条件。
ver1.15からはoffsetX,offsetY,offsetZによって調べる位置の場所をずらすことができる。
match_tool
{
"condition":"match_tool",
"predicate":{$!アイテム共通!$}
}
ver1.14で追加
ツールに対する条件。
random_chance
{
"condition":"random_chance",
"chance":<4バイト浮動小数点値>
}
0~1までの任意の数を生成し、それがchanceに記載した値より小さいときに真となる。
(言い換えれば、chanceの値の確率で真となる)
random_chance_with_looting
{
"condition":"random_chance_with_looting",
"chance":<4バイト浮動小数点値>,
"looting_multiplier":<4バイト浮動小数点値>
}
random_chanceに幸運の効果を反映させたバージョン。
survives_explosion
{
"condition":"survives_explosion"
}
ver1.14で追加
爆発が起きたとき、爆発力の逆数の確率で真となる。
table_bonus
{
"condition":"table_bonus",
"enchantment":"<エンチャントID>",
"chances":[<各エンチャントレベルに対応する確率>]
}
ver1.14で追加
エンチャントレベル毎に定めた確率で真となる。
chancesタグの中には、エンチャントレベルに応じた確率をレベル0(=エンチャントなし)から順に記述する。
time_check
{
"condition":"time_check",
"value":<4バイト整数値> / $!数値セレクタ!$,
"period":<4バイト整数値>
}
ver1.15で追加
現在の時間に対する条件。periodタグがある場合、現在の時間をperiodタグの値で割った余りで判定される。
weather_check
{
"condition":"weather_check",
"raining":true / false,
"thundering":true / false
}
ver1.14で追加
現在の天候に対する条件。
reference
{
"condition":"reference",
"name":"<predicateファイルのパス>"
}
ver1.15で追加
nameに記載したプレディケートが真の時に真となる。
プレディケートについてはこちらを参照。
alternative
{
"condition":"alternative",
"terms":[
<コンディション>
]
}
ver1.14で追加
termsの中に並べたコンディションのうちいずれか一つが真の時に真となる。
inverted
{
"condition":"inverted",
"term":<コンディション>
}
ver1.14で追加
termの後ろに記述したコンディションの真偽を反転させる。
数値セレクタ
ver1.14で追加
数値セレクタは以下の3種類である。
{
"type":"constant",
"value":<4バイト整数値> / <4バイト浮動小数点値>
}
valueの値を返す。
{
"type":"uniform",
"min":<4バイト整数値> / <4バイト浮動小数点値> / <数値セレクタ>,
"max":<4バイト整数値> / <4バイト浮動小数点値> / <数値セレクタ>
}
minとmaxの間の任意の数を返す。
{
"type":"binominal",
"n":<4バイト整数値> / <数値セレクタ>,
"p":<4バイト浮動小数点値> / <数値セレクタ>
}
二項分布(n,p)に従う値を返す。
共通のタグ
アイテム共通
"item":"<アイテムID>"
アイテムのID。
ver1.13以降はこちら、ver1.12.2まではこちらを参照。
"nbt":{<アイテムのデータタグ>}
そのアイテムのデータタグを指定。
データタグについてはこちらを参照。
"tag":"<データパックのタグのパス>"
ver1.13で追加
データパックのタグについてはこちらを参照。
"count":<4バイト整数値>または
"count":{"min":<4バイト整数値>,"max":<4バイト整数値>}
アイテムの個数。
"durability":<4バイト整数値>または
"durability":{"min":<4バイト整数値>,"max":<4バイト整数値>}
アイテムの耐久値。
"enchantments":[{"enchantment":"<ID>","levels":<4バイト整数値>}]または
"enchantments":[{"enchantment":"<ID>","levels":{"min":<4バイト整数値>,"max":<4バイト整数値>}}]
アイテムのエンチャントの種類とそのレベル。
IDについてはこちらを参照。
"stored_enchantments":[{"enchantment":"<ID>","levels":<4バイト整数値>}]または
"stored_enchantments":[{"enchantment":"<ID>","levels":{"min":<4バイト整数値>,"max":<4バイト整数値>}]
ver1.15で追加
エンチャントの本のエンチャントの種類、およびそのレベル。ver1.14.4まではエンチャントの本もenchantmentsタグを用いる。
"potion":"<ポーションの種類>"
ポーションの場合のみ有効。
ポーションの種類は以下の表を参照。
表:ポーションの種類を表す文字列
ポーション | 効果 | 通常 | II | 延長 |
---|---|---|---|---|
未使用のポーション | なし | empty | – | – |
水入り瓶 | なし | water | – | – |
ありふれたポーション | なし | mundane | – | – |
濃厚なポーション | なし | thick | – | – |
奇妙なポーション | なし | awkward | – | – |
暗視のポーション | 暗視 | night_vision | – | long_night_vision |
透明化のポーション | 透明化 | invisibility | – | long_invisibility |
跳躍のポーション | 跳躍力上昇 | leaping | strong_leaping | long_leaping |
耐火のポーション | 火炎耐性 | fire_resistance | – | long_fire_resistance |
俊敏のポーション | 移動速度上昇 | swiftness | strong_swiftness | long_swiftness |
鈍化のポーション | 移動速度低下 | slowness | strong_slowness | long_slowness |
水中呼吸のポーション | 水中呼吸 | water_breathing | – | long_water_breathing |
治癒のポーション | 即時回復 | healing | strong_healing | – |
負傷のポーション | 即時ダメージ | harming | strong_harming | – |
毒のポーション | 毒 | poison | strong_poison | long_poison |
再生のポーション | 再生能力 | regeneration | strong_regeneration | long_regeneration |
力のポーション | 攻撃力上昇 | strength | strong_strength | long_strength |
弱化のポーション | 弱体化 | weakness | – | long_weakness |
幸運のポーション | 幸運 | luck | – | – |
タートルマスターのポーション | 移動速度低下・耐性 | turtle_master | strong_turtle_master | long_turtle_master |
低速落下のポーション | 落下速度低下 | slow_falling | – | long_slow_falling |
位置共通
"biome":"<バイオームID>"
その位置におけるバイオーム。
ver1.13以降のバイオームIDはこちらを、ver1.12.2までのバイオームIDはこちらを参照。
"block":{
"block":"<ブロックID>",
"state":{<ブロックの状態>},
"tag":"<データパックのタグ>",
"nbt":"<NBTタグ>"
}
ver1.15で追加
その位置に存在するブロック。
ブロックIDはこちらを、ブロックの状態はこちらを参照。
"fluid":{
"fluid":"<液体のID>",
"tag":"<データパックのタグ>",
"state":{<状態>}
}
ver1.15で追加
その位置に存在する液体。
液体のIDはこちらを、状態はこちらを参照。
"light":{
"light":<4バイト整数値> / {"max":<4バイト整数値>,"min":<4バイト整数値>}
}
ver1.15で追加
その位置の明るさ。
"smokey":true / false
ver1.16で追加
付近に焚火または魂の焚火があるかどうか。
"position":{
"x":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>},
"y":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>},
"z":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>}
}
その位置の座標。
"dimension":"overworld / the_nether / the_end"
その位置のディメンション。
"structure":"<構造物のID>"
ver1.19から
その位置にある構造物。構造物のIDはこちらを参照。
"feature":"<構造物のID>"
ver1.18.2まで
その位置にある構造物。構造物のIDはこちらを参照。
エンティティ共通
"type":"<エンティティID>"
エンティティのID。
ver1.13以降はこちらを、ver1.12.2まではこちらを参照。
"nbt":"<NBTタグ>"
エンティティのデータタグ。
こちらを参照。
"team":"<チーム名>"
ver1.15で追加
そのエンティティが属するチーム。
"location":{$!位置共通!$}
エンティティのいる場所に対する条件。
"distance":{
"absolute":{
"max":<4バイト浮動小数点値>,
"min":<4バイト浮動小数点値>
},
"horizontal":{
"max":<4バイト浮動小数点値>,
"min":<4バイト浮動小数点値>
},
"x":{
"max":<4バイト浮動小数点値>,
"min":<4バイト浮動小数点値>
},
"y":{
"max":<4バイト浮動小数点値>,
"min":<4バイト浮動小数点値>
},
"z":{
"max":<4バイト浮動小数点値>,
"min":<4バイト浮動小数点値>
}
}
プレイヤーから当該エンティティまでの距離。
absoluteは直線距離、horizontalは水平方向、
xはx軸方向、yはy軸方向、zはz軸方向の距離に対する条件となる。
"effects":{
"<エフェクトID>":{
"amplifier":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
"duration":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>}
}
}
当該エンティティに付与されているエフェクト。
エフェクトIDはこちらを参照。
- amplifier
- エフェクトのレベルを指定する。
- duration
- エフェクトの継続時間をtick(1/20秒)単位で指定する。
"equipment":{
"mainhand":{$!アイテム共通!$},
"offhand":{アイテム共通},
"head":{アイテム共通},
"chest":{アイテム共通},
"legs":{アイテム共通},
"feet":{アイテム共通}
}
ver1.14で追加
当該エンティティの装備しているアイテム。
"flags":{
"is_on_fire":true / false,
"is_sneaking":true / false,
"is_sprinting":true / false,
"is_swimming":true / false,
"is_baby":true / false
}
ver1.14で追加
エンティティに対する条件。
is_on_fireは火がついているかどうか、is_sneakingはスニークしているかどうか、is_sprintingは走っているかどうか、
is_swimmingは水中にいるかどうか、is_babyは子供かどうか。
"player":{
"advancements":{
"<進捗のパス>":true / false,
"<進捗のパス>":{
"<条件の名前>":true / false
}
},
"gamemode":"survival / creative / adventure / spectator",
"level":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>},
"recipes":{
"<レシピのパス>":true / false
},
"stats":[
{
"type":"<統計の名前空間>",
"stat":"<統計のID>",
"value":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>}
}
]
}
ver1.15で追加
エンティティがプレイヤーの場合に使える条件。
- advancements
- 進捗、または進捗解除に必要な特定の条件を取得しているかどうか。
- gamemode
- プレイヤーのゲームモード。
- level
- プレイヤーの経験値レベルに対する条件。
- recipes
- そのレシピが解放されているかどうか。
- stats
- 統計の値に対する条件。名前空間とIDについてはこちらを参照。
"targeted_entity":{$!エンティティ共通!$}
当該エンティティが攻撃したエンティティに対する条件。
"vehicle":{$!エンティティ共通!$}
当該エンティティが乗っているエンティティに対する条件。
ダメージの種類共通
"bypasses_armor":true / false,
"bypasses_invulnerability":true / false,
"bypasses_magic":true / false,
"is_explosion":true / false,
"is_fire":true / false,
"is_magic":true / false,
"is_projectile":true / false,
"is_lightning":true / false
ダメージの種類に対する条件。
- bypasses_armor
- 防具による軽減を受けないダメージかどうか。
- bypasses_invulnerability
- 奈落、またはkillコマンドによるダメージかどうか。
- bypasses_magic
- 空腹、奈落、またはkillコマンドによるダメージかどうか。
- is_explosion
- 爆発系のダメージかどうか。
- is_fire
- 燃焼系のダメージかどうか。
- is_magic
- ステータス効果、ソニックブーム、棘の鎧、または間接攻撃によるダメージかどうか。
- is_projectile
- 発射物によるダメージかどうか。
- is_lightning
- ver1.14で追加。雷によるダメージかどうか。
"direct_entity":{$!エンティティ共通!$}
"source_entity":{$!エンティティ共通!$}
- direct_entity
- 直接ダメージを与えたエンティティ。例えばスケルトンが放った矢がダメージを与えた場合は、矢となる。
- source_entity
- ダメージを与える原因となったエンティティ。他のエンティティによって発射されたエンティティの場合は、発射した方のエンティティが該当する。
例えばスケルトンが放った矢がダメージを与えた場合は、スケルトンとなる。
これらのタグではルートテーブルのコンディションによる条件指定はできない。