Плагины Rust: как установить Oxide и Carbon на сервер
Коротко: установите на сервер Oxide или Carbon, затем положите файл плагина .cs в oxide/plugins/ или carbon/plugins/. Он загрузится сам, без перезапуска, а файл его настроек появится в папке конфигов при первой загрузке.
Плагин Rust это один файл C# (.cs), который фреймворк для модов компилирует и запускает внутри вашего выделенного сервера. Плагины работают только на сервере, так что игрокам ничего ставить не нужно. Ванильный сервер их запустить не может: сначала на сервер нужен Oxide или Carbon.
Oxide или Carbon
Заголовок раздела «Oxide или Carbon»Оба загружают один и тот же тип плагинов, и на сервере может стоять только один из них, потому что оба правят одни и те же файлы игры.
- Oxide (его также называют uMod) давний и привычный. Его файлы лежат в папке
oxide/сервера. - Carbon новее и загружает и плагины, написанные для Oxide. Его файлы лежат в папке
carbon/.
Crucible Local Server устанавливает любой из них за вас при создании сервера и управляет его плагинами на вкладке Моды; смотрите как установить Carbon или Oxide на сервер Rust.
Куда класть файлы плагинов
Заголовок раздела «Куда класть файлы плагинов»| Что | Oxide | Carbon |
|---|---|---|
Плагины (.cs) | oxide/plugins/ | carbon/plugins/ |
Настройки каждого плагина (.json) | oxide/config/ | carbon/configs/ |
| Данные, которые сохраняет плагин | oxide/data/ | carbon/data/ |
| Сообщения плагина по языкам | oxide/lang/ | carbon/lang/ |
| Журналы | oxide/logs/ | carbon/logs/ |
Папки лежат рядом с RustDedicated.exe и появляются при первом запуске сервера с установленным фреймворком. Плагин пишет свой файл настроек при первой загрузке; отредактируйте его, затем перезагрузите плагин.
Загрузка и перезагрузка
Заголовок раздела «Загрузка и перезагрузка»Положите файл .cs в папку плагинов, и фреймворк сам скомпилирует и загрузит его, без перезапуска. Измените файл, и он перезагрузится; удалите, и плагин перестанет работать. После этого консоль сервера показывает строку вроде Loaded plugin Hello World v1.0.0 by YourName или ошибку компиляции, если код неверный.
То же можно сделать вручную из консоли сервера или через RCON:
- Oxide:
oxide.load Name,oxide.reload Name,oxide.unload Name,oxide.plugins(каждая работает и какo.load,o.reloadи так далее). - Carbon:
c.load Name,c.reload Name,c.unload Name,c.plugins.
Name это имя файла без .cs. Сервер с Oxide помечает себя как модифицированный.
Большинство плагинов закрывают свои команды правами, названными по плагину (hello.use, kits.admin). В Oxide есть две группы с самого начала: default, в которой каждый игрок, и admin, для админов сервера.
oxide.grant user <name or SteamID> <permission>даёт одному игроку право.oxide.grant group default <permission>даёт его всем.oxide.revokeзабирает его, в той же форме.oxide.usergroup add <name or SteamID> <group>добавляет игрока в группу, аoxide.group add <group>создаёт новую.
Все команды Oxide с описанием собраны в конце страницы консольные команды Rust.
Ваш первый плагин
Заголовок раздела «Ваш первый плагин»Сохраните это как HelloWorld.cs в папке плагинов. Он пишет строку в консоль при загрузке, по строке на каждого зашедшего игрока и отвечает на /hello в чате.
namespace Oxide.Plugins{ [Info("Hello World", "YourName", "1.0.0")] [Description("Says hello when a player types /hello in chat.")] public class HelloWorld : RustPlugin { private void OnServerInitialized() { Puts("Hello World is running."); }
private void OnPlayerConnected(BasePlayer player) { Puts($"{player.displayName} joined."); }
[ChatCommand("hello")] private void HelloCommand(BasePlayer player, string command, string[] args) { SendReply(player, $"Hello, {player.displayName}!"); } }}Что делает каждая часть:
- Имя файла и имя класса должны совпадать (
HelloWorld.cs,class HelloWorld). [Info]задаёт название плагина, автора и версию, которые консоль показывает при загрузке.- Методы, названные по хуку, выполняются, когда это происходит в игре:
OnServerInitializedкогда сервер закончил запуск (или сразу, если уже работает),OnPlayerConnectedкогда игрок заходит. Фреймворк находит их по имени, так что опечатка значит, что метод никогда не выполнится, без ошибки. [ChatCommand("hello")]превращает метод в команду чата.Putsпишет в консоль сервера;SendReplyотправляет сообщение в чат одному игроку.
Этот же файл работает на Carbon. Полный список хуков и того, что получает каждый из них, есть в документации Oxide на docs.oxidemod.com.
Имена и идентификаторы, которые используют плагины
Заголовок раздела «Имена и идентификаторы, которые используют плагины»Плагины обращаются к игровым объектам по их внутриигровым именам, которые этот сайт перечисляет прямо из игры:
- Предметы по shortname (
rifle.ak,wood): список предметов Rust. - Сущности по пути префаба (
assets/prefabs/deployable/large wood storage/box.wooden.large.prefab): страницы префабов в справочнике по игре Rust. - Настройки сервера по имени convar (
server.maxplayers): переменные сервера Rust.
Проверьте плагин до запуска в бою
Заголовок раздела «Проверьте плагин до запуска в бою»Сначала запустите его на локальной копии вашего сервера, с тем же фреймворком и той же картой, чтобы сломанный плагин никогда не встретился с вашими игроками. Crucible Local Server запускает такой на вашем ПК с Oxide или Carbon, установленными одним щелчком.
