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 dembs_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)enmbs_spawnmirando con yaw 180 -- se omite cuando el jugador tiene una partida activa. - El cierre de la partida devuelve al jugador a
mbs_spawnsi existe.
Configuración
config.yml contiene:
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
setupDone | boolean | false | Rastrea 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
| Archivo | Propósito |
|---|---|
leaderboard.yml | Entradas 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.yml | Balance de Soul Echo y niveles de mejora por jugador. Indexado por UUID del jugador. |
stats-dump.log | Registro 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
- Instala MegaBlock Survivors e inicia el servidor una vez. Los archivos de traducción y configuración se escriben en la primera ejecución.
- Vincula tu cuenta de Nightbreak con
/nightbreaklogin <token>. - Ejecuta
/mbs setuppara abrir el navegador de contenido de Nightbreak e instalar / activar los paquetes que quieras. - Ejecuta
/mbs reloadsi colocas contenido manualmente enimports/, o después de activar/desactivar paquetes encontent_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:
| Campo | Tipo | Descripción |
|---|---|---|
isEnabled | boolean | Si el paquete está activo |
name | string | Nombre para mostrar del paquete |
description | string list | Líneas de descripción |
downloadLink | string | URL de descarga manual |
version | integer | Número de versión del paquete |
nightbreakSlug | string | Slug de contenido de Nightbreak para descargas automáticas |
schematicFiles | string list | Archivos de esquemáticos incluidos en el paquete |
worldFolders | string list | Carpetas de mundo incluidas |
worldContainerFolders | string list | Carpetas de contenedor de mundo incluidas |
modelFolders | string list | Carpetas de modelos para FreeMinecraftModels |
markerFileName | string | Archivo marcador para detectar si el paquete está instalado |
category | enum | FREE, PREMIUM o RESOURCES |
toggleable | boolean | Si 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:
| NPC | Ubicación predeterminada | Disfraz | Comando de interacción |
|---|---|---|---|
| Match Starter | mbs_spawn, 0, 67, -15 | VILLAGER | mbs start |
| Meta Progression | mbs_spawn, -9, 66, -13 | PIGLIN | mbs 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
| Campo | Tipo | Descripción |
|---|---|---|
isEnabled | boolean | Si el NPC aparece |
name | string | Nombre interno |
location | string | Formato world,x,y,z,pitch,yaw |
disguise | string | Tipo de entidad de LibsDisguises (opcional) |
interactionCommand | string | Comando a ejecutar cuando un jugador hace clic derecho sobre el NPC |
nameTag | string | Holograma 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.