Saltar al contenido principal

Empaquetador de mazmorras

webapp_banner.jpg

¿Qué son las mazmorras?​

Puedes consultar información sobre las mazmorras, incluidas las prediseñadas, aquí.


¿Qué es el empaquetador de mazmorras?

El empaquetador reúne contenido de EliteMobs para distribuirlo, incluidas mazmorras, eventos, modelos, arenas, NPC y objetos. El comando de exportación recoge determinadas carpetas de configuración; algunos archivos deben añadirse manualmente antes de importar el archivo comprimido.

¿Por qué usar paquetes de mazmorras?
  • Mazmorras instanciadas. Se crean mediante el sistema de paquetes de mazmorras.
  • Copias de las minimazmorras. Un paquete permite instalar y volver a instalar su contenido en otros servidores.
  • Activación y desactivación. Puedes usar /em setup para activar o desactivar los paquetes de forma temporal o permanente.
  • Distribución. Puedes comprimir tus creaciones y compartirlas. Hay un canal de Discord dedicado al contenido de la comunidad.
  • Teletransportes. Los paquetes de combate instalados pueden aparecer en la página de teletransportes de /em con listedInTeleports activado. Configura sus puntos de entrada; el empaquetador no elige las coordenadas.

Crear mazmorras

Los siguientes ajustes forman un archivo de configuración que se coloca en content_packages. Se utilizan para crear mazmorras; no son necesarios si solo quieres distribuir otro contenido, como objetos o eventos.

Plugins necesarios​

Ninguno. La protección de las mazmorras la gestiona el propio EliteMobs: establecer protect: true aplica al mundo del paquete el conjunto de protecciones propio de EliteMobs, sin que intervenga ningún plugin de regiones.

WorldGuard sigue siendo una dependencia opcional. Cuando está instalado, quedan disponibles sus flags de región específicos de EliteMobs, pero no es necesario para que un paquete de mazmorra esté protegido.

Crear una mazmorra paso a paso​

EliteMobs tenía dos tipos principales de mazmorras: basadas en mundos y basadas en esquemas.

Las mazmorras basadas en esquemas usaban una construcción esquemática. Se retiraron y ya no se admiten.

Todas las mazmorras actuales de EliteMobs se basan en mundos.

Archivo obligatorio pack.meta​

El paquete debe incluir pack.meta, un archivo de texto con extensión .meta. Debe contener una sola palabra que indique el plugin al que pertenece, por ejemplo elitemobs en minúsculas. Colócalo en la raíz del paquete, junto a las demás carpetas.


Valores generales​

Los siguientes valores se aplican a todas las mazmorras. Los valores predeterminados corresponden a un paquete personalizado nuevo; los paquetes prediseñados pueden establecer otros. Define dungeonVersion explícitamente antes de distribuir una actualización.

isEnabled​

Establece si el paquete está activado.

ClaveValoresPredeterminadoObligatorio
isEnabledBooleanotrue✅
Ejemplo
isEnabled: true

name​

Establece el nombre del contenido. Admite códigos de color.

ClaveValoresPredeterminadoObligatorio
nameTextoninguno✅
Ejemplo
name: '&c[lvl 999] &aThe Green Dungeon'

create_packager_name.jpg


contentType​

Establece el tipo de mazmorra.

ClaveValoresPredeterminadoObligatorio
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEON / HUB / META_PACKAGE / ITEMS_PACKAGE / EVENTS_PACKAGE / MODELS_PACKAGEninguno✅
Ejemplo
contentType: INSTANCED_DUNGEON

SCHEMATIC_DUNGEON ya no funciona

El analizador aún acepta SCHEMATIC_DUNGEON, pero las mazmorras de esquemas se eliminaron en EliteMobs 9.0 y se sustituyeron por mundos. Ese tipo no carga contenido y muestra una advertencia para eliminar la entrada. Para usar construcciones esquemáticas, utiliza BetterStructures con los paquetes de santuarios de élite.

customInfo​

Texto descriptivo conservado y registrado en el sistema de traducción. El menú actual lee setupMenuDescription; customInfo no rellena su descripción. Admite códigos de color.

ClaveValoresPredeterminadoObligatorio
customInfoLista de textosninguno✅
Ejemplo
customInfo:
- '&aThe best dungeon.'
- '&aMade by: CoolPlayer'

create_packager_custominfo.jpg


setupMenuDescription​

Establece la descripción del paquete en /em setup. Admite códigos de color.

ClaveValoresPredeterminadoObligatorio
setupMenuDescriptionLista de textosninguno❌
Ejemplo
setupMenuDescription:
- '&2A cool dungeon for levels 10-20!'
- '&2Features 3 bosses and custom loot!'

Establece el enlace manual que se envía cuando un administrador elige descargar un paquete sin identificador Nightbreak integrado. Los paquetes prediseñados con ese identificador usan la descarga mediante la cuenta. Este campo por sí solo no activa las descargas automáticas ni las comprobaciones de versión para un paquete personalizado.

ClaveValoresPredeterminadoObligatorio
downloadLinkTextotexto vacío❌
Ejemplo
downloadLink: http://www.example.org

create_packager_downloadlink.jpg


dungeonSizeCategory​

Establece la categoría descriptiva de tamaño. No selecciona las reglas de instanciación ni progresión; contentType controla la implementación del paquete.

ClaveValoresPredeterminadoObligatorio
dungeonSizeCategoryEspecial [1]LAIR❌
Ejemplo
dungeonSizeCategory: MINIDUNGEON

create_packager_size.jpg

Especial [1]

Expandir tabla
ClaveDescripción
LAIRMazmorra pequeña centrada en un combate contra un jefe importante.
SANCTUMEquivalente instanciado de una guarida, centrado en un gran combate contra un jefe.
MINIDUNGEONMazmorra mediana que suele incluir entre 3 y 15 minijefes, un jefe principal y enemigos menores para conseguir monedas y equipo.
DUNGEONEquivalente instanciado de una minimazmorra. Un grupo atraviesa enemigos menores y minijefes hasta llegar al jefe final.
RAIDEtiqueta de tamaño reconocida. No activa un sistema de incursiones ni un tipo de contenido independiente.
ADVENTUREMapa de aventura completo con misiones, NPC y numerosos jefes y minijefes. Puede contener arenas y otras mazmorras.
ARENAZona de supervivencia por oleadas, con recompensas por derrotarlas.
OTHERContenido que no encaja en las categorías anteriores.
REALMEtiqueta para mundos grandes con mucho contenido. contentType determina si el mundo es compartido o instanciado.

Consulta Mazmorras para obtener descripciones más detalladas.


protect​

Establece si EliteMobs registra el mundo en las protecciones de MagmaCore. Impiden romper y colocar bloques, la combustión, la ignición, la mayoría de desapariciones de bloques, la caída de hojas, el polvo de hueso, vaciar cubos, editar carteles, acceder a los contenedores contemplados salvo cofres del tesoro registrados, abrir puertas, trampillas y puertas de valla, interactuar con huevos de dragón y macetas, manipular marcos y soportes de armadura, alterar bloques mediante entidades y generar criaturas por motivos distintos de CUSTOM. El hielo escarchado puede seguir derritiéndose. También se bloquean las pociones arrojadizas y persistentes de Tejido lanzadas por jugadores. allowExplosionBlockDamage, allowLiquidFlow y allowElytra controlan sus respectivas protecciones. Los ajustes generales de mazmorras controlan el fuego amigo y los multiplicadores de daño ambiental. Con preventFlyToggleInDungeons: true en CombatTag.yml (el valor por defecto), la protección también impide que los jugadores que no son operadores empiecen a volar. Los administradores pueden usar /em protection bypass para las acciones de jugador que admiten esa excepción.

Con protect: false no se registra ese conjunto de protecciones. El mundo sigue perteneciendo a EliteMobs: continúan activos la gestión de la mazmorra, el ciclo de vida de las instancias, el combate y otras funciones. Desactivar la protección no lo convierte en un mundo de supervivencia normal.

ClaveValoresPredeterminadoObligatorio
protectBooleanotrue❌
Ejemplo
protect: true

dungeonVersion​

Establece la versión del paquete. Increméntala en la configuración incluida en cada actualización. Las comprobaciones de Nightbreak comparan este valor en los paquetes instalados que cumplen sus requisitos; el argumento de versión de /em package no lo modifica.

ClaveValoresPredeterminadoObligatorio
dungeonVersionEntero0❌
Ejemplo
dungeonVersion: 1

playerInfo​

Establece la descripción en los menús de teletransporte de libro, inventario y diálogo. Admite códigos de color y los marcadores $bossCount, $lowestTier y $highestTier. El paquete debe cumplir los requisitos del menú y tener listedInTeleports: true.

ClaveValoresPredeterminadoObligatorio
playerInfoTextoninguno❌
Ejemplo
playerInfo: 'Difficulty: &a1-man easy content!'

create_packager_playerinfo.jpg


regionEnterMessage​

El cargador conserva y traduce este valor, pero la implementación actual no lo lee para mostrar un mensaje de entrada. Configurarlo no tiene efecto visible.

ClaveValoresPredeterminadoObligatorio
regionEnterMessageTextoninguno❌
Ejemplo
regionEnterMessage: '&aYou have entered the dungeon!'

create_packager_enter.jpg


regionLeaveMessage​

El cargador conserva y traduce este valor, pero la implementación actual no lo lee para mostrar un mensaje de salida. Configurarlo no tiene efecto visible.

ClaveValoresPredeterminadoObligatorio
regionLeaveMessageTextoninguno❌
Ejemplo
regionLeaveMessage: '&aYou have left the dungeon!'

create_packager_leave.jpg


hasCustomModels​

Indica que el paquete de mazmorra incluye modelos personalizados (para ModelEngine o FreeMinecraftModels). La clave se lee y se escribe, pero actualmente nada en EliteMobs actúa sobre ella: los modelos se instalan únicamente por el hecho de que la carpeta models esté presente en el paquete. Considérala un marcador documental.

ClaveValoresPredeterminadoObligatorio
hasCustomModelsBooleanofalse❌
Ejemplo
hasCustomModels: false

dungeonConfigFolderName​

Establece el nombre de las carpetas que contienen los archivos asociados a esta mazmorra.

Obligatorio para mazmorras instanciadas.

ClaveValoresPredeterminadoObligatorio
dungeonConfigFolderNameTextoninguno❌
Ejemplo
dungeonConfigFolderName: my_dungeon_folder

anchorPoint​

Punto de referencia de la época de los esquemas para coordenadas relativas. El analizador de paquetes todavía lee anchorPoint y calculatedRotation, pero ningún comando ni función actual los usa. El comando /em relativecoords, que medía desde el anclaje, se eliminó en EliteMobs 9.0.5. Coloca jefes, cofres y NPCs con las ubicaciones de sus propios archivos.

ClaveValoresPredeterminadoObligatorio
anchorPointUbicaciónninguno❌
calculatedRotationEntero (grados)0❌
Ejemplo
anchorPoint: my_dungeon_world,100,64,100,0,0
calculatedRotation: 0

contentLevel​

Establece el nivel de contenido que muestra el menú de EM.

ClaveValoresPredeterminadoObligatorio
contentLevelEntero0❌
Ejemplo
contentLevel: 20

enchantmentChallenge​

Registra el paquete como un desafío de encantamiento para la mejora de objetos. Son instancias individuales y quedan fuera del menú normal de teletransportes. Necesitan un paquete instanciado, una plantilla de mundo válida, un punto de inicio y objetivos que puedan completarse.

ClaveValoresPredeterminadoObligatorio
enchantmentChallengeBooleanofalse❌
Ejemplo
enchantmentChallenge: false

song​

Configura la banda sonora de la mazmorra.

ClaveValoresPredeterminadoObligatorio
songTextoninguno❌

name= Identificador del sonido definido por el paquete de recursos del cliente, no su nombre de archivo en disco.

length= La duración de la banda sonora en milisegundos. EliteMobs la convierte internamente a ticks, así que debe ser la duración real del sonido o la pista se reiniciará antes o después de tiempo.

Las dos partes se separan con un espacio. Puedes encadenar dos pistas con ->; la primera se reproduce una vez y la segunda se repite, usando la misma sintaxis name=/length=. Con una sola pista, esta se repite. Los clientes necesitan el paquete de recursos que contiene el sonido; este ajuste no lo distribuye.

Ejemplo
song: name=elitemobs:dark_cathedral.ambient length=93830

Forma con dos pistas:

song: name=elitemobs:intro length=12000->name=elitemobs:dark_cathedral.ambient length=93830

dungeonLockoutMinutes​

Establece el bloqueo de recompensas, en minutos, de cada jefe instanciado derrotado. Se registra por jugador e identidad del jefe, incluidos los miembros del grupo que cumplen los requisitos; no impide entrar en la mazmorra. El valor predeterminado es 4320, es decir, 72 horas. Usa 0 para desactivarlo en un paquete u otro valor positivo para cambiar su duración. Los jugadores bloqueados tampoco reciben XP de habilidad del jefe durante ese plazo.

ClaveValoresPredeterminadoObligatorio
dungeonLockoutMinutesEntero4320❌
Ejemplo
dungeonLockoutMinutes: 1440

containedPackages​

Establece la lista de paquetes incluidos en un metapaquete. Se utiliza con contentType: META_PACKAGE para enumerar los subpaquetes de una mazmorra mayor.

ClaveValoresPredeterminadoObligatorio
containedPackagesLista de textosninguno❌
Ejemplo
containedPackages:
- my_dungeon_adventure.yml
- my_dungeon_sanctum.yml
- my_dungeon_boss_fight.yml

customItemFilenames​

Enumera los archivos de objetos personalizados de un paquete de objetos. Una lista no nula, incluso vacía, sustituye contentType por ITEMS_PACKAGE. Las listas de eventos y modelos se procesan después y pueden volver a sustituirlo; usa solo la lista del tipo de paquete deseado.

ClaveValoresPredeterminadoObligatorio
customItemFilenamesLista de textosninguno❌
Ejemplo
customItemFilenames:
- my_custom_sword.yml
- my_custom_armor.yml

customEventFilenames​

Enumera los archivos de eventos personalizados. Definir esta lista establece automáticamente contentType: EVENTS_PACKAGE.

ClaveValoresPredeterminadoObligatorio
customEventFilenamesLista de textosninguno❌
Ejemplo
customEventFilenames:
- my_custom_event.yml

modelNames​

Enumera los nombres de modelos del paquete. Definir esta lista establece automáticamente contentType: MODELS_PACKAGE.

ClaveValoresPredeterminadoObligatorio
modelNamesLista de textosninguno❌
Ejemplo
modelNames:
- my_custom_model

Campos conservados de la época de los esquemas​

relativeBossLocations, relativeTreasureChestLocations, schematicName, defaultSchematicRotation, corner1 y corner2 permanecen en el analizador para archivos antiguos. Los paquetes actuales de mundos e instancias no colocan contenido mediante ellos. Usa las ubicaciones de las definiciones de jefes y cofres y la plantilla del mundo. anchorPoint y calculatedRotation se conservan de la misma forma; consulta anchorPoint.

Claves traducibles​

Seis de los valores anteriores se registran en el sistema de traducción cuando se carga el paquete: name, customInfo, playerInfo, regionEnterMessage, regionLeaveMessage y el name de cada entrada de difficulties. En un servidor que use un idioma distinto del inglés, estos valores se buscan en el CSV de ese idioma, y el texto que escribas en el YAML es aquello con lo que se coteja la columna en inglés. Escríbelos en inglés si quieres que tu paquete sea traducible.


Paquetes de mazmorras basadas en mundos​

Los siguientes valores solo se aplican a las mazmorras basadas en mundos.


worldName​

Establece el nombre del mundo que se empaquetará.

ClaveValoresPredeterminadoObligatorio
worldNameTextoninguno✅
Ejemplo
worldName: my_minecraft_world

wormholeWorldName​

Nombra un mundo secundario que se carga junto al paquete de mundo, con el mismo entorno y las mismas protecciones. No crea agujeros de gusano ni conecta ubicaciones automáticamente. Incluye ese mundo y configura sus agujeros de gusano por separado.

ClaveValoresPredeterminadoObligatorio
wormholeWorldNameTextoninguno❌
Ejemplo
wormholeWorldName: my_minecraft_world_wormhole

environment​

Establece el entorno del mundo.

ClaveValoresPredeterminadoObligatorio
environmentEntornoNORMAL❌
Ejemplo
environment: NORMAL

teleportLocation​

Establece el punto de entrada de un paquete de mundo. En una instancia es la sala previa al inicio, cuya ubicación se reasigna al mundo clonado; si se omite, se usa startLocation como sala previa. Usa el formato serializado world,x,y,z,yaw,pitch.

ClaveValoresPredeterminadoObligatorio
teleportLocationTextoninguno✅
Ejemplo
teleportLocation: my_minecraft_world,-1.5,68,0.5,0.0,0.0

allowExplosionBlockDamage​

Permite o impide el daño de explosiones a los bloques de un mundo de mazmorra protegido. Activarlo no convierte las explosiones normales en explosiones de élite. Con doExplosionRegen activado, EliteMobs restaura las explosiones de élite registradas; la restauración empieza tras un minuto y procesa un bloque por tick, por lo que su duración depende del área dañada. Otras explosiones pueden dejar daños permanentes.

ClaveValoresPredeterminadoObligatorio
allowExplosionBlockDamageBooleanofalse❌
Ejemplo
allowExplosionBlockDamage: true

allowLiquidFlow​

Establece si pueden fluir líquidos cuando el mundo del paquete está protegido. No permite vaciar cubos ni eludir otras protecciones.

ClaveValoresPredeterminadoObligatorio
allowLiquidFlowBooleanotrue❌
Ejemplo
allowLiquidFlow: false

allowElytra​

Establece si los jugadores pueden planear con élitros en el mundo protegido del paquete, con protect: true. Con false, el valor predeterminado, se cancela el inicio del planeo, se detiene al entrar al mundo y se aplica la restricción en los eventos de movimiento. Los jugadores con la excepción de protección activada quedan exentos.

ClaveValoresPredeterminadoObligatorio
allowElytraBooleanofalse❌
Ejemplo
allowElytra: true

listedInTeleports​

Controla la visibilidad de los paquetes de combate instalados en el menú de teletransportes de /em. Los desafíos de encantamiento se excluyen por separado. false oculta la entrada; no es un permiso de acceso ni bloquea comandos directos o agujeros de gusano.

ClaveValoresPredeterminadoObligatorio
listedInTeleportsBooleanotrue❌
Ejemplo
listedInTeleports: false

teleportLocationOffset​

Establece un desplazamiento para la ubicación de teletransporte del paquete de mazmorra.

Esta clave se procesa pero actualmente no se usa: nada en EliteMobs lee el desplazamiento resultante, así que establecerla no tiene ningún efecto sobre dónde aterrizan los jugadores. Ajusta teleportLocation directamente en su lugar.

ClaveValoresPredeterminadoObligatorio
teleportLocationOffsetTextoninguno❌
Ejemplo
teleportLocationOffset: my_minecraft_world,0.5,2,0.5,0.0,0.0

Mazmorras instanciadas​

Las mazmorras instanciadas crean un mundo nuevo para cada grupo y lo eliminan al terminar. Crea una carpeta con el nombre indicado en dungeonConfigFolderName dentro de world_blueprints de EliteMobs.

Coloca una dimensión exportada en world_blueprints/<dungeonConfigFolderName>/<worldName>/. El validador exige exactamente una ubicación de terreno con archivos de región .mca, en la raíz o en la subcarpeta antigua DIM-1/DIM1 correspondiente. Admite mundos antiguos completos, exportaciones de solo terreno y dimensiones modernas. No todos los formatos admitidos necesitan level.dat. Se rechazan el contenedor dimensions de todo el servidor, las estructuras mezcladas y los enlaces o archivos no regulares. Las dimensiones modernas necesitan un servidor con almacenamiento moderno.

Trabaja en una copia de exportación descargada y conserva el terreno, las entidades, los puntos de interés y los datos de esa dimensión. La clonación omite uid.dat, session.lock y los metadatos de identidad de Paper por dimensión. No modifica la plantilla. Los mundos de instancia usan el patrón <worldName>_<number>. El arranque conserva los restos de cierres inesperados; el ciclo de vida de cada instancia solo limpia los mundos que creó. Antes de eliminar un resto manualmente, confirma su origen y que ninguna instancia activa lo use.

Los siguientes valores solo se aplican a las mazmorras instanciadas. Estas también son mazmorras basadas en mundos y utilizan sus ajustes.


startLocation​

Establece el punto al que se teletransporta a los jugadores al iniciar la mazmorra instanciada con /em start. Un paquete instanciado o dinámico sin un startLocation válido no se carga.

ClaveValoresPredeterminadoObligatorio
startLocationTextoninguno✅
Ejemplo
startLocation: my_minecraft_world,10.5,70,10.5,0.0,0.0

permission​

Establece el permiso necesario para entrar en la instancia.

ClaveValoresPredeterminadoObligatorio
permissionTextoninguno❌
Ejemplo
permission: elitedungeon.mypermission

minPlayerCount​

Establece el número mínimo de jugadores para iniciar una mazmorra.

ClaveValoresPredeterminadoObligatorio
minPlayerCountEntero1❌
Ejemplo
minPlayerCount: 1

maxPlayerCount​

Establece el número máximo de jugadores admitidos.

ClaveValoresPredeterminadoObligatorio
maxPlayerCountEntero5❌
Ejemplo
maxPlayerCount: 5

dungeonObjectives​

Enumera los objetivos necesarios para completar la mazmorra.

ClaveValoresPredeterminadoObligatorio
dungeonObjectivesLista de textosninguno✅
Ejemplos

Usa un objetivo de bajas: filename=boss.yml:amount=X. amount vale 1 por defecto. Cuenta las muertes de jefes instanciados coincidentes en esta instancia, incluido el nombre de archivo de la primera fase de un jefe con fases. Todos los objetivos registrados deben completarse mientras la mazmorra está en curso.

dungeonObjectives:
- filename=dungeon_final_boss.yml
- filename=dungeon_miniboss_one.yml
- filename=dungeon_miniboss_two.yml
dungeonObjectives:
- filename=dungeon_guard.yml:amount=5

También se acepta boss.yml sin el prefijo filename= y se interpreta como filename=boss.yml para conservar los paquetes antiguos. En paquetes nuevos, usa la forma explícita.

El nombre de archivo debe terminar en .yml y amount debe ser un número entero de al menos 1. Cada campo puede aparecer una sola vez. Un campo desconocido, la falta del nombre de archivo o un amount no válido impiden que se cargue el paquete, y el error de consola indica el archivo y el objetivo.

Los objetivos porcentuales no están admitidos

Los objetivos porcentuales no están admitidos y se rechazan al cargar la definición de la mazmorra. Usa objetivos de bajas explícitos, como filename=boss.yml:amount=2. Un objetivo obligatorio no válido hace que se rechace la definición; nunca se omite en silencio de los requisitos para completarla.


difficulties​

Establece la lista de dificultades de la mazmorra instanciada.

¡Obligatorio para mazmorras instanciadas!

ClaveValoresPredeterminadoObligatorio
difficultiesEspecial [1]ninguno❌
Ejemplos
difficulties:
- levelSync: 25
id: 0
name: normal
- levelSync: 20
id: 1
name: hard
- levelSync: 15
id: 2
name: mythic

create_packager_difficulty.jpg

Especial [1]

Expandir tabla

Al configurar las dificultades de una mazmorra instanciada, se crean las opciones que aparecen al entrar.

Usa id para identificar los filtros de dificultad de poderes y botín. name es el nombre traducible que ven los jugadores. Se recomiendan los ID explícitos 0, 1 y 2 para Normal, Hard y Mythic. El sistema también reconoce Easy/Medium/Hard como esos tres niveles cuando el paquete usa esos nombres; los ID desconocidos conservan la coincidencia exacta. Si omites id, se deduce del nombre original antes de traducirlo.

Las dificultades forman una lista con estos campos:

ClaveDescripciónValoresObligatorio
nameNombre de la dificultad que ven los jugadores.Texto✅
idID de dificultad usado por las funciones de dificultad de jefes y objetos personalizados.Texto❌
levelSyncLimita el nivel del objeto en la ruta de objetos del jugador almacenados en caché. No modifica el equipo ni limita todos los cálculos de daño y defensa.Nivel absoluto (25) o valor entre comillas relativo a contentLevel ('+5', '-3')❌

Sincronización relativa: un levelSync que comienza por + o - se suma a contentLevel, con un mínimo de 1. Por ejemplo, contentLevel: 40 con levelSync: '-5' fija el límite del nivel en caché en 35. Escribe los valores relativos entre comillas: YAML elimina el signo inicial de +5 sin comillas y lo convierte en el nivel absoluto 5. Las mazmorras dinámicas calculan los valores relativos respecto al nivel elegido. Un valor inválido desactiva la sincronización con 0 y registra una advertencia.

Los cálculos actuales de ataque cuerpo a cuerpo, defensa de armadura y armas de proyectiles pueden leer niveles de objeto sin limitar. Este ajuste tampoco limita las contribuciones de encantamientos del equipo. Consulta la dificultad de mazmorras instanciadas antes de basar el equilibrio del encuentro en la sincronización.

Mazmorras dinámicas​

Las mazmorras dinámicas amplían las instanciadas: su contenido escala al nivel elegido por el jugador. El menú de selección parte del nivel de combate actual del jugador. Comienza en el mayor de estos valores: nivel 5 o nivel de combate menos 5. Ofrece incrementos de cinco niveles hasta el nivel de combate más 5, con un máximo de 200. El rango del gremio no desbloquea estas opciones.

Al diseñar jefes para una mazmorra dinámica, usa level: dynamic. El nivel elegido se aplica a los jefes de EliteMobs de la instancia, no a todas las entidades vanilla ni a todas las recompensas. Usa scalability: scalable en los objetos personalizados que deban aceptar el nivel de recompensa y comprueba la ruta de botín correspondiente; el botín ponderado de jefes y las recompensas fijas explícitas pueden conservar el nivel configurado.

Las mazmorras dinámicas necesitan los siguientes valores. Como también son mazmorras instanciadas, utilizan todos sus valores y ajustes.


contentType​

Establece el tipo de mazmorra. Debe ser DYNAMIC_DUNGEON.

ClaveValoresPredeterminadoObligatorio
contentTypeOPEN_DUNGEON / INSTANCED_DUNGEON / DYNAMIC_DUNGEON / HUB / META_PACKAGE / ITEMS_PACKAGE / EVENTS_PACKAGE / MODELS_PACKAGEninguno✅
Ejemplo
contentType: DYNAMIC_DUNGEON

contentLevel​

Las mazmorras dinámicas prediseñadas lo establecen en -1. Una mazmorra dinámica no usa este valor: contentType: DYNAMIC_DUNGEON es lo que hace dinámico el paquete, sus marcadores $lowestTier y $highestTier muestran 5 y 200, y los valores relativos de levelSync usan el nivel que seleccionan los jugadores.

ClaveValoresPredeterminadoObligatorio
contentLevelEntero0❌
Ejemplo
contentLevel: -1

difficulties​

Establece las dificultades disponibles y la sincronización de nivel de la mazmorra dinámica.

¡Obligatorio para mazmorras instanciadas!

ClaveValoresPredeterminadoObligatorio
difficultiesEspecial [1]ninguno✅
Ejemplos
difficulties:
- levelSync: '+5'
name: normal
id: 0
- levelSync: '+0'
name: hard
id: 1
- levelSync: '-5'
name: mythic
id: 2

create_packager_difficulty.jpg

Especial [1]

Expandir tabla

Al configurar las dificultades de una mazmorra instanciada, se crean las opciones que aparecen al entrar.

Usa id para identificar los filtros de dificultad de poderes y botín. name es el nombre traducible que ven los jugadores. Se recomiendan los ID explícitos 0, 1 y 2 para Normal, Hard y Mythic. El sistema también reconoce Easy/Medium/Hard como esos tres niveles cuando el paquete usa esos nombres; los ID desconocidos conservan la coincidencia exacta. Si omites id, se deduce del nombre original antes de traducirlo.

Los valores de levelSync con signo y entre comillas establecen un límite relativo en la ruta de objetos del jugador almacenados en caché. No cambian el nivel elegido para los jefes, no elevan el equipo de nivel bajo ni limitan todos los cálculos de combate.

Por ejemplo, "+0" fija ese límite en el nivel elegido para la mazmorra, "+5" lo fija cinco niveles por encima y "-5" cinco por debajo, con un mínimo de 1. Siguen aplicándose las limitaciones descritas en la sección de mazmorras instanciadas.

Las dificultades forman una lista con estos campos:

ClaveDescripciónValoresObligatorio
nameNombre de la dificultad que ven los jugadores.Texto✅
idID de dificultad usado por las funciones de dificultad de jefes y objetos personalizados.Texto❌
levelSyncLimita el nivel del objeto en caché; no es un límite universal del equipo.Entero para un límite absoluto, o desplazamiento con signo entre comillas como '+5'❌

Uso de meta_pack.yml para mazmorras grandes​

Una mazmorra grande puede incluir otras más pequeñas, conectadas a través de su mundo principal. Primis, la mazmorra de aventura de EliteMobs, es un ejemplo.

Primis tiene un mundo amplio para explorar y completar misiones, además de dos mazmorras instanciadas, una de ellas dedicada al jefe final. En estos casos hay varios archivos de paquete, aunque todos pertenecen a la misma aventura.

Para agruparlos, se usa un archivo de metapaquete. Identifica la mazmorra principal y enumera el contenido adicional asociado.

Este ejemplo muestra la agrupación de paquetes de Primis. Su versión es ilustrativa, no la versión publicada actual:

isEnabled: true
name: '&2[000-020] The Primis Adventure!'
customInfo:
- The tutorial adventure for players
- new to EliteMobs!
downloadLink: https://discord.gg/9f5QSka
dungeonSizeCategory: LAIR
environment: NORMAL
protect: true
contentType: META_PACKAGE
containedPackages:
- primis_adventure.yml
- primis_blood_temple_sanctum.yml
- primis_gladius_invasion_dungeon.yml
setupMenuDescription:
- '&2A soft tutorial adventure for players between levels 0-20!'
- '&2Adventures are massive maps with quests,'
- '&2many bosses and npcs, among other things!'
- '&2Also has custom models!'
dungeonVersion: 1

El metapaquete se parece a un paquete normal, pero usa contentType: META_PACKAGE y añade containedPackages: para enumerar los paquetes que forman parte de la mazmorra grande.

Enumera el nombre exacto del archivo de cada paquete hijo en containedPackages. Incluye esas configuraciones y su contenido en el archivo comprimido. El metapaquete busca definiciones ya cargadas y omite las que falten; la lista por sí sola no incluye ni descarga sus archivos.

Usa el dungeonVersion del metapaquete para la publicación conjunta. Las comprobaciones de versión de Nightbreak omiten los hijos enumerados y comparan la versión del paquete padre apto. Declarar hijos no añade soporte de descarga o actualización de Nightbreak a un metapaquete YAML personalizado.

Las mazmorras hijas pueden seguir apareciendo en el menú de teletransporte del jugador, /em, independiente del menú administrativo /em setup. Configura listedInTeleports: false en cada hija cuya entrada quieras ocultar.

Por ejemplo, en Primis:

Desactiva las entradas de teletransporte de primis_blood_temple_sanctum.yml y primis_gladius_invasion_dungeon.yml. Mantén activada la de primis_adventure.yml, que es el punto de entrada a la aventura y a las demás mazmorras. Los jugadores entran por esa opción y siguen las rutas creadas en la aventura para llegar a las mazmorras hijas.

Recomendamos esta convención para el nombre del archivo:

your_dungeon_name_meta_pack.yml


Para los objetivos de botín de Normal, Hard y Mythic, consulta el equilibrio automático de botín de clase y encantamientos. Esa guía explica los perfiles de equipo por rango del encuentro, el presupuesto real de encantamientos, la presentación reutilizable de recompensas y los comandos de revisión administrativa. Los valores de vida y daño siguientes ajustan el combate independientemente de la calidad de las recompensas.

Creación de un enemigo de mazmorra normal​

Usa normalizedCombat: true para el combate normalizado. La vida y el daño siguen dependiendo del nivel, los multiplicadores, el equipo y las habilidades del jugador, y los ajustes de combate. Estos ejemplos son puntos de partida para equilibrar los encuentros, no cantidades fijas de golpes necesarios para matar.

Para el contenido de mazmorra, normalizeRegionalBosses: true en MobCombatSettings.yml (el valor predeterminado) activa el combate normalizado para los jefes regionales; los jefes de mazmorras instanciadas también lo usan. Un scaledCombat: true explícito en el archivo del jefe tiene prioridad en los cálculos de combate escalado. Las recomendaciones siguientes suponen combate normalizado sin esa anulación.

normalizedCombat: true
healthMultiplier: 1.0 #Starting point; verify with intended player loadouts.
damageMultiplier: 1.0 #Damage scales with the player's health and defenses; playtest this value.

Nota: como 1.0 es el valor predeterminado de vida y daño, puedes omitir healthMultiplier y damageMultiplier y establecer normalizedCombat en true.

Creación de grupos de enemigos débiles​

Estos enemigos aparecen en grupos numerosos, pero no son muy peligrosos:

normalizedCombat: true
healthMultiplier: 0.7 #Starting point for weaker mobs.
damageMultiplier: 0.5 #Damage scales with the player's health and defenses; playtest this value.

Creación de refuerzos​

Los refuerzos deberían morir con facilidad, pero infligir un daño peligroso. Estos valores se recomiendan para cuatro o más entidades cuerpo a cuerpo; ajústalos al encuentro:

normalizedCombat: true
healthMultiplier: 0.25 #Starting point for fragile reinforcements.
damageMultiplier: 0.6 #Damage scales with the player's health and defenses; playtest this value.

Creación de minijefes​

Los minijefes deberían resistir y poner a prueba la habilidad del jugador mediante sus mecánicas. El combate debería durar un poco, sin ser excesivamente letal:

normalizedCombat: true
healthMultiplier: 3.0 #Starting point for minibosses.
damageMultiplier: 1.2 #Damage scales with the player's health and defenses; playtest this value.

Creación de jefes​

Los jefes culminan la progresión de la mazmorra y ponen a prueba las habilidades aprendidas. Sus encuentros deberían ser largos y mantener una amenaza real de muerte.

normalizedCombat: true
healthMultiplier: 7.0 #Starting point for bosses; check the health ceiling.
damageMultiplier: 1.4 #Damage scales with the player's health and defenses; playtest this value.

Estos valores recomendados son aproximados. Ajusta los valores finales a cada encuentro.

Para los jefes finales, comprueba la duración del encuentro con los tamaños de grupo, equipo y habilidades previstos antes de aumentar healthMultiplier.

Comprueba el límite de vida antes de aumentar healthMultiplier

La vida base del jefe y el resultado tras aplicar el multiplicador están limitados por settings.attribute.maxHealth.max del servidor, 2048 por defecto. Con ese límite, 7.0 alcanza el máximo en el nivel 36, 10.0 en el 33 y 40.0 en el 23. El escalado por tamaño de grupo de la instancia multiplica después el resultado y tiene el mismo límite, así que un jefe que ya está en el máximo no gana vida con un grupo más grande. El daño tiene sus propios cálculos y límites; no sigue el límite de vida. Consulta healthMultiplier para ver el cálculo base y cómo elevar el límite del servidor.


Empaquetado de contenido de EliteMobs para distribuirlo

Por último, puedes empaquetar la mazmorra para guardarla o distribuirla.

EliteMobs tiene un sistema para que los administradores importen, instalen y desinstalen contenido. Consulta cómo funciona aquí.

Distribución de paquetes de recursos de mazmorras​

Desde EliteMobs 9.6.0, las mazmorras pueden distribuirse con sus propios paquetes de recursos. Permiten usar texturas o modelos personalizados para el botín y añadir sonidos, como en la mazmorra The Hallowed Haunt.

Para distribuir un paquete de recursos con la mazmorra, créalo como cualquier paquete estándar. Puedes tomar como referencia el paquete predeterminado que EliteMobs exporta al arrancar en plugins/EliteMobs/resource_pack/em_rsp_defaults/. Debe distribuirse descomprimido: crea una carpeta con el nombre de la mazmorra, por ejemplo my_cool_dungeon_rsp, y coloca dentro los archivos que normalmente incluirías en el ZIP. Después, pon esa carpeta dentro de otra llamada resource_pack, el mismo nombre que usa EliteMobs para guardar su paquete predeterminado.

Guarda tus cambios en un paquete separado. Al arrancar, EliteMobs compara la suma de verificación del paquete incluido con .rsp_checksum y sustituye em_rsp_defaults si el paquete incluido cambia o falta la suma guardada o la carpeta. No calcula la suma de los archivos que has editado: los cambios pueden sobrevivir a un reinicio, pero una exportación posterior los sustituirá.

La estructura debería quedar así:

resource_pack
└── my_cool_dungeon_rsp
└── [resource pack files]

El importador coloca esa carpeta en plugins/EliteMobs/resource_pack/. Importarla no la envía a los clientes; inclúyela en el paquete que distribuya el proveedor de recursos de tu servidor.

Recorte de mundos​

Recortar chunks sin usar reduce el tamaño de descarga del mundo. Este ejemplo usa el plugin WorldBorder; comprueba las versiones compatibles antes de usarlo en tu servidor. El recorte elimina chunks permanentemente, así que trabaja en una copia de exportación y conserva una copia de seguridad.

Details

Consejo Si es la primera vez, guarda una copia de seguridad del mundo por si algo sale mal.

Tras instalar el plugin, sitúate en el centro del mundo o de la zona que quieras conservar. Ejecuta /wb set x, donde x es el radio aproximado de esa zona.

Details

Consejo Si /wb no funciona, prueba /worldborder:wb.

Después, vuela hasta los bordes para comprobar que el límite cubre la zona prevista. Al alcanzarlo, el plugin te empuja hacia atrás y muestra un mensaje en el chat.

trim_pic_1.jpg

En la imagen queremos conservar los bloques morados y unos pocos chunks alrededor. Nos situamos en los cuadrados rojos del centro y ejecutamos /wb set 50 para colocar el borde justo fuera de la zona morada.

Después, usa /wb trim [freq] [pad]. La frecuencia se mide en chunks procesados por segundo y el margen en bloques, no en chunks, según la implementación del comando. /wb trim 200 20 procesa 200 chunks por segundo y deja un margen de 20 bloques alrededor del borde. Revisa la operación antes de ejecutar /wb trim confirm y, al terminar, inspecciona la copia recortada.

Puedes quitar el borde de este mundo con /wb clear o conservarlo.

Preparación de la carpeta del mundo​

Haz una copia de seguridad y trabaja en una copia de exportación separada con el mundo original descargado. Conserva toda la estructura de directorios, incluidos terreno, entidades, puntos de interés y datos del mundo. Una lista mínima de archivos puede eliminar terreno, marcos, soportes para armaduras u otro contenido creado.

La estructura depende de la versión de Minecraft y del servidor. Las versiones antiguas pueden usar DIM-1 para Nether y DIM1 para End; las modernas también pueden usar un contenedor dimensions/<namespace>/<key>/. Para una plantilla instanciada, exporta una sola dimensión al formato aceptado por WorldBlueprint, no el contenedor completo con varias dimensiones. Conserva la estructura de esa dimensión y comprueba la copia en otro servidor antes de distribuirla. Elimina bloqueos temporales y datos privados solo de la copia de exportación, tras identificar las rutas correspondientes a esa versión.

Ejecución del comando de empaquetado​

EliteMobs tiene el comando /em package <dungeonName> <version>, que requiere elitemobs.package. Busca una subcarpeta llamada dungeonName dentro de cada carpeta de contenido indicada abajo y copia lo que encuentra en exports/<dungeonName>/, para después comprimirlo en exports/<dungeonName>_packaged.zip.

Las carpetas que analiza son, en este orden:

custombosses, customevents, npcs, npc_scripts, transport_routes, customitems, customquests, customarenas, customspawns, customtreasurechests, wormholes, world_blueprints, powers, behaviors

Todo lo que no encuentre imprime un aviso de «no subdirectory» y se omite, lo cual es normal en un paquete que no usa todos los tipos de contenido.

Guarda el contenido que quieras empaquetar en carpetas con el mismo nombre que el paquete. Si no lo haces, tendrás que reunir los archivos manualmente en la estructura de distribución.

/em package no recoge content_packages, worldcontainer, models, scripts, enchantments ni resource_pack, y tampoco genera pack.meta. Añade a la carpeta de exportación los archivos que necesite tu paquete antes de crear el ZIP final. El argumento <version> debe ser un entero, pero no actualiza dungeonVersion; edita ese campo tú mismo.

Antes de copiar, el comando valida las plantillas existentes referenciadas por las definiciones de paquetes cargadas que coincidan. Puede detenerse si el formato o el servidor no son compatibles. Esta comprobación no garantiza que se hayan incluido todas las configuraciones, los jefes y los recursos necesarios.

Cada ejecución crea primero la exportación en una carpeta temporal. Si termina bien, sustituye exports/<dungeonName>/ y exports/<dungeonName>_packaged.zip, de modo que se borran los archivos que añadiste a mano a la carpeta de exportación anterior. Guarda esos añadidos en otro sitio y vuelve a copiarlos después de cada ejecución. Si no existe ninguna de las carpetas de contenido, o si una carpeta o archivo de contenido es un enlace simbólico, el comando muestra Failed to zip package!, registra el motivo en la consola y deja intacta la exportación anterior.

Incorporación del archivo de paquete de la mazmorra​

Si creas una mazmorra, añade manualmente su configuración a la carpeta recién generada dentro de exports. El archivo debe seguir el formato descrito arriba y estar dentro de una carpeta content_packages. Consulta la sección siguiente sobre la estructura de archivos.

¡Comprime la mazmorra en un ZIP cuando termines!

Estructura de archivos​

La estructura debería parecerse a este ejemplo, donde la mazmorra se llama my_cool_dungeon:

Ejemplo de estructura de my_cool_dungeon
  • my_cool_dungeon.zip
    • pack.meta <- Archivo de texto que contiene elitemobs
    • content_packages
      • my_cool_dungeon.yml <- Configuración del paquete de la mazmorra
    • worldcontainer
      • [Carpetas de tus mundos]
    • wormholes
      • my_cool_dungeon
        • [Tus portales]
    • npcs
      • my_cool_dungeon
        • [Tus NPC]
    • customtreasurechests
      • my_cool_dungeon
        • [Tus cofres de tesoro]
    • customquests
      • my_cool_dungeon
        • [Tus misiones]
    • customitems
      • my_cool_dungeon
        • [Tus objetos personalizados]
    • custombosses
      • my_cool_dungeon
        • [Tus jefes personalizados]
    • customarenas
      • my_cool_dungeon
        • [Tus arenas personalizadas]
    • powers
      • my_cool_dungeon
        • [Tus poderes personalizados]
    • world_blueprints
      • my_cool_dungeon
        • [Carpeta del mundo para mazmorras instanciadas]
    • customevents
      • my_cool_dungeon
        • [Tus eventos personalizados]
    • customspawns
      • my_cool_dungeon
        • [Tus apariciones personalizadas]
    • models
      • [Tus modelos en formato bbmodel, admite carpetas]
    • scripts
      • [Tus scripts Lua de FreeMinecraftModels]
    • resource_pack
      • my_cool_dungeon_rsp
        • [Archivos de tu paquete de recursos]

Distribuye el ZIP terminado para importarlo mediante plugins/EliteMobs/imports/, recarga y comprueba /em setup. Prueba una instalación limpia antes de compartirlo, incluidos los jefes, las misiones, los archivos Lua, los modelos y las plantillas de mundo referenciados.

Carpetas de nivel superior reconocidas​

El importador solo entiende un conjunto fijo de nombres de nivel superior. Para un paquete de EliteMobs (pack.meta que contenga elitemobs) son estos:

CarpetaDónde se instala
content_packagesplugins/EliteMobs/content_packages
dungeonpackagesplugins/EliteMobs/content_packages (alias antiguo)
custombossesplugins/EliteMobs/custombosses
customitemsplugins/EliteMobs/customitems
customtreasurechestsplugins/EliteMobs/customtreasurechests
customeventsplugins/EliteMobs/customevents
customspawnsplugins/EliteMobs/customspawns
customquestsplugins/EliteMobs/customquests
customarenasplugins/EliteMobs/customarenas
npcsplugins/EliteMobs/npcs
npc_scriptsplugins/EliteMobs/npc_scripts
transport_routesplugins/EliteMobs/transport_routes
behaviorsplugins/EliteMobs/behaviors
enchantmentsplugins/EliteMobs/enchantments
wormholesplugins/EliteMobs/wormholes
powersplugins/EliteMobs/powers
world_blueprintsplugins/EliteMobs/world_blueprints
resource_packplugins/EliteMobs/resource_pack
worldcontainerel contenedor de mundos del servidor
models o modelengineCarpeta de modelos de FreeMinecraftModels si está habilitado; en caso contrario, blueprints de ModelEngine si está habilitado; si ninguno está habilitado, la carpeta de modelos de FreeMinecraftModels
scriptsplugins/FreeMinecraftModels/scripts
elitemobsplugins/EliteMobs, combinado con la misma estructura que esa carpeta de datos
freeminecraftmodelsplugins/FreeMinecraftModels, combinado con la misma estructura que esa carpeta de datos. Una carpeta models dentro de ella va a la carpeta de modelos que lea FreeMinecraftModels
betterstructuresplugins/BetterStructures, combinado con la misma estructura que esa carpeta de datos
pack.metaNo se instala en ningún sitio: solo se lee para identificar el paquete

Usa las carpetas elitemobs, freeminecraftmodels y betterstructures para los archivos que no tienen un nombre de nivel superior propio, por ejemplo freeminecraftmodels/enchantments para los encantamientos de FreeMinecraftModels que usan tus objetos. Cuando una importación coloca archivos en su carpeta, FreeMinecraftModels recarga su contenido importado. BetterStructures se recarga cuando termina su propio arranque; las versiones sin ese punto de recarga registran una advertencia que te pide ejecutar /bs reload.

Una entrada desconocida en el nivel superior rechaza todo el paquete y conserva el archivo para corregirlo. No incluyas archivos readme sueltos, capturas ni carpetas __MACOSX en la raíz. Si falla una escritura de destino, el importador intenta revertir todos los destinos modificados por ese archivo; revisa las advertencias de reversión antes de repetir la importación.

schematics también rechaza un archivo de EliteMobs y añade una advertencia de que las mazmorras basadas en esquemas se eliminaron en EliteMobs 9.0.

Distribuye las configuraciones con isEnabled: false si los administradores deben instalarlas mediante /em setup. Prepara y comprueba una copia de exportación descargada de cada mundo. Conserva los archivos del servidor de creación y verifica la configuración exportada; no supongas que el comando de empaquetado restablece el estado de instalación.

Compartir tus paquetes de mazmorras con la comunidad

En Discord, la sección #community_dungeons permite compartir las minimazmorras creadas por la comunidad. ¡Puedes publicar las tuyas!