Pular para o conteúdo

Plugins de Rust: como instalar Oxide e Carbon

Resposta rápida: instale o Oxide ou o Carbon no servidor, depois jogue o arquivo .cs de um plugin em oxide/plugins/ ou carbon/plugins/. Ele carrega sozinho, sem reiniciar, e o arquivo de configurações dele aparece na pasta de config na primeira vez que carrega.

Um plugin de Rust é um arquivo C# (.cs) que um framework de mods compila e roda dentro do seu servidor dedicado. Os plugins rodam só no servidor, então os jogadores nunca instalam nada. Um servidor vanilla não consegue rodar: você precisa primeiro do Oxide ou do Carbon no servidor.

Os dois carregam o mesmo tipo de plugin, e só um pode estar num servidor por vez, porque os dois alteram os mesmos arquivos do jogo.

  • Oxide (também chamado de uMod) é o mais antigo. Os arquivos dele ficam na pasta oxide/ do servidor.
  • Carbon é mais novo e também carrega plugins escritos para o Oxide. Os arquivos dele ficam na pasta carbon/.

O Crucible Local Server instala qualquer um dos dois para você quando você cria um servidor nele, e gerencia os plugins na aba Mods; veja como instalar o Carbon ou o Oxide num servidor de Rust.

O quêOxideCarbon
Plugins (.cs)oxide/plugins/carbon/plugins/
Configurações de cada plugin (.json)oxide/config/carbon/configs/
Dados que um plugin salvaoxide/data/carbon/data/
Mensagens de um plugin, por idiomaoxide/lang/carbon/lang/
Logsoxide/logs/carbon/logs/

As pastas ficam ao lado do RustDedicated.exe e aparecem na primeira vez que o servidor inicia com o framework instalado. Um plugin grava o arquivo de config dele na primeira vez que carrega; edite e depois recarregue o plugin.

Jogue um arquivo .cs na pasta de plugins e o framework compila e carrega sozinho, sem reiniciar. Mude o arquivo e ele recarrega; apague e o plugin sai. O console do servidor então mostra uma linha como Loaded plugin Hello World v1.0.0 by YourName, ou o erro de compilação se o código estiver errado.

Você também pode fazer à mão pelo console do servidor ou pelo RCON:

  • Oxide: oxide.load Name, oxide.reload Name, oxide.unload Name e oxide.plugins (cada um também funciona como o.load, o.reload e assim por diante).
  • Carbon: c.load Name, c.reload Name, c.unload Name e c.plugins.

Name é o nome do arquivo sem o .cs. Um servidor rodando Oxide se marca como modded.

A maioria dos plugins trava os comandos atrás de permissões, com o nome do plugin (hello.use, kits.admin). O Oxide começa com dois grupos: default, em que todo jogador está, e admin, para os admins do servidor.

  • oxide.grant user <nome ou SteamID> <permission> dá uma permissão a um jogador.
  • oxide.grant group default <permission> dá para todo mundo.
  • oxide.revoke tira de volta, no mesmo formato.
  • oxide.usergroup add <nome ou SteamID> <group> põe um jogador num grupo, e oxide.group add <group> cria um novo.

Todo comando do Oxide, com o que faz, está no fim de comandos de console de Rust.

Salve isto como HelloWorld.cs na pasta de plugins. Ele escreve uma linha no console quando carrega, uma para cada jogador que entra, e responde a /hello no chat.

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}!");
}
}
}

O que cada parte faz:

  • O nome do arquivo e o nome da classe precisam combinar (HelloWorld.cs, class HelloWorld).
  • [Info] dá o título, o autor e a versão do plugin, que o console mostra quando ele carrega.
  • Métodos com o nome de um hook rodam quando aquilo acontece no jogo: OnServerInitialized quando o servidor termina de iniciar (ou na hora, se já está rodando), OnPlayerConnected quando um jogador entra. O framework acha eles pelo nome, então um erro de digitação faz o método nunca rodar, sem erro nenhum.
  • [ChatCommand("hello")] transforma um método num comando de chat. Puts escreve no console do servidor; SendReply manda uma mensagem de chat para um jogador.

O mesmo arquivo roda no Carbon. A lista completa de hooks e do que cada um recebe está na documentação do Oxide em docs.oxidemod.com.

Os plugins se referem às coisas do jogo pelos nomes dentro do jogo, que este site lista direto do jogo:

Rode primeiro numa cópia local do seu servidor, com o mesmo framework e o mesmo mapa, para um plugin quebrado nunca encontrar seus jogadores. O Crucible Local Server roda um no seu próprio PC com Oxide ou Carbon instalado num clique.