NPC の作成
設定項目
isEnabled
NPC が有効かどうかを設定します。
| キー | 値 | デフォルト |
|---|---|---|
isEnabled | Boolean | true |
例
isEnabled: true
name
NPC の表示名を設定します。Color Codes と、多言語サーバー向けの翻訳キーをサポートします。
| キー | 値 | デフォルト |
|---|---|---|
name | String | なし |
例
name: "&aEnn Peecee"

scale
NPC のスケール(サイズ)を設定します。これは背後のエンティティのバニラ属性 generic_scale を通じて適用されます。
| キー | 値 | デフォルト |
|---|---|---|
scale | Multiplier | 1.0 |
スケーリングする際、1.0 がデフォルトのサイズを表します。エンティティを大きくするには値を増やします(例: 1.2)。エンティティを小さくするには値を減らします(例: 0.8)。
例
scale: 1.2
role
NPC の役割(role)を名前の下に設定します。見た目のみです。Color Codes と、多言語サーバー向けの翻訳キーをサポートします。
| キー | 値 | デフォルト |
|---|---|---|
role | String | なし |
例
role: "&c<Red Fellow>"

profession
NPC の職業(profession)を設定します。これは、変装を使用していないときのスキンを設定します。
| キー | 値 | デフォルト |
|---|---|---|
profession | Profession | NITWIT |
例
profession: NITWIT

greetings
プレイヤーが最初に activationRadius に入ったときに NPC が言える挨拶(greeting)のリストを設定します。エントリの 1 つがランダムに選ばれ、NPC の上に浮かぶチャットバブルとして表示されます(そのプレイヤーにのみ見え、約 5 秒間表示されます)。多言語サーバー向けの翻訳キーをサポートします。
挨拶は半径に入った瞬間にのみ発生し、内部に留まっている間に繰り返されることはありません。
| キー | 値 | デフォルト |
|---|---|---|
greetings | String List | なし |
例
greetings:
- Hi there!
- Good day.

dialog
NPC が浮かぶチャットバブルとして言える台詞を設定します。毎回エントリの 1 つがランダムに選ばれます(リストは順番に読まれません)。多言語サーバー向けの翻訳キーをサポートします。
いつ発生するかは interactionType によって異なります。
CHATの NPC は、プレイヤーが右クリックしたときにダイアログの行を言います。- それ以外の
interactionTypeはすべて、プレイヤーがactivationRadius内に留まっている間、近接スキャンのたびにダイアログの行を言います。
行の中にリテラルの \n を入れると、複数行に重ねたバブルに分割されます。
| キー | 値 | デフォルト |
|---|---|---|
dialog | String List | なし |
例
dialog:
- I like apples!
- Sure is hot.

farewell
NPC の別れ(farewell)のメッセージを設定します。エントリの 1 つがランダムに選ばれ、浮かぶチャットバブルとして表示されます。多言語サーバー向けの翻訳キーをサポートします。
別れの言葉は、プレイヤーが NPC から 5 ブロック以内に立ったままインベントリメニューを閉じたときに発生します — 通常はショップ、クエスト、アリーナのメニューを閉じた直後です。プレイヤーが単に activationRadius の外へ歩き出しただけでは発生しません。
| キー | 値 | デフォルト |
|---|---|---|
farewell | String List | なし |
例
farewell:
- Until next time!
- Bye!

canTalk
NPC が話せるかどうかを設定します。false に設定すると、NPC はチャットバブルを一切表示しなくなるため、greetings、dialog、farewell はすべて抑制されます。
| キー | 値 | デフォルト |
|---|---|---|
canTalk | Boolean | true |
例
canTalk: true
activationRadius
NPC がプレイヤーの接近を検知できる範囲(半径)をブロック単位で設定します。
近接は 5 秒ごとにスキャンされます。プレイヤーが半径内にいる間、NPC はそのプレイヤーの方を向くよう回転し、クエストインジケーター(QUEST_GIVER / CUSTOM_QUEST_GIVER の NPC の場合)が表示され、greetings と dialog がトリガーされます。これを 0(またはそれ以下)に設定すると、その NPC の近接検知は完全に無効になります。
| キー | 値 | デフォルト |
|---|---|---|
activationRadius | Double | 3.0 |
例
activationRadius: 3.0
scripts
この NPC に紐付ける Lua スクリプトを設定します。スクリプトファイルは plugins/EliteMobs/npc_scripts/ から読み込まれます。.lua 拡張子は省略可能で、書かなければ自動的に付加されます。
| キー | 値 | デフォルト |
|---|---|---|
scripts | String List | なし |
NPC スクリプトは共有の MagmaCore Lua エンジン上で動作し、次のフックをサポートします:on_spawn、on_tick、on_remove、on_npc_interact、on_npc_proximity_enter、on_npc_proximity_leave、on_zone_enter、on_zone_leave。完全な API と例については Lua NPC スクリプト を参照してください。
npc_scripts/ 内のファイルに解決できないスクリプトファイル名は警告とともにスキップされ、NPC 自体は通常どおりスポーンします。
例
scripts:
- wave.lua
interactionType
NPC が行うインタラクションのタイプを設定します。
| キー | 値 | デフォルト |
|---|---|---|
interactionType | 特殊 [1] | NONE |
例
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Teleporter NPC がプレイヤーをテレポートさせられる以前の場所を持っていない場合、このメッセージを表示します。Color Codes と、多言語サーバー向けの翻訳キーを受け付けます。
| キー | 値 | デフォルト |
|---|---|---|
noPreviousLocationMessage | String | なし |
例
noPreviousLocationMessage: '&8[EliteMobs] &cCouldn''t send you back to your previous location - no previous location found!'

timeout
NPC が永久に消えるまでの時間を分単位で設定します。
| キー | 値 | デフォルト |
|---|---|---|
timeout | Double | 0(消えない) |
例
timeout: 0
questFileName
NPC が与えるカスタムクエストを設定します。CUSTOM_QUEST_GIVER の interactionType が必要です。リストを取るにもかかわらずキーが単数形(questFileName)である点に注意してください。
| キー | 値 | デフォルト |
|---|---|---|
questFileName | String List | なし |
例
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
NPC が持つ LibsDisguises の変装を設定します。
| キー | 値 | デフォルト |
|---|---|---|
disguise | LibsDisguises 形式 | なし |
例
disguise: SKELETON

customDisguiseData
カスタムの LibsDisguises 変装用のデータを設定します。
| キー | 値 | デフォルト |
|---|---|---|
customDisguiseData | LibsDisguises 形式 | なし |
例
disguise: custom:my_cool_disguise_name
customDisguiseData: player my_cool_disguise_name setskin {"id":"364acb6d-9050-46f7-b5fb-f8c3fd83a6fc","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTYxMTk4ODA4Nzc1NSwKICAicHJvZmlsZUlkIiA6ICJkZGVkNTZlMWVmOGI0MGZlOGFkMTYyOTIwZjdhZWNkYSIsCiAgInByb2ZpbGVOYW1lIiA6ICJEaXNjb3JkQXBwIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYmVkODQzNWY4YmYyNzhhZmUyNmU2NGZkOTI2YjhiMzc3MzJkODhlMzM0ODk3ZGJkNTI3ZDU2ZmY5MTk5MGUiCiAgICB9CiAgfQp9","signature":"ujLq1joYVktuQAp1xpFKlxQFUVinSePiDBiVCAxxix/mA5vP86i/eAOfb1mtGjaAZ6sO0l2olbzvycnGXNBtbAxgqprguROXY4tpWiePVTDmy3iD4GdOCxHAkYLoyMV5qTT4SNsldUFFuND8GSEgbNMltKDLmhNKwzm08iCigPfpeuYpwljgJPxu6ka54PKNaQu4doI0ZDZXKqq4hPhR3Bs2Sz9MI0SmdmQWwcCzUz3DFdVno27fmQ6LwqmT+eSoOv0EttVG/XMaTYQ5lhBY61mqf6WlJyYVUSfjJk1AbYsctu7dWM+sbY8jFq5ljvXJGGr5TyKi+fs8vHy06Z2go20QgTYOw+caFxFijAS6fgm3oY57VEO/+/9OLHdD+Z9BrWqQWcIIrVeIfxjue/yt4pyeVv9jX59hjNFjhcPEwotkxJ+vZ96WlTLWDG4BiqauDr2VeGyLlVaygO9ZU0wwsN65iSh91GI3tMIA5wbDR0Hts/9ABvt9eafHbowS+4SZXN0i9mYnKg7op1eiB8nMEAGsPJg3DwsmUrh3ACAapQ6eYHiJpo59RXDqKlRcXwo7wsEFp//5LgQWbPj0NP3nxnywdpozqSAeq6236qlhE9BT9eiyJ41V9sMelYFEWMlUAltR40NdbIrHB0J3nmfuLJz44/sTwWf6P1khOy//XX0="}],"legacy":false}

customModel
NPC が使用する ModelEngine のカスタムモデルを設定します。
| キー | 値 | デフォルト |
|---|---|---|
customModel | String | なし |
例
customModel: MY_MODEL_ONE
arena
NPC がメニューを開く対象のアリーナのファイル名を設定します(ARENA_MASTER の interactionType が必要です)。
| キー | 値 | デフォルト |
|---|---|---|
arena | Filename | なし |
例
arena: my_arena.yml
command
NPC が実行するコマンドを設定します(COMMAND の interactionType が必要です)。コマンドはコンソールとしてではなく、プレイヤーとして実行されます。先頭のスラッシュ(/)は含めないでください。
| キー | 値 | デフォルト |
|---|---|---|
command | String | なし |
例
command: say Look at me running a command, how cool!
![]()
spawnLocation
NPC の単一のスポーン地点を設定します。これは旧来の単一位置キーであり、spawnLocations が存在しないか空の場合にのみ読み取られます。ゲーム内で新しく配置した位置は代わりに spawnLocations に書き込まれるため、そちらのキーを優先してください。
形式は world,x,y,z,yaw,pitch です。
| キー | 値 | デフォルト |
|---|---|---|
spawnLocation | String | なし |
例
spawnLocation: my_world,10,50,10,0,0
spawnLocations
NPC のスポーン地点を設定します。同じ NPC ファイルを複数の場所に配置でき、エントリごとに NPC が 1 体スポーンします。これは /em place npc <npcfilename.yml> コマンドを通じて設定すべきです。このコマンドは現在地(向いている方向を含む)をこのリストに追加し、あわせて isEnabled: true も設定します。
各エントリの形式は world,x,y,z,yaw,pitch です。
| キー | 値 | デフォルト |
|---|---|---|
spawnLocations | String List | なし |
例
spawnLocations:
- my_world,10,50,10,0,0
- my_world,-10,50,-10,0,0
instanced
NPC をインスタンス化するかどうかを設定します(インスタンスダンジョンでの使用向け)。true に設定すると、NPC はブループリントワールドにはスポーンされず、代わりにテンプレートとして登録され、各ダンジョンインスタンス用にクローンされます。各クローンは対応するインスタンスワールド内に存在します。
| キー | 値 | デフォルト |
|---|---|---|
instanced | Boolean | false |
例
instanced: false
syncMovement
NPC のカスタムモデルの移動を、背後のエンティティと同期させるかどうかを設定します。これは customModel が設定されていてモデルが読み込まれている場合にのみ効果があり、素の NPC や LibsDisguises の NPC では無視されます。
| キー | 値 | デフォルト |
|---|---|---|
syncMovement | Boolean | true |
例
syncMovement: true
NPC 設定の例
isEnabled: true
name: "&cRed Rubin"
role: "&a<Generic NPC>"
profession: NITWIT
greetings:
- Hiya!
- Hello!
dialog:
- Great conversation!
- Pleasure talking with you!
farewell:
- Goodbye!
- Laters!
canTalk: true
activationRadius: 4
interactionType: CHAT
timeout: 0
questFileName:
- my_quest.yml #npc interactionType must be set to CUSTOM_QUEST_GIVER
disguise: SKELETON
customDisguiseData: #used when a custom libsdisguise is being set
customModel: MODEL_ONE
arena: my_arena.yml #npc interactionType must be set to ARENA_MASTER
command: say Hello World! #npc interactionType must be set to COMMAND (do not include the leading slash)
spawnLocation: my_world,584,55,127,90,10 #remember that NPCs use pitch and yaw to set where they are looking at. this is also automatically set when running the /em place npc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

特殊 [1]
次は、有効な NPC インタラクションタイプの一覧です。
| タイプ | 説明 |
|---|---|
GUILD_GREETER | 武器スキルボーナスの選択メニューを開く |
CHAT | 右クリックで dialog からランダムな行を言う |
CUSTOM_SHOP | カスタムショップメニューを開く |
PROCEDURALLY_GENERATED_SHOP | 手続き生成ショップを開く |
BAR | 未実装。プレイヤーに機能が近日公開予定であることを伝える。 |
ARENA | 何もしない。代わりに ARENA_MASTER を使用すること。 |
QUEST_GIVER | 手続き生成クエストメニューを開く |
CUSTOM_QUEST_GIVER | questFileName で設定した特定のクエスト用のクエストメニューを開く |
NONE | インタラクションなし |
SELL | 売却メニューを開く |
TELEPORT_BACK | プレイヤーを、直前にいた elitemobs 以外のワールドの場所へテレポートさせる |
SCRAPPER | スクラップメニューを開く |
REPAIRMAN | 修理メニューを開く |
ENCHANTER | エンチャントメニューを開く |
REFINER | 置き換え済み - プレイヤーに機能が置き換えられたことを伝える。管理者には NPC を削除するよう伝える |
SMELTER | 置き換え済み - プレイヤーに機能が置き換えられたことを伝える。管理者には NPC を削除するよう伝える |
ENHANCER | 置き換え済み - プレイヤーに機能が置き換えられたことを伝える。管理者には NPC を削除するよう伝える |
UNBINDER | バインド解除メニューを開く |
ARENA_MASTER | arena で設定したアリーナのアリーナメニューを開く |
COMMAND | command で設定したコマンドを実行する |
SCROLL_APPLIER | エリートアイテムスクロールのメニューを開く。useEliteItemScrolls が無効な間は NPC がそもそもスポーンしない |
ARROW_SHOP | 矢ショップメニューを開く |
GAMBLING_BLACKJACK | ブラックジャックのギャンブルゲームを開く |
GAMBLING_COINFLIP | コインフリップのギャンブルゲームを開く |
GAMBLING_SLOTS | スロットのギャンブルゲームを開く |
GAMBLING_HIGHERLOWER | ハイ&ローのギャンブルゲームを開く |
SCRAPPER や同様のインタラクションタイプが何をするのかについての詳細は こちら をクリックしてください。
NPC の動作に関する注記
NPC には、設定できないハードコードされた動作がいくつかあります。
- AI 無効: NPC は移動もパスファインドもできません。スポーン地点に留まります。ただし、
activationRadius内にいるプレイヤーの方を向くよう、その場で回転はします。 - 役割(role)の表示:
roleのテキストは、NPC の上に浮かぶテキストディスプレイエンティティとして描画されます。垂直方向のオフセットは NPC の描画方法によって異なり、素の NPC では2.52、LibsDisguises の NPC では2.30、customModelを使う NPC では2.3です。 - Bedrock 向けの役割タグ: Bedrock クライアントはテキストディスプレイを描画できないため、ディスガイズされた NPC には役割テキストを持つ不可視のマーカー防具立てが追加され、Bedrock プレイヤーにのみ表示され Java プレイヤーからは隠されます。高さは
config.ymlのbedrockNPCRoleYOffset(デフォルト2.2)で設定します。このフォールバックにはバックエンドサーバー上に Geyser または Floodgate が必要で、プロキシのみの Geyser 構成では無効になります。 - 会話のクールダウン: NPC は、メッセージが重ならないように、発話イベント間で 3 秒待機します。チャットバブルはプレイヤーごとの浮かぶテキストで、約 5 秒後に消えます。チャットメッセージではありません。
- 不可視化: 透明化のポーション効果を受けている NPC はチャットバブルを表示しません。
- チャンクのライフサイクル: NPC はそのチャンクがアンロードされるとデスポーンし、再ロードされるとリスポーンします。NPC のエンティティがワールドに保存されることは決してなく、設定ファイルから再作成されます。
- リネームのブロック: 名札を持った状態で NPC を右クリックしてもキャンセルされ、その NPC はリネームできないとプレイヤーに伝えられます。
