Создание боссов
Создание пользовательских боссов
Перед началом
Куда помещаются файлы боссов?
Файлы боссов помещаются в папку конфигурации ~/plugins/EliteMobs/custombosses.
Можно создавать подпапки, например ~/plugins/EliteMobs/custombosses/mybosses. Это рекомендуется для поддержания порядка.
Один файл описывает одного босса, однако одного и того же босса можно призывать несколько раз и даже задать несколько точек появления для одного файла босса.
Для быстрого и простого создания пользовательских боссов и не только можно воспользоваться веб-приложением.
Минимально возможная конфигурация
Минимально возможный файл конфигурации пользовательского босса выглядит так:
Обратите внимание: это просто пустой файл. Он всё равно создаст пользовательского босса-зомби с пользовательским именем, поскольку таковы значения по умолчанию. Всё на этой странице необязательно!
Пример босса
Давайте посмотрим на пример того, как выглядит файл босса.
Пример
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
Задаёт тип сущности босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
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 используется для событий и подстраивается под уровень находящихся рядом игроков в момент появления босса.
Не рекомендуется для региональных боссов.
Пример
level: 1
scale
Задаёт масштаб (размер) босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
scale | Multiplier | 1.0 |
При масштабировании 1.0 соответствует размеру по умолчанию. Чтобы сделать сущность крупнее, увеличьте значение (например, 1.2). Чтобы сделать сущность меньше, уменьшите значение (например, 0.8).
Пример
scale: 1.2
bossType
Задаёт тип босса. Используется для отображения полос здоровья босса и других возможностей.
| Ключ | Значения | По умолчанию |
|---|---|---|
bossType | NORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENT | NORMAL |
При значениях MINIBOSS, BOSS, EVENT плагин будет отображать полосы здоровья, когда игроки сражаются с боссами этих типов.
Примечание: REINFORCEMENT обычно назначается автоматически призванным мобам-подкреплениям, но при необходимости может быть задан вручную.
Пример
bossType: MINIBOSS
silent
Определяет, должны ли звуки босса быть отключены.
| Ключ | Значения | По умолчанию |
|---|---|---|
silent | Boolean | false |
При значении true эта опция отключает все стандартные звуки мобов Minecraft, из-за чего босс вообще не издаёт звуков.
Пример
silent: true
healthMultiplier
Задаёт здоровье босса. Значение этой настройки также определяет тип полосы здоровья, отображаемой во время боя. Более высокие значения показывают полосу здоровья минибосса или полноценного босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
healthMultiplier | Multiplier | 1.0 |
Итоговое здоровье равно baseHealth × healthMultiplier, и это произведение ограничивается серверным значением settings.attribute.maxHealth.max из spigot.yml. EliteMobs при запуске поднимает это значение до 2048, если оно ниже, но никогда не поднимает выше, поэтому на сервере с настройками по умолчанию 2048 — фактический потолок.
Базовое здоровье подчиняется формуле 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 выводит в лог предупреждение с именем босса, его уровнем и множителем — следите за консолью при настройке высокоуровневых боссов.
Если вам действительно нужно больше 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
Задаёт броню босса. Не все модели Minecraft способны отображать броню. Броня босса носит чисто косметический характер и не влияет на геймплей.
| Ключ | Значения | По умолчанию |
|---|---|---|
helmet | Material, UUID | нет |
chestplate | Material | нет |
leggings | Material | нет |
boots | Material | нет |
mainHand | Material | нет |
offHand | Material | нет |
Примечание: Это поле также позволяет задавать пользовательские модели предметов. Чтобы указать ID пользовательской модели, добавьте ID после типа материала в следующем формате: ITEM_MATERIAL:ID. Пример: DIAMOND_SWORD:1 заставит босса носить алмазный меч с пользовательской моделью №1 из вашего ресурспака.
Примечание 2: Это поле также позволяет задавать пользовательские цвета кожаной брони в формате ITEM_MATERIAL:CODE, где код — шестнадцатеричное представление цвета. Пример: LEATHER_LEGGINGS:ffa500 создаст оранжевые поножи. Можно использовать hex-коды, просто уберите из них символ #. Hex-коды можно взять здесь.
Примечание 3: Поле helmet также позволяет надевать на мобов головы игроков. Просто получите UUID нужной головы игрока и впишите его в поле helmet. Для этого игрок должен быть онлайн, иначе голова станет обычной головой MineCraft. UUID игроков можно получить здесь.
Пример
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 power names still workЕсли существует способность .lua с тем же базовым именем, EliteMobs автоматически перенаправит запрос .yml на неё. Конфигурации боссов, написанные до перехода на Lua, продолжают работать без правок — attack_arrow.yml прозрачно загружает attack_arrow.lua. В новых конфигурациях следует указывать файл .lua напрямую.
Промежуточная конфигурация — призыв подкреплений
Подкрепления также относятся к категории powers и используют следующие настройки:
Примечание: Подкрепления настраиваются внутри секции powers файла конфигурации босса, а не в отдельной секции.
Настройки подкреплений
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
summonType | Что вызывает появление подкрепления. Обязательно. | См. список ниже | нет |
filename | Имя файла босса, призываемого в качестве подкрепления. Обязательно. | String | нет |
chance | Шанс появления подкрепления. Необязательно. | Double | 1.0 |
amount | Задаёт количество призываемых подкреплений. Необязательно. | Integer | 1 |
inheritAggro | Заставляет подкрепление унаследовать агро от босса. Необязательно. | true / false | false |
spawnNearby | Заставляет подкрепления появляться в радиусе 30 блоков от босса. Необязательно. | true / false | false |
inheritLevel | Заставляет подкрепление унаследовать уровень босса. Необязательно | true / false | false |
customSpawn | Заставляет подкрепление появляться через систему пользовательского появления. Используется только с summonType: GLOBAL | Имя файла Custom Spawn | нет |
location | Место появления. Необязательно. | world_name,x,y,z или x,y,z для позиции относительно босса. Для региональных боссов смещение отсчитывается от точки появления. Также можно использовать same_as_boss, чтобы подкрепления появлялись в том же мире, что и босс. | нет |
lightningRod | Специальная настройка для summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Заставляет кристаллы Края призывать вокруг себя молнии. Необязательно. | true / false | нет |
Типы призыва задают условия появления подкреплений. Ниже приведён список допустимых типов призыва:
Типы призыва
| Значение | Описание |
|---|---|
ONCE | Призывает подкрепления только один раз, при первом получении боссом урона. |
ON_HIT | Призывает подкрепления при попадании. |
ON_COMBAT_ENTER | Призывает подкрепления, когда босс вступает в бой. |
ON_DEATH | Призывает подкрепления при смерти босса. |
GLOBAL | Призывает по одному подкреплению для каждого игрока онлайн. Требует, чтобы в ключе customSpawn было задано корректное пользовательское появление. |
ON_COMBAT_ENTER_PLACE_CRYSTAL | Размещает кристаллы Края в качестве подкреплений при вступлении в бой; предназначено только для пользовательских боёв с драконом. |
Обратите внимание, что подкрепления также можно призывать через Elite Scripts, поэтому существуют и более гибкие способы призыва подкреплений.
Пример
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
location: same_as_boss,10,20,30
lightningRod: false
Экспертная конфигурация — создание собственных способностей
Вы можете создавать собственные способности — либо прямо в файле босса, либо в виде нового файла конфигурации в папке powers. Подробнее об этом можно узнать здесь.
Примечание: Вы также можете задавать поведение босса прямо в файле конфигурации босса с помощью поля eliteScript. Полную документацию по использованию Elite Scripts смотрите в руководстве по способностям.
В качестве альтернативы EliteScript способности также можно писать на Lua. Lua-способности размещаются в папке powers с расширением .lua и указываются по имени файла в списке powers. Подробнее смотрите в руководстве Начало работы с Lua.
Ограничение способностей в зависимости от сложности инстанс-подземелья
У инстанс-подземелий могут быть настройки сложности, и можно сделать так, чтобы конкретная способность была включена только для определённых сложностей.
Параметры ограничения способностей
Это применяется только к инстанс-подземельям.
Пример
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3
spawnMessage
Задаёт сообщение, отправляемое при появлении босса. Требует настройки announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
spawnMessage | Strings и color codes | нет |
Пример
announcementPriority: 3
spawnMessage: I rise once more!
deathMessages
Задаёт список сообщений, отправляемых при смерти босса. Требует настройки announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
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 | Имя игрока, нанёсшего наибольший урон |
$damager2name | Имя игрока, нанёсшего второй по величине урон |
$damager3name | Имя игрока, нанёсшего третий по величине урон |
$damager1damage | Величина урона игрока с наибольшим уроном |
$damager2damage | Величина урона игрока со вторым по величине уроном |
$damager3damage | Величина урона игрока с третьим по величине уроном |
$players | Отображает список всех, кто наносил урон |
deathMessage
Задаёт одно сообщение, отправляемое при смерти босса. Это альтернатива deathMessages для случаев, когда нужно всего одно сообщение о смерти вместо списка. Требует настройки announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
deathMessage | String, color codes и те же плейсхолдеры, что и у deathMessages | нет |
Пример
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'
onKillMessage
Задаёт сообщение, отправляемое, когда босс убивает игрока. Требует настройки announcementPriority.
| Ключ | Значения | По умолчанию |
|---|---|---|
onKillMessage | Strings и color codes | нет |
Плейсхолдеры:
| Значение | Описание |
|---|---|
$player | Отображаемое имя убитого игрока |
$playerName | Никнейм убитого игрока |
Пример
announcementPriority: 3
onKillMessage: I win, you lose!
slimeSize
Задаёт размер босса-слизня, но работает только для слизней и магмовых кубов.
| Ключ | Значения | По умолчанию |
|---|---|---|
slimeSize | Integer | 4 |
Пример
slimeSize: 5
neutral
Определяет, будет ли босс появляться нейтральным. Применимо только к типам сущностей, которые могут быть нейтральными, например к волкам или железным големам.
| Ключ | Значения | По умолчанию |
|---|---|---|
neutral | Boolean | false |
Пример
neutral: true
Расширенные настройки
timeout
Задаёт время в минутах, по истечении которого пользовательский босс исчезает.
| Ключ | Значения | По умолчанию |
|---|---|---|
timeout | Время (в минутах), Integer | 0 |
Пример
timeout: 20
Заставляет босса скрыться через 20 минут.
isPersistent
Определяет, может ли босс пережить выгрузку чанка. Рекомендуется только для боссов событий из-за возможного влияния на производительность, вызванного постоянной загрузкой чанков и отслеживанием сущностей между перезапусками сервера.
| Ключ | Значения | По умолчанию |
|---|---|---|
isPersistent | true / false | false |
Пример
Пример:
isPersistent: true
damageModifiers
Задаёт оружие, к которому боссы устойчивы или уязвимы.
| Ключ | Значения | По умолчанию |
|---|---|---|
damageModifiers | Material | нет |
Пример
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0
В этом примере боссы будут получать от алмазных мечей только 80% урона (то есть на 20% меньше), но от трезубцев — 200% урона (то есть в 2 раза больше).
normalizedCombat
Изменяет урон и максимальное здоровье босса так, чтобы они соответствовали значениям нормализованной сущности в ~/plugins/EliteMobs/mobproperties. Это значение по умолчанию для региональных боссов, чтобы гарантировать плавную кривую сложности.
| Ключ | Значения | По умолчанию |
|---|---|---|
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.
| Ключ | Значения | По умолчанию |
|---|---|---|
locationMessage | String, Color codes и перечисленные ниже плейсхолдеры | нет |
Плейсхолдеры:
| Значение | Описание |
|---|---|
$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
Определяет, выпадает ли из босса опыт навыков при убийстве. Опыт навыков используется системой бонусов владения оружием.
| Ключ | Значения | По умолчанию |
|---|---|---|
dropsSkillXP | true / false | true |
Рекомендуется устанавливать значение false для мобов-подкреплений или боссов, которые не должны влиять на прогресс навыков.
Пример
dropsSkillXP: false
trails
Задаёт след, который босс оставляет за собой при движении.
| Ключ | Значения | По умолчанию |
|---|---|---|
trails | Частицы или материалы предметов | нет |
В качестве следов босса работают только частицы, не требующие дополнительных данных (то есть все «простые частицы» из списка допустимых частиц). Частицы вроде BLOCK, DUST, ITEM и т. п. молча пропускаются. Названия материалов вместо этого создают анимированный след из предметов.
Пример
trails:
- CLOUD
onDamageMessages
Задаёт сообщение, которое босс отображает, когда попадает по игроку. Это список, и используемое сообщение выбирается из него случайным образом.
| Ключ | Значения | По умолчанию |
|---|---|---|
onDamageMessages | List | нет |
Пример
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

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

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

Примечание: региональные боссы разделяют привязь с сущностью, на которой едут верхом, то есть оба будут возвращены к точке появления, если превысят допустимое привязью расстояние.
announcementPriority
Задаёт уровень приоритета объявлений. Низкие приоритеты означают, что объявления не делаются, а более высокие позволяют объявлять не только в чате, но и в Discord, если он настроен.
| Ключ | Значения | По умолчанию |
|---|---|---|
announcementPriority | Integer | 0 |
Ниже приведён список того, что делают приоритеты:
| Значение | Описание |
|---|---|
0 | Значение по умолчанию. Босс будет полностью безмолвным, без каких-либо сообщений-объявлений. |
1 | Боссы могут отправлять сообщения в чат: при появлении, при смерти и при побеге. Здесь также включается отслеживание босса через меню /em, если задан locationMessage. |
2 | Идентично 1 для пользовательских боссов — отдельной ветки кода для приоритета 2 не существует. (А вот пользовательские события обрабатывают 2 иначе; см. Система приоритета объявлений.) |
3 | Вдобавок к возможностям 1 широковещательные сообщения будут дублироваться в Discord, если он настроен. Информация о настройке Discord здесь. |
Вот пример босса, которого можно отслеживать и который умеет отправлять сообщения о появлении/смерти/побеге в чат и в Discord:
Пример
announcementPriority: 3
Примечание: Вам потребуется настроить spawnMessage, deathMessage/deathMessages, escapeMessage для объявлений в чате и Discord, а также locationMessage для функции отслеживания, если вы хотите использовать соответствующий уровень приоритета объявлений.
Примечание: Если задано любое содержимое объявлений (spawnMessage, deathMessage, deathMessages, escapeMessage и т. д.), announcementPriority автоматически принимает значение 1, если не задан явно.
followDistance
Задаёт расстояние, на котором боссы получают агро и вступают в бой. Измеряется от самого моба.
| Ключ | Значения | По умолчанию |
|---|---|---|
followDistance | Integer | 0 |
Примечание 1: У региональных боссов вне боя followDistance вдвое меньше. Это сделано для того, чтобы они не агрились со слишком большого расстояния, что может вызывать раздражающие проблемы в бою из-за ограничений привязи.
Примечание 2: Чем выше followDistance, тем сильнее босс нагружает процессор сервера. Используйте с осторожностью и ответственно!
Пример
followDistance: 30
Задаёт радиус в 30 блоков: если игрок окажется в пределах этого расстояния от босса, тот начнёт преследовать и атаковать игрока.
onDeathCommands
Задаёт список команд, выполняемых при смерти пользовательского босса.
| Ключ | Значения | По умолчанию |
|---|---|---|
onDeathCommands | List | нет |
Список поддерживает следующие плейсхолдеры:
| Значение | Описание |
|---|---|
$level | Плейсхолдер уровня босса. |
$name | Плейсхолдер имени босса. |
$chance=x$ | Задаёт команде шанс срабатывания. |
$players | Заставляет команду выполниться один раз для каждого игрока из списка нанёсших урон, подставляя каждый раз никнейм другого игрока из этого списка. |
$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 | нет |
Здесь используются те же плейсхолдеры, что и в onDeathCommands! Плейсхолдеры нанёсших урон не применяются, так как на этот момент их ещё нет.
Пример
onSpawnCommands:
- say Boss has spawned!

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

onCombatLeaveCommands
Задаёт список команд, выполняемых, когда босс выходит из боя.
| Ключ | Значения | По умолчанию |
|---|---|---|
onCombatLeaveCommands | List | нет |
Здесь используются те же плейсхолдеры, что и в onDeathCommands!
Пример
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
Определяет, может ли босс перемещаться. Замороженные боссы всё ещё могут атаковать.
Примечание: на некоторых сущностях это может не работать.
| Ключ | Значения | По умолчанию |
|---|---|---|
frozen | true / false | false |
Пример
frozen: true
ai
Определяет, включён ли у босса ИИ. При значении false босс не будет двигаться и атаковать самостоятельно. Это полезно для боссов, полностью управляемых через Elite Scripts.
| Ключ | Значения | По умолчанию |
|---|---|---|
ai | true / false | true |
Пример
ai: false
alwaysShowName
Определяет, всегда ли босс показывает табличку с именем над головой. По умолчанию таблички с именами боссов показываются только во время боя. Эта настройка переопределяет такое поведение для конкретного босса, делая табличку с именем всегда видимой.
| Ключ | Значения | По умолчанию |
|---|---|---|
alwaysShowName | true / false | false |
Пример
alwaysShowName: true
reinforcement
Определяет, является ли босс подкреплением. Боссы-подкрепления не инициализируются как региональные боссы при запуске и предназначены только для призыва другими боссами в качестве подкреплений.
| Ключ | Значения | По умолчанию |
|---|---|---|
reinforcement | true / false | false |
Пример
reinforcement: true
song
Задаёт музыку, которую будет играть босс начиная с момента появления. Требует, чтобы файл .ogg с композицией находился в ресурспаке.
| Ключ | Значения | По умолчанию |
|---|---|---|
song | String | нет |
Примечание: настройка song требует, чтобы был задан followDistance, поскольку именно followDistance определяет дистанцию, на которой начинает играть музыка.
Посмотрите пример, чтобы узнать, как задать длительность length (в миллисекундах) для song.
Пример
Настроить музыку можно двумя способами. Вот первый:
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
Определяет, будут ли подкрепления босса удалены при его смерти.
| Ключ | Значения | По умолчанию |
|---|---|---|
cullReinforcements | true / false | true |
Пример
cullReinforcements: true
movementSpeedAttribute
Задаёт скорость передвижения босса.
Примечание: значения выше 0.36 могут оказаться слишком быстрыми.
| Ключ | Значения | По умолчанию |
|---|---|---|
movementSpeedAttribute | Double | нет |
Пример
movementSpeedAttribute: 0.3
Фазы боссов
У боссов могут быть фазы, которые сменяются, когда босс достигает определённого процента здоровья. При этом босс начинает использовать другой файл конфигурации, а значит, у босса может измениться всё что угодно, вплоть до типа сущности.
Чтобы узнать больше о фазах боссов, нажмите сюда.
| Ключ | Описание | Значения | По умолчанию |
|---|---|---|---|
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.
phaseSpawnLocation необязателен; если он не задан, босс сменит фазу там, где он стоит.
При проектировании босса с фазами важно знать следующее:
- Файл конфигурации первой фазы задаёт все фазы босса.
- Угроза / учтённый урон сохраняются между фазами для игроков.
- Смена фаз основана на проценте потерянного здоровья, который сохраняется при переходе к другой фазе. Это значит, что увеличение или уменьшение healthMultiplier между фазами не вылечит и не ранит босса — переход всё равно произойдёт на том же проценте, просто в этой фазе у босса будет больше или меньше здоровья.
- Боссы с фазами возвращаются к фазе 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
