Сначала выберите мир, который нужно сохранить, и только затем ветку Steam. У группы с существующим миром Build 41 и у нового сервера Build 42 разные требования. Замена исполняемого файла не превращает старое сохранение в поддерживаемое новое.
На дату проверки, 18 октября 2026 года, опубликован релиз 42.21 Stable. Инструкции, называющие весь мультиплеер Build 42 исключительно unstable, устарели. Это контекст конкретного релиза: перед обслуживанием сравните версии, доступные именно сейчас.
Примеры продолжают руководство по Linux-серверу: пользователь pz, установка /srv/pz/server, данные /srv/pz/Zomboid, имя servertest. Результат — либо сохранение работоспособной старой группы, либо действительно отдельный тест нового мира Build 42.
Решите, сохраняете вы мир или создаёте новый#
В объявлении о переходе на Build 42 разработчик указывает ветку legacy41 для оставшихся на Build 41 и прямо говорит о несовместимости сохранений 41 и 42. Там же описана граница совместимости между отдельными выпусками Build 42. Одного совпадения первой части номера для восстановления недостаточно.
Запишите вместе полную версию сервера, полную версию клиента и мир, последний раз сохранённый этой версией. Добавьте список модов и команду запуска. Если группа хочет продолжать существующий мир, сохраняйте подходящую legacy-установку. Для новой игры выбирайте текущую стабильную ветку и новый мир. Unstable оставьте отдельному тесту, возможную потерю которого группа принимает.
Не переименовывайте старое сохранение в каталог нового сервера ради эксперимента. Не откатывайте исполняемый файл поверх единственной копии данных, уже записанных новой версией. Возврат выполняется восстановлением исходной согласованной установки и данных, а не обратным преобразованием мира.
Зафиксируйте фактически работающую установку#
В административном SSH-сеансе выполните:
getent passwd pz
sudo -iu pz sh -c 'printf "%s\n" "$HOME"; ls -ld /srv/pz/server /srv/pz/Zomboid'
sudo -iu pz sed -n '1,100p' /srv/pz/server/start-server.sh
sudo -iu pz find /srv/pz/Zomboid/Logs -maxdepth 2 -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n'
Прочитайте версию в начале текущего журнала. Проверьте реальный launcher, рабочий каталог, имя сервера и встроенную среду выполнения. Запишите изменения лимитов памяти: проверка Steam может заменить файлы установки. Не выводите пароли и не отправляйте всю конфигурацию в публичное обсуждение.
На каждом игровом компьютере проверьте выбранную версию Steam и номер уже запущенного клиента. Игрок мог переключить ветку, но не дождаться загрузки. Исправьте это расхождение до проверки портов и удаления модов.
Остановите игру и сохраните старое состояние целиком#
Предупредите игроков и отключите автоматический перезапуск в используемом supervisor. В серверной консоли отправьте save, дождитесь сохранения, затем quit и возврата в оболочку. Убедитесь, что процесс завершился и игровые сокеты исчезли. Если supervisor поднимает его снова, сначала устраните этот повторный запуск.
Пример создаёт закрытый архив установки и постоянных данных. Он прекращает работу, если обнаружен вероятный игровой процесс или занят один из стандартных UDP-портов. До запуска замените порты, если у вас они другие:
(
set -eu
pz_processes=$(pgrep -u pz -f 'zombie.network.GameServer|ProjectZomboid64|(^|/)java( |$)' || test "$?" -eq 1)
if [ -n "$pz_processes" ]; then
printf '%s\n' 'Stop the game and confirm a completed save first.' >&2
exit 1
fi
pz_sockets=$(sudo ss -H -lun 'sport = :16261 or sport = :16262')
if [ -n "$pz_sockets" ]; then
printf '%s\n' 'Expected game ports are still in use.' >&2
exit 1
fi
sudo install -d -o root -g root -m 700 /var/backups/pz
pz_snapshot=$(sudo mktemp -d /var/backups/pz/pre-branch-XXXXXXXX)
sudo tar -czf "$pz_snapshot/server-and-data.tar.gz" -C /srv/pz server Zomboid
sudo chmod 600 "$pz_snapshot/server-and-data.tar.gz"
sudo tar -tzf "$pz_snapshot/server-and-data.tar.gz" >/dev/null
printf 'Private archive directory: %s\n' "$pz_snapshot"
)
Проверки консервативны и сами по себе не доказывают штатное сохранение: подтверждение в консоли выше остаётся обязательным. Сохраните описание сборки рядом с архивом и перенесите копию с машины защищённым способом. В настройках и базах находятся пароли и данные игроков. Читаемый архив ещё не подтверждает успешное восстановление.
Выберите ветку, не затирая сохранённую установку#
Для клиентов Build 41 откройте Steam → Properties → Game Versions & Betas и выберите документированную разработчиком legacy41, если она по-прежнему доступна. Для dedicated server сначала посмотрите ветки его собственного приложения Steam. Нельзя автоматически считать, что любая клиентская ветка существует и у app 380870:
sudo -iu pz /usr/games/steamcmd +login anonymous +app_info_update 1 +app_info_print 380870 +quit
Проверьте полученные сведения и актуальные указания разработчика перед скачиванием. Если нужная ветка недоступна, остановитесь: сохранённая совместимая установка полезнее угаданного названия. Legacy-сервер не должен попадать под автоматический updater, незаметно следующий за public.
Для нового теста Build 42 используйте отдельного Linux-пользователя и HOME, например pz42test и /srv/pz42test, а также отдельную установку. Пройдите руководство по настройке, последовательно заменяя эти значения. Сгенерируйте новую конфигурацию и мир, не копируя данные Build 41 в этот HOME. При тесте на тех же портах основной сервер должен быть остановлен; иначе нужна полная сетевая изоляция теста.
Проверьте результат до приглашения всей группы#
Сначала войдите в ванильный тест одним подходящим клиентом. Затем проверяйте выбранные моды с заявленной поддержкой мультиплеера. Поддержка Build 42 на странице Workshop не означает совместимость с любым небольшим обновлением и любым режимом.
Для сохранённого legacy-мира проверьте знакомое место и персонажа обычного игрока после перезапуска. Для возврата остановите тест и восстановите исходную установку с полным комплектом данных, правильным владельцем и именем сервера. Не объединяйте тестовые базы со старой копией. До принятия результата группой держите тест отдельно, после чего запишите, какая установка, ветка и мир теперь используются постоянно.




