Come creare un server su Minecraft
Un server proprio offre il controllo totale sul mondo e sulle regole di gioco. È la possibilità di giocare con gli amici senza pagare…
Un server proprio offre il controllo totale sul mondo e sulle regole di gioco. È la possibilità di giocare con gli amici senza pagare abbonamenti mensili, installare qualsiasi modifica, creare minigiochi o pacchetti tecnici. Il server viene avviato come programma separato sul computer: elabora la logica di gioco, mentre i client dei giocatori si collegano ad esso. Il processo di creazione consiste nella scelta del core, nella configurazione di base dei file e nell'apertura dell'accesso alla rete.
Scelta del core del server
Il tipo di core determina le funzionalità del server. Non è possibile installare le mod di Forge su Paper, né i plugin su Vanilla.
Tipo di core | Supporto | A cosa serve |
Vanilla | Solo datapack | Sopravvivenza pura, speedrun. Ottimizzazione peggiore. |
Paper | Plugin (Bukkit/Spigot/Paper) | Server pubblici, sopravvivenza con gli amici, minigiochi. Ottimizzazione eccellente. |
Purpur | Plugin (Paper) + configurazione propria | Come Paper, ma con regolazioni fini delle meccaniche (ad esempio, permettere di cavalcare le api). |
Fabric | Mod (Fabric) | Server tecnici (Carpet mod), pacchetti vanilla+, ottimizzazione (Lithium). |
NeoForge / Forge | Mod (Forge/NeoForge) | Modpack pesanti con nuove dimensioni, meccanismi, magia. |
Per il 90% dei server privati senza grandi mod globali, Paper è la scelta ottimale. Non richiede l'installazione di mod sui client dei giocatori (tutto funziona dal client vanilla), supporta i plugin per la protezione dei territori e funziona più velocemente del core ufficiale.
⚠️ Importante: I core ibridi (Arclight, Mohist), che supportano contemporaneamente sia mod che plugin, spesso rompono le meccaniche delle mod e causano instabilità. Scegli una sola cosa: o i plugin, o le mod.
Requisiti di sistema e preparazione
Il server consuma memoria RAM e risorse del processore. La scheda video non ha importanza per il server: la generazione del mondo avviene esclusivamente sulla CPU.
Per 2–5 giocatori (Paper):
RAM: 2–3 GB di memoria allocata.
CPU: qualsiasi processore moderno da 4 core in su.
Per 10+ giocatori o modpack pesanti (NeoForge):
RAM: 6–8 GB di memoria allocata.
CPU: prestazioni elevate per singolo core.
Installazione di Java
Minecraft 1.21+ richiede Java 21 (per le versioni 26.1+ serve Java 26). Il server non usa il Java integrato nel client, va installato separatamente sul sistema.
Scarica JDK 21 (o JDK 26) dal sito ufficiale di Oracle.
Installalo, attivando obbligatoriamente l'opzione “Add to PATH” nell'installer.
Verifica nel terminale: java -version. Deve mostrare la versione 21.0.x.
Installazione e avvio di base
Esempio di installazione per il core Paper:
Passo 1. Download del core
Vai sul sito ufficiale papermc.io, scegli la versione del gioco (ad esempio, 26.1) e scarica il file. Crea una cartella vuota per il server e sposta il file lì. Rinominalo in server.jar per comodità.
Passo 2. Creazione del file di avvio
Il server non si avvia con un doppio clic. Bisogna assegnargli la memoria tramite uno script.
Crea nella cartella del server un documento di testo start.txt,
aprilo e incolla il codice:
DOS
java -Xmx4G -Xms4G -jar server.jar nogui
pause
Il parametro -Xmx4G imposta il limite massimo di memoria RAM (4 GB). -Xms4G è la quantità iniziale. Salva il file e cambia la sua estensione da .txt a .bat (per Windows).
Su Linux/macOS crea start.sh e aggiungi #!/bin/bash come prima riga.
Passo 3. Accettazione dell'EULA
Avvia start.bat. La console si aprirà per alcuni secondi e si chiuderà. Apri il nuovo file eula.txt. Cambia la riga eula=false in eula=true. Questa è l'accettazione ufficiale del contratto di licenza degli sviluppatori.
Passo 4. Avvio completo
Avvia di nuovo start.bat. Il server genererà il mondo e i file di configurazione. Nella console comparirà il messaggio Done!. Ferma il server esclusivamente con il comando stop nella console, altrimenti il mondo potrebbe danneggiarsi.
Configurazione di server.properties
Il file server.properties contiene le impostazioni principali del server. Per aprirlo, fai clic destro sul file e scegli “Apri con…”, poi scegli “Blocco note” o un altro editor di testo qualsiasi.\
Di seguito una tabella con le impostazioni predefinite di server.properties e la descrizione di ogni parametro:
Parametro | Valore | Descrizione |
accepts-transfers | FALSE | Determina se questo server accetta i reindirizzamenti (trasferimenti) di giocatori da altri server. |
allow-flight | FALSE | Permette o vieta il volo sul server in modalità sopravvivenza (se il giocatore usa modifiche di terze parti). Con false il server espellerà tali giocatori. |
broadcast-console-to-ops | TRUE | Se attivo, i risultati dell'esecuzione dei comandi della console verranno inviati in chat a tutti gli operatori (amministratori) del server. |
broadcast-rcon-to-ops | TRUE | Come il precedente, ma per i comandi inviati tramite l'accesso remoto (RCON). |
bug-report-link | (vuoto) | Link che verrà mostrato ai giocatori sullo schermo quando vengono disconnessi dal server a causa di un errore o di un crash. |
debug | FALSE | Attiva la modalità di debug (debug mode) per una registrazione estesa degli errori. |
difficulty | easy | Livello di difficoltà sul server (peaceful — pacifica, easy — facile, normal — normale, hard — difficile). |
enable-code-of-conduct | FALSE | Se richiedere ai giocatori di accettare le norme di condotta di Microsoft (Code of Conduct) al momento della connessione. |
enable-jmx-monitoring | FALSE | Permette l'uso di JMX (Java Management Extensions) per il monitoraggio delle prestazioni del server. |
enable-query | FALSE | Attiva il protocollo GameSpy4 (Query), che permette ai siti di monitoraggio di terze parti di ottenere informazioni sul server (giocatori online, plugin). |
enable-rcon | FALSE | Attiva l'accesso remoto alla console del server (RCON) per la gestione senza accesso diretto al terminale della macchina. |
enable-status | TRUE | Permette al server di essere visualizzato come «online» nella lista dei server del client di gioco. |
enforce-secure-profile | TRUE | Richiede che i giocatori abbiano chiavi pubbliche firmate del profilo Mojang (protezione contro la falsificazione dei messaggi in chat). |
enforce-whitelist | FALSE | Se true, il server espellerà forzatamente i giocatori che non sono nella «lista bianca» (whitelist) quando questa lista viene attivata. |
entity-broadcast-range-percentage | 100 | Controlla la distanza (in percentuale) alla quale il server invia al client i dati sulle entità (mob, altri giocatori, oggetti). |
force-gamemode | FALSE | Imposta forzatamente ai giocatori la modalità di gioco predefinita a ogni connessione al server. |
function-permission-level | 2 | Livello di permessi (da 1 a 4) per le funzioni eseguite tramite i datapack. |
gamemode | survival | Modalità di gioco predefinita (survival, creative, adventure, spectator). |
generate-structures | TRUE | Determina se nel mondo verranno generate le strutture (villaggi, dungeon, templi, ecc.). |
generator-settings | {} | Impostazioni speciali per il generatore del mondo (di solito usato per mondi personalizzati). |
hardcore | FALSE | Modalità «Hardcore». Se true, dopo la morte il giocatore passa in modalità spettatore per sempre. |
hide-online-players | FALSE | Se true, nasconde la lista dei nick dei giocatori attivi nel menu del gioco multigiocatore. |
initial-disabled-packs | (vuoto) | Lista dei datapack che verranno disattivati alla creazione di un nuovo mondo. |
initial-enabled-packs | vanilla | Lista dei datapack attivati per impostazione predefinita (gioco base «vanilla»). |
level-name | world | Nome della cartella in cui vengono salvati i file del tuo mondo. |
level-seed | (vuoto) | Seed (valore numerico) per la generazione del mondo. Se vuoto, ne verrà generato uno casuale. |
level-type | minecraft\:normal | Tipo di generazione del mondo (normal — normale, flat — piatto, large_biomes — biomi grandi, amplified — montuoso). |
log-ips | TRUE | Determina se gli indirizzi IP dei giocatori verranno registrati nei file di log del server. |
management-server-* | (vari) | Gruppo di parametri (porte, chiavi, impostazioni) per gli strumenti esterni di gestione del server (usato raramente). |
max-chained-neighbor-updates | 1000000 | Limite degli aggiornamenti a catena dei blocchi (ad esempio, durante un'esplosione di TNT o schemi complessi di redstone) per evitare che il server si blocchi. |
max-players | 20 | Numero massimo di giocatori che possono trovarsi contemporaneamente sul server. |
max-tick-time | 60000 | Tempo massimo (in millisecondi) di esecuzione di un «tick». Se il server «ci pensa» più a lungo di questo tempo, si spegnerà automaticamente (protezione contro un blocco «morto»). |
max-world-size | 29999984 | Raggio massimo del confine del mondo (in blocchi). |
motd | A Minecraft Server | Message Of The Day. Descrizione/nome del server che i giocatori vedono nella lista dei server. |
network-compression-threshold | 256 | Dimensione minima del pacchetto (in byte) oltre la quale il server inizierà a comprimerlo per risparmiare traffico internet. |
online-mode | TRUE | Parametro molto importante. Se true — fa entrare solo i giocatori con il gioco originale. Se false — permette l'accesso ai giocatori con launcher «pirata». |
op-permission-level | 4 | Livello di permessi degli operatori predefinito (1-4, dove 4 dà accesso a tutti i comandi, incluso stop). |
pause-when-empty-seconds | -1 | Tempo di inattività (in secondi) dopo il quale il server mette il mondo «in pausa» se non ci sono giocatori (-1 significa disattivato). |
player-idle-timeout | 0 | Tempo (in minuti) dopo il quale un giocatore inattivo (AFK) viene espulso automaticamente. 0 — disattivato. |
prevent-proxy-connections | FALSE | Vieta la connessione di giocatori che usano VPN o proxy (funziona in combinazione con il sistema di autenticazione di Mojang). |
query.port | 25565 | Porta per il protocollo Query (se è attivato con il parametro enable-query). |
rate-limit | 0 | Numero massimo di pacchetti dal client al server. Usato per la protezione contro lo spam di pacchetti (0 — disattivato). |
rcon.password | (vuoto) | Password per l'accesso remoto alla console del server (va compilata se enable-rcon=true). |
rcon.port | 25575 | Porta per la connessione RCON. |
region-file-compression | deflate | Algoritmo di compressione dei file del mondo (regioni). deflate è lo standard e il più diffuso. |
require-resource-pack | FALSE | Se true, il giocatore non potrà entrare nel server finché non accetta di scaricare il resource pack del server. |
resource-pack | (vuoto) | Link diretto (URL) all'archivio .zip del resource pack del server che verrà proposto ai giocatori. |
resource-pack-id | (vuoto) | Identificatore univoco del resource pack (UUID). |
resource-pack-prompt | (vuoto) | Messaggio che il giocatore vedrà quando gli verrà proposto di scaricare il resource pack (ad esempio: «Per favore, scarica il pack per una migliore esperienza di gioco»). |
resource-pack-sha1 | (vuoto) | Hash SHA-1 dell'archivio con il resource pack. Serve affinché il client non riscarichi il pack se non è cambiato. |
server-ip | (vuoto) | Indirizzo IP per il «binding» del server. Di solito viene lasciato vuoto affinché il server funzioni su tutte le interfacce di rete della macchina. |
server-port | 25565 | Porta principale del server tramite la quale si collegheranno i giocatori. |
simulation-distance | 10 | Raggio (in chunk) attorno al giocatore entro il quale viene simulato il mondo (crescono le piante, si muovono i mob, funzionano i meccanismi). |
spawn-protection | 16 | Raggio di protezione della zona di spawn (in blocchi). In questa zona i giocatori normali non possono rompere o posizionare blocchi. |
status-heartbeat-interval | 0 | Intervallo di invio dei dati estesi sullo stato del server (di solito non usato). |
sync-chunk-writes | TRUE | Rende sincrono il salvataggio dei chunk su disco (più affidabile per evitare la perdita dei dati del mondo in caso di crash, ma può rallentare leggermente il server). |
text-filtering-config | (vuoto) | Configurazione di un sistema esterno di filtraggio delle parolacce in chat. |
text-filtering-version | 0 | Versione dell'API per il sistema di filtraggio del testo. |
use-native-transport | TRUE | Permette al server di usare le librerie di rete ottimizzate del sistema (ad esempio, epoll per Linux), il che migliora le prestazioni di rete. |
view-distance | 10 | Distanza di rendering (in chunk) che il server invia al client (su cui si basa la distanza visiva del giocatore). |
white-list | FALSE | Attivazione della «lista bianca». Se true, potranno entrare nel server solo i giocatori i cui nick sono stati aggiunti a questa lista (con il comando /whitelist add <nick>). |
⚠️ Importante: Se imposti online-mode=false, qualsiasi giocatore potrà entrare con il nick dell'amministratore. Installa obbligatoriamente un plugin di autorizzazione (ad esempio, AuthMe Reloaded) per proteggere il server.
Come installare i plugin
I plugin ampliano le possibilità del server senza che i giocatori debbano installare mod. Funzionano solo su Paper, Purpur e Spigot.
Scarica il plugin in formato .jar.
Metti il file nella cartella plugins all'interno del server.
Riavvia il server (stop -> start.bat).
Nella cartella plugins comparirà una cartella con le configurazioni del plugin, dove si modificano le sue impostazioni (di solito nel file config.yml).
Come installare le mod
Per giocare con le mod serve il core Fabric o NeoForge. Tutti i giocatori devono avere un set di mod identico nel proprio client.
Per Fabric:
Scarica l'installer da fabricmc.net.
Avvialo, scegli la scheda «Server», indica la versione del gioco e una cartella vuota. Premi «Install».
Avvia il fabric-server-launch.jar scaricato tramite start.bat.
Metti le mod nella cartella mods generata. Per Fabric è obbligatoria la mod Fabric API.
Per NeoForge:
Scarica l'installer da neoforged.net.
Avvialo, scegli «Install server» e indica la cartella.
Dopo l'installazione avvia il file run.bat (l'installer lo crea da solo).
Sistema le mod del server nella cartella mods.
È vietato installare sul server le mod client (minimappe, shader, ottimizzazione della grafica come Sodium): causano un crash del core all'avvio.
Come far entrare i giocatori sul server
Metodo 1: Port Forwarding
Il metodo migliore, con il ping più basso. Richiede l'accesso al router.
Entra nel pannello delle impostazioni del router (192.168.1.1 nel browser).
Trova la sezione «Port Forwarding» o «NAT».
Crea una regola: porta 25565, protocollo TCP/UDP, IP locale — l'indirizzo del tuo computer (scoprilo con ipconfig).
I giocatori si collegano tramite il tuo indirizzo IP esterno (sito 2ip.ua).
Metodo 2: Tunnel (Playit.gg)
Se il provider blocca le porte.
Scarica il programma da playit.gg.
Avvialo insieme al server. Aprirà una pagina nel browser.
Registrati e il servizio fornirà un indirizzo pubblico (ad esempio, auto-bridge.playit.gg).
I giocatori inseriscono questo indirizzo nel gioco.
Metodo 3: Radmin VPN
Installa Radmin VPN su tutti i computer.
Crea una rete e dalle un nome per i tuoi amici.
Loro si uniscono alla rete.
I giocatori si collegano tramite l'indirizzo IP del tuo PC indicato in Radmin VPN.
Dettagli tecnici / Come funziona all'interno
Il server Minecraft è un'applicazione a thread singolo. Il ciclo di gioco principale (tick loop), che elabora il movimento dei mob, la fisica e i meccanismi, viene eseguito esclusivamente su un solo core del processore.
Il gioco cerca di eseguire 20 tick al secondo (TPS — Ticks Per Second). A ogni tick vengono assegnati 50 millisecondi. Se i calcoli richiedono più tempo, gli TPS calano e i giocatori percepiscono i ritardi. Proprio per questo, per il server la frequenza di clock di un singolo core è più importante del numero totale di core.
Il multithreading nei core come Paper viene usato solo per il caricamento asincrono dei chunk dal disco e per l'elaborazione di rete, ma la logica di gioco vera e propria rimane su un singolo thread.
Comandi base dell'amministratore
Si inseriscono nella console del server (senza /).
Azione | Comando |
Concedere i permessi di operatore | op [nick] |
Revocare i permessi | deop [nick] |
Attivare la lista bianca | whitelist on |
Aggiungere alla lista bianca | whitelist add [nick] |
Espellere un giocatore | kick [nick] [motivo] |
Bannare un giocatore | ban [nick] [motivo] |
Salvare il mondo manualmente | save-all |
L'hosting come alternativa
Se il computer di casa è poco potente, il server può essere noleggiato.
Tipo | Rappresentanti | Vantaggi | Limitazioni |
Gratuiti | Aternos, FalixNodes | Non serve pagare | Code per l'avvio, lag sotto carico, il server si spegne senza giocatori. |
A pagamento economici | PebbleHost, Bloom.host | Da 1$ per GB, funzionamento 24/7 | Bisogna pagare mensilmente. |
VDS/VPS | Hetzner, Oracle | Controllo totale sulla macchina | Richiede competenze di amministrazione Linux. |
Errori comuni e come evitarli
Errore 1: FAILED TO BIND TO PORT. Il server non si avvia perché la porta 25565 è già occupata. Capita spesso avviando due start.bat. Apri il task manager e chiudi tutti i processi Java(TM) Platform SE binary.
Errore 2: UnsupportedClassVersionError. La versione di Java è obsoleta. Per 1.20.5+ serve Java 21, mentre per 1.16.5 — Java 11.
Errore 3: Lag durante il volo veloce. Il server non riesce a generare i nuovi chunk in tempo. Installa il plugin Chunky e genera in anticipo il mondo in un raggio di 5000 blocchi.
Errore 4: Crash del server Fabric/Forge all'avvio. Nella cartella mods è finita una mod client (minimappa, Sodium). Il server non ha un'interfaccia grafica e si arresta nel tentativo di caricarle.
Errore 5: Errore Invalid session alla connessione. Il giocatore usa un launcher pirata con online-mode=true attivo. Cambia il valore in false in server.properties.
Conclusione
Un server proprio basato su Paper è la scelta ottimale per una sopravvivenza privata con gli amici, poiché garantisce prestazioni eccellenti e permette di aggiungere plugin senza modificare il client di gioco. Per i grandi pacchetti con nuove meccaniche bisognerà usare Fabric o NeoForge, che richiedono la sincronizzazione delle mod tra server e giocatori. La sfida principale nella configurazione di un server domestico è la corretta apertura delle porte, ma l'uso di servizi come Playit.gg risolve il problema delle porte bloccate dal provider. Se le prestazioni del PC di casa non bastano, il passaggio a un hosting a pagamento economico garantisce un accesso stabile 24/7.
Ancora nessun commento. Sii il primo a dire la tua.