Αυτός ο οδηγός καλύπτει την προχωρημένη αντιμετώπιση προβλημάτων mod για διακομιστές Project Zomboid που φιλοξενούνται με το Legion Hosting. Εάν δεν έχετε ακόμη εγκαταστήσει mods, ξεκινήστε πρώτα με τον βασικό οδηγό εγκατάστασης mod. Αυτό το άρθρο αντιμετωπίζει τα πιο συνηθισμένα προβλήματα σχετικά με mods που παρατηρούνται στα αιτήματα υποστήριξης του Legion Hosting, συμπεριλαμβανομένης της καταστροφής του WorldDictionary, των σφαλμάτων μορφής mod, των συγκρούσεων σειράς φόρτωσης και των ασυμφωνιών έκδοσης μεταξύ διακομιστή και client.
Πριν Ξεκινήσετε
- Συνδεθείτε στο GPanel και επιλέξτε τον διακομιστή σας Project Zomboid.
- Σταματήστε τον διακομιστή σας πριν κάνετε οποιεσδήποτε αλλαγές διαμόρφωσης ή αρχείων.
- Κάντε αντίγραφο ασφαλείας του φακέλου αποθήκευσης κόσμου σας (
/.cache/saves/multiplayer/) μέσω SFTP ή GPanel πριν επιχειρήσετε οποιαδήποτε λύση. Δείτε τον οδηγό SFTP εάν δεν είστε εξοικειωμένοι με τις μεταφορές αρχείων. - Έχετε έτοιμη τη διαδρομή του αρχείου
.iniτου διακομιστή σας:/.cache/server/<servername>.ini(π.χ.servertest.ini).
1. Σφάλματα Μορφής Mod (B42 vs B41)
Ο πιο συνηθισμένος λόγος για τον οποίο τα mods αποτυγχάνουν να φορτωθούν είναι μια εσφαλμένη μορφή στη γραμμή Mods= του αρχείου .ini του διακομιστή σας. Το Build 42 και το Build 41 χρησιμοποιούν διαφορετική σύνταξη, και η ανάμειξή τους θα αποτύχει σιωπηλά να φορτώσει τα mods σας.
Μορφή B42 (Τρέχουσα Προεπιλογή)
Το Build 42 απαιτεί ένα πρόθεμα backslash πριν από κάθε Mod ID στη γραμμή Mods=:
Mods=\ModID1;\ModID2;\ModID3;
Η μορφή DLMP συνδυάζει Workshop IDs και Mod IDs με έναν διαχωριστή backslash:
Mods=2392987841\ModID1;1550458773\ModID2;2786383654\ModID3;
Η γραμμή WorkshopItems= χρησιμοποιεί την ίδια μορφή διαχωρισμένη με ερωτηματικά και στα δύο builds:
WorkshopItems=2392987841;1550458773;2786383654
Μορφή B41 (Παλαιά)
Το Build 41 χρησιμοποιεί απλά Mod IDs διαχωρισμένα με ερωτηματικά χωρίς backslash:
Mods=ModID1;ModID2;ModID3
Mods= ώστε να περιλαμβάνει το πρόθεμα backslash.
Πώς να το Διορθώσετε
- Ανοίξτε το
/.cache/server/<servername>.iniστον File Manager του GPanel. - Βρείτε τη γραμμή
Mods=και ελέγξτε τη μορφή σε σχέση με τα παραπάνω παραδείγματα. - Εάν η μορφή είναι λανθασμένη για την έκδοση του build σας, διορθώστε την. Χρησιμοποιήστε το Legion Hosting Mod Organizer για να δημιουργήσετε αυτόματα σωστά μορφοποιημένες γραμμές.
- Αποθηκεύστε το αρχείο και ξεκινήστε τον διακομιστή.
2. Καταστροφή WorldDictionary
Το WorldDictionary είναι ένα αρχείο (WorldDictionary.bin) που αντιστοιχίζει ονόματα αντικειμένων σε εσωτερικά αριθμητικά IDs. Όταν προστίθενται ή αφαιρούνται mods, το dictionary μπορεί να καταστραφεί, προκαλώντας το κρασάρισμα του διακομιστή κατά την εκκίνηση με ένα WorldDictionaryException.
Συμπτώματα
- Η κονσόλα ή το
debug.logεμφανίζει σφάλματαWorldDictionaryExceptionήWorldDictionary. - Ο διακομιστής κρασάρει αμέσως κατά την εκκίνηση, συγκεκριμένα κατά τη φόρτωση του κόσμου.
- Το κρασάρισμα ξεκίνησε μετά την προσθήκη, αφαίρεση ή ενημέρωση mods.
Κατανόηση του Κινδύνου
Βήματα Ανάκτησης
- Σταματήστε τον διακομιστή σας στο GPanel.
- Κάντε αντίγραφο ασφαλείας ολόκληρου του φακέλου αποθήκευσής σας μέσω SFTP: κατεβάστε τον πλήρη κατάλογο
/.cache/saves/multiplayer/<YourWorldName>/στον τοπικό σας υπολογιστή. - Πρώτα, δοκιμάστε απλώς να αναιρέσετε την αλλαγή mod που προκάλεσε το σφάλμα. Εάν μόλις προσθέσατε ένα mod, αφαιρέστε το και από το
Mods=και από τοWorkshopItems=στο αρχείο.ini. Εάν μόλις αφαιρέσατε ένα mod, προσθέστε το ξανά. Ξεκινήστε τον διακομιστή και δείτε αν το κρασάρισμα επιλύθηκε. - Εάν η αναίρεση της αλλαγής mod δεν λειτουργήσει, συνδεθείτε μέσω SFTP και μεταβείτε στο
/.cache/saves/multiplayer/<YourWorldName>/. - Διαγράψτε το
WorldDictionary.bin. - Ξεκινήστε τον διακομιστή. Το Project Zomboid θα αναδημιουργήσει το dictionary κατά την εκκίνηση.
- Συνδεθείτε στον διακομιστή και επιθεωρήστε τον κόσμο για κατεστραμμένα αντικείμενα, οχήματα που λείπουν ή χαλασμένες αποθήκες. Εάν ο κόσμος έχει υποστεί σοβαρή ζημιά, επαναφέρετε από το αντίγραφο ασφαλείας που δημιουργήσατε στο βήμα 2.
3. Συγκρούσεις Mod Authentic Z
Το Authentic Z είναι μία από τις πιο δημοφιλείς συλλογές mod του Project Zomboid, αλλά αποτελεί συχνή πηγή αιτημάτων υποστήριξης επειδή περιέχει πολλαπλά υπο-mods που συγκρούονται μεταξύ τους.
Ο Κανόνας
Authentic Z - Current.
Συνήθη Λάθη
- Προσθήκη και του
Authentic Z - Currentκαι τουAuthentic Z - Litemodeταυτόχρονα. - Προσθήκη υπο-mods Authentic Z που έχουν σχεδιαστεί για singleplayer μαζί με την έκδοση multiplayer.
- Η μη συνειδητοποίηση ότι διαφορετικά υπο-mods Authentic Z μοιράζονται το ίδιο Workshop ID αλλά έχουν διαφορετικά Mod IDs, οπότε η λήψη από το Workshop πετυχαίνει αλλά ο διακομιστής φορτώνει αρχεία mod που συγκρούονται.
Πώς να το Διορθώσετε
- Ανοίξτε το
/.cache/server/<servername>.iniστον File Manager του GPanel. - Αναζητήστε στη γραμμή
Mods=κάθε καταχώρηση που περιέχειAuthenticήAuthenticZ. - Κρατήστε μόνο ένα υπο-mod Authentic Z (συνιστάται:
Authentic Z - Current). Αφαιρέστε όλες τις άλλες καταχωρήσεις Authentic Z και από τις γραμμέςMods=καιWorkshopItems=. - Αποθηκεύστε το αρχείο και επανεκκινήστε τον διακομιστή.
4. Προβλήματα Ευαισθησίας Πεζών-Κεφαλαίων στο Linux
Οι διακομιστές του Legion Hosting εκτελούνται σε Linux, όπου τα ονόματα αρχείων και φακέλων είναι ευαίσθητα σε πεζά-κεφαλαία. Ένα αρχείο με όνομα MyMod.lua και ένα mymod.lua αντιμετωπίζονται ως δύο εντελώς διαφορετικά αρχεία. Αυτό προκαλεί προβλήματα όταν οι δημιουργοί mod αναπτύσσουν σε Windows (μη ευαίσθητα σε πεζά-κεφαλαία) και τα mods τους περιέχουν αναφορές αρχείων που δεν ταιριάζουν.
Συμπτώματα
- Ένα mod λειτουργεί τέλεια σε singleplayer στον υπολογιστή σας με Windows αλλά αποτυγχάνει στον διακομιστή.
- Η κονσόλα ή το
debug.logεμφανίζει σφάλματαFileNotFoundExceptionήcan't find fileπου αναφέρονται σε ένα script Lua ή texture μέσα σε ένα mod. - Το σφάλμα δείχνει σε ένα αρχείο που όντως υπάρχει στον φάκελο του mod, αλλά με διαφορετική κεφαλαιοποίηση (π.χ. ο κώδικας αναφέρεται στο
Items.txtαλλά το πραγματικό αρχείο ονομάζεταιitems.txt).
Πώς να το Διαγνώσετε
- Ελέγξτε την κονσόλα ή τα αρχεία καταγραφής στο
/.cache/Logs/για την ακριβή διαδρομή αρχείου που αναφέρεται στο σφάλμα. - Συνδεθείτε μέσω SFTP και μεταβείτε στον φάκελο του mod στο
/steamapps/workshop/content/108600/<WorkshopID>/. - Συγκρίνετε τα ονόματα αρχείων στον δίσκο με το όνομα αρχείου που αναφέρεται στο μήνυμα σφάλματος. Αναζητήστε διαφορές στην κεφαλαιοποίηση.
Πώς να το Διορθώσετε
- Εάν μπορείτε να μετονομάσετε το αρχείο: Συνδεθείτε μέσω SFTP και μετονομάστε το αρχείο ώστε να ταιριάζει με την κεφαλαιοποίηση που αναμένει ο κώδικας του mod. Σημειώστε ότι αυτή η διόρθωση θα αντικατασταθεί εάν το mod ενημερωθεί στο Steam Workshop.
- Εάν το πρόβλημα βρίσκεται στο ίδιο το mod: Αναφέρετε το bug στον δημιουργό του mod στη σελίδα του Steam Workshop. Αναφέρετε ότι η αναφορά αρχείου έχει ασυμφωνία πεζών-κεφαλαίων και ότι αποτυγχάνει σε διακομιστές Linux. Πολλοί δημιουργοί mod δεν γνωρίζουν την ευαισθησία πεζών-κεφαλαίων του Linux.
- Ως λύση παράκαμψης: Ελέγξτε τα σχόλια στη σελίδα Workshop του mod — άλλοι χειριστές διακομιστών Linux μπορεί να έχουν αναρτήσει μια διόρθωση ή ένα συμβατό fork του mod.
5. Προβλήματα Σειράς Φόρτωσης Mod
Το Project Zomboid φορτώνει τα mods με τη σειρά που εμφανίζονται στη γραμμή Mods=. Ορισμένα mods εξαρτώνται από το να φορτωθούν πρώτα άλλα mods. Εάν μια εξάρτηση φορτωθεί μετά το mod που τη χρειάζεται, το εξαρτώμενο mod μπορεί να αποτύχει σιωπηλά ή να προκαλέσει σφάλματα.
Συμπτώματα
- Οι λειτουργίες του mod λειτουργούν μερικώς — ορισμένα αντικείμενα ή συστήματα από ένα mod είναι παρόντα αλλά άλλα λείπουν.
- Η κονσόλα εμφανίζει σφάλματα
NullPointerExceptionήattempt to index a nil valueπου αναφέρονται στα scripts Lua ενός mod. - Τα σφάλματα εμφανίζονται μόνο όταν είναι εγκατεστημένος ένας συγκεκριμένος συνδυασμός mods, αλλά κάθε mod λειτουργεί μια χαρά μεμονωμένα.
Πώς να το Διορθώσετε
- Ελέγξτε τη σελίδα Steam Workshop κάθε mod για μια ενότητα «Required Mods» ή «Load Order». Πολλοί δημιουργοί mod καθορίζουν ποια mods πρέπει να φορτωθούν πριν από τα δικά τους.
- Ανοίξτε το
/.cache/server/<servername>.iniκαι βρείτε τη γραμμήMods=. - Αναδιατάξτε τις καταχωρήσεις ώστε τα mods εξάρτησης να εμφανίζονται πριν από τα mods που τα χρειάζονται. Για παράδειγμα, εάν το Mod B χρειάζεται το Mod A, η γραμμή θα πρέπει να είναι
Mods=\ModA;\ModB;(μορφή B42). - Τα mods framework και βιβλιοθηκών (όπως
ModFramework,TsarLibήShark's Mod Utils) θα πρέπει πάντα να αναφέρονται πρώτα στη γραμμήMods=. - Αποθηκεύστε το αρχείο και επανεκκινήστε τον διακομιστή.
6. Κρασαρίσματα Διακομιστή Μετά την Προσθήκη Mods
Εάν ο διακομιστής σας λειτουργούσε κανονικά και κρασάρει μετά την προσθήκη ενός ή περισσότερων mods, το νέο mod είναι πιθανότατα η αιτία. Αυτή η ενότητα σας καθοδηγεί στην απομόνωση του προβληματικού mod.
Απομόνωση Βήμα προς Βήμα
- Σταματήστε τον διακομιστή στο GPanel.
- Ανοίξτε το
/.cache/server/<servername>.iniστον File Manager. - Σημειώστε όλα τα mods που μόλις προσθέσατε. Αφαιρέστε όλα τους και από τις γραμμές
Mods=καιWorkshopItems=. - Ξεκινήστε τον διακομιστή. Εάν ξεκινήσει με επιτυχία, το πρόβλημα βρίσκεται σε ένα από τα mods που αφαιρέσατε.
- Προσθέστε τα mods ξανά ένα τη φορά, επανεκκινώντας τον διακομιστή μετά από κάθε προσθήκη. Όταν επιστρέψει το κρασάρισμα, το τελευταίο mod που προσθέσατε είναι η αιτία.
- Μόλις εντοπιστεί, ελέγξτε τη σελίδα Workshop του mod για:
- Μια σημείωση σχετικά με τη συμβατότητα B42 — πολλά mods B41 δεν έχουν ενημερωθεί για το B42.
- Γνωστές συγκρούσεις με άλλα mods που εκτελείτε.
- Απαιτούμενα mods εξάρτησης που μπορεί να μην έχετε εγκαταστήσει.
Ανάγνωση του Crash Log
Πριν εκτελέσετε τη διαδικασία απομόνωσης, ελέγξτε το crash log — συχνά δείχνει απευθείας στο προβληματικό mod:
- Στο GPanel, ανοίξτε την καρτέλα Console και κάντε κύλιση μέχρι το τέλος της εξόδου.
- Αναζητήστε γραμμές
STACK TRACE,ExceptionήERROR. - Οι γραμμές αμέσως πάνω από το stack trace συνήθως αναφέρονται σε ένα όνομα αρχείου mod ή σε ένα Mod ID — αυτό σας λέει ποιο mod προκάλεσε το κρασάρισμα.
- Για περισσότερες λεπτομέρειες, ανοίξτε το πλήρες αρχείο καταγραφής μέσω SFTP στο
/.cache/Logs/και ελέγξτε το πιο πρόσφατο αρχείοDebugLog-server.txtήdebug.log.
7. Ασυμφωνίες Έκδοσης Mod (Διακομιστής vs Client)
Το Project Zomboid απαιτεί ο διακομιστής και όλοι οι συνδεδεμένοι clients να έχουν την ίδια έκδοση κάθε mod. Εάν ένα mod ενημερωθεί στο Steam Workshop και ο διακομιστής κατεβάσει τη νέα έκδοση αλλά ένας παίκτης εξακολουθεί να έχει την παλιά έκδοση στην cache (ή το αντίστροφο), θα προκύψουν αποτυχίες σύνδεσης ή κρασαρίσματα.
Συμπτώματα
- Οι παίκτες λαμβάνουν ένα σφάλμα «Mod mismatch» ή «Version mismatch» όταν προσπαθούν να συνδεθούν.
- Ορισμένοι παίκτες μπορούν να συνδεθούν αλλά άλλοι όχι — εκείνοι που δεν μπορούν να συνδεθούν έχουν διαφορετική έκδοση mod αποθηκευμένη τοπικά.
- Ο διακομιστής λειτουργούσε κανονικά, μετά ένα mod ενημερώθηκε στο Steam Workshop και ξαφνικά ορισμένοι παίκτες δεν μπορούν να συμμετάσχουν.
- Οι παίκτες βλέπουν textures, αντικείμενα ή στοιχεία UI που λείπουν από mods που ενημερώθηκαν πρόσφατα.
Διόρθωση για Χειριστές Διακομιστή
- Σταματήστε τον διακομιστή στο GPanel.
- Ξεκινήστε ξανά τον διακομιστή. Κατά την εκκίνηση, ο διακομιστής επανακατεβάζει τις πιο πρόσφατες εκδόσεις όλων των mods του Workshop. Αυτό διασφαλίζει ότι ο διακομιστής εκτελεί τη νεότερη έκδοση.
- Εάν ο διακομιστής εξακολουθεί να έχει αποθηκευμένη μια παλιά έκδοση, συνδεθείτε μέσω SFTP και διαγράψτε τον φάκελο cache Workshop του συγκεκριμένου mod στο
/steamapps/workshop/content/108600/<WorkshopID>/. Επανεκκινήστε τον διακομιστή για να εξαναγκάσετε μια καθαρή λήψη.
Διόρθωση για Παίκτες
Οι παίκτες που δεν μπορούν να συνδεθούν λόγω ασυμφωνιών έκδοσης mod θα πρέπει:
- Να ανοίξουν το Steam και να μεταβούν στο Library → Project Zomboid.
- Να κάνουν δεξί κλικ στο Project Zomboid, να επιλέξουν Properties → Local Files → Verify Integrity of Game Files.
- Να μεταβούν επίσης στον φάκελο Steam Workshop για το Project Zomboid στον τοπικό τους υπολογιστή και να διαγράψουν τα αποθηκευμένα αρχεία mod για να εξαναγκάσουν μια εκ νέου λήψη.
- Να εκκινήσουν το παιχνίδι και να συνδεθούν ξανά στον διακομιστή.
/.cache/mods/ στον διακομιστή αντί να χρησιμοποιήσετε την αυτόματη ενημέρωση Workshop. Αφαιρέστε το αντίστοιχο Workshop ID από τη γραμμή WorkshopItems= για να αποτρέψετε τις αυτόματες ενημερώσεις. Δείτε τον οδηγό εγκατάστασης mod για οδηγίες εγκατάστασης mod εκτός Workshop.
8. Εκκαθάριση της Cache του Steam Workshop
Εάν επιμένουν πολλαπλά προβλήματα mod και υποψιάζεστε ότι η cache λήψης του Workshop έχει καταστραφεί, μπορείτε να εξαναγκάσετε μια πλήρη εκ νέου λήψη όλων των mods του Workshop.
- Σταματήστε τον διακομιστή στο GPanel.
- Συνδεθείτε μέσω SFTP και μεταβείτε στο
/steamapps/workshop/. - Διαγράψτε ολόκληρο τον φάκελο
workshop/(ή τα περιεχόμενά του). - Ξεκινήστε τον διακομιστή. Το Steam θα επανακατεβάσει όλα τα στοιχεία Workshop από την αρχή.
- Παρακολουθήστε την κονσόλα του GPanel για να επιβεβαιώσετε ότι όλα τα mods ολοκληρώνουν τη λήψη πριν ο διακομιστής αρχίσει τη φόρτωση του κόσμου.
Γρήγορη Διαγνωστική Αναφορά
| Τι βλέπετε | Πιθανότερη αιτία | Ενότητα |
|---|---|---|
| Τα mods δεν φορτώνουν, χωρίς σφάλματα στο log | Λανθασμένη μορφή mod (μορφή B41 σε διακομιστή B42 ή το αντίστροφο) | 1. Σφάλματα Μορφής Mod |
WorldDictionaryException στην κονσόλα |
Καταστροφή WorldDictionary από προσθήκη/αφαίρεση mods | 2. Καταστροφή WorldDictionary |
| Κρασάρισμα διακομιστή με πολλαπλά υπο-mods Authentic Z | Υπο-mods Authentic Z που συγκρούονται φορτωμένα ταυτόχρονα | 3. Συγκρούσεις Authentic Z |
FileNotFoundException για αρχείο mod που υπάρχει |
Ασυμφωνία ευαισθησίας πεζών-κεφαλαίων στο Linux | 4. Προβλήματα Ευαισθησίας Πεζών-Κεφαλαίων |
Σφάλματα NullPointerException ή nil value από mods |
Λανθασμένη σειρά φόρτωσης mod ή εξάρτηση που λείπει | 5. Προβλήματα Σειράς Φόρτωσης |
STACK TRACE μετά την προσθήκη νέων mods |
Ασύμβατο mod ή mod που συγκρούεται | 6. Κρασαρίσματα Μετά την Προσθήκη Mods |
| «Mod mismatch» ή «Version mismatch» κατά τη σύνδεση | Ο διακομιστής και ο client έχουν διαφορετικές εκδόσεις mod | 7. Ασυμφωνίες Έκδοσης |
| Πολλαπλά προβλήματα mod, τίποτα άλλο δεν λειτουργεί | Κατεστραμμένη cache Workshop | 8. Cache Workshop |
Εξακολουθείτε να Έχετε Προβλήματα με Mods;
Εάν το πρόβλημα mod σας δεν καλύπτεται παραπάνω ή οι λύσεις δεν το επίλυσαν, ανοίξτε ένα αίτημα υποστήριξης με τις ακόλουθες πληροφορίες ώστε να βοηθήσετε την ομάδα υποστήριξης να διαγνώσει γρήγορα το πρόβλημα:
- Την έκδοση build του διακομιστή σας (B41 ή B42), που εμφανίζεται στην κονσόλα κατά την εκκίνηση
- Τις πλήρεις γραμμές
Mods=καιWorkshopItems=από το αρχείο.iniσας - Τις τελευταίες 50 γραμμές της εξόδου κονσόλας του GPanel τη στιγμή του κρασαρίσματος
- Τα περιεχόμενα του πιο πρόσφατου αρχείου καταγραφής στο
/.cache/Logs/ - Ποια mods προστέθηκαν, αφαιρέθηκαν ή ενημερώθηκαν αμέσως πριν ξεκινήσει το πρόβλημα
- Αν το πρόβλημα εμφανίζεται κατά την εκκίνηση ή μόνο όταν συνδέονται παίκτες
Ανοίξτε ένα αίτημα υποστήριξης και συμπεριλάβετε το ID του διακομιστή σας και τις λεπτομέρειες που αναφέρονται παραπάνω.