Les plugins et les mods enrichissent de nombreux jeux, mais ils cessent souvent de fonctionner après une mise à jour du jeu ou lorsqu'un fichier est manquant. Les sections ci-dessous traitent des messages typiques de CS2 avec CounterStrikeSharp, de Valheim avec BepInEx, de Conan Exiles, de SCP: Secret Laboratory, de Project Zomboid et de The Forest, ainsi que des erreurs générales des plugins .NET. Chaque section présente un message, l'explique et indique les étapes suivantes.

Tu trouveras le message complet dans la Console et dans les fichiers de log du jeu sous Fichiers. De nombreuses erreurs s'étendent sur plusieurs lignes. La stacktrace en dessous, c'est-à-dire la liste des parties du programme appelées, indique souvent le plugin concerné ; une exception est une erreur de programme signalée par .NET ou Unity. Avant de remplacer des plugins, des mods ou des fichiers de configuration, crée une sauvegarde sous Sauvegardes.

Le plugin de skins CS2 ne trouve pas weapons.json

Voici à quoi ressemble le message :

System.InvalidOperationException: Missing required weapons definition file: <Plugin-Folder>/weapons.json

Ce qui se cache derrière : les plugins de skins pour CS2 ont besoin d'une liste de toutes les armes et de leurs identifiants. Elle se trouve dans le fichier obligatoire weapons.json, dans le dossier de données du plugin. Si ce fichier est absent, le plugin ne peut pas s'initialiser, donc il ne démarre même pas : la fonction de skins est entièrement hors service. Cela arrive par exemple lorsque seul le fichier programme du plugin a été transféré lors de l'envoi, et pas le paquet complet.

Voici comment résoudre le problème :

  1. Lis le chemin indiqué dans le message. Il montre dans quel dossier le plugin attend le fichier.
  2. Télécharge à nouveau le plugin dans la même version et réinstalle-le entièrement, avec tous les dossiers du paquet.
  3. Sinon, copie weapons.json depuis le paquet de la même version du plugin dans le dossier indiqué, sous Fichiers. N'utilise pas un fichier provenant d'une autre version.
  4. Redémarre le serveur et vérifie dans la Console que le plugin se charge sans erreur.

Bon à savoir : pour en savoir plus sur les plugins CS2 : Plugins CS2 : MetaMod, CounterStrikeSharp et MatchZy.

WeaponPaints : gamedata.json ne correspond pas à la mise à jour de CS2

Voici à quoi ressemble le message :

Method CAttributeList_SetOrAddAttributeValueByName not found in gamedata.json

Ce qui se cache derrière : WeaponPaints trouve certaines fonctions du programme CS2 grâce à des signatures, c'est-à-dire des marqueurs d'identification qui figurent dans le fichier gamedata.json. Après une mise à jour de CS2, l'une de ces signatures ne correspond plus et le plugin ne trouve pas la fonction. Il ne peut alors pas démarrer. Cela ne vient pas de tes paramètres, mais du fait que le jeu et le plugin ne sont plus compatibles.

Voici comment résoudre le problème :

  1. Vérifie si CS2 a récemment reçu une mise à jour. C'est la cause habituelle.
  2. Mets à jour CounterStrikeSharp et WeaponPaints ensemble vers la dernière version, en reprenant le gamedata.json actuel de WeaponPaints.
  3. S'il n'existe pas encore de version adaptée, retire temporairement WeaponPaints jusqu'à ce que l'auteur ait publié une mise à jour.
  4. Redémarre le serveur et vérifie que le message a disparu.

Bon à savoir : après les grosses mises à jour de CS2, il faut parfois un certain temps avant que les auteurs de plugins publient des versions adaptées. Plus d'informations sur les mises à jour du jeu : Mettre à jour un serveur CS2 : repérer le décalage de build et redémarrer en toute sécurité.

Conan Exiles : joueur refusé à cause d'une liste de mods différente

Voici à quoi ressemble le message :

[<Date>-<Time>][<No>]LogNet: PreLogin failure: <Mod A> (<Workshop ID>), <Mod B> (<Workshop ID>), <Mod C> (<Workshop ID>).

Ce qui se cache derrière : un joueur a voulu rejoindre le serveur et a été refusé, car ses mods actifs ne correspondent pas exactement à la liste de mods de ton serveur. Important : les mods affichés sur la ligne constituent la liste attendue par le serveur, et non les mauvais mods du joueur. Les mods que le joueur a réellement activés ne figurent pas dans le log. Conan Exiles exige une correspondance exacte : un mod manquant bloque autant qu'un mod en trop. Le joueur ne voit aucune raison : son jeu reste bloqué sur « Tentative de connexion à la partie ». Cela ressemble à un dépassement de délai, mais c'est un refus immédiat.

Voici comment résoudre le problème :

  1. Compare la liste du log avec les mods que le joueur a activés dans le lanceur de Conan. La composition doit être identique, sans ajout.
  2. Si le joueur désactive tous les mods qui ne figurent pas dans la liste et active ceux qui manquent, il pourra se reconnecter.
  3. Si un mod supplémentaire doit être autorisé, installe-le sur le serveur sous Mods et redémarre le serveur.
  4. Après chaque modification des mods du serveur, tous les joueurs doivent aligner leur liste de mods.

CounterStrikeSharp : erreur dans un événement de plugin (« Error invoking callback »)

Voici à quoi ressemble le message :

<Time> [EROR] (cssharp:…) Error invoking callback

Ce qui se cache derrière : CounterStrikeSharp est une plateforme de plugins pour CS2. Les plugins s'y rattachent à des événements comme « un joueur se connecte » ou « la manche commence » ; la fonction appelée alors s'appelle un callback. Dans un tel callback, un plugin a déclenché une erreur, appelée exception. Le serveur continue de tourner, mais la fonction du plugin concernée n'a pas fonctionné. Le plugin en cause et la raison figurent dans la stacktrace en dessous, la liste des parties du programme appelées.

Voici comment résoudre le problème :

  1. Lis la stacktrace complète sous le message. Le nom du plugin y apparaît généralement dans les noms de classes ou comme nom de fichier.
  2. Mets à jour ce plugin et CounterStrikeSharp vers des versions compatibles entre elles. La page du plugin indique la version de CounterStrikeSharp prise en charge.
  3. Redémarre complètement le serveur, pas seulement le plugin.
  4. Si l'erreur persiste ensuite, retire le plugin et signale l'erreur à son auteur.

CS2-SimpleAdmin : la base de données ne correspond pas à la version du plugin

Voici à quoi ressemble le message :

A parameterless default constructor or one matching signature (…) is required for CS2_SimpleAdmin.<Class> materialization

Ce qui se cache derrière : CS2-SimpleAdmin enregistre les bannissements, les mutes et l'historique des IP dans une base de données MySQL. Le message indique que les colonnes des tables ne correspondent pas à la version attendue par le plugin. C'est typique après une mise à jour du plugin dont la migration de base de données (l'adaptation automatique des tables) ne s'est pas exécutée, ou lorsqu'une base de données issue d'une ancienne installation est réutilisée. Les fonctions d'administration du plugin ne sont alors pas fiables, mais le serveur CS2 lui-même continue de tourner.

Voici comment résoudre le problème :

  1. Sauvegarde le contenu de la base de données avant de modifier quoi que ce soit, par exemple via un export.
  2. Mets à jour CS2-SimpleAdmin vers la dernière version et redémarre le serveur une fois pour que la migration s'exécute.
  3. Si le message persiste, compare les tables de ta base de données avec le schéma, c'est-à-dire la structure des tables, de la version installée du plugin.
  4. Si tu peux te passer des anciennes données de bannissement, crée une nouvelle base de données sous Bases de données, renseigne ses identifiants d'accès dans la configuration du plugin et redémarre.

WeaponPaints ne démarre pas (« TypeInitializationException »)

Voici à quoi ressemble le message :

TypeInitializationException: The type initializer for 'WeaponPaints.WeaponPaints' threw an exception.
 ---> <inner exception>: <Cause>

Ce qui se cache derrière : lors du premier accès, WeaponPaints exécute une routine de démarrage statique (Type Initializer). Celle-ci a échoué, c'est pourquoi le plugin ne démarre pas. Le message lui-même n'est que l'enveloppe : la véritable cause est indiquée par l'exception interne juste après, par exemple une configuration erronée, un fichier de données manquant ou une dépendance incompatible.

Voici comment résoudre le problème :

  1. Lis la première exception interne sous ce message, généralement introduite par --->.
  2. Mets à jour WeaponPaints et CounterStrikeSharp ensemble vers des versions compatibles entre elles.
  3. Corrige ensuite uniquement ce que l'exception interne mentionne concrètement : le fichier de configuration, un fichier de données manquant comme weapons.json ou la connexion à la base de données. Tu trouveras les identifiants d'accès de ta base de données sous Bases de données.
  4. Redémarre le serveur et vérifie la Console.

Plugin .NET : dépendance manquante (« Could not load file or assembly »)

Voici à quoi ressemble le message :

System.IO.FileNotFoundException: Could not load file or assembly '<Name>, Version=<Version>, Culture=neutral, PublicKeyToken=<…>' or one of its dependencies. The system cannot find the file specified.

Ce qui se cache derrière : De nombreux jeux chargent des plugins via .NET, par exemple CS2 avec CounterStrikeSharp, Valheim avec BepInEx ou SCP: Secret Laboratory. Une assembly est un fichier de programme .NET, le plus souvent une .dll. Le message signifie : un plugin a besoin d'une certaine assembly qui n'est pas installée, ou les versions de ses dépendances ne correspondent pas entre elles. Le plugin concerné ne démarre alors pas, ou seulement en partie.

Voici comment le résoudre :

  1. Lis le nom et la version indiqués entre guillemets. C'est la dépendance manquante.
  2. Consulte la page du plugin pour savoir quelles dépendances sont nécessaires et dans quelle version. Elles se trouvent souvent sous forme de fichiers .dll supplémentaires dans le paquet de téléchargement.
  3. Installe la dépendance dans la version requise sous Fichiers, dans le dossier indiqué par la page du plugin.
  4. Redémarre le serveur et vérifie si le message a disparu.

Un composant .NET échoue lors de l'initialisation

Voici à quoi ressemble le message :

System.TypeInitializationException: The type initializer for '<Class>' threw an exception
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

Ce qui se cache derrière : Un composant .NET, c'est-à-dire un plugin, un mod ou une partie du chargeur, a échoué dans sa routine de démarrage ou dans un callback. Un callback est une fonction appelée lors d'un événement donné. Ces messages ne sont que des enveloppes autour de l'erreur réelle : l'exception interne qui suit immédiatement en contient la cause. Le composant concerné ne fonctionne ensuite plus, ou seulement de façon limitée.

Voici comment le résoudre :

  1. Détermine quel composant est concerné. Le nom entre guillemets ou les lignes de la stacktrace l'indiquent.
  2. Mets à jour ce composant ainsi que le chargeur de mods ou de plugins utilisé, par exemple BepInEx ou CounterStrikeSharp.
  3. Redémarre le serveur et lis dans le log la première exception interne, généralement introduite par --->. Dans les jeux Unity, l'exception d'origine se trouve souvent directement au-dessus d'une ligne contenant Rethrow as.
  4. Corrige ce que cette exception interne indique, par exemple un fichier manquant ou un mauvais paramètre.

Le plugin .NET ne parvient pas à charger ses classes

Voici à quoi ressemble le message :

System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
System.Exception: Unable to find plugin in assembly

Ce qui se cache derrière : Le chargeur de plugins a ouvert le fichier du plugin, mais n'a pas pu charger ses classes ou trouver son point d'entrée, c'est-à-dire l'endroit où il démarre le plugin. Soit le fichier du plugin ne correspond pas à la version installée du chargeur ou du jeu, soit le mauvais fichier se trouve dans le dossier des plugins, par exemple une simple bibliothèque d'aide au lieu du plugin lui-même. Le plugin reste alors inactif.

Voici comment le résoudre :

  1. Mets à jour le plugin et le chargeur ensemble, afin que les deux correspondent à la version actuelle du jeu.
  2. Vérifie sous Fichiers que le bon fichier de plugin se trouve dans le dossier indiqué par la page du plugin.
  3. Supprime les anciennes copies du même plugin pour qu'une seule version soit chargée.
  4. Redémarre le serveur et vérifie la Console.

Valheim : le mod ne correspond pas à la version du jeu et reste sans effet

Voici à quoi ressemble le message :

Rethrow as TypeInitializationException: The type initializer for '<Mod-Class>' threw an exception.

Ce qui se cache derrière : BepInEx, le chargeur de mods pour Valheim, a chargé le mod, mais celui-ci a planté immédiatement lors de l'initialisation. Il accède à un élément du jeu qui n'existe pas ou plus dans la version de Valheim en cours. Le serveur démarre malgré tout normalement et reste pleinement jouable. Le mod apparaît toujours comme installé, mais ne fait rien, et aucun message d'erreur ne s'affiche en jeu à ce sujet. La cause la plus fréquente est une mise à jour de Valheim : le serveur se met à jour tout seul à chaque démarrage, tandis que le mod reste dans son état. Le nom du mod figure dans la ligne au-dessus.

Voici comment le résoudre :

  1. Note le nom du mod indiqué dans la ligne au-dessus du message.
  2. Vérifie sous Mods s'il existe une version plus récente compatible avec la version actuelle de Valheim. Si oui, installe-la et redémarre le serveur.
  3. S'il n'existe pas de version compatible, désinstalle le mod pour l'instant. Sinon, il ne fait qu'occuper de la place et donne l'impression d'être actif.
  4. Les mods importants pour ton serveur, tu ne les réactives que lorsque leur auteur les a adaptés à la nouvelle version du jeu.

Pour plus de détails : Valheim 1.0 : mise à jour du serveur, ancien monde et mods à vérifier en toute sécurité

Un mod Valheim cherche le champ supprimé « ZRoutedRpc.Everybody »

Voici à quoi ressemble le message :

MissingFieldException: Field not found: .ZRoutedRpc.Everybody

Ce qui se cache derrière : ZRoutedRpc est la partie de Valheim par laquelle le serveur et les joueurs échangent des messages. Un mod BepInEx a été conçu pour une autre version de Valheim et y attend le champ Everybody, qui n'existe pas dans la version installée. Le mod ne peut pas exécuter sa fonction à cet endroit et ne fonctionne pas, ou seulement en partie.

Voici comment le résoudre :

  1. Dans la stacktrace, la liste des parties du programme appelées sous le message, cherche le premier mod. C'est lui qui est concerné.
  2. Mets-le à jour sous Mods vers une version pour le build actuel de Valheim, c'est-à-dire la version du jeu en cours.
  3. S'il n'en existe pas encore, désinstalle le mod pour l'instant et redémarre le serveur.
  4. Si le mod tourne aussi chez tes coéquipiers, tout le monde devrait utiliser la même version.

Pour plus de détails : Valheim 1.0 : mise à jour du serveur, ancien monde et mods à vérifier en toute sécurité

SCP: Secret Laboratory : le plugin ne se charge pas

Voici à quoi ressemble le message :

[LabApi] System.BadImageFormatException: <Plugin file details>

Ce qui se cache derrière : LabApi est l'interface de plugins de SCP: Secret Laboratory. Elle n'a pas pu charger un fichier de plugin, car son format ne correspond pas à la version du serveur. C'est typique après une mise à jour du jeu, lorsqu'un plugin est encore conçu pour la version précédente, ou lorsque le fichier a été endommagé lors de l'envoi. Le plugin concerné reste inactif, le serveur démarre sans lui.

Voici comment le résoudre :

  1. Vérifie si le message indique le nom du fichier du plugin.
  2. Envoie à nouveau le plugin dans une version adaptée à ta version actuelle de SCP:SL et redémarre le serveur. La page du plugin indique les versions prises en charge.
  3. Si tu ne sais pas de quel plugin il s'agit, supprime sous Fichiers le dernier fichier ajouté dans le dossier des plugins et redémarre.
  4. Après l'envoi, compare la taille du fichier avec l'original. Si elle diffère, le transfert était incomplet.

Bon à savoir : tu trouveras les bases concernant le serveur sous Configurer un serveur SCP Secret Laboratory.

Project Zomboid : une map ou un mod utilise une propriété de tuile inconnue

Voici à quoi ressemble le message :

IsoPropertyTypeNotFoundException: Property Name not found: <Property>

Ce qui se cache derrière : Les cartes de Project Zomboid sont composées de tuiles (tiles). Chaque tuile possède des propriétés qui définissent par exemple si un élément est un conteneur, une porte ou un obstacle. Une map ou un mod utilise ici une propriété que ta version de Project Zomboid ne connaît pas. Les objets concernés peuvent manquer ou mal fonctionner, le serveur continue généralement de tourner. Souvent, la map ou le mod a été conçu pour une autre version du jeu, par exemple après le passage au Build 42.

Voici comment le corriger :

  1. Trouve quelle map ou quel mod est concerné. Si le message est nouveau, le dernier élément installé ou mis à jour est le premier suspect.
  2. Mets à jour la map ou le mod vers une version compatible avec ta version installée de Project Zomboid.
  3. Si le problème a commencé après une mise à jour d'un mod, restaure la version compatible précédente du mod.
  4. Si tu veux supprimer complètement un mod de map, crée d'abord une sauvegarde dans Sauvegardes. Si une carte déjà utilisée par ta sauvegarde de partie manque, cela peut modifier le monde.

Bon à savoir : Pour le passage au Build 42, consulte Project Zomboid Build 42 sur ton propre serveur.

The Forest : « Bolt is already running » après un redémarrage

Voici à quoi ressemble le message :

BoltException: Bolt is already running, you must call BoltLauncher.Shutdown() before starting a new instance of Bolt.
  at BoltCore.BeginStart (…)

Ce qui se cache derrière : The Forest utilise la bibliothèque réseau Bolt pour le mode multijoueur. Le message signifie que le serveur a voulu démarrer une seconde instance de Bolt alors que la première tourne encore. Cela peut arriver après un soft restart défectueux, c'est-à-dire un redémarrage à l'intérieur du programme en cours au lieu d'un vrai redémarrage du processus. La nouvelle session ne peut alors pas démarrer correctement.

Voici comment le corriger :

  1. Arrête le serveur dans le panel et attends qu'il soit complètement éteint.
  2. Redémarre-le ensuite. Un processus tout neuf ne lance Bolt qu'une seule fois.
  3. Pour redémarrer, n'utilise aucune fonction en jeu ni rechargement à chaud, mais toujours le redémarrage via le panel.
  4. Pour des redémarrages réguliers, configure un redémarrage planifié dans Tâches.

Bon à savoir : La marche à suivre est expliquée dans Planifier des redémarrages automatiques pour ton serveur.

The Forest ne peut pas lire les interfaces réseau

Voici à quoi ressemble le message :

NetworkInformationException: File not found.
  at CoopDedicatedServerStarter.getMachineIp ()

Ce qui se cache derrière : Au démarrage, le serveur dédié de The Forest essaie de déterminer ses interfaces réseau, et donc sa propre adresse IP. L'interface du système d'exploitation qu'il interroge pour cela n'est pas disponible dans l'environnement du serveur. Si le serveur est malgré tout joignable, le message n'a aucun autre effet.

Voici comment le corriger :

  1. Vérifie si le serveur est joignable : apparaît-il dans la liste des serveurs et les joueurs peuvent-ils le rejoindre ?
  2. Si oui, tu peux ignorer le message.
  3. Sinon, mets le serveur à jour vers le build actuel, c'est-à-dire la dernière version serveur du jeu, puis redémarre-le.
  4. S'il reste injoignable, ouvre un ticket et indique l'heure du message. Tu ne peux pas modifier toi-même l'environnement de démarrage du serveur.

Bon à savoir : Tu trouveras les bases concernant le serveur dans Configurer un serveur The Forest.

Le mod signale « CS0246 : type ou espace de noms introuvable »

Voici à quoi ressemble le message :

<File>.cs(<Line>,<Column>): error CS0246: The type or namespace name '<Type>' could not be found

Ce qui se cache derrière : le compilateur, qui traduit le code source C# en éléments de programme exécutables, ne trouve pas un type utilisé. Le nom ne peut être résolu ni dans le code source existant, ni via les bibliothèques référencées. Le mod concerné ne peut donc pas être chargé. Pour les fichiers de mod fournis ou personnalisés, le code source et les bibliothèques doivent correspondre à la version du jeu.

Voici comment le corriger :

  1. Lis le message d'erreur complet dans la Console. Il indique le fichier, la ligne et le type manquant.
  2. Sauvegarde tes propres modifications dans Fichiers avant de remplacer des fichiers de mod.
  3. Installe une version du mod concerné qui correspond à la version du jeu, avec les dépendances nécessaires. Si tu utilises ton propre code source, vérifie l'orthographe, l'espace de noms et les références aux bibliothèques.
  4. Redémarre le serveur et vérifie si le compilateur signale d'autres erreurs.

Ton message n'apparaît pas ?

Lis le message en entier dans la Console ou dans le fichier de log du jeu, y compris les lignes qui le précèdent. Pour les jeux .NET et Unity, la véritable cause se trouve souvent dans l'exception interne. Les noms de dossiers et de fichiers dans la stacktrace indiquent quel plugin ou quel mod est concerné. Avant tout remplacement, crée une sauvegarde sous Sauvegardes. Les plantages et les mises à jour échouées sont traités dans Le serveur de jeu plante ou la mise à jour Steam échoue. Si tu es bloqué, ouvre un ticket et indique l'heure du message.