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.
Oxide ou Carbon
Seção intitulada “Oxide ou Carbon”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.
Onde ficam os arquivos dos plugins
Seção intitulada “Onde ficam os arquivos dos plugins”| O quê | Oxide | Carbon |
|---|---|---|
Plugins (.cs) | oxide/plugins/ | carbon/plugins/ |
Configurações de cada plugin (.json) | oxide/config/ | carbon/configs/ |
| Dados que um plugin salva | oxide/data/ | carbon/data/ |
| Mensagens de um plugin, por idioma | oxide/lang/ | carbon/lang/ |
| Logs | oxide/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.
Carregar, recarregar e tirar um plugin
Seção intitulada “Carregar, recarregar e tirar um 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 Nameeoxide.plugins(cada um também funciona comoo.load,o.reloade assim por diante). - Carbon:
c.load Name,c.reload Name,c.unload Nameec.plugins.
Name é o nome do arquivo sem o .cs. Um servidor rodando Oxide se marca como modded.
Permissões
Seção intitulada “Permissões”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.revoketira de volta, no mesmo formato.oxide.usergroup add <nome ou SteamID> <group>põe um jogador num grupo, eoxide.group add <group>cria um novo.
Todo comando do Oxide, com o que faz, está no fim de comandos de console de Rust.
Seu primeiro plugin
Seção intitulada “Seu primeiro plugin”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:
OnServerInitializedquando o servidor termina de iniciar (ou na hora, se já está rodando),OnPlayerConnectedquando 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.Putsescreve no console do servidor;SendReplymanda 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.
Nomes e ids que os plugins usam
Seção intitulada “Nomes e ids que os plugins usam”Os plugins se referem às coisas do jogo pelos nomes dentro do jogo, que este site lista direto do jogo:
- Itens por shortname (
rifle.ak,wood): lista de itens de Rust. - Entidades pelo caminho do prefab (
assets/prefabs/deployable/large wood storage/box.wooden.large.prefab): as páginas de prefabs em referência do jogo Rust. - Configurações do servidor pelo nome do convar (
server.maxplayers): variáveis de servidor de Rust.
Teste um plugin antes de ir ao ar
Seção intitulada “Teste um plugin antes de ir ao ar”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.
