Whitelist, бан и модерация Palworld-сервера
Модерация Palworld: бан и кик по SteamID через RCON, banlist.json, BanListURL от Pocketpair, приватный вход через ServerPassword и bUseAuth, защита от гриферов.
Публичный Palworld-сервер без модерации быстро превращается в помойку: боты-регистрации, гриферы, ломающие чужие базы, спам в чате. У Palworld нет привычного whitelist из коробки, но есть полноценный арсенал для контроля - бан и кик по SteamID через RCON и внутриигровые команды, глобальный список банов Pocketpair, приватный вход по паролю и набор anti-grief параметров в конфиге. В этой статье собран рабочий workflow модерации: как банить и разбанивать, где хранятся баны, чем заменить отсутствующий whitelist и как закрутить гайки против гриферов. Установку сервера тут не дублируем - она разобрана в установке Palworld dedicated server, а базовый PalWorldSettings.ini - в настройках Palworld-сервера.
Модель идентификации игроков
Вся модерация в Palworld строится вокруг SteamID64 - 17-значного числа, привязанного к Steam-аккаунту игрока. При включённой авторизации (bUseAuth=True) сервер знает реальный Steam ID каждого подключившегося, и именно по нему выдаются баны и кики.
Есть два формата идентификатора, и их важно не путать:
| Формат | Пример | Где встречается |
|---|---|---|
| SteamID64 (raw) | 76561198012345678 | Вывод ShowPlayers, banlist.json |
| Palworld UID | steam_76561198012345678 | Аргумент команд BanPlayer/KickPlayer |
| Внутриигровой PlayerUID | 123456789 | Некоторые команды и REST API |
Первым делом получаем список онлайна с идентификаторами - без него банить некого. Команда ShowPlayers возвращает CSV: имя, PlayerUID и SteamID.
rcon -a 127.0.0.1:25575 -p strong-admin-pass "ShowPlayers"
Пример вывода:
name,playeruid,steamid
Griefer99,123456789,76561198012345678
FriendlyBob,987654321,76561198087654321
SteamID из последней колонки - это то, что нужно для бана. Подробный разбор всех RCON-команд собран в RCON-командах Palworld.
Бан и кик через RCON
RCON - основной канал модерации на боевом сервере: работает с любого клиента (rcon-cli, mcrcon), не требует захода в игру и легко скриптуется. Убедитесь, что в PalWorldSettings.ini включено RCONEnabled=True и задан RCONPort=25575.
Команды модерации
| Команда | Аргумент | Действие |
|---|---|---|
KickPlayer steam_<SteamID64> | SteamID64 | Отключить игрока сейчас, вход не блокируется |
BanPlayer steam_<SteamID64> | SteamID64 | Забанить: кик + запись в banlist.json |
UnBanPlayer steam_<SteamID64> | SteamID64 | Снять бан, удалить из banlist.json |
ShowPlayers | - | Список онлайна с SteamID |
Broadcast <text> | текст | Предупреждение в чат (подчёркивания = пробелы) |
Практические примеры. Кикнуть игрока (например, за AFK или мелкое нарушение - вход остаётся открытым):
rcon -a 127.0.0.1:25575 -p strong-admin-pass "KickPlayer steam_76561198012345678"
Забанить гриффера навсегда:
rcon -a 127.0.0.1:25575 -p strong-admin-pass "BanPlayer steam_76561198012345678"
Снять ошибочный бан:
rcon -a 127.0.0.1:25575 -p strong-admin-pass "UnBanPlayer steam_76561198012345678"
Важные нюансы:
- Префикс
steam_обязателен. КомандаBanPlayer 76561198012345678без префикса на большинстве билдов не срабатывает или банит “в никуда”. - Кик не равен бану.
KickPlayerтолько разрывает текущую сессию - игрок тут же может зайти снова. Для перманентной блокировки нуженBanPlayer. - Бан действует моментально. Забаненный получает разрыв соединения, а при попытке переподключиться отсекается на этапе авторизации.
Внутриигровые команды администратора
Если вы играете на своём сервере и вошли как админ (ввели AdminPassword через меню или команду /AdminPassword <pass> в чате), те же действия доступны прямо в игровом чате:
/BanPlayer steam_76561198012345678
/KickPlayer steam_76561198012345678
/UnBanPlayer steam_76561198012345678
/ShowPlayers
Внутриигровые команды удобны для быстрой реакции “на месте”, но для полноценной модерации публичного сервера RCON надёжнее - он не зависит от того, залогинен ли админ в мире. Полный список админ-команд смотрите в админ-командах Palworld.
Где хранятся баны: banlist.json
После первого BanPlayer сервер создаёт файл со списком банов:
Pal/Saved/SaveGames/Config/banlist.json
Формат - простой JSON-массив строк с идентификаторами в Palworld-нотации:
[
"steam_76561198012345678",
"steam_76561198055554444"
]
Этот файл - источник правды для локальных банов. Что с ним важно знать:
- Правка вручную возможна, но только при остановленном сервере. Palworld держит список в памяти и перезаписывает файл при выходе - если редактировать на живом сервере, изменения затрутся. Останавливаем сервис, правим JSON, запускаем.
- Массовый импорт. Если переносите баны со старого сервера или хотите заранее забанить известных читеров - просто сформируйте корректный JSON-массив и положите его в
Config/banlist.jsonдо старта. - Бэкап. Файл крохотный, но при переустановке сервера его легко потерять. Включите
Config/в свой бэкап-скрипт вместе с папкойSaveGames. - Синтаксис критичен. Битый JSON (лишняя запятая, незакрытая скобка) может привести к тому, что сервер проигнорирует весь список. После ручной правки проверьте файл через
python3 -m json.tool banlist.json.
Пример проверки и бэкапа:
# Валидация JSON
python3 -m json.tool /home/palworld/palserver/Pal/Saved/SaveGames/Config/banlist.json
# Бэкап конфигов вместе с сейвами
tar -czf /backups/palworld-config-$(date +%F).tar.gz \
-C /home/palworld/palserver/Pal/Saved SaveGames/Config
Глобальный BanListURL от Pocketpair
Помимо локального banlist.json, Palworld умеет сверять подключающихся с глобальным списком банов Pocketpair. За это отвечает параметр в PalWorldSettings.ini:
BanListURL="https://api.palworldgame.com/api/banlist.txt"
Это значение стоит по умолчанию и менять его не нужно. Сервер при старте и подключении игроков подгружает список забаненных глобально аккаунтов (пойманные на читах, массовом гриферстве) и не пускает их. По сути это бесплатный anti-cheat-слой от разработчика.
Когда трогать этот параметр:
- Оставить как есть - рекомендованный вариант для 99% серверов. Глобальный список работает в вашу пользу.
- Свой URL - только если у вас сеть серверов и вы хотите централизованно раздавать собственный список банов. Тогда
BanListURLуказывает на ваш эндпоинт, отдающий.txtс идентификаторами. Это продвинутый сценарий, требующий своей инфраструктуры. - Пустое значение отключает сверку с глобальным списком - делать так не стоит, вы лишаетесь защиты без всякой выгоды.
Pterohost - игровой хостинг с DDoS-защитой и RCON из коробки для быстрой модерации Palworld. Промокод 4START даёт -20% на первый заказ. Арендовать Palworld сервер
Whitelist: чем заменить отсутствующий белый список
Главное разочарование администраторов: в ванильном Palworld нет whitelist по SteamID. Нельзя задать список разрешённых аккаунтов и отсечь всех остальных штатными средствами. Но задачу “пускать только своих” решают три подхода.
Вариант 1: ServerPassword - приватный сервер по паролю
Самый простой и надёжный способ сделать сервер закрытым - задать пароль входа:
ServerPassword="secret2026"
При заданном ServerPassword клиент запрашивает пароль перед заходом в мир. Никто без пароля не подключится - фактически это whitelist “по знанию пароля”. Плюсы: работает из коробки, не требует модов. Минусы: пароль легко расшарить, отозвать доступ конкретному человеку без смены пароля для всех нельзя.
Практика: для клановых и приватных серверов ServerPassword закрывает 90% потребности. Меняйте пароль периодически, если состав игроков поменялся.
Вариант 2: bUseAuth - защита от ботов и пираток
bUseAuth=True
Это не whitelist, но обязательный базовый барьер. С включённой авторизацией:
- Каждый игрок подключается под реальным Steam-аккаунтом, SteamID виден в ShowPlayers.
- Боты и клиенты без валидной Steam-аутентификации отсекаются - именно они массово регистрируются и гриферят на открытых серверах.
- Баны по SteamID работают надёжно, потому что идентификатор нельзя подделать.
bUseAuth=True должен стоять на любом публичном сервере. Отключать его - значит открыть дверь ботоводам.
Вариант 3: community-моды для белого списка
Если нужен именно классический whitelist по SteamID (пускать только перечисленные аккаунты), это реализуют сторонние решения:
- Серверные плагины на базе UE4SS-модов, читающие свой
whitelist.txtи кикающие всех, кого в нём нет. - Внешние обёртки-мониторы (скрипты, дергающие REST API
/v1/api/playersи вызывающие KickPlayer для чужаков).
Минус - нестабильность: моды не поддерживаются Pocketpair и ломаются с обновлениями сервера. Про моддинг-инфраструктуру подробнее в статье о модах Palworld-сервера. Для боевого сервера комбинация ServerPassword + bUseAuth обычно предпочтительнее хрупких модов.
| Задача | Штатное решение | Оговорка |
|---|---|---|
| Закрыть сервер для чужих | ServerPassword | Пароль расшаривается, точечно не отозвать |
| Отсечь ботов и пиратки | bUseAuth=True | Обязательно на публичных серверах |
| Список разрешённых SteamID | community-мод | Нестабилен, ломается на обновлениях |
| Заблокировать конкретного | BanPlayer | Работает из коробки, самый надёжный |
Защита от гриферов: anti-grief настройки
Даже с закрытым входом гриферство возможно - внутри клана или на публичном PvE. Несколько параметров PalWorldSettings.ini снимают львиную долю проблем.
Урон между игроками и постройками
bEnablePlayerToPlayerDamage=False
bEnableFriendlyFire=False
bEnablePlayerToPlayerDamage=False полностью выключает урон игрок-по-игроку. Это база любого мирного PvE-сервера: нельзя убить чужого перса, нельзя устраивать засады на новичков. bEnableFriendlyFire=False дополнительно защищает от урона по своим внутри гильдии.
Ограничение зон строительства
bBuildAreaLimit=True
bEnableDefenseOtherGuildPlayer=False
bBuildAreaLimit=True запрещает застраивать чужие базовые зоны - классический приём гриферов, которые ставят фундаменты вокруг чужой базы, блокируя выход и NPC. С включённым лимитом это не пройдёт.
Лимит спама в чате
ChatPostLimitPerMinute=10
Ограничивает число сообщений от одного игрока в минуту. Значение 10 - разумный дефолт: живому человеку хватает, а спам-боты и провокаторы упираются в лимит. Для более строгих серверов можно снизить до 5.
Сводная таблица anti-grief
| Параметр | Значение | Что предотвращает |
|---|---|---|
bEnablePlayerToPlayerDamage | False | Убийства игроков, PvP-засады |
bEnableFriendlyFire | False | Урон по своим в гильдии |
bBuildAreaLimit | True | Застройку и блокировку чужих баз |
bEnableDefenseOtherGuildPlayer | False | Агрессию защитных палов на чужих |
ChatPostLimitPerMinute | 10 | Спам и флуд в чате |
bUseAuth | True | Ботов и поддельные аккаунты |
bCanPickupOtherGuildDeathPenaltyDrop | False | Кражу дропа чужой смерти |
После правки любого из этих параметров сервер нужно перезапустить. Полный конфиг с расшифровкой всех опций - в настройках Palworld-сервера.
Готовый workflow модерации
Как это работает вместе на боевом публичном сервере:
- Базовый барьер входа. В конфиге стоят
bUseAuth=TrueиBanListURLпо умолчанию - боты и глобально забаненные не заходят. Для клановых серверов дополнительноServerPassword. - Anti-grief по умолчанию.
bEnablePlayerToPlayerDamage=False,bBuildAreaLimit=True,ChatPostLimitPerMinute=10- гриферу нечего ломать, а спамить не даёт лимит. - Реакция на инцидент. Жалоба в чате ->
ShowPlayersчерез RCON -> находим SteamID нарушителя. - Первое нарушение - предупреждение и кик.
Broadcastс предупреждением, затемKickPlayerесли игнорирует. - Повтор - перманентный бан.
BanPlayer steam_<id>, запись автоматически уходит вbanlist.json. - Разбор ошибок. Ошибочный бан снимается
UnBanPlayer, при необходимости - ручной правкой banlist.json на остановленном сервере. - Бэкап. Папка
Config/(с banlist.json) иSaveGames/попадают в ежедневный бэкап.
Пример скрипта быстрого бана с предупреждением всем:
#!/bin/bash
# ban.sh steam_76561198012345678 "reason"
RCON="rcon -a 127.0.0.1:25575 -p strong-admin-pass"
STEAMID=$1
REASON=$2
$RCON "Broadcast Player_banned_for_${REASON}"
$RCON "BanPlayer ${STEAMID}"
echo "Banned ${STEAMID} at $(date)" >> /var/log/palworld-bans.log
Ведение лога банов (последняя строка скрипта) помогает разбирать спорные ситуации и не банить одного и того же по кругу.
Pterohost - готовый Palworld в один клик с бэкапами конфигов и защитой от DDoS. Промокод 4START даёт -20% на первый заказ. Заказать Palworld хостинг
Часто задаваемые вопросы
Как забанить игрока на Palworld-сервере по SteamID?
Через RCON командой BanPlayer steam_<SteamID64> или внутриигровой командой /BanPlayer для админа. SteamID64 берётся из вывода ShowPlayers. Бан заносится в Config/banlist.json и действует сразу, кикая игрока с сервера.
Есть ли в Palworld whitelist из коробки?
Нет, официальный белый список отсутствует. Ограничить вход можно через ServerPassword (приватный сервер по паролю) и bUseAuth=True (проверка Steam-аккаунтов от ботов). Полноценный whitelist по SteamID реализуют только community-моды.
Где хранится список банов Palworld?
В файле Pal/Saved/SaveGames/Config/banlist.json внутри папки сервера. Он создаётся после первого бана и содержит массив SteamID в формате steam_
Что такое BanListURL и нужно ли его менять?
BanListURL - ссылка на глобальный список банов Pocketpair (api.palworldgame.com). Сервер сверяет по нему подключающихся и не пускает глобально забаненных читеров. Значение по умолчанию менять не нужно - оставьте его как есть.
Как защитить Palworld-сервер от гриферов?
Отключите PvP-урон через bEnablePlayerToPlayerDamage=False, запретите постройки в чужих зонах через bBuildAreaLimit=True, ограничьте спам чата через ChatPostLimitPerMinute и включите bUseAuth. Злостных нарушителей банят по SteamID через RCON.