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. Перед установкой сервера Palworld, нам нужно скачать пакет Steamworks SDK и достать steamclient.so из этого пакета
steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/steamworks' +login anonymous +app_update 1007 +quit
Этот процесс может занять несколько минут
6. Далее нужно создать каталог, в котором сервер Palworld, будет искать файл 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. Скачиваем сервер Palworld
steamcmd +force_install_dir '/home/steam/Steam/steamapps/common/pw_server' +login anonymous +app_update 2394010 validate +quit
/home/steam/Steam/steamapps/common/pw_server - директория куда будет скачан сервер
При успешном скачивании сервера вы увидите строку: Success! App '2394010' fully installed.
9. Переходим в директорию с сервером и запускаем его
cd /home/steam/Steam/steamapps/common/pw_server/
./PalServer.sh
При успешном запуске сервера вы увидите строку Running Palworld dedicated server on :8211
10. Нажимаем CTRL + С для остановки сервера
11. Далее нужно изменить настройки сервера
Для удобства перенесем стандартные настройки и отредактируем их
cp DefaultPalWorldSettings.ini Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
nano Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
После открытия файла конфигурации для удобства поиска настроек можно использовать CTRL + W и в появившемся поле указать название настройки
Основные параметры которые часто изменяются:
- ServerName - имя сервера ( отображается в поиске )
- ServerDescription - описание сервера
- ServerPassword - пароль сервера
- PublicPort - порт сервера ( стандартный 8211 )
- ServerPlayerMaxNum - количество игроков на сервере
- BaseCampMaxNumInGuild - максимальное кол-во баз для каждой гильдии
- BaseCampWorkerMaxNum - максимальное кол-во палов на базе ( Макс 50 )
- ExpRate - множитель опыта
- PalEggDefaultHatchingTime - скорость вылупления палов из яиц
🔵 Остальные названия параметров можно посмотреть в официальной документации ( ссылка )
После внесения изменений нужно сохранить и закрыть файл, нажав CTRL + X, Y, а затем ENTER
12. После настройки сервера, нужно зайти под пользователем с правами администратора и создать службу, которая при запуске или перезагрузки машины с Linux, будет запускать сервер
exit
sudo nano /etc/systemd/system/pw_server.service
13. Вставляем в файл строки
[Unit]
Description=Palworld 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/pw_server' +login anonymous +app_update 2394010 +quit
ExecStart=/home/steam/Steam/steamapps/common/pw_server/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS > /dev/null
Restart=always
[Install]
WantedBy=multi-user.target
- -useperfthreads: Это опция Unreal Engine, которая позволяет использовать потоки для повышения производительности
- -NoAsyncLoadingThread: Используя это, мы сообщаем серверу, что не будем использовать отдельный поток для асинхронной загрузки. Это сделано для сокращения количества запущенных потоков и повышения производительности сервера
- -UseMultithreadForDS: Последний вариант — это опция, которая указывает движку использовать многопоточность для выделенного сервера
После завершения написания службы сохраните и закройте её, нажав CTRL + X, затем Y и ENTER
14. Теперь нужно включить запуск сервера при запуске машины и запустить его
sudo systemctl enable pw_server
sudo systemctl start pw_server
Так же можно остановить работу сервера
sudo systemctl stop pw_server
И перезапустить работу сервера
sudo systemctl restart pw_server
15. Для того чтобы подключиться к серверу зайдите в клиент игры -> Присоединиться к совместной игре ->Введите внизу ip:порт сервера
( 127.0.0.1:8211 )
Если сервер находится у вас в локальной сети не забудьте пробросить порты на своем маршрутизаторе, которые указали в настройках сервера ( стандартные 8211), чтобы игроки из вне подключались к вашему серверу.
16. Если на Linux машине включен firewall, нужно добавить порты в разрешенные
sudo ufw allow 8211
17. Если у вас уже есть мир, мы можете перенести его в директорию
/home/steam/Steam/steamapps/common/pw_server/Pal/Saved/SaveGames/0/