Овој водич покрива напредно решавање на проблеми со модови за Project Zomboid сервери хостирани со Legion Hosting. Ако сè уште не сте инсталирале модови, започнете прво со основниот водич за инсталација на модови. Оваа статија ги адресира најчестите проблеми поврзани со модови видени низ тикетите за поддршка на Legion Hosting, вклучувајќи корупција на WorldDictionary, грешки во форматот на модови, конфликти во редоследот на вчитување и несовпаѓања на верзии помеѓу серверот и клиентот.
Пред да започнете
- Најавете се на GPanel и изберете го вашиот Project Zomboid сервер.
- Запрете го вашиот сервер пред да направите било какви промени во конфигурацијата или датотеките.
- Направете резервна копија на вашата папка за зачувување на светот (
/.cache/saves/multiplayer/) преку SFTP или GPanel пред да се обидете со било каква поправка. Видете го SFTP водичот ако не сте запознаени со пренос на датотеки. - Имајте подготвена патека до
.iniдатотеката на вашиот сервер:/.cache/server/<servername>.ini(на пр.servertest.ini).
1. Грешки во форматот на модови (B42 наспроти B41)
Најчестата причина модовите да не се вчитаат е неправилен формат во линијата Mods= на .ini датотеката на вашиот сервер. Build 42 и Build 41 користат различна синтакса, и нивното мешање тивко ќе предизвика вашите модови да не се вчитаат.
B42 формат (тековен стандард)
Build 42 бара префикс со обратна коса црта пред секое Mod ID во линијата Mods=:
Mods=\ModID1;\ModID2;\ModID3;
DLMP форматот комбинира Workshop ID и Mod ID со разделувач со обратна коса црта:
Mods=2392987841\ModID1;1550458773\ModID2;2786383654\ModID3;
Линијата WorkshopItems= го користи истиот формат разделен со точка-запирка на двата билда:
WorkshopItems=2392987841;1550458773;2786383654
B41 формат (наследен)
Build 41 користи обични Mod ID разделени со точка-запирка без обратна коса црта:
Mods=ModID1;ModID2;ModID3
Mods= линија за да го вклучите префиксот со обратна коса црта.
Како да поправите
- Отворете го
/.cache/server/<servername>.iniво GPanel Менаџерот на датотеки. - Најдете ја линијата
Mods=и проверете го форматот наспроти примерите погоре. - Ако форматот е погрешен за вашата верзија на билд, поправете го. Користете го Legion Hosting Mod Organizer за автоматско генерирање на правилно форматирани линии.
- Зачувајте ја датотеката и стартувајте го серверот.
2. Корупција на WorldDictionary
WorldDictionary е датотека (WorldDictionary.bin) што ги мапира имињата на предметите кон внатрешни нумерички ID. Кога се додаваат или отстрануваат модови, речникот може да се корумпира, предизвикувајќи серверот да се сруши при стартување со WorldDictionaryException.
Симптоми
- Конзолата или
debug.logприкажуваWorldDictionaryExceptionилиWorldDictionaryгрешки. - Серверот веднаш се руши за време на стартувањето, конкретно за време на вчитувањето на светот.
- Рушењето започнало по додавање, отстранување или ажурирање на модови.
Разбирање на ризикот
Чекори за обновување
- Запрете го вашиот сервер во GPanel.
- Направете резервна копија на целата ваша папка за зачувување преку SFTP: преземете го целиот директориум
/.cache/saves/multiplayer/<YourWorldName>/на вашата локална машина. - Прво, обидете се едноставно да ја вратите промената на модот што ја предизвикала грешката. Ако штотуку сте додале мод, отстранете го од
Mods=иWorkshopItems=во.iniдатотеката. Ако штотуку сте отстраниле мод, додадете го назад. Стартувајте го серверот и видете дали рушењето е решено. - Ако враќањето на промената на модот не функционира, поврзете се преку SFTP и навигирајте до
/.cache/saves/multiplayer/<YourWorldName>/. - Избришете го
WorldDictionary.bin. - Стартувајте го серверот. Project Zomboid ќе го регенерира речникот при стартување.
- Приклучете се на серверот и проверете го светот за корумпирани предмети, исчезнати возила или скршени инвентари. Ако светот е сериозно оштетен, вратете го од резервната копија што сте ја создале во чекор 2.
3. Конфликти со модот Authentic Z
Authentic Z е една од најпопуларните колекции на модови за Project Zomboid, но е чест извор на тикети за поддршка бидејќи содржи повеќе под-модови што се во конфликт еден со друг.
Правилото
Authentic Z - Current.
Чести грешки
- Додавање на и
Authentic Z - CurrentиAuthentic Z - Litemodeво исто време. - Додавање на Authentic Z под-модови дизајнирани за еден играч заедно со повеќеиграчката верзија.
- Несфаќање дека различни Authentic Z под-модови делат исто Workshop ID но имаат различни Mod ID, така што Workshop преземањето успева но серверот вчитува конфликтни датотеки на модови.
Како да поправите
- Отворете го
/.cache/server/<servername>.iniво GPanel Менаџерот на датотеки. - Пребарајте ја линијата
Mods=за секој запис што содржиAuthenticилиAuthenticZ. - Задржете само еден Authentic Z под-мод (препорачано:
Authentic Z - Current). Отстранете ги сите други Authentic Z записи од линиитеMods=иWorkshopItems=. - Зачувајте ја датотеката и рестартирајте го серверот.
4. Проблеми со чувствителност на големина на букви на Linux
Серверите на Legion Hosting работат на Linux, каде имињата на датотеки и папки се чувствителни на големина на букви. Датотека со име MyMod.lua и mymod.lua се третираат како две целосно различни датотеки. Ова предизвикува проблеми кога авторите на модови развиваат на Windows (нечувствителен на големина) и нивните модови содржат несовпаѓачки референци кон датотеки.
Симптоми
- Мод работи совршено во еден играч на вашиот Windows компјутер но не успева на серверот.
- Конзолата или
debug.logприкажуваFileNotFoundExceptionилиcan't find fileгрешки што се однесуваат на Lua скрипта или текстура во мод. - Грешката укажува на датотека што навистина постои во папката на модот, но со различна големина на букви (на пр. кодот се однесува на
Items.txtно вистинската датотека се викаitems.txt).
Како да дијагностицирате
- Проверете ги конзолата или
/.cache/Logs/лог датотеките за точната патека до датотеката споменати во грешката. - Поврзете се преку SFTP и навигирајте до папката на модот на
/steamapps/workshop/content/108600/<WorkshopID>/. - Споредете ги имињата на датотеки на дискот со името на датотеката споменато во пораката за грешка. Барајте разлики во големината на буквите.
Како да поправите
- Ако можете да ја преименувате датотеката: Поврзете се преку SFTP и преименувајте ја датотеката за да се совпадне со големината на буквите очекувана од кодот на модот. Имајте предвид дека оваа поправка ќе биде презапишана ако модот се ажурира на Steam Workshop.
- Ако проблемот е во самиот мод: Пријавете ја грешката кон авторот на модот на страницата на Steam Workshop. Спомнете дека референцата кон датотеката има несовпаѓање во големината на буквите и дека не успева на Linux сервери. Многу автори на модови не се свесни за чувствителноста на големина на букви на Linux.
- Како заобиколно решение: Проверете ги коментарите на Workshop страницата на модот — други оператори на Linux сервери можеби објавиле поправка или компатибилен форк на модот.
5. Проблеми со редоследот на вчитување на модови
Project Zomboid ги вчитува модовите по редоследот по кој се појавуваат во линијата Mods=. Некои модови зависат од други модови да бидат вчитани прво. Ако зависноста е вчитана по модот што ја бара, зависниот мод може тивко да не успее или да предизвика грешки.
Симптоми
- Функциите на модот делумно работат — некои предмети или системи од мод се присутни но други недостасуваат.
- Конзолата прикажува
NullPointerExceptionилиattempt to index a nil valueгрешки што се однесуваат на Lua скриптите на мод. - Грешките се појавуваат само кога е инсталирана конкретна комбинација на модови, но секој мод работи добро поединечно.
Како да поправите
- Проверете ја Steam Workshop страницата на секој мод за дел „Required Mods“ или „Load Order“. Многу автори на модови специфицираат кои модови мора да бидат вчитани пред нивниот.
- Отворете го
/.cache/server/<servername>.iniи најдете ја линијатаMods=. - Преуредете ги записите така што модовите за зависности се појавуваат пред модовите што ги бараат. На пример, ако Мод B бара Мод A, линијата треба да гласи
Mods=\ModA;\ModB;(B42 формат). - Framework и библиотечки модови (како
ModFramework,TsarLibилиShark's Mod Utils) секогаш треба да бидат наведени први во линијатаMods=. - Зачувајте ја датотеката и рестартирајте го серверот.
6. Серверот се руши по додавање на модови
Ако вашиот сервер работел добро и се руши по додавање на еден или повеќе модови, новиот мод е веројатна причина. Овој дел поминува низ изолирање на проблематичниот мод.
Изолација чекор-по-чекор
- Запрете го серверот во GPanel.
- Отворете го
/.cache/server/<servername>.iniво Менаџерот на датотеки. - Забележете ги сите модови што штотуку сте ги додале. Отстранете ги сите од линиите
Mods=иWorkshopItems=. - Стартувајте го серверот. Ако се стартува успешно, проблемот е во еден од модовите што сте ги отстраниле.
- Додавајте ги модовите назад еден по еден, рестартирајќи го серверот по секое додавање. Кога рушењето ќе се врати, последниот мод што сте го додале е причината.
- Откако ќе биде идентификуван, проверете ја Workshop страницата на модот за:
- Забелешка за B42 компатибилност — многу B41 модови не се ажурирани за B42.
- Познати конфликти со други модови што ги извршувате.
- Потребни модови за зависности што можеби не сте ги инсталирале.
Читање на логот за рушење
Пред да го извршите процесот на изолација, проверете го логот за рушење — тој често укажува директно кон проблематичниот мод:
- Во GPanel, отворете го табот Console и скролувајте до крајот на излезот.
- Барајте
STACK TRACE,ExceptionилиERRORлинии. - Линиите непосредно над стек трагата вообичаено се однесуваат на име на датотека на мод или Mod ID — ова ви кажува кој мод го предизвикал рушењето.
- За повеќе детали, отворете ја целата лог датотека преку SFTP на
/.cache/Logs/и проверете ја најноватаDebugLog-server.txtилиdebug.logдатотека.
7. Несовпаѓања на верзии на модови (сервер наспроти клиент)
Project Zomboid бара серверот и сите поврзани клиенти да ја имаат истата верзија на секој мод. Ако мод се ажурира на Steam Workshop и серверот ја презема новата верзија но играч сè уште ја има старата верзија кеширана (или обратно), ќе се појават неуспеси во конекцијата или рушења.
Симптоми
- Играчите добиваат грешка „Mod mismatch“ или „Version mismatch“ кога се обидуваат да се поврзат.
- Некои играчи можат да се поврзат но други не можат — оние што не можат да се поврзат имаат различна верзија на мод кеширана локално.
- Серверот работел добро, потоа мод се ажурирал на Steam Workshop и одеднаш некои играчи не можат да се приклучат.
- Играчите гледаат недостасувачки текстури, предмети или скршени UI елементи од модови што неодамна се ажурирани.
Поправка за оператори на сервери
- Запрете го серверот во GPanel.
- Стартувајте го серверот повторно. При стартување, серверот повторно ги презема најновите верзии на сите Workshop модови. Ова осигурува дека серверот ја извршува најновата верзија.
- Ако серверот сè уште има стара верзија кеширана, поврзете се преку SFTP и избришете ја Workshop кеш папката на конкретниот мод на
/steamapps/workshop/content/108600/<WorkshopID>/. Рестартирајте го серверот за да присилите чисто преземање.
Поправка за играчите
Играчите што не можат да се поврзат поради несовпаѓања на верзии на модови треба да:
- Отворат Steam и навигираат до Library → Project Zomboid.
- Кликнат со десен клик на Project Zomboid, изберат Properties → Local Files → Verify Integrity of Game Files.
- Исто така навигираат до Steam Workshop папката за Project Zomboid на нивната локална машина и избришат кеширани датотеки на модови за да присилат повторно преземање.
- Стартуваат ја играта и повторно се поврзат на серверот.
/.cache/mods/ на серверот наместо да го користите Workshop авто-ажурирањето. Отстранете го соодветното Workshop ID од линијата WorkshopItems= за да спречите авто-ажурирања. Видете го водичот за инсталација на модови за инструкции за инсталација на модови без Workshop.
8. Чистење на Steam Workshop кешот
Ако повеќе проблеми со модови опстануваат и се сомневате дека кешот за преземање на Workshop е корумпиран, можете да присилите целосно повторно преземање на сите Workshop модови.
- Запрете го серверот во GPanel.
- Поврзете се преку SFTP и навигирајте до
/steamapps/workshop/. - Избришете ја целата папка
workshop/(или нејзината содржина). - Стартувајте го серверот. Steam ќе ги преземе повторно сите Workshop ставки од почеток.
- Гледајте ја GPanel конзолата за да потврдите дека сите модови завршиле со преземање пред серверот да започне со вчитување на светот.
Брза дијагностичка референца
| Што гледате | Најверојатна причина | Дел |
|---|---|---|
| Модовите не се вчитуваат, нема грешки во логот | Погрешен формат на модови (B41 формат на B42 сервер или обратно) | 1. Грешки во форматот на модови |
WorldDictionaryException во конзолата |
Корупција на WorldDictionary од додавање/отстранување на модови | 2. Корупција на WorldDictionary |
| Рушење на серверот со повеќе Authentic Z под-модови | Конфликтни Authentic Z под-модови вчитани истовремено | 3. Authentic Z конфликти |
FileNotFoundException за датотека на мод што постои |
Несовпаѓање во чувствителноста на големина на букви на Linux | 4. Проблеми со чувствителност на големина на букви |
NullPointerException или nil value грешки од модови |
Неправилен редослед на вчитување на модови или недостасувачка зависност | 5. Проблеми со редоследот на вчитување |
STACK TRACE по додавање на нови модови |
Некомпатибилен или конфликтен мод | 6. Рушења по додавање на модови |
| „Mod mismatch“ или „Version mismatch“ при поврзување | Серверот и клиентот имаат различни верзии на модови | 7. Несовпаѓања на верзии |
| Повеќе проблеми со модови, ништо друго не функционира | Корумпиран Workshop кеш | 8. Workshop кеш |
Сè уште имате проблеми со модови?
Ако вашиот проблем со модови не е опфатен погоре или поправките не го решиле, отворете тикет за поддршка со следните информации за да му помогнете на тимот за поддршка брзо да го дијагностицира проблемот:
- Верзијата на билд на вашиот сервер (B41 или B42), прикажана во конзолата при стартување
- Целите линии
Mods=иWorkshopItems=од вашата.iniдатотека - Последните 50 линии од GPanel конзолниот излез во моментот на рушењето
- Содржината на најновата лог датотека во
/.cache/Logs/ - Кои модови биле додадени, отстранети или ажурирани непосредно пред да започне проблемот
- Дали проблемот се случува при стартување или само кога играчите се поврзуваат
Отворете тикет за поддршка и вклучете го вашиот серверски ID и деталите наведени погоре.