Перейти к содержимому

Плагины Rust: как установить Oxide и Carbon на сервер

Коротко: установите на сервер Oxide или Carbon, затем положите файл плагина .cs в oxide/plugins/ или carbon/plugins/. Он загрузится сам, без перезапуска, а файл его настроек появится в папке конфигов при первой загрузке.

Плагин Rust это один файл C# (.cs), который фреймворк для модов компилирует и запускает внутри вашего выделенного сервера. Плагины работают только на сервере, так что игрокам ничего ставить не нужно. Ванильный сервер их запустить не может: сначала на сервер нужен Oxide или Carbon.

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

  • Oxide (его также называют uMod) давний и привычный. Его файлы лежат в папке oxide/ сервера.
  • Carbon новее и загружает и плагины, написанные для Oxide. Его файлы лежат в папке carbon/.

Crucible Local Server устанавливает любой из них за вас при создании сервера и управляет его плагинами на вкладке Моды; смотрите как установить Carbon или Oxide на сервер Rust.

ЧтоOxideCarbon
Плагины (.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.

Имена и идентификаторы, которые используют плагины

Заголовок раздела «Имена и идентификаторы, которые используют плагины»

Плагины обращаются к игровым объектам по их внутриигровым именам, которые этот сайт перечисляет прямо из игры:

Сначала запустите его на локальной копии вашего сервера, с тем же фреймворком и той же картой, чтобы сломанный плагин никогда не встретился с вашими игроками. Crucible Local Server запускает такой на вашем ПК с Oxide или Carbon, установленными одним щелчком.