Saltar al contenido principal

Configuración Inicial de MegaBlock Survivors

El flujo de configuración de MegaBlock Survivors está construido alrededor de paquetes de contenido gestionados por Nightbreak, con soporte opcional de modelos a través de FreeMinecraftModels.

Requisitos

  • Java 21
  • Un servidor compatible con Paper/Spigot en la línea de API 1.21.4

Integraciones opcionales:

  • FreeMinecraftModels -- modelos personalizados de mobs y armas (dependencia suave)
  • LibsDisguises -- dependencia suave para soporte visual adicional

Lo que MegaBlock Survivors Crea

Al iniciar, MegaBlock Survivors inicializa o utiliza estas rutas dentro de plugins/MegaBlockSurvivors/:

plugins/MegaBlockSurvivors/config.yml
plugins/MegaBlockSurvivors/translations.yml
plugins/MegaBlockSurvivors/content_packages/
plugins/MegaBlockSurvivors/imports/
plugins/MegaBlockSurvivors/worlds/
plugins/MegaBlockSurvivors/npcs/
plugins/MegaBlockSurvivors/leaderboard.yml
plugins/MegaBlockSurvivors/meta_progression.yml
plugins/MegaBlockSurvivors/stats-dump.log
plugins/MegaBlockSurvivors/version.txt

También carga automáticamente un mundo de lobby creado por el operador llamado mbs_spawn si su carpeta existe en disco. El plugin no crea ni modifica este mundo -- solo lo carga. Varias funciones del plugin recurren silenciosamente al comportamiento por defecto si falta mbs_spawn:

  • El holograma de la tabla de clasificación (anclado en (4.5, 67, -14.5) dentro de mbs_spawn) omite la generación y registra una advertencia.
  • El teletransporte al unirse (SpawnLobbyListener) envía a los jugadores que entran a (0.5, 65, 0.5) en mbs_spawn mirando con yaw 180 -- se omite cuando el jugador tiene una partida activa.
  • El cierre de la partida devuelve al jugador a mbs_spawn si existe.

Configuración

config.yml contiene:

ClaveTipoPredeterminadoDescripción
setupDonebooleanfalseRastrea si la guía de configuración inicial ha sido completada

Traducciones

Todas las cadenas visibles para el usuario (líneas de chat, títulos de diálogos, barras de jefe, texto de hologramas, descripciones de comandos) se cargan desde translations.yml. Los operadores del servidor pueden localizar o re-temáticar cada línea sin tocar el jar. Las funciones soportadas incluyen:

  • Códigos de color con prefijo & y escapes hexadecimales &#RRGGBB.
  • Etiquetas de gradiente de MagmaCore como <gradient:#FF0000:#00FF00>text</gradient>.
  • Tokens {placeholder} que el plugin sustituye en tiempo de ejecución.
  • Las claves faltantes se renderizan como un marcador visible [translations: key.name] para que las entradas no establecidas sean fáciles de detectar en el juego.

El archivo se regenera con las entradas por defecto en la primera ejecución y al recargar el plugin, de modo que las cadenas recién añadidas aparecen automáticamente.

Datos Persistentes del Jugador

ArchivoPropósito
leaderboard.ymlEntradas de tabla de clasificación por categoría (6 secciones: 2 modos de juego x 3 dificultades), limitadas a 100 entradas por categoría.
meta_progression.ymlBalance de Soul Echo y niveles de mejora por jugador. Indexado por UUID del jugador.
stats-dump.logRegistro JSON-lines de solo adición de cada partida completada, escrito al cerrar la partida.

Aviso de Primera Configuración

Cuando setupDone es false, el plugin muestra un aviso de configuración inicial a los jugadores con el permiso megablocksurvivors.* cuando se conectan. El avisador se configura (a través de NightbreakFirstTimeSetupSpec) únicamente con un comando de configuración, por lo que dirige a los jugadores a /mbs setup (el navegador de contenido) y no a un paso de inicialización/descarga. /mbs initialize no está registrado en esta versión; /mbs downloadall sí está registrado, pero solo descarga el jar del plugin ya que los paquetes de contenido están deshabilitados (ver la página de Comandos) -- utiliza /mbs setup en su lugar.

Flujo Recomendado para Primera Vez

  1. Instala MegaBlock Survivors e inicia el servidor una vez. Los archivos de traducción y configuración se escriben en la primera ejecución.
  2. Vincula tu cuenta de Nightbreak con /nightbreaklogin <token>.
  3. Ejecuta /mbs setup para abrir el navegador de contenido de Nightbreak e instalar / activar los paquetes que quieras.
  4. Ejecuta /mbs reload si colocas contenido manualmente en imports/, o después de activar/desactivar paquetes en content_packages/.

/nightbreaklogin <token> lo provee el flujo compartido de cuentas Nightbreak/MagmaCore, no el plugin.yml de MegaBlock Survivors.

Paquetes de Contenido

Los paquetes de contenido se configuran a través de archivos YAML en la carpeta content_packages/. Cada paquete puede definir:

CampoTipoDescripción
isEnabledbooleanSi el paquete está activo
namestringNombre para mostrar del paquete
descriptionstring listLíneas de descripción
downloadLinkstringURL de descarga manual
versionintegerNúmero de versión del paquete
nightbreakSlugstringSlug de contenido de Nightbreak para descargas automáticas
schematicFilesstring listArchivos de esquemáticos incluidos en el paquete
worldFoldersstring listCarpetas de mundo incluidas
worldContainerFoldersstring listCarpetas de contenedor de mundo incluidas
modelFoldersstring listCarpetas de modelos para FreeMinecraftModels
markerFileNamestringArchivo marcador para detectar si el paquete está instalado
categoryenumFREE, PREMIUM o RESOURCES
toggleablebooleanSi el paquete puede activarse/desactivarse

Configuración de NPCs

Los NPCs (entregadores de misiones del lobby, tenderos) se configuran mediante archivos YAML en npcs/. Los NPCs se vuelven a generar al cargar el chunk, por lo que sobreviven a los ciclos de descarga/recarga de chunks del lobby. Hacer clic derecho sobre un NPC ejecuta su interactionCommand configurado.

Dos NPCs vienen incluidos con el plugin y aparecen automáticamente en mbs_spawn cuando ese mundo está cargado:

NPCUbicación predeterminadaDisfrazComando de interacción
Match Startermbs_spawn, 0, 67, -15VILLAGERmbs start
Meta Progressionmbs_spawn, -9, 66, -13PIGLINmbs meta

Cualquiera de ellos puede ser desactivado, movido o reasignado editando el YAML correspondiente en npcs/. Los disfraces requieren LibsDisguises para renderizarse; sin él, el NPC aún aparece como una entidad base en la ubicación configurada.

Campos YAML de NPC

CampoTipoDescripción
isEnabledbooleanSi el NPC aparece
namestringNombre interno
locationstringFormato world,x,y,z,pitch,yaw
disguisestringTipo de entidad de LibsDisguises (opcional)
interactionCommandstringComando a ejecutar cuando un jugador hace clic derecho sobre el NPC
nameTagstringHolograma flotante sobre el NPC (se permiten códigos de color)

Notificaciones de Actualización de Versión

Cuando el plugin detecta un cambio de versión (comparando con version.txt), notifica a la consola y a todos los OPs en línea.