Buen valor inicial: true. Activa esto para ocultar minerales de los x-rayers. Para una configuración detallada de esta función, consulta la Configuración de Anti-Xray.
anti-xray.enabled
Good starting value: true
Activa esto para ocultar minerales de los x-rayers. Para una configuración detallada de esta función, consulta la Configuración de Anti-Xray. Habilitar esto realmente disminuirá el rendimiento, sin embargo, es mucho más eficiente que cualquier plugin anti-xray. En la mayoría de los casos, el impacto en el rendimiento será insignificante.
nether-ceiling-void-damage-height
Good starting value: 127
Si esta opción es mayor que 0
, los jugadores por encima del nivel Y establecido recibirán daño como si estuvieran en el vacío. Esto evitará que los jugadores utilicen el techo del Nether. El Nether vanilla tiene una altura de 128 bloques, por lo que probablemente debas establecerlo en 127
. Si modificas la altura del Nether de alguna manera, debes establecerlo a [tu_altura_del_nether] - 1
.
Vanilla Minecraft y el software de servidor de Minecraft en la versión 1.20.5+ requieren Java 21 o superior. Oracle ha cambiado su licencia y ya no hay razones convincentes para obtener Java de ellos. Los proveedores recomendados son Adoptium y Amazon Corretto. Implementaciones alternativas de JVM como OpenJ9 o GraalVM pueden funcionar, pero no son compatibles con Paper y se sabe que causan problemas, por lo tanto, actualmente no se recomiendan.
Tu recolector de basura se puede configurar para reducir los picos de lag causados por tareas grandes del recolector de basura. Puedes encontrar banderas de inicio optimizadas para servidores de Minecraft aquí SOG
. Ten en cuenta que esta recomendación no funcionará en implementaciones alternativas de JVM. Se recomienda usar el generador de banderas de inicio flags.sh para obtener las banderas de inicio correctas para tu servidor.
Además, agregar la bandera beta --add-modules=jdk.incubator.vector
antes de -jar
en tus banderas de inicio puede mejorar el rendimiento. Esta bandera permite a Pufferfish utilizar instrucciones SIMD en tu CPU, lo que hace que algunos cálculos sean más rápidos. Actualmente, se utiliza para hacer que el renderizado en ciertos plugins de mapas en el juego (como imageonmaps) sea posiblemente 8 veces más rápido.
Absolutamente innecesarios ya que pueden ser reemplazados con merge-radius y alt-item-despawn-rate y, francamente, son menos configurables que las configuraciones básicas del servidor. Tienden a utilizar más recursos escaneando y eliminando objetos que simplemente no eliminar los objetos en absoluto.
Es realmente difícil justificar su uso. Apilar entidades generadas naturalmente causa más lag que no apilarlas en absoluto, debido a que el servidor intenta constantemente generar más mobs. El único caso de uso "aceptable" es para los spawners en servidores con una gran cantidad de ellos.
Cualquier cosa que habilite o deshabilite plugins en tiempo de ejecución es extremadamente peligroso. Cargar un plugin de esa manera puede causar errores fatales con los datos de seguimiento, y deshabilitar un plugin puede llevar a errores debido a la eliminación de dependencias. El comando /reload
sufre exactamente los mismos problemas, y puedes leer más al respecto en la publicación del blog de me4502.
Paper ofrece un comando /mspt
que te dirá cuánto tiempo tardó el servidor en calcular los ticks recientes. Si el primer y segundo valor que ves son inferiores a 50, ¡enhorabuena! ¡Tu servidor no está experimentando retrasos! Si el tercer valor es superior a 50, significa que al menos un tick ha tardado más. Esto es completamente normal y ocurre de vez en cuando, así que no te preocupes.
Spark es un plugin que te permite perfilar el uso de CPU y memoria de tu servidor. Puedes aprender cómo usarlo en su wiki. También hay una guía sobre cómo identificar la causa de los picos de lag aquí.
Una forma de ver qué puede estar sucediendo cuando tu servidor tiene lag son los Timings. Timings es una herramienta que te permite ver exactamente qué tareas están tomando más tiempo. Es la herramienta más básica para solucionar problemas y si solicitas ayuda con respecto al lag, lo más probable es que te pidan tus Timings. Timings se sabe que tiene un impacto significativo en el rendimiento de los servidores; se recomienda usar el plugin Spark en lugar de Timings y usar Purpur o Pufferfish para desactivar completamente Timings.
Para obtener los Timings de tu servidor, solo necesitas ejecutar el comando /timings paste
y hacer clic en el enlace que se te proporciona. Puedes compartir este enlace con otras personas para que te ayuden. También es fácil malinterpretarlos si no sabes lo que estás haciendo. Existe un tutorial en video detallado de Aikar sobre cómo leerlos.
Para ver cómo solucionar exploits que pueden causar picos de lag o caídas en un servidor de Minecraft, consulta
Aquí encontrará cómo prevenir ciertos exploits para proteger su servidor.
Esta guía asumirá que estás utilizando . Algunos ajustes necesarios para que esta guía funcione no están disponibles en Paper o Spigot. Puede que existan vulnerabilidades similares en servidores vanilla, fabric o forge, y tendrás que encontrar mods que las solucionen en esos cargadores.ç
Mantén actualizado el software de tu servidor. Hay vulnerabilidades que se corrigen en las versiones más recientes del software, aunque no se anuncien. Si tienes un servidor, deberías estar utilizando la última versión disponible para evitar vulnerabilidades críticas.
Los soportes para armaduras se pueden usar para crear máquinas que causan retrasos. Esto se logra colocando grandes cantidades de soportes para armaduras y haciendo que se muevan mediante agua, pistones u otros métodos. Esto se puede solucionar desactivando la búsqueda de actualizaciones y colisiones de los soportes para armaduras. De esta manera, los soportes para armaduras no podrán ser empujados ni atraídos (incluso por la gravedad).
paper-world-defaults.yml
Los libros son un objetivo común para técnicas de explotación y han sido utilizados en el pasado para todo tipo de acciones desagradables, como exploits de duplicación, exploits de bloqueo y obligar a los servidores a quedarse sin memoria al generar cantidades masivas de datos de chunk.
Opción 1
Reducir moderadamente el límite máximo de páginas puede mitigar la mayoría de los exploits relacionados con los libros sin afectar a los clientes de vanilla.
paper-global.yml
Opción 2
Desactivar completamente los libros previene la mayoría de los exploits relacionados con los libros (siempre y cuando los plugins no creen libros no estándar). La opción de configuración Pufferfish evita que los jugadores escriban en el libro, por lo tanto, elimina cualquier cosa que requiera la entrada del jugador para funcionar.
pufferfish.yml
Este exploit es similar al del soporte para armaduras, pero en lugar de usar soportes para armaduras, utiliza entidades que pueden ser empujadas por otras entidades. Esto se puede solucionar estableciendo un límite más pequeño en cuántas entidades pueden colisionar con una entidad singular. Puedes establecer el máximo de colisiones de entidades (max-entity-collisions) en 2 para mantener un comportamiento relativamente natural, o establecerlo en 0 para deshabilitar completamente las colisiones. La opción para corregir el bypass de la regla de apretujamiento al escalar también está disponible, pero está desactivada por defecto.
paper-world-defaults.yml
Algunos comandos en el servidor pueden tener mucha lógica involucrada en sus sugerencias de comandos. Esto puede ser explotado enviando muchos paquetes que soliciten al servidor enviar sugerencias para el comando. Esto se puede mitigar estableciendo un límite de paquetes para las sugerencias de comandos ligeramente por encima de la velocidad normal de escritura de comandos, de modo que los jugadores normales no se vean afectados.
paper-global.yml
Aunque incluso Spigot te protegerá de este exploit, hay un pequeño descuido que permitirá que un solo comando pueda ser utilizado para realizar este. Para solucionarlo, simplemente elimina el comando /skill de la lista de exclusiones de spam en el archivo spigot.yml.
spigot.yml
A veces, la gran cantidad de jugadores que se unen al servidor puede causar que se vuelva lento. Esto es especialmente cierto durante ataques de bots y momentos después de reiniciar el servidor. Esto se puede solucionar configurando un límite máximo de ingresos por tick. Los jugadores que se unan serán retrasados en el tiempo para que el servidor pueda procesarlos correctamente entre uno y otro. Si los ingresos siguen abrumando al servidor, también puedes habilitar max-joins-per-second en purpur.yml. Esto hará que el valor de la configuración de Paper se aplique por segundo en lugar de por tick.
paper-global.yml
purpur.yml
Limitar la cantidad de actualizaciones consecutivas de vecinos antes de omitir las adicionales. Reducir moderadamente este valor no tiene impacto en el juego y ayuda a mitigar diversas "máquinas de retraso por actualización de vecinos".
server.properties
Los proyectiles pueden quedar suspendidos indefinidamente en columnas de burbujas. También pueden ser transportados en masa a chunks descargados. Si alguien carga el chunk con muchos proyectiles acumulados, el servidor puede colapsar debido a la carga de demasiadas cosas a la vez. Esto se puede evitar limitando cuánto tiempo pueden existir los proyectiles en el mundo y cuántos de ellos se guardan y cargan con un chunk. Aplicar un límite de tiempo a las perlas de ender evitará el uso de dispositivos de suspensión de perlas de ender.
paper-world-defaults.yml
pufferfish.yml
Los jugadores malintencionados pueden usar un autoclicker o un mod para alternar entre recetas del libro de recetas extremadamente rápido. Esta es una operación costosa para el servidor y puede causar grandes ralentizaciones. Este problema está corregido en la configuración predeterminada de Paper, pero las configuraciones más antiguas pueden no tener esta corrección aplicada, así que asegúrate de que esté presente.
paper-global.yml
Cuando se genera un nuevo mapa del tesoro, generalmente a través de un aldeano cartógrafo o al abrir un cofre que contiene un mapa del tesoro, el servidor busca el tesoro al que el mapa debería llevar. Esta búsqueda se realiza de una manera que en la mayoría de los casos provoca la carga de muchos chunks y posiblemente su generación. Esta búsqueda puede detener el servidor el tiempo suficiente como para que el proceso de vigilancia (watchdog) lo detenga. También puede ser desencadenada al alimentar a los delfines con pescado.
Option 1
Para solucionar este problema, básicamente debes deshabilitar los mapas del tesoro y la capacidad de los delfines para buscar tesoros. Esta es la solución recomendada y 100% efectiva.
paper-world-defaults.yml
purpur.yml
Option 2
Como alternativa, puedes mantener los mapas habilitados pero configurar un borde del mundo vanilla y asegurarte de que tu mundo esté pregenerado dentro de ese borde. Luego, puedes garantizar que los tesoros ya descubiertos sean válidos como resultado de la búsqueda. Esto evitará que la búsqueda de tesoros cargue chunks que no estén generados.
paper-world-defaults.yml
La gestión del rendimiento y la seguridad del servidor requiere una cuidadosa consideración de diversas técnicas de explotación y mecanismos que pueden afectar la jugabilidad y la estabilidad. Desde el manejo de interacciones entre entidades hasta el control de la carga de chunks durante la búsqueda de tesoros, los administradores deben implementar configuraciones y actualizaciones estratégicas.
Asegurarse de que las configuraciones del servidor, como deshabilitar las búsquedas de mapas del tesoro o limitar las interacciones de las entidades, estén alineadas con los objetivos de rendimiento puede mitigar posibles ralentizaciones o caídas causadas por operaciones intensivas. Además, mantener actualizado el software del servidor con los últimos parches y configuraciones es crucial para protegerse contra nuevas técnicas de explotación y vulnerabilidades.
Al equilibrar la funcionalidad con las optimizaciones de rendimiento, los administradores de servidores pueden ofrecer una experiencia estable y placentera para los jugadores, al mismo tiempo que mantienen la seguridad y previenen problemas disruptivos en el juego.