MAATRIX GAMES / Блог / Oxide и uMod: установка и первые плагины

Oxide и uMod: установка и первые плагины

MAATRIX GAMES

Ванильный Rust быстро упирается в потолок: нет ни кастов, ни магазина, ни нормальной защиты построек от гриферов, ни человеческого чата с рангами. Всё это добавляется плагинами, а плагины на Rust живут на фреймворке Oxide/uMod — это не мод в привычном смысле, а прослойка, которая патчит серверные сборки и даёт плагинам на C# доступ к внутренним хукам игры. Если сервер уже поднят и работает (если ещё нет — сначала поднимите сам Rust-сервер, эта статья про накатку Oxide поверх уже рабочей установки), дальше — как поставить фреймворк, не сломав то, что уже крутится, проверить что он реально подгрузился, и запустить первый плагин.

Что такое Oxide/uMod и зачем он нужен

Исторически проект назывался Oxide, сайт был oxidemod.com. Сейчас официальный сайт и бренд — uMod (umod.org), но название Oxide никуда не делось: консольные команды по-прежнему начинаются с oxide., папка на сервере называется oxide/, и в комьюнити оба названия используют как синонимы. Путаницы это обычно не создаёт, просто держите в голове, что uMod.org — актуальный источник для скачивания и плагинов, а Oxide — это то, что реально стоит на сервере.

Технически Oxide не мод игры, а патч самого серверного бинарника: он подменяет часть управляемых сборок (.dll в RustDedicated_Data/Managed) на версии со встроенными точками расширения (хуками). Поверх этих хуков уже работают плагины — обычные .cs-файлы, которые компилируются прямо на сервере при старте, без отдельной сборки на вашей машине.

Важный нюанс: на Rust есть ещё один фреймворк — Carbon, альтернатива Oxide с похожими задачами, но другой архитектурой. Они несовместимы между собой: ставить нужно что-то одно, и большинство готовых плагинов на umod.org пишутся именно под Oxide/uMod, поэтому для старта это более предсказуемый выбор.

Установка Oxide поверх готового Rust-сервера

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

Останавливаем сервис (если по предыдущей статье настроен systemd-юнит rustserver):

sudo systemctl stop rustserver

Дальше на странице Rust на umod.org есть кнопка скачивания сборки под вашу ОС — Linux или Windows, в зависимости от того, на чём крутится сервер. Это архив с уже пропатченными файлами и служебными DLL самого Oxide.

На Linux скачиваем и распаковываем архив прямо в корень установки сервера (та же папка, где лежит бинарник RustDedicated):

sudo su - rustserver
cd /home/rustserver/rust
wget -O oxide.zip "ССЫЛКА_СО_СТРАНИЦЫ_UMOD_ORG_ДЛЯ_RUST_LINUX"
unzip -o oxide.zip -d .
rm oxide.zip

Флаг -o у unzip обязателен — он разрешает перезаписать существующие файлы без интерактивных вопросов, а часть файлов Oxide как раз должна лечь поверх штатных.

На Windows-сборке процесс тот же по смыслу: скачиваете zip под Windows, распаковываете с заменой файлов в папку, где лежит RustDedicated.exe.

После распаковки в корне сервера появится папка RustDedicated_Data/Managed с обновлёнными сборками и новая папка oxide/ — она пока пустая, кроме служебных подпапок, но это нормально, конфиги и данные плагинов создаются по мере использования.

Стартуем сервис обратно:

sudo systemctl start rustserver
journalctl -u rustserver -f

Поднять сервер Rust за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

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

Первый запуск и проверка что фреймворк подгрузился

В логе при старте должна появиться строка о загрузке Oxide/uMod с указанием версии сборки — обычно это одна из первых строк после инициализации, ещё до генерации или загрузки карты. Если такой строки нет вообще — либо файлы легли не в ту папку, либо архив был не под ту ОС, либо распаковка перезаписала не все нужные файлы (проверьте, что unzip реально отработал с флагом -o, а не молча пропустил конфликтующие файлы).

Самая надёжная проверка — прямо в консоли сервера (или через RCON, если он у вас уже настроен по предыдущей статье) выполнить:

oxide.version

В ответ фреймворк должен вывести номер своей версии и версию протокола Rust, под который он собран. Если версия протокола заметно расходится с текущей версией самой игры — это тревожный звоночек: скорее всего скачали устаревшую сборку Oxide, и часть хуков может работать нестабильно после недавнего вайпа или патча.

Дополнительно можно проверить список загруженных плагинов (пока пустой):

oxide.plugins

Если команда вообще не распознаётся сервером как известная — Oxide не подгрузился, и нужно возвращаться к шагу установки.

Структура папки oxide и что где лежит

После первого успешного старта в корне сервера появляется рабочий набор подпапок внутри oxide/:

ПапкаНазначение
oxide/plugins/сюда кладутся .cs-файлы плагинов, отслеживается автоматически
oxide/config/JSON-конфиги, генерируются автоматически при первой загрузке плагина
oxide/data/постоянные данные плагинов (базы игроков, кастов, статистика)
oxide/lang/файлы локализации сообщений плагинов
oxide/logs/логи самого фреймворка и ошибок компиляции плагинов

Держать это всё в голове полезно на практике: если плагин ведёт себя странно, но не падает — сначала смотрите его конфиг в oxide/config/, а не лезьте в исходник. Если плагин не грузится вообще — смотрите oxide/logs/, там обычно лежит понятная ошибка компиляции с номером строки.

При переносе сервера на другую машину или при бэкапе имеет смысл сохранять не только сам сейв карты, но и всю папку oxide/data/ и oxide/config/ — иначе после переезда все настройки плагинов и накопленные данные игроков (например, привязанные дома или купленные VIP) слетят в дефолт.

Первый плагин: установка и проверка загрузки

На umod.org в каталоге плагинов для Rust можно отфильтровать по категориям — администрирование, экономика, защита построек, чат и так далее, у большинства страниц плагина указана дата последнего обновления под текущую версию игры. Это важный момент: после каждого еженедельного патча Rust часть плагинов на день-два оказываются несовместимы, пока авторы не выпустят фикс, так что перед установкой стоит глянуть, обновлялся ли плагин недавно.

Сам процесс установки одинаковый для любого .cs-плагина:

scp ИмяПлагина.cs rustserver@ВАШ_IP:/home/rustserver/rust/oxide/plugins/

Если сервер уже запущен — Oxide видит новый файл в папке и компилирует его на лету, без перезапуска процесса. Если файл попал в папку до старта сервера — компиляция произойдёт при старте вместе с остальными.

В логе (или консоли) после успешной компиляции появляется строка вида:

[Oxide] 12:04:31 [Info] Loaded plugin ИмяПлагина vX.X.X by АвторПлагина

Если вместо этого в логе ошибка компиляции — почти всегда одна из трёх причин: плагин написан под более старую версию Oxide и использует устаревший API, плагину не хватает файла-зависимости (некоторые плагины требуют отдельно установленную библиотеку — например общий модуль для картинок или экономики, и без неё падают с ошибкой отсутствующего класса), либо файл был скопирован не полностью (проверьте размер файла после scp).

Сразу после первой успешной загрузки в oxide/config/ появится JSON-файл с настройками плагина — большинство параметров (тексты сообщений, лимиты, стоимость в магазине) правится именно там, а не в самом .cs-файле.

Управление плагинами через консоль

Базовый набор команд, который реально нужен в повседневной работе:

oxide.reload ИмяПлагина      # перезагрузить один плагин (применить правки конфига)
oxide.reload *                # перезагрузить все плагины разом
oxide.unload ИмяПлагина      # выгрузить плагин без удаления файла
oxide.load ИмяПлагина        # загрузить обратно выгруженный плагин
oxide.plugins                 # список всех плагинов и их статус

У части этих команд есть короткий алиас через o. вместо oxide. — работает то же самое, просто меньше печатать в консоли под нагрузкой.

oxide.reload — самая частая команда в работе: после правки конфига плагина изменения не применяются на лету, нужен именно reload, а не полный рестарт сервера. Это удобно, потому что не гонит игроков с сервера ради мелкой правки цены в магазине или текста приветствия.

Отдельно стоит система прав:

oxide.grant user СтимID64 pluginname.permission
oxide.grant group VIP pluginname.permission
oxide.revoke user СтимID64 pluginname.permission

Многие плагины регистрируют свои permission-узлы (обычно указаны на странице плагина на umod.org), и без выдачи прав часть функций просто не сработает у игрока, даже если плагин исправно загружен — это частая причина жалоб "плагин не работает", когда на деле плагин работает, а прав нет.

Если нужно администрировать сервер удалённо, не заходя в консоль напрямую — все эти команды точно так же выполняются через RCON (тот самый порт и пароль, что настраивались при установке сервера), через любой RCON-клиент или веб-панель.

Поднять сервер Rust за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

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

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

Нужно ли переустанавливать Oxide после каждого обновления Rust?

Файлы Oxide не всегда переживают крупное официальное обновление игры без последствий — если апдейт Rust затронул те же управляемые сборки, что патчит Oxide, фреймворк может перестать грузиться до выхода обновлённой сборки Oxide под новую версию. Обычно авторы выпускают фикс в течение нескольких часов после патча Rust; после этого архив с umod.org просто перекачивается и распаковывается заново тем же способом.

Можно ли использовать Oxide и Carbon одновременно?

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

Почему плагин загрузился, но не работает у игроков?

Чаще всего дело либо в правах (oxide.grant), либо в конфиге, где нужная функция явно выключена ("Enabled": false в JSON-файле), либо в плагине-зависимости, который тоже нужно поставить отдельно — проверьте описание плагина на странице umod.org, там обычно перечислены требования.

Где смотреть, что плагин вообще существует и актуален?

umod.org — основная и по сути единственная крупная площадка с плагинами для Rust на Oxide, там же указан рейтинг, дата обновления и совместимость с текущей версией игры.

Плагины платные?

На umod.org есть и бесплатные, и платные плагины — платные обычно привязываются к конкретному Steam ID покупателя и серверу, будьте аккуратны при переносе сервера на другой аккаунт хостинга.