Saltar al contenido principal

Crear Spawns

webapp_banner.jpg

¿Qué son los Spawns Personalizados?​

Los Spawns Personalizados son utilizados por Eventos y refuerzos globales para establecer cómo, dónde y cuándo un evento debe generar al boss para ese evento.

Los eventos y refuerzos globales establecen qué spawn utilizan escribiendo su nombre de archivo.

Crear Spawns Personalizados

Los Spawns Personalizados se encuentran en la carpeta customspawns. Un Spawn Personalizado puede ser utilizado por varios eventos al mismo tiempo, por lo que no necesitas crear uno por evento.

Aquí hay un ejemplo de Spawn Personalizado:

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

Crear un Spawn en Cualquier Lugar​

Para crear un spawn que pueda ocurrir en cualquier lugar, tu configuración debería parecerse a lo siguiente:

isEnabled: true
canSpawnInLight: true

Esto elimina la restricción de luz y no añade filtros propios de mundo, hora o luna. Siguen aplicándose la lista de mundos habilitados, el intervalo Y predeterminado, los jugadores cercanos elegibles, los chunks cargados, los flags de protección y las comprobaciones de ubicación descritas más abajo.

Si te interesa crear un spawn más personalizado, sigue leyendo a continuación.

Valores​


isEnabled​

Establece si el spawn está habilitado.

KeyValuesDefault
isEnabledBooleantrue
Ejemplo
isEnabled: true

lowestYLevel​

Establece el nivel Y mínimo. El valor predeterminado 0 excluye las cuevas con Y negativa; usa un valor como -64 para permitir búsquedas subterráneas más profundas. Esto no cambia el muestreo Y inicial ni el límite interno de la búsqueda ascendente.

KeyValuesDefault
lowestYLevelInteger0
Ejemplo
lowestYLevel: 0

highestYLevel​

Establece el nivel Y más alto (altura del mapa) utilizado.

KeyValuesDefault
highestYLevelInteger320
Ejemplo
highestYLevel: 320

validWorlds​

Filtra los mundos de la selección normal de jugadores, incluidos los eventos temporizados. Omítelo para no añadir un filtro propio; ValidWorlds.yml y las demás comprobaciones siguen aplicándose. Los refuerzos globales eligen jugadores directamente del mundo del invocador e ignoran este filtro.

KeyValuesDefault
validWorldsString Listnone
Ejemplo
validWorlds:
- WORLD
- FUN_LAND

Si quieres que todos los mundos sean válidos, simplemente no uses la configuración o formáteala así:

validWorlds: []

validWorldEnvironments​

Filtra los entornos de mundo de la selección normal de jugadores. Omítelo para no añadir restricciones de entorno. Los refuerzos globales eligen jugadores directamente del mundo del invocador e ignoran este filtro.

KeyValuesDefault
validWorldEnvironmentsEnvironment Listnone
Ejemplo
validWorldEnvironments:
- NORMAL
- NETHER

Si quieres que todos los entornos sean válidos, simplemente no uses la configuración o formáteala así:

validWorldEnvironments: []

validBiomesV2​

Establece los biomas donde puede ocurrir el spawn personalizado. Omítelo, o usa una lista vacía, para no añadir ninguna restricción de bioma. Esta configuración solía llamarse validBiomes en versiones anteriores de EM.

Cada entrada es una clave de bioma. Un nombre sin espacio de nombres, como plains o DEEP_OCEAN, se lee como minecraft:<name>, y no se distinguen mayúsculas de minúsculas. Si alguna entrada no es un bioma registrado, EliteMobs registra una advertencia y desactiva todo el archivo de spawn, por lo que los eventos y refuerzos globales que lo usan no pueden aparecer.

El bioma se lee en el punto candidato elegido al azar, antes de que EliteMobs determine su nivel Y final. Consulta Cómo se elige una ubicación de aparición.

KeyValuesDefault
validBiomesV2Biome Listnone
Ejemplo
validBiomesV2:
- minecraft:plains
- desert

earliestTime​

Establece la hora mínima del juego para el spawn. Ambos límites son inclusivos. El intervalo no puede cruzar medianoche: si earliestTime supera latestTime, el spawn no ocurre.

Tras encontrar una ubicación, EliteMobs comprueba earliestTime, latestTime y moonPhase cada tick y espera allí hasta que coincidan. Después de esperar no vuelve a comprobar la distancia a jugadores, la luz, el chunk cargado ni WorldGuard. La prueba final del zombi y la comprobación del estandarte de paz sí se realizan antes de colocar al jefe.

KeyValuesDefault
earliestTimeLong0
Ejemplo
earliestTime: 0

latestTime​

Establece la hora máxima del juego para el spawn, incluida. Debe ser mayor o igual que earliestTime.

KeyValuesDefault
latestTimeLong24000
Ejemplo
latestTime: 24000

moonPhase​

Establece la fase lunar requerida para que ocurra el spawn personalizado.

KeyValuesDefault
moonPhaseSpecial [1]none
Ejemplo
moonPhase: FULL_MOON

Special [1]

Expandir Tabla
Moon PhasePreview
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard​

Pretende hacer que el spawn personalizado ignore sistemas de protección como WorldGuard.

Actualmente este ajuste no hace nada. EliteMobs lee la clave de tu archivo de spawn pero nunca actúa sobre ella, así que los flags de WorldGuard se comprueban siempre, independientemente de lo que establezcas aquí. Para permitir que un spawn ocurra dentro de una región protegida, establece en su lugar los flags de WorldGuard correspondientes en esa región.

KeyValuesDefault
bypassWorldGuardBooleanfalse

canSpawnInLight​

Controla la comprobación de luz al seleccionar la ubicación. Con false, el nivel de luz combinado del bloque, incluida la luz del cielo, debe ser 8 o menos. Con true, se omite esta comprobación.

KeyValuesDefault
canSpawnInLightBooleanfalse
Ejemplo
canSpawnInLight: false

isSurfaceSpawn​

Establece si el spawn personalizado solo puede ocurrir en la superficie de un mundo.

KeyValuesDefault
isSurfaceSpawnBooleanfalse
Ejemplo
isSurfaceSpawn: false

isUndergroundSpawn​

Establece si el spawn personalizado solo puede ocurrir bajo tierra.

KeyValuesDefault
isUndergroundSpawnBooleanfalse
Ejemplo
isUndergroundSpawn: false

Cómo se elige una ubicación de aparición​

EliteMobs no rastrea el mundo en busca de un sitio. Elige un jugador conectado al azar y se desplaza desde él:

  1. Se elige al azar un jugador elegible. Se omite si sus datos de EliteMobs no están cargados, su mundo no está en ValidWorlds.yml, está dentro de una región de instancia de mazmorra, arena o prueba de clase, su mundo tiene desactivada la aparición de mobs o los filtros validWorlds / validWorldEnvironments lo excluyen. Los eventos temporizados también excluyen jugadores en mundos de mazmorra de EliteMobs. El modo de juego no excluye al jugador.
  2. El candidato usa desplazamientos de 24 a 127 bloques en X y Z, cada uno con signo independiente. Se rechazan los chunks sin cargar; la búsqueda no carga chunks.
  3. La Y se determina mediante isSurfaceSpawn, isUndergroundSpawn o, si ninguno está activo, buscando hacia arriba dos bloques de aire sobre un bloque no atravesable.
  4. El candidato pasa entonces por las validaciones de más abajo.

Los refuerzos globales usan todos los jugadores del mundo del invocador en lugar de la lista filtrada del paso 1. Omiten sus comprobaciones de datos cargados, mundo, entorno, instancia y regla de aparición de mobs. Las ubicaciones candidatas siguen pasando por las comprobaciones de bioma, altura, proximidad, luz y WorldGuard.

Se prueban hasta 100 candidatos, uno por tick. Si ninguno sirve, EliteMobs espera un minuto y reintenta. La Y inicial se toma entre 0 y 255. La búsqueda ascendente genérica empieza en ese valor y termina en highestYLevel o dos bloques por debajo del límite de construcción del mundo, lo que sea menor. La búsqueda subterránea descendente termina en Y=-63 incluso con un lowestYLevel menor. Los modos de superficie y subterráneo tienen búsquedas propias; si ambos están activos, prevalece superficie.

Comportamiento de Validación de Spawn​

EliteMobs comprueba los candidatos durante la búsqueda. Cuando la hora y la luna permiten el spawn, realiza la prueba final del zombi y la comprobación del estandarte de paz:

  • Proximidad del jugador: Se rechazan candidatos a menos de 24 bloques de cualquier jugador, midiendo la distancia tridimensional
  • Techo del Nether: Los spawns por encima de Y=127 están bloqueados en la dimensión del Nether
  • Seguridad de bloques: La búsqueda subterránea exige suelo sólido; la ascendente genérica, un bloque no atravesable. Ambas exigen dos bloques de aire encima. Superficie usa el bloque más alto de la columna más uno, sin las mismas comprobaciones de espacio libre.
  • Nivel Y: La ubicación final debe estar entre lowestYLevel y highestYLevel
  • Reglas del juego: La selección normal de jugadores respeta la regla de aparición de mobs del mundo (spawnMobs desde Minecraft 1.21.11, doMobSpawning antes). Los refuerzos globales omiten esta comprobación de selección.
  • Flags de WorldGuard: Verifica los flags elitemobs-events, elitemob-spawning y el propio mob-spawning de WorldGuard
  • Estandartes de paz: Con suppressEvents activado en PeaceBanner.yml, como por defecto, una ubicación protegida cancela este intento. Un evento temporizado programa su siguiente evento; esta comprobación no inicia otra búsqueda para el intento actual.
  • Aparición de prueba final: Justo antes de que aparezca el jefe, EliteMobs genera y elimina de inmediato un zombi vanilla corriente en la ubicación. Si algún otro plugin de protección bloquea ese zombi, la ubicación se descarta y la búsqueda se reinicia

Estas comprobaciones son automáticas. La luz y el estandarte de paz tienen los interruptores descritos arriba; bypassWorldGuard no desactiva las comprobaciones de WorldGuard.