Права Oxide в Rust — это то, чем вы разделяете обычного игрока, донатера и модератора. Пока прав нет, любой плагин либо доступен всем, либо никому: команда /kit vip либо раздаёт VIP-кит всему серверу, либо не работает даже у вас. Разбираемся, как устроена система разрешений и как настроить её один раз, чтобы потом не лезть в консоль на каждого нового игрока.
Как устроены права Oxide в Rust
Каждый плагин при загрузке регистрирует свои разрешения. Формат всегда одинаковый: имя плагина, точка, название права. Например kits.admin, teleportation.tphome, betterchat.default. Плагин сам решает, что это право открывает — Oxide только хранит, кому оно выдано.
Посмотреть, что зарегистрировал конкретный плагин:
oxide.show perms KitsА полный список всех прав на сервере:
oxide.show permsСписок бывает на несколько экранов, поэтому удобнее смотреть его не в игровой консоли, а через RCON — там текст можно скопировать. Как подключиться, описано в заметке про подключение к серверу по RCON.
Право выдаётся либо конкретному игроку, либо группе. На практике поштучная выдача нужна редко — почти всё делается через группы.
Группы по умолчанию
Сразу после установки Oxide на сервере есть две группы:
default— в неё автоматически попадает каждый подключившийся игрок, вручную добавлять никого не нужноadmin— в неё Oxide автоматически кладёт игроков, которых сервер признаёт админами черезownerid
Имена групп по умолчанию меняются в oxide.config.json. Официальное описание системы — в документации Oxide по правам.
Отсюда простое правило: базовые права, которые должны быть у всех (телепорт домой, /info, чат-префикс новичка), вешаются на default. Всё, что связано с администрированием, — на admin. Если вы ещё не выдавали себе админку, это отдельная тема, разобранная в статье про добавление админа на Rust-сервер.
Создание своих групп
Стандартный набор для сервера с донатом — три-четыре группы плюс модераторская:
oxide.group add vip "VIP" 10
oxide.group add premium "Premium" 20
oxide.group add moderator "Модератор" 50Второй аргумент — отображаемое название (title), третий — ранг. Ранг сам по себе ничего не решает: его читают плагины вроде BetterChat, чтобы понять, чей префикс показывать, если игрок состоит сразу в нескольких группах. Больше число — выше приоритет.
Удалить группу:
oxide.group remove premiumПеред удалением проверьте, что в ней никого нет, — игроки не «перетекают» в другую группу автоматически, они просто останутся без прав.
Выдача прав группе и игроку
Основные команды — oxide.grant и oxide.revoke:
oxide.grant group vip kits.vip
oxide.grant group vip teleportation.tphome
oxide.revoke group vip kits.vipДля отдельного игрока вместо group пишем user и указываем SteamID64 или ник (SteamID надёжнее — ник игрок может сменить):
oxide.grant user 76561198000000000 kits.admin
oxide.revoke user 76561198000000000 kits.adminOxide понимает шаблон со звёздочкой — удобно, когда плагин регистрирует десяток прав и все они нужны модератору:
oxide.grant group moderator playeradministration.*Со звёздочкой стоит быть аккуратнее на плагинах экономики и админ-меню: * заберёт и те права, которые появятся после следующего обновления плагина.
Добавление игроков в группы
oxide.usergroup add 76561198000000000 vip
oxide.usergroup remove 76561198000000000 vipИгрок необязательно должен быть онлайн — Oxide запомнит SteamID и применит права при следующем заходе. Проверить, что получилось:
oxide.show user 76561198000000000Команда выведет и группы игрока, и персонально выданные права. Если человек жалуется, что «команда не работает», начинать диагностику надо именно отсюда.
Наследование групп
Чтобы не выдавать одни и те же права трижды, группы связывают в цепочку:
oxide.group parent premium vipТеперь Premium получает всё, что есть у VIP, плюс своё. Меняете что-то в VIP — изменение автоматически доезжает до Premium. Цепочку можно продолжить: moderator наследует premium, тот — vip, а тот — default.
Единственное, за чем стоит следить: циклов быть не должно. Если A наследует B, а B — A, Oxide найдёт цикл, удалит такую связь и напишет предупреждение в лог — цепочка, на которую вы рассчитывали, перестанет работать.
Шпаргалка по командам
| Команда | Что делает |
|---|---|
oxide.show perms | Все зарегистрированные права |
oxide.show groups | Список групп |
oxide.show group vip | Участники и права группы |
oxide.show user 76561198000000000 | Группы и личные права игрока |
oxide.group add vip "VIP" 10 | Создать группу с названием и рангом |
oxide.group parent premium vip | Premium наследует права VIP |
oxide.grant group vip kits.vip | Выдать право группе |
oxide.revoke group vip kits.vip | Забрать право у группы |
oxide.usergroup add 76561198000000000 vip | Добавить игрока в группу |
У всех команд есть короткий префикс o. — например, o.grant.
Где всё это хранится
Права лежат в двух файлах:
oxide/data/oxide.groups.data
oxide/data/oxide.users.dataЭто не текстовые файлы: Oxide хранит их в бинарном формате ProtoBuf, поэтому руками они не правятся. Для просмотра или переноса есть команда oxide.export — она выгружает группы и пользователей в JSON. Чтобы перенести права на другой сервер целиком, остановите оба сервера и скопируйте эти два файла через файловый менеджер панели или SFTP.
Оба файла обязательно должны попадать в бэкап — восстанавливать вручную список из двухсот донатеров вы не захотите.
Частые вопросы
Почему право выдано, а команда всё равно недоступна?
Сначала проверьте, что плагин действительно загружен: oxide.show perms ИмяПлагина на выгруженном плагине вернёт пустоту. Второе — точность написания права, Oxide не подсказывает опечатки и молча создаёт запись о несуществующем разрешении. Третье — некоторые плагины кешируют права игрока до переподключения, тогда помогает /reload плагина или релог игрока.
Почему права слетели после обновления плагина?
Так бывает, если автор переименовал разрешение (было shop.use, стало shop.buy). Файл oxide.groups.data при этом не трогается — там остаётся старое право, которого больше нет. Сверьтесь со списком oxide.show perms после каждого крупного обновления плагинов.
Работают ли эти команды в Carbon?
Да, Carbon сохраняет совместимость: те же grant, revoke, usergroup, только с префиксом c. вместо oxide. (oxide. тоже обычно понимается). Файлы данных лежат в carbon/data/.
Коротко
Схема, которая работает почти на любом сервере: базовые права на default, донатные группы выстроены цепочкой через parent, модераторские права — отдельной группой, всё выдаётся командами oxide.grant group, а oxide.show user остаётся первой командой при разборе жалоб. Дальше можно переходить к самим плагинам — какие ставить и откуда брать, разобрано в заметке про плагины Oxide/uMod.
Если сервер ещё не поднят и хочется сразу панель с готовым Oxide, а не сборку с нуля — тарифы под Rust тут.