MAATRIX GAMES / Блог / Permissions-плагины: настройка групп и прав

Permissions-плагины: настройка групп и прав

MAATRIX GAMES

Модератор просит выдать себе команду /kick, а вы понимаете, что либо даёте ему полный оператор со всеми правами разом, либо лезете руками прописывать разрешения каждому новому человеку в команде отдельно. Оба варианта — боль: первый рано или поздно кончится случайно забаненным экономическим плагином, второй не масштабируется дальше пары админов. Permissions-плагин решает это одной моделью — группы, права, наследование — и дальше вы просто раздаёте людям готовые роли, а не гоняетесь за каждым правом вручную.

Как устроен permissions-плагин: группы, права, наследование

Принцип у всех permissions-плагинов один и тот же, независимо от игры и конкретного инструмента. Есть три сущности:

  • Права (permission nodes) — строки вида essentials.kick или worldedit.selection, которые плагины сервера проверяют перед тем, как разрешить игроку действие. Само право ничего не делает без плагина, который его читает — permissions-плагин только хранит, у кого что есть, а решение "пускать или нет" всегда принимает плагин-потребитель (Essentials, WorldEdit, WorldGuard и так далее).
  • Группы — именованные наборы прав (VIP, модератор, админ), которые можно назначать сразу пачке игроков, не расписывая права каждому по отдельности.
  • Наследование — группа может быть "потомком" другой и автоматически получает всё, что есть у родителя, плюс что-то своё сверху. Это и есть механизм, который экономит 90% ручной работы: один раз выстроили цепочку — дальше просто добавляете права в нужное звено.

Дальше игроку назначается одна или несколько групп, и итоговый набор прав считается плагином на лету при каждой проверке команды. Самый известный и на 2026 год фактически стандартный инструмент такого рода для Minecraft — LuckPerms, на нём и разберём всю механику. В конце статьи — как та же логика выглядит в Rust (Oxide/uMod) и в CS2 (SourceMod), если у вас смешанный парк серверов.

Ставим LuckPerms и открываем консоль прав

LuckPerms бесплатен, ставится поверх Paper, Spigot, Purpur, Fabric (через отдельную Fabric-сборку), Sponge, а также на прокси BungeeCord и Velocity — то есть покрывает практически любую конфигурацию Minecraft-сети. Если у вас пока голый ванильный сервер без плагинов вообще, для начала стоит разобраться с чего начать с Bukkit и Spigot плагинами — LuckPerms ставится ровно тем же способом, что и любой другой .jar-плагин.

Порядок действий:

  1. Скачать актуальный .jar с официального сайта luckperms.net (раздел Downloads, сборка под вашу платформу — Bukkit/Spigot/Paper отдельно от Fabric).
  2. Положить файл в папку plugins/ сервера.
  3. Перезапустить сервер (горячая загрузка плагина с нуля через /reload не рекомендуется — LuckPerms сам предупредит об этом в консоли, если попытаетесь).
  4. Проверить, что плагин поднялся:
/lp info

Команда покажет версию, способ хранения данных и подключённые серверы (если у вас сеть из нескольких инстансов через один прокси). По умолчанию LuckPerms хранит данные в собственной SQLite/H2-базе внутри папки plugins/LuckPerms/ — этого достаточно для одного сервера. Если у вас сеть из нескольких серверов за BungeeCord/Velocity и права должны быть общими, в config.yml меняется storage-method на mysql (или mariadb) с указанием общей базы — тогда все серверы сети читают одни и те же группы и права.

Все дальнейшие команды выполняются с правом luckperms.* — по умолчанию оно есть только у оператора сервера (op) в консоли или у игрока с полным оператором.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

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

Создаём иерархию групп: игрок, VIP, модератор, админ

В LuckPerms всегда существует группа default — в неё автоматически попадает любой новый игрок, если явно не назначить другую. Переопределить группу по умолчанию можно параметром default-group в config.yml, но проще и понятнее оставить default как есть и считать её ролью "обычный игрок".

Остальные группы создаются командой creategroup:

/lp creategroup vip
/lp creategroup moderator
/lp creategroup admin

Дальше стоит сразу задать вес (weight) — число, по которому LuckPerms определяет приоритет группы, если у игрока их несколько одновременно (например, показывать в чате префикс более "старшей" группы):

/lp group vip setweight 10
/lp group moderator setweight 20
/lp group admin setweight 30

Чем выше вес, тем выше приоритет группы. Для удобной последовательной выдачи ролей (когда админ вручную "повышает" игрока по цепочке) можно завести трек — упорядоченный путь групп:

/lp createtrack staff
/lp track staff append moderator
/lp track staff append admin
/lp user Steve promote staff

Команда promote сама переведёт игрока на следующую ступень трека, не нужно помнить точное название группы — удобно, когда повышениями занимается не только владелец сервера, а ещё пара доверенных модераторов.

Назначаем права: какие команды и зоны открывать группе

Права выдаются группе, а не читаются откуда-то автоматически — их нужно прописать явно для каждого плагина, который их проверяет. У большинства популярных плагинов (Essentials, WorldEdit, WorldGuard, LuckPerms сама) права описаны в документации или на странице плагина.

Пример для типичной связки "игрок — VIP — модератор — админ" на сервере с Essentials:

# базовые права обычного игрока
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.help true

# VIP: косметика и удобства, без влияния на других игроков
/lp group vip permission set essentials.fly true
/lp group vip permission set essentials.kit.vip true
/lp group vip permission set essentials.workbench true

# модератор: управление игроками
/lp group moderator permission set essentials.kick true
/lp group moderator permission set essentials.mute true
/lp group moderator permission set essentials.tp true
/lp group moderator permission set essentials.vanish true

# админ: полный контроль, включая правку мира
/lp group admin permission set essentials.ban true
/lp group admin permission set worldedit.* true
/lp group admin permission set worldguard.region.* true

Обратите внимание на worldedit.* и worldguard.region.* — звёздочка на конце означает wildcard-право, включающее сразу всю ветку разрешений плагина. Wildcard удобен для верхних ролей, но злоупотреблять им на группах пониже не стоит: легко случайно открыть что-то, о чём не думали, когда плагин потом добавит новые команды под тем же префиксом в обновлении.

Права можно ограничивать и по зоне действия — контекстом. Например, разрешить полёт только в творческом мире:

/lp group vip permission set essentials.fly true world=creative

Без контекста право действует везде, где сервер вообще что-то проверяет; с контекстом — только при совпадении условия (мир, сервер сети, время суток для некоторых плагинов и так далее).

Наследование: не дублируем права вручную

Вручную прописывать модератору все права VIP плюс свои — плохая идея: как только меняете набор VIP-прав, придётся синхронно править и модератора, и админа. Вместо этого группы выстраиваются в цепочку через parent add:

/lp group vip parent add default
/lp group moderator parent add vip
/lp group admin parent add moderator

Теперь админ автоматически получает всё, что есть у модератора, тот — всё, что есть у VIP, а VIP — всё, что есть у обычного игрока. Добавили новое право обычному игроку в default — оно само "протекло" вверх по всей цепочке, до самого админа, без единой лишней команды.

Если какой-то группе в цепочке нужно явно забрать унаследованное право, а не добавить, права можно выставить в false — это override, который перекрывает унаследованное true:

/lp group vip permission set essentials.give false

Даже если essentials.give где-то выше окажется разрешено, у VIP оно будет явно запрещено — LuckPerms всегда берёт более специфичное значение, ближе к самому игроку, а не самое первое найденное в цепочке.

Назначаем группу конкретному игроку

Выдать игроку группу можно двумя способами: командой в игре/консоли или через веб-редактор.

Через команду:

/lp user Steve parent add vip

Игрок при этом остаётся и в default — группы не заменяют друг друга автоматически, они складываются. Если нужно временно выдать роль — например, доверенному человеку на время эвента или замену модератору в отпуске — есть версия с истечением срока:

/lp user Steve parent addtemp admin 7d

Через неделю право само отвалится, не нужно напоминание вручную снять роль. Отдельному игроку можно выдать и точечное право в обход групп, если это разовое исключение, а не новая роль:

/lp user Steve permission set essentials.fly true

Второй способ — веб-редактор LuckPerms. Команда /lp editor генерирует одноразовую ссылку на визуальный редактор в браузере (хостится на сервисе bytebin, том же, что использует сам проект LuckPerms). В нём можно мышкой раскрывать дерево групп, включать и выключать права галочками, перетаскивать наследование — удобно, когда правами занимается человек, которому проще кликать, чем печатать команды в консоли. После сохранения изменений редактор выдаёт код, который применяется командой /lp apply edits <код> обратно на сервере.

Полезная привычка после правок — проверить итоговый набор прав игрока одной командой, вместо того чтобы вспоминать всю цепочку наследования в уме:

/lp user Steve permission check essentials.kick

Плагин честно покажет, разрешено право, запрещено или не задано вовсе, и из какой именно группы оно унаследовано.

Тот же принцип на других играх: Rust и CS2

Модель "группы + права + наследование" — не изобретение LuckPerms, она встречается почти везде, где на сервере есть админский состав из нескольких человек с разными полномочиями.

Rust (Oxide/uMod). Здесь права выдаются через консоль сервера или RCON (см. подключение к RCON и основные команды, если ещё не настраивали удалённый доступ):

oxide.group add moderator "Модератор" 1
oxide.group parent moderator vip
oxide.usergroup add ИмяИгрока moderator
oxide.grant group moderator someplugin.kick

Логика полностью совпадает с LuckPerms: oxide.group parent — это то же наследование, oxide.grant group — то же назначение права группе, а не отдельному игроку. Подробнее про сам процесс установки Oxide/uMod и первые плагины — в отдельной статье Oxide и uMod: установка и первые плагины.

CS2 и другие Source-игры (SourceMod). Здесь права выдаются встроенной админ-системой: группы описываются в addons/sourcemod/configs/admin_groups.cfg с набором флагов (буквы, обозначающие конкретные полномочия — кик, бан, смена карты, доступ к чит-командам) и уровнем immunity, а кто из админов в какой группе — прописывается в admins_simple.cfg по SteamID, либо через SQL-таблицу при большом штате. Идея та же: не раздавать каждому персональный список флагов, а завести группы "модератор" и "админ" один раз.

Если на сервере не одна игра, а несколько — держать в голове три разных синтаксиса неудобно, но модель мышления одна: сначала спроектировать роли на бумаге, а потом переносить в конкретные команды плагина.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

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

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

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

Да, в LuckPerms это норма — например, VIP и модератор одновременно, если человек и донатер, и в штате. Итоговые права складываются, а вес групп определяет только приоритет отображения (префикс, цвет ника), а не то, какие права применяются.

Что будет, если у игрока в разных группах право задано и true, и false?

Побеждает более специфичное значение — прямое право у игрока перекрывает групповое, а среди групп ближе к игроку по цепочке наследования перекрывает более далёкое. Явный false всегда сильнее унаследованного true.

Нужно ли перезагружать сервер после каждой правки прав?

Нет, LuckPerms применяет изменения сразу — команды меняют данные в базе и сообщают всем подключённым серверам сети обновиться, если она есть. Полный рестарт нужен только на этапе самой установки плагина.

PermissionsEx (PEX) ещё стоит ставить в 2026?

Как исторический вариант он существует и где-то до сих пор работает, но у него ниже темп обновлений и меньше интеграций с современными плагинами по сравнению с LuckPerms — на новый сервер практического смысла ставить его вместо LuckPerms сейчас нет.

Как понять, какое именно право нужно для конкретной команды плагина?

Смотреть документацию плагина — почти все крупные проекты (Essentials, WorldEdit, WorldGuard) публикуют полный список permission-узлов на своей странице на SpigotMC/Hangar/GitHub. Угадывать название права наугад — плохая идея, можно случайно выдать не то, что думали.