Saltar al contenido principal

Crear jefes

webapp_banner.jpg

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.

ClaveValoresPor defecto
isEnabledtrue / falsetrue
Ejemplo
isEnabled: true

entityType

Define el tipo de entidad del jefe.

ClaveValoresPor defecto
entityTypeElige 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.

ClaveValoresPor defecto
nameString, acepta color codes y los marcadores de posición que se listan más abajo"Default Name"
Ejemplo
name: "$normalLevel &cCool boss!"

create_boss_name_pic_no_level.jpg

Si quieres incluir el nivel del jefe en su campo de nombre, basta con usar uno de los siguientes marcadores de posición.

MarcadorDescripciónEjemploResultado (para un jefe de nivel 10)
$levelSe sustituye por el nivel"$level Cool boss"10 Cool boss
$normalLevelSe sustituye por el nivel, pensado para mobs normales"$normalLevel Cool boss"[10] Cool boss
$minibossLevelSe sustituye por el nivel, pensado para minijefes"$minibossLevel Cool boss"〖10〗 Cool boss
$bossLevelSe sustituye por el nivel, pensado para jefes"$bossLevel Cool boss"『10』 Cool boss
$reinforcementLevelSe sustituye por el nivel, pensado para refuerzos"$reinforcementLevel Cool boss"〔10〕 Cool Boss
$eventBossLevelSe sustituye por el nivel, pensado para jefes de evento"$eventBossLevel Cool boss"「10」 Cool boss
Ejemplo
name: "$normalLevel &cCool boss!"

create_boss_name_pic.jpg


level

Define el nivel del jefe.

ClaveValoresPor defecto
levelNúmeros Integer positivos o dynamicdynamic

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.

ClaveValoresPor defecto
scaleMultiplier1.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.

ClaveValoresPor defecto
bossTypeNORMAL, MINIBOSS, BOSS, REINFORCEMENT, EVENTNORMAL

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.

ClaveValoresPor defecto
silentBooleanfalse

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.

ClaveValoresPor defecto
healthMultiplierMultiplier1.0
La salud del jefe tiene un tope estricto; su daño no

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:

healthMultiplierLa salud deja de crecer en el nivel
1.050
2.045
5.038
7.036
10.033
20.028
40.023

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.

ClaveValoresPor defecto
damageMultiplierMultiplier1.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
ClaveValoresPor defecto
isBabytrue / falsefalse
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.

ClaveValoresPor defecto
helmetMaterial, UUIDnone
chestplateMaterialnone
leggingsMaterialnone
bootsMaterialnone
mainHandMaterialnone
offHandMaterialnone

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

create_boss_armor.jpg


powers

Define los poderes que tiene el jefe.

ClaveValoresPor defecto
powersConsulta la lista de más abajoninguno
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.

Los nombres antiguos de poderes .yml siguen funcionando

Si 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
ClaveDescripciónValoresPor defecto
summonTypeQué desencadena la aparición del refuerzo. Obligatorio.Consulta la lista de más abajoninguno
filenameNombre del archivo del jefe que aparecerá como refuerzo. Obligatorio.Stringninguno
chanceProbabilidad de que aparezca el refuerzo. Opcional.Double1.0
amountDefine la cantidad de refuerzos que aparecerán. Opcional.Integer1
inheritAggroHace que el refuerzo herede el aggro del jefe. Opcional.true / falsefalse
spawnNearbyHace que los refuerzos aparezcan en un área de 30x30 bloques (±15 bloques en X y Z) alrededor del punto de aparición. Opcional.true / falsefalse
inheritLevelHace que el refuerzo herede el nivel del jefe. Opcionaltrue / falsefalse
customSpawnHace que el refuerzo aparezca mediante el sistema de apariciones personalizadas. Solo se usa con summonType: GLOBALNombre de archivo de la aparición personalizadaninguno
locationDesplazamiento 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
lightningRodAjuste especial para summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL. Hace que los cristales del End generen rayos a su alrededor. Opcional.true / falsefalse
difficultyIDRestringe la entrada a dificultades de mazmorra instanciada concretas. Opcional.String o lista de cadenasninguno

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
ValorDescripción
ONCEGenera los refuerzos una sola vez, la primera vez que se daña al jefe.
ON_HITGenera los refuerzos al recibir un golpe.
ON_COMBAT_ENTERGenera los refuerzos cuando el jefe entra en combate.
ON_DEATHGenera refuerzos cuando el jefe muere.
GLOBALGenera 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_CRYSTALColoca 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
ClaveDescripciónValoresPor defecto
filenameNombre del archivo del poder.Stringninguno
difficultyIDNombre de la dificultad, que debe coincidir con el nombre de la dificultad en el paquete de la mazmorra.Stringninguno

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.

ClaveValoresPor defecto
spawnMessageStrings y color codesninguno
Ejemplo
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages

Define la lista de mensajes que se envían cuando el jefe muere. Requiere configurar announcementPriority.

ClaveValoresPor defecto
deathMessagesStrings, color codes y los marcadores de posición de más abajoninguno
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---------------------------------------------'

create_boss_death_message.jpg

Los mensajes de muerte admiten los siguientes marcadores de posición:

Marcadores de posición
ValorDescripción
$damager1nameEl nombre de quien más daño infligió
$damager2nameEl nombre de quien infligió el segundo mayor daño
$damager3nameEl nombre de quien infligió el tercer mayor daño
$damager1damageLa cantidad de daño de quien más daño infligió
$damager2damageLa cantidad de daño de quien infligió el segundo mayor daño
$damager3damageLa cantidad de daño de quien infligió el tercer mayor daño
$playersMuestra 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.

ClaveValoresPor defecto
deathMessageString, color codes y los mismos marcadores de posición que deathMessagesninguno
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.

ClaveValoresPor defecto
onKillMessageStrings y color codesninguno

Marcadores de posición:

ValorDescripción
$playerEl nombre visible del jugador que murió
$playerNameEl nombre de usuario del jugador que murió
Ejemplo
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize

Define el tamaño del jefe slime, pero solo funciona con slimes y cubos de magma.

ClaveValoresPor defecto
slimeSizeInteger4
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.

ClaveValoresPor defecto
neutralBooleanfalse
Ejemplo
neutral: true

Ajustes avanzados

timeout

Define el tiempo, en minutos, que transcurre antes de que el jefe personalizado desaparezca.

ClaveValoresPor defecto
timeoutTiempo (en minutos) Integer0
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.

ClaveValoresPor defecto
isPersistenttrue / falsefalse
Ejemplo

Ejemplo:

isPersistent: true

damageModifiers

Define las armas frente a las que el jefe es fuerte o débil.

ClaveValoresPor defecto
damageModifiersMaterialninguno
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.

ClaveValoresPor defecto
normalizedCombattrue / falsefalse
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.

ClaveValoresPor defecto
scaledCombattrue / falsefalse
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.

ClaveValoresPor defecto
escapeMessageStringninguno
Ejemplo
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


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.

ClaveValoresPor defecto
locationMessageString, Color codes y los marcadores de posición que se listan más abajoninguno

Marcadores de posición:

ValorDescripción
$distanceSe sustituye por la distancia a la que está el jugador del jefe personalizado. Es la opción preferible.
$locationSe sustituye por las coordenadas x y z del jefe personalizado
Ejemplo
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

create_boss_location_message.jpg

Esto mostraría algo como Cool boss: At 414,55,347 only 10 blocks away!


uniqueLootList

Define los objetos personalizados que suelta el jefe.

ClaveValoresPor defecto
uniqueLootListListninguno

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.

ClaveValoresPor defecto
dropsEliteMobsLoottrue / falsetrue

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.

ClaveValoresPor defecto
dropsVanillaLoottrue / falsetrue
Ejemplo
dropsVanillaLoot: true

dropsRandomLoot

Define si el jefe personalizado soltará botín generado proceduralmente por EliteMobs. No incluye monedas Elite.

ClaveValoresPor defecto
dropsRandomLoottrue / falsetrue
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.

ClaveValoresPor defecto
dropsSkillXPtrue / falsetrue

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.

ClaveValoresPor defecto
trailsPartículas o materiales de objetoninguno

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.

ClaveValoresPor defecto
onDamageMessagesListninguno
Ejemplo
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


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.

ClaveValoresPor defecto
onDamagedMessagesListninguno
Ejemplo
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

create_boss_damaged_message.jpg


mountedEntity

Define la entidad que el jefe montará y sobre la que cabalgará.

ClaveValoresPor defecto
mountedEntityNombre del archivo del jefe que se montará o tipo de entidadninguno

No intentes hacer que el jefe se monte a sí mismo.

Ejemplo
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

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.

ClaveValoresPor defecto
announcementPriorityInteger0

Nota: si la clave falta en un archivo de jefe que 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:

ValorDescripción
0Es el valor por defecto. El jefe permanecerá completamente en silencio, sin mensajes de anuncio.
1Los 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.
2Idé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).
3Ademá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.

ClaveValoresPor defecto
followDistanceInteger0

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.

ClaveValoresPor defecto
onDeathCommandsListninguno

La lista admite los siguientes marcadores de posición:

ValorDescripción
$levelMarcador de posición para el nivel del jefe.
$nameMarcador de posición para el nombre del jefe.
$chance=x$Hace que un comando tenga una probabilidad de ejecutarse.
$playersHace 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.
$locationXCoordenada X del jefe en el momento de su muerte.
$locationYCoordenada Y del jefe en el momento de su muerte.
$locationZCoordenada Z del jefe en el momento de su muerte.
$damager1nameNombre de usuario de quien más daño infligió
$damager2nameNombre de usuario de quien infligió el segundo mayor daño
$damager3nameNombre 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!"

create_boss_mounted.jpg

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.

ClaveValoresPor defecto
onSpawnCommandsListninguno

¡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!

create_boss_mounted.jpg


onCombatEnterCommands

Define la lista de comandos que se ejecutarán cuando el jefe entre en combate.

ClaveValoresPor defecto
onCombatEnterCommandsListninguno

¡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!

create_boss_mounted.jpg


onCombatLeaveCommands

Define la lista de comandos que se ejecutan cuando el jefe sale de combate.

ClaveValoresPor defecto
onCombatLeaveCommandsListninguno

¡Usa los mismos marcadores de posición que onDeathCommands!

Ejemplo
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise

Define el disfraz de LibsDisguises si ese plugin está activado. Más información aquí.

ClaveValoresPor defecto
disguiseStringninguno
customDisguiseDataStringninguno
Ejemplo de disfraz
disguise: CHICKEN

create_boss_mounted.jpg

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}

create_boss_mounted.jpg

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í.

ClaveValoresPor defecto
customModelStringninguno
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.

ClaveValoresPor defecto
customModelMountPointIDStringninguno
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.

ClaveValoresPor defecto
frozentrue / falsefalse
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.

ClaveValoresPor defecto
aitrue / falsetrue
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.

ClaveValoresPor defecto
alwaysShowNametrue / falsefalse
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.

ClaveValoresPor defecto
reinforcementtrue / falsefalse
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.

ClaveValoresPor defecto
songStringninguno

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.

ClaveValoresPor defecto
cullReinforcementstrue / falsetrue
Ejemplo
cullReinforcements: true

movementSpeedAttribute

Define la velocidad de movimiento del jefe.
Nota: cualquier valor por encima de 0.36 puede resultar demasiado rápido.

ClaveValoresPor defecto
movementSpeedAttributeDoubleninguno
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í.

ClaveDescripciónValoresPor defecto
phasesDefine las fases que tendrá el jefe. ObligatorioListninguno
phaseSpawnLocationDefine dónde aparece el jefe de la fase. OpcionalStringninguno
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í.

ClaveDescripciónValoresPor defecto
isRegionalBossDefine si el jefe es regional. Debe ser true si quieres un jefe regional.true / falsefalse
spawnLocationsDefine las ubicaciones de aparición del jefe.¡Añádelas mediante el comando /em place boss [filename.yml]!ninguno
spawnCooldownDefine el tiempo de reaparición del jefe, en minutos.Integer0
leashRadiusDefine 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.Doubleninguno
onSpawnBlockStatesDefine los bloques que el jefe modificará al aparecer.Consulta los comandos de más abajoninguno
onRemoveBlockStatesDefine los bloques que el jefe modificará al desaparecer.Consulta los comandos de más abajoninguno

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:

ComandoDescripció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.

  1. Usa /em transitiveBlocks register phase_1_boss.yml on_spawn o /em transitiveBlocks edit phase_1_boss.yml on_spawn para 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.

  1. Usa /em transitiveBlocks register phase_2_boss.yml on_spawn o /em transitiveBlocks edit phase_2_boss.yml on_spawn para 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.

  1. Usa /em transitiveBlocks register phase_2_boss.yml on_remove o /em transitiveBlocks edit phase_2_boss.yml on_remove para 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.

ClaveValoresPor defecto
alertBooleanfalse
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.

ClaveValoresPor defecto
removeAfterDeathBooleanfalse
Ejemplo
removeAfterDeath: true

Jefes instanciados

Los jefes instanciados son un subtipo de jefes regionales que se usa en las mazmorras instanciadas.

ClaveDescripciónValoresPor defecto
instancedConvierte al jefe personalizado en instanciado. Obligatorio.true / falsefalse

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