Torna al blog

Come ridurre il lag del tuo server Minecraft con server.properties

Riduci il lag del tuo server Minecraft gratuito: view-distance, simulation-distance, compressione di rete, Paper e spark spiegati passo dopo passo.

Come ridurre il lag del tuo server Minecraft con server.properties

Il tuo server Minecraft gratuito inizia ad andare a scatti appena si collegano alcuni amici? Buone notizie: buona parte del lag si risolve in un unico file, server.properties. Questa guida ti spiega quali impostazioni modificare, quali valori scegliere e come misurare il risultato.

Perché ogni impostazione conta su un server gratuito

Un server gratuito ha risorse limitate: poca memoria, una parte di processore condivisa e uno spazio di archiviazione ridotto. Minecraft però è esigente: calcola il mondo 20 volte al secondo, carica continuamente chunk e muove centinaia di entità. Le impostazioni predefinite sono pensate per una macchina potente. Adattandole al tuo server, puoi ottenere partite fluide senza cambiare nient'altro.

Lag del server o lag di rete: individua prima il problema

Prima di toccare qualsiasi cosa, scopri quale tipo di lag stai affrontando. I due hanno cause e soluzioni diverse.

TipoSintomiIndicatore
Lag del serverI blocchi rotti ricompaiono, i mob si bloccano, le fornaci sono lente, tutti i giocatori ne risentono insiemeTPS sotto 20, MSPT sopra 50 ms
Lag di reteSolo un giocatore va a scatti, viene riportato indietro (rubber-banding), le sue azioni arrivano in ritardoPing alto (barre di connessione nella lista Tab)

TPS e MSPT

Il server fa avanzare il gioco in tick. L'obiettivo è di 20 tick al secondo (TPS), cioè un budget di 50 millisecondi per tick (MSPT). Finché l'MSPT resta sotto i 50 ms, il server mantiene i suoi 20 TPS. Oltre, accumula ritardo e tutti se ne accorgono.

Su Paper o Purpur, due comandi mostrano questi valori direttamente in gioco:

/tps
/mspt

Il ping

Se i TPS restano a 20 ma un giocatore si lamenta, il problema dipende probabilmente dalla sua connessione o dalla distanza dal server. Le impostazioni di questo articolo non cambieranno molto, a parte la compressione di rete.

Le impostazioni di server.properties che contano

Il file server.properties si trova nella cartella principale del server. Arresta il server prima di modificarlo, poi riavvialo per applicare le modifiche.

ChiavePredefinitoConsigliato su un server gratuitoEffetto
view-distance10da 6 a 8Raggio di chunk inviati ai giocatori
simulation-distance10da 4 a 6Raggio in cui il mondo viene simulato
max-players20In base alle risorseGiocatori connessi contemporaneamente
network-compression-threshold256256 o 512Dimensione oltre la quale i pacchetti vengono compressi
entity-broadcast-range-percentage100da 50 a 80Distanza di invio delle entità
sync-chunk-writestruetrue (false con cautela)Scrittura sincrona dei chunk
max-tick-time6000060000Protezione contro un server bloccato

view-distance: la distanza di visualizzazione

È il raggio, in chunk, della zona inviata a ogni giocatore. È anche l'impostazione più costosa, perché il numero di chunk caricati cresce con il quadrato della distanza. Con un valore di 10, ogni giocatore carica un'area di 21 × 21 = 441 chunk. Con 6 ne carica solo 13 × 13 = 169, circa 2,6 volte meno.

view-distance=6

I giocatori possono scegliere una distanza inferiore nelle loro opzioni, ma mai superiore a quella del server.

simulation-distance: dove il mondo prende vita

Da Minecraft 1.18, la simulazione è separata dalla visualizzazione. simulation-distance stabilisce il raggio in cui le entità si muovono, le coltivazioni crescono e la redstone funziona. Più lontano, i chunk restano visibili ma fermi. Un valore da 4 a 6 basta per la maggior parte dei server tra amici.

simulation-distance=4

Ricorda che le farm automatiche funzionano solo se un giocatore è entro il raggio di simulazione.

max-players: un numero di giocatori realistico

Ogni giocatore carica la propria area di chunk e porta con sé delle entità. Meglio 8 giocatori su un server fluido che 20 su un server che va a scatti. Fissa un limite realistico in base alle risorse del tuo server e aumentalo se i TPS restano stabili.

network-compression-threshold: la compressione di rete

Questa impostazione indica la dimensione, in byte, oltre la quale i pacchetti vengono compressi. La compressione fa risparmiare banda ma consuma processore. Su un server con CPU limitata, un valore più alto come 512 riduce il lavoro di compressione. Il valore -1 disattiva del tutto la compressione: riservalo ai server dietro un proxy (BungeeCord, Velocity) sulla stessa rete.

entity-broadcast-range-percentage: la portata delle entità

Questa percentuale regola la distanza a cui le entità (mob, animali, oggetti a terra, cornici) vengono inviate ai giocatori. Abbassarla tra 50 e 80 riduce i dati trasmessi sui server pieni di animali o decorazioni. I giocatori vedono semplicemente apparire le entità un po' più vicino.

sync-chunk-writes: la scrittura dei chunk

Attiva per impostazione predefinita, fa sì che il server scriva i chunk sul disco in modo sincrono. Protegge il mondo dalla corruzione in caso di crash, ma può rallentare i salvataggi su uno spazio di archiviazione lento. Impostarla su false può rendere il server più fluido, con il rischio di perdere le ultime modifiche in caso di crash. Fallo solo se esegui regolarmente il backup del tuo mondo.

max-tick-time: una protezione, non un'impostazione di prestazioni

Questo valore, in millisecondi, è la durata massima di un tick prima che il server consideri di essere bloccato e si arresti da solo. Il valore predefinito è 60000, cioè un minuto. Non riduce il lag. Lascia il valore predefinito: con -1 la protezione è disattivata e un server bloccato resta fermo invece di arrestarsi.

Esempio di configurazione per un server gratuito

view-distance=6
simulation-distance=4
max-players=10
network-compression-threshold=256
entity-broadcast-range-percentage=75
sync-chunk-writes=true
max-tick-time=60000

Parti da questi valori, gioca qualche sessione con i tuoi amici e poi aumenta view-distance di un punto se il server resta stabile.

Pregenerare il mondo

Generare nuovi chunk è uno dei compiti più pesanti per un server, soprattutto quando i giocatori esplorano velocemente con le elitre. Pregenerare la mappa prima di aprire il server elimina questi picchi: la nostra guida completa al plugin Chunky spiega come fare.

Valuta anche di limitare la dimensione del mondo con un confine, per non riempire lo spazio di archiviazione:

/worldborder center 0 0
/worldborder set 6000

Andare oltre con Paper

Se il tuo server gira ancora in vanilla, passare a Paper (o a Purpur, basato su Paper) è spesso il miglioramento più grande. Questo software ottimizza molte parti del gioco restando compatibile con la maggior parte dei plugin Spigot. Aggiunge anche file di configurazione avanzati, tra cui config/paper-world-defaults.yml, che si applica a tutti i tuoi mondi.

Ecco alcune impostazioni molto usate. I loro nomi possono cambiare da una versione all'altra: verificali nella documentazione della tua versione di Paper.

environment:
  optimize-explosions: true   # calcolo delle esplosioni più leggero
hopper:
  cooldown-when-full: true    # una tramoggia piena aspetta prima di riprovare
  disable-move-event: false   # true alleggerisce le tramogge, ma può disturbare alcuni plugin di protezione
entities:
  armor-stands:
    tick: false               # supporti per armature più leggeri, ma meno reattivi

Modifica una sola impostazione alla volta e misurane l'effetto prima di passare alla successiva. Altrimenti non saprai cosa ha davvero aiutato.

Misurare con spark

spark è uno strumento di profilazione gratuito che mostra con precisione cosa consuma le risorse del tuo server. A seconda della tua versione di Paper, potrebbe essere già integrato; altrimenti installalo come plugin da Modrinth o SpigotMC.

ComandoUtilità
/spark tpsTPS, MSPT e utilizzo del processore
/spark healthStato generale: memoria, disco, TPS
/spark profiler startAvvia l'analisi
/spark profiler stopInterrompe l'analisi e genera un link al report

Avvia il profiler durante un momento di lag, lascialo girare qualche minuto e poi apri il report. Vedrai se il tempo se ne va nelle entità, nella generazione dei chunk o in un plugin specifico.

Riepilogo

  1. Verifica prima se si tratta di lag del server (TPS, MSPT) o di rete (ping).
  2. Riduci view-distance e simulation-distance.
  3. Fissa un numero di giocatori adatto alle tue risorse.
  4. Regola la compressione di rete e la portata delle entità.
  5. Pregenera il tuo mondo e imposta un confine.
  6. Passa a Paper e misura ogni modifica con spark.

Conclusione

Un server Minecraft gratuito può funzionare in modo perfettamente fluido se le sue impostazioni sono adatte alle sue risorse. Inizia dalla distanza di visualizzazione e di simulazione, che danno il miglioramento più visibile, poi affina con Paper e spark. Procedi a piccoli passi: sono le misurazioni, non le intuizioni, a dover guidare le tue scelte.