ルートテーブル

提供:Minecraft Japan Wiki
ナビゲーションに移動 検索に移動

ルートテーブル(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バイト整数値

ルートテーブルの記法[編集 | ソースを編集]

ルートテーブルの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",
    "properties":{
        "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は子供かどうか。


"targeted_entity":{"$!エンティティ共通!$"}

当該エンティティが攻撃したエンティティに対する条件。


"vehicle":{"$!エンティティ共通!$"}

当該エンティティが乗っているエンティティに対する条件。


"type_spedific":{
    "type":"player" / "fishing_hook" / "lightning_bolt" / "cat" / "frog" / "slime",
    "<固有のタグ>":<値>
}

ver1.19から
特定のエンティティに対して有効な条件。typeの値に対応する固有のタグは以下の通り。


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バイト整数値>}
        }
    ],
    "looking_at":{"$!エンティティ共通!$"}

プレイヤーに対する条件。

advancements
進捗、または進捗解除に必要な特定の条件を取得しているかどうか。
gamemode
プレイヤーのゲームモード
level
プレイヤーの経験値レベルに対する条件。
recipes
そのレシピが解放されているかどうか。
stats
統計の値に対する条件。名前空間とIDについてはこちらを参照。
looking_at
プレイヤーの視線の先にあるエンティティに対する条件。


fishing_hookの場合:

    "in_open_water":true / false

釣り竿の浮きに対する条件。

in_open_water
浮きの周囲5×4×5ブロックが水か空気であるかどうか。デフォルトでは「宝」カテゴリのアイテムが釣れるかどうかの判定に用いられている。


lightning_boltの場合:

    "blocks_set_on_fire":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
    "entity_struck":{"$!エンティティ共通!$"}

雷に対する条件。

blocks_set_on_fire
雷によって発火したブロックの個数に対する条件。
entity_struck
雷が当たったエンティティに対する条件。


catの場合:

    "variant":"<ネコの種類>"

ネコに対する条件。

variant
ネコの種類を指定。可能な値はネコのデータタグvariantに指定できるものと同じ。


frogの場合:

    "variant":"<カエルの種類>"

カエルに対する条件。

variant
カエルの種類を指定。可能な値はカエルのデータタグvariantに指定できるものと同じ。


slimeの場合:

    "size":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>}

スライムマグマキューブに対する条件。

size
大きさを指定。


"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バイト整数値>}
        }
    ],
    "looking_at":{"$!エンティティ共通!$"}
}

ver1.15からver1.18.2まで(looking_atはver1.17から)
エンティティがプレイヤーの場合に使える条件。上記「playerの場合」を参照。


"fishing_hook":{
    "in_open_water":true / false
}

ver1.16からver1.18.2まで
釣り竿の浮きに対する条件。上記「fishing_hookの場合」を参照。


"lightning_bolt":{
    "blocks_set_on_fire":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
    "entity_struck":{"$!エンティティ共通!$"}
}

ver1.17からver1.18.2まで
雷に対する条件。上記「lightning_boltの場合」を参照。


"catType":"<ネコの種類>"

ver1.14からver1.18.2まで
ネコに対する条件。ネコの種類は以下の通り。

クリックして表示
種類
minecraft:textures/entity/cat/tabby.png キジトラ
minecraft:textures/entity/cat/tuxedo.png 白黒
minecraft:textures/entity/cat/red.png チャトラ
minecraft:textures/entity/cat/siamese.png シャム
minecraft:textures/entity/cat/british_shorthair.png ブリティッシュショートヘア
minecraft:textures/entity/cat/calico.png 三毛
minecraft:textures/entity/cat/persian.png ペルシャ
minecraft:textures/entity/cat/ragdoll.png ラグドール
minecraft:textures/entity/cat/white.png 白ネコ
minecraft:textures/entity/cat/jellie.png キジ白
minecraft:textures/entity/cat/all_black.png


ダメージの種類共通[編集 | ソースを編集]

"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
ダメージを与える原因となったエンティティ。他のエンティティによって発射されたエンティティの場合は、発射した方のエンティティが該当する。
例えばスケルトンが放った矢がダメージを与えた場合は、スケルトンとなる。
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。