【1.20.1対応】コピペで動く!AIでLootJSスクリプトを自動生成(釣り編)

KubeJS

マイクラの「釣り」、序盤は食料集めに便利ですが、後半になると「ただのゴミ拾い」になってしまっていませんか?

この記事では、大人気Mod「LootJS」と「KubeJS」を組み合わせて、いつもの釣りを「超激レア武器が釣れるガチャ」へと魔改造する方法を解説します! さらに今回は特別編!お友達と遊ぶマルチサーバーで絶対に盛り上がる、「ハズレ枠を引くと、魚の代わりにゾンビが釣り上げられて顔面に飛んでくる」という恐怖のドッキリギミックの作り方も大公開します。

優秀なAI(Gemini 2.5 Flashなど)を活用すれば、一見難しそうな「モブの召喚」もコピペで一瞬です。あなただけの釣りガチャを作って、サーバーの仲間を驚かせましょう!

(※サーバーの土台作りやKubeJSの導入がまだの方はこちらの記事からどうぞ👇)

【1.20.1対応】ConoHa VPSでマイクラ独自環境を作るMOD!KubeJS・MoreJS・LootJS導入完全ガイド
1. はじめに:KubeJSを駆使してマイクラを「独自環境」に魔改造する2. マルチプレイで独自環境を楽しむなら「ConoHa VPS」一択な理由3. ConoHa VPSでマイクラサーバーを立ち上げる3ステップ4. サーバーにKubeJS…

【重要】当サイトの動作確認環境

マイクラのModは、バージョンが少し違うだけでコードが動かなくなることがよくあります。この記事のスクリプトは、以下の環境で動作確認を行っています。

  • Minecraftバージョン: 1.20.1
  • 前提Mod: Forge
  • 使用Mod: KubeJS, LootJS(※今回は必須です!)
  • 環境: ConoHa VPS

※バージョンが大きく異なる場合、コードのままではエラーになる可能性があるためご注意ください。

1. 実践①:釣りを「ガチャ」に変える!(LootJSの活用)

まずはLootJSを使って、釣りの「ゴミ枠(革のブーツなど)」を消し去り、自作した「銀の剣」が超低確率で釣れるようにします。アイテム変更のスクリプトなので server_scripts フォルダを使用します。

FTPソフト等でサーバーに接続し、kubejs ➔ server_scripts フォルダの中に、新しく fishing_gacha.js というファイルを作成して以下のコードを貼り付けてください。

fishing_gacha.js 用のコード ▼

JavaScript

LootJS.modifiers(event => {
    // ① ゴミ枠(junk)から革のブーツを削除
    event.addLootTableModifier('minecraft:gameplay/fishing/junk')
         .removeLoot('minecraft:leather_boots');

    // ② お宝枠(treasure)に銀の剣を追加(1%の確率)
    event.addLootTableModifier('minecraft:gameplay/fishing/treasure')
         .randomChance(0.01)
         .addLoot('kubejs:silver_sword');
});

【💡 コードのプチ解説:なぜ treasure を指定するの?】 実はマイクラの釣りルートテーブルは、大元の fishing の下に「魚(fish)」「ゴミ(junk)」「お宝(treasure)」という3つのサブテーブルが設定されています。 今回のようにあえて fishing/treasure(お宝枠)を指定してアイテムを追加すると、釣竿に「宝釣り(Luck of the Sea)」のエンチャントを付けた時に、しっかり「銀の剣」が釣れる確率がアップするというバニラ本来の仕様を活かすことができます!

2. ⚠️【超重要】KubeJSの罠!イベント処理はフォルダを分けよう

ここからが本番!ハズレ枠でゾンビを釣るドッキリを仕込みますが、ここで初心者が100%つまずくKubeJS最大の罠を解説します。

LootJS(アイテム変更)は server_scripts で動きますが、「ゾンビを召喚する」といったマイクラの根幹に関わるJavaイベント(ForgeEvents)は、startup_scripts フォルダの中に書かないと絶対にエラー(ReferenceError)になってクラッシュします!

そのため、ゾンビ用のファイルは別の場所に作ります。 サーバーの kubejs ➔ startup_scripts フォルダの中に、新しく fishing_trap.js というファイルを作成し、以下のコードを貼り付けてください。

fishing_trap.js 用のコード ▼

JavaScript

// 魚を釣り上げた瞬間のイベントを検知(※必ず startup_scripts に入れること!)
ForgeEvents.onEvent('net.minecraftforge.event.entity.player.ItemFishedEvent', event => {
    // 10%の確率でドッキリ発動!
    if (Math.random() < 0.1) {
        let player = event.getEntity();
        let level = player.level;
        let hook = event.getHookEntity(); // 釣竿のウキ(ルアー)
        
        // ウキがあった位置にゾンビを準備
        let zombie = level.createEntity('minecraft:zombie');
        zombie.setPosition(hook.x, hook.y, hook.z);
        
        // プレイヤーとウキの距離を計算する
        let dx = player.x - hook.x;
        let dy = player.y - hook.y;
        let dz = player.z - hook.z;
        
        // ゾンビに速度を与えてプレイヤーに引き寄せる(一本釣り!)
        zombie.setMotion(dx * 0.1, dy * 0.1 + 0.5, dz * 0.1);
        
        // ゾンビを世界に出現させる
        zombie.spawn();
        
        // 本来釣れるはずだったアイテムを消滅させる
        event.setCanceled(true); 
        // 釣竿の耐久値を1減らす
        event.damageRodBy(1); 
    }
});

【💡 コードの面白ポイント!】 zombie.setMotion の部分がこのギミックの要です!ただ水面に出現するだけでなく、物理演算でプレイヤーに向かって飛んでくる速度を与えています。「釣り上げた瞬間に、ビターン!とゾンビが顔面に飛んでくる」という超リアルな一本釣りを再現できます。

3. ゲームを「完全再起動」してドッキリを仕掛けよう!

ファイルの保存が終わったら、以下の2つのファイルがサーバーの正しい場所にあるか確認しましょう。

  1. アイテムガチャ用: kubejs ➔ server_scripts ➔ fishing_gacha.js
  2. ゾンビ一本釣り用: kubejs ➔ startup_scripts ➔ fishing_trap.js

【要注意】再起動について server_scripts の内容は /reload コマンドですぐに反映されますが、今回は startup_scripts(起動時読み込み)のコードを追加したため、マイクラ本体とサーバーの「完全再起動」が必須になります!

再起動後、さっそく釣竿を持って水辺に向かってみましょう。 宝釣りエンチャントを付けた竿で「銀の剣」を狙いつつ、10%の確率を引き当てて水面から突然ゾンビが飛んできたら大成功です!

まとめ:アイテムだけじゃない!AIならギミックも自由自在

LootJSの細やかなアイテム変更と、KubeJSのイベント機能を組み合わせれば、マイクラのシステムを根底から覆すような面白ギミックが作れます。

「えっ!?なんでゾンビ釣れたの!?」と驚く友達の顔を見るために、ぜひこの釣りガチャ&ドッキリギミックをサーバーに仕込んでみてくださいね!

▼ 安定したマイクラサーバー構築ならこの環境! ▼ こだわりのMod環境を安定して動かすなら、当ブログでも使っているConoHa VPSが一番手軽で確実です。設定ファイルの編集も簡単に行えるので、ぜひ皆さんも最高の独自ワールドを構築してみてくださいね!

コメント

タイトルとURLをコピーしました