Установка Carbon на Rust имеет смысл в одном конкретном случае: когда сервер упирается в процессор, а Oxide тратит заметную часть времени на компиляцию и вызовы хуков. Carbon — это форк идеи Oxide, переписанный с упором на скорость: своя система хуков, асинхронная компиляция плагинов и, что важнее всего, отсутствие правки игровых сборок.
Ниже — как поставить, чем он отличается на практике и что произойдёт с вашими текущими плагинами.
Чем Carbon отличается от Oxide
Главное техническое отличие — способ внедрения. Oxide перезаписывает Assembly-CSharp.dll и другие библиотеки в RustDedicated_Data/Managed. Поэтому любой патч Rust затирает модификацию, и её приходится ставить заново.
Carbon использует Doorstop: библиотеку, которая подключается к процессу при запуске и загружает свой код в рантайме. Игровые файлы остаются нетронутыми. Практический эффект — после обновления Rust Carbon чаще всего продолжает работать без переустановки, хотя после крупных месячных патчей обновлять его всё равно приходится.
Что ещё заметно в работе:
- Компиляция плагинов идёт параллельно, старт сервера с сотней плагинов ускоряется в разы. На большом x100 разница между 4 минутами и 50 секундами.
- Меньше накладных расходов на хуки: Carbon подключает только те, которые реально используются загруженными плагинами.
- Есть встроенный профайлер (
c.profile), которого у Oxide нет. - Совместимость с oxide-плагинами очень высокая, но не стопроцентная. Плагины, лезущие в внутренности Oxide напрямую, могут не завестись.
Если вы только запускаете первый сервер, начните всё-таки с Oxide: по нему больше готовых инструкций и конфигов. Carbon — осознанный шаг для тех, у кого уже есть нагрузка.
Установка Carbon на Linux-сервере Rust
Остановите сервер и уберите Oxide, если он стоял. Два фреймворка одновременно жить не могут — они дерутся за одни и те же точки входа. Папку с плагинами перед удалением скопируйте, она пригодится:
cd /home/container
cp -r oxide oxide_backup
rm -rf oxideПотом обязательно восстановите оригинальные сборки через SteamCMD, иначе пропатченный Oxide-код останется в Managed:
steamcmd +force_install_dir /home/container +login anonymous +app_update 258550 validate +quitТеперь сам Carbon:
cd /home/container
wget -O carbon.tar.gz "https://github.com/CarbonCommunity/Carbon/releases/download/production_build/Carbon.Linux.Release.tar.gz"
tar -xzf carbon.tar.gz
rm carbon.tar.gz
chmod +x carbon.shСсылки на все сборки для Windows и Linux собраны на странице Getting Started в документации Carbon. В корне появятся carbon.sh, папка carbon/ и библиотеки Doorstop. Запускать сервер теперь нужно через carbon.sh, а не напрямую через RustDedicated:
./carbon.sh -batchmode +server.identity "myserver" +server.port 28015Скрипт выставляет переменные окружения DOORSTOP_ENABLED=1 и LD_PRELOAD, а дальше передаёт все аргументы игре. Если запустить бинарник напрямую, сервер поднимется чистым, без Carbon, и вы полчаса будете думать, почему плагины не грузятся.
На панельном хостинге строка запуска задаётся во вкладке Startup — там нужно заменить исполняемый файл на ./carbon.sh, оставив остальные параметры как были.
Проверка и первые команды
После старта в консоли:
c.version
c.plugins
c.find c.c.version вернёт версию Carbon и ветку сборки. c.plugins покажет список загруженных плагинов с временем компиляции каждого — удобно сразу увидеть, кто тормозит старт.
Основной набор команд повторяет логику Oxide, только с префиксом c.:
c.reload PluginName
c.load PluginName
c.unload PluginName
c.grant group admin *
c.usergroup add 76561198000000000 admin
c.show groupsКоманды с префиксом o. тоже работают — Carbon держит алиасы для совместимости со скриптами и панелями, привыкшими к Oxide.
Структура папок
carbon/
plugins/ — .cs плагины
configs/ — конфиги плагинов (обратите внимание: configs, а не config)
data/ — данные
lang/ — локализация
logs/ — логи
extensions/ — расширения
harmony/ — harmony-модыРазница в имени папки с конфигами — самая частая причина «плагин не видит мои настройки» при переезде с Oxide. Переносить нужно так:
cp -r oxide_backup/plugins/* carbon/plugins/
cp -r oxide_backup/config/* carbon/configs/
cp -r oxide_backup/data/* carbon/data/
cp -r oxide_backup/lang/* carbon/lang/Права и группы лежат в data/, поэтому вся выданная админка и привилегии переезжают вместе с файлами. Про сами файлы плагинов — в заметке про ручную установку.
Ветки сборок
Carbon выпускается в нескольких вариантах (по репозиторию Carbon на GitHub):
| Сборка | Как обновляется | Для чего |
|---|---|---|
| Production | Около двух раз в месяц плюс срочные хотфиксы | Боевой сервер — берите её |
| Edge | При каждом коммите в основную ветку | Проверка свежих исправлений, на проде делать нечего |
| Experimental | Вручную, нечасто | Экспериментальные функции, которые могут и не попасть в основную ветку |
Отдельно есть варианты Minimal и Release: Minimal без встроенных модулей вроде админ-панели, Release — полный. Для большинства подходит Release.
Встроенные модули
Carbon приносит с собой несколько готовых модулей, которые в Oxide пришлось бы ставить плагинами:
c.gui — админ-меню прямо в игре
c.profile start — профайлер плагинов
c.find <строка> — поиск по консольным командам и переменнымПрофайлер особенно полезен: он показывает, сколько миллисекунд каждый плагин тратит на хуки. Если сервер лагает, а причина непонятна, запуск c.profile start, пара минут игры и c.profile stop дают список виновников по именам.
Модули включаются и выключаются в carbon/config.json — там же настраивается уровень логирования и поведение компилятора.
Что ломается чаще всего
Сервер запустился, но c.version не отвечает. Запуск идёт мимо carbon.sh. Проверьте строку старта.
Плагин компилируется с ошибкой The type or namespace name Oxide could not be found. Плагин слишком старый или использует внутренние API Oxide. Ищите обновлённую версию, у популярных плагинов авторы держат совместимость с обоими фреймворками.
После патча Rust сервер падает на старте. Обновите Carbon до свежей Production-сборки — она совместима с публичной веткой Rust; если исправления ещё нет в Production, временно попробуйте Edge.
Права слетели после переезда. Не скопирована папка data/ целиком, конкретно файл с группами и разрешениями.
Итог
Порядок такой: остановить сервер, снести Oxide и восстановить сборки через validate, распаковать Carbon, поменять команду запуска на ./carbon.sh, проверить c.version, перенести плагины и конфиги с учётом папки configs. Полчаса работы, дальше сервер живёт как раньше, только быстрее стартует.
Следующий шаг после установки фреймворка — привести в порядок server.cfg и рейты. А если нужна машина, которая вытянет x100 с полусотней плагинов, — подходящие конфигурации тут.