Три строки в одном файле решают, будут ли на сервере Project Zomboid моды: WorkshopItems, Mods и Map в <servername>.ini. WorkshopItems - это список чисел, который говорит серверу, что скачать. Mods - список имён, который говорит, что загрузить. Map - список папок карт в порядке приоритета, где ванильная карта стоит последней. Это три разных списка, и значения друг друга они не принимают, что и есть самая частая причина, по которой мод установлен, скачан, лежит на диске и при этом не делает абсолютно ничего.
В этом руководстве разобрано, куда попадают файлы, как найти ID, который на самом деле нужен моду, что порядок загрузки исправляет, а что нет, как работают моды карт и регионы спавна, что Build 42 изменил в папках модов и какие сбои следуют за обновлением мода. Сами параметры песочницы и сервера описаны в статье настройки сервера Project Zomboid; учётная запись администратора и команды, которые понадобятся, когда мод ведёт себя плохо, - в статье команды администратора Project Zomboid.
Как сервер вообще находит мод#
Выделенный сервер Project Zomboid (приложение Steam 380870) читает моды из нескольких мест:
- Загрузки из Workshop. Всё, что перечислено в
WorkshopItems, сервер скачивает сам при запуске вsteamapps/workshop/content/108600/<workshopID>/. Обратите внимание на идентификатор приложения:108600- это игра, а не сервер, потому что контент Workshop принадлежит игре. - Локальные моды. Папки, которые вы загружаете сами, в
Zomboid/mods/<ModID>/. Так запускают мод, которого никогда не было в Workshop, или закрепляют версию, которую автор с тех пор заменил.
Шаг загрузки - причина, по которой установщик просит аккаунт Steam. Выделенный сервер Project Zomboid, как и Arma 3, DayZ и 7 Days to Die, нельзя установить или обновлять с анонимным входом Steam, и контент Workshop тоже. На RE:NODE сервер создаётся сразу, а установка ждёт на вкладке Setup, пока вы не введёте эти данные; они сохраняются так, как вы их набрали, поэтому используйте запасной аккаунт, которому принадлежит игра, а не основной.
Всё, о чём идёт речь в этом руководстве, происходит в Zomboid/, каталоге данных сервера: ~/Zomboid/ в Linux, %USERPROFILE%\Zomboid\ в Windows и та папка, в которую вас помещает панель на управляемом хостинге. Файлы конфигурации лежат в Zomboid/Server/, логи - в Zomboid/Logs/, сохранения - в Zomboid/Saves/Multiplayer/<servername>/.
Workshop ID или ID мода: разница, которая ломает установку#
Элемент Workshop и мод - это не одно и то же.
Workshop ID - число в адресе элемента после ?id=. Оно идентифицирует загрузку. В одном элементе Workshop может быть несколько модов, и во многих так и есть: наборы карт, сборки модов, опубликованные как один элемент, моды, поставляющие необязательное дополнение в той же загрузке.
ID мода - строка, объявленная внутри самого мода, в файле mod.info:
name=Better Firearmsposter=poster.pngid=BetterFirearmsdescription=Adds a set of civilian firearms.require=CommonLibrarymodversion=2.4.1id= - это то, что идёт в Mods=. Он чувствителен к регистру и часто совсем не похож на отображаемое название на странице Workshop. Надёжный способ его узнать - открыть скачанную папку и посмотреть, а не гадать по названию: после первого запуска выведите список содержимого steamapps/workshop/content/108600/ и прочитайте каждый mod.info. Многие авторы указывают ID мода и на странице Workshop, обычно ближе к низу, и доверять этому стоит лишь потому, что вы можете сверить его с файлом.
require= перечисляет ID других модов, которые нужны этому. Сервер не разрешает их за вас: если моду нужна общая библиотека, у библиотеки должен быть свой Workshop ID в WorkshopItems и свой ID мода в Mods раньше него.
Три строки, которые важны в servertest.ini#
Главный файл конфигурации сервера называется по имени сервера, поэтому установка по умолчанию даёт вам Zomboid/Server/servertest.ini вместе с servertest_SandboxVars.lua и servertest_spawnregions.lua. Строки для модов выглядят так:
WorkshopItems=2392709985;2169435993;2875848298Mods=CommonLibrary;BetterFirearms;RavenCreekMap=Raven Creek;Muldraugh, KYЗаписи разделяются точкой с запятой во всех трёх строках, без пробелов после неё. Точка с запятой важнее, чем кажется: в названиях карт бывают запятые (Muldraugh, KY - это одна карта), поэтому список через запятую был бы неоднозначным, и игра его не принимает.
Ещё несколько ключей в том же файле связаны с модами:
| Ключ | По умолчанию | Что делает |
|---|---|---|
CheckModsNeedUpdate | false | Сервер опрашивает Steam на обновления Workshop и пишет в лог, когда одно появляется |
BackupsOnStart | true | Делает backup сохранения при каждом запуске, в том числе после изменения модов |
BackupsOnVersionChange | true | Делает его при смене версии игры |
BackupsCount | 5 | Сколько таких копий хранить |
Open | true | Создаётся ли учётная запись при первом входе или она должна уже существовать |
DefaultPort | 16261 | Игровой порт UDP |
UDPPort | 16262 | Порт UDP для прямого подключения |
Включите CheckModsNeedUpdate. Это ничего не стоит, и это единственное предупреждение, которое вы получите до того, как молча обновившийся мод сломает следующий перезапуск. Учтите, что регистр букв в ini непоследователен для всех ключей файла - копируйте ключ из файла, который сгенерировал сервер, а не из руководства, включая это.
Редактируйте файл при остановленном сервере. Project Zomboid перезаписывает свой ini при штатном завершении, поэтому изменение, внесённое в работающий сервер, обычно затирается в тот момент, когда вы нормально его перезапускаете. Как править файлы на месте, описано в статье SFTP и файловый менеджер; редактор файлов в панели делает то же самое с подсветкой синтаксиса.
Порядок загрузки и конфликты#
Моды загружаются в том порядке, в каком они стоят в Mods=, слева направо. Когда два мода меняют один и тот же файл, побеждает загруженный позже. Отсюда рабочее правило порядка:
- Сначала библиотеки и фреймворки - всё, что другие моды объявляют в
require=. - Затем моды с контентом: оружие, транспорт, предметы, профессии.
- Правки и переопределения в конце, потому что их смысл именно в том, чтобы перебить то, что уже загружено.
- Моды карт - где угодно в списке. Их позиция в
Mods=почти не важна; важнаMap=, это отдельный порядок, о нём ниже.
Честное ограничение этого правила: порядок загрузки разрешает лишь конфликты между модами, которые вносят правки аккуратно. Мод на Lua, заменяющий целую ванильную функцию, побеждает независимо от того, где стоит, а два мода, заменяющие одну и ту же функцию, всегда сломают друг друга - более поздний просто скрывает ущерб до тех пор, пока кто-то не воспользуется тем, что изменил более ранний. Если известно, что два мода конфликтуют, никакой порядок этого не исправит, и ответ - убрать один из них.
Моды баланса, затрагивающие одни и те же значения песочницы, ведут себя так же, а признак неявный: редкость добычи выглядит неправильной, хотя вы её не меняли, потому что мод переписал значение при загрузке. Когда числа не совпадают с тем, что сказано в файле настроек, подозревайте мод раньше, чем настройку.
Моды карт, строка Map и регионы спавна#
Моды карт - это то, в чём люди понимают только половину. Мод карты обычно бывает двумя вещами сразу: обычным модом (значит, его ID нужен в Mods=) и картой (значит, имя его папки нужно в Map=). Установите только что-то одно, и получите один из двух классических симптомов: карта не появляется или появляется, но в зданиях нет нестандартной мебели.
Значение в Map= - это имя папки внутри media/maps/ мода, а ванильная запись должна стоять последней:
Map=Raven Creek;Grapeseed;Muldraugh, KYПриоритет идёт слева направо. Первая запись побеждает в каждой клетке, которую занимает. Поскольку каждый мод карты размещён по фиксированным координатам клеток на той же сетке, что и базовая карта, два мода, построенных для одного и того же пустого угла мира, будут перекрываться, и тот, что указан вторым, теряет пересекающиеся клетки - обычно это значит, что половины города просто нет, а не чистая ошибка. Инструмента, который проверял бы это за вас, нет. Прочитайте на странице Workshop каждой карты координаты её клеток, а если две пересекаются, одну придётся убрать.
Ещё две детали:
- Наборы тайлов. Большинство пользовательских карт зависят от общего мода с тайлами, указанного как обязательный элемент на их странице Workshop. Без него вы получите невидимые стены, пропавшую мебель или блоки пурпурного цвета. Добавьте Workshop ID и ID мода набора тайлов, как любую другую зависимость.
- Точки появления. То, что карта загружена, не делает её местом, где игроки могут начать игру. Регионы спавна объявляются в
<servername>_spawnregions.lua:
function SpawnRegions() return { { name = "Muldraugh, KY", file = "media/maps/Muldraugh, KY/spawnpoints.lua" }, { name = "Riverside, KY", file = "media/maps/Riverside, KY/spawnpoints.lua" }, { name = "Raven Creek", file = "media/maps/Raven Creek/spawnpoints.lua" }, }endПуть file отсчитывается от папок media игры, и мод карты должен на самом деле содержать spawnpoints.lua - не все содержат, а карту без него можно только дойти пешком. Если ваша пользовательская карта не появляется в списке при создании персонажа, в девяти случаях из десяти дело в этом файле.
Что изменил Build 42#
Build 42 вышел в стабильную ветку в июле 2026 года и принёс с собой мультиплеер, так что большинство новых серверов теперь работают на 42, а не на 41. Для администрирования модов важно изменение структуры папок.
- Build 41 кладёт
mod.info,poster.pngиmedia/в корень папки мода. - Build 42 использует подпапки версий. Мод поставляет папку
42/сmod.infoиmedia/рядом с папкойcommon/для содержимого, общего для сборок. Игра загружаетcommon/плюс ближайшую поддерживаемую папку версии.
Практическое следствие: мод для Build 41, положенный на сервер Build 42, не виден вообще. Он не выдаёт ошибку и не предупреждает так, чтобы вы заметили, он просто никогда не появляется в списке загруженных. Если мода, который вы точно установили, нет в выводе консоли при запуске, откройте его папку и проверьте, есть ли в ней 42/.
Поскольку две сборки хотят разную структуру, хорошо поддерживаемый мод поддерживает обе, а заброшенный - нет. Прежде чем добавлять что-либо, проверьте на странице Workshop указанную сборку и ждите, что промежуточные выпуски после стабильного запуска ещё какое-то время будут что-нибудь ломать: мод, работающий на одном патче 42.x, может перестать работать на следующем. Общий вариант этой проблемы описан в статье что делать, когда обновление мода всё сломало.
Клиенты, синхронизация и несовпадение модов#
Project Zomboid справляется с раздачей модов клиентам лучше большинства игр. Когда клиент Steam подключается к серверу с заданным WorkshopItems, он подписывается на эти элементы и скачивает их до входа. Вам не нужно раздавать список модов или архив.
Чего он не терпит, так это несовпадений. Если у игрока другая версия мода, чем на сервере, или загружены лишние моды, меняющие тот же контент, его отключает при подключении или вскоре происходит рассинхронизация. Два случая повторяются постоянно:
- Игрок подписался вручную, и у Steam устаревшая копия. Решение - отписаться, проверить целостность и дать списку сервера скачать мод заново.
- Сервер обновил мод, а игрок не перезапускал Steam. Steam обновляет контент Workshop лениво. Надёжное решение - полный перезапуск клиента, а не только игры.
Моды, работающие только на клиенте, - правки интерфейса, сортировка, миникарты, не добавляющие контента, - допустимы и не требуют присутствия на сервере. Всё, что добавляет предметы, меняет рецепты или затрагивает карту, должно стоять на обеих сторонах в одной и той же версии.
Обновления, удаления и вайп, которого вы не планировали#
Удаление мода на работающем сервере стирает его контент из сохранения. Предметы из этого мода пропадают из каждого контейнера и каждого инвентаря игроков при следующей загрузке соответствующих чанков. Транспорт из мода на транспорт исчезает вместе со всем, что в нём было. Это ожидаемое поведение, а не повреждение, но без backup оно необратимо, и единственный разумный способ попробовать мод - попробовать там, где потерю не жалко.
Практическая последовательность:
- Остановите сервер штатно. Штатная остановка записывает ini и сбрасывает сохранение.
- Сделайте backup и храните его не на сервере.
BackupsOnStartдаёт локальную копию, которая защищает от плохого мода, но не от потери машины - см. backup, которые действительно восстанавливаются. - Меняйте что-то одно. Один мод добавлен или один убран за перезапуск.
- Запустите и прочитайте консоль. Список загруженных модов и все ошибки Lua печатаются в первые тридцать секунд.
- Зайдите сами один раз, прежде чем кому-либо говорить, что сервер вернулся.
На RE:NODE шаги 2 и 5 - те, в которых панель помогает: слоты backup есть на каждом тарифе Project Zomboid и восстанавливаются кнопкой, консоль показывает вывод без фильтрации с нетронутыми трассировками стека Lua, а вкладка Schedules умеет делать backup перед ночным перезапуском, так что всегда есть свежая копия из времени до последнего изменения модов. Backup хранятся вне машины, которую они защищают, и это как раз та половина, которая важна, когда дело не в моде.
Моды стоят и памяти. Базовый сервер чувствует себя комфортно в 3 ГБ для небольшой группы; список из двадцати модов с контентом, пользовательской карты и набора транспорта - это сервер на 6-8 ГБ, и рост в основном приходится на кучу Java, а не на сохранение. Если контейнер упирается в лимит памяти, его останавливают и запускают заново с чистого листа, а не оставляют работать на swap, поэтому список модов, переросший тариф, проявляется как повторяющиеся перезапуски, а не как медленная игра. Общие правила гигиены есть в статье как держать сервер с модами в чистоте; о том, как устроена загрузка в разных играх, - в статье моды Steam Workshop на выделенных серверах.
Диагностика#
Мод скачан, но не загружен. ID мода в Mods= неверный, либо в элементе Workshop другой ID, чем вы предполагали. Прочитайте mod.info в скачанной папке.
Сервер запускается, а затем завершается с ошибкой Lua. Мод несовместим со сборкой или с другим модом. Последнее имя мода, напечатанное перед трассировкой стека, обычно, хотя и не всегда, и есть виновник. Убирайте моды половинами, а не по одному.
Мод карты загружается, но появиться там никто не может. Нет записи в <servername>_spawnregions.lua, или у карты нет spawnpoints.lua.
Половина города с модами пропала. Два мода карт претендуют на одни и те же клетки. Тот, что позже в Map=, проиграл. Проверьте координаты на страницах Workshop обоих.
Игроков выкидывает с сообщением о несовпадении модов. Расхождение версий. Пусть полностью перезапустят Steam; если не помогло, пусть отпишутся и заново подпишутся на мод, названный в сообщении.
Вчера всё работало. За ночь обновился элемент Workshop. При CheckModsNeedUpdate=true консоль сообщила бы об этом. Это довод в пользу того, чтобы хранить копию каждой рабочей папки мода, чтобы вернуть версию вручную.
Сервер зависает на минуты при запуске. Это нормально при длинном списке модов и пользовательской карте в первый раз, потому что карту нужно проиндексировать. Если так происходит при каждом запуске, один из модов делает при загрузке работу, которой делать не должен.
FAQ#
Где найти ID мода, а не его Workshop ID?
В mod.info внутри папки мода, в строке id=. После того как сервер один раз скачал элемент, папка лежит в steamapps/workshop/content/108600/<workshopID>/. Страница Workshop часто тоже его указывает, но авторитетом остаётся файл.
Должны ли игроки сами устанавливать моды?
Нет. Клиент Steam, заходящий на сервер с заданным WorkshopItems, скачивает и включает эти элементы автоматически. Вручную им приходится действовать только тогда, когда Steam закэшировал устаревшую версию, что обычно лечится полным перезапуском Steam.
Можно ли добавить мод карты в мир, в котором уже играют?
Да, добавление безопасно: новые клетки пусты, пока кто-нибудь в них не зайдёт. Убирать мод карты из работающего сохранения небезопасно, а изменение того, какие карты пересекаются, фактически равносильно вайпу пересекающейся области.
Сколько модов может запускать сервер Project Zomboid?
Жёсткого предела нет, люди запускают и по пятьдесят. Практические пределы - память и время запуска. Закладывайте примерно 3 ГБ для ванильной игры с группой и 6-8 ГБ, когда у вас двадцать модов с контентом и пользовательская карта.
Почему мои предметы пропали после перезапуска?
Мод был убран или не загрузился, и сохранение выбросило всё, что ему принадлежало. Восстановите backup, сделанный до изменения, верните мод в той же версии и только потом решайте, хотите ли вы всё-таки его убрать.
Важен ли порядок загрузки для модов карт?
В Mods= он почти не важен. В Map= он решает всё: первая запись побеждает в любой клетке, на которую претендуют две карты, а Muldraugh, KY стоит последней, чтобы ванильный мир заполнил то, что моды не разместили.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.