Найти в Дзене
FANTSCRIN

Выделенный сервер Project Zomboid на Linux: Ubuntu, Debian

1. Установить SteamCMD ( ссылка )

2. После установки SteamCMD нужно создать пользователя для запуска командной строки Steam. Не рекомендуется использовать пользователя с правами администратора для запуска этого программного обеспечения

sudo useradd -m steam

3. После создания пользователя нужно изменить его файл «.bashrc», чтобы настроить переменную среды пути

На данный момент пользователь не сможет найти только что установленный инструмент SteamCMD, так как отсутствует путь «/usr/games»

Нужно открыть файл для редактирования

sudo nano /home/steam/.bashrc

Далее нужно в конце файла добавить строку

export PATH="/usr/games/:$PATH"

Эта строка добавляет каталог «/usr/games/» в начало переменной среды «PATH»

После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER

4. Далее нужно переключится на пользователя steam и перейти в домашний каталог

sudo -u steam -s
cd

5. Перед установкой сервера Project Zomboid, нам нужно скачать пакет Steamworks SDK и достать steamclient.so из этого пакета

steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/steamworks' +login anonymous +app_update 1007 +quit

Этот процесс может занять несколько минут

6. Далее нужно создать каталог, в котором сервер Project Zomboid, будет искать файл steamclient.so

mkdir -p /home/steam/.steam/sdk64

7. После создания каталога нужно скопировать библиотеку steamclient.so, необходимую для запуска сервера.

cp '/home/steam/Steam/steamapps/common/steamworks/linux64/steamclient.so' /home/steam/.steam/sdk64/

8. Скачиваем сервер Project Zomboid

steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/pz_server' +login anonymous +app_update 380870 validate +quit

/home/steam/Steam/steamapps/common/pz_server - директория куда будет скачан сервер

Этот процесс может занять несколько минут

9. Запускаем сервер Project Zomboid

/home/steam/Steam/steamapps/common/pz_server/start-server.sh

В процессе запуска сервера нужно ввести пароль Администратора

При первом запуске вы увидите несколько ошибок, их можно проигнорировать

10. После того как сервер полностью загрузился ( *** SERVER STARTED **** ), выключаем его комбинацией клавиш CTRL + С

Сохранения и настройки находятся в директории /home/steam/Zomboid

11. Нужно перейти в директорию /home/steam/Zomboid/Server и посмотреть файлы которые в ней есть

cd ~/Zomboid/Server/
ls

servertest.ini - файл с настройками сервера

servertest_SandboxVars.lua - файл с настройками Зомби

servertest_spawnregions.lua - файл с локациями появления персонажа

12. Редактировать файлы можно в терминале с помощью nano или можно зайти в клиент игры, создать свой сервер, назвать его servertest, выбрать нужные настройки, сохранить и перекинуть 3 файла в директорию /home/steam/Zomboid/Server

Файлы сохраненные в клиенте хранятся C:\Users\Пользователь\Zomboid\Server (Windows)

13. Для использования Модов нужно заполнить 2 строчки в файле servertest.ini

  • Mods=
  • WorkshopItems=

Настраивать моды удобнее так же через клиент игры. Для этого нужно подписаться на Моды в мастерской Стим, которые Вам нужны, а так же на 4 Мода:

Mod Manager ( ссылка )
Mod Manager: Load Order Sorter
( ссылка )
Mod Manager: Server
( ссылка )
Mod Options
( ссылка )

После того как добавили моды в подписки, нужно зайти в клиент игры -> далее в
МОДЫ -> внизу справа нажать на сервер -> внизу справа выбрать servertest в Настройках сервера

Далее добавляем все моды на которые подписались. Нужно быть осторожным некоторые моды могут КОНФЛИКТОВАТЬ друг с другом.
Так же для
корректной работы некоторых модов нужны другие моды. Моды (Mod Manager, Mod Manager: Load Order Sorter, Mod Manager: Server) добавлять не нужно

После того как выбрали все необходимые моды, нужно в правом нижем углу нажать на Порядок загрузки модов -> Сортировка -> Ок -> Сохранить

Список модов сохранится в файле servertest.ini, который можно перенести или открыть его для редактирования и скопировать строки Mods=, WorkshopItems= в файл servertest.ini на Linux машине

14. После настройки сервера, нужно создать службу, которая при запуске или перезагрузки машины с Linux, будет запускать сервер. Нужно выйти из пользователя steam

exit
sudo nano /etc/systemd/system/pz_server.service

15. Вставляем в файл строки

[Unit]
Description=Project Zomboid Server
Wants=network-online.target
After=network-online.target
[Service]
User=steam
Group=steam
WorkingDirectory=/home/steam/
ExecStartPre=/usr/games/steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/pz_server' +login anonymous +app_update 380870 +quit
ExecStart=/home/steam/Steam/steamapps/common/pz_server/start-server.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS > /dev/null
Restart=always
[Install]
WantedBy=multi-user.target
  • -useperfthreads: Это опция Unreal Engine, которая позволяет использовать потоки для повышения производительности
  • -NoAsyncLoadingThread: Используя это, мы сообщаем серверу, что не будем использовать отдельный поток для асинхронной загрузки. Это сделано для сокращения количества запущенных потоков и повышения производительности сервера
  • -UseMultithreadForDS: Последний вариант — это опция, которая указывает движку использовать многопоточность для выделенного сервера

После завершения написания службы сохраните и закройте её, нажав CTRL + X, затем Y и ENTER

16. Теперь нужно включить запуск сервера при запуске машины и запустить его

sudo systemctl enable pz_server
sudo systemctl start
pz_server

Так же можно остановить работу сервера

sudo systemctl stop pz_server

17. Для того чтобы подключиться к серверу зайдите в клиент игры -> Сетевая
Введите
Имя сервера, IP линукс машины, порт, Пароль сервера
Имя и пароль - это данные персонажа на сервере, при первом заходе введите их, главное запомните, чтобы при подключение в следующий раз вы зашли под своим персонажем

Если
сервер находится у вас в локальной сети не забудьте пробросить порты на своем маршрутизаторе, которые указали в настройках сервера ( стандартные 16261, 16262), чтобы игроки из вне подключались к вашему серверу.

18. Если на Linux машине включен firewall, нужно добавить порты в разрешенные

sudo ufw allow 16261
sudo ufw allow 16262