Minecraft

Come creare un server Minecraft Java Edition con Windows

Ebbene sì, per i miei figli appassionati di Minecraft ho creato un server locale per farli giocare insieme su PC con la Java Edition. Con le dovute configurazioni il server è raggiungibile anche dall’esterno via Internet per far giocare anche gli amici.

NOTA
L’esecuzione di software server sul computer senza una chiara comprensione di ciò che si sta facendo può rendere il sistema vulnerabile agli attacchi dall’esterno

NOTA 2
Minecraft non supporta il cross-play, in termini terra terra ad un server Minecraft Java Edition ci si può collegare solo con la versione Java Edition, no con la versione Windows 10 o Pocket Edition (Android e iOS)

La prima cosa da fare è scaricare il programma per creare il server dal sito di Minecraft e lo si può fare cliccando qui sopra.

La seconda è scaricare e installare Java: non la tipica versione, che già dovreste avere se giocate con la Java Edition regolarmente, ma la versione per sviluppatori ossia la JDK. Attualmente che siamo alla versione 14, il file di installazione si può scaricare cliccando qui sopra. In futuro probabilmente il link sarà diverso.

La terza cosa da fare è installare il server: per fare questo dovete creare un file batch nello stesso percorso dove avete scaricato precedentemente il programma d’installazione dal sito di Minecraft (prima cosa da fare) e chiamarlo come volete.
Ora dovreste scrivere questo comando all’interno del file batch:

java -Xmx1024M -Xms1024M -jar minecraft_server.1.15.2.jar nogui

Utilizzando i parametri Xms e Xmx, è possibile specificare la dimensione iniziale e massima della memoria per Java. Quelli nel comando sono i parametri di default e minimi consigliabili, potete aumentare o diminuire (sconsigliato) la quantità di memoria inserendo altri valori. Comunque un server Minecraft per funzionare bene non può risiedere in un computer con basse risorse.
minecraft_server.1.15.2.jar è il nome originale del file d’installazione (attuale: nel momento in cui sto scrivendo) che poi sarà anche l’eseguibile, se gli avete dato un altro nome ovviamente nel comando va sostituito col nome che gli avete dato.
Il parametro nogui avvia il server senza interfaccia grafica e si può togliere, io l’ho tolto perchè diversamente non si possono dare i comandi al server tipo bannare un utente.

Altri parametri possibili da mettere nel file batch

  • –bonusChest Se deve essere generato un forziere bonus, quando il mondo viene generato per la prima volta.
  • –demo Se il server è in modalità demo. (Mostra ai giocatori un pop-up demo, senza ulteriori implicazioni)
  • –eraseCache Cancella le cache di illuminazione, ecc. Stessa opzione di quando si ottimizzano i mondi per giocatore singolo.
  • –forceUpgrade Forza l’upgrade su tutti i blocchi, in modo tale che la versione dei dati di tutti i blocchi corrisponda alla versione corrente del server (uguale a quella dei mondi sp).
  • –help Mostra questo aiuto.
  • –initSettings Inizializza “server.properties” e “eula.txt”, quindi si chiude.
  • –nogui Non apre la GUI all’avvio del server.
  • –port Su quale porta ascoltare, sovrascrive il valore server.properties. (impostazione predefinita: -1)
  • –serverId Fornisce un ID al server.
  • –singleplayer Esegue il server in modalità offline (sconosciuto dove viene utilizzato , probabilmente utilizzato internamente da mojang?)
  • –universe La cartella in cui cercare le cartelle del mondo. (predefinito: .)
  • –world Il nome della cartella del mondo in cui risiede level.dat.

La quinta cosa da fare è modificare il file eula.txt: una volta installato il server noterete che nella cartella dove avevate salvato il file di installazione e successivamente avviata l’installazione con il batch suindicato, si sono creati dei file, uno di questo è eula.txt. Dovrete aprirlo e modificare l’unico parametro che è eula=false, che di default, in eula=true altrimenti il server non si avvierà.

La sesta cosa da fare è configurare il server tramite il file server.properties: questo è un altro dei file che si sono creati successivamente all’installazione del server. Di seguito una spiegazione dei vari valori da poter impostare, queste sono cose soggettive.

TipoChiaveValore di defaultDescrizione
booleanallow-flightfalseConsente agli utenti di utilizzare il volo sul server mentre si trovano in modalità Sopravvivenza, se dispongono di una mod che fornisce il volo installato. Con il permesso di volo abilitato, i griefer possono diventare più comuni, perché semplificano il loro lavoro. In modalità Creativa, questo non ha effetto.
false: Il volo non è permesso (i giocatori in aria per almeno 5 secondi vengono calciati)
true: Il volo è permesso e usato se il giocatore ha installato una mod fly.
booleanallow-nethertruePermette ai giocatori di viaggiare verso il Nether.
false: i portali Nether non funzionano.
true: il server consente ai portali di inviare i giocatori al Nether.
booleanbroadcast-console-to-opstrueInvia gli output dei comandi della console a tutti gli operatori online.
booleanbroadcast-rcon-to-opstrueInvia gli output dei comandi della console rcon a tutti gli operatori online.
stringdifficultyeasyDefinisce la difficoltà (come il danno inflitto dai mob e il modo in cui la fame e il veleno influenzano i giocatori) del server. Se viene specificato un numero di difficoltà legacy, viene silenziosamente convertito in un nome di difficoltà. Pacifico (0)
Facile (1)
Normale (2)
Difficile (3)
booleanenable-command-blockfalseAbilita i blocchi di comandi.
booleanenable-rconfalseAbilita l’accesso remoto alla console del server.
booleansync-chunk-writestrueAbilita le scritture di blocchi sincroni.
booleanenable-queryfalseAbilita il listener del server del protocollo GameSpy4. Utilizzato per ottenere informazioni sul server.
booleanforce-gamemodefalseForza i giocatori a unirsi nella modalità di gioco predefinita mode.
false – I giocatori si uniscono alla modalità di gioco che hanno lasciato.
true – I giocatori si uniscono sempre alla modalità di gioco predefinita.
integer (1-4)function-permission-level2Imposta il livello di autorizzazione predefinito per le funzioni. Vedere # op-permissio-level per i dettagli sui 4 livelli.
stringgamemodesurvivalDefinisce la modalità di gioco. Se viene specificato un numero di gamemode legacy, viene silenziosamente convertito in un nome di gamemode.
Survival (0)
Creative (1)
Adventure (2)
Spectator (3)
booleangenerate-structurestrueDefinisce se le strutture (come i villaggi) possono essere generate.
false – Le strutture non vengono generate in nuovi chunks.
true – Le strutture vengono generate in nuovi blocchi. Nota: i dungeon vengono comunque generati se impostato su false.
stringgenerator-settingsblankLe impostazioni utilizzate per personalizzare la generazione mondiale. Vedere Superflat e Customized per possibili impostazioni ed esempi.
booleanhardcorefalseSe impostato su true, la difficoltà del server viene ignorata e impostata su hard e i giocatori vengono impostati in modalità spettatore se muoiono.
stringlevel-nameworldIl valore “level-name” viene utilizzato come nome del mondo e come nome della cartella. Il giocatore può anche copiare la cartella del gioco salvata qui e cambiare il nome con quello della cartella per caricarlo, ma potrebbe essere necessario evitare caratteri come ‘(apostrofo) aggiungendo una barra rovesciata prima di essi.
stringlevel-seedvuotoAggiungi un seed per il mondo del giocatore, come in Single Player. Alcuni esempi sono: minecraft, 404, 1a2b3c.
stringlevel-typedefaultDetermina il tipo di mappa generata.
default – Mondo standard con colline, valli, acqua, ecc.
Flat– Un mondo piatto senza caratteristiche, può essere modificato con generator-settings.largebiomes – Lo stesso di default ma tutti i biomi sono più grandi.
Amplified – uguale al valore predefinito ma il limite di altezza di world-generation viene aumentato.
buffet – uguale al valore predefinito a meno che le generator-settings non sia impostato su un predefinito.
integermax-build-height256L’altezza massima consentita per la costruzione. Il terreno può ancora generarsi naturalmente al di sopra di un limite di altezza bassa.
integer (0-2147483647)max-players20Il numero massimo di giocatori che possono giocare contemporaneamente sul server. Nota che più giocatori sul server consumano più risorse. Nota anche che le connessioni dei giocatori op non sono conteggiate rispetto al numero massimo di giocatori, ma al momento gli op non possono unirsi a un server completo. Tuttavia, questo può essere modificato andando al file chiamato ops.json nella directory dei giocatori del server, aprendolo, trovando l’operazione che il giocatore vuole cambiare e cambiando l’impostazione chiamata bypassesPlayerLimit su true (il valore predefinito è false). Ciò significa che quell’operazione non deve attendere la partenza di un giocatore per unirsi. Valori estremamente grandi per questo campo comportano l’interruzione dell’elenco utenti sul lato client.
integer (0–(2^63 – 1))max-tick-time60000Il numero massimo di millisecondi che un singolo tick può richiedere prima che il watchdog del server arresti il server con il messaggio, Un singolo tick del server ha richiesto 60.00 secondi (dovrebbe essere max 0.05); Considerando che si blocca, il server si arresterà forzatamente. Una volta che questo criterio è soddisfatto, chiama System.exit(1).
-1 – disabilitare completamente watchdog (questa opzione di disabilitazione è stata aggiunta in 14w32a)
integer (1-29999984)max-world-size29999984Questo imposta la dimensione massima possibile in blocchi, espressi come raggio, che il confine del mondo può ottenere. L’impostazione del bordo del mondo più grande fa sì che i comandi vengano completati correttamente, ma il bordo effettivo non si sposta oltre questo limite di blocco. L’impostazione di max-world-size superiore a quella predefinita non sembra eseguire alcuna operazione. Esempi: l’impostazione di max-world-size su 1000 permette al giocatore di avere un confine del mondo di 2000-2000. L’impostazione di max-world-size a 4000 dà al giocatore un confine mondiale 8000-8000.
stringmotdA Minecraft ServerQuesto è il messaggio visualizzato nell’elenco dei server del client, sotto il nome. Il MOTD supporta i codici di colore e formattazione. Il MOTD supporta caratteri speciali, ad esempio “♥”. Tuttavia, tali caratteri devono essere convertiti in formato Unicode di escape. Un convertitore online può essere trovato qui. Se il MOTD è superiore a 59 caratteri, l’elenco dei server potrebbe segnalare un errore di comunicazione.
integernetwork-compression-threshold256Per impostazione predefinita, consente ai pacchetti che sono n-1 byte di andare normalmente, ma un pacchetto di n byte o più viene compresso. Quindi, un numero più basso significa una maggiore compressione, ma la compressione di piccole quantità di byte potrebbe effettivamente finire con un risultato più grande di quello che è stato inserito.
-1 – disabilitare completamente la compressione
0 – comprimere tutto Nota: le specifiche Ethernet richiedono che i pacchetti inferiori a 64 byte vengano riempiti con 64 byte. Pertanto, l’impostazione di un valore inferiore a 64 potrebbe non essere utile. Si sconsiglia inoltre di superare l’MTU, in genere 1500 byte.
booleanonline-modetrueIl server controlla il collegamento dei giocatori con il database degli account Minecraft. Impostalo su false solo se il server del giocatore non è connesso a Internet. Gli hacker con account falsi possono connettersi se impostato su false! Se minecraft.net è inattivo o inaccessibile, nessun giocatore può connettersi se questo è impostato su true. L’impostazione disattivata di proposito di questa variabile viene chiamata “cracking” di un server e i server presenti con la modalità online disattivata vengono chiamati server “crackizzati”, consentendo ai giocatori con copie senza licenza di Minecraft di collegarsi.
true – Abilitato. Il server presuppone che abbia una connessione Internet e controlla ogni player.
false – Disabilitato. Il server non tenta di verificare la connessione dei giocatori.
integer (1-4)op-permission-level4Imposta il livello di autorizzazione predefinito per le operazioni quando si utilizza /op. Tutti i livelli ereditano abilità e comandi dai livelli precedenti.
1 – Le operazioni operative possono bypassare la protezione di spawn.
2 – Le operazioni operative possono utilizzare tutti i comandi dei trucchi per giocatore singolo (eccetto /publish, poiché non è sui server; insieme a /debug) e utilizzare i blocchi di comandi. I blocchi di comandi, insieme ai proprietari/operatori di Realms, hanno le stesse autorizzazioni di questo livello.
3 – Ops possono usare la maggior parte dei comandi esclusivi multiplayer, inclusi /debug, e comandi che gestiscono i giocatori (/ban, /op, ecc.)
4 – Gli operatori possono utilizzare tutti i comandi inclusi /stop, /save-all, /save-on e /save-off.
integerplayer-idle-timeout0Se diverso da zero, i giocatori vengono espulsi dal server se restano inattivi per più di tanti minuti. Nota: il tempo di inattività viene ripristinato quando il server riceve uno dei seguenti pacchetti:
Fai clic su Finestra
Inserisci oggetto
Aggiorna Giocatore
Scavo
Posizionamento blocco giocatore
Modifica oggetto Azione entità
Stato client
Messaggio di chat
Usa entità
booleanprevent-proxy-connectionsfalseSe l’ISP/AS inviato dal server è diverso da quello dal server di autenticazione di Mojang, il giocatore è kicked
true – Abilitato. Il server impedisce agli utenti di utilizzare vpns o proxies.
false – Disabilitato. Il server non impedisce agli utenti di utilizzare VPN o proxy.
booleanpvptrueAbilita PvP sul server. I giocatori che si sparano con le frecce ricevono danni solo se il PvP è abilitato.
true – i giocatori possono uccidersi a vicenda.
false – I giocatori non possono uccidere altri giocatori (noto anche come Giocatore contro Ambiente (PvE)).
Nota: le fonti di danno indiretto generate dai giocatori (come lava, fuoco, TNT e in una certa misura acqua, sabbia e ghiaia) continuano a infliggere danni ad altri giocatori.
integer (1-65534)query.port25565Imposta la porta per il server di query (consultare enable-query).
stringrcon.passwordvuotoImposta la password per RCON: un protocollo della console remota che può consentire ad altre applicazioni di connettersi e interagire con un server Minecraft su Internet.
integer (1-65534)rcon.port25575Imposta la porta di rete RCON.
stringresource-packvuotoURI opzionale per un pacchetto di risorse. Il giocatore può scegliere di usarlo.
Nota che (in alcune versioni precedenti alla 1.15.2), i caratteri “:” e “=” devono essere salvati con una barra rovesciata (\), ad es. http\: //somedomain.com/somepack.zip? someparam\= someValue
Il pacchetto di risorse potrebbe non avere dimensioni di file superiori a 50 MiB (≈ 50,4 MB). Notare che l’esito positivo o negativo del download è registrato dal client e non dal server.
stringresource-pack-sha1vuotoDigest SHA-1 facoltativo del pacchetto di risorse, in formato esadecimale minuscolo. Si consiglia di specificarlo, poiché viene utilizzato per verificare l’integrità del pacchetto di risorse.
Nota: se il pacchetto di risorse è diverso, un messaggio giallo “Sha1 non valido per il pacchetto di risorse-sha1” appare nella console all’avvio del server. A causa della natura delle funzioni hash, gli errori hanno una probabilità molto piccola di verificarsi, quindi questa conseguenza non ha alcun effetto.
stringserver-ipvuotoIl giocatore dovrebbe impostarlo se desidera che il server si associ a un determinato IP. Si consiglia vivamente di lasciare vuoto server-ip.
Impostato su vuoto o IP su cui il giocatore desidera eseguire (ascoltare) il proprio server.
integer (1-65534)server-port25565Cambia la porta su cui il server ospita (in ascolto). Questa porta deve essere inoltrata se il server è ospitato in una rete tramite NAT (se il lettore ha un router / firewall domestico).
booleansnooper-enabledtrueImposta se il server invia regolarmente dati snoop a http://snoop.minecraft.net.
false – disabilita lo snooping.
true – abilita lo snooping.
booleanspawn-animalstrueDetermina se gli animali possono spawnare.
true – Gli animali si generano normalmente.
false – Gli animali svaniscono immediatamente.
Se il giocatore ha un ritardo maggiore, si consiglia di disattivare / impostare su false.
booleanspawn-monsterstrueDetermina se i mostri possono comparire.
true – Abilitato. I mostri appaiono di notte e al buio.
false – Disabilitato. Niente mostri.
Questa impostazione non ha alcun effetto se la difficoltà è 0 (pacifica). Se la difficoltà non è pari a 0, un mostro può ancora deporre le uova da uno spawner.
Se il giocatore ha un ritardo maggiore, si consiglia di disattivare/impostare su false.
booleanspawn-npcstrueDetermina se gli abitanti del villaggio possono generare.
true – Abilitato. Gli abitanti del villaggio depongono le uova.
false – Disabilitato. Nessun abitante del villaggio.
integerspawn-protection16Determina la lunghezza laterale dell’area di protezione di spawn quadrata come 2x + 1. L’impostazione su 0 non disabilita la protezione di spawn, ma protegge il singolo blocco nel punto di spawn. Un valore di 1 protegge un quadrato 3 × 3 centrato sul punto di spawn. 2 protegge 5 × 5, 3 protegge 7 × 7, ecc. Questa opzione non viene generata al primo avvio del server e appare quando il primo giocatore si unisce. Se non ci sono operazioni impostate sul server, la protezione di spawn viene disabilitata automaticamente.
booleanuse-native-transporttrueMiglioramenti delle prestazioni del server Linux: invio / ricezione di pacchetti ottimizzati su Linux
true – abilitato. Abilita l’ottimizzazione dell’invio / ricezione di pacchetti Linux
false – disabilitato. Disabilita l’ottimizzazione dell’invio / ricezione di pacchetti Linux
integer (3-32)view-distance10Imposta la quantità di dati del mondo che il server invia al client, misurata in blocchi in ciascuna direzione del giocatore (raggio, non diametro). Determina la distanza di visualizzazione sul lato server.
10 è l’impostazione predefinita/consigliata. Se il giocatore ha un ritardo maggiore, si consiglia di ridurre questo valore.
Nota: un valore inferiore a 9 ha un grande impatto sulla generazione di mob sul server, come notato nel bug MC-2536.
booleanwhite-listfalseAbilita una whitelist sul server.
Con una whitelist abilitata, gli utenti non attivi nella whitelist non possono connettersi. Destinati a server privati, come quelli per amici reali o sconosciuti accuratamente selezionati tramite un processo di applicazione, ad esempio.
false – Non viene utilizzata alcuna white list.
true – Il file whitelist.json viene utilizzato per generare la white list.
Nota: le operazioni vengono automaticamente inserite nella whitelist e non è necessario aggiungerle alla whitelist.
booleanenforce-whitelistfalseApplica la whitelist sul server.
Quando questa opzione è abilitata, gli utenti che non sono presenti nella whitelist (se abilitata) vengono espulsi dal server dopo che il server ricarica il file della whitelist.
false – Nessun utente viene espulso se non è presente nella whitelist.
true – Gli utenti online non nella whitelist vengono espulsi.

La settima cosa da fare è aprire le porte sul firewall di Windows o del vostro software antivirus qualora sia fornito anche di firewall: bisogna creare due regola, in entrata ed in uscita, per la porta 25565 che è quella di default consentendone il passaggio. Se avete cambiato il numero di porta ovviamente dovete mettere il numero di quella che avete impostato.

Ottava e ultima cosa da fare, avviare il server: il server si avvia semplicemente lanciando il batch che avete creato per l’installazione, niente di più.

NOTA: Minecraft Java Edition può collegarsi solo ad un server che è della stessa versione del client ovvero per giocare in un server versione 1.15.2 anche il gioco dovrà essere versione 1.15.2, ne più ne meno.


Requisiti minimi per un server Minecraft

RequisitiGiocatoriCPURAMHDD/SSD
Minimo1-4Intel Core 2 Duo or AMD Athlon 64 x21GBAlmeno 150MB per il salvataggio dei mondi
Raccomando5-10Intel Core 2 Duo or AMD Athlon 64 x22GBAlmeno 200MB per il salvataggio dei mondi
Migliore10+Intel Core i7-4790k or AMD Ryzen 5 16004GBAlmeno 200MB su SSD per il salvataggio dei mondi

Rispondi

Un commento su “Come creare un server Minecraft Java Edition con Windows”

%d blogger hanno fatto clic su Mi Piace per questo: