Crear jefes
Crear jefes personalizados
Antes de empezar
¿Dónde se guardan los archivos de jefe?
Los archivos de jefe van en la carpeta de configuración ~/plugins/EliteMobs/custombosses.
Es posible crear subcarpetas, como ~/plugins/EliteMobs/custombosses/mybosses. Se recomienda hacerlo para mantener todo organizado.
Cada archivo define un jefe, aunque es posible generar el mismo jefe varias veces e incluso definir varias ubicaciones de aparición para el mismo archivo de jefe.
Usa Nightbreak Forge para crear configuraciones de jefes personalizados.
Configuración mínima posible
El archivo de configuración más pequeño posible para un jefe personalizado es:
Fíjate en que se trata simplemente de un archivo vacío. Aun así generará un jefe personalizado de tipo zombi con un nombre personalizado, ya que esos son los valores por defecto. ¡Todo lo que aparece en esta página es opcional!
Reutilizar otro archivo de jefe
Un archivo de jefe puede partir de otro archivo de jefe con extends y cambiar solo lo que sea distinto:
extends: my_base_boss.yml
name: '&cEnraged Copy'
healthMultiplier: 3
El archivo hereda todos los valores de la base y sobrescribe las claves que define. Las secciones anidadas, como patrol, se combinan clave por clave; una lista, como uniqueLootList, sustituye por completo la lista de la base. Indica la base solo por su nombre de archivo, sin ruta de carpeta. Debe ser otro archivo de custombosses, incluidas sus subcarpetas, y puede a su vez extender otra base.
isEnabled, spawnLocation, spawnLocations, leashRadius, powers y eliteScript nunca se heredan, así que defínelos en cada archivo que los necesite. Una base con isEnabled: false funciona como plantilla: no puede aparecer por sí sola, pero los archivos que la extienden se cargan igualmente. EliteMobs no escribe valores por defecto en un archivo que usa extends, de modo que se queda tan corto como lo escribiste. Una base que no existe, una ruta en extends o un bucle de referencias extends desactiva el archivo con una advertencia en la consola.
Jefe de ejemplo
Veamos un ejemplo del aspecto que tiene un archivo de jefe.
Ejemplo
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!"
Ajustes básicos
isEnabled
Define si el jefe está activado.
| Clave | Valores | Por defecto |
|---|---|---|
isEnabled | true / false | true |
Ejemplo
isEnabled: true
entityType
Define el tipo de entidad del jefe.
| Clave | Valores | Por defecto |
|---|---|---|
entityType | Una criatura generable de EntityType con propiedades de mob registradas en EliteMobs. Los tipos no compatibles desactivan la configuración del jefe. | ZOMBIE |
Cubos de magma y slimes
Dado que estos tipos de entidad no atacan a los jugadores directamente, sino que infligen daño por contacto, pueden provocar grandes ráfagas de daño en muy poco tiempo. Por ello, en general no recomendamos usarlos como mobs Elite con frecuencia. Aun así, si quieres utilizarlos, te sugerimos ajustar damageMultiplier a un valor cercano a 0.1.
También recomendamos usar el siguiente EliteScript para evitar que los cubos de magma o los slimes dejen a los jugadores bloqueados por aturdimiento:
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
Ejemplo
entityType: ZOMBIE
name
Define el nombre del jefe.
| Clave | Valores | Por defecto |
|---|---|---|
name | String, acepta color codes y los marcadores de posición que se listan más abajo | "Default Name" |
Ejemplo
name: "$normalLevel &cCool boss!"

Si quieres incluir el nivel del jefe en su campo de nombre, basta con usar uno de los siguientes marcadores de posición.
| Marcador | Descripción | Ejemplo | Resultado (para un jefe de nivel 10) |
|---|---|---|---|
$level | Se sustituye por el nivel | "$level Cool boss" | 10 Cool boss |
$normalLevel | Se sustituye por el nivel, pensado para mobs normales | "$normalLevel Cool boss" | [10] Cool boss |
$minibossLevel | Se sustituye por el nivel, pensado para minijefes | "$minibossLevel Cool boss" | 〖10〗 Cool boss |
$bossLevel | Se sustituye por el nivel, pensado para jefes | "$bossLevel Cool boss" | 『10』 Cool boss |
$reinforcementLevel | Se sustituye por el nivel, pensado para refuerzos | "$reinforcementLevel Cool boss" | 〔10〕 Cool Boss |
$eventBossLevel | Se sustituye por el nivel, pensado para jefes de evento | "$eventBossLevel Cool boss" | 「10」 Cool boss |
Ejemplo
name: "$normalLevel &cCool boss!"

level
Define el nivel del jefe.
| Clave | Valores | Por defecto |
|---|---|---|
level | Números Integer positivos o dynamic | dynamic |
dynamic parte del mayor nivel de aparición natural calculado para los jugadores del mismo mundo a menos de 16 * (distancia de visión del servidor + 2) bloques, con un mínimo de 1. Los jefes dinámicos registrados se recalculan cada 5 segundos, por lo que su nivel puede cambiar tras aparecer. Un nivel de aparición explícito anula este comportamiento. Usa un nivel fijo en encuentros regionales que necesiten una dificultad estable.
Ejemplo
level: 1
scale
Define la escala (el tamaño) del jefe.
| Clave | Valores | Por defecto |
|---|---|---|
scale | Multiplier | 1.0 |
Al escalar, 1.0 representa el tamaño por defecto. Para agrandar la entidad, aumenta el valor (por ejemplo, 1.2). Para hacerla más pequeña, redúcelo (por ejemplo, 0.8).
Ejemplo
scale: 1.2
bossType
Clasifica al jefe para sistemas como el botín automático de clase. Las barras de salud usan healthMultiplier y los ajustes de MobCombatSettings.yml, no esta etiqueta.
| Clave | Valores | Por defecto |
|---|---|---|
bossType | NORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENT | NORMAL |
Para el botín automático de clase, MINIBOSS selecciona el rango de minijefe, BOSS y EVENT el de jefe, y los jefes normales usan el rango de enemigo común salvo que classLootRank lo anule.
REINFORCEMENT es una clasificación configurada; no se asigna automáticamente a toda invocación. El seguimiento de refuerzos invocados y monturas durante la ejecución controla por separado su derecho a recompensas.
Ejemplo
bossType: MINIBOSS
silent
Define si los sonidos del jefe deben silenciarse.
| Clave | Valores | Por defecto |
|---|---|---|
silent | Boolean | false |
Con true, silencia los sonidos nativos de Minecraft de la entidad. Este ajuste no controla los sonidos reproducidos por scripts ni la música del jefe.
Ejemplo
silent: true
healthMultiplier
Multiplica la salud del jefe. Las barras de salud también consultan este valor: una barra de jefe independiente requiere displayBossBarForHighMultiplier y un multiplicador superior a bossBarHealthMultiplierThreshold en MobCombatSettings.yml.
| Clave | Valores | Por defecto |
|---|---|---|
healthMultiplier | Multiplier | 1.0 |
Primero se limita la salud base exponencial al máximo del servidor. Después EliteMobs aplica healthMultiplier, impone un mínimo de 1 HP y vuelve a limitar el resultado a settings.attribute.maxHealth.max de spigot.yml. EliteMobs eleva ese valor a 2048 al arrancar si es menor, pero nunca por encima, así que 2048 es el techo efectivo en un servidor por defecto.
Estos límites describen el cálculo base del jefe. Los jefes de instancias aplican después el multiplicador de grupo 0.75 * playerCount cuando participan al menos dos jugadores, sin otro límite de salud del plugin. La tabla siguiente no garantiza la salud final de la instancia ni que el servidor acepte un valor superior al límite del atributo.
La salud base sigue la fórmula 2.1875 × 2^(level / 5), así que se duplica cada 5 niveles. Combinado con el límite, cada healthMultiplier tiene un nivel a partir del cual el jefe deja de ganar salud por completo mientras su daño sigue escalando:
healthMultiplier | La salud deja de crecer en el nivel |
|---|---|
1.0 | 50 |
2.0 | 45 |
5.0 | 38 |
7.0 | 36 |
10.0 | 33 |
20.0 | 28 |
40.0 | 23 |
Por encima de ese nivel, aumentar el nivel configurado ya no aumenta la salud máxima real. El daño sigue dependiendo del sistema de combate, las habilidades relativas, las estadísticas del arma y los multiplicadores; el límite no garantiza un número fijo de golpes en ningún sentido. EliteMobs avisa cuando la salud multiplicada supera el límite, pero la limitación previa de la salud base es silenciosa. Un multiplicador inferior a 1 se aplica a la salud base ya limitada.
Si realmente necesitas más de 2048 de salud, eleva tú mismo settings.attribute.maxHealth.max en spigot.yml; el límite lee el valor activo del servidor, no una constante fija.
Ejemplo
healthMultiplier: 1.5
damageMultiplier
Define el multiplicador de daño del jefe.
| Clave | Valores | Por defecto |
|---|---|---|
damageMultiplier | Multiplier | 1.0 |
Ejemplo
damageMultiplier: 1.5
isBaby
Define si el jefe usa la variante bebé del mob. Solo puede aplicarse a mobs que tengan variante bebé. Si quieres disfrazar al jefe pero además quieres que siga siendo bebé mientras está disfrazado (asegúrate de que la entidad del disfraz también admita la variante bebé), puedes usar este ajuste:
disguise: HOGLIN:baby
| Clave | Valores | Por defecto |
|---|---|---|
isBaby | true / false | false |
Ejemplo
isBaby: true
helmet/chestplate/leggings/boots/mainHand/offHand
Define la armadura y los objetos que sostiene el jefe. Algunos tipos de entidad y modelos personalizados no muestran estas ranuras. La armadura equipada no aporta puntos de armadura en el combate normal de EliteMobs, pero los objetos sostenidos pueden afectar a los ataques nativos, como un esqueleto que usa un arco.
| Clave | Valores | Por defecto |
|---|---|---|
helmet | Material, UUID | none |
chestplate | Material | none |
leggings | Material | none |
boots | Material | none |
mainHand | Material | none |
offHand | Material | none |
Usa nombres de material en mayúsculas. Estos campos crean equipo a partir de materiales; no cargan archivos .yml de objetos personalizados. En objetos que no sean de cuero, añade un entero de datos de modelo personalizado como ITEM_MATERIAL:ID. Por ejemplo, DIAMOND_SWORD:1 selecciona los datos de modelo personalizado 1 de tu paquete de recursos.
Nota 2: Este campo también permite definir colores de cuero personalizados con el formato ITEM_MATERIAL:CÓDIGO, donde el código es la representación hexadecimal del color. Ejemplo: LEATHER_LEGGINGS:ffa500 crearía unos pantalones naranjas. Puedes usar códigos hexadecimales; simplemente quita el # del código. Puedes obtener códigos hexadecimales aquí.
Nota 3: Un UUID de jugador en minúsculas y con guiones crea una cabeza mediante la consulta de perfiles de jugadores desconectados de Bukkit. El jugador no necesita estar conectado; la apariencia depende de que el servidor resuelva ese perfil.
Ejemplo
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

powers
Define los poderes que tiene el jefe.
| Clave | Valores | Por defecto |
|---|---|---|
powers | Consulta la lista de más abajo | ninguno |
Ejemplo
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua
Nota: Puedes consultar esta página si quieres ver una lista de poderes predefinidos que puedes utilizar.
Nota: Los poderes pueden ser archivos .yml (EliteScript) o archivos .lua (scripts Lua). Ambos tipos son compatibles y pueden mezclarse libremente en la lista powers. Casi todos los poderes predefinidos son ya .lua.
.yml siguen funcionandoSi hay un poder .lua cargado con el mismo nombre base, EliteMobs resuelve automáticamente una petición .yml o .yaml hacia él. Por ejemplo, attack_arrow.yml selecciona el attack_arrow.lua cargado. No basta con que el archivo exista en disco. Las configuraciones nuevas deberían nombrar directamente el archivo .lua.
Configuración intermedia: invocar refuerzos
Los refuerzos también pertenecen a la categoría de poderes y usan los siguientes ajustes:
Nota: Los refuerzos se configuran dentro de la sección powers de tu archivo de configuración de jefe, no como una sección aparte.
Ajustes de los refuerzos
| Clave | Descripción | Valores | Por defecto |
|---|---|---|---|
summonType | Qué desencadena la aparición del refuerzo. Obligatorio. | Consulta la lista de más abajo | ninguno |
filename | Archivo del jefe que se invocará. Obligatorio salvo en entradas de cristales. | String | ninguno |
chance | Probabilidad de una tanda normal de invocaciones. GLOBAL y los cristales la ignoran. Opcional. | Double | 1.0 |
amount | Define la cantidad de refuerzos que aparecerán. Opcional. | Integer | 1 |
inheritAggro | Hace que el refuerzo herede el aggro del jefe. Opcional. | true / false | false |
spawnNearby | Hace que los refuerzos aparezcan en un área de 30x30 bloques (±15 bloques en X y Z) alrededor del punto de aparición. Opcional. | true / false | false |
inheritLevel | Hace que el refuerzo herede el nivel del jefe. Opcional | true / false | false |
customSpawn | Hace que el refuerzo aparezca mediante el sistema de apariciones personalizadas. Solo se usa con summonType: GLOBAL | Nombre de archivo de la aparición personalizada | ninguno |
location | Desplazamiento relativo de aparición. Opcional. | x,y,z: siempre un desplazamiento relativo respecto al jefe. En los jefes regionales, el desplazamiento es relativo a la ubicación de aparición. | ninguno |
lightningRod | Ajuste especial para summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Hace que los cristales del End generen rayos a su alrededor. Opcional. | true / false | false |
difficultyID | Restringe la entrada a dificultades de mazmorra instanciada concretas. Opcional. | String o lista de cadenas | ninguno |
Los tipos de invocación establecen las condiciones para la aparición de los refuerzos. Esta es la lista de tipos de invocación válidos:
Tipos de invocación
| Valor | Descripción |
|---|---|
ONCE | Intenta una tanda al recibir daño válido de un jugador hasta que un intento quede marcado como invocado. Una tirada de probabilidad fallida puede repetirse en un golpe posterior. |
ON_HIT | Intenta una tanda cuando un jugador daña al jefe. Requiere IA activa, un evento no cancelado y al menos 3 de daño. |
ON_COMBAT_ENTER | Genera los refuerzos cuando el jefe entra en combate. |
ON_DEATH | Genera refuerzos cuando el jefe muere. |
GLOBAL | Encola amount invocaciones mediante customSpawn al aparecer el jefe y cada 10 segundos, incluso fuera de combate. Deja de añadir invocaciones cuando el número registrado alcanza 30 * jugadores del mundo de aparición. Requiere una aparición personalizada válida. |
ON_COMBAT_ENTER_PLACE_CRYSTAL | Coloca un cristal del End en el desplazamiento configurado al entrar en combate. Ignora amount y chance; está pensado para combates de dragón personalizados. |
ONCE exige la misma IA activa y el mínimo de 3 de daño que ON_HIT. GLOBAL usa su configuración de aparición personalizada en lugar de los campos normales location, spawnNearby, inheritLevel e inheritAggro. Consulta Refuerzos para conocer el comportamiento completo.
Ten en cuenta que también es posible generar refuerzos mediante Elite Scripts, así que existen formas más personalizables de invocarlos.
Ejemplo
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
Configuración avanzada: crear tus propios poderes
Es posible crear tus propios poderes, ya sea en el propio archivo del jefe o como un nuevo archivo de configuración en la carpeta de poderes. Puedes obtener más información al respecto aquí.
Nota: También puedes definir comportamientos del jefe directamente en el archivo de configuración del jefe mediante el campo eliteScript. Para consultar la documentación completa sobre el uso de Elite Scripts, consulta la guía de poderes.
Como alternativa a EliteScript, también puedes escribir poderes usando scripts Lua. Los poderes en Lua se colocan en la carpeta de poderes con la extensión .lua y se referencian por nombre de archivo en la lista powers. Consulta la guía Primeros pasos con Lua para más información.
Limitar poderes según la dificultad de una mazmorra instanciada
Las mazmorras instanciadas pueden tener ajustes de dificultad, y es posible hacer que un poder concreto solo esté activo en determinadas dificultades.
Opciones para limitar poderes
| Clave | Descripción | Valores | Por defecto |
|---|---|---|---|
filename | Nombre del archivo del poder. | String | ninguno |
difficultyID | Un ID de dificultad o una lista, resueltos según la convención numérica o de nombres de la mazmorra. | Cadena, número o lista | ninguno |
Esto solo se aplica a los jefes instanciados: los jefes de las mazmorras instanciadas y los jefes instanciados que otro plugin genera con una dificultad mediante la API de EliteMobs.
Ejemplo
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3
spawnMessage
Define el mensaje que se envía cuando aparece el jefe. Requiere configurar announcementPriority.
| Clave | Valores | Por defecto |
|---|---|---|
spawnMessage | Strings y color codes | ninguno |
Ejemplo
announcementPriority: 3
spawnMessage: I rise once more!
deathMessages
Define los mensajes que se envían cuando muere el jefe y tiene atacantes registrados. Requiere que doCustomEliteMobsDeathMessages esté activado en MobCombatSettings.yml (por defecto true). La prioridad 0 los envía en privado a los atacantes; las prioridades positivas los difunden.
| Clave | Valores | Por defecto |
|---|---|---|
deathMessages | Strings, color codes y los marcadores de posición de más abajo | ninguno |
Ejemplo
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---------------------------------------------'

Los mensajes de muerte admiten los siguientes marcadores de posición:
Marcadores de posición
| Valor | Descripción |
|---|---|
$damager1name | Nombre visible de quien más daño infligió |
$damager1Name | Nombre de usuario de quien más daño infligió |
$damager2name | Nombre visible del segundo atacante por daño |
$damager2Name | Nombre de usuario del segundo atacante por daño |
$damager3name | Nombre visible del tercer atacante por daño |
$damager3Name | Nombre de usuario del tercer atacante por daño |
$damager1damage | La cantidad de daño de quien más daño infligió |
$damager2damage | La cantidad de daño de quien infligió el segundo mayor daño |
$damager3damage | La cantidad de daño de quien infligió el tercer mayor daño |
$players | Lista los nombres visibles de todos los atacantes |
$playersName | Lista los nombres de usuario de todos los atacantes |
deathMessage
Define un mensaje al morir el jefe. Se usa cuando deathMessages está vacío, con las mismas reglas de prioridad y el mismo ajuste global. Admite $players y $playersName, pero no los marcadores de atacantes individuales.
| Clave | Valores | Por defecto |
|---|---|---|
deathMessage | String, color codes, $players y $playersName | ninguno |
Ejemplo
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'
onKillMessage
Define el mensaje de muerte del jugador cuando este jefe lo mata. Usa el evento de muerte del jugador y no requiere announcementPriority.
| Clave | Valores | Por defecto |
|---|---|---|
onKillMessage | Strings y color codes | ninguno |
Marcadores de posición:
| Valor | Descripción |
|---|---|
$player | El nombre visible del jugador que murió |
$playerName | El nombre de usuario del jugador que murió |
$entity | Nombre del jefe |
Ejemplo
announcementPriority: 3
onKillMessage: I win, you lose!
slimeSize
Define el tamaño del jefe slime, pero solo funciona con slimes y cubos de magma.
| Clave | Valores | Por defecto |
|---|---|---|
slimeSize | Integer | 4 |
Ejemplo
slimeSize: 5
neutral
Impide que EliteMobs fuerce a entidades neutrales, como lobos y gólems de hierro, a elegir jugadores como objetivo. También impide iniciar un programa de comportamiento Mind. El comportamiento nativo sigue aplicándose; este ajuste no vuelve pasivo a un tipo de entidad hostil.
| Clave | Valores | Por defecto |
|---|---|---|
neutral | Boolean | false |
Ejemplo
neutral: true
Ajustes avanzados
timeout
Define el tiempo, en minutos, hasta que desaparece el jefe personalizado. 0 desactiva este tiempo límite.
| Clave | Valores | Por defecto |
|---|---|---|
timeout | Tiempo (en minutos) Integer | 0 |
Ejemplo
timeout: 20
Hace que el jefe escape al cabo de 20 minutos.
isPersistent
Conserva el estado lógico del jefe para restaurarlo al volver a cargar su chunk. Los cuerpos normales se eliminan y reaparecen; un cuerpo nativo Mind persistente puede suspenderse y volver a asociarse en la misma sesión del servidor. Este ajuste no mantiene chunks cargados ni conserva entre reinicios cualquier jefe generado por comando. Las ubicaciones regionales y los plazos de reaparición se guardan por separado.
| Clave | Valores | Por defecto |
|---|---|---|
isPersistent | true / false | false |
Ejemplo
Ejemplo:
isPersistent: true
damageModifiers
Define multiplicadores de daño según el material Bukkit del arma atacante. Los proyectiles registrados usan el material guardado del tirador. El daño personalizado que omite las comprobaciones normales no aplica este modificador de material.
| Clave | Valores | Por defecto |
|---|---|---|
damageModifiers | Material | ninguno |
Ejemplo
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0
En este ejemplo, los jefes solo reciben el 80 % del daño de las espadas de diamante (un 20 % menos), pero reciben el 200 % del daño de los tridentes (el doble).
normalizedCombat
Selecciona el combate normalizado y sus ajustes normalizedDamageToEliteMultiplier / normalizedDamageToPlayerMultiplier. Las fórmulas actuales de salud y daño por habilidades se explican en Sistema de daño. normalizeRegionalBosses en MobCombatSettings.yml fuerza la normalización en jefes regionales e instanciados aunque este campo sea false. Los encuentros por fases toman el ajuste de normalización de la fase 1.
| Clave | Valores | Por defecto |
|---|---|---|
normalizedCombat | true / false | false |
Ejemplo
Ejemplo:
normalizedCombat: true
scaledCombat
Selecciona el combate escalado, que calcula el daño con el nivel efectivo de progresión del jugador atacante o defensor y convierte el daño del jugador a la reserva real de salud del jefe. El jefe mantiene una única reserva de salud compartida y su nivel guardado. El nivel de las recompensas y el derecho al botín se resuelven por separado; este ajuste no garantiza idéntica dificultad ni botín sin restricciones para todos.
El combate escalado está pensado principalmente para jefes de evento del mundo normal y para jefes personalizados que deban ser accesibles a jugadores de cualquier nivel. Para contenido de mazmorra con una dificultad fija prevista, usa normalizedCombat en su lugar.
Cuando se establece scaledCombat: true, este tiene prioridad aunque el jefe fuese a usar combate normalizado. Los mobs Elite que aparecen de forma natural usan combate escalado por defecto (controlado por el ajuste useScaledCombatForNaturalElites en MobCombatSettings.yml).
Consulta la página Sistema de daño para conocer todos los detalles sobre el funcionamiento del combate escalado.
| Clave | Valores | Por defecto |
|---|---|---|
scaledCombat | true / false | false |
Ejemplo
scaledCombat: true
escapeMessage
Define el mensaje que se anuncia a los jugadores cuando el jefe escapa mediante la mecánica de timeout. Requiere tener configurado announcementPriority.
| Clave | Valores | Por defecto |
|---|---|---|
escapeMessage | String | ninguno |
Ejemplo
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"
locationMessage
Define el mensaje de ubicación de la barra de seguimiento. El seguimiento requiere announcementPriority de al menos 1 y showCustomBossLocation activado en MobCombatSettings.yml. El mensaje es opcional: si falta o está vacío, usa $name: $distance blocks away!.
| Clave | Valores | Por defecto |
|---|---|---|
locationMessage | String, Color codes y los marcadores de posición que se listan más abajo | $name: $distance blocks away! si falta o está vacío |
Marcadores de posición:
| Valor | Descripción |
|---|---|
$name | Nombre visible del jefe personalizado |
$distance | Se sustituye por la distancia a la que está el jugador del jefe personalizado. Es la opción preferible. |
$location | Se sustituye por las coordenadas x, y, z del jefe personalizado |
Ejemplo
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

Esto mostraría algo como Cool boss: At 414,55,347 only 10 blocks away!
uniqueLootList
Define los objetos personalizados que suelta el jefe.
| Clave | Valores | Por defecto |
|---|---|---|
uniqueLootList | List | ninguno |
Las entradas de botín del botín personalizado siguen el formato de tabla de botín. ¡Más información aquí! Ten en cuenta que algunos archivos antiguos pueden estar usando tablas de botín obsoletas cuyo aspecto difiere del ejemplo.
Ejemplo
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- magmaguys_toothpick.yml:0.5:elitemobs.*
dropsEliteMobsLoot
Define si el jefe soltará botín de EliteMobs, excluyendo los objetos de uniqueLootList. Incluye monedas.
| Clave | Valores | Por defecto |
|---|---|---|
dropsEliteMobsLoot | true / false | true |
Se recomienda establecerlo en false para los mobs de refuerzo.
Ejemplo
dropsEliteMobsLoot: true
dropsVanillaLoot
Define si el jefe personalizado soltará el botín vanilla que normalmente corresponde a su tipo de mob vanilla.
| Clave | Valores | Por defecto |
|---|---|---|
dropsVanillaLoot | true / false | true |
Ejemplo
dropsVanillaLoot: true
dropsRandomLoot
Define si el jefe personalizado soltará botín generado proceduralmente por EliteMobs. No incluye monedas Elite.
| Clave | Valores | Por defecto |
|---|---|---|
dropsRandomLoot | true / false | true |
Ejemplo
dropsRandomLoot: true
dropsSkillXP
Define si el jefe suelta XP de habilidad al morir. Esta XP hace progresar las habilidades de armas y armadura y sus bonificaciones. El sistema de XP excluye refuerzos y monturas aunque este ajuste sea true.
| Clave | Valores | Por defecto |
|---|---|---|
dropsSkillXP | true / false | true |
Se recomienda establecerlo en false para los mobs de refuerzo o los jefes que no deban contribuir a la progresión de habilidades.
Ejemplo
dropsSkillXP: false
Botín automático de clase
classLoot activa una tirada independiente de equipo básico. Está activado por defecto salvo para bossType: REINFORCEMENT. classLootDifficulty acepta AUTO, NORMAL, HARD o MYTHIC; classLootRank acepta AUTO, TRASH, MINIBOSS o BOSS. Ambos usan AUTO por defecto; los valores no válidos generan una advertencia y vuelven a AUTO.
Define el equipo de clase como objetos normales con itemType: CLASS_LOOT referenciados en uniqueLootList. Participan en la selección de clase en vez de hacer tiradas independientes de botín único. El antiguo campo del jefe classLootItems no se lee. Consulta botín automático de clase para conocer los requisitos, límites, familias, perfiles y resolución de dificultad.
trails
Define el rastro que el jefe deja tras de sí al moverse.
| Clave | Valores | Por defecto |
|---|---|---|
trails | Partículas o materiales de objeto | ninguno |
Solo funcionan como rastro las partículas que no requieren datos adicionales, las partículas simples de la lista de partículas válidas. Se omiten las que requieren datos, como DUST e ITEM. BLOCK y LAVA detienen el procesamiento del resto de la lista; evita esas entradas. Los nombres de material generan un rastro animado de objetos. Los rastros se ejecutan mientras el jefe sea válido, incluso estando quieto.
Ejemplo
trails:
- CLOUD
onDamageMessages
Elige una línea aleatoria para sustituir temporalmente el nombre del jefe al dañar a un jugador. Restaura el nombre tras 80 ticks; los golpes solapados pueden sustituir la línea o restaurar el nombre antes de que venza el temporizador de la última línea.
| Clave | Valores | Por defecto |
|---|---|---|
onDamageMessages | List | ninguno |
Ejemplo
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

onDamagedMessages
Elige una línea aleatoria para sustituir temporalmente el nombre del jefe al producirse un evento de daño de EliteMobs. No se limita al daño de jugadores. Restaura el nombre tras 80 ticks; los eventos solapados pueden sustituir la línea o restaurar el nombre antes de que venza el temporizador de la última línea.
| Clave | Valores | Por defecto |
|---|---|---|
onDamagedMessages | List | ninguno |
Ejemplo
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

mountedEntity
Define la entidad que el jefe montará y sobre la que cabalgará.
| Clave | Valores | Por defecto |
|---|---|---|
mountedEntity | Nombre del archivo del jefe que se montará o tipo de entidad | ninguno |
No intentes hacer que el jefe se monte a sí mismo.
Ejemplo
mountedEntity: wild_wolf.yml

Nota: Los jefes regionales comparten su correa con la entidad que montan, lo que significa que ambos serán arrastrados de vuelta a la ubicación de aparición si superan la distancia permitida por dicha correa.
announcementPriority
Define el nivel de prioridad de los anuncios. Las prioridades bajas hacen que no se emita ningún anuncio; las altas permiten anunciar no solo en el chat, sino también en Discord si está configurado.
| Clave | Valores | Por defecto |
|---|---|---|
announcementPriority | Integer | 0 |
Nota: si la clave falta en un archivo de jefe que sí tiene texto de anuncio (locationMessage, spawnMessage, deathMessage, escapeMessage o una lista deathMessages no vacía), EliteMobs escribe announcementPriority: 0 en el archivo al cargarlo, para que el ajuste sea visible y fácil de subir. El jefe sigue comportándose como prioridad 0 hasta que lo cambies.
Esta es la lista de lo que hace cada prioridad:
| Valor | Descripción |
|---|---|
0 | Valor por defecto. Sin anuncios de aparición o huida ni seguimiento; el texto de muerte configurado aún puede enviarse en privado a los atacantes. |
1 | Permite los mensajes configurados de aparición, muerte y huida en el chat. El seguimiento mediante /em está disponible si showCustomBossLocation está activado; locationMessage es opcional. |
2 | Idéntico a 1 para los jefes personalizados: no existe una ruta de código distinta para la prioridad 2. (Los eventos personalizados sí tratan el 2 de forma diferente; consulta Sistema de prioridad de anuncios). |
3 | Además de lo indicado en 1, los mensajes de difusión se reflejarán en Discord si está configurado. Información sobre la configuración de Discord aquí. |
Este es un ejemplo de un jefe al que se puede seguir y que puede enviar mensajes de aparición, muerte y huida tanto en el chat como en Discord:
Ejemplo
announcementPriority: 3
Nota: Configura spawnMessage, deathMessage/deathMessages y escapeMessage para sus anuncios en chat y Discord. El seguimiento dispone de un mensaje de ubicación predeterminado; configura locationMessage solo para personalizarlo.
followDistance
Define la distancia a la que los jefes reaccionan y entran en combate. Se mide desde el propio mob.
| Clave | Valores | Por defecto |
|---|---|---|
followDistance | Integer | 0 |
Un followDistance positivo sustituye el atributo nativo de alcance de seguimiento; 0 deja el atributo sin cambios.
Nota 1: Los jefes regionales no alertas dividen su alcance actual entre 3 al ralentizarse al aparecer o salir de combate. Al entrar en combate recuperan el alcance registrado. Así se evita que reaccionen desde demasiado lejos y provoquen problemas con la correa.
Nota 2: Cuanto mayor sea el followDistance, más carga supone el jefe para la CPU del servidor. ¡Úsalo con cuidado y responsabilidad!
Ejemplo
followDistance: 30
Establece un alcance de 30 bloques: si un jugador se acerca al jefe dentro de esa distancia, este empezará a perseguirlo y atacarlo.
onDeathCommands
Define la lista de comandos que se ejecutan cuando muere el jefe personalizado.
| Clave | Valores | Por defecto |
|---|---|---|
onDeathCommands | List | ninguno |
Los comandos se ejecutan desde la consola. Un comando con $chance=x$ y $players hace una tirada independiente por atacante. La lista admite los siguientes marcadores de posición:
| Valor | Descripción |
|---|---|
$level | Marcador de posición para el nivel del jefe. |
$name | Marcador de posición para el nombre del jefe. |
$chance=x$ | Hace que un comando tenga una probabilidad de ejecutarse. |
$players | Hace que el comando se ejecute una vez por cada jugador de la lista de atacantes, sustituyéndose cada vez por el nombre de usuario de un jugador distinto de esa lista. |
$locationWorldName | Nombre del mundo en el momento de la muerte. |
$locationX | Coordenada X del jefe en el momento de su muerte. |
$locationY | Coordenada Y del jefe en el momento de su muerte. |
$locationZ | Coordenada Z del jefe en el momento de su muerte. |
$damager1name | Nombre de usuario de quien más daño infligió |
$damager2name | Nombre de usuario de quien infligió el segundo mayor daño |
$damager3name | Nombre de usuario de quien infligió el tercer mayor daño |
Echa un vistazo al ejemplo de más abajo para entender mejor cómo funcionan.
Ejemplo
onDeathCommands:
- "say $players has killed $name! That was level $level!"
- "$chance=0.5$ say What a kill!"

Si Player1, Player2 y Player3 dañaron al jefe antes de matarlo, esta será la salida del comando en la consola:
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!
Además, hay un 50 % de probabilidades de que también se muestre lo siguiente:
say What a kill!
onSpawnCommands
Define la lista de comandos que se ejecutarán cuando aparezca el jefe.
| Clave | Valores | Por defecto |
|---|---|---|
onSpawnCommands | List | ninguno |
Los comandos se ejecutan desde la consola y admiten $chance=x$. Este evento no proporciona los marcadores de jefe, ubicación o jugador de onDeathCommands.
Ejemplo
onSpawnCommands:
- say Boss has spawned!

onCombatEnterCommands
Define la lista de comandos que se ejecutarán cuando el jefe entre en combate.
| Clave | Valores | Por defecto |
|---|---|---|
onCombatEnterCommands | List | ninguno |
Los comandos se ejecutan desde la consola y admiten $chance=x$. Este evento no proporciona los marcadores de jefe, ubicación o jugador de onDeathCommands.
Ejemplo
onCombatEnterCommands:
- say Boss has entered combat!

onCombatLeaveCommands
Define la lista de comandos que se ejecutan cuando el jefe sale de combate.
| Clave | Valores | Por defecto |
|---|---|---|
onCombatLeaveCommands | List | ninguno |
Los comandos se ejecutan desde la consola y admiten $chance=x$. Este evento no proporciona los marcadores de jefe, ubicación o jugador de onDeathCommands.
Ejemplo
onCombatLeaveCommands:
- say Boss has left combat!

disguise
Define el disfraz de LibsDisguises si ese plugin está activado. Más información aquí.
| Clave | Valores | Por defecto |
|---|---|---|
disguise | String | ninguno |
customDisguiseData | String | ninguno |
Ejemplo de disfraz
disguise: CHICKEN

Ejemplo de disfraz personalizado
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}

Define un disfraz personalizado de Skindex. Consulta esta página para aprender a dar el formato correcto a estos datos.
customModel
Define el modelo personalizado que se usará, si tienes un modelo personalizado y los plugins FreeMinecraftModels o ModelEngine. Más información sobre cómo crear y usar modelos personalizados aquí.
| Clave | Valores | Por defecto |
|---|---|---|
customModel | String | ninguno |
Ejemplo
customModel: your_model
customModelMountPointID
Define el ID del punto de montura para modelos personalizados cuando el jefe monta a otra entidad o es montado por ella.
| Clave | Valores | Por defecto |
|---|---|---|
customModelMountPointID | String | ninguno |
Ejemplo
customModelMountPointID: your_mount_point_id
frozen
Pone a cero el atributo de velocidad de movimiento y elimina la velocidad inmediatamente y un tick después de un evento de daño de EliteMobs. Los jefes congelados mantienen la IA y pueden atacar. Este ajuste no detiene scripts, teletransportes ni todas las mecánicas de movimiento propias de cada entidad.
| Clave | Valores | Por defecto |
|---|---|---|
frozen | true / false | false |
Ejemplo
frozen: true
ai
Define si el jefe tiene la IA activada. Cuando se establece en false, el jefe no se mueve ni ataca por sí mismo. Esto resulta útil para jefes que se controlan por completo mediante Elite Scripts.
| Clave | Valores | Por defecto |
|---|---|---|
ai | true / false | true |
Ejemplo
ai: false
behavior
behavior selecciona un programa Lua Mind reutilizable de plugins/EliteMobs/behaviors/. Por ejemplo:
entityType: ZOMBIE
ai: true
behavior: basic_melee.lua
El basic_melee.lua incluido combina módulos de selección de objetivo, persecución, ataque cuerpo a cuerpo y deambulación de behaviors/modules/. Edita o copia un programa de comportamiento allí; no es un poder y no pertenece a powers/.
Si el jefe omite behavior, usa el ajuste de propiedades de su tipo de entidad. behavior: native selecciona explícitamente la IA nativa. ai: false y los jefes neutrales no inician programas de comportamiento. El cargador normal del jefe sigue gestionando aparición, equipo, poderes, persistencia y eliminación.
Los programas requieren el servicio Mind nativo en una versión compatible del servidor. Un archivo desconocido o no válido es un error de configuración, no una petición para elegir otra IA silenciosamente. Los ID de programa deben usar el espacio de nombres elitemobs:; las referencias a subcarpetas usan barras /. Consulta la referencia del contexto Mind para conocer la API.
alwaysShowName
Mantiene visible el nombre fuera de combate. El ajuste global alwaysShowEliteMobNameTags también puede activarlo. FreeMinecraftModels actual usa un hueso tag_, como tag_head, para colocar el nombre si existe; en caso contrario lo coloca sobre la caja de colisión del modelo. Las versiones antiguas de FMM pueden requerir un anclaje en el modelo. Consulta modelos personalizados para el comportamiento de cada modelo.
| Clave | Valores | Por defecto |
|---|---|---|
alwaysShowName | true / false | false |
Ejemplo
alwaysShowName: true
reinforcement
Marca la definición como refuerzo. Omite la inicialización de ubicaciones regionales normales y excluye el botín automático de clase. El registro de ubicaciones instanciadas sigue su propio proceso. El ajuste no invoca al jefe ni establece un invocador; el seguimiento de refuerzos y monturas durante la ejecución controla otras exclusiones de recompensas por separado.
| Clave | Valores | Por defecto |
|---|---|---|
reinforcement | true / false | false |
Ejemplo
reinforcement: true
song
Define la música que el jefe ofrece a jugadores cercanos tras aparecer. El paquete de recursos debe definir la clave del sonido y su audio .ogg.
| Clave | Valores | Por defecto |
|---|---|---|
song | String | ninguno |
Configura un followDistance positivo para definir el alcance de inicio. Cada 10 ticks, el jefe busca jugadores en su mundo dentro de esa distancia configurada. Una vez iniciada, la música continúa mientras el jugador esté conectado, en el mismo mundo y a no más de 1,5 veces el alcance de seguimiento registrado del jefe. Eliminar el jefe la detiene. La música del jefe tiene prioridad sobre el ambiente de mazmorra; cada jugador oye una sola pista gestionada a la vez.
Usa name=SOUND_KEY length=MILLISECONDS, con un espacio entre ambos campos. Las duraciones son enteros en milisegundos convertidos a ticks, redondeando hacia abajo y con un retardo mínimo de un tick. La reproducción usa la categoría MUSIC con volumen 1 y tono 1.
Ejemplo
Hay dos formas de configurar canciones. Esta es la primera:
song: name=elitemobs:ice_queen.idle length=76370
Esto reproducirá la canción ice_queen.idle durante 76370 milisegundos y después la repetirá en bucle. Ten en cuenta que la ubicación de la canción la determina el paquete de recursos.
Esta es la segunda forma de configurar canciones:
song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657
Esto reproducirá la canción ice_queen.end_transition durante 14328 milisegundos, después pasará a ice_queen.end_loop durante 28657 milisegundos y repetirá end_loop en bucle.
Esto permite que los jefes tengan una canción de «introducción» o «transición» y después una pista principal que se repite en bucle.
cullReinforcements
Controla si los refuerzos registrados, incluidas las invocaciones GLOBAL, se eliminan al retirar el jefe. La salida de combate y la recuperación completa de salud eliminan por separado los refuerzos normales registrados; ponerlo en false no garantiza que todas las invocaciones sobrevivan.
| Clave | Valores | Por defecto |
|---|---|---|
cullReinforcements | true / false | true |
Ejemplo
cullReinforcements: true
movementSpeedAttribute
Define la velocidad de movimiento del jefe.
Nota: cualquier valor por encima de 0.36 puede resultar demasiado rápido.
| Clave | Valores | Por defecto |
|---|---|---|
movementSpeedAttribute | Double | ninguno |
Ejemplo
movementSpeedAttribute: 0.3
patrol
Añade una ruta nativa con búsqueda automática de caminos al Jefe Personalizado. Los nodos son desplazamientos desde su punto de aparición configurado, o coordenadas exactas en su mundo con patrol.relative: false. patrol.startNodeWaitSeconds hace que el jefe descanse en el primer nodo una vez por vuelta. Los tramos largos se dividen sin forzar la carga de chunks; la patrulla se pausa durante el combate. El jefe necesita ai: true, velocidad positiva y no puede ser pasajero. Consulta Patrullas de NPCs y jefes para ver el esquema, el editor, la persistencia y los controles Lua.
Fases del jefe
Los jefes pueden tener fases que cambian cuando el jefe alcanza un determinado porcentaje de salud. Cuando esto ocurre, el jefe pasa a usar un archivo de configuración distinto, lo que significa que puede cambiar cualquier aspecto del jefe, incluido el tipo de entidad.
Para saber más sobre las fases de jefe, haz clic aquí.
| Clave | Descripción | Valores | Por defecto |
|---|---|---|---|
phases | Define las fases que tendrá el jefe. Obligatorio | List | ninguno |
phaseSpawnLocation | Define dónde aparece el jefe de la fase. Opcional | String | ninguno |
Ejemplo
Para este ejemplo vamos a mostrar tres archivos de configuración distintos.
Primer archivo de configuración de jefe: phase_1_boss.yml
name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30
Segundo archivo de configuración de jefe: phase_2_boss.yml
name: "Phase 2"
entityType: SKELETON
Tercer archivo de configuración de jefe: phase_3_boss.yml
name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER
Este jefe cambiaría al archivo de configuración phase_2_boss.yml al 60 % de salud, y al archivo de configuración phase_3_boss.yml al 30 % de salud, en el mismo mundo que la fase 2 y en las coordenadas x=10, y=64 y z=100. El tipo de entidad y el nombre del jefe también cambiarían.
El formato de una entrada es filename:healthPercentage, donde el porcentaje es una fracción de al menos 0 e inferior a 1. Una entrada con otro formato, una fracción fuera de rango o un archivo de jefe que no existe impide que el jefe aparezca.
phaseSpawnLocation es opcional; si no se establece, el jefe cambiará de fase en el lugar donde se encuentre.
Es importante tener en cuenta lo siguiente al diseñar un jefe por fases:
- El archivo de configuración de la primera fase define todas las fases del jefe.
- La amenaza y el daño contabilizado de los jugadores se mantienen entre fases.
- Se cancela el golpe que cruza el umbral y la siguiente fase empieza con el porcentaje de salud configurado. Cambiar
healthMultipliercambia su salud absoluta en ese umbral. El exceso de daño no pasa a la siguiente forma. - Los jefes por fases no instanciados vuelven a la fase 1 al recuperar toda su salud, incluida la regeneración configurada tras el combate. Los instanciados omiten este reinicio.
- Los jefes por fases que además son jefes regionales comparten el mismo radio de correa y la misma mecánica de timeout en todas las fases, y reaparecerán como el jefe de la fase 1 cuando termine el temporizador.
- El archivo de configuración de la última fase define el botín del jefe.
- Las fases no se pueden saltar: el daño excesivo hará igualmente que el jefe cambie de fase en el porcentaje definido.
- El cambio de fase elimina la montura anterior. La nueva fase puede definir su propia montura.
- Los cambios de fase y reinicios por salud completa usan aparición silenciosa, por lo que no envían el anuncio normal de aparición.
Jefes regionales
Los jefes regionales son un tipo concreto de jefe personalizado que aparece en una ubicación configurada y que puede reaparecer en ella tras un retardo. Además, pueden tener correas que aseguran que permanezcan en una zona determinada, entre otras funciones.
Se usan en todo el contenido de mazmorras. Para saber más sobre los jefes regionales, haz clic aquí.
| Clave | Descripción | Valores | Por defecto |
|---|---|---|---|
isRegionalBoss | Define si el jefe es regional. Debe ser true si quieres un jefe regional. | true / false | false |
spawnLocations | Define las ubicaciones de aparición del jefe. | ¡Añádelas mediante el comando /em place boss [filename.yml]! | ninguno |
spawnCooldown | Define el tiempo de reaparición del jefe, en minutos. | Integer | 0 |
leashRadius | Define la distancia que el jefe puede alejarse de su punto de aparición antes de ser arrastrado de vuelta. Se mide desde el punto de aparición. | Double | ninguno |
onSpawnBlockStates | Define los bloques que el jefe modificará al aparecer. | Consulta los comandos de más abajo | ninguno |
onRemoveBlockStates | Aplica bloques guardados al morir, al usar el comando de eliminación o al avanzar de fase; excluye tiempo límite, reinicio por salud completa, recarga y apagado. | Consulta los comandos de más abajo | ninguno |
Como se indica, los jefes regionales pueden tener onSpawnBlockStates y onRemoveBlockStates.
Es una función muy útil para modificar arenas de combate durante la lucha, sobre todo si se combina con los cambios de fase, ya que permite abrir y cerrar arenas de combate cambiando los estados de los bloques.
El formato de estos datos es demasiado complejo para escribirlo a mano, así que existen varios comandos que te ayudan a configurarlos:
| Comando | Descripción |
|---|---|
| /em transitiveBlocks register [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Empieza a registrar selecciones manuales de bloques para los estados de bloque al aparecer o al desaparecer. |
| /em transitiveBlocks edit [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Edita los estados de bloque al aparecer o al desaparecer. |
| /em transitiveBlocks registerArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Permite a los administradores seleccionar grandes áreas de bloques para guardarlas como estados. |
| /em transitiveBlocks editArea [regional_boss_file.yml] [ON_SPAWN/ON_REMOVE] | Permite a los administradores editar grandes áreas de bloques para guardarlas como estados. |
Ejemplo de uso:
Supongamos que quieres crear un combate en el que el jefe aparece en una arena con una puerta abierta, y quieres que la puerta se cierre cuando empieza el combate y se vuelva a abrir cuando termina.
Para conseguirlo necesitarás dos fases de jefe y registrar tres conjuntos distintos de estados de bloque. En este ejemplo, llamaré a esas fases phase_1_boss.yml y phase_2_boss.yml respectivamente.
- Usa
/em transitiveBlocks register phase_1_boss.yml ON_SPAWNo/em transitiveBlocks edit phase_1_boss.yml ON_SPAWNpara registrar los bloques de la puerta en su estado abierto.
Esto significa registrar los bloques de aire. Aquí se recomienda la selección por área.
Es necesario para asegurarse de que la puerta esté abierta cuando aparece el jefe, de modo que los jugadores tengan garantizada una entrada.
- Usa
/em transitiveBlocks register phase_2_boss.yml ON_SPAWNo/em transitiveBlocks edit phase_2_boss.yml ON_SPAWNpara registrar los bloques de la puerta en su estado cerrado.
Esto significa registrar los bloques sólidos de la puerta que impedirían al jugador salir.
Es necesario para que la puerta se vuelva sólida cuando el jefe entra en la fase 2, impidiendo que los jugadores salgan.
- Usa
/em transitiveBlocks register phase_2_boss.yml ON_REMOVEo/em transitiveBlocks edit phase_2_boss.yml ON_REMOVEpara registrar los bloques de la puerta en su estado abierto.
Esto significa volver a registrar los mismos bloques del primer paso (los bloques de aire).
Es necesario para abrir la puerta cuando el jefe muere, permitiendo a los jugadores salir de la arena.
alert
Define si el jefe está alerta. Por defecto, los jefes regionales están ralentizados y tienen una distancia de aggro menor cuando están fuera de combate. Este ajuste evita que los jefes regionales se ralenticen y tengan una distancia de aggro menor fuera de combate, de modo que siempre se comportarán igual dentro y fuera de combate.
| Clave | Valores | Por defecto |
|---|---|---|
alert | Boolean | false |
Ejemplo
alert: true
removeAfterDeath
Elimina permanentemente esta ubicación regional tras la muerte o el tiempo límite. Se usa en encuentros de una sola vez, como los santuarios de BetterStructures. La definición compartida del jefe puede conservar otras ubicaciones.
| Clave | Valores | Por defecto |
|---|---|---|
removeAfterDeath | Boolean | false |
Ejemplo
removeAfterDeath: true
Jefes instanciados
Los jefes instanciados son un subtipo de jefes regionales que se usa en las mazmorras instanciadas.
| Clave | Descripción | Valores | Por defecto |
|---|---|---|---|
instanced | Convierte al jefe personalizado en instanciado. Obligatorio. | true / false | false |
Marcar los jefes como instanciados es obligatorio para que las mazmorras instanciadas funcionen correctamente. También recomendamos quitar las correas a cualquier jefe instanciado.
Ejemplo
instanced: true
