1. La logique générale
Un serveur Rust moddé repose sur quatre types de fichiers. Savoir à quoi ils servent et surtout où les déposer évite la grande majorité des problèmes de plugins.
| Type | Rôle | Dossier (Oxide) |
|---|---|---|
.cs |
Le plugin, c'est-à-dire le code | /oxide/plugins/ |
.json |
La configuration du plugin | /oxide/config/ |
.data |
Les données enregistrées en jeu | /oxide/data/ |
| lang | Les messages affichés aux joueurs | /oxide/lang/fr/ ou /en/ |
Chez CroustyCloud, les chemins complets sont les suivants :
/server/IDENTITY/oxide/plugins/
/server/IDENTITY/oxide/config/
/server/IDENTITY/oxide/data/
/server/IDENTITY/oxide/lang/IDENTITY correspond à l'identité de votre serveur, par exemple oasis_x2.
Vous utilisez Carbon ? La structure est identique mais se trouve à la racine : /carbon/plugins/, /carbon/configs/, /carbon/data/, /carbon/lang/. Ne mélangez jamais les deux frameworks sur un même serveur.
2. Les fichiers .CS — les plugins
Un fichier .cs est un plugin écrit en C#. C'est le code du plugin : kits, boutiques, téléportation, events, interfaces, économie.
Exemples courants : Kits.cs, BetterChat.cs, RaidableBases.cs, ImageLibrary.cs.
Où les trouver :
- umod.org — plugins gratuits, la référence historique
- codefling.com — plugins premium
- lone.design — plugins premium
- chaoscode.io
Où les placer : /oxide/plugins/
Le plugin se compile et se charge automatiquement dès que le fichier est déposé, sans redémarrage.
Ne modifiez jamais un .cs si vous ne savez pas coder. Une seule erreur de syntaxe empêche la compilation, et le plugin ne se chargera plus du tout.
3. Les fichiers .JSON — les configurations
Un fichier .json permet de régler le comportement d'un plugin sans toucher au code : prix d'une boutique, contenu des kits, cooldowns, options activées, logos, couleurs.
Ils sont générés automatiquement après le premier lancement du plugin, dans /oxide/config/ : Kits.json, BetterChat.json, RaidableBases.json.
Sauvegarder l'original
Téléchargez le fichier et gardez-en une copie intacte sur votre ordinateur avant toute modification.
Modifier avec le bon outil
Ouvrez le fichier avec un éditeur adapté comme VS Code ou Notepad++. N'utilisez jamais Word ou un traitement de texte : ils cassent l'encodage et les guillemets.
Vérifier la syntaxe
Collez le contenu sur jsonlint.com pour valider le format. Une virgule en trop suffit à rendre le fichier illisible pour le plugin.
Recharger le plugin
Renvoyez le fichier sur le serveur puis tapez oxide.reload NomDuPlugin dans la console. Sans cette commande, l'ancienne configuration reste en mémoire.
Si vous supprimez un .json, le plugin en recrée un neuf avec les valeurs par défaut au prochain chargement. C'est souvent la solution la plus rapide quand une configuration est cassée.
4. Les fichiers .DATA — les données du plugin
Ces fichiers contiennent tout ce que le plugin enregistre en cours de jeu : homes des joueurs, kits déjà réclamés, clans, points d'économie, liaisons Discord/Steam, statistiques.
Ils se trouvent dans /oxide/data/ : Kits_Data.json, Teleport_Data.json, Clans_Data.json.
Ne supprimez jamais un .data sans savoir exactement ce qu'il contient : c'est la progression de vos joueurs qui disparaît, sans retour possible.
Au moment d'un wipe, ce sont ces fichiers que vous choisissez de conserver (économie, grades VIP, statistiques) ou de vider (homes, clans, cooldowns).
5. Les fichiers LANG — les messages du plugin
Les fichiers lang contiennent tous les textes affichés aux joueurs : messages de bienvenue, erreurs, confirmations, retours de commandes.
Ils sont organisés par langue dans /oxide/lang/fr/ et /oxide/lang/en/.
Pour traduire un plugin en français : copiez le fichier depuis /lang/en/ vers /lang/fr/, puis traduisez uniquement le texte situé à droite des deux-points.
Ne touchez pas aux balises à l'intérieur des messages : {0}, {1}, ou les codes couleur comme <color=#ffcc00>. Elles sont remplacées dynamiquement par le plugin et leur suppression provoque une erreur.
6. Bonus — les permissions
Les groupes et permissions ne se trouvent pas dans un .json de plugin, mais dans /oxide/data/oxide.groups.data et oxide.users.data. Gérez-les toujours par commande, jamais à la main :
oxide.grant group default kits.use
oxide.usergroup add VotrePseudo vip
oxide.show group vip7. Problèmes fréquents
| Symptôme | Cause probable | Solution |
|---|---|---|
| Le plugin ne se charge pas | Fichier déposé dans le mauvais dossier | Vérifier qu'il est bien dans /oxide/plugins/ |
| Erreur de compilation au chargement | Fichier .cs modifié ou version obsolète |
Retélécharger le plugin dans sa version à jour |
| Le plugin ne démarre pas et signale une dépendance | Plugin requis absent | Installer la dépendance, souvent ImageLibrary |
| La configuration est ignorée | Plugin non rechargé | Taper oxide.reload NomDuPlugin |
| Le plugin recrée une config vide | .json mal formaté |
Valider le fichier sur jsonlint.com |
| Les données des joueurs ont disparu | Fichier .data supprimé ou écrasé |
Restaurer depuis la dernière sauvegarde |
| Tout fonctionnait avant l'update Rust | Oxide/Carbon ou le plugin pas à jour | Mettre à jour le framework puis les plugins |
8. Les cinq réflexes à garder
- Sauvegardez avant de toucher à un
.json. - Un type de fichier correspond à un dossier précis : dans le doute, ne devinez pas.
- Rechargez systématiquement après modification avec
oxide.reload NomDuPlugin. - Consultez les logs en cas d'erreur :
/oxide/logs/. - Ne supprimez jamais un
.datasans raison.
Une question ou un blocage sur une étape ? L'équipe CroustyCloud est disponible sur le Discord, ou en contact direct via trap_fr.