Saltar al contenido principal

Guía de archivos de configuración

El cargador compartido de MagmaCore rechaza el YAML ilegible o no válido antes de aplicar valores predeterminados, también en las configuraciones heredadas. Al guardar, escribe y vuelca a disco un archivo temporal antes de reemplazar el destino de forma atómica cuando es posible. En Windows, cuando otro proceso, como un antivirus o un indexador de archivos, retiene brevemente el archivo y se deniega el reemplazo, el guardado se reintenta hasta cuatro veces más, esperando como máximo 250 milisegundos en total. Los errores de guardado se comunican al código que lo solicita; corrige el problema del archivo antes de reintentarlo.

Esta página te ayuda a entender cómo editar correctamente un archivo .yml (.yaml). Los plugins de Nightbreak usan archivos de configuración .yml. Un YAML no válido o valores no admitidos pueden impedir que un archivo se cargue; algunos ajustes recurren a sus valores predeterminados. Guarda una copia de seguridad y lee la consola después de recargar.

A continuación, encontrarás todos los tipos de entradas de configuración y cómo deben formatearse si estás modificando algún valor.

Cómo editar archivos .yml​

Los archivos se almacenan en formato .yml y Notepad++ es el software de edición de archivos recomendado para trabajar con configuraciones. Por supuesto, puedes usar cualquier otro editor de texto de tu elección.

Archivos de configuración retirados​

Cuando una actualización del plugin retira un formato de configuración, MagmaCore mueve los archivos coincidentes a plugins/MagmaCore/outdated files/<PluginName>/<archive batch>/, conservando su contenido y sus rutas relativas. La consola indica dónde se archivaron. Este proceso también se ejecuta antes y después de las importaciones de contenido, para que un paquete antiguo no pueda restaurar silenciosamente un archivo retirado como configuración activa. Las importaciones de contenido también mueven a esta carpeta los archivos que un paquete actualizado ya no incluye; consulta Archivos que una actualización de paquete deja de incluir.

El plugin regenera sus valores predeterminados incluidos cuando existen sustitutos. Los archivos DLC retirados necesitan un paquete de contenido actualizado. Los archivos personalizados deben reescribirse con el formato actual; compara el archivo archivado con la referencia correspondiente y traslada los ajustes que quieras conservar. Restaurar un archivo archivado sin modificarlo puede hacer que se archive de nuevo.

El archivado usa reglas específicas incluidas por el plugin responsable. Un ajuste desconocido o un archivo mal formado no demuestra, por sí solo, que el formato se haya retirado. Sigue comprobando también los errores de carga habituales en la consola.

Algunas reglas retiran un valor predeterminado incluido antiguo en lugar de un formato. Una regla puede indicar un valor exacto que solo contiene un valor predeterminado anterior, como una antigua ranura de menú o lista de misiones, y el archivo entero se archiva si ese valor sigue presente. Una regla para un script Lua incluido compara la suma de comprobación SHA-256 del archivo, sin tener en cuenta los retornos de carro, con las versiones incluidas anteriormente de ese script. Solo coincide una copia sin editar, así que un script que hayas modificado se queda donde está, y después el plugin escribe su valor predeterminado actual.

Por ejemplo, BetterStructures sustituye la configuración antigua Valid worlds por Valid worlds v2. EliteMobs archiva ciertos objetos incluidos obsoletos, la antigua misión de bienvenida del gremio y las copias sin editar de poderes Lua y scripts de encantamientos incluidos en versiones anteriores. FreeMinecraftModels también archiva los scripts Lua de objetos equipados que reconoce como retirados; los scripts actuales de props y los efectos de encantamientos usan sus propios contratos compatibles.

Nombres de archivo duplicados​

Los plugins que cargan contenido mediante MagmaCore identifican cada archivo de contenido por su nombre de archivo, incluidos los archivos de subcarpetas. Cuando dos archivos de la misma carpeta de contenido comparten nombre, solo se carga aquel cuya ruta completa va primero en orden, sin distinguir mayúsculas. La consola muestra un aviso con las rutas cargada y omitida. No muestra nada cuando las copias son idénticas, o cuando son archivos YAML y todos los valores de la copia omitida coinciden con los de la cargada, lo que ocurre cuando dos paquetes de contenido distribuyen el mismo archivo compartido. Da nombres de archivo únicos a los archivos que deban cargarse por separado. Algunas carpetas son más estrictas. Los nombres de archivo de esquemas duplicados en la carpeta modules de BetterStructures detienen la carga de módulos.

Boolean​

Los valores Boolean son true o false. Así es como se ven:

value1: true
value2: false

Los Boolean solo aceptan valores true o false. Generalmente se usan para activar o desactivar características específicas.

String​

Los valores String suelen ser simplemente texto normal. Se recomienda encarecidamente que crees valores String entre comillas, siguiendo este formato:

value: "String"

Pon entre comillas las cadenas que contengan códigos de color, especialmente cuando el primer carácter sea &. En un campo de texto compatible, "&aTest" produce texto verde. La disponibilidad de texto coloreado depende del ajuste. Consulta esta página para ver los códigos de color.

Details

¿Por qué? Las cadenas de configuración pueden aceptar caracteres especiales como &. Si aparecen al principio, como en value: "&aString", y el String no está entre comillas, YAML puede interpretar & como un ancla en lugar de texto normal. Pon toda la cadena entre comillas para evitar errores de análisis o valores no deseados.

Serialized Location​

Serialized Location es un tipo específico de String que se ve así:

location: world,1.0,2.0,3.0,4.0,5.0

Se usan para almacenar y configurar ubicaciones. Siguen este formato: worldName,X,Y,Z,YAW,PITCH. Yaw y pitch determinan la dirección hacia la que mira el jugador, con los mismos valores que las ubicaciones de Minecraft.

Multiplier​

Los valores Multiplier multiplican los valores del plugin por ese número. Estos valores nunca deben estar entre comillas. Aquí hay un ejemplo:

damageMultiplier: 1.0

En este caso, el multiplicador de daño se multiplicaría por 1, lo que significa que no hay cambio del valor predeterminado. Si el Multiplier fuera 2.0, el valor se multiplicaría por 2.0. Si fuera 0.5, se multiplicaría por 0.5.

Multiplicar por 0.5 es lo mismo que dividir por 2. El intervalo permitido depende del ajuste concreto; consulta su referencia antes de usar cero, un valor negativo o un multiplicador grande.

Integer​

Los valores Integer son simplemente números enteros. Ejemplo:

value: 10

Solo los campos cuya documentación de scripting admita expresamente intervalos numéricos aceptan ~. Se trata de una cadena que interpreta esa función, no de un número YAML ni de una opción general de configuración. Ejemplo:

value: 1~10

Lo principal sobre los valores Integer es que deben ser números enteros. Esto significa que 10.1 no es válido.

Double​

Los Double son números decimales que pueden tener componentes fraccionarios. Ejemplo:

value: 10.01

Solo los campos cuya documentación de scripting admita expresamente intervalos numéricos aceptan ~. Se trata de una cadena que interpreta esa función, no de un número YAML ni de una opción general de configuración. Ejemplo:

value: 1.0~10.01

Los Double también pueden ser números enteros como los integers, como 10.0 o incluso representados como 10.

Float​

Los Float son números decimales de 32 bits con menor precisión que los Doubles. Ejemplo:

value: 10.42452

Solo los campos cuya documentación de scripting admita expresamente intervalos numéricos aceptan ~. Se trata de una cadena que interpreta esa función, no de un número YAML ni de una opción general de configuración. Ejemplo:

value: 1.0~10.42452

Los Float también pueden ser números enteros, como 10.0 o incluso representados como 10.

String List​

Los String List son listas de valores String. Estos tienden a ser los valores más difíciles de configurar, ya que requieren un formato de configuración muy específico:

valuesList:
- "value,1"
- "value,2"
- "value,3"

Al igual que con los String, se recomienda mantener los valores entre comillas. Cada String List tiene su propio formato, por lo que tendrás que encontrar el formato específico que requiere el que estás editando; sin embargo, globalmente, así es como debería verse el formato general.

Map List​

Una lista de mapas contiene varias entradas de tipo mapa. Este ejemplo YAML anida cada valor bajo un mapa con nombre; las claves concretas dependen del ajuste:

parentMap:
- Map1:
key: value
- Map2:
key: value
keyForList:
- "value1"
- "value2"

Como puedes ver, los Map Lists pueden contener cualquier tipo de formato dentro de ellos, pero si los estás usando en scripting necesitarás consultar la documentación para ver cuáles son las claves y valores válidos para los diferentes mapas.

Color Codes​

También puedes asignar colores o hacer el texto en negrita usando los siguientes modificadores:

CódigoColorEjemplo
&4Rojo oscuro
&4Ejemplo rojo oscuro.
&cRojo
&cEjemplo rojo.
&6Naranja
&6Ejemplo naranja.
&eAmarillo
&eEjemplo amarillo.
&2Verde oscuro
&2Ejemplo verde oscuro.
&aVerde
&aEjemplo verde.
&bAqua
&bEjemplo aqua.
&3Aqua oscuro
&3Ejemplo aqua oscuro.
&1Azul oscuro
&1Ejemplo azul oscuro.
&9Azul
&9Ejemplo azul.
&dPúrpura claro
&dEjemplo púrpura claro.
&5Púrpura oscuro
&5Ejemplo púrpura oscuro.
&fBlanco
&fEjemplo blanco.
&7Gris
&7Ejemplo gris.
&8Gris oscuro
&8Ejemplo gris oscuro.
&0Negro
&0Ejemplo negro.
&rReiniciar color&rEjemplo de reinicio.
&lNegrita&lEjemplo negrita.
&oCursiva&oEjemplo cursiva.
&nSubrayado&nEjemplo subrayado.
&mTachado&mEjemplo tachado.
&kAleatorio&k
&fejemplo.

Como puedes ver en los ejemplos, los modificadores siguen la sintaxis regular de Minecraft excepto que el § se reemplaza con un & cuando se usa con EliteMobs. Puedes usar esto para modificar la mayoría del texto de EliteMobs como nombres de mobs, texto de misiones, nombres de mazmorras, etc.

Ten en cuenta que cuando funciona correctamente, los modificadores en sí no se mostrarán en tu texto. Solo se muestran aquí con fines demostrativos.

También es posible combinar colores y otros modificadores de texto. Por ejemplo, puedes hacer:

&a&oPara obtener texto verde en cursiva.

Si quisiéramos que nuestro mob personalizado tenga un nombre colorido elegante, haríamos lo siguiente:

name: "$normalBossLevel &aScary &dDragon"

A partir de EliteMobs 10 también puedes usar gradientes de color para cualquier texto de EliteMobs, como se muestra en este ejemplo:

name: "&cNormal Red Text <gradient:#FF6B00:#FFD700:#FFFF00> Cool Gradient Text </gradient>"

En este ejemplo:

  • &c aplica el formato rojo estándar al texto anterior al gradiente.
  • <gradient:...> inicia la definición del gradiente.
  • #FF6B00, #FFD700 y #FFFF00 son los colores del gradiente.
  • Cool Gradient Text es el texto afectado por el gradiente.
  • </gradient> termina la sección del gradiente.

Solo el texto dentro de las etiquetas de gradiente se ve afectado; el formato fuera de las etiquetas permanece sin cambios.

Los gradientes ya no son una función exclusiva de EliteMobs. El analizador de texto está en MagmaCore, así que la misma sintaxis funciona en los campos de texto compatibles de todos los plugins que lo incluyen, junto al resto del conjunto de etiquetas de MiniMessage (<rainbow>, <#RRGGBB>, colores con nombre como <red>, decoraciones como <bold>, etc.).

Material​

Los valores Material son simplemente Materials que puedes encontrar en MineCraft, como IRON_CHESTPLATE. Para una lista de Material válidos, consulta esta página.

helmet: IRON_HELMET

Los Material se usan como valores en varias configuraciones como equipamiento para mobs, botín, recompensas de misiones, etc.

Filename​

Los valores Filename son simplemente archivos de configuración .yml que están formateados para usarse con los plugins de MagmaGuy. Estos podrían ser cualquier cosa, desde items hasta misiones.

uniqueLootList:
- filename: magmaguys_toothpick.yml

Recortar mundos​

Puedes reducir el tamaño de un mundo para distribuirlo recortando el terreno sobrante con una herramienta compatible como WorldBorder. Comprueba que admita la versión exacta de tu servidor y trabaja sobre una copia de seguridad; una lista antigua de compatibilidad no demuestra que admita un formato de mundo más reciente.

Details

Consejo Si estás haciendo esto por primera vez, podría ser una buena idea crear una copia de seguridad de tu mundo por si algo sale mal.

Una vez instalado el plugin, navega al centro del mundo o al área específica que deseas recortar. Luego, ejecuta el comando /wb set x, donde x representa el tamaño aproximado del radio que deseas para tu área.

Details

Consejo Si /wb no funciona para ti, intenta /worldborder:wb.

Después de ejecutar este comando, vuela hasta los bordes de tu mundo para verificar que el borde del mundo se haya establecido correctamente y cubra el tamaño deseado. Reconocerás que has alcanzado el borde del mundo cuando seas empujado hacia atrás, acompañado de un mensaje en el chat.

trim_pic_1.jpg

En la imagen de arriba, nuestro objetivo es recortar el mundo alrededor de los bloques morados, dejando solo algunos chunks a su alrededor. Para lograr esto, nos paramos en el medio del área morada en los cuadrados rojos y ejecutamos /wb set 50, estableciendo el borde del mundo justo más allá del área morada.

A continuación, usa /wb trim [freq] [pad]. El margen se mide en bloques, y la frecuencia controla cuántos chunks se comprueban por segundo. /wb trim 200 20 comprueba hasta 200 chunks por segundo y conserva 20 bloques más allá del borde. Revisa ese margen y amplíalo si hace falta antes de confirmar con /wb trim confirm. Estas unidades se definen en el comando de recorte de WorldBorder.

Elimina el borde del plugin de este mundo con /wb clear mientras estés en él, o déjalo colocado.

Recortar la carpeta del mundo​

Detén el servidor y trabaja sobre una copia de seguridad. No elimines todo salvo region, raids.dat y level.dat: pueden ser necesarios los datos del terreno, entidades, puntos de interés y dimensiones. Conserva la estructura real que usan tu servidor y plugin.

En mundos Vanilla antiguos, el Nether usa DIM-1 y el End usa DIM1. En Vanilla 26.1, las dimensiones predeterminadas pasaron a dimensions/minecraft/overworld, dimensions/minecraft/the_nether y dimensions/minecraft/the_end, con sus carpetas region, entities y poi. La estructura necesaria depende del software y la versión del servidor. Importa la copia en otro servidor y revisa el mundo antes de distribuirlo.

Minecraft 26.1 · Paper