Как поднять сервер Project Zomboid: пошаговая инструкция
Соло-выживание в Project Zomboid быстро надоедает, а официальных серверов от разработчиков не существует — только community-хостинг и свой собственный. Если хочется играть с друзьями на своих правилах (без читеров, с нужными модами и настройками лута), придётся один раз аккуратно поднять сервер самому. Это не так страшно, как кажется: ниже — весь путь от чистого VPS до работающего сервера с автозапуском, без прыжков по форумам в поисках недостающего шага.
Содержание
Системные требования и выбор VPS
Project Zomboid не требует мощного железа под сервер, но и на минималках не стоит экономить, если планируете держать 4+ игроков и большую карту с давним сохранением.
Ориентиры по памяти:
| Игроков | RAM (минимум) | RAM (комфортно) |
|---|---|---|
| 1-4 | 4 ГБ | 6 ГБ |
| 5-10 | 6 ГБ | 8 ГБ |
| 10-16 | 8 ГБ | 12+ ГБ |
По CPU важнее не количество ядер, а частота — движок Zomboid однопоточный в критичных местах (симуляция зомби, звук, физика), поэтому 4 быстрых ядра почти всегда лучше 8 медленных. Дисково берите SSD/NVMe — сервер регулярно пишет автосейвы, и на HDD это чувствуется как микрофризы у всех игроков одновременно.
Систему берите Ubuntu 22.04/24.04 LTS или Debian 12 — под них проще всего найти актуальные гайды и пакеты для SteamCMD. Если поднимаете сервер на VPS у MAATRIX GAMES, конфигурация с 4+ ГБ памяти и NVMe уже готова из коробки — не нужно вручную докручивать диск и своп.
Установка через SteamCMD
Project Zomboid Dedicated Server распространяется через Steam под app id 380870, и ставится без покупки игры — сервер бесплатный.
Сначала подготовьте систему (пример для Ubuntu/Debian):
sudo apt update
sudo apt install -y software-properties-common lib32gcc-s1 lib32stdc++6 curl
sudo useradd -m -s /bin/bash pzuser
sudo su - pzuser
Работать под отдельным непривилегированным пользователем — не блажь, а простая защита: если в игре или моде найдут дыру, атакующий не получит root на всей машине.
Дальше ставим SteamCMD и сам сервер:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd.tar.gz
tar -xvzf steamcmd.tar.gz
./steamcmd.sh +force_install_dir ~/pzserver +login anonymous +app_update 380870 validate +quit
Установка обычно занимает 5-15 минут в зависимости от скорости канала — качается около 1-2 ГБ. По завершении в ~/pzserver появится start-server.sh и папка steamapps.
Обновлять сервер до новой версии игры — та же команда app_update 380870 validate, запущенная повторно. Держите её под рукой: разработчики выпускают патчи регулярно, и рассинхрон версий клиента и сервера — частая причина, почему игроки не могут зайти.
Поднять сервер Project Zomboid за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПервый запуск и генерация конфигов
Перед первой настройкой серверу нужно запуститься хотя бы раз, чтобы сгенерировать структуру конфигов и файлов сохранения.
cd ~/pzserver
chmod +x start-server.sh
./start-server.sh -servername servertest
Флаг -servername задаёт имя инстанса — от него зависят имена файлов конфигурации. Если не указать, сервер возьмёт servertest по умолчанию — этим именем и пользуется большинство гайдов, включая этот.
При первом запуске в консоли пробегут строки инициализации мира, генерация карты и загрузка Lua-скриптов — это нормально, может занять пару минут. После того как в консоли появится что-то вроде SERVER STARTED, остановите сервер комбинацией Ctrl+C — конфиги уже созданы, дальше их нужно отредактировать до реального запуска для игроков.
Конфиги лежат в ~/Zomboid/Server/ (папка Zomboid создаётся в домашней директории пользователя, а не внутри pzserver):
~/Zomboid/Server/servertest.ini
~/Zomboid/Server/servertest_SandboxVars.lua
~/Zomboid/Server/servertest_spawnregions.lua
~/Zomboid/db/servertest.db
Файл .db — это база SQLite с миром, персонажами и всем прогрессом. Именно её нужно бэкапить регулярно, а не всю папку сервера.
Настройка servertest.ini
Откройте ~/Zomboid/Server/servertest.ini любым текстовым редактором (nano подойдёт) — это основной файл настроек сети, доступа и базовых правил сервера.
Ключевые параметры, которые стоит проверить и поменять сразу:
PublicName=Мой сервер Zomboid
PublicDescription=Уютный сервер для друзей
Public=false
Password=твой_надёжный_пароль
MaxPlayers=8
PVP=false
PauseEmpty=true
GlobalChat=true
Open=true
DefaultPort=16261
UDPPort=16262
Пояснения по важным пунктам:
- Public —
trueпоказывает сервер в общем браузере серверов игры. Для приватного сервера с друзьями ставьтеfalseи раздавайте IP вручную. - Password — пароль на вход. Без него на
Public=trueсервер довольно быстро найдут случайные игроки. - MaxPlayers — реальный лимит стоит закладывать с запасом по RAM (см. таблицу выше), а не по факту "сколько друзей позвал".
- PauseEmpty — пауза симуляции, когда на сервере никого нет. Экономит CPU, не портит мир простоем.
- DefaultPort/UDPPort — сетевые порты, о них подробнее ниже.
Отдельно про баланс сложности и режима игры — эти настройки живут не в .ini, а в servertest_SandboxVars.lua. Там задаются частота зомби, скорость метаболизма, регенерация лута, погода и десятки других параметров пресета (например, Apocalypse или Builder, либо кастомный набор). Файл достаточно объёмный — комментарии в нём на английском, но названия переменных говорящие: ZombieLore, Loot, StarterKit и так далее. Меняйте по одной переменной за раз и перезапускайте сервер для проверки — так проще найти, что именно сломало баланс, если результат не понравился.
Настройка лута и зомби (SandboxVars)
Самые частые запросы по балансу — это плотность зомби и щедрость лута. Оба блока в servertest_SandboxVars.lua выглядят примерно так:
ZombieConfig = {
Population = 4, -- 1 (мало) - 6 (очень много)
Speed = 2, -- 1 быстрые - 4 медленные (шаффлеры)
Strength = 2,
Toughness = 2,
Transmission = 1, -- заразность через укус/царапину
Cognition = 2, -- насколько "умно" ведут себя толпы
}
Loot = 2, -- 1 очень скудно - 6 очень щедро
Если сервер для новичков или короткой сессии на выходные — есть смысл поднять Loot до 3-4 и снизить Population, чтобы фокус был на строительстве и кооперации, а не на выживании впритык. Для хардкорных RP-серверов, наоборот, часто ставят Population=5-6 и Loot=1-2.
Отдельно обратите внимание на RespawnHours и RespawnUnseenHours — они управляют, как часто пересоздаётся лут и зомби в зонах, где давно не появлялись игроки. Слишком короткий интервал превращает сервер в бесконечный источник ресурсов, слишком длинный — вымораживает карту после первого же прохода игроков.
Точные числовые пороги балансировки сильно зависят от версии игры и вкуса компании — универсального "правильного" пресета нет, ориентируйтесь на готовые пресеты (Apocalypse, Survivor, Builder) как на стартовую точку и донастраивайте под себя.
Проброс портов и сеть
Project Zomboid общается по UDP, и по умолчанию использует диапазон вокруг порта 16261:
16261/udp— основной игровой порт (Steam-соединение и данные)16262/udp— дополнительный UDP-порт
Если сервер стоит на VPS с "белым" IP и без NAT (типичная ситуация для облачного хостинга), пробрасывать порты через роутер не нужно — достаточно открыть их в firewall самой машины. Для ufw на Ubuntu:
sudo ufw allow 16261/udp
sudo ufw allow 16262/udp
sudo ufw status
Если провайдер использует облачный firewall (security group) поверх VPS — например, отдельную панель правил, — те же порты нужно открыть и там, иначе ufw не спасёт: пакеты отфильтруются раньше, чем дойдут до машины.
Проверить, что порт реально слушается, можно так:
sudo ss -ulnp | grep 1626
Если строки с 16261 и 16262 не появились после запуска сервера — проблема не в firewall, а в том, что процесс ещё не поднялся или упал сразу после старта (смотрите лог, см. ниже).
Автозапуск через systemd и автосохранения
Ручной запуск через ./start-server.sh в SSH-сессии — плохая идея на постоянку: сервер упадёт при обрыве соединения или перезагрузке хоста. Правильный способ — systemd-юнит.
Создайте файл /etc/systemd/system/pzserver.service:
[Unit]
Description=Project Zomboid Dedicated Server
After=network.target
[Service]
User=pzuser
WorkingDirectory=/home/pzuser/pzserver
ExecStart=/home/pzuser/pzserver/start-server.sh -servername servertest
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
Активируйте и запустите:
sudo systemctl daemon-reload
sudo systemctl enable pzserver
sudo systemctl start pzserver
sudo systemctl status pzserver
Теперь сервер поднимается сам при перезагрузке VPS и перезапускается через 15 секунд, если процесс упал. Логи смотрите через journalctl -u pzserver -f — это быстрее, чем искать текстовые логи в файловой системе.
Автосохранения настраиваются прямо в игровой консоли сервера (или через RCON) командой:
save
Но полагаться на ручной save не стоит — движок и так пишет мир на диск периодически по внутреннему таймеру, а перед остановкой сервиса важно дать ему корректно завершиться. Не убивайте процесс через kill -9 — это может повредить .db. Правильная остановка — через systemctl stop pzserver, которая отправляет сигнал завершения, и сервер сам дописывает данные перед выходом.
Отдельно заведите внешний бэкап файла ~/Zomboid/db/servertest.db — простой cron-джоб раз в сутки, копирующий базу в отдельную папку или на другой диск, спасёт от порчи файла при сбое питания хоста или неудачном обновлении мода.
Поднять сервер Project Zomboid за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Сколько RAM реально нужно, если играем вдвоём-втроём?
4 ГБ хватает впритык, 6 ГБ — комфортнее, особенно если добавите пару модов на строительство или транспорт.
Можно ли играть без пробитых портов, если сервер дома, а не на VPS?
Да, но тогда нужен проброс портов на домашнем роутере (NAT) в дополнение к firewall самой машины — на облачном VPS с белым IP этот шаг не нужен.
Нужно ли покупать игру для сервера?
Нет, Dedicated Server (app id 380870) бесплатен и ставится через анонимный логин в SteamCMD — покупка нужна только клиентам, которые будут подключаться.
Как обновить сервер до новой версии без потери сохранений?
Запустите app_update 380870 validate заново — файл базы данных в ~/Zomboid/db/ не трогается процедурой обновления самого сервера. Перед крупными обновлениями всё равно сделайте бэкап .db.
Почему игроки не видят сервер в браузере серверов игры?
Чаще всего дело в Public=false в servertest.ini, не открытых UDP-портах 16261/16262 или в том, что сервис ещё не успел полностью подняться — проверьте journalctl -u pzserver -f.
Можно ли сменить карту (пресет сложности) на уже запущенном сервере?
Изменения в SandboxVars.lua применяются после перезапуска сервиса, но полная смена стартовой карты означает новый мир — старый прогресс на прежней карте не переносится автоматически.