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

Перенос одиночного мира Project Zomboid на выделенный сервер: сохранение базы и лута

Как перенести сохранение одиночной игры или кооператива Project Zomboid на Linux-сервер: пути к файлам карты map_p.bin, перенос баз игроков и конвертация базы персонажей players.db.

Перенос одиночного мира Project Zomboid на выделенный сервер: сохранение базы и лута

Многие группы игроков в Project Zomboid начинают совместную игру в локальном кооперативе через хостинг из меню игры или в одиночном режиме. Когда мир развивается, база укрепляется, а объёмы припасов растут, возникает потребность перенести карту на круглосуточный выделенный сервер на Linux. Однако простая попытка скопировать папку сохранения часто приводит к потере инвентаря хоста, сбросу убежища или крашу сервера из-за различий в хранении данных игроков.

В этой статье подробно разобран процесс миграции одиночного мира Project Zomboid на выделенный сервер: структура бинарных файлов карты map_p.bin, сохранение инвентаря через склады и правильная привязка настроек SandboxVars.lua.

Структура каталогов сохранений в одиночной игре и мультиплеере#

Project Zomboid строго разделяет структуру хранения одиночных и многопользовательских миров:

  1. Одиночная игра (клиент):
    • На Windows: %USERPROFILE%\Zomboid\Saves\Sandbox\<SaveName>\ (или Survival)
    • На Linux: ~/Zomboid/Saves/Sandbox/<SaveName>/
  2. Выделенный сервер (Linux):
    • Файлы мира: ~/Zomboid/Saves/Multiplayer/<ServerName>/
    • Конфигурации сервера: ~/Zomboid/Server/<ServerName>.ini
    • Настройки песочницы сервера: ~/Zomboid/Server/<ServerName>_SandboxVars.lua
    • База данных игроков: ~/Zomboid/db/<ServerName>.db (SQLite)

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

Подготовка сохранения: инвентарь персонажа и резервная копия#

Главная ловушка при миграции — потеря экипировки хоста. Поскольку аккаунт администратора сервера создаётся заново при первой авторизации в мультиплеере, персонаж появится в мире «голым».

Перед экспортом выполните регламент подготовки в игре:

  1. Запустите одиночный мир.
  2. Подойдите к безопасной зоне (вашей базе).
  3. Сложите абсолютно все предметы из рюкзака, карманов и экипировки в контейнеры (ящики, шкафы или багажник автомобиля).
  4. Выйдите из игры в главное меню.

На локальном компьютере создайте резервную копию папки сохранения:

bash
cd "$HOME/Zomboid/Saves/Sandbox"
tar -czf singleplayer_save_backup.tar.gz MyWorld

Перенос файлов карты map_p.bin и чанков на Linux-сервер#

Остановите службу сервера на целевом хосте перед загрузкой файлов:

bash
sudo systemctl stop zomboid

Определите имя вашего сервера (по умолчанию servertest). Создайте каталог сохранения на сервере:

bash
SERVER_SAVE_DIR="$HOME/Zomboid/Saves/Multiplayer/servertest"
mkdir -p "$SERVER_SAVE_DIR"

Скопируйте файлы карты из одиночного сохранения в каталог сервера. На выделенный сервер необходимо перенести:

  • map_p.bin — построенные базы, стены, баррикады и модификации карты;
  • map_t.bin — игровое время, календарь и погодные условия;
  • map_meta.bin — мета-зоны и триггеры;
  • map_zone.bin — зоны безопасности;
  • Все файлы chunkdata_*.bin и zombies_*.bin — фактическое состояние изменённых блоков мира.
bash
scp -r MyWorld/* user@server_ip:~/Zomboid/Saves/Multiplayer/servertest/

Проверьте наличие файла map_p.bin в целевой директории:

bash
ls -lh ~/Zomboid/Saves/Multiplayer/servertest/map_p.bin

При использовании централизованной панели управления серверами загрузка и распаковка готовых миров выполняется в один клик через веб-интерфейс без риска повреждения прав доступа Linux.

Синхронизация настроек SandboxVars.lua с конфигурацией сервера#

Одиночный мир содержит файл настроек песочницы map_sand.bin. Выделенный сервер считывает параметры песочницы из текстового скрипта Lua: ~/Zomboid/Server/<ServerName>_SandboxVars.lua

Если настройки не синхронизировать, сервер применит дефолтные правила (например, вернёт стандартную скорость инфекции, сбросит дату отключения воды и электричества или изменит силу зомби).

Скопируйте настройки из одиночной игры или сгенерируйте файл с нужными параметрами:

bash
cat << 'EOF' > ~/Zomboid/Server/servertest_SandboxVars.lua
SandboxVars = {
    Speed = 3,
    Zombies = 3,
    Distribution = 1,
    DayLength = 3,
    StartYear = 1,
    StartMonth = 7,
    StartDay = 9,
    StartTime = 2,
    WaterShut = 2,
    ElecShut = 2,
    WaterShutModifier = 14,
    ElecShutModifier = 14,
    FoodLoot = 2,
    CannedFoodLoot = 2,
    WeaponLoot = 2,
    SurvivalGearsLoot = 2,
    MechanicsLoot = 2,
    LiteratureLoot = 2,
    MedicalLoot = 2,
}
EOF

Убедитесь, что в файле ~/Zomboid/Server/servertest.ini параметр Map= соответствует списку активных карт (например, Map=Muldraugh, KY).

Назначение прав доступа и запуск выделенного сервера#

Убедитесь, что владельцем всех перенесённых файлов является пользователь службы zomboid:

bash
sudo chown -R zomboid:zomboid "$HOME/Zomboid"
sudo chmod -R u=rwX,go=rX "$HOME/Zomboid"

Запустите службу сервера:

bash
sudo systemctl start zomboid
sudo journalctl -u zomboid -f --no-pager

Дождитесь строки инициализации: *** SERVER STARTED ****Подключитесь к серверу под новой учётной записью, доберитесь до вашей базы и заберите экипировку из сундуков. Мир, построенные баррикады и прогресс выживания полностью перенесены на выделенный сервер.

Источники#