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

Моды Project Zomboid не загружаются на сервере: Workshop ID, Mod ID и Build 42

Различите Workshop ID и Mod ID для Project Zomboid Build 42, проверьте структуру пакета, зависимости и журнал загрузки.

Моды Project Zomboid не загружаются на сервере: Workshop ID, Mod ID и Build 42

Сначала определите этап сбоя: скачивание Workshop, выбор компонента или вход в мир. Это разные операции. Статус installed у Workshop-элемента не доказывает, что сервер загрузил нужный мод, а видимый мод на клиенте не подтверждает совместимость с мультиплеером.

Инструкция относится к dedicated server для Steam на ПК, преимущественно к актуальной Build 42. Пути продолжают настройку Linux-сервера: /srv/pz/server, /srv/pz/Zomboid, пользователь pz, имя servertest. Для старой группы Build 41 нужны подходящие выпуски модов и проверка ветки. Переносить её список модов прямо в рабочий мир Build 42 не следует.

Разделяйте идентификатор скачивания и идентификатор компонента#

У элемента Workshop есть числовой ID в адресе страницы Steam. Внутри могут находиться один компонент, несколько альтернатив или зависимости. У компонента есть собственный идентификатор в метаданных мода. Заголовок страницы Workshop не обязательно совпадает с ним.

WorkshopItems выбирает загрузки, а Mods — компоненты для подключения. Составьте короткий список: адрес элемента, нужный компонент, зависимости, поддерживаемый выпуск игры и условия мультиплеера. Читайте инструкцию автора и последние изменения. Пометка [B42] в названии не гарантирует поддержку конкретного патча вашего сервера.

Проверьте текущий выбор, не выводя пароли:

bash
sudo -iu pz sed -n '/^WorkshopItems=/p; /^Mods=/p; /^Map=/p' /srv/pz/Zomboid/Server/servertest.ini
sudo -iu pz find /srv/pz/Zomboid/Logs -maxdepth 2 -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n'

Убедитесь, что файл действительно выбран запущенными HOME и -servername. Правка настроек в домашнем каталоге SSH-администратора не меняет процесс пользователя pz.

Почему в Build 42 файлы мода лежат глубже#

В объяснении архитектуры модов разработчик описывает каталоги отдельных версий компонента и общий common. Файлы Build 41 могут оставаться в корне компонента, а новые сборки выбирают совместимый вложенный каталог. Поиск mod.info только на верхнем уровне поэтому может пропустить используемые игрой метаданные.

Возьмите путь Workshop из текущего серверного журнала. В обычной установке элементы игры находятся внутри steamapps/workshop/content/108600, но обёртка или контейнер могут выбирать другой родительский каталог. Исследуйте один проблемный элемент и прочитайте его подходящие метаданные. В Linux регистр символов пути имеет значение.

Не переносите содержимое 42 и common в корень в качестве общего исправления. Получится локально изменённый пакет, который может сломать другой выпуск и будет заменён следующим обновлением Workshop. Перестановка файлов также не исправляет несовместимый Lua API. В материалах разработчика по переходу на 42.13 описано реальное изменение API; поддержку вашей версии должен обеспечить автор мода.

Скачанные файлы, выбранный компонент и работающая игровая сессия проверяются отдельно.

Сгенерируйте небольшую серверную конфигурацию подходящим клиентом#

В клиенте той же полной версии откройте Host → Manage Settings и создайте отдельный тестовый профиль. Через серверные экраны выбора Workshop и модов добавьте один мод с актуальной поддержкой мультиплеера и все его обязательные зависимости. Включения только в главном меню недостаточно для настройки сервера.

Посмотрите полученный тестовый .ini, включая обе строки выбора. Сохраните синтаксис, префиксы и разделители, созданные этой сборкой. В старых обсуждениях Build 42 встречаются противоречивые советы по обратным слешам и checksum. Переносить одну такую строку на все релизы ненадёжно. Обсуждение dedicated server показывает именно разногласия, а не универсальное решение.

На остановленном сервере перенесите только нужные тестовые настройки в отдельный профиль. Держите пароль закрытым и проверьте владельца файлов назначения. Не заменяйте рабочий профиль и базы аккаунтов. Запустите пробу комплектным launcher с новым именем сервера. Если используются прежние порты, основной процесс предварительно остановите.

Выбирайте действие по первой существенной ошибке#

НаблюдениеЧто проверять дальше
Скачивание Workshop не достигает готового состоянияДоступность элемента, связь со Steam, место на диске и права записи
Элемент установлен, но обязательный компонент не найденСгенерированный выбор, метаданные подходящей версии и зависимости
Сервер запускается, но клиент сообщает о разных файлахТочную сборку игры, выпуски элементов, дубликаты локальных модов и зависимости
Ванильный вход работает, небольшой тест модов — нетПервую ошибку конкретного мода и условия мультиплеера от автора
Не работает только старый мирИсторию зависимостей мира и отдельное восстановление полного комплекта

Обновляйте отдельный проблемный элемент после сохранения текущего состояния и чтения ошибки скачивания. Удаление всего Workshop-кеша делает переменными сразу все пакеты. Не отключайте проверку Lua checksum только ради исчезновения сообщения: выясните, почему стороны загрузили разный контент.

Сохраните исходный мир на время экспериментов#

Перед изменением рабочего сервера выполните штатные save и quit, дождитесь выхода и сохраните вне машины настройки, мир, базы аккаунтов и подходящую установку. По возможности запишите точные версии скачанных модов: содержимое Workshop может измениться при неизменном ID элемента.

Сначала проверяйте новый мир. Добавляйте зависимость и использующие её моды вместе, затем расширяйте список записанными группами. Удаление библиотеки при сохранении зависимого компонента не помогает локализовать конфликт. Для карт нужны отдельные условия автора по расположению и существующим мирам: изученные области нельзя считать автоматически пересоздаваемыми.

После удачного теста примените проверенный выбор во время запланированной остановки. Войдите обычным подходящим клиентом, проверьте конкретную функцию мода, сохраните мир, перезапустите сервер и подключитесь снова. При неудаче остановитесь и восстановите весь исходный совместимый комплект. Не объединяйте тестовый мир и базы игроков с резервной копией; неудачный тест лучше оставить отдельно для диагностики.