Optimizar un servidor Java: distancias, mobs y Paper

Antes de tocar nada, mide. Después cambia pocas cosas, una a una, y vuelve a medir. Estos son los ajustes que más TPS devuelven en un servidor Paper, sin romper la jugabilidad.

Los nombres y valores por defecto de las opciones cambian entre versiones de Paper y Spigot. Si una opción no existe en tu versión, ignórala y consulta la documentación de Paper. Haz un backup antes de empezar.

1. Mide primero

  • /tps en la consola: un servidor sano está en 20 TPS. Por debajo de 15 se nota; por debajo de 10 es casi injugable.
  • /mspt (Paper): milisegundos por tick. Mientras sea menor de 50, el servidor va bien.
  • Instala spark y lanza /spark profiler start, espera uno o dos minutos con lag y para con /spark profiler stop. Te da un enlace con qué consume más.

2. Distancias (el cambio que más se nota)

# Chunks que se envían a cada jugador (visual)
view-distance=8

# Chunks donde se simulan entidades, redstone y cultivos
simulation-distance=6

Una referencia: con pocos jugadores view-distance 10 y simulation-distance 8; con muchos, 6-8 y 4-6. No bajes view-distance de 5 ni simulation-distance de 4: el mundo se ve recortado y las granjas dejan de funcionar.

3. Límites de mobs

spawn-limits:
  monsters: 50
  animals: 8
  water-animals: 3
  water-ambient: 10
  ambient: 4

Son valores moderados frente a los de fábrica (70 / 10 / 15 / 20 / 15). Reducirlos baja bastante el uso de CPU sin que se note al jugar.

4. Entidades lejanas

world-settings:
  default:
    mob-spawn-range: 6
    entity-activation-range:
      animals: 16
      monsters: 24
      raiders: 48
      misc: 8
      water: 8
      villagers: 16
      flying-monsters: 32
    entity-tracking-range:
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64
    merge-radius:
      item: 3.5
      exp: 6.0

Las entidades lejos de los jugadores piensan menos, y los objetos y la experiencia del suelo se fusionan en uno solo (menos entidades).

5. Ajustes de Paper

environment:
  optimize-explosions: true

misc:
  redstone-implementation: ALTERNATE_CURRENT

chunks:
  max-auto-save-chunks-per-tick: 8
  • optimize-explosions acelera el cálculo de explosiones (TNT, creepers).
  • ALTERNATE_CURRENT es un motor de redstone más eficiente y compatible con la mayoría de circuitos.
  • max-auto-save-chunks-per-tick reparte el guardado automático para evitar picos de lag.

El anti-xray de Paper consume CPU: déjalo desactivado salvo que lo necesites.

6. Pregenera el mapa

Generar chunks nuevos mientras la gente explora es una causa típica de lag. Con el plugin Chunky lo haces de antemano, con el servidor vacío:

/chunky radius 5000
/chunky start

Un radio de 3000-5000 bloques suele bastar. Tardará un rato y el servidor irá más lento mientras tanto.

7. Lo que no se ve en la configuración

  • Las flags de Aikar reducen las pausas del recolector de basura.
  • Los plugins: unos pocos bien hechos pesan menos que muchos mediocres. Con spark ves cuál consume más.
  • La RAM: más memoria no arregla un servidor lento por CPU. Mira cuánta RAM necesita un servidor.

Más contexto en Cómo reducir el lag.

Preguntas frecuentes

¿Cuál es el ajuste que más ayuda?

Casi siempre simulation-distance y view-distance, seguidos de pregenerar el mapa y revisar con spark qué plugin pesa más.

¿Cambiar estos valores rompe las granjas?

Con los valores de esta guía, no. Las granjas dejan de funcionar fuera de la distancia de simulación, así que no bajes esa por debajo de 4.