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