Esta guía va directo al grano con pasos claros y concisos para optimizar tu servidor de Minecraft. Si crees que falta algo, cuéntanos. Si buscas una guía más extensa, te recomendamos la guía oficial de Paper para servidores con plugins: https://paper-chan.moe/paper-optimization/

Las recomendaciones que siguen son las que usamos en eventos grandes y comunidades. Según el fork de Paper o las especificaciones del servidor (en esos casos solemos usar máquinas con muchos recursos), puede variar; pero en general la clave está en los parámetros indicados aquí. Todo se basa en nuestra experiencia.

Primero verás recomendaciones generales aplicables tanto a servidores con mods como con plugins. Luego hay secciones independientes con ajustes específicos para cada tipo.


Recomendaciones generales

Distancias de simulación y renderizado

📌 Se configuran en el archivo server.properties.

  • simulation-distance: determina cuánto del entorno está activo alrededor del jugador. Un valor menor reduce la carga del servidor. Recomendado entre 4 y 6.
  • view-distance: define cuántos chunks son visibles. Mantén este valor igual a simulation-distance.

server.properties

simulation-distance=5
view-distance=5

Pre-generación de chunks

Casi obligatoria para servidores de supervivencia donde los jugadores exploran constantemente. Pre-generar reduce picos de carga al descubrir terreno nuevo. (Sigue tu guía de pre-generación preferida.)

Evita plugins/mods en beta

Asegúrate de que todos los plugins o mods estén actualizados y sean compatibles con la versión de tu servidor. Evita versiones beta o inestables que suelen causar problemas de rendimiento.

Puerto de conexión para Voice Chat

Si usas el mismo puerto para juego y voice chat, el servidor no podrá manejar ambos tipos de conexión: los paquetes de voz (UDP) tienen prioridad sobre los de juego (TCP), provocando timeouts, lag o picos de ping.

Configura el voice chat en otro puerto distinto al de acceso del servidor. Crea un puerto adicional desde la pestaña Network del panel y asócialo en la configuración del plugin/mod de voz. Si lo necesitas, abre un ticket de soporte para que te lo configuremos.

Reinicios periódicos

Reiniciar el servidor de forma programada ayuda a liberar RAM y evitar bloqueos o reinicios inesperados. Programa una tarea desde el panel o solicita ayuda vía ticket.


Servidores con plugins (Paper y forks)

Optimización de entidades

📌 Se configura en bukkit.yml, spigot.yml y config/paper-world-defaults.yml. Recomendaciones:

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

Usa las Aikar’s Flags

📌 Actívalas desde la pestaña Startup del panel del servidor.

Son flags de Java que ayudan a optimizar el uso de RAM y la recolección de basura. Se añaden al comando de inicio del servidor. Más info en la documentación de Paper: https://docs.papermc.io/paper/aikars-flags/

Plugins recomendados

  • Spark: herramienta para detectar cuellos de botella. Ejecuta /spark health para generar un informe rápido. (Mira también nuestra guía de Spark.)
  • Chunky: pre-generación eficiente de chunks.
  • WorldGuard: /stoplag limita tareas del servidor en momentos críticos (ten en cuenta que afecta la jugabilidad).

Evita plugins que “optimizan” entidades como ClearLag. Es preferible usar los límites y despawn de Paper. El borrado masivo periódico obliga a regenerar entidades y suele aumentar el uso de CPU/RAM provocando caídas de TPS.


Servidores con mods

Si vas a aplicar estas recomendaciones en un modpack, verifica primero si ya incluye optimizaciones. Muchos modpacks populares las traen y no hace falta agregarlas manualmente.

Mods de optimización

No necesitarás todos los mods listados y algunos pueden no ser compatibles con distintos loaders (Fabric, Forge, Quilt, NeoForge). Revisa compatibilidad con tu versión/loader.

  • ServerCore: mejora el rendimiento y ofrece ajustes similares a un servidor con plugins.
  • AI Improvements: optimiza la IA de mobs (pathfinding, etc.), reduciendo carga de CPU. No requiere cliente.
  • In Control!: controla el spawn de mobs/entidades para evitar generación innecesaria. No requiere cliente.
  • Phosphor: mejora el rendimiento de iluminación, especialmente en mundos grandes. Úsalo junto con Lithium. No requiere cliente.
  • Lithium: optimiza generación de chunks, pathfinding y otros sistemas del juego.
  • FerriteCore: reduce el uso de RAM optimizando estructuras de datos del mundo.
  • Chunk-Pregeneration: pre-generación eficiente de chunks para servidores con mods.
  • Redirector: optimiza el acceso a valores constantes (como enums) reemplazándolos por referencias estáticas, mejorando el rendimiento y reduciendo el uso de memoria. Funciona en cliente y servidor, pero no requiere que los clientes tengan el mod.

Configurar ServerCore

Después de subir el mod ServerCore y arrancar el servidor por primera vez, apágalo y habilita la optimización dinámica para ajustar parámetros en tiempo real según el estado del servidor.

config/servercore/config.yml

features:
lobotomize-villagers:
enabled: true
dynamic:
enabled: true

Para una optimización más agresiva, consulta la documentación del mod: https://github.com/Wesley1808/ServerCore/blob/main/docs/config/OPTIMIZED.md

Sobre mods asíncronos

Algunos mods pueden ser asíncronos (usan hilos distintos de CPU), mientras que otros son síncronos (comparten hilos con Minecraft). Muchos mods síncronos en un servidor con poca RAM pueden generar problemas de rendimiento.

Identificar la causa del lag

Recomendamos el mod Spark para monitorear el servidor (servidor y cliente). Puedes seguir una guía de uso de Spark para interpretar los reportes y localizar cuellos de botella.