Plugins and mods extend many games, but they like to break after a game update or when a file is missing. The sections below cover typical messages from CS2 with CounterStrikeSharp, Valheim with BepInEx, Conan Exiles, SCP: Secret Laboratory, Project Zomboid and The Forest, as well as general errors from .NET plugins. Each section shows a message, explains it and lists the next steps.
You can find the full message in the Console and in the game's log files under Files. Many errors consist of several lines. The stack trace below it, the list of the program parts that were called, often names the affected plugin; an exception is a program error reported by .NET or Unity. Before you replace plugins, mods or configuration files, create a backup under Backups.
CS2 Skins Plugin Can't Find weapons.json
What the message looks like:
System.InvalidOperationException: Missing required weapons definition file: <Plugin folder>/weapons.json
What's behind it: Skins plugins for CS2 need a list of all weapons and their identifiers. It is stored in the required file weapons.json in the plugin's data folder. If this file is missing, the plugin can't initialize, meaning it can't even start: the skin feature fails completely. This happens, for example, if only the plugin's program file was transferred during upload and not the whole package.
How to fix it:
- Read the path in the message. It shows in which folder the plugin expects the file.
- Download the plugin again in the same version and reinstall it completely, with all folders from the package.
- Alternatively, copy
weapons.jsonfrom the package of the same plugin version into the named folder under Files. Don't use a file from a different version. - Restart the server and check in the Console whether the plugin loads without errors.
Good to know: For more detail on CS2 plugins: CS2 Plugins: MetaMod, CounterStrikeSharp and MatchZy.
WeaponPaints: gamedata.json Doesn't Match the CS2 Update
What the message looks like:
Method CAttributeList_SetOrAddAttributeValueByName not found in gamedata.json
What's behind it: WeaponPaints finds certain functions in the CS2 program via signatures, meaning identifying patterns that are stored in the file gamedata.json. After a CS2 update, one of these signatures no longer matches, and the plugin can't find the function. Then it can't start. This isn't caused by your settings, but by the game and the plugin no longer matching.
How to fix it:
- Check whether CS2 recently received an update. That is the usual trigger.
- Update CounterStrikeSharp and WeaponPaints together to the latest version and apply the current
gamedata.jsonfrom WeaponPaints. - If there is no adapted version yet, temporarily remove WeaponPaints until the author has caught up.
- Restart the server and check whether the message is gone.
Good to know: After big CS2 updates, it sometimes takes a while until plugin authors release adapted versions. More about game updates: Updating a CS2 Server: Detecting Build Drift and Restarting Safely.
Conan Exiles: Player Rejected Due to Mismatched Mod List
What the message looks like:
[<Date>-<Time of day>][<No.>]LogNet: PreLogin failure: <Mod A> (<Workshop ID>), <Mod B> (<Workshop ID>), <Mod C> (<Workshop ID>).
What's behind it: A player tried to join and was rejected because their active mods don't exactly match your server's mod list. Important: the mods in the line are the server's required list, not the player's wrong mods. Which mods the player actually has active isn't shown in the log. Conan Exiles requires an exact match; a missing mod blocks just as much as an additional one. The player sees no reason: their game stays on "Attempting to join game". This looks like a timeout, but it is an immediate rejection.
How to fix it:
- Compare the list from the log with the mods the player has enabled in the Conan launcher. The composition must be identical, with no extras.
- If the player disables every mod that isn't in the list and enables the missing ones, they can connect again.
- If an additional mod should be allowed, install it on the server under Mods and restart the server.
- After every change to the server mods, all players must adjust their mod list.
CounterStrikeSharp: Error in a Plugin Event ("Error invoking callback")
What the message looks like:
<Time of day> [EROR] (cssharp:…) Error invoking callback
What's behind it: CounterStrikeSharp is a plugin platform for CS2. Plugins hook into events such as "player connects" or "round starts"; the function that is then called is known as a callback. In such a callback, a plugin triggered an error, a so-called exception. The server keeps running, but the affected plugin function didn't work. Which plugin it was and why is shown in the stack trace below, the list of the program parts that were called.
How to fix it:
- Read the full stack trace below the message. The plugin's name is usually shown there as part of the class names or as a file name.
- Update this plugin and CounterStrikeSharp to versions that match each other. The plugin page lists the supported CounterStrikeSharp version.
- Restart the server completely, not just the plugin.
- If the error still occurs afterwards, remove the plugin and report the error to its author.
CS2-SimpleAdmin: Database Doesn't Match the Plugin Version
What the message looks like:
A parameterless default constructor or one matching signature (…) is required for CS2_SimpleAdmin.<Class> materialization
What's behind it: CS2-SimpleAdmin stores bans, mutes and the IP history in a MySQL database. The message means that the table columns don't match the version the plugin expects. This is typical after a plugin update whose database migration (the automatic adjustment of the tables) didn't run, or when a database from an older installation is reused. The plugin's admin features then don't work reliably, while the CS2 server itself keeps running.
How to fix it:
- Back up the contents of the database before you change anything, for example via export.
- Update CS2-SimpleAdmin to the latest version and restart the server once so the migration runs.
- If the message remains, compare your database's tables with the schema, meaning the table structure, of the installed plugin version.
- If you can do without the old ban data, create a fresh database under Databases, enter its credentials in the plugin's configuration and restart.
WeaponPaints Won't Start ("TypeInitializationException")
What the message looks like:
TypeInitializationException: The type initializer for 'WeaponPaints.WeaponPaints' threw an exception.
---> <inner exception>: <Cause>
What's behind it: On first access, WeaponPaints runs a static startup routine (type initializer). This failed, which is why the plugin doesn't start. The message itself is only a wrapper: the actual cause is named by the inner exception right after it, for example a faulty configuration, a missing data file or a dependency that doesn't match.
How to fix it:
- Read the first inner exception below this message, usually introduced with
--->. - Update WeaponPaints and CounterStrikeSharp together to matching versions.
- Then fix only what the inner exception specifically names: the configuration file, a missing data file such as
weapons.json, or the connection to the database. You can find your database credentials under Databases. - Restart the server and check the Console.
.NET Plugin: Dependency Missing ("Could not load file or assembly")
What the message looks like:
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.
What's behind it: Many games load plugins via .NET, such as CS2 with CounterStrikeSharp, Valheim with BepInEx or SCP: Secret Laboratory. An assembly is a .NET program file, usually a .dll. The message means: a plugin needs a certain assembly that isn't installed, or the versions of its dependencies don't fit together. The affected plugin then doesn't start or only partly works.
How to fix it:
- Read the name and version in the quotation marks. That is the missing dependency.
- Check on the plugin page which dependencies are needed in which version. They are often included as additional
.dllfiles in the download package. - Install the dependency in the required version under Files in the folder specified by the plugin page.
- Restart the server and check whether the message is gone.
.NET Component Fails During Initialization
What the message looks like:
System.TypeInitializationException: The type initializer for '<Class>' threw an exception
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
What's behind it: A .NET component, meaning a plugin, a mod or part of the loader, failed in its startup routine or in a callback. A callback is a function that is called on a specific event. These messages are just wrappers around the actual error: the inner exception that follows immediately contains the cause. The affected component then doesn't work or only works in a limited way.
How to fix it:
- Determine which component is affected. The name in the quotation marks or the lines in the stack trace name it.
- Update this component and the mod or plugin loader in use, for example BepInEx or CounterStrikeSharp.
- Restart the server and read the first inner exception in the log, usually introduced with
--->. In Unity games, the original exception is often directly above a line withRethrow as. - Fix what this inner exception names, such as a missing file or an incorrect setting.
.NET Plugin Can't Load Its Classes
What the message looks like:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
System.Exception: Unable to find plugin in assembly
What's behind it: The plugin loader opened the plugin file but couldn't load its classes or find its entry point, meaning the place where it starts the plugin. Either the plugin file doesn't match the installed loader or game version, or the wrong file is in the plugin folder, such as a pure helper library instead of the plugin itself. The plugin then stays inactive.
How to fix it:
- Update the plugin and loader together so that both match the current game version.
- Check under Files that the correct plugin file is in the folder specified by the plugin page.
- Delete older copies of the same plugin so that only one version is loaded.
- Restart the server and check the Console.
Valheim: Mod Doesn't Match the Game Version and Has No Effect
What the message looks like:
Rethrow as TypeInitializationException: The type initializer for '<Mod class>' threw an exception.
What's behind it: BepInEx, the mod loader for Valheim, loaded the mod, but it crashed immediately during initialization. It accesses something in the game that doesn't exist, or no longer exists, in the running Valheim version. The server still starts normally and is fully playable. The mod continues to appear as installed but does nothing, and there is no error message about it in the game. The most common trigger is a Valheim update: the server updates itself on every start, while the mod stays at its version. The line above names the mod.
How to fix it:
- Note the mod name from the line above the message.
- Check under Mods whether there is a newer version that matches the current Valheim version. If so, install it and restart the server.
- If there is no matching version, uninstall the mod for now. Otherwise it just takes up space and gives the impression that it is active.
- Mods that are important for your server should only be re-enabled once their author has caught up to the new game version.
In detail: Valheim 1.0: Safely Checking the Server Update, Old World and Mods
Valheim Mod Looks for the Removed Field "ZRoutedRpc.Everybody"
What the message looks like:
MissingFieldException: Field not found: .ZRoutedRpc.Everybody
What's behind it: ZRoutedRpc is the part of Valheim through which the server and players exchange messages. A BepInEx mod was built for a different Valheim version and expects the field Everybody there, which doesn't exist in the installed version. The mod can't perform its function at this point and works not at all or only partly.
How to fix it:
- In the stack trace, the list of the program parts that were called below the message, find the first mod. It is the affected one.
- Update it under Mods to a version for the current Valheim build, meaning the running game version.
- If there isn't one yet, uninstall the mod for now and restart the server.
- If the mod also runs for your fellow players, everyone should use the same version.
In detail: Valheim 1.0: Safely Checking the Server Update, Old World and Mods
SCP: Secret Laboratory: Plugin Won't Load
What the message looks like:
[LabApi] System.BadImageFormatException: <Plugin file details>
What's behind it: LabApi is the plugin interface of SCP: Secret Laboratory. It couldn't load a plugin file because its format doesn't match the server version. This is typical after a game update, when a plugin is still built for the previous version, or when the file was damaged during upload. The affected plugin stays inactive, and the server starts without it.
How to fix it:
- Check whether the message names the plugin file.
- Upload the plugin again in a build for your current SCP:SL version and restart the server. The plugin page lists the supported versions.
- If you don't know which plugin it is, remove the most recently added file from the plugin folder under Files and restart.
- After uploading, compare the file size with the original. If it differs, the transfer was incomplete.
Good to know: You can find the basics about the server under Setting Up an SCP Secret Laboratory Server.
Project Zomboid: Map or Mod Uses an Unknown Tile Property
What the message looks like:
IsoPropertyTypeNotFoundException: Property Name not found: <Property>
What's behind it: Maps in Project Zomboid consist of tiles. Each tile has properties that determine, for example, whether something is a container, a door or an obstacle. A map or mod uses a property here that your Project Zomboid version doesn't know. Affected objects may be missing or behave incorrectly, while the server usually keeps running. Often the map or mod is built for a different game version, for example after the switch to Build 42.
How to fix it:
- Find out which map or mod is affected. If the message is new, the most recently installed or updated one is the first suspect.
- Update the map or mod to a version that matches your installed Project Zomboid version.
- If it began after a mod update, restore the previous compatible version of the mod.
- If you want to remove a map mod entirely, create a backup under Backups first. If a map that your save already uses is missing, this can alter the world.
Good to know: For the switch to Build 42, there is Project Zomboid Build 42 on Your Own Server.
The Forest: "Bolt is already running" After a Restart
What the message looks like:
BoltException: Bolt is already running, you must call BoltLauncher.Shutdown() before starting a new instance of Bolt.
at BoltCore.BeginStart (…)
What's behind it: The Forest uses the network library Bolt for multiplayer. The message means: the server tried to start a second Bolt instance even though the first one is still running. This can happen after a faulty soft restart, meaning a restart within the running program instead of a real restart of the process. The new session can't start cleanly this way.
How to fix it:
- Stop the server in the panel and wait until it is completely off.
- Then start it again. A fresh process starts Bolt only once.
- Don't use an in-game function or a reload during operation to restart, but always restart via the panel.
- For regular restarts, set up a scheduled restart under Tasks.
Good to know: How that works is explained under Scheduling Automatic Restarts for Your Server.
The Forest Can't Read the Network Adapters
What the message looks like:
NetworkInformationException: File not found.
at CoopDedicatedServerStarter.getMachineIp ()
What's behind it: On startup, The Forest's dedicated server tries to determine its network adapters and thus its own IP address. The operating system interface it queries for this isn't available in the server environment. If the server is reachable anyway, the message has no further effect.
How to fix it:
- Check whether the server is reachable: does it appear in the server list, and can players join?
- If so, you can ignore the message.
- If not, bring the server to the current build, meaning the game's latest server version, and restart it.
- If it remains unreachable, open a ticket and include the time of the message. You can't change the server's startup environment yourself.
Good to know: You can find the basics about the server under Setting Up a The Forest Server.
A mod reports CS0246: type or namespace not found
What the message looks like:
<File>.cs(<Line>,<Column>): error CS0246: The type or namespace name '<Type>' could not be found
What's behind it: The compiler, which turns C# source code into executable components, cannot find a referenced type. It cannot resolve the name in the available source code or referenced libraries. This prevents the affected mod from loading. Bundled or customized mod files must match the game version and its libraries.
How to fix it:
- Read the full error in the Console. It identifies the file, line, and missing type.
- Save your custom changes under Files before replacing mod files.
- Install a release of the affected mod and its dependencies that matches the game version. For custom source code, check spelling, namespaces, and library references.
- Restart the server and check for further compiler errors.
Your message isn't listed?
Read the whole message in the Console or in the game's log file, including the lines before it. In .NET and Unity games, the actual cause is often in the inner exception. The folder and file names in the stack trace reveal which plugin or mod is involved. Before every replacement, create a backup under Backups. Crashes and failed updates are covered in Game server crashes or Steam update fails. If you get stuck, open a ticket and include the time of the message.