Panduan / Pemecahan Masalah

Project Zomboid: Cara Memperbaiki "File Does Not Match the One on the Server"

Ini cara paling menjengkelkan untuk mengakhiri sesi sebelum dimulai: semua orang ada di panggilan Discord, seseorang menekan Join, dan Project Zomboid langsung mengeluarkan mereka dengan pesan file yang konon tidak cocok dengan yang ada di server. Tidak ada yang rusak, server justru melakukan persis apa yang diperintahkan. Panduan ini menjelaskan apa yang sebenarnya dibandingkan pengecekan, mengapa ia terpicu, cara memperbaiki setiap penyebab dengan benar, dan kapan wajar untuk mematikannya dengan DoLuaChecksum.

Apa arti error ini sebenarnya

Saat klien terhubung, server Project Zomboid membandingkan checksum file Lua dan script yang dimuat klien dengan miliknya sendiri. Jika satu file saja berbeda, koneksi ditolak dan pemain melihat pesan yang menyebutkan file itu: "file does not match the one on the server", atau salah satu kerabatnya seperti "file doesn't exist on the client" dan "Lua/script checksums do not match".

Pengecekan dikendalikan oleh pengaturan server DoLuaChecksum, yang aktif secara default. Tugasnya memastikan semua orang dalam sesi menjalankan kode yang sama: file game dan mod yang identik. Ini penting karena Project Zomboid menjalankan banyak logika dalam Lua di kedua sisi, sehingga klien dengan file berbeda tidak sekadar melihat sesuatu yang sedikit berbeda, melainkan desync, memunculkan error, dan bisa merusak apa yang dituliskannya kembali ke dunia.

Dua hal mengikuti dari itu, dan keduanya menghemat banyak waktu yang terbuang:

  • File yang disebutkan jarang menjadi masalahnya. Itu hanya perbedaan pertama yang ditemukan perbandingan. Mengejar file spesifik itu tidak membawa ke mana-mana; lihat mengapa kedua sisi memang memiliki file yang berbeda.
  • Ini gejala, bukan kesalahan. Ada sesuatu di satu sisi yang versinya berbeda. Temukan sisi mana yang menyimpang dan error akan hilang dengan sendirinya.

Penyebab 1: klien dan server berada di build yang berbeda

Ini penyebab pada sebagian besar kasus. Steam memperbarui klien pemain secara otomatis, biasanya tepat saat patch dirilis. Server tidak demikian, ia terus menjalankan versi yang dideploy. Pada hari The Indie Stone merilis build baru, setiap pemain sudah berada di build itu pada malam harinya sementara server masih di versi minggu lalu, sehingga checksum tidak lagi cocok dan tidak ada yang bisa join.

Ada dua cara untuk menutup celah ini, dan kamu hanya perlu salah satunya.

Majukan server (disarankan)

Di server Project Zomboid yang kami host, buka tab Game Version di dashboard. Tab ini menampilkan versi yang sedang dijalankan server dan, saat patch stabil yang lebih baru sudah dirilis, menawarkan update sekali klik. Update patch mempertahankan paket yang sama, sehingga dunia kamu, servertest.ini kamu, dan pengaturanmu tetap bertahan, hanya file game yang diganti.

Di tab yang sama kamu bisa mengaktifkan "always run the latest version". Server kemudian mengikuti rilis stabil baru dengan sendirinya dan tidak pernah tertinggal lagi dari pemainmu. Itulah pengaturan yang disarankan jika kamu lebih memilih untuk tidak memikirkan ini sama sekali, dan alasan mengapa error ini sebagian besar sudah teratasi bagi pelanggan kami. Ada trade-off yang layak diketahui: update otomatis bisa datang saat mod yang kamu andalkan belum diperbarui, sehingga komunitas dengan banyak mod kadang lebih memilih update manual setelah memeriksa daftar mod mereka.

Atau kembalikan klien

Kadang kamu memang ingin server tetap di tempatnya, misalnya dunia yang sudah berjalan lama, atau daftar mod yang dikunci pada build tertentu. Dalam kasus itu pemain menyematkan klien mereka. Di Steam, klik kanan Project Zomboid, buka Properties → Game Versions & Betas, dan pilih versi yang cocok dengan server: legacy41 untuk server Build 41, versi publik default untuk stable Build 42 saat ini, atau patch lama tertentu jika Steam masih mencantumkannya. Klien akan mengunduh build itu dan checksum kembali selaras.

Perlu dinyatakan dengan jelas, karena orang kehilangan berjam-jam karenanya: klien Build 42 tidak bisa join server Build 41, dan tidak ada pengaturan di kedua sisi yang bisa mengubahnya. Kedua build terlalu berjauhan sehingga secara efektif adalah game yang berbeda dalam multiplayer. Jika grupmu terpecah, pilih satu build dan minta semua orang pindah ke sana. Paket kami mencakup keduanya, lihat persyaratan server untuk perbandingan keduanya.

Penyebab 2: mod Workshop tidak sinkron

Penyebab kedua adalah mod, dan perilakunya sama persis: item Workshop diperbarui di satu sisi dan tidak di sisi lain. Pembuat mod menerbitkan sesuai jadwal mereka sendiri, Steam langsung mengirimkan pembaruan ke pemain yang berlangganan, dan server yang berjalan menyimpan salinan yang diunduhnya saat boot. Satu pemain yang belum selesai mengunduh, atau server yang belum di-restart sejak update, sudah cukup untuk memicu ketidakcocokan.

  • Restart server setelah gelombang update Workshop. Mod diambil saat startup, jadi restart adalah yang menarik versi terbaru saat ini. Melakukannya sebelum sesi, bukan saat sesi berlangsung, menghindari seluruh masalah ini.
  • Minta pemain yang terdampak untuk berhenti berlangganan lalu langganan ulang. Berhenti berlangganan dari mod server, beri Steam waktu semenit untuk benar-benar menghapus file, lalu langganan ulang dan tunggu unduhan selesai sebelum join. Mod yang setengah terunduh menghasilkan error persis seperti ini.
  • Pastikan mod tercantum dengan benar di sisi server. Setiap mod membutuhkan Workshop ID numerik di WorkshopItems dan Mod ID berupa teks di Mods. Panduan mod Steam Workshop kami membahas pasangan ini secara rinci, dan Mod Manager di dashboard menuliskan keduanya untukmu.
  • Curigai tambahan terbaru terlebih dahulu. Jika error muncul tepat setelah mod ditambahkan, hapus mod itu, restart, lalu lihat apakah join berhasil. Beberapa item Workshop berisi file yang tidak pernah sampai ke klien dengan bersih.

Penyebab 3: file klien yang rusak atau setengah terupdate

Kurang umum, tetapi mudah disingkirkan. Jika satu pemain tertentu mendapatkan error sementara semua orang di build yang sama bisa join dengan baik, instalasi lokal mereka yang berbeda. Minta mereka membuka Steam, klik kanan Project Zomboid, dan gunakan Properties → Installed Files → Verify integrity of game files. Steam akan mengunduh ulang apa pun yang tidak cocok, termasuk file Lua yang tertinggal akibat update yang terganggu. Jika verifikasi saja tidak cukup, hapus folder media/lua di dalam direktori game lalu verifikasi lagi, sehingga file yang dicakup checksum diunduh ulang dengan bersih.

Penyebab 4: false positive di Linux

Ada masalah lama di mana Server dedicated Linux bisa melaporkan ketidakcocokan padahal file klien dan server sebenarnya sama. Server dedicated, termasuk milik kami, berjalan di Linux, jadi perlu diketahui bahwa ini ada. Ini bukan kasus yang umum, dan kamu hanya boleh menyimpulkan bahwa kamu terkena ini setelah memeriksa hal-hal di atas: build sama di kedua sisi, mod sudah di-sync ulang, file klien sudah diverifikasi, dan error masih muncul.

Ini adalah situasi di mana mematikan pengecekan adalah keputusan yang tepat, bukan jalan pintas, karena tidak ada lagi yang perlu diperbaiki: file sudah cocok dan perbandingannya yang salah.

Pilihan terakhir: mematikan DoLuaChecksum

Mengatur DoLuaChecksum=false menonaktifkan perbandingan, sehingga server berhenti menolak klien karena perbedaan file. Ini solusi yang banyak dikutip di mana-mana, dan memang berfungsi.

Di server yang kami host, kamu tidak perlu mengedit apa pun secara manual: buka tab Server Settings dan ubah Lua File Check menjadi off di bagian Access & Admin. Dashboard akan menghentikan server, menuliskan pengaturan, lalu me-restart-nya. Project Zomboid menulis ulang konfigurasinya sendiri saat shutdown, itulah sebabnya perubahan harus diterapkan dengan cara itu. Self-hosting? Baris ini ada di servertest.ini:

DoLuaChecksum=false

Sebelum kamu melakukannya, pahami apa yang kamu korbankan. Pengecekan ini yang menjaga setiap sesi tetap memakai kode yang identik. Jika dimatikan:

  • Ketidakcocokan yang sebenarnya tetap lolos. Alih-alih kick yang bersih di pintu, kamu mendapatkan desync, item yang berperilaku berbeda untuk pemain yang berbeda, dan crash klien di tengah sesi, yang jauh lebih sulit didiagnosis daripada error yang baru saja kamu bungkam.
  • File klien yang sudah diubah tidak lagi terdeteksi. Pengecekan ini juga yang mendeteksi pemain yang menjalankan Lua yang sudah diubah. Di server publik, ini penting.
  • Ini tidak menjembatani celah versi yang sebenarnya. Menonaktifkan pengecekan pada server yang sudah sangat usang tidak membuat server lama bisa bekerja dengan klien baru, justru hanya memindahkan kegagalan dari pesan yang jelas menjadi perilaku yang tidak bisa diprediksi. Antara Build 41 dan Build 42, ini sama sekali tidak membantu.

Rekomendasi yang jujur: gunakan untuk false positive Linux, atau sebagai pembukaan blokir sementara agar grupmu bisa bermain malam ini sambil membereskan ketidakcocokan yang sebenarnya, lalu aktifkan kembali. Ini alat yang sah, hanya saja bukan yang pertama kali harus diraih.

Cara mencegahnya terjadi lagi

  • Biarkan server mengikuti game. Aktifkan "always run the latest version" di tab Game Version, dan penyebab paling umum dari error ini tidak akan terjadi lagi.
  • Restart sebelum sesi, bukan saat sesi berlangsung. Restart adalah cara mengambil pembaruan mod Workshop. Menjadwalkannya sebelum jam bermain grupmu menjaga drift mod tetap jauh dari malammu.
  • Rapikan daftar mod. Semakin banyak mod, semakin banyak jadwal update independen yang kamu hadapi. Komunitas yang memperbarui mod secara sengaja, dalam batch, jauh lebih jarang mengalaminya dibanding komunitas yang terus-menerus menambahkan mod.
  • Sepakati satu build. Tentukan Build 42 atau Build 41 sebagai grup dan pastikan setiap pemain berada di cabang Steam yang sesuai.

Server yang menjaga dirinya tetap selaras

Setiap server Project Zomboid yang di-deploy di Flux dilengkapi alat yang diandalkan panduan ini: tab Game Version untuk update patch sekali klik dan pelacakan versi terbaru otomatis, editor Server Settings dengan pengecekan Lua file ditampilkan sebagai toggle sederhana, Mod Manager yang menyelesaikan Workshop dan Mod ID untukmu, plus RCON, konsol, browser file, dan backup. Deployment memakan waktu sekitar 30 detik, dengan resource khusus dan proteksi DDoS di jaringan node di 50+ negara. Lihat bagian harga untuk paket terkini, atau panduan setup jika server kamu belum berjalan.

FAQ

Apa arti "file does not match the one on the server"?

Server membandingkan file Lua dan script yang dimuat klienmu dengan miliknya dan menemukan perbedaan, sehingga koneksi ditolak. File yang disebutkan hanyalah perbedaan pertama yang ditemukan, bukan penyebabnya.

Bagaimana cara memperbaikinya?

Samakan kedua sisi ke build yang sama: update server dari tab Game Version (atau aktifkan update otomatis), atau pin klien ke build server di Steam pada Properties → Game Versions & Betas. Jika build sudah cocok, sync ulang mod Workshop dan verifikasi file game klien.

Apa itu DoLuaChecksum?

Pengaturan server, aktif secara default, yang melakukan pengecekan ini. Mengaturnya ke false menonaktifkannya. Di Flux, ini adalah toggle Lua File Check di tab Server Settings.

Apakah aman untuk dimatikan?

Ini solusi sementara, bukan perbaikan. Ini membiarkan file klien yang benar-benar tidak cocok atau yang sudah diubah lolos, dengan mengorbankan kick yang bersih untuk desync dan crash. Ini jawaban yang tepat untuk false positive Linux, dan pembukaan blokir sementara yang masuk akal di luar itu.

Bisakah klien Build 42 join server Build 41?

Tidak, dan tidak ada perubahan pengaturan server yang melakukannya. Semua orang harus berada di build yang sama: pindahkan server ke Build 42, atau minta pemain beralih ke cabang legacy41 di Steam.

Deploy server Project Zomboid yang memperbarui dirinya sendiri →