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.
Puedes usar la webapp para crear jefes personalizados y mucho más de forma rápida y sencilla.
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!
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 | Elige uno de aquí. El valor también debe existir en la carpeta ~plugins/EliteMobs/mobproperties. | 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 se usa para eventos y se ajusta al nivel de los jugadores cercanos en el momento en que aparece el jefe.
No se recomienda para jefes regionales.
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
Define de qué tipo es el jefe. Esto se usa para mostrar las barras de salud del jefe y otras funciones.
| Clave | Valores | Por defecto |
|---|---|---|
bossType | NORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENT | NORMAL |
MINIBOSS, BOSS y EVENT hacen que el plugin muestre barras de salud cuando los jugadores luchan contra estos tipos de jefe.
Nota: REINFORCEMENT se asigna normalmente de forma automática a los mobs invocados como refuerzos, pero puede establecerse manualmente si hace falta.
Ejemplo
bossType: MINIBOSS
silent
Define si los sonidos del jefe deben silenciarse.
| Clave | Valores | Por defecto |
|---|---|---|
silent | Boolean | false |
Cuando se establece en true, esta opción silencia todos los sonidos predeterminados de mobs de Minecraft, de modo que el jefe no emite ningún sonido.
Ejemplo
silent: true
healthMultiplier
Define la salud del jefe. El valor de este ajuste también determina el tipo de barra de salud que se muestra durante el combate. Los valores más altos mostrarán una barra de minijefe o de jefe completo.
| Clave | Valores | Por defecto |
|---|---|---|
healthMultiplier | Multiplier | 1.0 |
La salud final es baseHealth × healthMultiplier, y ese producto queda limitado por el valor settings.attribute.maxHealth.max del servidor definido en 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.
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 el jefe se vuelve más frágil en relación con su propio daño cuanto más lo subas: el jugador lo mata en el mismo número de golpes, pero muere más rápido. Cuando se activa el límite, EliteMobs registra una advertencia indicando el jefe, su nivel y el multiplicador; vigila la consola al ajustar jefes de nivel alto.
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 del jefe. No todos los modelos de Minecraft pueden mostrar armadura. La armadura del jefe es puramente estética y no afecta a la jugabilidad.
| Clave | Valores | Por defecto |
|---|---|---|
helmet | Material, UUID | none |
chestplate | Material | none |
leggings | Material | none |
boots | Material | none |
mainHand | Material | none |
offHand | Material | none |
Nota: Este campo también permite asignar modelos personalizados a los objetos. Para establecer el ID del modelo personalizado, añádelo después del tipo de material siguiendo este formato: ITEM_MATERIAL:ID. Ejemplo: DIAMOND_SWORD:1 hace que el jefe lleve una espada de diamante con el modelo personalizado n.º 1 de tu paquete de texturas.
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: El campo del casco también permite que los mobs lleven cabezas de jugador como casco. Solo tienes que obtener el UUID de la cabeza de jugador que quieras usar y escribirlo en el campo del casco. El jugador debe estar conectado para que esto funcione; de lo contrario, la cabeza se mostrará como una cabeza genérica de Minecraft. Puedes obtener los UUID de jugador aquí.
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 existe un poder .lua con el mismo nombre base, EliteMobs resuelve automáticamente una petición .yml hacia él. Las configuraciones de jefe escritas antes de la migración a Lua siguen funcionando sin cambios: attack_arrow.yml carga de forma transparente attack_arrow.lua. 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 | Nombre del archivo del jefe que aparecerá como refuerzo. Obligatorio. | String | ninguno |
chance | Probabilidad de que aparezca el refuerzo. 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 | Genera los refuerzos una sola vez, la primera vez que se daña al jefe. |
ON_HIT | Genera los refuerzos al recibir un golpe. |
ON_COMBAT_ENTER | Genera los refuerzos cuando el jefe entra en combate. |
ON_DEATH | Genera refuerzos cuando el jefe muere. |
GLOBAL | Genera refuerzos repetidamente cerca de cada jugador que esté en el mismo mundo que el jefe, cada 10 segundos, con un máximo de 30 refuerzos globales vivos por jugador en ese mundo. Requiere que la clave customSpawn tenga configurada una aparición personalizada válida. |
ON_COMBAT_ENTER_PLACE_CRYSTAL | Coloca cristales del End como refuerzos al entrar en combate; solo para usar en combates de dragón personalizados. |
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
Esto solo se aplica a las mazmorras instanciadas.
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 la lista de mensajes que se envían cuando el jefe muere. Requiere configurar announcementPriority.
| 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 | El nombre de quien más daño infligió |
$damager2name | El nombre de quien infligió el segundo mayor daño |
$damager3name | El nombre de quien infligió el tercer mayor 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 | Muestra una lista de todos los que infligieron daño |
deathMessage
Define un único mensaje que se envía cuando el jefe muere. Es una alternativa a deathMessages para cuando solo necesitas un mensaje de muerte en lugar de una lista. Requiere configurar announcementPriority.
| Clave | Valores | Por defecto |
|---|---|---|
deathMessage | String, color codes y los mismos marcadores de posición que deathMessages | ninguno |
Ejemplo
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'
onKillMessage
Define el mensaje que se envía cuando el jefe mata a un jugador. Requiere configurar 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ó |
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
Define si el jefe aparecerá como neutral o no. Esto solo se aplica a los tipos de entidad que pueden ser neutrales, como los lobos o los gólems de hierro.
| Clave | Valores | Por defecto |
|---|---|---|
neutral | Boolean | false |
Ejemplo
neutral: true
Ajustes avanzados
timeout
Define el tiempo, en minutos, que transcurre antes de que el jefe personalizado desaparezca.
| Clave | Valores | Por defecto |
|---|---|---|
timeout | Tiempo (en minutos) Integer | 0 |
Ejemplo
timeout: 20
Hace que el jefe escape al cabo de 20 minutos.
isPersistent
Define si el jefe puede sobrevivir a la descarga de un chunk. Solo se recomienda para jefes de evento, debido al posible impacto en el rendimiento que supone mantener chunks cargados de forma persistente y seguir entidades entre reinicios del servidor.
| Clave | Valores | Por defecto |
|---|---|---|
isPersistent | true / false | false |
Ejemplo
Ejemplo:
isPersistent: true
damageModifiers
Define las armas frente a las que el jefe es fuerte o débil.
| 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
Modifica el daño y la salud máxima del jefe para que coincidan con los valores de la entidad normalizada en ~/plugins/EliteMobs/mobproperties. Es el comportamiento por defecto de los jefes regionales, para garantizar una curva de dificultad suave.
| Clave | Valores | Por defecto |
|---|---|---|
normalizedCombat | true / false | false |
Ejemplo
Ejemplo:
normalizedCombat: true
scaledCombat
Define si el jefe utiliza el sistema de combate escalado. Cuando está activado, el jefe simula tener el mismo nivel que el jugador que lo combate: el daño, el escalado de salud y el botín se adaptan al nivel de progresión del jugador en lugar de al nivel guardado del jefe. Esto hace que el encuentro resulte igual de justo para todos los jugadores, sea cual sea su progresión.
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 que se muestra en la barra del jefe. Se usa para seguir tanto la salud del jefe personalizado como su ubicación en el servidor. Requiere tener configurado announcementPriority.
| Clave | Valores | Por defecto |
|---|---|---|
locationMessage | String, Color codes y los marcadores de posición que se listan más abajo | ninguno |
Marcadores de posición:
| Valor | Descripción |
|---|---|
$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. La XP de habilidad se usa en el sistema de bonificaciones de habilidad de armas.
| 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
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 del jefe las partículas que no requieren datos adicionales (es decir, todas las «partículas simples» de la lista de partículas válidas). Las partículas como BLOCK, DUST, ITEM, etc., se omiten de forma silenciosa. Los nombres de material generan en su lugar un rastro animado de objetos.
Ejemplo
trails:
- CLOUD
onDamageMessages
Define el mensaje que el jefe muestra cuando golpea a un jugador. Es una lista, y el mensaje usado se elige al azar de entre ellos.
| Clave | Valores | Por defecto |
|---|---|---|
onDamageMessages | List | ninguno |
Ejemplo
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

onDamagedMessages
Define el mensaje que el jefe muestra cuando un jugador le hace daño. Es una lista, y el mensaje usado se elige al azar de entre ellos.
| 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 | Es el valor por defecto. El jefe permanecerá completamente en silencio, sin mensajes de anuncio. |
1 | Los jefes pueden enviar mensajes al chat: mensaje de aparición, de muerte y de huida. El seguimiento del jefe mediante el menú /em también se habilita aquí, si hay un locationMessage establecido. |
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: Tendrás que configurar spawnMessage, deathMessage/deathMessages y escapeMessage para los anuncios en el chat y en Discord, y locationMessage para la función de seguimiento, si quieres usar el nivel de prioridad de anuncio correspondiente.
Nota: Cuando existe cualquier contenido de anuncio (spawnMessage, deathMessage, deathMessages, escapeMessage, etc.), announcementPriority toma automáticamente el valor 1 si no se ha establecido explícitamente.
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 |
Nota 1: Los jefes regionales tienen la mitad del followDistance cuando están fuera de combate. Así no reaccionan desde demasiado lejos, lo que puede provocar problemas molestos en el combate debido a las restricciones de 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 |
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. |
$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 |
¡Usa los mismos marcadores de posición que onDeathCommands! Los marcadores de atacantes no se aplican, ya que en ese momento todavía no hay ninguno.
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 |
¡Usa los mismos marcadores de posición que onDeathCommands! Los marcadores de atacantes no se aplican, ya que en ese momento todavía no hay ninguno.
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 |
¡Usa los mismos marcadores de posición que 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
Define si el jefe puede moverse. Los jefes congelados aún pueden atacar.
Nota: puede que esto no funcione en algunas entidades.
| 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
alwaysShowName
Define si el jefe muestra siempre su etiqueta de nombre sobre la cabeza. Por defecto, las etiquetas de nombre de los jefes solo se muestran durante el combate. Este ajuste anula ese comportamiento para este jefe concreto, haciendo que la etiqueta sea siempre visible.
| Clave | Valores | Por defecto |
|---|---|---|
alwaysShowName | true / false | false |
Ejemplo
alwaysShowName: true
reinforcement
Define si el jefe es un refuerzo. Los jefes de refuerzo no se inicializan como jefes regionales durante el arranque y solo están pensados para ser invocados como refuerzos por otros jefes.
| Clave | Valores | Por defecto |
|---|---|---|
reinforcement | true / false | false |
Ejemplo
reinforcement: true
song
Define la música que reproducirá el jefe, empezando en el momento en que aparece. Requiere que el archivo .ogg de la canción esté en el paquete de recursos.
| Clave | Valores | Por defecto |
|---|---|---|
song | String | ninguno |
Nota: El ajuste song requiere que followDistance esté configurado, ya que followDistance determina el alcance a partir del cual empieza a sonar la canción.
Consulta el ejemplo para ver cómo establecer la duración (length, en milisegundos) de la canción.
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
Define si los refuerzos del jefe se eliminarán cuando este muera.
| 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
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.
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.
- El cambio de fase se basa en el porcentaje de salud perdida, que se conserva al pasar a otra fase. Esto significa que aumentar o reducir el healthMultiplier entre fases no cura ni daña al jefe: seguirá cambiando con el mismo porcentaje, pero tendrá más o menos salud en esa fase.
- Los jefes por fases vuelven a la fase 1 si salen de combate.
- 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.
- Los jefes por fases que tienen monturas dejan de estar montados al cambiar de fase.
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 | Define los bloques que el jefe modificará al desaparecer. | 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
Define si el jefe regional se eliminará permanentemente después de ser derrotado. Es lo que BetterStructures usa en los santuarios, donde el jefe regional está pensado para ser combatido una sola vez y nunca más en esa ubicación.
| 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
