Anleitungen / Fehlerbehebung

Project Zomboid: So behebst du "File Does Not Match the One on the Server"

Es ist die frustrierendste Art, eine Sitzung zu beenden, bevor sie beginnt: Alle sind im Discord-Call, jemand klickt auf Join, und Project Zomboid wirft ihn mit einer Datei, die angeblich nicht zu der auf dem Server passt, direkt wieder raus. Nichts ist kaputt, der Server tut genau das, was ihm gesagt wurde. Dieser Leitfaden erklärt, was die Prüfung tatsächlich vergleicht, warum sie auslöst, wie du jede Ursache richtig behebst und wann es vertretbar ist, sie mit DoLuaChecksum auszuschalten.

Was der Fehler tatsächlich bedeutet

Wenn sich ein Client verbindet, vergleicht der Project-Zomboid-Server die Prüfsumme der Lua- und Skriptdateien, die der Client geladen hat, mit seinen eigenen. Unterscheidet sich eine einzige Datei, wird die Verbindung abgelehnt, und der Spieler sieht eine Meldung, die diese Datei nennt: "file does not match the one on the server" oder einen ihrer nahen Verwandten wie "file doesn't exist on the client" und "Lua/script checksums do not match".

Die Prüfung wird durch die Servereinstellung DoLuaChecksum gesteuert, die standardmäßig aktiviert ist. Ihre Aufgabe ist sicherzustellen, dass alle in der Sitzung denselben Code ausführen: identische Spieldateien und identische Mods. Das ist wichtig, weil Project Zomboid einen großen Teil seiner Logik auf beiden Seiten in Lua ausführt. Ein Client mit anderen Dateien sieht also nicht einfach etwas leicht anderes, sondern desynchronisiert, wirft Fehler und kann beschädigen, was er in die Welt zurückschreibt.

Daraus folgen zwei Dinge, die dir viel vergeudete Zeit ersparen:

  • Die Datei, die genannt wird, ist selten das Problem. Es ist nur der erste Unterschied, auf den der Vergleich gestoßen ist. Dieser konkreten Datei nachzujagen führt nirgendwohin; schau auf warum, dass die beiden Seiten überhaupt unterschiedliche Dateien haben.
  • Es ist ein Symptom, kein Fehler. Auf einer Seite ist etwas eine andere Version. Finde heraus, welche Seite abgedriftet ist, und der Fehler verschwindet von selbst.

Ursache 1: Client und Server laufen auf unterschiedlichen Builds

Das ist die Ursache in der überwältigenden Mehrheit der Fälle. Steam aktualisiert Spieler-Clients automatisch, meist in dem Moment, in dem ein Patch erscheint. Ein Server tut das nicht: Er läuft weiter mit der Version, mit der er bereitgestellt wurde. An dem Tag, an dem The Indie Stone einen neuen Build veröffentlicht, sind bis zum Abend alle Spieler darauf, und der Server ist noch auf dem von letzter Woche, die Prüfsummen passen nicht mehr, und niemand kann beitreten.

Es gibt zwei Wege, die Lücke zu schließen, und du brauchst nur einen davon.

Den Server vorwärts bewegen (empfohlen)

Öffne auf einem bei uns gehosteten Project Zomboid Server den Tab Spielversion im Dashboard. Er zeigt die Version, auf der der Server läuft, und bietet, wenn ein neuerer stabiler Patch veröffentlicht wurde, ein Update mit einem Klick an. Ein Patch-Update behält denselben Tarif, sodass deine Welt, deine servertest.ini und deine Einstellungen es überstehen: Nur die Spieldateien werden ersetzt.

Im selben Tab kannst du "immer die neueste Version ausführen" einschalten. Der Server folgt dann neuen stabilen Releases von selbst und fällt hinter deinen Spielern nie mehr zurück. Das ist die Einstellung für alle, die darüber lieber gar nicht nachdenken wollen, und der Grund, warum dieser Fehler für unsere Kunden weitgehend ein gelöstes Problem ist. Der Kompromiss ist gut zu wissen: Ein automatisches Update kann eintreffen, während eine Mod, auf die du dich verlässt, noch nicht aktualisiert wurde. Stark gemoddete Communities aktualisieren deshalb manchmal lieber manuell, nachdem sie ihre Mod-Liste geprüft haben.

Oder den Client zurücksetzen

Manchmal soll der Server bewusst bleiben, wo er ist, etwa bei einer langlebigen Welt oder einer Mod-Liste, die an einen bestimmten Build gebunden ist. Dann pinnt der Spieler stattdessen seinen Client. Klicke in Steam mit der rechten Maustaste auf Project Zomboid, öffne Eigenschaften → Spielversionen & Betas und wähle die Version, die zum Server passt: legacy41 für einen Build-41-Server, die standardmäßige öffentliche Version für den aktuellen stabilen Build 42 oder einen bestimmten älteren Patch, wenn Steam noch einen anzeigt. Der Client lädt diesen Build herunter, und die Prüfsummen passen wieder zusammen.

Klar gesagt, weil Leute Stunden damit verlieren: ein Build-42-Client kann einem Build-41-Server nicht beitreten, und keine Einstellung auf einer der beiden Seiten ändert das. Die beiden Builds liegen weit genug auseinander, dass sie im Multiplayer effektiv verschiedene Spiele sind. Wenn deine Gruppe gespalten ist, wählt einen Build und lasst alle dorthin wechseln. Unsere Tarife decken beide ab, siehe die Server-Anforderungen für den Vergleich der beiden.

Ursache 2: Workshop-Mods nicht synchron

Die zweite Ursache sind Mods, und sie verhält sich genau gleich: ein Workshop-Element, das auf einer Seite aktualisiert wurde und auf der anderen nicht. Mod-Autoren veröffentlichen nach eigenem Zeitplan, Steam schickt das Update sofort an abonnierte Spieler, und ein laufender Server behält die Kopie, die er beim Boot heruntergeladen hat. Ein Spieler, der den Download noch nicht abgeschlossen hat, oder ein Server, der seit dem Update nicht neu gestartet wurde, reicht aus, um den Mismatch auszulösen.

  • Starte den Server nach einer Welle von Workshop-Updates neu. Mods werden beim Start abgerufen, ein Neustart holt also die aktuellen Versionen. Es vor einer Sitzung zu tun statt währenddessen vermeidet das ganze Problem.
  • Der betroffene Spieler soll deabonnieren und erneut abonnieren. Deabonniere die Mods des Servers, gib Steam eine Minute, die Dateien tatsächlich zu entfernen, abonniere dann erneut und warte, bis der Download abgeschlossen ist, bevor du beitrittst. Eine halb heruntergeladene Mod erzeugt genau diesen Fehler.
  • Prüfe, ob die Mod serverseitig korrekt gelistet ist. Jede Mod braucht ihre numerische Workshop-ID in WorkshopItems und ihre Text-Mod-ID in Mods. Unser Leitfaden zu Steam-Workshop-Mods behandelt dieses Paar im Detail, der Mod-Manager im Dashboard schreibt beides für dich.
  • Verdächtige zuerst die neueste Ergänzung. Wenn der Fehler direkt nach dem Hinzufügen einer Mod begann, entferne sie, starte neu und prüfe, ob das Beitreten klappt. Manche Workshop-Elemente liefern Dateien aus, die nie sauber beim Client ankommen.

Ursache 3: beschädigte oder halb aktualisierte Client-Dateien

Seltener, aber leicht auszuschließen. Wenn ein bestimmter Spieler den Fehler bekommt, während alle anderen auf demselben Build problemlos beitreten, ist seine lokale Installation der Ausreißer. Er soll Steam öffnen, Project Zomboid mit der rechten Maustaste anklicken und Eigenschaften → Lokale Dateien → Integrität der Spieldateien überprüfen nutzen. Steam lädt alles neu herunter, was nicht passt, auch eine Lua-Datei, die ein unterbrochenes Update hinterlassen hat. Wenn die Überprüfung allein nicht reicht, erzwingt das Löschen des Ordners media/lua im Spielverzeichnis und erneutes Überprüfen einen sauberen Neudownload genau der Dateien, die die Prüfsumme abdeckt.

Ursache 4: der Linux-Fehlalarm

Es gibt eine alte Eigenheit, bei der ein Linux-Dedicated-Server einen Mismatch melden kann, obwohl Client- und Serverdateien wirklich übereinstimmen. Dedicated Server, auch unsere, laufen auf Linux, daher ist es gut zu wissen, dass das existiert. Es ist nicht der häufige Fall, und du solltest erst nach den obigen Prüfungen darauf schließen: gleicher Build auf beiden Seiten, Mods neu synchronisiert, Client-Dateien überprüft, und der Fehler tritt trotzdem auf.

Das ist die Situation, in der das Ausschalten der Prüfung die richtige Entscheidung statt einer Abkürzung ist, weil nichts mehr zu beheben ist: Die Dateien stimmen überein, und der Vergleich ist falsch.

Der letzte Ausweg: DoLuaChecksum ausschalten

DoLuaChecksum=false zu setzen deaktiviert den Vergleich, sodass der Server Clients nicht mehr wegen Dateiunterschieden ablehnt. Es ist der Workaround, der überall zitiert wird, und er funktioniert tatsächlich.

Auf einem bei uns gehosteten Server musst du nichts von Hand bearbeiten: Öffne den Tab Servereinstellungen und schalte Lua-Dateiprüfung unter Zugang & Admin aus. Das Dashboard stoppt den Server, schreibt die Einstellung und startet ihn neu. Project Zomboid schreibt seine eigene Konfiguration beim Herunterfahren neu, weshalb die Änderung so angewendet werden muss. Hostest du selbst? Die Zeile steht in der servertest.ini:

DoLuaChecksum=false

Bevor du das tust, verstehe, was du aufgibst. Die Prüfung sorgt dafür, dass jede Sitzung auf identischem Code läuft. Wenn sie aus ist:

  • Echte Mismatches kommen durch. Statt eines sauberen Kicks an der Tür bekommst du Desyncs, Gegenstände, die sich für verschiedene Spieler unterschiedlich verhalten, und Client-Abstürze mitten in der Sitzung, viel schwerer zu diagnostizieren als der Fehler, den du gerade zum Schweigen gebracht hast.
  • Modifizierte Client-Dateien werden nicht mehr erkannt. Die Prüfung ist auch das, was einen Spieler bemerkt, der veränderten Lua-Code laufen lässt. Auf einem öffentlichen Server ist das wichtig.
  • Es überbrückt keine echten Versionsunterschiede. Die Prüfung bei einem stark veralteten Server zu deaktivieren, lässt einen alten Server nicht mit einem neuen Client funktionieren, sondern verschiebt den Fehler nur von einer klaren Meldung zu unvorhersehbarem Verhalten. Über Build 41 und Build 42 hinweg hilft es überhaupt nicht.

Die ehrliche Empfehlung: Nutze es für den Linux-Fehlalarm oder als vorübergehende Entsperrung, damit deine Gruppe heute Abend spielen kann, während du den echten Mismatch klärst, und schalte es dann wieder ein. Es ist ein gültiges Werkzeug, nur nicht das erste, zu dem man greifen sollte.

So verhinderst du, dass es wieder passiert

  • Lass den Server dem Spiel folgen. Aktiviere "immer die neueste Version ausführen" im Tab Spielversion, und die häufigste Ursache dieses Fehlers existiert nicht mehr.
  • Starte vor den Sitzungen neu, nicht währenddessen. Ein Neustart holt Workshop-Mod-Updates. Plane ihn vor der Spielzeit deiner Gruppe ein, dann bleibt Mod-Drift aus deinem Abend heraus.
  • Lege die Mod-Liste fest. Je mehr Mods, desto mehr unabhängigen Update-Zeitplänen bist du ausgesetzt. Communities, die Mods bewusst in Stapeln aktualisieren, sehen das weit seltener als solche, die ständig Mods hinzufügen.
  • Einigt euch auf einen Build. Entscheidet als Gruppe zwischen Build 42 oder Build 41 und stellt sicher, dass jeder Spieler auf dem passenden Steam-Branch ist.

Ein Server, der sich selbst auf Stand hält

Jeder auf Flux bereitgestellte Project Zomboid Server wird mit den Werkzeugen ausgeliefert, auf die sich dieser Leitfaden stützt: ein Tab Spielversion für Patch-Updates mit einem Klick und automatische Verfolgung der neuesten Version, ein Servereinstellungen-Editor, der die Lua-Dateiprüfung als einfachen Schalter zeigt, einen Mod-Manager, der Workshop- und Mod-IDs für dich ermittelt, dazu RCON, eine Konsole, einen Dateibrowser und Backups. Die Bereitstellung dauert etwa 30 Sekunden, mit dedizierten Ressourcen und DDoS-Schutz in einem Netzwerk aus Nodes in 50+ Ländern. Siehe die Tarifbereich für die aktuellen Tarife oder den Einrichtungsleitfaden, falls dein Server noch nicht läuft.

FAQ

Was bedeutet "file does not match the one on the server"?

Der Server hat die Lua- und Skriptdateien, die dein Client geladen hat, mit seinen eigenen verglichen und einen Unterschied gefunden, daher hat er die Verbindung verweigert. Die genannte Datei ist nur der erste gefundene Unterschied, nicht die Ursache.

Wie behebe ich das?

Bringt beide Seiten auf denselben Build: Aktualisiere den Server im Tab Spielversion (oder aktiviere automatische Updates) oder pinne den Client in Steam unter Spielversionen & Betas auf den Build des Servers. Wenn die Builds bereits übereinstimmen, synchronisiere die Workshop-Mods neu und überprüfe die Spieldateien des Clients.

Was ist DoLuaChecksum?

Die Servereinstellung, standardmäßig an, die diese Prüfung durchführt. Setzt du sie auf false, wird sie deaktiviert. Auf Flux ist es der Schalter Lua-Dateiprüfung im Tab Servereinstellungen.

Ist es sicher, es auszuschalten?

Es ist ein Workaround, keine Lösung. Es lässt wirklich abweichende oder modifizierte Client-Dateien durch und tauscht einen sauberen Kick gegen Desyncs und Abstürze. Es ist die richtige Antwort für den Linux-Fehlalarm und sonst eine vertretbare vorübergehende Entsperrung.

Kann ein Build-42-Client einem Build-41-Server beitreten?

Nein, und keine Servereinstellung ändert das. Alle müssen auf demselben Build sein: Bring den Server auf Build 42 oder lass die Spieler in Steam auf den Branch legacy41 wechseln.

Stelle einen Project Zomboid Server bereit, der sich selbst aktualisiert →