Guide / Risoluzione problemi
Project Zomboid: come correggere «File Does Not Match the One on the Server»
È il modo più frustrante di finire una sessione prima ancora che inizi: tutti sono nella chiamata Discord, qualcuno clicca Unisciti, e Project Zomboid li rispedisce fuori con un file che, a quanto pare, non corrisponde a quello del server. Non è rotto nulla: il server fa esattamente ciò che gli è stato chiesto. Questa guida spiega cosa confronta davvero il controllo, perché scatta, come correggere ogni causa nel modo giusto e quando è ragionevole disattivarlo con DoLuaChecksum.
Cosa significa davvero l'errore
Quando un client si connette, il server Project Zomboid confronta i checksum dei file Lua e degli script caricati dal client con i propri. Se un solo file differisce, la connessione viene rifiutata e il giocatore vede un messaggio che indica quel file: «file does not match the one on the server», oppure uno dei suoi parenti stretti come «file doesn't exist on the client» e «Lua/script checksums do not match».
Il controllo è governato dall'impostazione del server DoLuaChecksum, che è attivo per impostazione predefinita. Il suo compito è garantire che tutti nella sessione eseguano lo stesso codice: file di gioco identici e mod identiche. Conta perché Project Zomboid esegue gran parte della sua logica in Lua su entrambi i lati, quindi un client con file diversi non vede semplicemente qualcosa di leggermente diverso: si desincronizza, genera errori e può corrompere ciò che riscrive nel mondo.
Da questo derivano due cose, e fanno risparmiare parecchio tempo perso:
- Il file indicato raramente è il problema. È solo la prima differenza su cui si è fermato il confronto. Inseguire quel file specifico non porta da nessuna parte; guarda perché se i due lati hanno proprio file diversi.
- È un sintomo, non un guasto. Qualcosa da un lato è una versione diversa. Trova quale lato si è spostato e l'errore scompare da solo.
Causa 1: il client e il server sono su build diverse
Questa è la causa nella stragrande maggioranza dei casi. Steam aggiorna automaticamente i client dei giocatori, di solito nel momento esatto in cui esce una patch. Un server no: continua a girare la versione con cui è stato distribuito. Il giorno in cui The Indie Stone pubblica una nuova build, a sera tutti i giocatori ci sono sopra e il server è ancora su quella della settimana scorsa, quindi i checksum smettono di corrispondere e nessuno riesce a entrare.
Ci sono due modi per chiudere il divario, e te ne serve solo uno.
Porta avanti il server (consigliato)
Su un server di Project Zomboid ospitato da noi, apri la scheda Versione di gioco nella dashboard. Mostra la versione su cui è il server e, quando è stata pubblicata una patch stabile più recente, offre un aggiornamento con un clic. Un aggiornamento di patch mantiene lo stesso piano, quindi il tuo mondo, il tuo servertest.ini e le tue impostazioni sopravvivono: vengono sostituiti solo i file di gioco.
Nella stessa scheda puoi attivare «esegui sempre l'ultima versione». Il server segue così da solo le nuove release stabili e non resta più indietro rispetto ai tuoi giocatori. È l'impostazione da usare se preferisci non pensarci affatto, ed è il motivo per cui questo errore è in gran parte un problema risolto per i nostri clienti. Il compromesso va tenuto presente: un aggiornamento automatico può arrivare mentre una mod su cui fai affidamento non è ancora stata aggiornata, quindi le community con molte mod a volte preferiscono aggiornare a mano dopo aver controllato la lista delle mod.
Oppure riporta indietro il client
A volte vuoi davvero che il server resti dov'è: un mondo di lunga durata, una lista di mod bloccata su una build specifica. In quel caso è il giocatore a bloccare il proprio client. In Steam, fai clic destro su Project Zomboid, apri Proprietà → Versioni di gioco e beta e seleziona la versione che corrisponde al server: legacy41 per un server Build 41, la versione pubblica predefinita per la Build 42 stabile attuale, oppure una patch più vecchia specifica quando Steam la elenca ancora. Il client scarica quella build e i checksum tornano allineati.
Va detto chiaramente, perché la gente ci perde ore: un client Build 42 non può entrare in un server Build 41, e nessuna impostazione da entrambi i lati lo cambia. Le due build sono abbastanza lontane da essere, nel multiplayer, giochi effettivamente diversi. Se il tuo gruppo è diviso, scegli una build e fai passare tutti. I nostri piani coprono entrambe: vedi i requisiti del server per il confronto.
Causa 2: mod della Workshop non sincronizzate
La seconda causa sono le mod, e si comporta esattamente allo stesso modo: un elemento della Workshop aggiornato da un lato e non dall'altro. Gli autori delle mod pubblicano secondo il proprio calendario, Steam invia subito l'aggiornamento ai giocatori iscritti, e un server in esecuzione mantiene la copia scaricata all'avvio. Basta un solo giocatore che non ha finito di scaricare, o un server che non si è riavviato dopo l'aggiornamento, per far scattare la discrepanza.
- Riavvia il server dopo un'ondata di aggiornamenti della Workshop. Le mod vengono scaricate durante l'avvio, quindi un riavvio è ciò che recupera le versioni attuali. Farlo prima di una sessione, invece che durante, evita l'intero problema.
- Chiedi al giocatore interessato di disiscriversi e reiscriversi. Disiscriviti dalle mod del server, dai a Steam un minuto per rimuovere davvero i file, poi reiscriviti e attendi che il download sia completo prima di entrare. Una mod scaricata a metà produce esattamente questo errore.
- Controlla che la mod sia elencata correttamente lato server. Ogni mod ha bisogno del suo ID numerico della Workshop in
WorkshopItemse del suo ID mod testuale inMods. La nostra guida alle mod della Steam Workshop tratta a fondo questa coppia: il Gestore mod della dashboard scrive entrambi per te. - Sospetta per prima la mod aggiunta più di recente. Se l'errore è comparso subito dopo aver aggiunto una mod, rimuovila, riavvia e controlla se l'accesso funziona. Alcuni elementi della Workshop includono file che non arrivano mai al client in modo pulito.
Causa 3: file del client corrotti o aggiornati a metà
Meno comune, ma facile da escludere. Se un solo giocatore riceve l'errore mentre tutti gli altri sulla stessa build entrano senza problemi, la sua installazione locale è quella anomala. Chiedigli di aprire Steam, fare clic destro su Project Zomboid e usare Proprietà → File installati → Verifica integrità dei file di gioco. Steam riscarica tutto ciò che non corrisponde, incluso un file Lua rimasto indietro da un aggiornamento interrotto. Se la verifica da sola non basta, eliminare la cartella media/lua nella directory del gioco e verificare di nuovo forza il riscaricamento pulito dei soli file coperti dal checksum.
Causa 4: il falso positivo su Linux
C'è una stranezza di vecchia data per cui un Server dedicato Linux può segnalare una discrepanza anche quando i file di client e server coincidono davvero. I server dedicati, compresi i nostri, girano su Linux, quindi vale la pena saperlo. Non è il caso comune, e puoi concluderne di esserci incappato solo dopo i controlli sopra: stessa build su entrambi i lati, mod risincronizzate, file del client verificati, e l'errore continua a comparire.
Questa è la situazione in cui disattivare il controllo è la scelta giusta e non una scorciatoia, perché non resta nulla da correggere: i file coincidono e il confronto è sbagliato.
L'ultima risorsa: disattivare DoLuaChecksum
Impostando DoLuaChecksum=false il confronto viene disattivato, quindi il server smette di rifiutare i client per differenze nei file. È il workaround che si trova citato ovunque, e funziona davvero.
Su un server ospitato da noi non devi modificare nulla a mano: apri la scheda Impostazioni del server e disattiva Controllo file Lua in Accesso e admin. La dashboard ferma il server, scrive l'impostazione e lo riavvia: Project Zomboid riscrive la propria configurazione allo spegnimento, ed è per questo che la modifica va applicata in questo modo. Self-hosting? La riga si trova in servertest.ini:
DoLuaChecksum=false
Prima di farlo, capisci cosa stai rinunciando. Il controllo è ciò che mantiene ogni sessione su codice identico. Con il controllo disattivato:
- Le discrepanze reali passano. Invece di un'espulsione pulita alla porta ottieni desincronizzazioni, oggetti che si comportano in modo diverso per giocatori diversi e crash del client a metà sessione, molto più difficili da diagnosticare dell'errore che hai appena messo a tacere.
- I file client modificati non vengono più rilevati. Il controllo è anche ciò che nota un giocatore che usa Lua alterato. Su un server pubblico questo conta.
- Non colma differenze di versione reali. Disattivare il controllo su un server molto datato non fa funzionare un vecchio server con un client nuovo: sposta solo il fallimento da un messaggio chiaro a un comportamento imprevedibile. Tra Build 41 e Build 42 non aiuta affatto.
La raccomandazione onesta: usalo per il falso positivo su Linux, oppure come sblocco temporaneo perché il tuo gruppo possa giocare stasera mentre risolvi la discrepanza reale, e poi riattivalo. È uno strumento valido, solo non il primo da usare.
Come evitare che succeda di nuovo
- Lascia che il server segua il gioco. Attiva «esegui sempre l'ultima versione» nella scheda Versione di gioco, e la causa più comune di questo errore smette di esistere.
- Riavvia prima delle sessioni, non durante. Un riavvio è ciò che recupera gli aggiornamenti delle mod della Workshop. Programmarlo prima dell'orario di gioco del tuo gruppo tiene il disallineamento delle mod fuori dalla tua serata.
- Stabilisci la lista delle mod. Più mod ci sono, più programmi di aggiornamento indipendenti sei esposto. Le community che aggiornano le mod in modo deliberato, a blocchi, lo subiscono molto meno di quelle che aggiungono mod in continuazione.
- Scegli una sola build. Decidi come gruppo se giocare Build 42 o Build 41 e assicurati che ogni giocatore sia sul ramo Steam corrispondente.
Un server che si mantiene allineato da solo
Ogni server di Project Zomboid distribuito su Flux include gli strumenti su cui si basa questa guida: un scheda Versione di gioco per gli aggiornamenti delle patch con un clic e il tracciamento automatico dell'ultima versione, un editor Impostazioni del server con il controllo file Lua esposto come semplice interruttore, un Gestore mod che risolve per te gli ID della Workshop e delle mod, più RCON, una console, un browser di file e i backup. La distribuzione richiede circa 30 secondi, con risorse dedicate e protezione DDoS su una rete di nodi in 50+ paesi. Vedi i sezione dei prezzi per i piani attuali, oppure la guida alla configurazione se il tuo server non è ancora online.
FAQ
Cosa significa «file does not match the one on the server»?
Il server ha confrontato i file Lua e degli script caricati dal tuo client con i suoi e ha trovato una differenza, quindi ha rifiutato la connessione. Il file indicato è solo la prima differenza trovata, non la causa.
Come lo risolvo?
Porta entrambi i lati sulla stessa build: aggiorna il server dalla scheda Versione di gioco (oppure attiva gli aggiornamenti automatici), oppure fissa il client alla build del server in Steam, in Proprietà, Versioni di gioco e beta. Se le build coincidono già, risincronizza le mod della Workshop e verifica i file di gioco del client.
Cos'è DoLuaChecksum?
L'impostazione del server, attiva per impostazione predefinita, che esegue questo controllo. Impostarla su false lo disattiva. Su Flux è l'interruttore Controllo file Lua nella scheda Impostazioni del server.
È sicuro disattivarlo?
È una soluzione alternativa, non una correzione. Lascia passare file del client realmente non corrispondenti o modificati, scambiando un'espulsione pulita con desincronizzazioni e crash. È la risposta giusta per il falso positivo su Linux, e uno sblocco temporaneo ragionevole in tutti gli altri casi.
Un client Build 42 può entrare in un server Build 41?
No, e nessuna modifica alle impostazioni del server lo cambia. Tutti devono essere sulla stessa build: porta il server su Build 42, oppure fai passare i giocatori al ramo legacy41 in Steam.
Distribuisci un server di Project Zomboid che si aggiorna da solo →
Continua a leggere
- Il server non compare, o i giocatori non riescono a connettersiQuale porta causa quale sintomo, e perché la 8766 decide se sei in elenco.
- Aggiungere mod della Steam WorkshopIncolla un link della Workshop, imposta l'ordine di caricamento e gestisci le mod delle mappe.
- Come configurare un server di Project ZomboidSteamCMD, i file ini, le porte e le mod, nell'ordine che funziona.
- Requisiti del server: CPU, RAM e porteCosa deve fare davvero l'hardware e come scala con giocatori e mod.