Configuración inicial de MegaBlock Survivors
La configuración de MegaBlock Survivors usa paquetes de contenido gestionados por Nightbreak. FreeMinecraftModels es necesario para los mobs y las armas de las partidas, aunque el descriptor del plugin lo declare como dependencia opcional.
Requisitos
- Java
21 - Un servidor compatible con tu compilación de MegaBlock Survivors. El descriptor declara la API
1.21.4, pero el código actual se compila contra Spigot26.2; el descriptor por sí solo no es una lista de versiones compatibles. FreeMinecraftModelsy los paquetes de modelos y contenido necesarios para jugarWorldEditpara los esquemas de torres, muros y árboles que pega la generación de mundos. El plugin llama directamente a la API de WorldEdit, pero el descriptor no lo declara como dependencia- Soporte nativo funcional de
minecraft:dialogpara las pantallas de selección y recompensas
Integraciones opcionales:
LibsDisguises: dependencia opcional para funciones visuales adicionales
Qué crea MegaBlock Survivors
Al arrancar, MegaBlock Survivors inicializa o usa estas rutas dentro de plugins/MegaBlockSurvivors/:
plugins/MegaBlockSurvivors/config.yml
plugins/MegaBlockSurvivors/translations.yml
plugins/MegaBlockSurvivors/content_packages/
plugins/MegaBlockSurvivors/content_markers/
plugins/MegaBlockSurvivors/imports/
plugins/MegaBlockSurvivors/schematics/
plugins/MegaBlockSurvivors/worlds/
plugins/MegaBlockSurvivors/npcs/
plugins/MegaBlockSurvivors/leaderboard.yml
plugins/MegaBlockSurvivors/meta_progression.yml
plugins/MegaBlockSurvivors/stats-dump.log
plugins/MegaBlockSurvivors/version.txt
plugins/MegaBlockSurvivors/nightbreak-changelogs.yml
nightbreak-changelogs.yml guarda el estado de lectura compartido de las notas de versión que usa /mbschangelog (consulta Comandos).
También carga un mundo de vestíbulo creado por el administrador, llamado mbs_spawn, si su carpeta existe en disco y el mundo aún no está cargado. Instala ese vestíbulo antes de iniciar el plugin. Cuando no está disponible:
- El holograma de clasificación, situado en
(4.5, 67, -14.5)dembs_spawn, no aparece y genera un mensaje informativo en el registro. - El teletransporte al conectarse no hace nada. Cuando el vestíbulo está cargado, intenta enviar al jugador a
(0.5, 65, 0.5), con yaw 180, si no tiene un registro de partida o el nombre de su mundo actual empieza pormegablocksurvivors_. Tener una partida activa no basta para omitir esta condición. - La limpieza posterior a la partida usa la ubicación previa del jugador en lugar del vestíbulo.
Configuración
config.yml contiene:
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
setupDone | booleano | false | Registra si se ha completado la guía de configuración inicial |
preGenerateWorldCache | booleano | false | Genera por adelantado los mundos de supervivencia durante el arranque. Déjalo en false para aligerar el inicio del servidor; los mundos siguen generándose bajo demanda cuando una partida los necesita |
nightbreak.autoDownloadPluginUpdates | booleano | false | Lo añade la biblioteca MagmaCore incluida en el JAR después del arranque. Con true, una actualización disponible del plugin se descarga automáticamente unos minutos después del arranque. Las descargas automáticas del plugin requieren un token válido de cuenta de Nightbreak y una suscripción activa de colaborador |
nightbreak.applyPluginUpdatesWithoutRestart | cadena | never | Lo añade MagmaCore. never espera al siguiente reinicio, when-empty aplica una actualización descargada la próxima vez que no haya jugadores conectados e immediately la aplica de inmediato. Aplicar una actualización recarga MegaBlock Survivors y termina las partidas activas. /mbs applypluginupdate aplica a mano una actualización en espera |
Consulta Actualizaciones automáticas para saber cómo se comportan los ajustes compartidos de actualización en los plugins de Nightbreak.
Traducciones
Muchos mensajes del juego, diálogos, barras de jefe y textos de hologramas usan translations.yml. Algunos mensajes de paquetes de contenido, descripciones de comandos compartidos y textos de clasificación siguen fijados en inglés. Las funciones de traducción admitidas incluyen:
- Códigos de color con el prefijo
&y secuencias hexadecimales&#RRGGBB. - Etiquetas de degradado de MagmaCore como
<gradient:#FF0000:#00FF00>text</gradient>. - Marcadores
{placeholder}que el plugin sustituye durante la ejecución. - Las claves ausentes se muestran como un marcador visible
[translations: key.name]para facilitar su localización dentro del juego.
El archivo se regenera con las entradas predeterminadas en el primer arranque y al recargar el plugin, por lo que los textos nuevos aparecen automáticamente.
Datos persistentes de jugadores
| Archivo | Propósito |
|---|---|
leaderboard.yml | Entradas de clasificación por categoría: 6 secciones, con 2 modos de juego por 3 dificultades, limitadas a 100 entradas por categoría. |
meta_progression.yml | Saldo de ecos de alma y niveles de las líneas de mejora de cada jugador. Usa el UUID del jugador como clave. |
stats-dump.log | Registro de resúmenes en JSON Lines, ampliado al cerrar cada partida. /mbs dump vacía el archivo compartido antes de buscar la partida actual o más reciente de quien lo ejecuta. Aunque no exista resumen, el registro anterior se borra. |
Carpetas de contenido
| Carpeta | Propósito |
|---|---|
imports/ | Carpeta de entrada para archivos de contenido descargados o colocados manualmente. El importador de MagmaCore los procesa al arrancar y con /mbs reload. |
schematics/ | Esquemas de estructuras usados en la generación del mundo. Sus nombres siguen Level<1-3>_<Name>.schem: Tower, Wall / Wall1 / Wall2 y Tree1..Tree5. Los mundos 1 y 3 incluyen 4 variantes de árboles, y el mundo 2 incluye 5. La arena del jefe final no usa esquemas. |
worlds/ | Carpetas de mundos instaladas por los paquetes de contenido. |
content_packages/ | Definiciones YAML de cada paquete; consulta más abajo. |
content_markers/ | Archivos marcadores que permiten detectar si un paquete ya está instalado. |
Aviso de configuración inicial
Cuando setupDone es false, el plugin muestra un aviso de configuración inicial a los jugadores con el permiso megablocksurvivors.* al conectarse. El aviso se configura mediante NightbreakFirstTimeSetupSpec únicamente con un comando de configuración, por lo que dirige a /mbs setup, el explorador de contenido, sin pasar por un paso de inicialización o descarga. Esta compilación no registra /mbs initialize; sí registra /mbs downloadall, pero solo obtiene el JAR del plugin porque los paquetes de contenido están deshabilitados en ese comando. Consulta la página de comandos y usa /mbs setup.
Abrir el explorador de contenido no establece setupDone. El menú que escribe ese indicador solo se alcanza mediante el controlador initialize, que no está registrado. Tras completar y comprobar la configuración, establece setupDone: true en config.yml y recarga el plugin para detener el recordatorio.
Proceso recomendado para la primera instalación
Guarda tus objetos habituales antes de iniciar una partida y usa un inventario dedicado al minijuego. La implementación actual sobrescribe la armadura del pecho y vacía todo el inventario al cerrar la partida, sin restaurar los objetos anteriores. También restablece los atributos, la salud, el hambre y la saturación, y elimina los efectos de poción.
- Instala MegaBlock Survivors y arranca el servidor una vez. Los archivos de traducción y configuración se escriben en el primer arranque.
- Vincula tu cuenta de Nightbreak con
/nightbreaklogin <token>. - Ejecuta
/mbs setuppara abrir el explorador de contenido de Nightbreak e instalar los paquetes necesarios. Comprueba que FreeMinecraftModels carga sus modelos; el estado instalado del paquete solo comprueba las rutas registradas. - Ejecuta
/mbs reloadtras importar manualmente o editar la configuración de paquetes. Reinicia MegaBlock Survivors y termina las partidas activas. Si se importan modelos durante esta recarga y FreeMinecraftModels está habilitado, también se recarga el contenido de FMM. Para archivos editados o copiados directamente en las carpetas de FMM, utiliza su propio comando de recarga.
/nightbreaklogin <token> pertenece al sistema compartido de cuentas de Nightbreak/MagmaCore, no al plugin.yml de MegaBlock Survivors.
Paquetes de contenido
Los paquetes de contenido se configuran mediante archivos YAML en content_packages/. Cada paquete puede definir:
| Campo | Tipo | Descripción |
|---|---|---|
isEnabled | booleano | Metadato guardado; la detección actual de instalación usa la presencia de los recursos y no lo aplica como interruptor de juego |
name | cadena | Nombre visible del paquete |
description | lista de cadenas | Líneas de descripción |
downloadLink | cadena | URL de descarga manual |
version | entero | Número de versión del paquete |
nightbreakSlug | cadena | Slug del contenido de Nightbreak para descargas automáticas |
schematicFiles | lista de cadenas | Archivos de esquemas incluidos en el paquete |
worldFolders | lista de cadenas | Carpetas de mundos incluidas |
worldContainerFolders | lista de cadenas | Carpetas contenedoras de mundos incluidas |
modelFolders | lista de cadenas | Carpetas de modelos para FreeMinecraftModels |
markerFileName | cadena | Archivo marcador para detectar si el paquete está instalado |
category | enum | FREE, PREMIUM o RESOURCES |
toggleable | booleano | Su valor predeterminado es false. El manejador actual de desinstalación siempre da instrucciones de eliminación manual; este indicador no ofrece una desactivación funcional |
Un paquete cuenta como instalado si registra al menos un recurso y todos están presentes. Se comprueban rutas, no el contenido de los archivos ni que los modelos estén listos; una carpeta en el directorio de modelos deshabilitados de FreeMinecraftModels también cuenta. Si faltan algunos recursos, el estado es de instalación parcial. Pulsar un paquete instalado y actualizado muestra instrucciones de limpieza manual; cambiar solo isEnabled no deshabilita sus recursos de juego importados.
Configuración de NPC
Los NPC se configuran mediante archivos YAML en npcs/. Los NPC registrados reaparecen al recargar su chunk. Si su mundo no estaba disponible durante la inicialización, cárgalo y recarga MegaBlock Survivors para registrarlos. Hacer clic derecho ejecuta su interactionCommand como el jugador y con sus permisos.
El plugin incluye dos NPC que aparecen automáticamente en mbs_spawn cuando ese mundo está cargado:
| NPC | Ubicación predeterminada | Disfraz | Comando de interacción |
|---|---|---|---|
| Inicio de partida | mbs_spawn, 0, 67, -15 | VILLAGER | mbs start |
| Progresión permanente | mbs_spawn, -9, 66, -13 | PIGLIN | mbs meta |
Puedes deshabilitarlos, moverlos o cambiar su acción editando su YAML en npcs/ y recargando el plugin. Con LibsDisguises, el NPC usa un aldeano como entidad base y el disfraz configurado. Sin él, intenta usar el tipo de entidad Bukkit configurado y recurre a un aldeano si no es una entidad viva que se pueda generar.
Campos YAML de los NPC
| Campo | Tipo | Descripción |
|---|---|---|
isEnabled | booleano | Determina si aparece el NPC |
name | cadena | Nombre interno |
location | cadena | Formato world,x,y,z o world,x,y,z,yaw,pitch |
disguise | cadena | Tipo de entidad de LibsDisguises, opcional |
interactionCommand | cadena | Comando ejecutado cuando un jugador hace clic derecho en el NPC |
nameTag | cadena | Nombre personalizado visible de la entidad NPC; admite códigos de color |
Notificaciones de actualización de versión
Cuando la versión actual es posterior a la guardada en version.txt, el plugin avisa a la consola y a los operadores conectados. El primer arranque sin versión guardada, una versión sin cambios o una vuelta a una versión anterior no generan este aviso de actualización.