MAATRIX GAMES / Блог / Как поднять сервер Palworld: пошаговая инструкция

Как поднять сервер Palworld: пошаговая инструкция

MAATRIX GAMES

Собрались играть в Palworld с друзьями и уже упёрлись в лимиты официального крафтового режима или просто хотите свой мир без чужих гриферов? Свой сервер решает это за полчаса, если знать, куда смотреть — а грабель тут хватает, начиная с того, что игра ест памяти куда больше, чем кажется на первый взгляд. Ниже — рабочая пошаговая инструкция: от требований к железу до автозапуска после перезагрузки.

Системные требования: сколько RAM реально нужно

Palworld — довольно прожорливая игра на сервере, и это стоит понять до аренды VPS, а не после первого краша по нехватке памяти. Официальный минимум от разработчиков (Pocketpair) — 16 ГБ RAM для комфортной игры компании из нескольких человек, но на практике сервер на 4-8 игроков стабильно живёт и на 8 ГБ, если не набивать карту сотнями построек и палов.

Ключевой момент, который ловит новичков: потребление памяти растёт не столько от числа онлайн-игроков, сколько от размера мира — построек баз, количества призванных палов, длины истории сохранений. Сервер, который держал 4 ГБ в первую неделю, через месяц активной стройки может упереться в 6-7 ГБ на пустом месте. Поэтому:

  • 2-4 игрока, казуальный режим — от 8 ГБ RAM, 4 vCPU.
  • 5-8 игроков, активная стройка — от 12-16 ГБ RAM.
  • 8+ игроков или PvP-кластер — от 16 ГБ и выше, лучше с запасом.

CPU тоже важен: Palworld плохо прощает слабые процессоры при большом количестве одновременно активных палов (они все считают ИИ-поведение). Берите VPS с современными ядрами, а не самыми дешёвыми урезанными vCPU — разница в тикрейте симуляции будет заметна сразу.

Диск — от 20-30 ГБ свободного места с запасом под сохранения и бэкапы: сама игра весит около 10-15 ГБ вместе с сервером, но сейвы растут со временем.

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

Palworld Dedicated Server распространяется через Steam как отдельное приложение, поэтому ставим его через SteamCMD — консольный клиент Steam для загрузки без графического интерфейса. На чистом Ubuntu/Debian сначала ставим зависимости:

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd -y

Дальше создаём отдельного пользователя (не работайте от root — это плохая практика для любого игрового сервера) и качаем сам сервер по его App ID — 2394010:

useradd -m palworld
su - palworld
mkdir -p ~/Steam ~/palworld-server
steamcmd +force_install_dir ~/palworld-server +login anonymous +app_update 2394010 validate +quit

Загрузка займёт от 10 до 30 минут в зависимости от канала VPS — файлов там немало. После validate SteamCMD сам проверит целостность и докачает недостающее. Если хотите обновлять сервер регулярно (а разработчики выкатывают патчи часто), сохраните эту команду в отдельный скрипт update.sh — пригодится.

Поднять сервер Palworld за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Первый запуск и структура файлов

После установки в ~/palworld-server появится структура, похожая на:

palworld-server/
├── PalServer.sh
├── Engine/
└── Pal/
    ├── Binaries/
    ├── Content/
    └── Saved/
        ├── Config/
        │   └── LinuxServer/
        │       └── PalWorldSettings.ini
        └── SaveGames/

Файл PalWorldSettings.ini при первом запуске может отсутствовать — он создаётся автоматически после первого старта сервера, либо его нужно скопировать из шаблона DefaultPalWorldSettings.ini, если такой лежит рядом. Смело запускайте сервер один раз просто чтобы сгенерировать конфиги, потом останавливайте (Ctrl+C) и правьте настройки уже осознанно — так проще, чем гадать формат вручную.

Настройка PalWorldSettings.ini

Это главный конфиг сервера — тут задаётся всё: от названия мира до множителей опыта. Структура файла — одна длинная строка OptionSettings=(...) с параметрами через запятую. Открываем ~/palworld-server/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini и правим нужные значения внутри скобок, не ломая синтаксис остальных.

Самые важные параметры для старта:

ServerName="Мой Palworld сервер"
ServerDescription="Для друзей, PvE, лут x2"
AdminPassword="сложный_пароль_админа"
ServerPassword="пароль_для_входа_если_нужен"
PublicPort=8211
PublicIP=""
ServerPlayerMaxNum=8
ExpRate=1.500000
PalCaptureRate=1.500000
PalSpawnNumRate=1.000000
ItemWeightRate=1.000000
DeathPenalty=All
bEnablePlayerToPlayerDamage=False
bEnableFriendlyFire=False
bEnableInvaderEnemy=True
bIsMultiplay=True
bIsPvP=False
DayTimeSpeedRate=1.000000
NightTimeSpeedRate=1.000000

Что тут важно понимать на практике:

  • ServerPlayerMaxNum — не задирайте выше реального числа игроков "про запас": каждый слот в теории увеличивает пиковую нагрузку на память и CPU, даже пустой.
  • bIsPvP=True включает боевой режим между игроками — вместе с ним обычно поднимают bEnablePlayerToPlayerDamage=True, иначе PvP формально включён, но урона друг другу нет.
  • DeathPenalty — на что штрафуется игрок при смерти: None, Item (теряет только предметы из инвентаря), ItemAndEquipment или All (теряет всё, включая палов на руках). Для казуальных серверов с друзьями обычно ставят Item или NoneAll быстро выбешивает новичков.
  • Множители (ExpRate, PalCaptureRate и другие) — это ориентировочные значения "на глаз", а не измеренные оптимальные цифры: тестируйте на своей группе и подстраивайте, универсального "правильного" множителя не существует.

После правки конфига обязательно проверьте, что не сломали синтаксис — одна лишняя или недостающая скобка ) уронит парсинг всей строки, и сервер откатится к дефолтным настройкам молча, без явной ошибки. Это одна из самых частых граблей у новичков.

Запуск через PalServer.sh и первичная диагностика

Сам сервер запускается скриптом PalServer.sh из корня установки:

cd ~/palworld-server
./PalServer.sh -port=8211 -players=8

Для боевой эксплуатации почти всегда используют флаг -useperfthreads (лучше распределяет потоки между ядрами) и -NoAsyncLoadingThread при проблемах с загрузкой на слабом железе, плюс -publiclobby, если хотите видимость сервера в публичном списке лобби Steam:

./PalServer.sh -port=8211 -players=8 -useperfthreads -NoAsyncLoadingThread -publiclobby

Для запуска в фоне без постоянного SSH-подключения проще всего screen или tmux:

screen -S palworld
./PalServer.sh -port=8211 -players=8

Отключиться от сессии — Ctrl+A, затем D, сервер продолжит работать. Вернуться — screen -r palworld.

Логи запуска смотрите прямо в консоли: если сервер падает сразу после старта без явной причины — почти всегда это либо нехватка RAM (сервер убивает OOM Killer системы), либо битый PalWorldSettings.ini. Проверить причину падения по нехватке памяти:

dmesg | grep -i "out of memory"

Если строка есть — увеличивайте RAM или снижайте ServerPlayerMaxNum, третьего варианта тут особо нет.

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

Palworld-сервер по умолчанию слушает UDP-порт 8211 — это основной игровой трафик, и именно UDP, а не TCP, что иногда путают при настройке файрвола. Если играете через REST API сервера (для админ-панелей и внешних инструментов управления), дополнительно нужен TCP-порт 8212 — он не открыт по умолчанию, включается отдельно параметром RESTAPIEnabled=True в конфиге.

На VPS с публичным IP проброс обычно не нужен — достаточно открыть порт в файрволе:

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

Если сервер стоит дома за роутером (не рекомендуем для постоянного проекта — надёжность и аптайм у арендованного VPS ощутимо выше), порты пробрасываются в настройках роутера на локальный IP машины с сервером, плюс тот же UFW/iptables внутри самой машины.

Проверить, что порт реально открыт снаружи, можно любым онлайн-чекером портов, указав свой публичный IP и порт 8211 UDP. Если сервер не виден в списке — почти всегда дело либо в файрволе провайдера/VPS, либо в том, что сам процесс PalServer.sh ещё не поднялся до конца (первый старт с генерацией мира может занять пару минут).

Автозапуск через systemd

Чтобы сервер поднимался сам после перезагрузки VPS или падения процесса, оформите его как systemd-сервис — это надёжнее скринов и не требует ручного контроля. Создайте файл /etc/systemd/system/palworld.service:

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

[Service]
Type=simple
User=palworld
WorkingDirectory=/home/palworld/palworld-server
ExecStart=/home/palworld/palworld-server/PalServer.sh -port=8211 -players=8 -useperfthreads -publiclobby
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Дальше включаем и запускаем:

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

Restart=on-failure — важная страховка: если сервер упадёт по OOM или любой другой ошибке, systemd поднимет его заново через 15 секунд без вашего участия. Логи после этого удобно смотреть через journalctl -u palworld -f вместо консоли screen.

Поднять сервер Palworld за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Сколько игроков реально держит сервер на 8 ГБ RAM?

Комфортно — 3-5 человек в казуальном режиме без огромных баз. При 8+ игроках и активной стройке лучше сразу закладывать 12-16 ГБ, иначе будете упираться в память при первом же крупном ивенте (рейд, массовое строительство).

Можно ли перенести сохранение с локального сервера на арендованный?

Да, копируйте папку Pal/Saved/SaveGames/ целиком с исходной машины на новую с той же версией сервера — версии игры и сервера должны совпадать, иначе сейв может не загрузиться.

Как обновить сервер до новой версии без потери сейвов?

Останавливаете сервис (systemctl stop palworld), запускаете ту же команду SteamCMD с app_update 2394010 validate поверх существующей папки — сейвы в Saved/ не трогаются, обновляются только бинарники игры.

Нужен ли отдельный сервер для модов?

Официальной поддержки модов через Steam Workshop у Palworld на момент написания нет, моды ставятся вручную через сторонние загрузчики — совместимость версий стоит проверять при каждом крупном патче игры, это до сих пор не стандартизировано так, как у Minecraft с Forge или Fabric.

Что делать, если сервер не виден в списке лобби Steam?

Проверьте флаг -publiclobby в команде запуска и что порт 8211 UDP реально открыт снаружи — самая частая причина невидимости именно это, а не баг игры.