LuckPerms: полный гайд по настройке прав на Minecraft сервере

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

  1. Скачайте последнюю версию с luckperms.net/download. Нужен файл LuckPerms-Bukkit-5.x.x.jar
  2. Положите его в папку plugins/
  3. Перезапустите сервер (не /reload, это часто ломает плагины)
  4. Проверьте:
/plugins

В списке должен быть LuckPerms зеленым. Если красный, смотрите логи: скорее всего несовпадение версий Java или конфликт с другим permission плагином.

Velocity (прокси)

  1. Скачайте LuckPerms-Velocity-5.x.x.jar
  2. Положите в plugins/ папку Velocity
  3. Перезапустите прокси

На Velocity LuckPerms управляет правами для команд самого прокси (переключение серверов, глобальные команды). Для игровых серверов за прокси нужна своя установка.

BungeeCord / Waterfall

Аналогично Velocity - качайте LuckPerms-Bungee-5.x.x.jar, кладите в plugins/ BungeeCord, перезапускайте.

Fabric

  1. Нужен Fabric Loader и Fabric API
  2. Скачайте LuckPerms-Fabric-5.x.x.jar
  3. Положите в mods/
  4. Перезапустите сервер

Под 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 - нужен RabbitMQ
  • sql - через 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