Ten przewodnik obejmuje zaawansowane rozwiązywanie problemów z modami dla serwerów Project Zomboid hostowanych w Legion Hosting. Jeśli nie zainstalowałeś jeszcze modów, zacznij najpierw od podstawowego przewodnika instalacji modów. Ten artykuł porusza najczęstsze problemy związane z modami spotykane w zgłoszeniach do pomocy technicznej Legion Hosting, w tym uszkodzenie WorldDictionary, błędy formatu modów, konflikty kolejności ładowania oraz niezgodności wersji między serwerem a klientem.
Zanim zaczniesz
- Zaloguj się do GPanel i wybierz swój serwer Project Zomboid.
- Zatrzymaj serwer przed wprowadzeniem jakichkolwiek zmian w konfiguracji lub plikach.
- Wykonaj kopię zapasową folderu zapisu świata (
/.cache/saves/multiplayer/) przez SFTP lub GPanel przed podjęciem jakiejkolwiek naprawy. Zobacz przewodnik SFTP, jeśli nie znasz transferu plików. - Przygotuj ścieżkę do pliku
.iniserwera:/.cache/server/<servername>.ini(np.servertest.ini).
1. Błędy formatu modów (B42 vs B41)
Najczęstszym powodem, dla którego mody nie ładują się, jest nieprawidłowy format w linii Mods= pliku .ini serwera. Build 42 i Build 41 używają różnej składni, a ich pomylenie spowoduje ciche nieładowanie modów.
Format B42 (obecny domyślny)
Build 42 wymaga prefiksu z ukośnikiem wstecznym przed każdym identyfikatorem moda w linii Mods=:
Mods=\ModID1;\ModID2;\ModID3;
Format DLMP łączy identyfikatory Workshop oraz identyfikatory modów za pomocą separatora w postaci ukośnika wstecznego:
Mods=2392987841\ModID1;1550458773\ModID2;2786383654\ModID3;
Linia WorkshopItems= używa tego samego formatu rozdzielanego średnikami w obu buildach:
WorkshopItems=2392987841;1550458773;2786383654
Format B41 (starszy)
Build 41 używa zwykłych identyfikatorów modów rozdzielanych średnikami, bez ukośnika wstecznego:
Mods=ModID1;ModID2;ModID3
Mods=, aby zawierała prefiks z ukośnikiem wstecznym.
Jak naprawić
- Otwórz
/.cache/server/<servername>.iniw Menedżerze plików GPanel. - Znajdź linię
Mods=i sprawdź format względem powyższych przykładów. - Jeśli format jest nieprawidłowy dla Twojej wersji buildu, popraw go. Użyj Legion Hosting Mod Organizer, aby automatycznie wygenerować poprawnie sformatowane linie.
- Zapisz plik i uruchom serwer.
2. Uszkodzenie WorldDictionary
WorldDictionary to plik (WorldDictionary.bin), który mapuje nazwy przedmiotów na wewnętrzne identyfikatory numeryczne. Gdy mody są dodawane lub usuwane, słownik może ulec uszkodzeniu, powodując awarię serwera podczas uruchamiania z błędem WorldDictionaryException.
Objawy
- Konsola lub
debug.logpokazuje błędyWorldDictionaryExceptionlubWorldDictionary. - Serwer ulega awarii natychmiast podczas uruchamiania, konkretnie podczas ładowania świata.
- Awaria rozpoczęła się po dodaniu, usunięciu lub zaktualizowaniu modów.
Zrozumienie ryzyka
Kroki odzyskiwania
- Zatrzymaj serwer w GPanel.
- Wykonaj kopię zapasową całego folderu zapisu przez SFTP: pobierz pełny katalog
/.cache/saves/multiplayer/<YourWorldName>/na swój komputer lokalny. - Najpierw spróbuj po prostu cofnąć zmianę moda, która spowodowała błąd. Jeśli właśnie dodałeś moda, usuń go zarówno z
Mods=, jak iWorkshopItems=w pliku.ini. Jeśli właśnie usunąłeś moda, dodaj go z powrotem. Uruchom serwer i sprawdź, czy awaria została rozwiązana. - Jeśli cofnięcie zmiany moda nie zadziała, połącz się przez SFTP i przejdź do
/.cache/saves/multiplayer/<YourWorldName>/. - Usuń
WorldDictionary.bin. - Uruchom serwer. Project Zomboid ponownie wygeneruje słownik podczas uruchamiania.
- Dołącz do serwera i sprawdź świat pod kątem uszkodzonych przedmiotów, brakujących pojazdów lub uszkodzonych ekwipunków. Jeśli świat jest poważnie uszkodzony, przywróć go z kopii zapasowej utworzonej w kroku 2.
3. Konflikty modów Authentic Z
Authentic Z to jedna z najpopularniejszych kolekcji modów do Project Zomboid, ale jest częstym źródłem zgłoszeń do pomocy technicznej, ponieważ zawiera wiele submodów, które konfliktują ze sobą.
Zasada
Authentic Z - Current.
Częste błędy
- Dodawanie zarówno
Authentic Z - Current, jak iAuthentic Z - Litemodejednocześnie. - Dodawanie submodów Authentic Z przeznaczonych dla trybu jednoosobowego obok wersji wieloosobowej.
- Nieświadomość, że różne submody Authentic Z dzielą ten sam identyfikator Workshop, ale mają różne identyfikatory modów, więc pobieranie z Workshop kończy się powodzeniem, ale serwer ładuje konfliktujące pliki modów.
Jak naprawić
- Otwórz
/.cache/server/<servername>.iniw Menedżerze plików GPanel. - Przeszukaj linię
Mods=pod kątem każdego wpisu zawierającegoAuthenticlubAuthenticZ. - Zachowaj tylko jeden submod Authentic Z (zalecany:
Authentic Z - Current). Usuń wszystkie pozostałe wpisy Authentic Z zarówno z liniiMods=, jak iWorkshopItems=. - Zapisz plik i zrestartuj serwer.
4. Problemy z rozróżnianiem wielkości liter w systemie Linux
Serwery Legion Hosting działają w systemie Linux, gdzie nazwy plików i folderów rozróżniają wielkość liter. Plik o nazwie MyMod.lua i mymod.lua są traktowane jako dwa zupełnie różne pliki. Powoduje to problemy, gdy autorzy modów tworzą je w systemie Windows (nierozróżniającym wielkości liter), a ich mody zawierają niedopasowane odwołania do plików.
Objawy
- Mod działa idealnie w trybie jednoosobowym na Twoim komputerze z Windows, ale zawodzi na serwerze.
- Konsola lub
debug.logpokazuje błędyFileNotFoundExceptionlubcan't find fileodnoszące się do skryptu Lua lub tekstury wewnątrz moda. - Błąd wskazuje na plik, który istnieje w folderze moda, ale z inną wielkością liter (np. kod odwołuje się do
Items.txt, ale rzeczywisty plik nazywa sięitems.txt).
Jak zdiagnozować
- Sprawdź konsolę lub pliki logów w
/.cache/Logs/pod kątem dokładnej ścieżki pliku wymienionej w błędzie. - Połącz się przez SFTP i przejdź do folderu moda w
/steamapps/workshop/content/108600/<WorkshopID>/. - Porównaj nazwy plików na dysku z nazwą pliku wymienioną w komunikacie o błędzie. Szukaj różnic w wielkości liter.
Jak naprawić
- Jeśli możesz zmienić nazwę pliku: Połącz się przez SFTP i zmień nazwę pliku, aby pasowała do wielkości liter oczekiwanej przez kod moda. Pamiętaj, że ta poprawka zostanie nadpisana, jeśli mod zaktualizuje się w Steam Workshop.
- Jeśli problem leży w samym modzie: Zgłoś błąd autorowi moda na stronie Steam Workshop. Wspomnij, że odwołanie do pliku ma niezgodność wielkości liter i że zawodzi na serwerach Linux. Wielu autorów modów nie jest świadomych rozróżniania wielkości liter w systemie Linux.
- Jako obejście: Sprawdź komentarze na stronie Workshop moda — inni operatorzy serwerów Linux mogli opublikować poprawkę lub kompatybilny fork moda.
5. Problemy z kolejnością ładowania modów
Project Zomboid ładuje mody w kolejności, w jakiej pojawiają się w linii Mods=. Niektóre mody zależą od tego, by inne mody były załadowane jako pierwsze. Jeśli zależność zostanie załadowana po modzie, który jej wymaga, zależny mod może po cichu zawieść lub powodować błędy.
Objawy
- Funkcje moda działają częściowo — niektóre przedmioty lub systemy z moda są obecne, ale inne brakują.
- Konsola pokazuje błędy
NullPointerExceptionlubattempt to index a nil valueodnoszące się do skryptów Lua moda. - Błędy pojawiają się tylko wtedy, gdy zainstalowana jest konkretna kombinacja modów, ale każdy mod działa dobrze osobno.
Jak naprawić
- Sprawdź stronę Steam Workshop każdego moda pod kątem sekcji „Required Mods" lub „Load Order". Wielu autorów modów określa, które mody muszą być załadowane przed ich modem.
- Otwórz
/.cache/server/<servername>.inii znajdź linięMods=. - Zmień kolejność wpisów tak, aby mody-zależności pojawiały się przed modami, które ich wymagają. Na przykład, jeśli Mod B wymaga Moda A, linia powinna brzmieć
Mods=\ModA;\ModB;(format B42). - Mody frameworkowe i biblioteczne (takie jak
ModFramework,TsarLiblubShark's Mod Utils) powinny być zawsze wymienione jako pierwsze w liniiMods=. - Zapisz plik i zrestartuj serwer.
6. Awarie serwera po dodaniu modów
Jeśli Twój serwer działał poprawnie i ulega awarii po dodaniu jednego lub więcej modów, nowy mod jest prawdopodobnie przyczyną. Ta sekcja przeprowadzi Cię przez izolowanie problematycznego moda.
Izolacja krok po kroku
- Zatrzymaj serwer w GPanel.
- Otwórz
/.cache/server/<servername>.iniw Menedżerze plików. - Zanotuj wszystkie mody, które właśnie dodałeś. Usuń wszystkie z nich zarówno z linii
Mods=, jak iWorkshopItems=. - Uruchom serwer. Jeśli uruchomi się pomyślnie, problem leży w jednym z usuniętych modów.
- Dodawaj mody z powrotem pojedynczo, restartując serwer po każdym dodaniu. Gdy awaria powróci, ostatni dodany mod jest przyczyną.
- Po zidentyfikowaniu sprawdź stronę Workshop moda pod kątem:
- Informacji o kompatybilności z B42 — wiele modów B41 nie zostało zaktualizowanych do B42.
- Znanych konfliktów z innymi uruchamianymi modami.
- Wymaganych modów-zależności, których możesz nie mieć zainstalowanych.
Odczytywanie logu awarii
Przed przeprowadzeniem procesu izolacji sprawdź log awarii — często wskazuje on bezpośrednio na problematyczny mod:
- W GPanel otwórz zakładkę Console i przewiń do końca danych wyjściowych.
- Szukaj linii
STACK TRACE,ExceptionlubERROR. - Linie bezpośrednio nad śladem stosu zazwyczaj odnoszą się do nazwy pliku moda lub identyfikatora moda — to mówi Ci, który mod wywołał awarię.
- Aby uzyskać więcej szczegółów, otwórz pełny plik logu przez SFTP w
/.cache/Logs/i sprawdź najnowszy plikDebugLog-server.txtlubdebug.log.
7. Niezgodności wersji modów (serwer vs klient)
Project Zomboid wymaga, aby serwer i wszyscy połączeni klienci mieli tę samą wersję każdego moda. Jeśli mod zaktualizuje się w Steam Workshop, a serwer pobierze nową wersję, ale gracz nadal ma w pamięci podręcznej starą wersję (lub odwrotnie), wystąpią błędy połączenia lub awarie.
Objawy
- Gracze otrzymują błąd „Mod mismatch" lub „Version mismatch" przy próbie połączenia.
- Niektórzy gracze mogą się połączyć, ale inni nie — ci, którzy nie mogą się połączyć, mają lokalnie zapisaną w pamięci podręcznej inną wersję moda.
- Serwer działał poprawnie, następnie mod zaktualizował się w Steam Workshop i nagle niektórzy gracze nie mogą dołączyć.
- Gracze widzą brakujące tekstury, przedmioty lub uszkodzone elementy interfejsu z modów, które zostały niedawno zaktualizowane.
Naprawa dla operatorów serwerów
- Zatrzymaj serwer w GPanel.
- Uruchom serwer ponownie. Podczas uruchamiania serwer ponownie pobiera najnowsze wersje wszystkich modów Workshop. Zapewnia to, że serwer działa na najnowszej wersji.
- Jeśli serwer nadal ma w pamięci podręcznej starą wersję, połącz się przez SFTP i usuń folder pamięci podręcznej Workshop konkretnego moda w
/steamapps/workshop/content/108600/<WorkshopID>/. Zrestartuj serwer, aby wymusić czyste pobranie.
Naprawa dla graczy
Gracze, którzy nie mogą się połączyć z powodu niezgodności wersji modów, powinni:
- Otworzyć Steam i przejść do Library → Project Zomboid.
- Kliknąć prawym przyciskiem myszy Project Zomboid, wybrać Properties → Local Files → Verify Integrity of Game Files.
- Przejść również do folderu Steam Workshop dla Project Zomboid na swoim komputerze lokalnym i usunąć pliki modów z pamięci podręcznej, aby wymusić ponowne pobranie.
- Uruchomić grę i ponownie połączyć się z serwerem.
/.cache/mods/ na serwerze zamiast korzystania z automatycznej aktualizacji Workshop. Usuń odpowiadający identyfikator Workshop z linii WorkshopItems=, aby zapobiec automatycznym aktualizacjom. Zobacz przewodnik instalacji modów, aby uzyskać instrukcje instalacji modów spoza Workshop.
8. Czyszczenie pamięci podręcznej Steam Workshop
Jeśli liczne problemy z modami nie ustępują i podejrzewasz, że pamięć podręczna pobierania Workshop jest uszkodzona, możesz wymusić całkowite ponowne pobranie wszystkich modów Workshop.
- Zatrzymaj serwer w GPanel.
- Połącz się przez SFTP i przejdź do
/steamapps/workshop/. - Usuń cały folder
workshop/(lub jego zawartość). - Uruchom serwer. Steam ponownie pobierze wszystkie elementy Workshop od zera.
- Obserwuj konsolę GPanel, aby potwierdzić, że wszystkie mody zakończyły pobieranie, zanim serwer rozpocznie ładowanie świata.
Szybkie odniesienie diagnostyczne
| Co widzisz | Najbardziej prawdopodobna przyczyna | Sekcja |
|---|---|---|
| Mody nie ładują się, brak błędów w logu | Nieprawidłowy format moda (format B41 na serwerze B42 lub odwrotnie) | 1. Błędy formatu modów |
WorldDictionaryException w konsoli |
Uszkodzenie WorldDictionary po dodaniu/usunięciu modów | 2. Uszkodzenie WorldDictionary |
| Awaria serwera z wieloma submodami Authentic Z | Konfliktujące submody Authentic Z załadowane jednocześnie | 3. Konflikty Authentic Z |
FileNotFoundException dla pliku moda, który istnieje |
Niezgodność wielkości liter w systemie Linux | 4. Problemy z wielkością liter |
Błędy NullPointerException lub nil value z modów |
Nieprawidłowa kolejność ładowania modów lub brakująca zależność | 5. Problemy z kolejnością ładowania |
STACK TRACE po dodaniu nowych modów |
Niekompatybilny lub konfliktujący mod | 6. Awarie po dodaniu modów |
| „Mod mismatch" lub „Version mismatch" przy połączeniu | Serwer i klient mają różne wersje modów | 7. Niezgodności wersji |
| Liczne problemy z modami, nic innego nie działa | Uszkodzona pamięć podręczna Workshop | 8. Pamięć podręczna Workshop |
Nadal masz problemy z modami?
Jeśli Twój problem z modem nie jest opisany powyżej lub poprawki go nie rozwiązały, otwórz zgłoszenie do pomocy technicznej z następującymi informacjami, aby pomóc zespołowi pomocy technicznej szybko zdiagnozować problem:
- Wersja buildu Twojego serwera (B41 lub B42), pokazywana w konsoli podczas uruchamiania
- Pełne linie
Mods=iWorkshopItems=z Twojego pliku.ini - Ostatnie 50 linii danych wyjściowych konsoli GPanel w momencie awarii
- Zawartość najnowszego pliku logu w
/.cache/Logs/ - Które mody zostały dodane, usunięte lub zaktualizowane bezpośrednio przed wystąpieniem problemu
- Czy problem występuje podczas uruchamiania, czy tylko gdy gracze się łączą
Otwórz zgłoszenie do pomocy technicznej i dołącz identyfikator serwera oraz szczegóły wymienione powyżej.