LuckPerms: полный гайд по настройке прав на Minecraft сервере
LuckPerms - это фактический стандарт для управления правами на Minecraft серверах. Если у вас Paper, Spigot, Velocity, BungeeCord, Fabric или Forge, и нужно разграничить доступ между игроками, модераторами и админами, скорее всего вы поставите именно его. Плагин живет с 2016 года, активно поддерживается, переварил миллиарды прав на десятках тысяч серверов.
Разберем всё по порядку: установка, первые команды, группы, наследование, префиксы, треки, контексты, веб-редактор, базы данных, синхронизация между серверами в BungeeCord сети, интеграция с PlaceholderAPI и типовые ошибки.
Почему LuckPerms, а не PEX или GroupManager
PermissionsEx (PEX) давно мертв, официально не поддерживается, имеет критические баги с потерей данных и отвратительно работает с современными версиями Paper. GroupManager из EssentialsX тоже считается устаревшим и лишен половины фич. LuckPerms вышел чистым победителем по нескольким причинам:
- Хранение в любой базе: YAML, SQLite, H2, MySQL, MariaDB, PostgreSQL, MongoDB
- Веб-редактор luckperms.net/editor, где можно редактировать права как в админке
- Контексты (мир, сервер, gamemode, dimension) из коробки
- Треки для промоушенов: default → vip → moderator → admin одной командой
- Нормальное API для разработчиков плагинов
- Синхронизация прав между серверами в BungeeCord / Velocity сети через MySQL + messaging
Если у вас до сих пор PEX, самое время мигрировать. Команда миграции встроена: /lp import pex.
Установка
Paper / Spigot / Purpur
- Скачайте последнюю версию с luckperms.net/download. Нужен файл
LuckPerms-Bukkit-5.x.x.jar - Положите его в папку
plugins/ - Перезапустите сервер (не
/reload, это часто ломает плагины) - Проверьте:
/plugins
В списке должен быть LuckPerms зеленым. Если красный, смотрите логи: скорее всего несовпадение версий Java или конфликт с другим permission плагином.
Velocity (прокси)
- Скачайте
LuckPerms-Velocity-5.x.x.jar - Положите в
plugins/папку Velocity - Перезапустите прокси
На Velocity LuckPerms управляет правами для команд самого прокси (переключение серверов, глобальные команды). Для игровых серверов за прокси нужна своя установка.
BungeeCord / Waterfall
Аналогично Velocity - качайте LuckPerms-Bungee-5.x.x.jar, кладите в plugins/ BungeeCord, перезапускайте.
Fabric
- Нужен Fabric Loader и Fabric API
- Скачайте
LuckPerms-Fabric-5.x.x.jar - Положите в
mods/ - Перезапустите сервер
Под Fabric на клиенте LuckPerms не нужен, только на сервере.
Forge / NeoForge
Скачайте LuckPerms-Forge-5.x.x.jar или LuckPerms-NeoForge-5.x.x.jar, положите в mods/, перезапустите.
Матрица поддержки платформ
| Платформа | Поддержка | Примечание |
|---|---|---|
| Paper 1.16+ | Да | Рекомендуемая |
| Spigot 1.8-1.20 | Да | Для старых серверов |
| Velocity | Да | Прокси |
| BungeeCord | Да | Прокси, legacy |
| Fabric 1.17+ | Да | Требует Fabric API |
| Forge 1.16+ | Да | |
| NeoForge | Да | 1.20.1+ |
| Sponge | Да | API 7/8 |
| Nukkit | Да | Bedrock серверы |
Первые шаги
После установки LuckPerms автоматически создает группу default. Все игроки, у которых нет других назначений, попадают в нее. Ее нельзя удалить.
Проверим, что всё работает:
/lp info
Покажет версию плагина, используемый storage backend, messaging сервис и количество уникальных игроков и групп в базе.
Посмотреть список групп:
/lp listgroups
Сразу увидите только default с весом 0.
Создание базовой иерархии групп
На большинстве серверов хватает пяти групп: default, vip, moderator, admin, owner. Создадим их.
/lp creategroup vip
/lp creategroup moderator
/lp creategroup admin
/lp creategroup owner
Теперь нужно задать веса. Вес определяет приоритет при конфликтах (кто кого мьютит, чей префикс показывается) и порядок в сортировках. Чем больше вес, тем выше группа.
/lp group default permission set weight.1 true
/lp group vip permission set weight.10 true
/lp group moderator permission set weight.50 true
/lp group admin permission set weight.100 true
/lp group owner permission set weight.1000 true
Альтернативно, вес можно задать через meta:
/lp group vip meta setweight 10
/lp group moderator meta setweight 50
/lp group admin meta setweight 100
/lp group owner meta setweight 1000
Настройка наследования
Чтобы admin автоматически получал все права moderator, а moderator - все права vip, настроим наследование. Это делается через parent set:
/lp group vip parent set default
/lp group moderator parent set vip
/lp group admin parent set moderator
/lp group owner parent set admin
Теперь дерево выглядит так: default → vip → moderator → admin → owner. Любое право, выданное default, автоматически будет у всех остальных.
Проверим:
/lp group admin info
В разделе Parents увидите moderator, в Inherited Permissions - все ноды из нижестоящих групп.
Выдача прав
Дать группе право
/lp group default permission set essentials.help true
/lp group default permission set essentials.spawn true
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.hat true
/lp group moderator permission set essentials.ban true
/lp group moderator permission set essentials.kick true
Убрать право
/lp group vip permission unset essentials.fly
Unset полностью удаляет ноду. Если нужно явно запретить (например, у группы есть wildcard essentials.*, но вы хотите убрать один конкретный доступ), ставьте false:
/lp group vip permission set essentials.nuke false
Выдать право конкретному игроку
/lp user Steve permission set worldedit.limit.unrestricted true
/lp user Steve parent set vip
Первая команда дает Steve индивидуальное право. Вторая - добавляет его в группу vip.
Временные права
LuckPerms умеет выдавать права с истечением:
/lp user Steve parent add vip 30d
/lp group vip permission set essentials.fly true 7d
Первая строка добавит Steve в vip на 30 дней. Вторая - даст группе право полета на 7 дней.
Поддерживаемые единицы: s (секунды), m (минуты), h (часы), d (дни), w (недели), mo (месяцы), y (годы).
Синтаксис permission nodes
Каждый плагин определяет свои ноды. Обычно они строятся иерархически через точку:
essentials.fly
essentials.home
essentials.home.multiple
worldedit.region.copy
worldedit.region.paste
Wildcards
Звездочка * дает все права ветки:
/lp group admin permission set essentials.* true
/lp group moderator permission set worldedit.region.* true
Это удобно, но опасно. essentials.* откроет команды вроде /fly, /heal, /god, которые вы, возможно, не хотели отдавать модераторам.
Отрицательные права
Ставя false, вы явно блокируете ноду:
/lp group vip permission set essentials.* true
/lp group vip permission set essentials.nuke false
/lp group vip permission set essentials.burn false
VIP получит почти все команды EssentialsX, кроме двух опасных.
Глобальные и root права
Некоторые ноды имеют особое значение:
*- абсолютный wildcard, дает вообще все существующие ноды. Только owner.luckperms.*- все команды LuckPerms. Опасно, позволит игроку раздавать права дальше.-bukkit.command.plugins- запрет команды/plugins, чтобы игроки не видели список плагинов.
Контексты: world, server, gamemode
Контексты позволяют давать права только в определенных условиях. Типичный пример: разрешить /fly в lobby, но не на survival.
/lp group vip permission set essentials.fly true world=lobby
/lp group vip permission set essentials.fly false world=survival
Контексты работают и для групп:
/lp user Steve parent add builder world=creative
Steve получит права группы builder только когда находится в мире creative.
Server контексты
Если у вас несколько серверов под одним LuckPerms (через MySQL + BungeeCord), контексты server= позволяют разделить права:
/lp user Steve permission set essentials.fly true server=survival
/lp user Steve permission set essentials.gamemode true server=creative
Настройка server name делается в config.yml LuckPerms на каждом сервере:
server: survival
Встроенные контексты
Из коробки доступны: world, server, dimension (Forge), gamemode. Аддонами можно добавить region (WorldGuard), faction (Factions) и другие.
Префиксы и суффиксы
LuckPerms сам не рисует префиксы в чате или tab, но хранит их. Отображение - задача Essentials Chat, VentureChat, DeluxeChat или TAB.
Задать префикс группе:
/lp group vip meta setprefix "&a[VIP] "
/lp group moderator meta setprefix "&9[MOD] "
/lp group admin meta setprefix "&c[ADMIN] "
/lp group owner meta setprefix "&4[OWNER] "
Суффикс:
/lp group admin meta setsuffix " &7★"
Префиксы наследуются. Если у игрока нет своего префикса, берется префикс старшей группы по весу.
Несколько префиксов с приоритетами
/lp user Steve meta addprefix 100 "&6[DEV] "
/lp user Steve meta addprefix 50 "&a[VIP] "
Чем выше число, тем приоритетнее. Первый префикс будет отображаться первым.
EssentialsX Chat конфиг
В plugins/EssentialsChat/config.yml (для современных версий формат общий) настройте формат:
chat:
format: '{PREFIX}&f{DISPLAYNAME}&7: &f{MESSAGE}'
Для разных групп можно задать свой формат:
chat:
format: '{PREFIX}&f{DISPLAYNAME}&7: &f{MESSAGE}'
group-formats:
Default: '{PREFIX}&7{DISPLAYNAME}&7: &f{MESSAGE}'
admin: '{PREFIX}&c{DISPLAYNAME}&7: &f{MESSAGE}'
Треки: промоушены и демоушены
Трек - это упорядоченная цепочка групп. Удобно для ранговых систем.
/lp createtrack staff
/lp track staff append vip
/lp track staff append moderator
/lp track staff append admin
/lp track staff append owner
Проверить:
/lp track staff info
Повысить игрока на следующую группу в треке:
/lp user Steve promote staff
Если Steve был vip, станет moderator. Следующая промо - admin.
Понизить:
/lp user Steve demote staff
Серверные треки
Треки работают и с контекстами. Можно промотить игрока только на конкретном сервере:
/lp user Steve promote staff server=survival
Веб-редактор
Самая мощная фича LuckPerms - веб-редактор. Вводите на сервере:
/lp editor
Получите ссылку вида https://luckperms.net/editor/abc123. Открываете в браузере и видите полноценный UI: дерево групп, список прав, контексты, префиксы. Можно править массово, перетаскивать ноды, сортировать.
После изменений жмете Save, получаете код обратно. Вставляете на сервере:
/lp applyedits abc123
И изменения применяются. Это безопасно: редактор не хранит данные о сервере, только снимок, который вы туда отправили.
Открыть редактор только для одной группы:
/lp editor group vip
Только для одного игрока:
/lp editor user Steve
Хранилище
По умолчанию LuckPerms использует H2 - встроенную базу в файле. Для одиночного сервера этого достаточно. Если у вас BungeeCord или Velocity сеть с несколькими бэкенд серверами, нужна MySQL для синхронизации.
Конфигурация в plugins/LuckPerms/config.yml:
storage-method: h2
Варианты: h2, sqlite, yaml, json, hocon, mysql, mariadb, postgresql, mongodb.
MySQL для сети серверов
storage-method: mysql
data:
address: 127.0.0.1:3306
database: luckperms
username: luckperms
password: СЮДА_ПАРОЛЬ
pool-settings:
maximum-pool-size: 10
minimum-idle: 10
maximum-lifetime: 1800000
connection-timeout: 5000
table-prefix: 'luckperms_'
Создание БД и юзера (MySQL 8):
CREATE DATABASE luckperms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'luckperms'@'localhost' IDENTIFIED BY 'СЮДА_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON luckperms.* TO 'luckperms'@'localhost';
FLUSH PRIVILEGES;
LuckPerms сам создаст все таблицы при первом запуске.
Messaging для мгновенной синхронизации
Только MySQL недостаточно. Когда вы меняете права на сервере A, сервер B не узнает об этом, пока не перезапустится или не вызовется ручная синхронизация. Для решения используется messaging:
messaging-service: pluginmsg
Варианты:
pluginmsg- через сам Minecraft proto, бесплатно, требует прокси (BungeeCord/Velocity)redis- нужен Redis серверrabbitmq- нужен RabbitMQsql- через polling MySQL, не мгновенно
Для большинства сетей хватает pluginmsg.
Бэкапы
Экспорт всех данных:
/lp export backup.json.gz
Файл появится в plugins/LuckPerms/. Импорт:
/lp import backup.json.gz
Делайте бэкапы перед большими изменениями (миграции, массовая правка через редактор).
Миграция с других плагинов
С PermissionsEx
/lp import pex
Команда автоматически считает данные PEX и создаст соответствующие группы и права в LuckPerms.
С GroupManager
/lp import groupmanager
С PermissionsBukkit
/lp import permissionsbukkit
После импорта проверьте веса групп и наследование, часто эти данные переносятся не идеально.
PlaceholderAPI интеграция
Установите PlaceholderAPI, затем скачайте экспансию:
/papi ecloud download luckperms
/papi reload
Доступные плейсхолдеры:
| Плейсхолдер | Что возвращает |
|---|---|
%luckperms_prefix% | Префикс игрока |
%luckperms_suffix% | Суффикс игрока |
%luckperms_primary_group_name% | Название основной группы |
%luckperms_groups% | Список всех групп через запятую |
%luckperms_meta_<key>% | Произвольный meta ключ |
%luckperms_has_permission_<node>% | true/false для ноды |
%luckperms_expiry_time_<group>% | Время истечения временной группы |
Использование в TAB плагине:
tablist-name-format: '%luckperms_prefix%%player_name%%luckperms_suffix%'
В скоре (Scoreboard):
lines:
- '&7Group: %luckperms_primary_group_name%'
- '&7Rank: %luckperms_prefix%'
Типовые задачи
Дать VIP право летать
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.fly.others false
Запретить default взрывать TNT
/lp group default permission set worldguard.region.bypass.* false
Плюс в WorldGuard региона mainworld:
/region flag __global__ tnt deny
Дать moderator право банить, но не OP'ить
/lp group moderator permission set essentials.ban true
/lp group moderator permission set essentials.kick true
/lp group moderator permission set essentials.tempban true
/lp group moderator permission set essentials.op false
/lp group moderator permission set minecraft.command.op false
Настроить build-only зону для вип строителей
/lp creategroup builder
/lp group builder parent set vip
/lp group builder permission set worldedit.* true world=build
/lp group builder permission set worldedit.* false world=survival
Дать AFK право одной группе
/lp group afkers permission set essentials.afk true
/lp user Steve parent add afkers 1h
Отладка прав
Verbose mode
Если не понимаете, почему у игрока не работает команда, включите verbose:
/lp verbose on
Теперь LuckPerms начнет писать в лог каждую проверку прав. Попросите игрока сделать действие, и в консоли появятся строки вроде:
[LP] Steve - essentials.fly - true (from group.vip)
[LP] Steve - worldguard.region.bypass.spawn - undefined
Выключить:
/lp verbose off
Сохранить в файл:
/lp verbose record
Потом можно скачать лог через веб-редактор, будет ссылка в консоли.
/lp user info
Показывает всю информацию о игроке:
/lp user Steve info
Увидите primary group, веса, префиксы, суффиксы, контексты, список всех прав.
/lp check
Быстрая проверка одной ноды:
/lp user Steve permission check essentials.fly
/lp user Steve permission check essentials.fly world=survival
Покажет, true или false, и откуда право пришло (inherited from vip, explicit set, default node и т.д.).
Частые ошибки
Изменения не применяются
Почти всегда это кэш. После большой правки выполните:
/lp sync
Или с messaging включенным - просто подождите пару секунд.
Игрок в двух группах одновременно
Если /lp user Steve parent set vip, а потом /lp user Steve parent add moderator, у Steve теперь две родительских группы. Команда set заменяет, add добавляет. Проверяйте через /lp user Steve info.
Префикс не показывается в чате
LuckPerms только хранит. Отображение - это EssentialsX Chat, VentureChat, DeluxeChat, TAB, HuskChat, нужно настроить формат с {PREFIX} или %luckperms_prefix%.
Wildcard не работает
Некоторые плагины (старые версии WorldEdit, например) не регистрируют свои ноды в Bukkit permission API, и wildcard worldedit.* их не захватит. В таких случаях придется прописать ноды явно.
Конфликт с другими permission плагинами
Нельзя иметь PEX и LuckPerms одновременно. Удалите PermissionsEx.jar из plugins/ перед установкой LuckPerms. Проверка:
/plugins
Должен быть только LuckPerms.
Потеря прав после рестарта
Если используется YAML storage и сервер крашится в момент записи, данные могут повредиться. Поэтому на серьезных серверах YAML не используют - только H2, SQLite или MySQL.
Ошибка "SQLSTATE 28000" при подключении к MySQL
Неправильные креды или юзер без прав на БД. Проверьте:
SELECT user, host FROM mysql.user WHERE user = 'luckperms';
SHOW GRANTS FOR 'luckperms'@'localhost';
Пользователь должен иметь ALL PRIVILEGES ON luckperms.*.
Безопасность
Не давайте luckperms.* никому, кроме владельца. Эта нода позволяет давать и отбирать любые права - по сути, делает игрока полным админом. Для модераторов достаточно luckperms.user.info и luckperms.user.parent.add без luckperms.user.parent.set.
Запретите команду op через консоль для всех, кроме owner:
/lp group default permission set minecraft.command.op false
/lp group admin permission set minecraft.command.op false
/lp group owner permission set minecraft.command.op true
В server.properties:
enable-command-block=false
op-permission-level=4
Op игроки имеют все права вообще, независимо от LuckPerms. Вот почему продакшен серверы не используют /op - вместо этого всё делается через LuckPerms группы.
Производительность
LuckPerms написан эффективно и почти не влияет на TPS. Но на больших серверах (500+ игроков, тысячи нод) имеет смысл оптимизировать:
- Используйте MySQL вместо YAML - быстрее lookup
- Не раздувайте права миллионом negative нод, лучше использовать грамотное наследование
- Кэш по умолчанию 60 секунд, это нормально для большинства задач
Посмотреть статистику:
/lp info
Внизу будет время последней синхронизации и размер кэша.
Итог
LuckPerms - мастхэв для любого серьезного Minecraft сервера. Ставится за пять минут, базовая настройка с группами и наследованием занимает полчаса, а дальше просто пополняете права по мере появления плагинов. Веб-редактор экономит часы времени при масштабной настройке, контексты позволяют делать сложные правила по мирам и серверам, треки упрощают систему рангов и донат-лесенок.
Главное правило: сначала настройте дерево групп через наследование, потом добавляйте индивидуальные права игрокам. Если ловите себя на том, что выдаете одно и то же право десяти людям вручную, остановитесь и создайте под это группу. Так система останется поддерживаемой, даже когда сервер вырастет до сотен игроков.
Sunucunuzu DDoS Saldırılarından Koruyun
5 dakikada kurulumla ücretsiz koruma. 1 TB bant genişliği dahil.
Ücretsiz Deneyinİlgili Makaleler
Мой Minecraft сервер ддосят: что делать прямо сейчас
Пошаговый план действий, если ваш Minecraft сервер прямо сейчас под DDoS-атакой. Как определить тип атаки, что делать в первые минуты и как защититься, чтобы это не повторилось.
Как настроить свой домен для Minecraft сервера
Подробное руководство по подключению собственного домена к Minecraft серверу: DNS-записи, SRV-записи, интеграция с защитой MineGuard и типичные ошибки.
Как сделать Minecraft сервер 24/7
Пошаговое руководство по запуску Minecraft сервера в режиме 24/7: выбор между домашним ПК и VPS, настройка screen/tmux, systemd-юниты, автоперезапуск при краше и защита от DDoS.