Project Zomboid Руководство

Поиск и устранение конфликтов модов в Project Zomboid: лог console.txt и красные ошибки

Диагностика конфликтов модов в Project Zomboid: чтение STACK TRACE в console.txt, сопоставление файлов с Workshop ID и правильный порядок загрузки библиотек в servertest.ini.

Поиск и устранение конфликтов модов в Project Zomboid: лог console.txt и красные ошибки

Красный прямоугольник с постоянно растущим счетчиком ошибок (Red Error Box) в правом нижнем углу экрана — знакомая проблема для любого администратора сервера Project Zomboid с модами. Этот индикатор сигнализирует о том, что в фоновом цикле выполнения Lua-скриптов произошло необработанное исключение. На сервере подобные сбои приводят к зависанию инвентарей, исчезновению текстур зомби или циклическому падению сервера при входе игроков в определенные секторы карты.

В этом практическом руководстве мы разберём архитектуру логирования Project Zomboid, чтение стека вызовов в console.txt, сопоставление путей файлов с идентификаторами Steam Workshop и исправление порядка загрузки модов в файле конфигурации .ini.

Логирование сервера и чтение стека вызовов STACK TRACE#

Когда в игре возникает конфликт скриптов, движок виртуальной машины Java Kahlua перехватывает сбой и записывает детальный дамп ошибки в основной журнал сервера ~/Zomboid/Server/<ИмяСервера>_console.txt (или ~/Zomboid/console.txt на стороне клиента).

Отфильтруйте журнал для выявления критических исключений:

bash
tail -n 100 ~/Zomboid/Server/servertest_console.txt | grep -E "STACK TRACE|Callframe at|ERROR:"

Типичная запись об ошибке содержит блок трассировки:

text
ERROR: General     , 1730764800000> Exception in script: ModFile.lua
STACK TRACE
Callframe at: media/lua/shared/OffendingScript.lua:142 in function: updateContainers

Строка указывает точный путь к повреждённому файлу внутри мода (OffendingScript.lua) и номер проблемной строки.

Поиск виновного мода по имени файла через Workshop ID#

Поскольку Project Zomboid загружает моды из кэша Steam Workshop, необходимо выяснить, какому именно Workshop ID принадлежит проблемный файл. Для этого выполните поиск по каталогу кэшированного контента:

bash
find ~/Zomboid/SteamApps/workshop/content/108600/ -name "*.lua" | grep "OffendingScript"

Команда выведет путь вида .../content/108600/2849104821/mods/VehicleFramework/media/lua/.... Восьми- или десятизначное число в пути — это Workshop ID аддона, а папка внутри mods/ указывает его системный Mod ID.

Проверка порядка загрузки в servertest.ini#

Две наиболее частые причины ошибок — это неправильный порядок загрузки библиотек зависимостей и конфликты пользовательских карт:

  • Базовые библиотеки: такие моды, как tsarslib, ModOptions, ItemTweakerAPI, обязаны находиться в начале списка Mods=, до любых использующих их расширений.
  • Порядок карт: в строке Map= пользовательские города должны быть указаны перед стандартной картой Muldraugh, KY.

Проверьте текущую конфигурацию сервера:

bash
grep -E "Mods=|Map=|WorkshopItems=" ~/Zomboid/Server/servertest.ini

Безопасное удаление конфликтующего мода#

Если модификация заброшена автором и крашит сервер, отключите её, удалив Mod ID из директивы Mods= и числовой ID из директивы WorkshopItems=:

bash
sed -i 's/Mods=BrokenMod;/Mods=/' ~/Zomboid/Server/servertest.ini && sed -i 's/WorkshopItems=12345678;/WorkshopItems=/' ~/Zomboid/Server/servertest.ini

После редактирования файла конфигурации перезапустите серверную службу и проконтролируйте процесс загрузки в реальном времени:

bash
sudo systemctl restart zomboid && sudo journalctl -u zomboid -f

Если вы хотите запустить сервер с сотней модов без риска повреждения файлов сохранений и ручного разбора стеков вызовов в консоли, специализированный хостинг серверов Project Zomboid предлагает встроенный валидатор зависимостей Workshop и моментальные откаты мира.

Источники#