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-симуляцию.
| Игроков | CPU | RAM | Диск NVMe | Канал |
|---|---|---|---|---|
| 4-8 | 4 ядра 3.0 ГГц | 16 ГБ | 30 ГБ | 100 Мбит/с |
| 8-16 | 4-6 ядер 3.5+ | 20 ГБ | 40 ГБ | 200 Мбит/с |
| 16-32 | 6-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 = стандарт, дальше настраиваем сами |
DeathPenalty | None - ничего не теряем; Item - вещи; ItemAndEquipment - всё; All - предметы, пал, опыт |
PlayerStaminaDecreaceRate | Скорость траты выносливости. 0.5 = вдвое медленнее |
PalCaptureRate | Шанс ловли палов. 1.2-1.5 ускоряет старт |
ExpRate | Множитель опыта игрока |
CollectionDropRate | Выпадение ресурсов из деревьев и камней |
BaseCampMaxNumInGuild | Сколько баз может иметь одна гильдия (по умолчанию 3-4) |
GuildPlayerMaxNum | Игроков в гильдии |
bIsPvP | True включает PvP. Меняется только до старта мира |
RCONEnabled | True для управления через RCON |
RCONPort | Порт RCON, по умолчанию 25575 |
AdminPassword | Пароль администратора. Меняйте обязательно |
ServerPassword | Пароль для входа на сервер |
bUseAuth | True - проверка Steam-аккаунтов, защита от ботов |
bEnableInvaderEnemy | True - случайные рейды на базы (рекомендуем включить для интереса) |
После любых изменений 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. На проде используйте ванильный сервер.