EliteMobs コンテンツの作成
EliteMobs はボス、アイテム、クエストなどの定義に YAML、パワー、NPC スクリプト、ネイティブ行動に Lua を使います。各ファイルを plugins/EliteMobs/ 内の対応するコンテンツフォルダーに置いてください。
コンテンツタイプ
この概要では、8 つの主要コンテンツタイプと、後述の補助定義・スクリプトを扱います。
- カスタムボス - カスタムパワー、装備、能力を持つユニークなエリート MOB を作成
- カスタムアイテム - エンチャント付きのカスタム武器、防具、アイテムをデザイン
- カスタムクエスト - 目標と報酬を伴うクエストチェーンを構築
- カスタムイベント - 時間制またはトリガー式のボスイベントを設定
- カスタム NPC - クエストギバー、ショップ、インタラクティブな NPC を追加
- トレジャーチェスト - カスタム報酬とミミックメカニクスを備えた戦利品チェストを配置
- アリーナ - ボス遭遇を伴うウェーブ形式の戦闘チャレンジをデザイン
- ワームホール - 場所間のテレポーテーションポータルを作成
各コンテンツタイプには、独自の設定フォルダーとフィールド構造があります。
クイックスタート
YAML コンテンツ定義の場合:
- 拡張子 .yml の YAML ファイルを作成する
- lowercase_with_underscores.yml の形式で名前を付ける
- 適切なフォルダーに配置する
- YAML フィールドを使ってコンテンツを設定する
- EliteMobs をリロードするかサーバーを再起動する
ファイルの場所
各コンテンツタイプは、それぞれ独自のフォルダーに保存されます。
- カスタムボス: ~/plugins/EliteMobs/custombosses/
- カスタムアイテム: ~/plugins/EliteMobs/customitems/
- カスタムクエスト: ~/plugins/EliteMobs/customquests/
- カスタムイベント: ~/plugins/EliteMobs/customevents/
- カスタム NPC: ~/plugins/EliteMobs/npcs/
- トレジャーチェスト: ~/plugins/EliteMobs/customtreasurechests/
- アリーナ: ~/plugins/EliteMobs/customarenas/
- ワームホール: ~/plugins/EliteMobs/wormholes/
補助コンテンツには、次のフォルダーもあります。
- パワー: ~/plugins/EliteMobs/powers/
- カスタムスポーン: ~/plugins/EliteMobs/customspawns/
- NPC Lua スクリプト: ~/plugins/EliteMobs/npc_scripts/
- ネイティブ Lua 行動: ~/plugins/EliteMobs/behaviors/
- 移動ルート: ~/plugins/EliteMobs/transport_routes/
- エンチャント定義と Lua: ~/plugins/EliteMobs/enchantments/
- ダンジョンパッケージ: ~/plugins/EliteMobs/content_packages/
- インスタンスワールドの原本: ~/plugins/EliteMobs/world_blueprints/
パッケージ直下の scripts/ は FreeMinecraftModels 用です。EliteMobs の NPC や行動スクリプト用ではありません。パッケージフォルダーの振り分けを参照してください。
コンテンツ作成ツール
WebApp(初心者におすすめ)
EliteMobs WebApp は設定ファイルを生成するビジュアルインターフェースを提供します。出力を各コンテンツタイプの最新リファレンスと照合してください。新しいフィールドや Lua スクリプトは手動編集が必要な場合があります。
手動での YAML 設定
上級者向けには、利用可能なすべてのフィールドやオプションを完全に制御するために、YAML ファイルを手動で作成します。
YAML ファイルの形式
YAML コンテンツ定義には次の規則が適用されます。Lua パワー、NPC スクリプト、行動は別の .lua ファイルです。
- インデントにはタブではなくスペースを使う
- カラーコードで始まる文字列は引用符で囲みます。文字どおりのテキストにはシングルクォートが便利です
- リストはハイフン形式またはブラケット形式を使う
isEnabledは YAML 定義の有効・無効を制御します。デフォルトは種類と既成定義によって異なります。新規ファイルでは明示し、該当リファレンスを確認してください- ファイル名は lowercase_with_underscores.yml の形式を使うべきです
詳細な YAML 構文のヘルプについては、設定ファイルガイド を参照してください。
コンテンツタイプの概要
カスタムボス
カスタムボスは、強化された能力、カスタム装備、特殊なパワーを持つエリート MOB です。ボスシステムは、次を含む 60 以上の設定フィールドをサポートしています。
- エンティティタイプとレベル
- 体力倍率とダメージ倍率
- 装備(防具と武器)
- エリートパワーと能力
- ルートテーブルとドロップ
- スポーン/死亡メッセージとコマンド
- マルチフェーズメカニクス
- カスタムモデルと変装
基本的なボスの例:
isEnabled: true
entityType: ZOMBIE
name: '&e Test Boss'
level: dynamic
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
mainHand: GOLDEN_AXE
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
カスタムアイテム
カスタムアイテムでは、独自のエンチャントや効果を持つ武器、防具、道具を作れます。主な機能:
- マテリアルタイプ
- 表示名とロア
- エンチャントのリスト
- ポーション効果
- カスタムモデル ID
- ドロップの重み(weight)とスケーリング
- レベルとソウルバウンドの設定
基本的なアイテムの例:
isEnabled: true
material: DIAMOND_SWORD
name: '&4Legendary Blade'
lore:
- '&7A powerful weapon'
- '&7forged in dragon fire'
enchantments:
- DAMAGE_ALL,5
- FIRE_ASPECT,2
level: 10
soulbound: true
カスタムクエスト
カスタムクエストはプレイヤーの目標と達成報酬を定義します。主な機能:
- クエストの目標とタイプ
- 報酬(アイテム、お金、権限)
- 受注時/完了時のダイアログ
- NPC への納品要件
- クエストのロックアウトタイマー
- トラッキングとサウンド
カスタムイベント
カスタムイベントは時間、確率、その他の条件でボスを出現させます。主な機能:
- イベントタイプとボスリスト
- トリガー確率と重み(weight)
- 開始時/終了時のメッセージとコマンド
- クールダウンタイマー(ローカルおよびグローバル)
- 最小プレイヤー数
- イベントの継続時間
カスタム NPC
カスタム NPC はクエスト、ショップ、アリーナ向けの対話可能なキャラクターです。主な機能:
- NPC の名前、役割(role)、職業(profession)
- スポーン地点
- ダイアログ(greetings、dialog、farewell)
- インタラクションタイプ
- クエストとアリーナの参照
- カスタムモデルと変装
- NPC Lua フックと巡回ルート
トレジャーチェスト
宝箱は補充時間やミミックの仕組みを設定できる報酬源です。主な機能:
- チェストのタイプと向き
- 場所の座標
- ルートテーブル
- 補充タイマー
- ミミックの確率とボスリスト
- 単独取得またはプレイヤーごとのグループ取得のドロップ方式
アリーナ
アリーナではボスを含むウェーブ形式の戦闘を作れます。主な機能:
- アリーナの境界(corner1、corner2)
- ウェーブ数と遅延
- ボスリストとスポーン地点
- 報酬とプレイヤー数の制限
- アリーナメッセージ
- ウェーブ間休憩(intermission)のウェーブ
ワームホール
ワームホールは 2 地点を結ぶテレポートポータルです。主な機能:
- 2 つの場所のエンドポイント
- 各場所の表示テキスト
- ビジュアルスタイルとパーティクルの色
- コインのコストと権限
- ブラインド効果とサイズ倍率
- 両端に設定できる任意のエンティティモデル
一般的なパターン
コンテンツの参照
コンテンツタイプは、ファイル名を使って互いを参照します。
- ボス内でパワーを参照: power_name.lua(レガシーな
power_name.ymlの参照は、同名の.luaパワーへ自動的に解決されます) - 戦利品内でアイテムを参照:
filename: item_name.yml(確率、数量などについては ルートテーブル の形式を参照) - イベント内でボスを参照: boss_filename.yml
- NPC 内でクエストを参照: quest_filename.yml
定義の再利用
カスタムボス、NPC、移動ルートのファイルは、extends: base_file.yml で同じ種類の別ファイルをベースにし、異なるキーだけを上書きできます。配置と isEnabled は継承されません。詳しいルールは別のボスファイルの再利用と別の NPC ファイルの再利用を参照してください。
プレースホルダー
プレースホルダーは読み取るフィールドに依存します。すべてのメッセージで共通に置換されるわけではありません。
$players- ボス死亡通知における、参加した攻撃者の表示名$distance-locationMessageにおける追跡中のボスまでの距離$eventBossLevel- ボス名の書式付きレベル。レベル不明のプレビューでは?になる場合があります
カラーコード
名前やメッセージに Minecraft のカラーコードを使えます。コードで始まる文字列全体を引用符で囲みます。シングルクォートではバックスラッシュがそのまま保たれます。YAML のダブルクォートも有効です。
標準の Minecraft カラーコード:
- &0 - 黒(Black)
- &1 - 濃い青(Dark Blue)
- &2 - 濃い緑(Dark Green)
- &3 - 濃い水色(Dark Aqua)
- &4 - 濃い赤(Dark Red)
- &5 - 濃い紫(Dark Purple)
- &6 - 金(Gold)
- &7 - 灰色(Gray)
- &8 - 濃い灰色(Dark Gray)
- &9 - 青(Blue)
- &a - 緑(Green)
- &b - 水色(Aqua)
- &c - 赤(Red)
- &d - 明るい紫(Light Purple)
- &e - 黄色(Yellow)
- &f - 白(White)
書式コード:
- &l - 太字(Bold)
- &m - 取り消し線(Strikethrough)
- &n - 下線(Underline)
- &o - 斜体(Italic)
- &r - リセット(Reset)
エリートパワーシステム
EliteMobs は 71 種類のエリートパワーを同梱しています。そのうち 68 種類は Lua ファイル(*.lua)で、YAML のままなのは bonus_coins.yml、custom_summon.yml、elite_script.yml の3つだけです。パワーはボス設定内でファイル名によって参照され、レガシーな .yml 参照は同名の .lua パワーへ自動的に解決されます。パワーの作成を参照してください。
パワーのカテゴリー
パワーが属するカテゴリーはその powerType であり、自然発生のエリートがそのパワーを抽選できるかどうかも決定します。
攻撃(Offensive):
arrow_fireworks, arrow_rain, attack_arrow, attack_fire, attack_fireball, attack_freeze, attack_gravity, attack_lightning, attack_poison, attack_push, attack_vacuum, attack_wither, fireworks_barrage, lightning_bolts, taze
防御(Defensive):
invulnerability_arrow, invulnerability_fall_damage, invulnerability_fire, invulnerability_fireworks, invulnerability_knockback, shield_wall
その他(Miscellaneous):
attack_blinding, attack_confusing, attack_weakness, attack_web, bonus_loot, channel_healing, corpse, frost_walker, ground_pound, implosion, invisibility, moonwalk, movement_speed, taunt
メジャーパワー(エンティティタイプ固定):
MAJOR_ZOMBIE:zombie_bloat,zombie_friends,zombie_necronomicon,zombie_parentsMAJOR_SKELETON:bullet_hell,skeleton_pillar,skeleton_tracking_arrowMAJOR_BLAZE:firestorm,flame_pyreMAJOR_ENDERMAN:plasma_blasterMAJOR_GHAST:tracking_fireball
ユニーク(ボスが名前で指定したときにのみ適用):
death_slice, flamethrower, frost_cone, gold_explosion, gold_shotgun, hyper_loot, meteor_shower, photon_ray, spirit_walk, summon_embers, summon_the_returned, thunderstorm、およびエンダードラゴンの10種類のパワー: ender_dragon_aimed_fireball, ender_dragon_arrow_bombardment, ender_dragon_disco_fireballs, ender_dragon_empowered_lightning, ender_dragon_ender_fireball_bombardment, ender_dragon_endermite_bombardment, ender_dragon_fireball_bombardment, ender_dragon_potion_bombardment, ender_dragon_shockwave, ender_dragon_tornado
引き続き YAML:
bonus_coins.yml、custom_summon.yml(増援システム)、elite_script.yml
パワーは powers リストフィールドを使ってボスに追加されます。
powers:
- invulnerability_knockback.lua
- flame_pyre.lua
- spirit_walk.lua
高度な機能
マルチフェーズボス
ボスは、個別の設定ファイルを持つ複数のフェーズを持つことができます。phases フィールドを使ってフェーズボスのファイルを参照し、phaseSpawnLocation を使ってフェーズ移行が発生する場所を設定します。
エリートスクリプト
EliteScript はイベント駆動のアクション、条件、クールダウンを提供します。YAML 版はボスの eliteScript フィールドを使います。Lua パワーは別の .lua ファイルで、powers から参照します。パワーの作成を参照してください。
カスタムモデル
ボスと NPC のエンティティモデルには customModel を使います。アイテムには customModelV2、equipmentModelID、fmmItemModel などの専用フィールドがあります。カスタムアイテムを参照してください。エンティティとアイテムのモデル設定は別です。
ボスの装備
ボスの装備フィールドには Minecraft のマテリアル名を指定します。カスタムアイテムファイルやその EliteMobs ステータスは読み込みません。
helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
コマンドの実行
ボスは特定のイベント時にコマンドを実行できます。
- onSpawnCommands - ボスがスポーンしたときに実行
- onDeathCommands - ボスが倒されたときに実行
- onCombatEnterCommands - 戦闘が始まったときに実行
- onCombatLeaveCommands - 戦闘が終わったときに実行
ボスのメッセージ
ボスのアナウンスをカスタマイズします。
- spawnMessage - ボスがスポーンしたときにブロードキャスト
- deathMessage - ボスが倒されたときにブロードキャスト($players プレースホルダーをサポート)
- escapeMessage - ボスが逃走したときにブロードキャスト
- locationMessage - ボスまでの距離を表示($distance プレースホルダーをサポート)
- deathMessages - 攻撃者が記録されているボスの死亡時に、順番に送る行の一覧。空でなければ deathMessage より優先されます。ランダム選択ではありません
announcementPriority(0〜3)は通知先、追跡、DiscordSRV 転送を制御します。死亡通知は 0 なら記録された攻撃者へ、正の値ならサーバー全体へ送られます。3 は設定済みの DiscordSRV 連携にも転送します。スポーン通知と追跡には別の規則があります。
リージョナルボス
リージョナルボスは isRegionalBoss フィールドを使用し、リーシュ半径、スポーン制限、ブロック状態の変更を持つことができます。
- leashRadius - スポーン地点からの最大距離
- onSpawnBlockStates - ボスがスポーンしたときのブロックの変更
- onRemoveBlockStates - ボスを倒したときのブロック変更。通常のアンロード、デスポーン、リセットでは討伐後の状態を適用しません
自動クラスドロップ
クラスドロップはプレイヤーのクラスに応じた、レベル調整済み報酬を提供します。戦闘ランクと難易度別の予算により、報酬品質をボスの体力・ダメージと別に調整できます。カスタムアイテム系統で独自の名前、素材、説明文、モデルを用意できます。
戦利品の設定
ボスのドロップを制御します。
dropsEliteMobsLoot- 通常の生成ドロップとコインの処理を有効にします(デフォルトtrue)。作成済みドロップやクラスドロップ全体のスイッチではありませんdropsVanillaLoot- バニラのドロップを有効にします(デフォルトtrue)dropsRandomLoot- 通常のドロップ処理内でランダム生成を有効にします(デフォルトtrue)uniqueLootList- 上記スイッチとは別に処理する、作者指定のドロップ項目classLoot- 自動クラスドロップを別途制御します。全体設定と資格条件も適用されます
例:
uniqueLootList:
- filename=custom_sword.yml:chance=1.0
- filename=rare_helmet.yml:chance=0.05:amount=1
レガシーの短縮形 custom_sword.yml:1 も引き続き解析されますが、コロンの後の数値は数量ではなくドロップ確率です(1 = 100%)。数量には amount= を使用してください。オプションの完全な一覧はルートテーブルを参照してください。
既成コンテンツ
EliteMobs はほとんどのコンテンツタイプについて既成の設定を同梱しており、初回起動時にそれらを通常のコンテンツフォルダーへ直接書き出します — ディスク上に独立した /premade/ フォルダーはありません。生成されるファイル(ボスは custombosses/、アイテムは customitems/、NPC は npcs/ など)は通常の YAML であり、独自コンテンツを作る際の動作例として役立ちます。
既成のパッケージ定義もプラグインに同梱されます。ダンジョンワールドと追加コンテンツは /em setup からダウンロードしてインストールします。ダンジョンパッケージャーを参照してください。
ヘルプを得るには
- 特定のコンテンツ作成ガイドについてはサイドバーを確認してください
- コミュニティのサポートについては EliteMobs Discord を訪れてください
- ソースコードの例については GitHub リポジトリ を確認してください