マルチプレイなら『シン・VPS』がおすすめ!

【マイクラ】set_loot_tableで中身を決定する【item_modifier】

【マイクラ】set_loot_tableで中身を決定する【item_modifier】

この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

こんにちは!
マインクラフターのなつめです。

なつめ

2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!

この記事では、こんな疑問を解決します!

本記事の内容
  • set_loot_tableでルートテーブルを指示する
  • 実例

set_loot_tableはルートテーブルを指示し、対象となったものに適用します。

具体的にはチェストなどのアイテムを格納できるアイテムに対して適用することで、その中身を指定したルートテーブルに沿った内容に変更するものです。

set_loot_tableを使えるようになると、ランダム性のあるものを扱える幅が広がります。
なので、ぜひ参考にしてくださいね。

さっそく見ていきましょう!

本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。

set_loot_tableでルートテーブルを指示する

set_loot_tableはその名の通り、ルートテーブルを指示するためのものです。

例えば、手に持っているチェストに対して適用させることで、そのチェストにはルートテーブルがセットされます。

この状態で設置し開封すると、そのルートテーブルに従った内容が補充されています。

開封するまではルートテーブルが定められているだけで中身は決まっていません。
そのため、設置して開けるごとに内容は異なります。

指示するルートテーブルはデフォルトに備わっているものでも良いですし、自作したものを指示することも可能です。

かなり自由なことが出来るので、ルートテーブルの作成方法と共に覚えておきたい項目と言えますね。

実例

実際の例を見ていきます。

まずはデータパックの構造からです。

  • データパック本体
    • data
      • minecraft
        • loot_tables
          • entities
            • cod.json
      • フォルダー
        (今回はsampleと命名したとする)
        • item_modifiers
          • jsonファイル
            (今回はtest.jsonと命名したとする)
    • pack.mcmeta

cod.jsonはタラのデフォルトのドロップ品を上書きする形で、もう一方のjsonファイルについてはitem_modifierとして作成する場合の構造となっています。

それぞれ見ていきましょう。

タラのドロップアイテムを変更した場合

タラのドロップアイテムをチェストに変更しつつ、そのチェストにルートテーブルを適用したものが以下になります。

{
  "type": "minecraft:entity",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "minecraft:chest",
          "functions": [
            {
              "function": "minecraft:set_loot_table",
              "type": "minecraft:chest",
              "name": "minecraft:chests/village/village_desert_house"
            }
          ]
        }
      ]
    }
  ]
}

ルートテーブルの指定は砂漠の村の家のものと同じになるようにしており、”minecraft:chests/village/village_desert_house”の部分がそうですね。

この部分を自作したものに合わせれば、自分が作成したルートテーブルを適用させることが出来ます。

また、typeの部分は適用するものに合わせるのが一般的です。
そのため今回は”minecraft:chest”となっています。

生成サイトはこちら。
1から記述するよりも圧倒的に簡単です。

生成サイトはこちら!

item_modifierとして作成する場合

item_modifierとして作成する場合は、以下のような記述になります。

[
  {
    "function": "minecraft:set_loot_table",
    "type": "minecraft:chest",
    "name": "minecraft:chests/ancient_city"
  }
]

上記の例では古代都市のチェスト内容になるよう、指示をしています。

ルートテーブルに組み込む場合と記述する内容に差はなく、itemコマンドで適用させる際は以下のようなコマンドを実行すればOKです。

/item modify entity @s weapon.mainhand sample:test

まとめ

というわけで、今回のまとめです。

ポイント
  • set_loot_tableではルートテーブルを適用させることができ、チェストの中身などを決定することが出来る。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】