Права Oxide и Carbon в Rust решают, кому на сервере доступны функции плагинов: быстрая сортировка, телепорт, невидимость и всё остальное. Разрешения можно выдать одному игроку или группе, и для обычного VIP хватает пяти команд: o.group add, o.group parent, o.grant, o.usergroup add и o.show. Опасные ошибки тоже просты: звёздочка в выдаче открывает игроку управление сервером, а снятие ownerid не убирает человека из группы admin.

Статья продолжает серию про собственный сервер. Установка и выбор фреймворка описаны в гайде как создать сервер Rust, а удалённое управление разобрано в материале про RCON и защиту консоли. Здесь только права. Поведение Oxide мы проверили по его исходному коду (Oxide.Rust 2.0.7839, релиз от 22 октября 2026 года), Carbon сверили по документации. На живом сервере команды не запускали, поэтому первую выдачу проверяйте через o.show.
Как устроены права Oxide: разрешение, группа и игрок
В системе три сущности, и путаница между ними порождает большинство вопросов.
| Сущность | Что это | Пример | Кто создаёт |
|---|---|---|---|
| Разрешение | Имя функции плагина, обычно в виде плагин.действие |
quicksort.use |
Сам плагин при загрузке или ядро Oxide |
| Группа | Набор разрешений с названием и рангом | vip |
Фреймворк или администратор |
| Игрок | SteamID со списком личных разрешений и групп | 76561198… |
Появляется при входе или первой выдаче |
Проверка идёт просто. Плагин спрашивает, есть ли у игрока разрешение, и ответ будет положительным, если оно выдано лично или нашлось в любой из его групп, включая родительские. Запрета как отдельного понятия нет, разрешения только складываются. Отсюда следует правило, которое сэкономит время: забрать у одного человека то, что он получает через группу, нельзя. Команда o.revoke user снимет только личную выдачу, а доступ останется. Такого игрока придётся вывести из группы.
Создать разрешение вручную тоже нельзя. Оно существует, только пока загружен плагин, который его объявил. Если плагин не загрузился из-за ошибки компиляции, o.grant ответит, что разрешение не найдено. В этом случае проверяйте не написание, а сначала вывод o.plugins.
Какие группы есть сразу и кто в них попадает
Названия групп по умолчанию можно поменять в настройках фреймворка, но наборы у Oxide и Carbon разные.
| Группа | Oxide | Carbon | Кто попадает автоматически |
|---|---|---|---|
default |
Есть | Есть | Каждый игрок при подключении |
admin |
Есть | Есть | Игрок с уровнем 2, то есть из списка ownerid |
moderator |
Нет | Есть | В Carbon игрок с уровнем 1 из moderatorid |
| Где менять | oxide.config.json |
PlayerDefaultGroup, AdminDefaultGroup, ModeratorDefaultGroup в конфиге |
У Carbon автовыдачу можно отключить отдельными переключателями AutoGrant… |
Группы ведут себя по-разному и при потере статуса. В коде подключения Oxide есть только добавление в admin, обратной операции там нет. Бывший совладелец после removeowner останется в группе со всеми её разрешениями, пока вы не введёте o.usergroup remove SteamID admin. Carbon, как сказано в его документации, убирает лишнюю группу при следующем входе: пример приведён для модератора. Поэтому при уходе человека из команды на Oxide нужны две команды, а не одна.
Кто может выдавать права
Команды прав доступны в трёх случаях: из консоли сервера или RCON, у игрока из списка ownerid и у того, кому лично выдано соответствующее разрешение, например oxide.grant. Модератор из moderatorid в этот список сам по себе не входит: в коде Oxide администратором считается только уровень Owner. У Carbon команды прав в справочнике тоже помечены уровнем 2.
Разрешение oxide.grant нельзя давать «на всякий случай». Кто его получил, может выдать себе всё остальное, и никакие ограничения группы его не удержат. Для старшего помощника лучше оставить ввод команд за вами, а ему выдать нужные функции плагинов.
Команды прав в Oxide и Carbon: сводная таблица
В Oxide у каждой команды три имени: полное, короткое и через perm. oxide.grant, o.grant и perm.grant делают одно и то же.
| Задача | Oxide | Команда Carbon |
|---|---|---|
| Выдать игроку | o.grant user SteamID разрешение |
c.grant |
| Выдать группе | o.grant group vip разрешение |
c.grant |
| Отозвать | o.revoke user|group имя разрешение |
c.revoke |
| Создать группу | o.group add vip "[VIP]" 1 |
c.group |
| Назначить родителя | o.group parent vip default |
c.group |
| Добавить игрока в группу | o.usergroup add SteamID vip |
c.usergroup |
| Всё про игрока | o.show user SteamID |
c.show |
| Всё про группу | o.show group vip |
c.show |
| У кого есть разрешение | o.show perm разрешение |
c.show |
| Список всех разрешений | o.show perms |
c.show |
Для Carbon в таблице только имена, потому что в его справочнике аргументы не расписаны: документация предлагает ввести команду без параметров и прочитать подсказку. Так и сделайте, прежде чем копировать строки из примеров ниже. Команды с префиксом o. на Carbon не работают, но в его конфиге можно настроить алиасы.
Источники здесь немного расходятся. Новая документация Oxide перечисляет для oxide.show только groups и perms, тогда как старое руководство uMod и актуальный код знают ещё user, group и perm. Мы опираемся на код, так что эти варианты рабочие.
Пошагово: как сделать группу VIP
Группа выгоднее личных выдач. Когда появится новая функция, вы добавите её одной командой, а не будете обходить всех покупателей. Порядок такой:
o.plugins
o.show perms
o.group add vip "[VIP]" 1
o.group parent vip default
o.grant group vip quicksort.use
o.grant group vip furnacesplitter.use
o.usergroup add SteamID vip
o.show user SteamID
Первые две команды показывают, что плагины загружены и как точно называются их разрешения. Четвёртая подключает родителя, и VIP наследует всё, что вы дадите обычным игрокам. Последняя проверяет результат: в ответе должны быть группа и разрешения. Игроку не обязательно быть на сервере: Oxide принимает SteamID из 17 и более цифр даже для того, кто ещё не заходил. Выдать доступ покупателю можно заранее.
Имя тоже подойдёт, но при неоднозначном совпадении команда не выполнится и выведет список подходящих игроков. На сервере с десятком похожих ников SteamID надёжнее.

Разрешения популярных плагинов: что выдавать, а что нет
Имена ниже взяты со страниц плагинов uMod (архивные копии 2025 года). В новых версиях они могли поменяться, поэтому сверяйте с o.show perms.
| Плагин | Разрешение | Что даёт | Кому подходит |
|---|---|---|---|
| Quick Sort | quicksort.use |
Кнопки сортировки в ящиках | Всем или VIP |
| Quick Sort | quicksort.autolootall |
Автоматический сбор лута | VIP |
| Furnace Splitter | furnacesplitter.use |
Деление руды по слотам печи | Всем или VIP |
| Quick Smelt | quicksmelt.use |
Настройки скорости для печей игрока | По правилам сервера |
| Whitelist | whitelist.allow |
Вход на закрытый сервер | Участникам списка |
| Vanish | vanish.allow |
Полная невидимость | Только команде |
| Vanish | vanish.unlock |
Открытие чужих замков в невидимости | Только доверенным |
| NTeleportation | nteleportation.tp |
Команда /tp |
Никому из игроков, автор пишет об этом прямо |
| Better Chat | betterchat.admin |
Управление группами чата | Только администратору |
У Better Chat собственные группы чата хранятся отдельно, в его файле данных. Цвет ника не появится сам из-за того, что игрок попал в группу прав: чат-группы настраиваются в самом плагине. Точно так же разрешение на функцию обычно не включает её настройку: лимиты, кулдауны и множители живут в конфиге самого плагина.
Помощник без ownerid: чем отличаются уровни доступа
Частая ошибка новых владельцев состоит в том, что помощника делают совладельцем, потому что так быстрее. Для выполнения одной задачи он получает весь сервер.
| Способ | Что получает человек | Команды прав | Как снять |
|---|---|---|---|
ownerid |
Полный админ: консоль сервера, полёт и прочие инструменты игры | Да | removeowner и отдельно вывод из admin |
moderatorid |
Встроенные модераторские команды, например кик и бан | Нет | removemoderator |
| Своя группа | Только перечисленные функции плагинов | Нет, если не выдать отдельно | o.usergroup remove |
Руководство uMod предлагает именно третий путь: персонал работает с нужными инструментами плагинов и не получает полёт и ускорение, а значит, может играть наравне со всеми. Группа helper с родителем vip и парой административных разрешений закрывает большинство задач. Встроенные права для такого человека остаются нужны только при работе с кик-банами без плагина.
Частые ошибки при настройке прав
Большая часть этих проблем не выдаёт ошибку в консоли. Команда пишет об успехе, а дальше сервер работает не так, как вы ожидали.
- Звёздочка на всех.
o.grant group default *раздаёт всем игрокам всё, что зарегистрировано на сервере, включаяoxide.grantи телепорт. Откат —o.revoke group default *, он снимает все разрешения группы, в том числе нужные. Для одного плагина пишите префикс:o.grant group vip quicksort.*. - Надежда, что звёздочка действует и дальше. По коду она разворачивается в список разрешений на момент ввода. Плагин, поставленный на следующей неделе, в выдачу не попадёт, его придётся добавить отдельно.
- Личный отзыв при групповом доступе. Как говорилось выше,
o.revoke userне перекрывает группу. Проверяйте ответомo.show user, откуда пришёл доступ. - Ранг как уровень власти. Ядро использует ранг только как свойство группы, проверка разрешений на него не смотрит. Что-то он меняет лишь в плагинах, которые сами умеют его читать.
- Короткий
o.group set. В коде ранг без явного значения становится нулём, а название без значения пустым. Командаo.group set vip "[VIP]"сбросит ранг группы, поэтому указывайте оба параметра. - Удаление родителя. После
o.group removeдочерние группы теряют связь с родителем и всё унаследованное, а игроки выходят из удалённой группы. Сообщения о потерянном доступе команда не покажет. - Циклические родители. Если
vipуже наследует отhelper, обратная связь не создастся: Oxide откажет сообщением, что родитель не изменён. - Массовая чистка без учёта
default.o.usergroup remove SteamID *снимает все группы сразу. При следующем входе игрок снова получитdefault, а совладелец ещё иadmin.
Платный VIP: что разрешает Facepunch и где взять срок действия
Правила для общественных серверов разрешают монетизацию: платный вход или подписку, донаты, продажу косметики, эффектов и улучшений, собственную валюту и рекламу. Запрет проходит по чужому контенту. Нельзя отбирать купленные DLC и скины у их владельцев, и нельзя открывать платный контент Facepunch тем, кто его не покупал, в том числе в составе VIP. Набор «все скины за донат» под этот запрет попадает, если речь о предметах из магазина игры. Настройки сервера нужно честно описать для игроков: именно по этим описаниям люди решают, какой сервер выбрать.
Срока действия в ядре нет: данные игрока содержат ник, разрешения и группы, даты там не предусмотрены. Месячную подписку без дополнений придётся снимать вручную. Эту задачу решает плагин Timed Permissions. Он добавляет команды grantperm игрок разрешение время и addgroup игрок группа время, просмотр активных выдач через pinfo, а управление ими требует его разрешения timedpermissions.use. Проверить, как он поведёт себя на вашей версии Oxide, надо отдельно: мы смотрели только его описание.
Где хранятся права и как их не потерять
| Oxide | Carbon по умолчанию | Carbon в режиме SQL | |
|---|---|---|---|
| Файл | oxide/data/oxide.users.data, oxide.groups.data |
Аналог Protobuf-файлов Oxide | servers/<identity>/carbon.perms.db |
| Формат | Двоичный Protobuf, блокнотом не правится | Protobuf | SQLite, при работающем сервере заблокирована |
| Загрузка в память | Все пользователи | Все пользователи | Только необходимое |
| Перенос | — | При первом запуске Carbon копирует данные Oxide | c.migrate_perms_sql, обратно c.migrate_perms_proto |
Файлы данных копируйте вместе с остальными резервными копиями сервера, желательно перед обновлением. Если ваш скрипт вайпа удаляет всю папку сервера, а не файлы карты, база SQL уйдёт вместе с ней, ведь она лежит внутри папки identity. Посмотрите на путь, прежде чем запускать сценарий автоматически.
Режим SQL в Carbon появился в августе 2025 года. Разработчики оценивают размер 2 МБ в oxide.users.data примерно в 50 тысяч уникальных игроков и указывают, что такой файл пересохраняется при каждом сохранении сервера. На небольшом проекте разница незаметна, на сервере с многолетней историей смысл есть. Миграция, судя по документации, не требует перезапуска и перезагрузки плагинов.
Автоперенос с Oxide срабатывает один раз, при первом запуске. Если что-то пошло не так, повторить его тем же способом не получится, остаётся ручной перенос. Оба фреймворка на одном сервере работать не могут.
В Carbon часть этого можно сделать мышью
У Carbon есть встроенная панель: сначала назначьте себя через ownerid, затем в чате игры откройте её командой /cp или /cpanel. На вкладке Permissions выдаются и снимаются разрешения, редактируются группы и их родители. По умолчанию панель доступна только с уровнем 2. Для Oxide похожие функции дают отдельные плагины. Команды всё равно стоит знать, поскольку они пригодятся при работе через консоль хостинга и в скриптах.
Кому этот разбор не нужен
- Если сервер чистый, без фреймворка. Разрешений просто нет, а управляют им через
ownerid,moderatoridи встроенные команды для админа. - Если сервер на двух-трёх друзей. Группы избыточны: хватит
owneridсебе и прямых выдач остальным. - Если вы игрок и ищете, как получить админку на чужом сервере. Выдать её может только владелец, через консоль это сделать нельзя.
Коротко
- Разрешение создаёт плагин, а вы только выдаёте его игроку или группе. Нет загруженного плагина, значит, нет и разрешения.
- Группы
defaultиadminесть сразу,moderatorиз коробки только у Carbon. - В Oxide снятие
owneridне выводит человека изadmin, нужна отдельная командаo.usergroup remove. - Запретов нет. Если доступ идёт через группу, личный отзыв его не снимет.
- Не выдавайте
*обычным группам иoxide.grantникому, кроме себя. Звёздочка учитывает только плагины, загруженные на момент ввода. - Срока действия в ядре нет, для подписок нужен плагин вроде Timed Permissions.
- Платный контент Facepunch нельзя включать в VIP тем, кто его не покупал.
- Копируйте файлы прав в резервные копии и проверяйте, что скрипт вайпа их не удаляет.
