【KubeJS】NBT・エンチャント付きのカスタムレシピを追加する方法を解説【マイクラJE】

はじめに

KubeJSは、MinecraftJEにおいて簡単にレシピの追加・アイテムの追加などを行えるMODとして知られています。特に、カスタムアイテムの追加に関してMODを介さない方法としては数少ない手段であり、手軽に追加を行いたい人にとっては重宝するもの。

Character
データパックよりだいぶ自由度が高いです

さて、このKubeJSですが、完成品に特定のNBTタグをつけたいと思うことがあるでしょう。本記事では、エンチャントを例にNBTつきのレシピの定義方法を解説します。

  • なお、本記事の内容はKubeJSに限ったものではなく、一般的に使えます

スクリプト

以下は、エンチャント付きのアイテムを出力するかまどのレシピの例です。これを任意の名前のjsファイルとして、server_scriptsフォルダ内に配置してください:

Copied!
ServerEvents.recipes(event => {
    event.smelting(
        Item.of('minecraft:enchanted_book').withNBT({  //NBT定義
        StoredEnchantments: [
            {
            id: "minecraft:sharpness",
            lvl: 5 // レベル
            }
        ]
        }),
        'minecraft:lapis_block' // 入力
    )
})

このように、withNBTを用いることで任意のNBTのついたアイテムの出力が可能になります。エンチャントの部分は、StoredEnchantmentsの部分で定義しています。ここを変更することで、任意のエンチャントの設定が可能になります。

確認

実際に上記を保存してゲームを起動すると、以下のようになることが確認できると思います:

ラピスラズリブロックを焼くことで「ダメージ増加」のエンチャントがついた本が完成していることが分かりますね。

今回はかまどのレシピでしたが、スクリプトを変えることで任意のレシピを定義できます。

応用

なお、レシピのスクリプトの書き方については、下記の記事が参考になるかと思います:

これはMODにおけるカスタムレシピですので、そのまま流用するわけにはいきませんが、一般的に

Copied!
ServerEvents.recipes(event => {
    event.custom({
        // ここにレシピのJSONをそのまま入れる
    })
})

といった形を用いることで、KubeJSに対応したレシピを定義することが可能になります。

最新情報をチェックしよう!