Een kale (vanilla) Rust-server kan geen plugins draaien. Daarvoor heeft hij een moddingframework nodig: Oxide of Carbon. We leggen uit wat een framework doet, waarin de twee verschillen, welke je kiest, hoe je het installeert en wat je na elke maandelijkse Rust-update doet.
Wat je nodig hebt
- Een Rust-server die zonder framework normaal start
- Toegang tot de bestanden van de server (bestandsbeheer, SFTP of SSH op je eigen VPS)
- De mogelijkheid om de server te stoppen en opnieuw te starten
- Ongeveer 20 minuten
Rust bij StormHost
Rust-servers zijn bij ons in voorbereiding. De handleiding geldt ook voor een Rust-server op je eigen VPS (installatiestappen).
Wat een moddingframework is#
Een framework is een uitbreiding van de server die samen met Rust wordt geladen en de “deur” opent voor plugins. Een plugin is een gewoon tekstbestand met broncode in de taal C# en de extensie .cs. Het framework compileert het bestand zelf bij het laden en voert het uit. Je uploadt dus alleen het .cs-bestand, je hoeft zelf niets te compileren.
Wat een framework biedt:
- Hooks – plekken in het spel waar plugins op “inhaken” (een speler heeft verbinding gemaakt, er is iets gebouwd, iemand heeft een steen gemijnd…). Daardoor kan een plugin bijna alles aanpassen.
- Een rechtensysteem – groepen spelers en rechten zoals
kits.admin. Zie Rechten op een Rust-server. - Configuratie, gegevens en vertalingen van plugins – elke plugin maakt een eigen instellingenbestand (JSON) aan dat jij aanpast.
Spelers installeren niets. Alles draait alleen op de server en een speler maakt verbinding met dezelfde Rust-client als bij elke andere server.
Het tabblad Modded in de serverlijst
Oxide en Carbon markeren de server standaard als modded. Spelers vinden hem dan op het tabblad Modded en zien bij de details van de server het label Oxide of Carbon. Veranderen je plugins de gameplay (sneller verzamelen, kits, teleports), laat de server dan in Modded staan: daar zoeken spelers naar zulke servers.
Oxide en uMod: waarom twee namen#
Oxide is al lang het meest gebruikte framework voor Rust. Het project is in het verleden omgedoopt tot uMod en onder die naam draait nog steeds de website met plugins umod.org (opent in een nieuw venster). Het framework voor Rust zelf heet echter nog altijd Oxide: de downloadbestanden heten Oxide.Rust.zip, de commando's beginnen met oxide. en in de serverlijst staat het label “Oxide”. Het informele “oxymod” of “oxide mod” is hetzelfde.
Download Oxide uit de officiële repository OxideMod/Oxide.Rust op GitHub (opent in een nieuw venster). Er verschijnt vaak een nieuwe versie, meestal een paar keer per maand en altijd na een Rust-update.
Carbon#
Carbon is een nieuwer framework (het is in 2022 ontstaan). Het is zo gebouwd dat het plugins draait die voor Oxide zijn geschreven, en wel zonder aanpassingen. Je downloadt plugins dus op dezelfde plekken en ze gebruiken dezelfde .cs-bestanden.
De verschillen met Oxide volgens de makers van Carbon:
- Het wijzigt de spelbestanden niet. Oxide overschrijft bestanden in de map
RustDedicated_, Carbon heeft alles in een eigen mapData/ Managed carbon. - Het werkt zichzelf bij. Bij het starten van de server downloadt het de versie die bij de geïnstalleerde Rust past.
- Hooks alleen wanneer nodig. Het roept alleen de hooks aan die een plugin echt gebruikt, wat prestaties bespaart.
- Ingebouwde tools. Een beheerpaneel in het spel (het commando
/cpanel), optionele modules (vermenigvuldiging van de opbrengst, stackgrootte, onzichtbaarheid voor admins, whitelist, automatische wipe) en een profiler.
Carbon bestaat in twee builds: Release (volledig, met modules en het paneel) en Minimal (alleen plugins draaien). Kies om te beginnen Release.
Vergelijking#
| Oxide | Carbon | |
|---|---|---|
| Plugins van umod.org | Ja, standaard | Ja, de meeste plugins voor Oxide werken zonder wijzigingen |
| Waar het wordt geïnstalleerd | Overschrijft spelbestanden in RustDedicated_ | Eigen map carbon in de hoofdmap van de server, wijzigt de spelbestanden niet |
| Na een Rust-update | Je moet een nieuwe versie van Oxide uploaden (de update van het spel overschrijft het) | Werkt zichzelf bij tijdens het starten, Rust bijwerken is genoeg |
| Prestaties (volgens de makers van Carbon) | Alle hooks actief | Hooks worden alleen ingeschakeld als een plugin ze nodig heeft |
| Ingebouwde tools | Geen, alles gaat via plugins | Beheerpaneel, modules, profiler, webpaneel |
| Map met plugins | oxide/plugins | carbon/plugins |
| Configuratie van plugins | oxide/config | carbon/configs (let op, meervoud) |
| Gegevens, vertalingen, logs | oxide/data, oxide/lang, oxide/logs | carbon/data, carbon/lang, carbon/logs |
| Voorvoegsel van commando's | oxide. of kortweg o. | c. |
| Standaard rechtengroepen | default, admin | default, admin, moderator |
| Label in de serverlijst | Oxide | Carbon |
Hoe je kiest#
- Kies Oxide als je de meest gebruikte standaard wilt. Makers van plugins testen het als eerste en de meeste handleidingen op internet gaan ervan uit. De prijs daarvoor is een handmatige update na elke update van Rust.
- Kies Carbon als je zo min mogelijk werk aan updates wilt, plus een ingebouwd beheerpaneel en modules. Werkt een plugin niet op Carbon, laat het dan weten aan de maker van de plugin of aan de Carbon-community.
Op één server mag maar één framework draaien. Oxide en Carbon samen maken de server kapot.
Installatie#
Voordat je begint:
- Werk de Rust-server bij naar de nieuwste versie. De versie van het framework moet overeenkomen met de versie van het spel.
- Maak een back-up als de server al een wereld heeft. Zie Back-ups van gameservers.
- Zoek uit welk besturingssysteem de server heeft. Een eigen VPS en de meeste gamehosters draaien op Linux. Voor Windows en Linux download je andere bestanden.
Oxide
- Stop de server. Bestanden uploaden naar een draaiende server kan gegevens beschadigen.
- Open de pagina Oxide.Rust – Releases (opent in een nieuw venster) en klap bij de nieuwste release die niet als “Pre-release” is gemarkeerd het gedeelte Assets uit.
- Download het bestand dat bij het systeem van de server hoort:
Oxide.Rust-linux.zipvoor Linux,Oxide.Rust.zipvoor Windows.
- Pak het archief uit op je computer. Er zit één map in:
RustDedicated_Data. - Upload de map
RustDedicated_Datauit het archief naar de hoofdmap van de server, dus daar waar het bestandRustDedicated(op WindowsRustDedicated.exe) en de oorspronkelijke mapRustDedicated_Datastaan. Vraagt het programma erom, bevestig dan dat bestaande bestanden worden overschreven. - Start de server. Bij de eerste start maakt Oxide in de hoofdmap van de server de map
oxideaan met de submappenplugins,config,data,langenlogs.
Op een eigen VPS met Linux doe je dat met deze commando's (de paden komen overeen met de handleiding Je eigen Rust-server op een VPS):
curl -fL -o /opt/rust/oxide.zip https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip
unzip -o /opt/rust/oxide.zip -d /opt/rust/servercurl -fL -o /opt/rust/oxide.zip …– downloadt de laatste stabiele Linux-versie van Oxide naar de thuismap van de gebruikerrust. Met-feindigt het commando met een fout als het bestand niet bestaat,-Lvolgt de doorverwijzing van GitHub naar het echte bestand.unzip -o … -d /opt/rust/server– pakt het archief uit in de hoofdmap van de server;-ooverschrijft bestaande bestanden zonder te vragen.
Voer dit uit als de gebruiker onder wie de server draait (in de handleiding rust, vanuit root schakel je naar hem over met su - rust), zodat de nieuwe bestanden van hem zijn. Het programma unzip moet geïnstalleerd zijn (apt install unzip).
Het bestandsbeheer kan geen archief uitpakken
Pakt het bestandsbeheer van je hoster geen archieven uit, upload de uitgepakte bestanden dan via SFTP (FileZilla, WinSCP). Mappen worden met hun structuur geüpload.
Carbon
- Stop de server.
- Open de pagina Carbon – Releases (opent in een nieuw venster) en zoek de release Production Build (de stabiele versie voor de gewone Rust).
- Download het bestand dat bij het systeem van de server hoort:
Carbon.voor Linux,Linux. Release. tar. gz Carbon.voor Windows.Windows. Release. zip
- Pak het archief uit in de hoofdmap van de server (daar waar
RustDedicatedofRustDedicated.exestaat). De mapcarbonuit het archief moet direct in de hoofdmap van de server terechtkomen en de bestanden uit de hoofdmap van het archief ook: op Linuxlibdoorstop.soencarbon.sh, op Windowswinhttp.dllendoorstop_config.ini. - Alleen op Linux: Carbon wordt geladen via omgevingsvariabelen. Laad daarom in het startscript van de server het bestand
carbon/in voordattools/ environment. sh RustDedicatedstart (uitgebreid in de handleiding voor een VPS). Bij gamehosting regelt de aanbieder dit; ondersteunt die Carbon niet, dan wordt het niet geladen. - Start de server. Carbon downloadt bij het starten de updates voor jouw versie van Rust en maakt in de map
carbonsubmappen aan voor plugins, configuraties en logs.
Op een eigen VPS met Linux:
curl -fL -o /opt/rust/carbon.tar.gz https://github.com/CarbonCommunity/Carbon/releases/download/production_build/Carbon.Linux.Release.tar.gz
tar -xzf /opt/rust/carbon.tar.gz -C /opt/rust/servercurl -fL -o /opt/rust/carbon.tar.gz …– downloadt de stabiele (production) build van Carbon voor Linux.tar -xzf … -C /opt/rust/server– pakt het archief uit (-x), dat met gzip is gecomprimeerd (-z), uit het bestand (-f) naar de map van de server (-C).
Controle#
Oxide
Houd de console in de gaten tijdens het starten. Er verschijnen regels over het laden van Oxide en zijn extensies.
Voer in de console van de server in:
text oxide.versionJe ziet de versie en de branch, bijvoorbeeld:
Uitvoertext Oxide.Rust Version: 2.0.<VERSION_NUMBER> Oxide.Rust Branch: masterIn het spel, in de console F1, ziet de uitvoer er anders uit:
Server is running Oxide … and Rust ….Controleer of in de hoofdmap van de server de map
oxidemet de submappluginsis ontstaan.
Carbon
Houd de console in de gaten tijdens het starten. Carbon toont de voortgang van het laden en eventueel het downloaden van een update.
Voer in de console van de server in:
text c.versionHet commando toont de versie van Carbon en de versie van Rust waarop het draait.
Controleer of in de map
carbonde submappenplugins,configsenlogsen het bestandconfig.jsonstaan.
Waar je commando's invoert: in de console van de server (bij gamehosting het tabblad Console), via RCON (zie Admin en RCON), of in het spel in de console F1, als je admin bent op de server.
Na elke Rust-update#
Facepunch brengt één keer per maand een grote Rust-update uit, meestal op de eerste donderdag van de maand in de avond (de standaardtijd van de wipetimer is 19:00 uur Londense tijd, dus 20:00 uur Nederlandse tijd). Tussendoor verschijnen af en toe kleinere fixes. Na een update van het spel moet ook de bijpassende versie van het framework volgen.
Oxide
- Wacht tot er op GitHub (opent in een nieuw venster) een nieuwe versie van Oxide verschijnt (meestal kort na de Rust-update).
- Stop de server.
- Werk Rust bij (bij hosting met een update of herinstallatie van het spel, op een VPS via SteamCMD).
- Upload Oxide opnieuw op dezelfde manier als bij de installatie. De update van het spel overschrijft de bestanden in
RustDedicated_met een schone versie en daardoor verdwijnt Oxide.Data/ Managed - Start de server en controleer
oxide.version.
De map oxide met plugins, configuratie en gegevens blijft staan, de update van het spel verwijdert hem niet.
Carbon
- Stop de server.
- Werk Rust bij.
- Start de server. Carbon vergelijkt bij het starten zijn versie met de versie van Rust en downloadt zelf de juiste build. De makers brengen de stabiele versie voor de maandelijkse update ongeveer een uur vóór de release van Rust uit.
- Controleer
c.version.
Grote updates kunnen ook plugins kapotmaken
Na de maandelijkse update kan de code van het spel waarmee een plugin werkt zijn veranderd. Meldt een plugin een compilatiefout, kijk dan op zijn pagina of er een nieuwe versie is verschenen. De maandelijkse update betekent bovendien meestal ook een nieuwe wereld (force wipe), zie Een Rust-server wipen.
Overstappen van Oxide naar Carbon#
Carbon kan configuraties, gegevens, vertalingen en rechten van Oxide overnemen. De stappen volgens de documentatie van Carbon:
- Stop de server.
- Schakel alles uit wat Oxide automatisch zou installeren of bijwerken (bijvoorbeeld de optie “Oxide installeren” bij je aanbieder of een stap in je eigen startscript).
- Breng de spelbestanden terug naar een schone staat: laat de spelbestanden verifiëren (SteamCMD met de parameter
validate, bij hosting “bestanden verifiëren” of een herinstallatie van het spel zonder gegevens te verwijderen). Daarmee verdwijnen de bestanden die Oxide heeft overschreven. - Installeer Carbon volgens de handleiding hierboven.
- Start de server. Carbon vindt bij de eerste start de resten van Oxide en kopieert automatisch configuraties, gegevens, vertalingen, gebruikers en groepen naar zijn eigen map. Extensies van Oxide (de bestanden
Oxide.Ext.*.dllinRustDedicated_) verplaatst het naarData/ Managed carbon/extensions. - Controleer
c.versionen kijk met het commandoc.pluginsof de plugins zijn geladen.
Is de automatische overdracht niet uitgevoerd (die draait maar één keer), zet de gegevens dan handmatig over:
- kopieer de inhoud van de map
oxidenaarcarbon, behalve de mapconfig, - kopieer de inhoud van
oxide/confignaarcarbon/configs, - verplaats de bestanden
Oxide.Ext.*.dllvanRustDedicated_naarData/ Managed carbon/extensions.
Na de overdracht heb je de map oxide niet meer nodig. Commando's met het voorvoegsel oxide. en o. werken niet in Carbon, gebruik c. (bijvoorbeeld c.grant in plaats van oxide.grant).
Als iets niet werkt#
De server kent het commando oxide.version niet#
Oxide is niet geladen. De meest voorkomende oorzaken:
- De bestanden staan een niveau te diep: je hebt de hele map van het archief geüpload en er is bijvoorbeeld
Oxide.ontstaan. De mapRust/ RustDedicated_ Data/… RustDedicated_Datauit het archief moet de oorspronkelijke in de hoofdmap van de server overschrijven. - Je hebt de Windows-versie (
Oxide.Rust.zip) naar een Linux-server geüpload, of andersom. - Na het uploaden van Oxide is er een update van het spel uitgevoerd die de bestanden heeft overschreven (zie het volgende punt).
Na een herstart is Oxide verdwenen#
Het startscript of de hosting werkt bij elke start de spelbestanden bij en verifieert ze. De verificatie brengt de bestanden terug naar een schone staat en haalt Oxide eruit. Schakel de automatische update bij het starten uit, of upload Oxide daarna telkens opnieuw.
De server crasht bij het starten na de installatie van het framework#
De versie van het framework komt niet overeen met de versie van het spel. Werk zowel Rust als het framework bij naar de nieuwste versies. Download bij Oxide een release die na de laatste Rust-update is verschenen. Details vind je in het log van de server en in de map oxide/logs of carbon/logs.
Carbon wordt op Linux niet geladen, de server draait als vanilla#
Het startscript laadt carbon/ niet in voordat RustDedicated start. Voeg de regel met source toe volgens de handleiding voor een VPS. De documentatie van Carbon waarschuwt dat je in sommige omgevingen (vooral in Docker) bovendien export TERM=xterm moet instellen.
Ik heb zowel Oxide als Carbon geïnstalleerd#
De twee frameworks kunnen niet samen werken. Stop de server, laat de spelbestanden verifiëren (validate), houd er maar één over en volg het gedeelte Overstappen van Oxide naar Carbon.
Een plugin werkt op Oxide, maar niet op Carbon#
Controleer of je de nieuwste versie van zowel de plugin als Carbon hebt. De foutmelding vind je in de console en in carbon/logs. Blijft de fout bestaan, meld hem dan bij de maker van de plugin of bij de Carbon-community en voeg de uitvoer toe.
Ik wil dat de server niet op het tabblad Modded staat#
In Carbon toont het commando c.whymodded waarom de server als modded is gemarkeerd, en c.gocommunity voert de wijzigingen door die nodig zijn voor het tabblad Community. In Oxide wordt de markering bepaald door de optie "Modded" in het bestand oxide/oxide.config.json. Veranderen je plugins echter de gameplay, laat de server dan in Modded staan.
Samenvatting
- Een framework (Oxide of Carbon) is een voorwaarde voor plugins. Spelers installeren niets.
- Oxide is het meest gebruikt, Carbon draait dezelfde plugins, werkt zichzelf bij en heeft ingebouwde tools.
- Op een server mag maar één framework staan.
- Oxide upload je naar de hoofdmap van de server via de map
RustDedicated_Data, Carbon als de mapcarbon(op Linux bovendienenvironment.sh). - Controle:
oxide.versionofc.version. - Upload Oxide na elke Rust-update opnieuw; Carbon werkt zichzelf bij.
Meer bronnen#
- Oxide: installatie (officiële documentatie) (opent in een nieuw venster)
- Oxide.Rust – releases op GitHub (opent in een nieuw venster)
- Carbon: installatie (opent in een nieuw venster)
- Carbon: overstappen van Oxide (opent in een nieuw venster)
- Carbon op de wiki van Facepunch (opent in een nieuw venster)
- Plugins voor Rust op umod.org (opent in een nieuw venster)