Красный прямоугольник с постоянно растущим счетчиком ошибок (Red Error Box) в правом нижнем углу экрана — знакомая проблема для любого администратора сервера Project Zomboid с модами. Этот индикатор сигнализирует о том, что в фоновом цикле выполнения Lua-скриптов произошло необработанное исключение. На сервере подобные сбои приводят к зависанию инвентарей, исчезновению текстур зомби или циклическому падению сервера при входе игроков в определенные секторы карты.
В этом практическом руководстве мы разберём архитектуру логирования Project Zomboid, чтение стека вызовов в console.txt, сопоставление путей файлов с идентификаторами Steam Workshop и исправление порядка загрузки модов в файле конфигурации .ini.
Логирование сервера и чтение стека вызовов STACK TRACE#
Когда в игре возникает конфликт скриптов, движок виртуальной машины Java Kahlua перехватывает сбой и записывает детальный дамп ошибки в основной журнал сервера ~/Zomboid/Server/<ИмяСервера>_console.txt (или ~/Zomboid/console.txt на стороне клиента).
Отфильтруйте журнал для выявления критических исключений:
tail -n 100 ~/Zomboid/Server/servertest_console.txt | grep -E "STACK TRACE|Callframe at|ERROR:"
Типичная запись об ошибке содержит блок трассировки:
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 принадлежит проблемный файл. Для этого выполните поиск по каталогу кэшированного контента:
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.
Проверьте текущую конфигурацию сервера:
grep -E "Mods=|Map=|WorkshopItems=" ~/Zomboid/Server/servertest.ini
Безопасное удаление конфликтующего мода#
Если модификация заброшена автором и крашит сервер, отключите её, удалив Mod ID из директивы Mods= и числовой ID из директивы WorkshopItems=:
sed -i 's/Mods=BrokenMod;/Mods=/' ~/Zomboid/Server/servertest.ini && sed -i 's/WorkshopItems=12345678;/WorkshopItems=/' ~/Zomboid/Server/servertest.ini
После редактирования файла конфигурации перезапустите серверную службу и проконтролируйте процесс загрузки в реальном времени:
sudo systemctl restart zomboid && sudo journalctl -u zomboid -f
Если вы хотите запустить сервер с сотней модов без риска повреждения файлов сохранений и ручного разбора стеков вызовов в консоли, специализированный хостинг серверов Project Zomboid предлагает встроенный валидатор зависимостей Workshop и моментальные откаты мира.




