Przejdź do głównej zawartości

Pluginy do Rust: jak zainstalować Oxide i Carbon

Krótka odpowiedź: zainstaluj na serwerze Oxide albo Carbon, a potem wrzuć plik .cs pluginu do oxide/plugins/ albo carbon/plugins/. Wczytuje się sam, bez restartu, a jego plik ustawień pojawia się w folderze konfiguracji przy pierwszym wczytaniu.

Plugin do Rust to jeden plik C# (.cs), który framework do modowania kompiluje i uruchamia wewnątrz twojego serwera dedykowanego. Pluginy działają tylko na serwerze, więc gracze niczego nie instalują. Serwer vanilla nie może ich uruchomić: najpierw potrzebujesz na serwerze Oxide albo Carbon.

Oba wczytują ten sam rodzaj pluginów i tylko jeden może być na serwerze naraz, bo oba łatają te same pliki gry.

  • Oxide (zwany też uMod) to ten od dawna na rynku. Jego pliki leżą w folderze oxide/ serwera.
  • Carbon jest nowszy i wczytuje też pluginy napisane pod Oxide. Jego pliki leżą w folderze carbon/.

Crucible Local Server instaluje któryś z nich za ciebie, gdy tworzysz na nim serwer, i zarządza jego pluginami na karcie Mody; zobacz jak zainstalować Carbon albo Oxide na serwerze Rust.

CoOxideCarbon
Pluginy (.cs)oxide/plugins/carbon/plugins/
Ustawienia każdego pluginu (.json)oxide/config/carbon/configs/
Dane, które zapisuje pluginoxide/data/carbon/data/
Wiadomości pluginu, w każdym językuoxide/lang/carbon/lang/
Logioxide/logs/carbon/logs/

Foldery leżą obok RustDedicated.exe i pojawiają się, gdy serwer po raz pierwszy startuje z zainstalowanym frameworkiem. Plugin zapisuje swój plik konfiguracji przy pierwszym wczytaniu; edytuj go, a potem przeładuj plugin.

Wrzuć plik .cs do folderu pluginów, a framework sam go skompiluje i wczyta, bez restartu. Zmień plik, a przeładuje się; usuń go, a plugin znika z serwera. Konsola serwera pokaże wtedy linię w rodzaju Loaded plugin Hello World v1.0.0 by YourName albo błąd kompilacji, jeśli kod jest zły.

Możesz to też zrobić ręcznie z konsoli serwera albo przez RCON:

  • Oxide: oxide.load Name, oxide.reload Name, oxide.unload Name, oxide.plugins (każda działa też jako o.load, o.reload i tak dalej).
  • Carbon: c.load Name, c.reload Name, c.unload Name, c.plugins.

Name to nazwa pliku bez .cs. Serwer z Oxide oznacza się jako zmodowany.

Większość pluginów zabezpiecza swoje komendy uprawnieniami, nazwanymi od pluginu (hello.use, kits.admin). Oxide startuje z dwiema grupami: default, w której jest każdy gracz, i admin, dla adminów serwera.

  • oxide.grant user <nazwa albo SteamID> <uprawnienie> daje jednemu graczowi uprawnienie.
  • oxide.grant group default <uprawnienie> daje je wszystkim.
  • oxide.revoke zabiera je, w tej samej formie.
  • oxide.usergroup add <nazwa albo SteamID> <grupa> wsadza gracza do grupy, a oxide.group add <grupa> tworzy nową.

Każda komenda Oxide, z opisem, jest na końcu komend konsoli Rust.

Zapisz to jako HelloWorld.cs w folderze pluginów. Zapisuje linię w konsoli po wczytaniu, jedną dla każdego gracza, który wchodzi, i odpowiada na /hello na czacie.

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

Co robi każda część:

  • Nazwa pliku i nazwa klasy muszą się zgadzać (HelloWorld.cs, class HelloWorld).
  • [Info] podaje tytuł, autora i wersję pluginu, które konsola pokazuje przy wczytaniu.
  • Metody nazwane od hooka uruchamiają się, gdy to coś zdarza się w grze: OnServerInitialized gdy serwer skończy startować (albo od razu, jeśli już działa), OnPlayerConnected gdy gracz wchodzi. Framework znajduje je po nazwie, więc literówka oznacza, że metoda nigdy się nie uruchomi, bez błędu.
  • [ChatCommand("hello")] zamienia metodę w komendę czatu. Puts zapisuje do konsoli serwera; SendReply wysyła wiadomość na czacie do jednego gracza.

Ten sam plik działa na Carbon. Pełna lista hooków i tego, co każdy dostaje, jest w dokumentacji Oxide na docs.oxidemod.com.

Pluginy odwołują się do rzeczy z gry po ich nazwach w grze, które ta strona wypisuje prosto z gry:

Uruchom go najpierw na lokalnej kopii swojego serwera, z tym samym frameworkiem i tą samą mapą, żeby zepsuty plugin nigdy nie spotkał twoich graczy. Crucible Local Server uruchamia taką na twoim własnym PC z Oxide albo Carbon zainstalowanym jednym kliknięciem.