Pterohost docs

Palworld dedicated server: установка и настройка

Установка Palworld dedicated server через SteamCMD на Linux: порт 8211 UDP, PalWorldSettings.ini, RCON-команды, бэкапы папки saved и оптимизация под 32 игрока.

Palworld после релиза 1.0 в конце 2024 года перестал быть мемом и превратился в полноценную выживалку с PvE-фермами палов и PvP-режимом. Соло мир заканчивается на десятой палотехнологии, а кооператив через Invite Code ограничен 4 игроками и привязан к хосту. Решение - dedicated server: до 32 игроков, фиксированный IP, бэкапы, RCON. В этой статье ставим Palworld dedicated server через SteamCMD на Linux, разбираем PalWorldSettings.ini, RCON-команды и оптимизацию под высокий онлайн.

Системные требования Palworld сервера

Palworld написан на Unreal Engine 5 и требует заметно больше ресурсов, чем V Rising или Valheim. Память расходуется на загруженные чанки вокруг каждого игрока (radius load), активных палов в базах и AI-симуляцию.

ИгроковCPURAMДиск NVMeКанал
4-84 ядра 3.0 ГГц16 ГБ30 ГБ100 Мбит/с
8-164-6 ядер 3.5+20 ГБ40 ГБ200 Мбит/с
16-326-8 ядер 3.5+24-32 ГБ60 ГБ500 Мбит/с

Palworld хорошо параллелится по сравнению с Valheim, но всё равно один-два потока CPU остаются самыми загруженными. NVMe SSD обязателен - на HDD автосейв в 32-игрока мире может занимать 10-15 секунд и фризить весь сервер.

Установка через SteamCMD на Linux

Серверный билд Palworld выходит для Linux официально. App ID - 2394010. Ставим на чистом Ubuntu 22.04/24.04 или Debian 12.

Подготовка системы

# Добавляем 32-bit архитектуру для SteamCMD
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository multiverse
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 curl wget

# Создаём отдельного пользователя
sudo useradd -m -s /bin/bash palworld
sudo su - palworld

Скачивание сервера

mkdir -p ~/palserver
steamcmd +force_install_dir /home/palworld/palserver \
  +login anonymous \
  +app_update 2394010 validate \
  +quit

Загрузка займёт 5-10 минут (около 8 ГБ).

Первый запуск

Palworld сервер требует SteamSDK. Сделаем симлинки:

mkdir -p ~/.steam/sdk64
ln -s /home/palworld/palserver/linux64/steamclient.so ~/.steam/sdk64/steamclient.so

Запуск:

cd ~/palserver
./PalServer.sh \
  -useperfthreads \
  -NoAsyncLoadingThread \
  -UseMultithreadForDS \
  port=8211 \
  players=32

Параметры:

  • -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS - рекомендованный набор для производительности. Включает многопоточность сервера.
  • port=8211 - игровой порт UDP.
  • players=32 - максимум онлайна (1-32).

После первого запуска сервер создаст структуру конфигов в Pal/Saved/Config/LinuxServer/. Останавливаем (Ctrl+C) и идём настраивать.

Конфигурация PalWorldSettings.ini

Главный конфиг лежит в Pal/Saved/Config/LinuxServer/PalWorldSettings.ini. По умолчанию там почти пусто - все настройки одной строкой в формате OptionSettings=(Key=Value,Key=Value,...).

Шаблон лежит в DefaultPalWorldSettings.ini в корне сервера - копируем его содержимое в PalWorldSettings.ini и редактируем.

Пример рабочего конфига для PvE-сервера на 16 игроков:

[/Script/Pal.PalGameWorldSettings]
OptionSettings=(Difficulty=None,DayTimeSpeedRate=1.000000,NightTimeSpeedRate=1.000000,ExpRate=1.500000,PalCaptureRate=1.200000,PalSpawnNumRate=1.000000,PalDamageRateAttack=1.000000,PalDamageRateDefense=1.000000,PlayerDamageRateAttack=1.000000,PlayerDamageRateDefense=1.000000,PlayerStomachDecreaceRate=1.000000,PlayerStaminaDecreaceRate=0.700000,PlayerAutoHPRegeneRate=1.000000,PlayerAutoHpRegeneRateInSleep=1.000000,PalStomachDecreaceRate=1.000000,PalStaminaDecreaceRate=1.000000,PalAutoHPRegeneRate=1.000000,PalAutoHpRegeneRateInSleep=1.000000,BuildObjectDamageRate=1.000000,BuildObjectDeteriorationDamageRate=0.500000,CollectionDropRate=1.500000,CollectionObjectHpRate=1.000000,CollectionObjectRespawnSpeedRate=1.000000,EnemyDropItemRate=1.000000,DeathPenalty=None,bEnablePlayerToPlayerDamage=False,bEnableFriendlyFire=False,bEnableInvaderEnemy=True,bActiveUNKO=False,bEnableAimAssistPad=True,bEnableAimAssistKeyboard=False,DropItemMaxNum=3000,DropItemMaxNum_UNKO=100,BaseCampMaxNum=128,BaseCampWorkerMaxNum=15,DropItemAliveMaxHours=1.000000,bAutoResetGuildNoOnlinePlayers=False,AutoResetGuildTimeNoOnlinePlayers=72.000000,GuildPlayerMaxNum=20,BaseCampMaxNumInGuild=4,PalEggDefaultHatchingTime=72.000000,WorkSpeedRate=1.500000,bIsMultiplay=True,bIsPvP=False,bCanPickupOtherGuildDeathPenaltyDrop=False,bEnableNonLoginPenalty=True,bEnableFastTravel=True,bIsStartLocationSelectByMap=True,bExistPlayerAfterLogout=False,bEnableDefenseOtherGuildPlayer=False,bInvisibleOtherGuildBaseCampAreaFX=False,bBuildAreaLimit=False,ItemWeightRate=1.000000,CoopPlayerMaxNum=4,ServerPlayerMaxNum=16,ServerName="Pterohost Palworld Server",ServerDescription="PvE, friendly, weekly events",AdminPassword="changeme-admin",ServerPassword="welcome2026",PublicPort=8211,PublicIP="",RCONEnabled=True,RCONPort=25575,Region="",bUseAuth=True,BanListURL="https://api.palworldgame.com/api/banlist.txt",RESTAPIEnabled=False,RESTAPIPort=8212,bShowPlayerList=True,ChatPostLimitPerMinute=10,CrossplayPlatforms=(Steam,Xbox,PS5,Mac),bIsUseBackupSaveData=True,LogFormatType=Text)

Самое востребованное:

ПараметрЧто делает
DifficultyПресет (None/Casual/Normal/Hard). None = стандарт, дальше настраиваем сами
DeathPenaltyNone - ничего не теряем; Item - вещи; ItemAndEquipment - всё; All - предметы, пал, опыт
PlayerStaminaDecreaceRateСкорость траты выносливости. 0.5 = вдвое медленнее
PalCaptureRateШанс ловли палов. 1.2-1.5 ускоряет старт
ExpRateМножитель опыта игрока
CollectionDropRateВыпадение ресурсов из деревьев и камней
BaseCampMaxNumInGuildСколько баз может иметь одна гильдия (по умолчанию 3-4)
GuildPlayerMaxNumИгроков в гильдии
bIsPvPTrue включает PvP. Меняется только до старта мира
RCONEnabledTrue для управления через RCON
RCONPortПорт RCON, по умолчанию 25575
AdminPasswordПароль администратора. Меняйте обязательно
ServerPasswordПароль для входа на сервер
bUseAuthTrue - проверка Steam-аккаунтов, защита от ботов
bEnableInvaderEnemyTrue - случайные рейды на базы (рекомендуем включить для интереса)

После любых изменений PalWorldSettings.ini сервер перезапускаем. Параметры, влияющие на генерацию мира (типа bIsPvP), применяются только к новому миру.

Порты и сетевая настройка

Palworld использует:

  • 8211 UDP - игровой трафик (PublicPort из конфига).
  • 25575 TCP - RCON (если RCONEnabled=True).
  • 8212 TCP - REST API (если RESTAPIEnabled=True).

Открываем на firewall:

ufw allow 8211/udp
ufw allow 25575/tcp
ufw allow 8212/tcp  # только если используете REST API
ufw reload

Query-порта в Palworld нет: сервер не публикуется в Steam Server Browser. Игроки подключаются только по IP через “Join Multiplayer Game -> ввести IP:8211”.

RCON: настройка и команды

RCON позволяет управлять сервером через сетевой протокол - кикать игроков, делать broadcast, выключать сервер из любого RCON-клиента.

Подключение

В PalWorldSettings.ini:

RCONEnabled=True,RCONPort=25575,AdminPassword="strong-admin-pass"

Используем rcon-cli (https://github.com/gorcon/rcon-cli) или mcrcon:

# Установка rcon-cli
wget https://github.com/gorcon/rcon-cli/releases/download/v0.10.3/rcon-0.10.3-amd64_linux.tar.gz
tar xzf rcon-0.10.3-amd64_linux.tar.gz
sudo cp rcon-0.10.3-amd64_linux/rcon /usr/local/bin/

# Подключение
rcon -a 127.0.0.1:25575 -p strong-admin-pass

Команды RCON

КомандаОписание
Shutdown <seconds> <message>Плановый шатдаун. Например, Shutdown 60 ServerRestart - выключение через минуту с уведомлением
DoExitНемедленный экзит без сейва (использовать аккуратно)
SaveПринудительный сейв мира
Broadcast <text>Сообщение всем игрокам в чате. Подчёркивания заменяются пробелами
KickPlayer <SteamID>Кик по SteamID
BanPlayer <SteamID>Бан по SteamID
UnBanPlayer <SteamID>Снять бан
ShowPlayersСписок онлайна с SteamID и IP
InfoВерсия и имя сервера

Пример: предупредить о рестарте и сохранить мир.

rcon -a 127.0.0.1:25575 -p admin "Broadcast Server_restart_in_5_minutes"
sleep 240
rcon -a 127.0.0.1:25575 -p admin "Broadcast Restart_in_60_seconds"
sleep 60
rcon -a 127.0.0.1:25575 -p admin "Save"
rcon -a 127.0.0.1:25575 -p admin "Shutdown 10 Restarting_now"

systemd-unit для автозапуска

Файл /etc/systemd/system/palworld.service:

[Unit]
Description=Palworld Dedicated Server
After=network.target

[Service]
Type=simple
User=palworld
Group=palworld
WorkingDirectory=/home/palworld/palserver
ExecStart=/home/palworld/palserver/PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS port=8211 players=32
ExecStop=/usr/local/bin/rcon -a 127.0.0.1:25575 -p strong-admin-pass "Shutdown 10 Server_stopping"
Restart=on-failure
RestartSec=15
TimeoutStopSec=30

[Install]
WantedBy=multi-user.target

Активация:

sudo systemctl daemon-reload
sudo systemctl enable --now palworld
sudo systemctl status palworld

Логи смотрим через journalctl -u palworld -f.

Автосейв и бэкапы

Palworld автоматически сохраняет мир каждые 30 секунд - это поведение прописано в движке и регулируется через консольную переменную, но по умолчанию вмешиваться не нужно. Опция bIsUseBackupSaveData=True в PalWorldSettings.ini заставляет сервер держать резервную копию рядом - если основной сейв повредится при крэше, движок попробует подгрузить бэкап.

Папка сохранений

Pal/Saved/SaveGames/0/<32-символьный-id>/
├── Level.sav            # основной мир
├── LevelMeta.sav        # метаданные
├── WorldOption.sav      # настройки мира
└── Players/             # папка с персонажами
    └── <steam-id>.sav

ID мира создаётся при первом запуске - если хотите сохранить старый мир и перенести на новый сервер, копируйте всю папку 0/<id>/ целиком.

Скрипт бэкапа

#!/bin/bash
SAVE_DIR=/home/palworld/palserver/Pal/Saved
BACKUP_DIR=/backups/palworld
DATE=$(date +%Y%m%d-%H%M)

mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/palworld-$DATE.tar.gz -C $SAVE_DIR SaveGames Config

# Ротация: хранить 14 дней
find $BACKUP_DIR -name "palworld-*.tar.gz" -mtime +14 -delete

Cron: 0 4 * * * /home/palworld/backup.sh - каждую ночь в 4:00.

Перед бэкапом стоит дать команду Save через RCON, чтобы захватить актуальный мир.

Pterohost - хостинг игровых серверов с DDoS-защитой и NVMe SSD. Промокод 4START даёт -20% на первый заказ. Арендовать Palworld сервер

Оптимизация под высокий онлайн

При 20+ игроках Palworld начинает упираться в CPU. Что помогает:

Флаги запуска

-useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS

Эти три флага в команде запуска (см. systemd-unit выше) включают многопоточность и убирают узкое место с асинхронной загрузкой ассетов. По данным сообщества дают 15-30% прирост tickrate.

Параметры конфига для нагрузки

  • DropItemMaxNum=3000 - дефолт. Можно снизить до 1500 для серверов с высоким онлайном, чтобы реже считать предметы на земле.
  • DropItemAliveMaxHours=1.0 - дроп лежит 1 час, потом исчезает. Меньше дроп - меньше нагрузка.
  • BaseCampMaxNumInGuild=3-4 - больше баз = больше активных AI-палов = выше CPU.
  • bAutoResetGuildNoOnlinePlayers=True, AutoResetGuildTimeNoOnlinePlayers=168.0 - удалять гильдии оффлайн неделю, чтобы мир не зарастал.

bUseAuth и защита

bUseAuth=True обязателен на публичных серверах: иначе боты-гриферы массово регистрируются и спамят. С ServerPassword можно сделать сервер приватным.

BanListURL подгружает официальный список банов от Pocketpair - читеров и griefers, забаненных глобально. Стоит оставить дефолтным URL.

DDoS-защита

UDP-сервисы вроде Palworld - частая мишень. На домашнем канале это критично, на хостинге с фильтрацией L3/L4 (как у Pterohost) флуд режется автоматически. Подробнее в статье про защиту от DDoS.

Мониторинг

Базовые метрики, которые стоит трекать:

  • TickRate - можно вытащить через REST API (/v1/api/metrics) если включён RESTAPIEnabled.
  • Онлайн - команда ShowPlayers через RCON.
  • Использование RAM/CPU - через top, htop, или Prometheus + node_exporter.
  • Логи - journalctl -u palworld | grep -i error.

На активном PvE-сервере с 16 игроками и десятком баз нормальные значения - 30-50% одного ядра CPU, 12-18 ГБ RAM. Если RAM растёт без потолка - возможна утечка, помогает плановый рестарт раз в сутки через RCON Shutdown.

Привязка к Steam-аккаунту

Palworld dedicated server использует Steam-аутентификацию (bUseAuth=True). Это значит:

  • Игроки подключаются под своим Steam-аккаунтом.
  • SteamID отображается в ShowPlayers и используется в RCON-командах Kick/Ban.
  • На пиратках/cracked версиях Palworld клиент не сможет подключиться к серверу с включённой авторизацией.

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

Pterohost - готовая инсталляция Palworld в один клик, бэкапы и DDoS-защита. Заказать Palworld хостинг

Часто задаваемые вопросы

Какие системные требования у Palworld dedicated server?

Минимум 16 ГБ RAM, 4 ядра CPU 3.0+ ГГц, 30 ГБ SSD. На полные 32 игрока с активными базами нужно 24-32 ГБ RAM и 6-8 ядер - Palworld агрессивно загружает чанки вокруг каждого игрока.

Какой порт у Palworld сервера?

Основной игровой 8211 UDP. RCON по умолчанию 25575 TCP, REST API - 8212 TCP. Query-порта у Palworld нет, сервер не публикуется в Steam Server Browser.

Как подключиться к Palworld dedicated server?

В главном меню Palworld выберите Join Multiplayer Game, внизу окна введите IP:8211 и нажмите Connect. Если задан Password, клиент попросит его перед заходом.

Где хранятся сохранения Palworld dedicated server?

В папке Pal/Saved/SaveGames/0/<world-id>/. Внутри Level.sav, папка Players с персонажами, WorldOption.sav. Бэкапить нужно всю папку Saved целиком.

Поддерживает ли Palworld dedicated server моды?

Официально нет. Существуют community-форки с поддержкой моддинга через UE4SS, но они нестабильны и не поддерживаются Pocketpair. На проде используйте ванильный сервер.