Rust Plugins installieren: Oxide und Carbon Grundlagen
Kurze Antwort: Installier Oxide oder Carbon auf dem Server und leg dann die .cs-Datei eines Plugins in oxide/plugins/ oder carbon/plugins/. Es lädt von allein, ohne Neustart, und seine Einstellungsdatei erscheint beim ersten Laden im Config-Ordner.
Ein Rust-Plugin ist eine einzelne C#-Datei (.cs), die ein Modding-Framework kompiliert und in deinem Dedicated Server ausführt. Plugins laufen nur auf dem Server, Spieler müssen also nichts installieren. Ein Vanilla-Server kann sie nicht ausführen: Du brauchst zuerst Oxide oder Carbon auf dem Server.
Oxide oder Carbon
Abschnitt betitelt „Oxide oder Carbon“Beide laden dieselbe Art Plugin, und es kann immer nur eins auf einem Server sein, weil beide dieselben Spieldateien patchen.
- Oxide (auch uMod genannt) ist der Klassiker. Seine Dateien liegen im Ordner
oxide/des Servers. - Carbon ist neuer und lädt auch Plugins, die für Oxide geschrieben wurden. Seine Dateien liegen im Ordner
carbon/.
Crucible Local Server installiert für dich eins von beiden, wenn du dort einen Server anlegst, und verwaltet die Plugins im Tab Mods; siehe Carbon oder Oxide auf einem Rust-Server installieren.
Wo die Plugin-Dateien hinkommen
Abschnitt betitelt „Wo die Plugin-Dateien hinkommen“| Was | Oxide | Carbon |
|---|---|---|
Plugins (.cs) | oxide/plugins/ | carbon/plugins/ |
Einstellungen jedes Plugins (.json) | oxide/config/ | carbon/configs/ |
| Daten, die ein Plugin speichert | oxide/data/ | carbon/data/ |
| Nachrichten eines Plugins, pro Sprache | oxide/lang/ | carbon/lang/ |
| Logs | oxide/logs/ | carbon/logs/ |
Die Ordner liegen neben RustDedicated.exe und erscheinen, wenn der Server zum ersten Mal mit installiertem Framework startet. Ein Plugin schreibt seine Config-Datei beim ersten Laden; bearbeite sie und lade das Plugin dann neu.
Laden und neu laden
Abschnitt betitelt „Laden und neu laden“Leg eine .cs-Datei in den Plugin-Ordner, und das Framework kompiliert und lädt sie von allein, ohne Neustart. Änderst du die Datei, lädt sie neu; löschst du sie, ist das Plugin weg. In der Server-Konsole erscheint dann eine Zeile wie Loaded plugin Hello World v1.0.0 by YourName oder der Kompilierfehler, falls der Code falsch ist.
Du kannst es auch von Hand aus der Server-Konsole oder per RCON machen:
- Oxide:
oxide.load Name,oxide.reload Name,oxide.unload Name,oxide.plugins(jeder funktioniert auch also.load,o.reloadund so weiter). - Carbon:
c.load Name,c.reload Name,c.unload Name,c.plugins.
Name ist der Dateiname ohne .cs. Ein Server mit Oxide markiert sich selbst als modded.
Berechtigungen
Abschnitt betitelt „Berechtigungen“Die meisten Plugins schützen ihre Befehle mit Berechtigungen, benannt nach dem Plugin (hello.use, kits.admin). Oxide startet mit zwei Gruppen: default, in der jeder Spieler ist, und admin für die Admins des Servers.
oxide.grant user <Name oder SteamID> <permission>gibt einem Spieler eine Berechtigung.oxide.grant group default <permission>gibt sie allen.oxide.revokenimmt sie zurück, in derselben Form.oxide.usergroup add <Name oder SteamID> <group>steckt einen Spieler in eine Gruppe, undoxide.group add <group>legt eine neue an.
Jeder Oxide-Befehl samt Erklärung steht am Ende von Rust-Konsolenbefehle.
Dein erstes Plugin
Abschnitt betitelt „Dein erstes Plugin“Speicher das als HelloWorld.cs im Plugin-Ordner. Es schreibt beim Laden eine Zeile in die Konsole, eine für jeden Spieler, der beitritt, und antwortet auf /hello im 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}!"); } }}Was jeder Teil macht:
- Dateiname und Klassenname müssen übereinstimmen (
HelloWorld.cs,class HelloWorld). [Info]gibt Titel, Autor und Version des Plugins an, die die Konsole beim Laden zeigt.- Methoden, die nach einem Hook benannt sind, laufen, wenn das im Spiel passiert:
OnServerInitialized, sobald der Server fertig gestartet ist (oder sofort, wenn er schon läuft),OnPlayerConnected, wenn ein Spieler beitritt. Das Framework findet sie über den Namen, ein Tippfehler heißt also, dass die Methode nie läuft, ohne Fehlermeldung. [ChatCommand("hello")]macht aus einer Methode einen Chatbefehl.Putsschreibt in die Server-Konsole;SendReplyschickt eine Chatnachricht an einen Spieler.
Dieselbe Datei läuft auf Carbon. Die vollständige Liste der Hooks und was jeder bekommt, steht in der Oxide-Dokumentation auf docs.oxidemod.com.
Namen und IDs, die Plugins nutzen
Abschnitt betitelt „Namen und IDs, die Plugins nutzen“Plugins sprechen Dinge im Spiel mit ihren Namen aus dem Spiel an, die diese Seite direkt aus dem Spiel auflistet:
- Items per Shortname (
rifle.ak,wood): Rust-Itemliste. - Entities per Prefab-Pfad (
assets/prefabs/deployable/large wood storage/box.wooden.large.prefab): die Prefab-Seiten unter Rust-Spielreferenz. - Servereinstellungen per Convar-Name (
server.maxplayers): Rust-Servervariablen.
Ein Plugin testen, bevor es live geht
Abschnitt betitelt „Ein Plugin testen, bevor es live geht“Lass es zuerst auf einer lokalen Kopie deines Servers laufen, mit demselben Framework und derselben Map, damit ein kaputtes Plugin nie auf deine Spieler trifft. Crucible Local Server lässt einen Server auf deinem eigenen PC laufen, mit Oxide oder Carbon per Klick installiert.
