Algunos de los archivos principales que querrás modificar para optimizar realmente tu servidor son Bukkit.yml, Paper-world-defaults.yml y Spigot.yml
Para usar estas configuraciones, detén tu servidor desde tu panel de control, luego haz clic en las pestañas a continuación para mostrar las configuraciones optimizadas para cada archivo. Estos archivos se pueden encontrar en la pestaña Administrador de Archivos en tu Panel de Control. Sin embargo, los archivos de Paper se encuentran en el directorio "config". Puedes abrirlos en el editor web en línea haciendo clic en el botón "editar" a la derecha del archivo. Una vez que hayas terminado de editar, asegúrate de hacer clic en el botón verde "Guardar", luego reinicia el servidor para que los cambios surtan efecto.
use-alternate-keepalive
Good starting value: true
Puedes habilitar el sistema alternativo de keepalive de Purpur para que los jugadores con mala conexión no sean desconectados con tanta frecuencia. Se sabe que tiene incompatibilidad con TCPShield.
simulation-distance
Good starting value: 4
La distancia de simulación es la distancia en chunks alrededor del jugador que el servidor procesará. Esencialmente, es la distancia desde el jugador en la que ocurrirán cosas. Esto incluye hornos fundiendo, cultivos y retoños creciendo, etc. Esta es una opción que querrás configurar intencionalmente baja, alrededor de 3
o 4
, debido a la existencia de view-distance
. Esto permite cargar más chunks sin procesarlos. Esto efectivamente permite que los jugadores vean más lejos sin el mismo impacto en el rendimiento.
view-distance
Good starting value: 7
Esta es la distancia en chunks que se enviará a los jugadores, similar a no-tick-view-distance de Paper.
La distancia total de visión será igual al mayor valor entre simulation-distance
y view-distance
. Por ejemplo, si la distancia de simulación está configurada en 4 y la distancia de visión en 12, la distancia total enviada al cliente será de 12 chunks.
view-distance
Good starting value: default
Este valor sobrescribe el de server.properties si no está configurado en default
. Deberías mantenerlo en default para tener tanto la distancia de simulación como la distancia de visión en un solo lugar para una gestión más sencilla.
delay-chunk-unloads-by
Good starting value: 10s
Esta opción te permite configurar cuánto tiempo permanecerán cargados los chunks después de que un jugador se vaya. Esto ayuda a no cargar y descargar constantemente los mismos chunks cuando un jugador se mueve de un lado a otro. Valores demasiado altos pueden resultar en demasiados chunks cargados al mismo tiempo. En áreas a las que se teletransportan frecuentemente y se cargan, considera mantener el área permanentemente cargada. Esto será más ligero para tu servidor que cargar y descargar chunks constantemente.
max-auto-save-chunks-per-tick
Good starting value: 8
Te permite ralentizar el guardado incremental del mundo distribuyendo la tarea durante más tiempo para un mejor rendimiento promedio. Es posible que desees configurar esto más alto que 8
con más de 20-30 jugadores. Si el guardado incremental no puede finalizar a tiempo, Bukkit guardará automáticamente los chunks restantes de una vez y comenzará el proceso nuevamente.
prevent-moving-into-unloaded-chunks
Good starting value: true
Cuando está habilitado, evita que los jugadores se muevan hacia chunks no cargados y provoquen cargas sincronizadas que ralentizan el hilo principal causando lag. La probabilidad de que un jugador se encuentre con un chunk no cargado es mayor cuanto menor sea tu view-distance.
entity-per-chunk-save-limit
Con la ayuda de esta entrada puedes establecer límites sobre cuántas entidades de un tipo específico pueden ser guardadas. Debes proporcionar un límite para cada proyectil al menos para evitar problemas con grandes cantidades de proyectiles siendo guardados y que tu servidor se bloquee al cargar eso. Puedes poner cualquier ID de entidad aquí, consulta la wiki de Minecraft para encontrar las IDs de entidades. Ajusta el límite según tus preferencias. El valor sugerido para todos los proyectiles es alrededor de 10.
También puedes añadir otras entidades por sus nombres de tipo a esa lista. Esta opción de configuración no está diseñada para evitar que los jugadores hagan grandes granjas de mobs
max-loads-per-projectile
Good starting value: 8
Especifica la cantidad máxima de chunks que un proyectil puede cargar durante su vida útil. Disminuir este valor reducirá las cargas de chunks causadas por proyectiles de entidades, pero podría causar problemas con tridentes, enderpearls, etc.
spawn-limits
La fórmula para limitar mobs es [número de jugadores] * [límite]
, donde "número de jugadores" es la cantidad actual de jugadores en el servidor. Lógicamente, cuanto menores sean los números, menos mobs verás. La configuración per-player-mob-spawn
aplica un límite adicional a esto, asegurando que los mobs se distribuyan equitativamente entre los jugadores. Reducir esto es un arma de doble filo; sí, tu servidor tendrá menos trabajo que hacer, pero en algunos modos de juego, los mobs que aparecen naturalmente son una gran parte del juego. Puedes reducirlo a 20 o menos si ajustas adecuadamente el rango de aparición de mobs (mob-spawn-range)
. Configurar el rango de aparición de mobs más bajo hará que parezca que hay más mobs alrededor de cada jugador. Si estás usando Paper, puedes establecer límites de mobs por mundo en la configuración de paper-world.
ticks-per
Esta opción establece con qué frecuencia (en ticks) el servidor intenta generar ciertas entidades vivientes. Los mobs de agua/ambientales no necesitan generarse en cada tick, ya que generalmente no son eliminados tan rápidamente. En cuanto a los monstruos: Aumentar ligeramente el tiempo entre apariciones no debería impactar las tasas de aparición, incluso en las granjas de mobs. En la mayoría de los casos, todos los valores bajo esta opción deberían ser mayores que 1
. Configurar esto a un valor más alto también permite que tu servidor maneje mejor las áreas donde la generación de mobs está deshabilitada.
mob-spawn-range
Good starting value: 3
Te permite reducir el rango (en chunks) de donde los mobs se generarán alrededor del jugador. Dependiendo del modo de juego de tu servidor y la cantidad de jugadores, es posible que desees reducir este valor junto con los límites de generación
en bukkit.yml. Configurar esto a un valor más bajo hará que parezca que hay más mobs a tu alrededor. Esto debe ser menor o igual a tu distancia de simulación, y nunca mayor que tu rango de desaparición forzada dividido por 16.
entity-activation-range
Puedes establecer a qué distancia del jugador debe estar una entidad para que se procese (haga cosas). Reducir esos valores ayuda al rendimiento, pero puede resultar en mobs que no respondan hasta que el jugador esté realmente cerca de ellos. Reducir esto demasiado puede romper ciertas granjas de mobs; las granjas de hierro son las víctimas más comunes.
entity-tracking-range
Esta es la distancia en bloques desde la cual las entidades serán visibles. Simplemente no serán enviadas a los jugadores. Si se configura demasiado bajo, esto puede hacer que los mobs parezcan aparecer de la nada cerca de un jugador. En la mayoría de los casos, esto debe ser mayor que tu rango de activación de entidades (entity-activation-range)
.
tick-inactive-villagers
Good starting value: false
Esto te permite controlar si los aldeanos deben ser procesados fuera del rango de activación. Esto hará que los aldeanos funcionen con normalidad e ignoren el rango de activación. Desactivar esto ayudará al rendimiento, pero podría ser confuso para los jugadores en ciertas situaciones. Esto puede causar problemas con las granjas de hierro y el reabastecimiento de comercio.
nerf-spawner-mobs
Good starting value: true
Puedes hacer que los mobs generados por un spawner de monstruos no tengan IA. Los mobs debilitados no harán nada. Puedes hacer que salten mientras están en el agua cambiando spawner-nerfed-mobs-should-jump
a true
en la configuración de paper-world.
despawn-ranges
Te permite ajustar los rangos de desaparición de entidades (en bloques). Reduce estos valores para eliminar los mobs que están lejos del jugador más rápidamente. Deberías mantener el rango suave alrededor de 30
y ajustar el rango duro a un poco más que tu distancia de simulación real, para que los mobs no desaparezcan inmediatamente cuando el jugador se aleja justo más allá del punto de carga de un chunk (esto funciona bien debido a delay-chunk-unloads-by
en la configuración de paper-world). Cuando un mob está fuera del rango duro, será eliminado instantáneamente. Cuando está entre el rango suave y duro, tendrá una probabilidad aleatoria de desaparecer. Tu rango duro debe ser mayor que tu rango suave. Debes ajustar esto de acuerdo a tu distancia de visión usando (simulation-distance * 16) + 8
. Esto tiene en cuenta parcialmente los chunks que aún no se han descargado después de que el jugador los haya visitado.
per-player-mob-spawns
Good starting value: true
Esta opción decide si las apariciones de mobs deben tener en cuenta cuántos mobs ya están alrededor del jugador objetivo. Puedes evitar muchos problemas relacionados con la inconsistencia en la aparición de mobs debido a que los jugadores crean granjas que ocupan todo el límite de mobs. Esto permitirá una experiencia de aparición más similar a la de un jugador individual, permitiéndote establecer límites de aparición
más bajos. Habilitar esto tiene un impacto muy leve en el rendimiento, sin embargo, su impacto se ve superado por las mejoras en los límites de aparición
que permite.
max-entity-collisions
Good starting value: 2
Sobrescribe la opción con el mismo nombre en spigot.yml. Te permite decidir cuántas colisiones puede procesar una entidad a la vez. Un valor de 0
causará la imposibilidad de empujar a otras entidades, incluidos los jugadores. Un valor de 2
debería ser suficiente en la mayoría de los casos. Vale la pena señalar que esto hará que la regla del juego maxEntityCramming sea inútil si su valor es superior al valor de esta opción de configuración.
update-pathfinding-on-block-update
Good starting value: false
Desactivar esto resultará en menos búsqueda de caminos, aumentando el rendimiento. En algunos casos, esto hará que los mobs parezcan más lentos; simplemente actualizarán su camino pasivamente cada 5 ticks (0.25 segundos).
fix-climbing-bypassing-cramming-rule
Good starting value: true
Habilitar esto solucionará que las entidades no se vean afectadas por el amontonamiento mientras escalan. Esto evitará que cantidades absurdas de mobs se acumulen en espacios pequeños, incluso si están escalando (arañas).
armor-stands.tick
Good starting value: false
En la mayoría de los casos, puedes configurar esto de manera segura en false
. Si estás usando soportes de armadura o cualquier plugin que modifique su comportamiento y experimentas problemas, vuelve a habilitarlo. Esto evitará que los soportes de armadura sean empujados por el agua o afectados por la gravedad.
armor-stands.do-collision-entity-lookups
Good starting value: false
Aquí puedes desactivar las colisiones de los soportes de armadura. Esto ayudará si tienes muchos soportes de armadura y no necesitas que colisionen con nada.
tick-rates
¡No se recomienda cambiar estos valores de sus configuraciones predeterminadas mientras el DAB de Pufferfish esté habilitado!
Esto decide con qué frecuencia se activan ciertos comportamientos y sensores en ticks. acquirepoi para los aldeanos parece ser el comportamiento más pesado, por lo que se ha aumentado significativamente. Disminúyelo en caso de problemas con los aldeanos encontrando su camino.
dab.enabled
Good starting value: true
DAB (activación dinámica del cerebro) reduce la cantidad de veces que se procesa una entidad cuanto más lejos está de los jugadores. DAB funciona en un gradiente en lugar de un corte brusco como EAR. En lugar de procesar completamente las entidades cercanas y apenas procesar las entidades lejanas, DAB reducirá la cantidad de veces que se procesa una entidad basado en el resultado de un cálculo influenciado por dab.activation-dist-mod.
dab.max-tick-freq
Good starting value: 20
Define la cantidad más lenta en que se procesarán las entidades más alejadas de los jugadores. Aumentar este valor puede mejorar el rendimiento de las entidades fuera de la vista, pero puede romper granjas o debilitar significativamente el comportamiento de los mobs. Si habilitar DAB rompe las granjas de mobs, intenta disminuir este valor.
dab.activation-dist-mod
Good starting value: 7
Controla el gradiente en el que los mobs son procesados. Disminuir esto activará DAB más cerca de los jugadores, mejorando las ganancias de rendimiento de DAB, pero afectará cómo las entidades interactúan con su entorno y puede romper las granjas de mobs. Si habilitar DAB rompe las granjas de mobs, intenta aumentar este valor.
enable-async-mob-spawning
Good starting value: true
Si se debe habilitar la generación asíncrona de mobs. Para que esto funcione, la configuración per-player-mob-spawns de Paper debe estar habilitada. Esta opción no genera mobs de manera asíncrona, pero descarga gran parte del esfuerzo computacional involucrado en la generación de nuevos mobs a un hilo diferente. Habilitar esta opción no debería ser notable en el juego vanilla.
enable-suffocation-optimization
Good starting value: true
Esta opción optimiza una verificación de asfixia (la comprobación para ver si un mob está dentro de un bloque y si debe recibir daño por asfixia) limitando la frecuencia de la verificación al tiempo de espera del daño. Esta optimización debería ser imposible de notar a menos que seas un jugador extremadamente técnico que esté utilizando un tiempo preciso de ticks para matar a una entidad exactamente en el momento adecuado por asfixia.
inactive-goal-selector-throttle
Good starting value: true
Regula el selector de objetivos de la IA en ticks de entidades inactivas, haciendo que las entidades inactivas actualicen su selector de objetivos cada 20 ticks en lugar de cada tick. Puede mejorar el rendimiento en algunos puntos porcentuales y tiene implicaciones menores en la jugabilidad.
zombie.aggressive-towards-villager-when-lagging
Good starting value: false
Habilitar esto hará que los zombis dejen de apuntar a los aldeanos si el servidor está por debajo del umbral de TPS establecido con lagging-threshold
en purpur.yml.
entities-can-use-portals
Good starting value: false
Esta opción puede deshabilitar el uso de portales para todas las entidades, excepto para el jugador. Esto evita que las entidades carguen chunks al cambiar de mundo, lo cual se maneja en el hilo principal. El efecto secundario es que las entidades no podrán atravesar los portales.
villager.lobotomize.enabled
Good starting value: true
¡Esto solo debe habilitarse si los aldeanos están causando lag! De lo contrario, las verificaciones de búsqueda de caminos pueden disminuir el rendimiento.
Los aldeanos lobotomizados se despojan de su IA y solo reponen sus ofertas de vez en cuando. Habilitar esto lobotomizará a los aldeanos que no pueden encontrar el camino a su destino. Liberarlos debería deslobotomizarlos.
villager.search-radius
Radio dentro del cual los aldeanos buscarán bloques de sitio de trabajo y camas. Esto mejora significativamente el rendimiento con una gran cantidad de aldeanos, pero evitará que detecten bloques de sitio de trabajo o camas que estén más lejos del valor establecido.
merge-radius
Esto decide la distancia entre los objetos y orbes de experiencia para fusionarse, reduciendo la cantidad de objetos procesándose en el suelo. Configurarlo demasiado alto dará la ilusión de que los objetos o los orbes de experiencia desaparecen al fusionarse. Configurarlo demasiado alto romperá algunas granjas, así como permitirá que los objetos se teletransporten a través de bloques. No se realizan verificaciones para evitar que los objetos se fusionen a través de paredes (a menos que la configuración fix-items-merging-through-walls
de Paper esté activada). La experiencia solo se fusiona al crearse.
hopper-transfer
Good starting value: 8
Tiempo en ticks que los tolvas esperarán para mover un objeto. Aumentar esto ayudará a mejorar el rendimiento si hay muchas tolvas en tu servidor, pero romperá relojes basados en tolvas y posiblemente sistemas de clasificación de objetos si se configura demasiado alto.
hopper-check
Good starting value: 8
Tiempo en ticks entre las comprobaciones de las tolvas para detectar un objeto sobre ellas o en el inventario sobre ellas. Aumentar esto ayudará al rendimiento si hay muchas tolvas en tu servidor, pero romperá relojes basados en tolvas y sistemas de clasificación de objetos que dependen de corrientes de agua.
alt-item-despawn-rate
Esta lista te permite establecer un tiempo alternativo (en ticks) para hacer que ciertos tipos de objetos caídos se despawnen más rápido o más lento que el valor predeterminado. Esta opción puede utilizarse en lugar de plugins de limpieza de objetos junto con merge-radius
para mejorar el rendimiento.
redstone-implementation
Good starting value: ALTERNATE_CURRENT
Reemplaza el sistema de redstone con versiones más rápidas y alternativas que reducen las actualizaciones redundantes de bloques, disminuyendo la cantidad de lógica que tu servidor tiene que calcular. Usar una implementación no vanilla puede introducir inconsistencias menores en redstone muy técnica, pero las mejoras en rendimiento superan ampliamente los posibles problemas específicos. Una opción de implementación no vanilla también puede corregir otras inconsistencias de redstone causadas por CraftBukkit.
La implementación ALTERNATE_CURRENT
está basada en el mod Alternate Current. Puedes encontrar más información sobre este algoritmo en su página de recursos.
hopper.disable-move-event
Good starting value: false
El evento InventoryMoveItemEvent no se dispara a menos que haya un plugin escuchando activamente ese evento. Esto significa que solo debes establecer esto en true si tienes dicho(s) plugin(s) y no te importa que no puedan actuar en este evento. No lo establezcas en true si quieres utilizar plugins que escuchen este evento, por ejemplo, plugins de protección.
hopper.ignore-occluding-blocks
Good starting value: true
Determina si las tolvas ignorarán los contenedores dentro de bloques completos, por ejemplo, un carrito tolva dentro de un bloque de arena o grava. Mantener esto habilitado romperá algunas contraptions que dependen de ese comportamiento.
tick-rates.mob-spawner
Good starting value: 2
Esta opción te permite configurar con qué frecuencia deben ser activados los spawners. Valores más altos significan menos lag si tienes muchos spawners, aunque si se configura demasiado alto (en relación con el retraso de tus spawners), las tasas de aparición de mobs disminuirán.
optimize-explosions
Good starting value: true
Si configuras esto en true, reemplazarás el algoritmo de explosiones vanilla con uno más rápido, a costa de una ligera inexactitud en el cálculo del daño de las explosiones. Por lo general, esto no es perceptible.
treasure-maps.enabled
Good starting value: false
Generar mapas del tesoro es extremadamente costoso y puede colgar un servidor si la estructura que intenta localizar está en un chunk no generado. Solo es seguro habilitar esto si has pregenerado tu mundo y configurado un borde de mundo vanilla.
treasure-maps.find-already-discovered
El valor predeterminado de esta opción hace que los mapas recién generados busquen estructuras no exploradas, que generalmente están en chunks aún no generados. Configurándolo en true, los mapas pueden llevar a estructuras que ya fueron descubiertas anteriormente. Si no cambias esto a true
, podrías experimentar que el servidor se cuelgue o se bloquee al generar nuevos mapas del tesoro. villager-trade
se refiere a mapas intercambiados por aldeanos y loot-tables
se refiere a cualquier cosa que genere botín dinámicamente, como cofres de tesoro, cofres de mazmorras, etc.
tick-rates.grass-spread
Good starting value: 4
El tiempo en ticks entre intentos del servidor para propagar césped o micelio. Esto hará que grandes áreas de tierra tarden un poco más en convertirse en césped o micelio. Configurarlo alrededor de 4
debería funcionar bien si deseas reducirlo sin que la tasa de propagación disminuida sea notable.
tick-rates.container-update
Good starting value: 1
El tiempo en ticks entre actualizaciones de contenedores. Aumentar esto puede ayudar si las actualizaciones de contenedores te causan problemas (raramente sucede), pero hace que sea más probable que los jugadores experimenten desincronización al interactuar con inventarios (objetos fantasma).
non-player-arrow-despawn-rate
Good starting value: 20
Tiempo en ticks después del cual las flechas disparadas por los mobs deben desaparecer después de golpear algo. Los jugadores de todos modos no pueden recogerlas, por lo que podrías configurarlo en algo como 20 (1 segundo).
creative-arrow-despawn-rate
Good starting value: 20
Tiempo en ticks después del cual las flechas disparadas por jugadores en modo creativo deberían desaparecer después de golpear algo. Los jugadores de todos modos no pueden recogerlas, por lo que podrías configurarlo en algo como 20
(1 segundo).
disable-method-profiler
Good starting value: true
Esta opción deshabilitará algunos perfiles adicionales realizados por el juego. Este perfilado no es necesario para ejecutar en producción y puede causar lag adicional.
dolphin.disable-treasure-searching
Good starting value: true
Evita que los delfines realicen búsquedas de estructuras similares a los mapas del tesoro.
teleport-if-outside-border
Good starting value: true
Permite teleportar al jugador al punto de generación del mundo si están fuera del borde del mundo. Esto es útil ya que el borde de mundo vanilla puede ser evadido y el daño que causa al jugador puede ser mitigado.
En conclusión, la optimización de la configuración de tu servidor es crucial para mantener un juego fluido y prevenir problemas de rendimiento como el lag y la disminución del TPS. Cada ajuste debe ser cuidadosamente considerado según las necesidades específicas de tu servidor y la actividad de los jugadores. Ajustando configuraciones como la distancia de visión, los límites de spawn y los intervalos de ticks, puedes encontrar un equilibrio entre rendimiento y experiencia de juego. Recuerda monitorear regularmente las métricas de rendimiento de tu servidor después de hacer cambios para asegurarte de que tengan el efecto deseado. Con estas optimizaciones implementadas, tu servidor puede ofrecer un entorno más estable y placentero para los jugadores.