Создание боссов
Создание пользовательских боссов
Перед началом
Куда помещаются файлы боссов?
Файлы боссов помещаются в папку конфигурации ~/plugins/EliteMobs/custombosses.
Можно создавать подпапки, например ~/plugins/EliteMobs/custombosses/mybosses. Это рекомендуется для поддержания порядка.
Один файл описывает одного босса, однако одного и того же босса можно призывать несколько раз и даже задать несколько точек появления для одного файла босса.
Для создания пользовательских боссов и другого контента можно воспользоваться Forge.
Минимально возможная конфигурация
Минимально возможный файл конфигурации пользовательского босса выглядит так:
Обратите внимание: это просто пустой файл. Он всё равно создаст пользовательского босса-зомби с пользовательским именем, поскольку таковы значения по умолчанию. Всё на этой странице необязательно!
Повторное использование другого файла босса
Файл босса может взять за основу другой файл босса с помощью extends и изменить только то, что отличается:
extends: my_base_boss.yml
name: '&cEnraged Copy'
healthMultiplier: 3
Файл наследует все значения базового файла и переопределяет ключи, которые задаёт сам. Вложенные разделы, например patrol, объединяются по отдельным ключам; список, например uniqueLootList, целиком заменяет список базового файла. Указывайте базовый файл только по имени, без пути к папке. Это должен быть другой файл в custombosses, включая её подпапки, и он сам может расширять ещё один базовый файл.
isEnabled, spawnLocation, spawnLocations, leashRadius, powers и eliteScript никогда не наследуются, поэтому задавайте их в каждом файле, которому они нужны. Базовый файл с isEnabled: false работает как шаблон: сам он заспавниться не может, но расширяющие его файлы всё равно загружаются. EliteMobs не записывает значения по умолчанию в файл, использующий extends, поэтому он остаётся таким же коротким, каким вы его написали. Отсутствующий базовый файл, путь в extends или замкнутый круг ссылок extends отключают файл с предупреждением в консоли.
Пример босса
Давайте посмотрим на пример того, как выглядит файл босса.
Пример
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"
Основные настройки
isEnabled
Определяет, включён ли босс.
| Ключ | Значения | По умолчанию |
|---|---|---|
isEnabled | true / false | true |
Пример
isEnabled: true
entityType
Задаёт тип сущности босса. Это должен быть создаваемый тип живого существа с зарегистрированными свойствами моба EliteMobs.
| Ключ | Значения | По умолчанию |
|---|---|---|
entityType | Выберите отсюда. Значение также должно присутствовать в папке ~plugins/EliteMobs/mobproperties. | ZOMBIE |
Магмовые кубы и слизни
Поскольку эти типы сущностей не атакуют игроков напрямую, а наносят урон при контакте, это может приводить к большим всплескам урона за короткое время. Поэтому мы, как правило, не рекомендуем часто использовать их в качестве элитных мобов. Однако, если вы всё же хотите их использовать, мы советуем задать damageMultiplier примерно равным 0.1.
Мы также рекомендуем использовать следующий EliteScript, чтобы магмовые кубы и слизни не удерживали игроков в непрерывном оглушении:
eliteScript:
NerfDamage:
Events:
- ZoneEnterEvent
- ZoneLeaveEvent
Zone:
shape: SPHERE
radius: 1
Target:
targetType: SELF
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 10
Пример
entityType: ZOMBIE
name
Задаёт имя босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
name | String, принимает color codes и перечисленные ниже плейсхолдеры | "Default Name" |
Пример
name: "$normalLevel &cCool boss!"

Если вы хотите включить уровень босса в поле имени, просто используйте один из следующих плейсхолдеров.
| Плейсхолдер | Описание | Пример | Результат (для босса 10 уровня) |
|---|---|---|---|
$level | Заменяется на уровень | "$level Cool boss" | 10 Cool boss |
$normalLevel | Заменяется на уровень, оформленный для обычных мобов | "$normalLevel Cool boss" | [10] Cool boss |
$minibossLevel | Заменяется на уровень, оформленный для минибоссов | "$minibossLevel Cool boss" | 〖10〗 Cool boss |
$bossLevel | Заменяется на уровень, оформленный для боссов | "$bossLevel Cool boss" | 『10』 Cool boss |
$reinforcementLevel | Заменяется на уровень, оформленный для подкреплений | "$reinforcementLevel Cool boss" | 〔10〕 Cool Boss |
$eventBossLevel | Заменяется на уровень, оформленный для боссов событий | "$eventBossLevel Cool boss" | 「10」 Cool boss |
Пример
name: "$normalLevel &cCool boss!"

level
Задаёт уровень босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
level | Положительные Integer числа или dynamic | dynamic |
dynamic берёт наибольший уровень естественного появления, рассчитанный для игроков в том же мире в пределах 16 * (дальность прорисовки сервера + 2) блоков, но не ниже 1. Зарегистрированные динамические боссы пересчитываются каждые 5 секунд, поэтому уровень может меняться после появления. Явно заданный при создании уровень переопределяет это поведение. Для региональных боёв со стабильной сложностью используйте фиксированный уровень.
Пример
level: 1
scale
Задаёт масштаб (размер) босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
scale | Multiplier | 1.0 |
При масштабировании 1.0 соответствует размеру по умолчанию. Чтобы сделать сущность крупнее, увеличьте значение (например, 1.2). Чтобы сделать сущность меньше, уменьшите значение (например, 0.8).
Пример
scale: 1.2
bossType
Классифицирует босса для таких систем, как автоматическая классовая добыча. Отображение здоровья использует healthMultiplier и настройки MobCombatSettings.yml, а не эту метку.
| Ключ | Значения | По умолчанию |
|---|---|---|
bossType | NORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENT | NORMAL |
Для автоматической классовой добычи MINIBOSS задаёт ранг минибосса, BOSS и EVENT задают ранг босса, а обычные боссы используют ранг рядового моба. classLootRank может переопределить этот выбор.
REINFORCEMENT задаётся в конфигурации и не назначается автоматически каждому призванному существу. Отслеживание подкреплений и ездовых существ во время работы отдельно определяет их право на награды.
Пример
bossType: MINIBOSS
silent
Определяет, должны ли звуки босса быть отключены.
| Ключ | Значения | По умолчанию |
|---|---|---|
silent | Boolean | false |
При true отключает собственные звуки живой сущности Minecraft. Отдельно воспроизводимые звуки скриптов и музыка босса от этого флага не зависят.
Пример
silent: true
healthMultiplier
Умножает здоровье босса. Отображение здоровья также учитывает это значение: отдельная полоса босса требует включённого displayBossBarForHighMultiplier и множителя выше bossBarHealthMultiplierThreshold в MobCombatSettings.yml.
| Ключ | Значения | По умолчанию |
|---|---|---|
healthMultiplier | Multiplier | 1.0 |
Экспоненциальное базовое здоровье сначала ограничивается пределом сервера. Затем EliteMobs применяет healthMultiplier, устанавливает минимум 1 HP и снова ограничивает результат значением settings.attribute.maxHealth.max из spigot.yml. При запуске EliteMobs повышает этот параметр до 2048, если он ниже, но не выше 2048. Поэтому на сервере с настройками по умолчанию предел равен 2048.
Эти пределы относятся к базовому расчёту. Если в инстансе участвуют хотя бы два игрока, его боссы затем получают множитель группы 0.75 * playerCount без повторного ограничения со стороны плагина. Таблица ниже не гарантирует итоговое здоровье в инстансе или то, что сервер примет значение выше предела атрибута.
Базовое здоровье подчиняется формуле 2.1875 × 2^(level / 5), то есть удваивается каждые 5 уровней. В сочетании с этим ограничением у каждого healthMultiplier есть уровень, после которого босс полностью перестаёт получать здоровье, тогда как его урон продолжает расти:
healthMultiplier | Здоровье перестаёт расти на уровне |
|---|---|
1.0 | 50 |
2.0 | 45 |
5.0 | 38 |
7.0 | 36 |
10.0 | 33 |
20.0 | 28 |
40.0 | 23 |
После этого уровня дальнейшее повышение уровня в конфигурации не увеличивает фактическое максимальное здоровье. Урон по-прежнему зависит от режима боя, относительных навыков, характеристик оружия и множителей. Предел здоровья не гарантирует фиксированное число ударов ни для одной стороны. EliteMobs предупреждает, когда результат умножения превышает предел, но предварительное ограничение базового здоровья проходит без предупреждения. Множитель ниже 1 применяется к уже ограниченному базовому здоровью.
Если вам действительно нужно больше 2048 HP, поднимите settings.attribute.maxHealth.max в spigot.yml самостоятельно; ограничение читает актуальное значение сервера, а не жёстко заданную константу.
Пример
healthMultiplier: 1.5
damageMultiplier
Задаёт множитель урона босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
damageMultiplier | Multiplier | 1.0 |
Пример
damageMultiplier: 1.5
isBaby
Определяет, использует ли босс детёныша (baby-вариант) моба. Применимо только к мобам, у которых есть baby-вариант. Если вы хотите замаскировать босса, но при этом сохранить его детёнышем и под маскировкой (убедитесь, что сущность маскировки тоже поддерживает baby-вариант), вы можете использовать эту настройку:
disguise: HOGLIN:baby
| Ключ | Значения | По умолчанию |
|---|---|---|
isBaby | true / false | false |
Пример
isBaby: true
helmet/chestplate/leggings/boots/mainHand/offHand
Задаёт броню и предметы в руках босса. Некоторые типы сущностей и пользовательские модели не отображают эти слоты. В обычном бою EliteMobs надетая броня не даёт очков защиты, но предметы в руках могут влиять на стандартные атаки, например использование лука скелетом.
| Ключ | Значения | По умолчанию |
|---|---|---|
helmet | Material, UUID | нет |
chestplate | Material | нет |
leggings | Material | нет |
boots | Material | нет |
mainHand | Material | нет |
offHand | Material | нет |
Используйте названия материалов в верхнем регистре. Эти поля создают экипировку из материалов и не загружают .yml пользовательских предметов. Для некожаных предметов добавьте целочисленное значение custom model data в формате ITEM_MATERIAL:ID. Например, DIAMOND_SWORD:1 выбирает custom model data 1 из ресурспака.
Примечание 2: Это поле также позволяет задавать пользовательские цвета кожаной брони в формате ITEM_MATERIAL:CODE, где код — шестнадцатеричное представление цвета. Пример: LEATHER_LEGGINGS:ffa500 создаст оранжевые поножи. Можно использовать hex-коды, просто уберите из них символ #. Hex-коды можно взять здесь.
Примечание 3: UUID игрока в нижнем регистре с дефисами создаёт голову через поиск профиля офлайн-игрока Bukkit. Парсер не требует присутствия игрока на сервере; отображаемый скин зависит от того, сможет ли сервер получить профиль.
Пример
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

powers
Задаёт способности, которыми обладает босс.
| Ключ | Значения | По умолчанию |
|---|---|---|
powers | См. список ниже | нет |
Пример
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua
Примечание: Вы можете заглянуть на эту страницу, если хотите увидеть список готовых способностей, которые можно использовать.
Примечание: Способности могут быть файлами .yml (EliteScript) или .lua (Lua-скрипты). Оба типа поддерживаются и могут свободно смешиваться в списке powers. Почти все готовые способности теперь имеют формат .lua.
.yml по-прежнему работаютЕсли способность .lua с тем же базовым именем уже загружена, EliteMobs автоматически направляет запрос .yml или .yaml к ней. Например, attack_arrow.yml выбирает загруженную attack_arrow.lua. Одного наличия файла на диске недостаточно. В новых конфигурациях указывайте файл .lua напрямую.
Промежуточная конфигурация: призыв подкреплений
Подкрепления также относятся к категории powers и используют следующие настройки:
Примечание: Подкрепления настраиваются внутри секции powers файла конфигурации босса, а не в отдельной секции.
Настройки подкреплений
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
summonType | Что вызывает появление подкрепления. Обязательно. | См. список ниже | нет |
filename | Имя файла призываемого босса. Обязательно, кроме записей кристаллов. | String | нет |
chance | Вероятность обычной группы призыва. GLOBAL и кристаллы игнорируют её. Необязательно. | Double | 1.0 |
amount | Задаёт количество призываемых подкреплений. Необязательно. | Integer | 1 |
inheritAggro | Заставляет подкрепление унаследовать агро от босса. Необязательно. | true / false | false |
spawnNearby | Создаёт подкрепления в области 30x30 блоков вокруг точки появления, ±15 по X и Z. Необязательно. | true / false | false |
inheritLevel | Заставляет подкрепление унаследовать уровень босса. Необязательно | true / false | false |
customSpawn | Заставляет подкрепление появляться через систему пользовательского появления. Используется только с summonType: GLOBAL | Имя файла Custom Spawn | нет |
location | Относительное смещение появления. Необязательно. | x,y,z, всегда относительно босса. Для региональных боссов смещение отсчитывается от точки появления. | нет |
lightningRod | Настройка summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL: кристаллы Края вызывают молнии вокруг себя. Необязательно. | true / false | false |
difficultyID | Ограничивает запись определёнными сложностями инстанс-подземелья. Необязательно. | String или список строк | нет |
Типы призыва задают условия появления подкреплений. Ниже приведён список допустимых типов призыва:
Типы призыва
| Значение | Описание |
|---|---|
ONCE | Пытается призвать группу при подходящем уроне от игрока, пока попытка не будет отмечена как выполненный призыв. Неудачная проверка вероятности допускает повтор при следующем ударе. |
ON_HIT | Пытается призвать группу при уроне от игрока. Требует активного ИИ, неотменённого события урона и как минимум 3 единиц урона. |
ON_COMBAT_ENTER | Призывает подкрепления, когда босс вступает в бой. |
ON_DEATH | Призывает подкрепления при смерти босса. |
GLOBAL | Ставит в очередь amount призывов через customSpawn сразу после появления босса и каждые 10 секунд, в том числе вне боя. Перестаёт добавлять призывы, как только число отслеживаемых существ достигает 30 * число игроков в мире появления. Требует корректного пользовательского появления. |
ON_COMBAT_ENTER_PLACE_CRYSTAL | При вступлении в бой размещает один кристалл Края по заданному смещению. Игнорирует amount и chance; предназначен для пользовательских боёв с драконом. |
ONCE использует те же требования активного ИИ и минимум 3 единиц урона, что и ON_HIT. GLOBAL использует собственную конфигурацию появления вместо обычных полей location, spawnNearby, inheritLevel и inheritAggro. Полное поведение описано в разделе Подкрепления.
Обратите внимание, что подкрепления также можно призывать через Elite Scripts, поэтому существуют и более гибкие способы призыва подкреплений.
Пример
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
location: 10,20,30
lightningRod: false
Экспертная конфигурация: создание собственных способностей
Вы можете создавать собственные способности — либо прямо в файле босса, либо в виде нового файла конфигурации в папке powers. Подробнее об этом можно узнать здесь.
Примечание: Вы также можете задавать поведение босса прямо в файле конфигурации босса с помощью поля eliteScript. Полную документацию по использованию Elite Scripts смотрите в руководстве по способностям.
В качестве альтернативы EliteScript способности также можно писать на Lua. Lua-способности размещаются в папке powers с расширением .lua и указываются по имени файла в списке powers. Подробнее смотрите в руководстве Начало работы с Lua.
Ограничение способностей в зависимости от сложности инстанс-подземелья
У инстанс-подземелий могут быть настройки сложности, и можно сделать так, чтобы конкретная способность была включена только для определённых сложностей.
Параметры ограничения способностей
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
filename | Имя файла способности. | String | нет |
difficultyID | Один ID сложности или список, разрешаемый по числовым или именованным правилам сложности подземелья. | Строка, число или список | нет |
Это применяется только к инстансовым боссам: боссам в инстанс-подземельях и инстансовым боссам, которых другой плагин спавнит через API EliteMobs с указанием сложности.
Пример
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3
spawnMessage
Задаёт сообщение, отправляемое при появлении босса. Требует настройки announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
spawnMessage | Strings и color codes | нет |
Пример
announcementPriority: 3
spawnMessage: I rise once more!
deathMessages
Задаёт список сообщений при смерти босса с записанными участниками, наносившими урон. Требует включённого doCustomEliteMobsDeathMessages в MobCombatSettings.yml (по умолчанию true). Приоритет 0 отправляет сообщения лично участникам, положительные приоритеты рассылают их всем.
| Ключ | Значения | По умолчанию |
|---|---|---|
deathMessages | Strings, color codes и перечисленные ниже плейсхолдеры | нет |
Пример
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4The Test Boss has been killed!'
- '&c&l 1st Damager: $damager1name &cwith $damager1damage damage!'
- '&6&l 2nd Damager: $damager2name &6with $damager2damage damage!'
- '&e&l 3rd Damager: $damager3name &ewith $damager3damage damage!'
- '&4Slayers: $players'
- '&e&l---------------------------------------------'

Сообщения о смерти используют следующие плейсхолдеры:
Плейсхолдеры
| Значение | Описание |
|---|---|
$damager1name | Отображаемое имя игрока с наибольшим уроном |
$damager1Name | Никнейм игрока с наибольшим уроном |
$damager2name | Отображаемое имя игрока со вторым по величине уроном |
$damager2Name | Никнейм игрока со вторым по величине уроном |
$damager3name | Отображаемое имя игрока с третьим по величине уроном |
$damager3Name | Никнейм игрока с третьим по величине уроном |
$damager1damage | Величина урона игрока с наибольшим уроном |
$damager2damage | Величина урона игрока со вторым по величине уроном |
$damager3damage | Величина урона игрока с третьим по величине уроном |
$players | Список отображаемых имён всех, кто наносил урон |
$playersName | Список никнеймов всех, кто наносил урон |
deathMessage
Задаёт одно сообщение при смерти босса. Используется, когда deathMessages пуст, с теми же глобальным переключателем и правилами приоритета. Поддерживает $players и $playersName, но не плейсхолдеры отдельных мест в рейтинге урона.
| Ключ | Значения | По умолчанию |
|---|---|---|
deathMessage | String, цветовые коды, $players и $playersName | нет |
Пример
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'
onKillMessage
Задаёт сообщение о смерти игрока, убитого этим боссом. Использует обработку смерти игрока и не требует announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
onKillMessage | Strings и color codes | нет |
Плейсхолдеры:
| Значение | Описание |
|---|---|
$player | Отображаемое имя убитого игрока |
$playerName | Никнейм убитого игрока |
$entity | Имя босса |
Пример
announcementPriority: 3
onKillMessage: I win, you lose!
slimeSize
Задаёт размер босса-слизня, но работает только для слизней и магмовых кубов.
| Ключ | Значения | По умолчанию |
|---|---|---|
slimeSize | Integer | 4 |
Пример
slimeSize: 5
neutral
Отключает принудительное назначение игроков целью для нейтральных сущностей, таких как волки и железные големы. Также предотвращает запуск программы поведения Mind. Собственное поведение сущности сохраняется; настройка не делает враждебный тип сущности пассивным.
| Ключ | Значения | По умолчанию |
|---|---|---|
neutral | Boolean | false |
Пример
neutral: true
Расширенные настройки
timeout
Задаёт время в минутах до исчезновения пользовательского босса. 0 отключает таймаут.
| Ключ | Значения | По умолчанию |
|---|---|---|
timeout | Время (в минутах), Integer | 0 |
Пример
timeout: 20
Заставляет босса скрыться через 20 минут.
isPersistent
Сохраняет логическую информацию о боссе для восстановления после выгрузки чанка. Обычный путь удаляет сущность и создаёт её заново при загрузке чанка. Если нативный Mind управляет сохраняемой сущностью, он может приостановить сессию, отсоединить сохраняемое тело и повторно связать его в той же сессии сервера. Настройка не удерживает чанки загруженными и не гарантирует сохранение любого призванного командой босса после перезапуска сервера. Региональные точки появления и сроки возрождения управляются отдельно.
| Ключ | Значения | По умолчанию |
|---|---|---|
isPersistent | true / false | false |
Пример
Пример:
isPersistent: true
damageModifiers
Задаёт множители получаемого урона по материалу оружия Bukkit. Отслеживаемые снаряды используют материал оружия, записанный при выстреле. Пользовательский урон, обходящий обычную формулу, не применяет эти множители.
| Ключ | Значения | По умолчанию |
|---|---|---|
damageModifiers | Material | нет |
Пример
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0
В этом примере боссы будут получать от алмазных мечей только 80% урона (то есть на 20% меньше), но от трезубцев — 200% урона (то есть в 2 раза больше).
normalizedCombat
Использует normalizedDamageToEliteMultiplier и normalizedDamageToPlayerMultiplier из ~/plugins/EliteMobs/mobproperties. Расчёт нормализованного урона описан в разделе Система урона. Глобальный normalizeRegionalBosses принудительно включает нормализацию для региональных боссов, даже если здесь стоит false. Для боссов с фазами используются настройки первой фазы.
| Ключ | Значения | По умолчанию |
|---|---|---|
normalizedCombat | true / false | false |
Пример
Пример:
normalizedCombat: true
scaledCombat
Включает расчёт боя на основе прогресса игрока. Урон, рассчитанный для каждого игрока, переводится в фактическое общее здоровье босса. Сохранённый уровень босса и право на награды обрабатываются отдельно. Одинаковая сложность для всех игроков не гарантируется.
Масштабируемый бой в первую очередь предназначен для боссов событий в обычном мире и пользовательских боссов, которые должны быть доступны игрокам любого уровня. Для контента подземелий с фиксированной задуманной сложностью используйте вместо этого normalizedCombat.
Если задано scaledCombat: true, эта настройка имеет приоритет, даже если босс в остальном использовал бы нормализованный бой. Естественно появляющиеся элитные мобы по умолчанию используют масштабируемый бой (управляется параметром useScaledCombatForNaturalElites в MobCombatSettings.yml).
Полное описание работы масштабируемого боя смотрите на странице Система урона.
| Ключ | Значения | По умолчанию |
|---|---|---|
scaledCombat | true / false | false |
Пример
scaledCombat: true
escapeMessage
Задаёт сообщение, которое рассылается игрокам, когда босс скрывается по механике timeout. Требует настроенного announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
escapeMessage | String | нет |
Пример
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"
locationMessage
Задаёт текст полосы для отслеживания здоровья и положения босса. Требует announcementPriority не ниже 1 и включённого глобального showCustomBossLocation. Ключ необязателен; по умолчанию используется $name: $distance blocks away!.
| Ключ | Значения | По умолчанию |
|---|---|---|
locationMessage | String, цветовые коды и перечисленные ниже плейсхолдеры | $name: $distance blocks away! |
Плейсхолдеры:
| Значение | Описание |
|---|---|
$name | Имя босса |
$distance | Заменяется на расстояние от игрока до пользовательского босса. Это предпочтительный вариант. |
$location | Заменяется на координаты x y z пользовательского босса |
Пример
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

Это выведет что-то вроде Cool boss: At 414,55,347 only 10 blocks away!
uniqueLootList
Задаёт пользовательские предметы, выпадающие из босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
uniqueLootList | List | нет |
Записи добычи в Custom Loot следуют формату таблиц добычи. Информация об этом здесь! Учтите, что некоторые более старые файлы могут использовать устаревшие таблицы добычи, выглядящие иначе, чем в примере.
Пример
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- magmaguys_toothpick.yml:0.5:elitemobs.*
dropsEliteMobsLoot
Определяет, будет ли из босса выпадать добыча EliteMobs, за исключением предметов из uniqueLootList. Включает монеты.
| Ключ | Значения | По умолчанию |
|---|---|---|
dropsEliteMobsLoot | true / false | true |
Для мобов-подкреплений рекомендуется устанавливать значение false.
Пример
dropsEliteMobsLoot: true
dropsVanillaLoot
Определяет, будет ли из пользовательского босса выпадать ванильная добыча, обычно связанная с его ванильным типом моба.
| Ключ | Значения | По умолчанию |
|---|---|---|
dropsVanillaLoot | true / false | true |
Пример
dropsVanillaLoot: true
dropsRandomLoot
Определяет, будет ли из пользовательского босса выпадать процедурно сгенерированная добыча EliteMobs. Не включает элитные монеты.
| Ключ | Значения | По умолчанию |
|---|---|---|
dropsRandomLoot | true / false | true |
Пример
dropsRandomLoot: true
dropsSkillXP
Определяет, даёт ли убийство босса опыт навыков. Он развивает навыки оружия и брони и их бонусы. Обработчик опыта исключает подкрепления и ездовых существ даже при true.
| Ключ | Значения | По умолчанию |
|---|---|---|
dropsSkillXP | true / false | true |
Рекомендуется устанавливать значение false для мобов-подкреплений или боссов, которые не должны влиять на прогресс навыков.
Пример
dropsSkillXP: false
Автоматическая классовая добыча
classLoot включает отдельный розыгрыш базовой экипировки. По умолчанию включён, кроме bossType: REINFORCEMENT. classLootDifficulty принимает AUTO, NORMAL, HARD или MYTHIC; classLootRank принимает AUTO, TRASH, MINIBOSS или BOSS. Оба по умолчанию равны AUTO. Недопустимое значение вызывает предупреждение и заменяется на AUTO.
Авторскую классовую экипировку определяйте как обычные предметы itemType: CLASS_LOOT, указанные в uniqueLootList. Они участвуют в выборе классовой экипировки, а не в независимых розыгрышах уникальных предметов. Старое поле босса classLootItems не читается. Условия получения, пределы, охват семейств, профили и определение сложности описаны в разделе Автоматическая классовая добыча.
trails
Задаёт след, который босс оставляет за собой при движении.
| Ключ | Значения | По умолчанию |
|---|---|---|
trails | Частицы или материалы предметов | нет |
Для следов подходят только частицы без дополнительных данных, то есть простые частицы из списка допустимых частиц. Требующие данных DUST и ITEM пропускаются. BLOCK и LAVA прекращают обработку оставшегося списка, поэтому не используйте их. Названия материалов создают анимированный след из предметов. Следы работают, пока босс действителен, даже когда он стоит на месте.
Пример
trails:
- CLOUD
onDamageMessages
При нанесении урона игроку случайная строка временно заменяет имя сущности босса. Имя восстанавливается через 80 тиков. Повторные удары могут заменить строку, а более ранний таймер может восстановить имя до истечения срока последней строки.
| Ключ | Значения | По умолчанию |
|---|---|---|
onDamageMessages | List | нет |
Пример
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

onDamagedMessages
При событии урона EliteMobs случайная строка временно заменяет имя босса. Это не ограничено уроном от игроков. Имя восстанавливается через 80 тиков. Повторные события могут заменить строку, а более ранний таймер может восстановить имя до истечения срока последней строки.
| Ключ | Значения | По умолчанию |
|---|---|---|
onDamagedMessages | List | нет |
Пример
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

mountedEntity
Задаёт сущность, на которую сядет верхом босс.
| Ключ | Значения | По умолчанию |
|---|---|---|
mountedEntity | Имя файла босса, на которого нужно сесть верхом или тип сущности | нет |
Не пытайтесь заставить босса сесть верхом на самого себя.
Пример
mountedEntity: wild_wolf.yml

Примечание: региональные боссы разделяют привязь с сущностью, на которой едут верхом, то есть оба будут возвращены к точке появления, если превысят допустимое привязью расстояние.
announcementPriority
Задаёт уровень приоритета объявлений. Низкие приоритеты означают, что объявления не делаются, а более высокие позволяют объявлять не только в чате, но и в Discord, если он настроен.
| Ключ | Значения | По умолчанию |
|---|---|---|
announcementPriority | Integer | 0 |
Примечание: Если ключ отсутствует, но есть locationMessage, spawnMessage, deathMessage, escapeMessage или непустой список deathMessages, при загрузке EliteMobs записывает в файл announcementPriority: 0. Так параметр становится видимым и его проще повысить. До изменения босс продолжает работать с приоритетом 0.
Ниже приведён список того, что делают приоритеты:
| Значение | Описание |
|---|---|
0 | Значение по умолчанию. Нет объявлений о появлении и побеге или отслеживания; настроенный текст смерти всё ещё можно отправить лично наносившим урон игрокам. |
1 | Босс может отправлять настроенные сообщения о появлении, смерти и побеге в чат. Отслеживание через /em доступно при включённом showCustomBossLocation; locationMessage необязателен. |
2 | Идентично 1 для пользовательских боссов — отдельной ветки кода для приоритета 2 не существует. (А вот пользовательские события обрабатывают 2 иначе; см. Система приоритета объявлений.) |
3 | Вдобавок к возможностям 1 широковещательные сообщения будут дублироваться в Discord, если он настроен. Информация о настройке Discord здесь. |
Вот пример босса, которого можно отслеживать и который умеет отправлять сообщения о появлении/смерти/побеге в чат и в Discord:
Пример
announcementPriority: 3
Примечание: Настройте spawnMessage, deathMessage/deathMessages и escapeMessage для соответствующих объявлений в чате и Discord. У отслеживания есть текст положения по умолчанию; задавайте locationMessage, только чтобы изменить его.
followDistance
Задаёт расстояние, на котором боссы получают агро и вступают в бой. Измеряется от самого моба.
| Ключ | Значения | По умолчанию |
|---|---|---|
followDistance | Integer | 0 |
Положительный followDistance переопределяет стандартный атрибут дальности преследования живой сущности; 0 оставляет его без изменений.
Примечание 1: Региональные боссы без состояния готовности делят текущую дальность на 3 при замедлении после появления или выхода из боя. Вступление в бой восстанавливает записанную дальность. Это предотвращает привлечение целей со слишком большого расстояния и конфликты с привязью.
Примечание 2: Чем выше followDistance, тем сильнее босс нагружает процессор сервера. Используйте с осторожностью и ответственно!
Пример
followDistance: 30
Задаёт радиус в 30 блоков: если игрок окажется в пределах этого расстояния от босса, тот начнёт преследовать и атаковать игрока.
onDeathCommands
Задаёт список команд, выполняемых при смерти пользовательского босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
onDeathCommands | List | нет |
Команды выполняются от консоли. Команда $chance=x$, содержащая $players, проверяет вероятность отдельно для каждого наносившего урон игрока. Поддерживаются следующие плейсхолдеры:
| Значение | Описание |
|---|---|
$level | Плейсхолдер уровня босса. |
$name | Плейсхолдер имени босса. |
$chance=x$ | Задаёт команде шанс срабатывания. |
$players | Заставляет команду выполниться один раз для каждого игрока из списка нанёсших урон, подставляя каждый раз никнейм другого игрока из этого списка. |
$locationWorldName | Имя мира в момент смерти. |
$locationX | Координата X босса в момент смерти. |
$locationY | Координата Y босса в момент смерти. |
$locationZ | Координата Z босса в момент смерти. |
$damager1name | Никнейм игрока, нанёсшего наибольший урон |
$damager2name | Никнейм игрока, нанёсшего второй по величине урон |
$damager3name | Никнейм игрока, нанёсшего третий по величине урон |
Посмотрите на пример ниже, чтобы лучше понять, как это работает.
Пример
onDeathCommands:
- "say $players has killed $name! That was level $level!"
- "$chance=0.5$ say What a kill!"

Если Player1, Player2 и Player3 наносили боссу урон перед тем, как убить его, вывод команды в консоли будет таким:
say Player1 has killed CustomBossName! That was level X!
say Player2 has killed CustomBossName! That was level X!
say Player3 has killed CustomBossName! That was level X!
Кроме того, с вероятностью 50% будет также выведено следующее:
say What a kill!
onSpawnCommands
Задаёт список команд, которые выполнятся при появлении босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
onSpawnCommands | List | нет |
Выполняется от консоли и поддерживает маркер вероятности $chance=x$. Плейсхолдеры босса, положения и игроков из команд смерти не подставляются.
Пример
onSpawnCommands:
- say Boss has spawned!

onCombatEnterCommands
Задаёт список команд, которые выполнятся, когда босс вступит в бой.
| Ключ | Значения | По умолчанию |
|---|---|---|
onCombatEnterCommands | List | нет |
Выполняется от консоли и поддерживает маркер вероятности $chance=x$. Плейсхолдеры босса, положения и игроков из команд смерти не подставляются.
Пример
onCombatEnterCommands:
- say Boss has entered combat!

onCombatLeaveCommands
Задаёт список команд, выполняемых, когда босс выходит из боя.
| Ключ | Значения | По умолчанию |
|---|---|---|
onCombatLeaveCommands | List | нет |
Выполняется от консоли и поддерживает маркер вероятности $chance=x$. Плейсхолдеры босса, положения и игроков из команд смерти не подставляются.
Пример
onCombatLeaveCommands:
- say Boss has left combat!

disguise
Задаёт маскировку LibsDisguises, если этот плагин включён. Подробнее здесь.
| Ключ | Значения | По умолчанию |
|---|---|---|
disguise | String | нет |
customDisguiseData | String | нет |
Пример маскировки
disguise: CHICKEN

Пример пользовательской маскировки
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}

Задаёт пользовательскую маскировку из skindex. Загляните на эту страницу, чтобы узнать, как правильно оформить эти данные.
customModel
Задаёт пользовательскую модель, если у вас есть такая модель и плагины FreeMinecraftModels или ModelEngine. Подробнее о создании и использовании пользовательских моделей здесь.
| Ключ | Значения | По умолчанию |
|---|---|---|
customModel | String | нет |
Пример
customModel: your_model
customModelMountPointID
Задаёт ID точки крепления для пользовательских моделей, когда босс садится верхом на другую сущность или когда на него садятся верхом.
| Ключ | Значения | По умолчанию |
|---|---|---|
customModelMountPointID | String | нет |
Пример
customModelMountPointID: your_mount_point_id
frozen
Устанавливает атрибут скорости движения в 0. Обработчик урона EliteMobs также обнуляет вектор скорости сразу и на следующем тике. ИИ и скрипты всё ещё могут атаковать или телепортировать босса; настройка не блокирует все виды перемещения.
| Ключ | Значения | По умолчанию |
|---|---|---|
frozen | true / false | false |
Пример
frozen: true
ai
Определяет, включён ли у босса ИИ. При значении false босс не будет двигаться и атаковать самостоятельно. Это полезно для боссов, полностью управляемых через Elite Scripts.
| Ключ | Значения | По умолчанию |
|---|---|---|
ai | true / false | true |
Пример
ai: false
behavior
behavior выбирает многократно используемую программу Lua Mind из plugins/EliteMobs/behaviors/. Например:
entityType: ZOMBIE
ai: true
behavior: basic_melee.lua
Встроенная basic_melee.lua объединяет модули выбора цели, преследования, ближнего боя и блуждания из behaviors/modules/. Редактируйте или копируйте программу в каталоге поведения. Это не файл способности, и ему не место в powers/.
Если behavior не задан, используется настройка свойств соответствующего типа моба. Явное behavior: native выбирает нативный ИИ. При ai: false и у нейтральных боссов программа поведения не запускается. Обычный загрузчик босса по-прежнему управляет появлением, экипировкой, способностями, сохранением и очисткой.
Программы требуют нативной службы Mind на поддерживаемой версии сервера. Неизвестный или некорректный файл вызывает ошибку конфигурации, а не незаметный переход на другой ИИ. ID программ должны использовать пространство имён elitemobs:; ссылки на подпапки используют прямые косые черты. API описан в справочнике контекста Mind.
alwaysShowName
Сохраняет имя босса видимым вне боя. Глобальный alwaysShowEliteMobNameTags также может включить это поведение. Текущий FreeMinecraftModels размещает имя у кости tag_, например tag_head, если она есть; иначе над хитбоксом модели. Старые сборки FMM могут требовать заданную автором точку привязки. Особенности моделей описаны в разделе Пользовательские модели.
| Ключ | Значения | По умолчанию |
|---|---|---|
alwaysShowName | true / false | false |
Пример
alwaysShowName: true
reinforcement
Помечает определение босса как подкрепление. Это пропускает обычную инициализацию региональных точек появления и исключает автоматическую классовую добычу. Регистрация точек в инстансах выполняется отдельно. Флаг сам не призывает босса и не задаёт призывателя; остальные исключения наград отдельно определяются отслеживанием подкреплений и ездовых существ во время работы.
| Ключ | Значения | По умолчанию |
|---|---|---|
reinforcement | true / false | false |
Пример
reinforcement: true
song
Задаёт музыку для находящихся рядом игроков после появления босса. Ключ звука и соответствующий файл .ogg должны быть определены в ресурспаке.
| Ключ | Значения | По умолчанию |
|---|---|---|
song | String | нет |
Положительный followDistance задаёт дальность начала воспроизведения. Каждые 10 тиков босс проверяет игроков своего мира в пределах этой настроенной дистанции. После начала музыка продолжается, пока игрок онлайн, остаётся в том же мире и не удаляется дальше 1,5 записанной рабочей дальности преследования босса. Удаление босса останавливает музыку. Музыка босса имеет приоритет над фоновой музыкой подземелья; игрок слышит один управляемый трек за раз.
Используйте name=SOUND_KEY length=MILLISECONDS с пробелом между полями. Длительность задаётся целым числом миллисекунд, переводится в тики с округлением вниз; минимальная задержка планировщика составляет один тик. Воспроизведение использует категорию MUSIC, громкость 1 и высоту тона 1.
Пример
Настроить музыку можно двумя способами. Вот первый:
song: name=elitemobs:ice_queen.idle length=76370
Это проиграет композицию ice_queen.idle в течение 76370 миллисекунд, а затем зациклит её. Учтите, что расположение композиции определяется ресурспаком.
Вот второй способ настройки музыки:
song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657
Это проиграет композицию ice_queen.end_transition в течение 14328 миллисекунд, затем перейдёт к ice_queen.end_loop на 28657 миллисекунд и зациклит end_loop.
Это позволяет боссам иметь «вступительную» или «переходную» композицию, а затем основной зацикленный трек.
cullReinforcements
Определяет, удаляются ли отслеживаемые подкрепления, включая призывы GLOBAL, при очистке босса. Выход из боя и полное восстановление здоровья отдельно удаляют обычные отслеживаемые подкрепления. Поэтому false не гарантирует сохранение всех призванных существ.
| Ключ | Значения | По умолчанию |
|---|---|---|
cullReinforcements | true / false | true |
Пример
cullReinforcements: true
movementSpeedAttribute
Задаёт скорость передвижения босса.
Примечание: значения выше 0.36 могут оказаться слишком быстрыми.
| Ключ | Значения | По умолчанию |
|---|---|---|
movementSpeedAttribute | Double | нет |
Пример
movementSpeedAttribute: 0.3
patrol
Добавляет пользовательскому боссу встроенный маршрут с автоматическим поиском пути. Узлы являются смещениями от заданной точки появления босса или, с patrol.relative: false, точными координатами в его мире. patrol.startNodeWaitSeconds заставляет босса отдыхать у первого узла один раз за круг. Длинные участки рассчитываются и делятся автоматически без принудительной загрузки чанков; в бою патруль приостанавливается и затем продолжается. Боссу нужны ai: true, положительная скорость, и он не должен быть пассажиром. Схема, редактор, сохранение и Lua описаны в разделе Патрули NPC и боссов.
Фазы боссов
У боссов могут быть фазы, которые сменяются, когда босс достигает определённого процента здоровья. При этом босс начинает использовать другой файл конфигурации, а значит, у босса может измениться всё что угодно, вплоть до типа сущности.
Чтобы узнать больше о фазах боссов, нажмите сюда.
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
phases | Задаёт фазы, которые будут у босса. Обязательно | List | нет |
phaseSpawnLocation | Задаёт, где появляется босс фазы. Необязательно | String | нет |
Пример
Для этого примера мы покажем три разных файла конфигурации.
Первый файл конфигурации босса: phase_1_boss.yml
name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30
Второй файл конфигурации босса: phase_2_boss.yml
name: "Phase 2"
entityType: SKELETON
Третий файл конфигурации босса: phase_3_boss.yml
name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER
Этот босс перейдёт к файлу конфигурации phase_2_boss.yml при 60% здоровья, а к файлу конфигурации phase_3_boss.yml — при 30% здоровья, в том же мире, что и фаза 2, и по координатам x=10, y=64 и z=100. Тип сущности и имя босса также изменятся.
Формат записи — filename:healthPercentage, где процент задаётся долей не меньше 0 и меньше 1. Запись в другом формате, доля вне допустимого диапазона или отсутствующий файл босса не дают боссу заспавниться.
phaseSpawnLocation необязателен; если он не задан, босс сменит фазу там, где он стоит.
При проектировании босса с фазами важно знать следующее:
- Файл конфигурации первой фазы задаёт все фазы босса.
- Угроза / учтённый урон сохраняются между фазами для игроков.
- Удар, пересекающий порог, отменяется, а следующая фаза начинается с настроенного процента здоровья. Изменение
healthMultiplierменяет абсолютное HP на этом пороге. Избыточный урон не переносится в следующую форму. - Боссы с фазами вне инстансов возвращаются к фазе 1 при полном восстановлении здоровья, в том числе благодаря настроенной регенерации после боя. Инстанс-боссы пропускают этот сброс.
- Боссы с фазами, которые также являются региональными боссами, используют общий радиус привязи и механику таймаута для всех фаз и возрождаются как босс фазы 1 по истечении таймера.
- Файл конфигурации последней фазы задаёт добычу с босса.
- Фазы нельзя пропустить — избыточный урон всё равно заставит босса сменить фазу на заданном проценте.
- Смена фазы удаляет прежнее ездовое существо. Новая фаза может определить собственное.
- Смена фаз и сброс при полном здоровье используют появление без оповещения, поэтому обычное объявление о появлении босса не отправляется.
Региональные боссы
Региональные боссы — это особый тип пользовательских боссов, которые появляются в конкретном заданном месте и способны возрождаться там же после задержки. Кроме того, у них могут быть привязи, удерживающие их в определённой зоне, и другие возможности.
Они используются во всём контенте подземелий. Чтобы узнать больше о региональных боссах, нажмите сюда.
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
isRegionalBoss | Определяет, является ли босс региональным. Должно быть true, если вам нужен региональный босс. | true / false | false |
spawnLocations | Задаёт места появления босса. | Добавляйте их с помощью команды /em place boss [filename.yml]! | нет |
spawnCooldown | Задаёт задержку возрождения босса в минутах. | Integer | 0 |
leashRadius | Задаёт расстояние, на которое босс может отойти от точки появления, прежде чем его притянет обратно. Измеряется от точки появления. | Double | нет |
onSpawnBlockStates | Задаёт блоки, которые босс изменит при появлении. | См. команды ниже | нет |
onRemoveBlockStates | Применяет сохранённые блоки при смерти, убийстве командой или переходе к следующей фазе; не применяется при таймауте, сбросе после полного лечения, перезагрузке конфигурации и остановке сервера. | См. команды ниже | нет |
Как указано выше, у региональных боссов могут быть onSpawnBlockStates и onRemoveBlockStates.
Это очень полезная возможность для изменения боевых арен во время боя, особенно в сочетании со сменой фаз, поскольку она позволяет открывать и закрывать боевые арены за счёт изменения состояний блоков.
Формат для них слишком сложен, чтобы писать его вручную, поэтому существует несколько команд, помогающих их настроить:
| Команда | Описание |
|---|---|
| /em transitiveBlocks register [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Начинает регистрацию ручного выделения блоков для состояний при появлении или при удалении. |
| /em transitiveBlocks edit [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Редактирует состояния блоков при появлении или при удалении. |
| /em transitiveBlocks registerArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Позволяет администраторам выделять крупные области блоков для сохранения в качестве состояний. |
| /em transitiveBlocks editArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Позволяет администраторам редактировать крупные области блоков для сохранения в качестве состояний. |
Пример использования:
Допустим, вы хотите сделать бой, в котором босс появляется на арене с открытой дверью, и хотите, чтобы дверь закрывалась в начале боя и снова открывалась по его завершении.
Для этого вам понадобятся две фазы босса и регистрация трёх разных наборов состояний блоков. В этом примере я назову эти фазы phase_1_boss.yml и phase_2_boss.yml соответственно.
- Используйте
/em transitiveBlocks register phase_1_boss.yml ON_SPAWNили/em transitiveBlocks edit phase_1_boss.yml ON_SPAWN, чтобы зарегистрировать блоки двери в открытом состоянии.
Это означает регистрацию блоков воздуха. Здесь рекомендуется выделение области.
Это нужно, чтобы дверь была открыта в момент появления босса и у игроков гарантированно был путь внутрь.
- Используйте
/em transitiveBlocks register phase_2_boss.yml ON_SPAWNили/em transitiveBlocks edit phase_2_boss.yml ON_SPAWN, чтобы зарегистрировать блоки двери в закрытом состоянии.
Это означает регистрацию сплошных блоков двери, которые не дадут игроку выйти.
Это нужно, чтобы дверь стала сплошной, когда босс переходит во вторую фазу, не позволяя игрокам уйти.
- Используйте
/em transitiveBlocks register phase_2_boss.yml ON_REMOVEили/em transitiveBlocks edit phase_2_boss.yml ON_REMOVE, чтобы зарегистрировать блоки двери в открытом состоянии.
Это означает повторную регистрацию тех же блоков, что и на первом шаге (блоков воздуха).
Это нужно, чтобы дверь открылась при смерти босса, позволив игрокам покинуть арену.
alert
Определяет, находится ли босс в состоянии готовности. По умолчанию региональные боссы замедлены и имеют меньшую дистанцию агро, когда находятся вне боя. Эта настройка не даёт региональным боссам замедляться и терять дистанцию агро вне боя, поэтому они всегда ведут себя одинаково — и в бою, и вне его.
| Ключ | Значения | По умолчанию |
|---|---|---|
alert | Boolean | false |
Пример
alert: true
removeAfterDeath
Навсегда удаляет данную региональную точку после смерти или таймаута. Используется для одноразовых боёв, например святилищ BetterStructures. У общего определения босса могут оставаться другие точки появления.
| Ключ | Значения | По умолчанию |
|---|---|---|
removeAfterDeath | Boolean | false |
Пример
removeAfterDeath: true
Инстанс-боссы
Инстанс-боссы — это подтип региональных боссов, используемый в инстанс-подземельях.
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
instanced | Делает пользовательского босса инстансовым. Обязательно. | true / false | false |
Установка боссов как инстансовых обязательна для корректной работы инстанс-подземелий. Мы также рекомендуем убирать привязи у любых инстанс-боссов.
Пример
instanced: true
