Создание NPC
Настройки конфигурации
isEnabled
Определяет, включен ли NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
isEnabled | Boolean | true |
Пример
isEnabled: true
name
Устанавливает отображаемое имя NPC. Поддерживает цветовые коды и ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
name | String | none |
Пример
name: "&aEnn Peecee"

scale
Устанавливает масштаб (размер) NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
scale | Multiplier | 1.0 |
При масштабировании 1.0 означает размер по умолчанию. Чтобы увеличить сущность, увеличьте значение (например, 1.2). Чтобы уменьшить, уменьшите значение (например, 0.8).
Пример
scale: 1.2
role
Устанавливает роль NPC, отображаемую под именем. Только визуальное. Поддерживает цветовые коды и ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
role | String | none |
Пример
role: "&c<Red Fellow>"

profession
Устанавливает профессию NPC, которая определяет его внешний вид при отсутствии маскировки.
| Ключ | Значения | По умолчанию |
|---|---|---|
profession | Profession | NITWIT |
Пример
profession: NITWIT

greetings
Устанавливает список приветствий, которые NPC произносит при приближении игрока. Поддерживает ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
greetings | String List | none |
Пример
greetings:
- Hi there!
- Good day.

dialog
Устанавливает диалог, который NPC произносит, пока игрок находится рядом (при DIALOG interactionType это будет диалог). Поддерживает ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
dialog | String List | none |
Пример
dialog:
- I like apples!
- Sure is hot.

farewell
Устанавливает прощальное сообщение NPC. Поддерживает ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
farewell | String List | none |
Пример
farewell:
- Until next time!
- Bye!

canTalk
Определяет, может ли NPC разговаривать.
| Ключ | Значения | По умолчанию |
|---|---|---|
canTalk | Boolean | true |
Пример
canTalk: true
activationRadius
Устанавливает радиус, в котором NPC может обнаружить приближающегося игрока.
| Ключ | Значения | По умолчанию |
|---|---|---|
activationRadius | Double | 3.0 |
Пример
activationRadius: 3.0
interactionType
Устанавливает тип взаимодействия NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
interactionType | Special [1] | none |
Пример
interactionType: TELEPORT_BACK
noPreviousLocationMessage
Когда у NPC-телепортатора нет предыдущего местоположения для телепортации игрока, отображается это сообщение. Принимает цветовые коды и ключи перевода для многоязычных серверов.
| Ключ | Значения | По умолчанию |
|---|---|---|
noPreviousLocationMessage | String | none |
Пример
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.
| Ключ | Значения | По умолчанию |
|---|---|---|
questFileName | String List | none |
Пример
questFileName:
- my_quest_one.yml
- my_quest_two.yml
disguise
Устанавливает маскировку LibsDisguises для NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
disguise | LibsDisguises format | none |
Пример
disguise: SKELETON

customDisguiseData
Устанавливает данные для пользовательской маскировки LibsDisguises.
| Ключ | Значения | По умолчанию |
|---|---|---|
customDisguiseData | LibsDisguises format | none |
Пример
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
Устанавливает пользовательскую модель ModelEngine, которую будет использовать NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
customModel | String | none |
Пример
customModel: MY_MODEL_ONE
arena
Устанавливает имя файла арены, для которой NPC откроет меню (требуется interactionType ARENA_MASTER).
| Ключ | Значения | По умолчанию |
|---|---|---|
arena | Filename | none |
Пример
arena: my_arena.yml
command
Устанавливает команду, которую выполнит NPC (требуется interactionType COMMAND). Команды выполняются от имени игрока, а не консоли. Не включайте начальный слеш (/).
| Ключ | Значения | По умолчанию |
|---|---|---|
command | String | none |
Пример
command: say Look at me running a command, how cool!
![]()
spawnLocation
Устанавливает место появления NPC. Рекомендуется устанавливать через команду /em spawnnpc <npcfilename.yml>.
| Ключ | Значения | По умолчанию |
|---|---|---|
spawnLocation | String | none |
Пример
spawnLocation: my_world,10,50,10,0,0
spawnLocations
Устанавливает места появления NPC. Рекомендуется устанавливать через команду /em spawnnpc <npcfilename.yml>.
| Ключ | Значения | По умолчанию |
|---|---|---|
spawnLocations | String List | none |
Пример
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 быть синхронизированным. Используется для управления синхронизацией обновлений позиции NPC.
| Ключ | Значения | По умолчанию |
|---|---|---|
syncMovement | Boolean | false |
Пример
syncMovement: false
Пример конфигурации 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
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 spawnnpc <npcfilename.yml> command, so make sure you pose where you want the NPC to be facing when running the command.

Special [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 | УСТАРЕЛО - Функция удалена, не используйте |
SMELTER | УСТАРЕЛО - Функция удалена, не используйте |
ENHANCER | УСТАРЕЛО - Функция удалена, не используйте |
UNBINDER | Открывает меню отвязки |
ARENA_MASTER | Открывает меню арены для арены, указанной в arenaFilename |
COMMAND | Выполняет команду, указанную в command |
SCROLL_APPLIER | Применяет свитки элитных предметов к предметам |
ARROW_SHOP | Открывает меню магазина стрел |
GAMBLING_BLACKJACK | Открывает азартную игру в блэкджек |
GAMBLING_COINFLIP | Открывает азартную игру с подбрасыванием монеты |
GAMBLING_SLOTS | Открывает азартную игру в слоты |
GAMBLING_HIGHERLOWER | Открывает азартную игру больше/меньше |
Для получения дополнительной информации о SCRAPPER и подобных типах взаимодействия нажмите здесь.
Заметки о поведении NPC
У NPC есть несколько жестко запрограммированных поведений, которые нельзя настроить:
- ИИ отключен: NPC не могут двигаться самостоятельно. Они остаются в своем месте появления.
- Отображение роли: Текст роли отображается на невидимой стойке для брони над NPC на фиксированной высоте.
- Перезарядка диалога: NPC ждут 3 секунды между событиями речи, чтобы предотвратить наложение сообщений.
- Жизненный цикл чанка: NPC исчезают при выгрузке чанка и появляются снова при его загрузке.
