💻 Minecraft (Java)
Optimizar el servidor

Optimizar servidores de Minecraft

Esta guía, a comparación de otras tantas que puedes encontrar en internet, va al grano sin tanto texto y con pasos claros y concisos para que puedas optimizar tu servidor de Minecraft de la mejor manera posible. Si crees que hay algo que podríamos agregar, por favor háznoslo saber. Si buscas una guía más detalla puedes ver la guía recomendada por Paper para servidores con plugins: https://paper-chan.moe/paper-optimization/ (opens in a new tab)

💡

Aqui están las recomendaciones y ajustes que nosotros mismos usamos para optimizar servidores para eventos y comunidades grandes. Puede variar en que fork de Paper se utiliza o especificaciones del server ya que generalmente para esos servidores usamos servidores con muchos recursos, pero en general, la clave está en los parametros que indicamos aqui. Estas recomendaciones están basadas en nuestra experiencia.

Esta guia primero tiene algunas recomendaciones generales que puedes aplicar a servidores con mods o plugins por igual. Luego tiene secciones separadas para servidores con plugins y servidores con mods que contiene recomendaciones especificas para cada tipo de servidor.

Recomendaciones generales

Distancia de renderizado

📌 Se configura en el archivo server.properties.

  • Distancia de simulación (simulation-distance): Determina cuánto del entorno está activo alrededor del jugador. Un valor más bajo reduce la carga del servidor. Se recomienda un valor entre 4 y 6.

  • Distancia de vista (view-distance): Define cuántos bloques son visibles. Mantén este valor igual al de simulación.

server.properties
simulation-distance=5
view-distance=5

Pre-generación de chunks

Casi obligatorio para servidores de modalidad Survival donde los jugadores exploraran el mundo constantemente. Sigue nuestra guía para pre-generar chunks en tu servidor aquí.

Evita utilizar plugins/mods en beta

Asegúrate de que todos los plugins o mods que utilices estén actualizados y sean compatibles con la versión de tu servidor. Evita usar versiones beta o inestables que puedan causar problemas de rendimiento o que aún no estén preparados para ser usados en servidores, sino en mundos locales de un jugador.

Puerto de conexión para Voice Chat

⚠️

Si usas el mismo puerto para jugar como chat de voz, el servidor no podrá manejar ambos tipos de conexión en el mismo puerto, ya que los paquetes de voz (UDP) tienen prioridad sobre los demás paquetes que utiliza el juego (TCP), causando desconexiones por Timeout, lag o ping elevado.

Esto es un error común. Si utilizas un plugin o mod de chat de voz, asegúrate de configurarlo para que utilice un puerto diferente al que usas para ingresar al servidor. Esto evitará conflictos y problemas de conexión.

Para poder crear un puerto adicional en tu servidor puedes hacerlo en la pestaña Network del panel de juegos, allí podrás crear un puerto adicional para el chat de voz. Luego debes configurar el plugin o mod de chat de voz para que use ese puerto. Si necesitas ayuda abre un ticket y lo configuramos por ti.

Reinicios automáticos

Recomendamos cada X tiempo reiniciar el servidor automáticamente para liberar memoria RAM y evitar problemas de crasheos o reinicios inesperados. Puedes configurar una tarea programada desde el panel de juegos siguiendo esta guía aquí o abrir un ticket de soporte para que podamos ayudarte.

Servidores con plugins

Optimización de entidades

📌 Se configura en los archivos bukkit.yml, spigot.yml y config/paper-world-defaults.yml. A continuación, se indican configuraciones recomendadas en cada archivo:

bukkit.yml
spawn-limits:
  monsters: 20
  animals: 5
  water-animals: 2
  water-ambient: 2
  water-underground-creature: 3
  axolotls: 3
  ambient: 1
ticks-per:
  animal-spawns: 400
  monster-spawns: 10
  water-spawns: 400
  water-ambient-spawns: 400
  water-underground-creature-spawns: 400
  axolotl-spawns: 400
  ambient-spawns: 400
  autosave: 6000
spigot.yml
world-settings:
  default:
    view-distance: 5
    simulation-distance: 5
    mob-spawn-range: 3
    nerf-spawner-mobs: true
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 40
      misc: 8
      water: 8
      villagers: 16
      flying-monsters: 40
      tick-inactive-villagers: false
    entity-tracking-range:
      players: 32
      animals: 32
      monsters: 32
      misc: 24
      display: 32
      other: 32
config/paper-world-defaults.yml
anticheat:
  anti-xray:
    enabled: false
collisions:
  fix-climbing-bypassing-cramming-rule: true
  max-entity-collisions: 2
entities:
  armor-stands:
    do-collision-entity-lookups: false
    tick: false
  spawning:
    despawn-ranges:
      ambient:
        hard: 48
        soft: 24
      axolotls:
        hard: 48
        soft: 24
      creature:
        hard: 48
        soft: 24
      misc:
        hard: 48
        soft: 24
      monster:
        hard: 48
        soft: 24
      underground_water_creature:
        hard: 48
        soft: 24
      water_ambient:
        hard: 48
        soft: 24
      water_creature:
        hard: 48
        soft: 24
    per-player-mob-spawns: true
environment:
  optimize-explosions: true
misc:
  update-pathfinding-on-block-update: false
tick-rates:
  behavior:
    villager:
      validatenearbypoi: 60
      acquirepoi: 120
  sensor:
    villager:
      secondarypoisensor: 80
      nearestbedsensor: 80
      villagerbabiessensor: 40
      playersensor: 40
      nearestlivingentitysensor: 40

Usar Aikar's Flags

📌 Puedes activarlas desde la pestaña Startup en el menú del panel de juegos.

Esto son flags de Java que ayudan a optimizar el uso de memoria RAM y se agregan al comando de inicio de tu servidor. Para tu comodidad puedes activarlas tú mismo desde el panel de control de tu servidor, en la pestaña Startup. Si quieres saber más sobre estas flags puedes ver la documentación de Paper: https://docs.papermc.io/paper/aikars-flags/ (opens in a new tab)

Plugins recomendados

⚠️

Evita usar plugins para optimizar entidades, como ClearLag. En su lugar, utiliza los propios ajustes de limitación de entidades en la configuración de Paper. ClearLag puede parecer útil, pero en realidad al eliminar entidades de forma masiva cada X tiempo provoca que el servidor tenga que volver a generar entidades nuevas cada vez que se eliminan, lo que causa un mayor uso de CPU y RAM, esto provocará bajones de TPS constantes. Por lo tanto, es mejor evitar su uso.

Servidores con mods

Si estas por aplicar estas recomendaciones en un modpack recomendamos que primero revises si este modpack ya contiene alguna de estas optimizaciones, ya que muchos modpacks populares ya incluyen mods de optimización y no es necesario agregarlos manualmente.

Mods de optimización

💡

Es probable que no necesites todos los mods de la lista, y algunos no sean compatibles con los diferentes server loaders que existen para mods, como Fabric, Forge, Quilt o NeoForge. Por lo tanto, recomendamos que revises la compatibilidad de cada mod con la version de tu servidor y el server loader que estés utilizando.

Configurar ServerCore

Después de subir el mod ServerCore e iniciar tu servidor, apágalo y en la configuración del mod activa la optimización dinámica para ajustar configuraciones en tiempo real según el estado del servidor.

config/servercore/config.yml
features:
  lobotomize-villagers:
    enabled: true
dynamic:
  enabled: true
💡

Si necesitas una optimización mas agresiva puedes configurarlo como indica la documentación del mod: https://github.com/Wesley1808/ServerCore/blob/main/docs/config/OPTIMIZED.md (opens in a new tab)

Usar mods asincrónicos

Los mods pueden ser asincrónicos, es decir, que usan hilos diferentes en la CPU, y los mods sincrónicos utiliza los mismos hilos que Minecraft. Si tienes muchos mods sincrónicos en tu servidor con poca RAM puede probar problemas de rendimiento.

Identificar la causa del lag

Recomendamos el mod Spark para monitorear el servidor. Puedes instalarlo en el servidor y en tu cliente. Puedes ver una guía sobre cómo usar Spark aquí.

Evitar usar mods client-side en el servidor

Evita usar mods que solo son necesarios en el cliente, como los mods gráficos, shaders o mods de sonidos ambientales, algunos de estos son Optifine, Mouse Tweaks o mods de mapas. Estos pueden causar problemas de rendimiento en el servidor y no aportan nada al juego en sí desde el lado del servidor. Si un mod no es necesario en el servidor, evítalo y solo úsalo en tu PC.

Nuestro panel de juego tiene una opción en el File Manager para detectar mods client-side, puedes usarla para identificar si tienes mods que no son necesarios en el servidor y borrarlos del servidor.