Это руководство охватывает продвинутое устранение неполадок с модами для серверов 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=. - Переупорядочите записи так, чтобы моды-зависимости появлялись перед модами, которые их требуют. Например, если Mod B требует Mod A, строка должна выглядеть как
Mods=\ModA;\ModB;(формат B42). - Фреймворковые и библиотечные моды (такие как
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, и внезапно некоторые игроки не могут присоединиться.
- Игроки видят отсутствующие текстуры, предметы или сломанные элементы интерфейса от модов, которые недавно обновились.
Исправление для операторов серверов
- Остановите сервер в GPanel.
- Запустите сервер снова. При запуске сервер заново загружает последние версии всех модов Workshop. Это гарантирует, что сервер работает на новейшей версии.
- Если на сервере всё ещё закэширована старая версия, подключитесь через SFTP и удалите папку кэша Workshop конкретного мода по адресу
/steamapps/workshop/content/108600/<WorkshopID>/. Перезапустите сервер, чтобы принудительно выполнить чистую загрузку.
Исправление для игроков
Игрокам, которые не могут подключиться из-за несоответствия версий модов, следует:
- Открыть Steam и перейти в Библиотека → Project Zomboid.
- Щёлкнуть правой кнопкой мыши по Project Zomboid, выбрать Свойства → Локальные файлы → Проверить целостность файлов игры.
- Также перейти в папку 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 вашего сервера и детали, перечисленные выше.