Los plugins y mods amplían muchos juegos, pero suelen fallar después de una actualización del juego o cuando falta un archivo. Las secciones de abajo tratan mensajes típicos de CS2 con CounterStrikeSharp, Valheim con BepInEx, Conan Exiles, SCP: Secret Laboratory, Project Zomboid y The Forest, así como errores generales de plugins .NET. Cada sección muestra un mensaje, lo explica e indica los siguientes pasos.

El mensaje completo lo encuentras en la Consola y en los archivos de registro del juego, en Archivos. Muchos errores constan de varias líneas. El stacktrace de debajo, la lista de las partes del programa invocadas, suele nombrar el plugin afectado; una excepción es un error de programa que notifica .NET o Unity. Antes de reemplazar plugins, mods o archivos de configuración, crea una copia en Copias de seguridad.

El plugin de skins de CS2 no encuentra weapons.json

Así se ve el mensaje:

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

Qué hay detrás: Los plugins de skins para CS2 necesitan una lista de todas las armas y sus identificadores. Esta lista está en el archivo obligatorio weapons.json, dentro de la carpeta de datos del plugin. Si falta este archivo, el plugin no puede inicializarse, es decir, ni siquiera arranca: la función de skins deja de funcionar por completo. Esto ocurre, por ejemplo, cuando al subirlo solo se transfirió el archivo del programa del plugin y no el paquete completo.

Así lo solucionas:

  1. Lee la ruta que aparece en el mensaje. Indica en qué carpeta espera el plugin el archivo.
  2. Vuelve a descargar el plugin en la misma versión e instálalo de nuevo por completo, con todas las carpetas del paquete.
  3. Como alternativa, copia weapons.json del paquete de la misma versión del plugin a la carpeta indicada, en Archivos. No uses un archivo de otra versión.
  4. Reinicia el servidor y comprueba en la Consola si el plugin se carga sin errores.

Conviene saber: Encontrarás más detalles sobre los plugins de CS2 en: Plugins de CS2: MetaMod, CounterStrikeSharp y MatchZy.

WeaponPaints: gamedata.json no es compatible con la actualización de CS2

Así se ve el mensaje:

Method CAttributeList_SetOrAddAttributeValueByName not found in gamedata.json

Qué hay detrás: WeaponPaints encuentra determinadas funciones del programa de CS2 mediante firmas, es decir, rasgos de reconocimiento que figuran en el archivo gamedata.json. Tras una actualización de CS2, una de estas firmas deja de coincidir y el plugin no encuentra la función. Entonces no puede arrancar. No se debe a tus ajustes, sino a que el juego y el plugin ya no son compatibles entre sí.

Así lo solucionas:

  1. Comprueba si CS2 ha recibido una actualización recientemente. Es el desencadenante habitual.
  2. Actualiza CounterStrikeSharp y WeaponPaints juntos a la última versión y adopta el gamedata.json actual de WeaponPaints.
  3. Si todavía no existe una versión adaptada, quita WeaponPaints temporalmente hasta que el autor lo actualice.
  4. Reinicia el servidor y comprueba si el mensaje ha desaparecido.

Conviene saber: Tras grandes actualizaciones de CS2, a veces los autores de plugins tardan un tiempo en publicar versiones adaptadas. Más información sobre las actualizaciones del juego: Actualizar el servidor de CS2: detectar el desfase de build y reiniciar con seguridad.

Conan Exiles: jugador rechazado por una lista de mods distinta

Así se ve el mensaje:

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

Qué hay detrás: Un jugador quiso unirse y fue rechazado porque sus mods activos no coinciden exactamente con la lista de mods de tu servidor. Importante: los mods de la línea son la lista requerida por el servidor, no los mods incorrectos del jugador. Los mods que el jugador tiene realmente activos no aparecen en el log. Conan Exiles exige una coincidencia exacta: un mod que falte bloquea igual que uno adicional. El jugador no ve ningún motivo: su juego se queda en «Intentando unirse a la partida». Parece un tiempo de espera agotado, pero es un rechazo inmediato.

Así lo solucionas:

  1. Compara la lista del log con los mods que el jugador ha activado en el lanzador de Conan. La composición debe ser idéntica, sin añadidos.
  2. Si el jugador desactiva todos los mods que no figuran en la lista y activa los que faltan, podrá volver a conectarse.
  3. Si quieres permitir un mod adicional, instálalo en el servidor en Mods y reinicia el servidor.
  4. Tras cada cambio en los mods del servidor, todos los jugadores deben ajustar su lista de mods.

CounterStrikeSharp: error en un evento de un plugin («Error invoking callback»)

Así se ve el mensaje:

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

Qué hay detrás: CounterStrikeSharp es una plataforma de plugins para CS2. Los plugins se enganchan allí a eventos como «el jugador se conecta» o «empieza la ronda»; la función que se llama entonces se denomina callback. En uno de estos callbacks, un plugin ha provocado un error, una llamada excepción. El servidor sigue funcionando, pero la función afectada del plugin no ha funcionado. Qué plugin fue y por qué se indica en el stacktrace que aparece debajo, la lista de las partes del programa que se han llamado.

Así lo solucionas:

  1. Lee el stacktrace completo debajo del mensaje. El nombre del plugin suele aparecer ahí como parte de los nombres de clase o como nombre de archivo.
  2. Actualiza ese plugin y CounterStrikeSharp a versiones compatibles entre sí. La página del plugin indica la versión de CounterStrikeSharp compatible.
  3. Reinicia el servidor por completo, no solo el plugin.
  4. Si el error sigue apareciendo, quita el plugin e informa del fallo a su autor.

CS2-SimpleAdmin: la base de datos no coincide con la versión del plugin

Así se ve el mensaje:

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

Qué hay detrás: CS2-SimpleAdmin guarda los baneos, los silenciamientos y el historial de IP en una base de datos MySQL. El mensaje significa que las columnas de las tablas no coinciden con la versión que espera el plugin. Es típico tras una actualización del plugin cuya migración de base de datos (el ajuste automático de las tablas) no se ejecutó, o cuando se sigue usando una base de datos de una instalación anterior. Entonces las funciones de administración del plugin no funcionan de forma fiable, aunque el servidor de CS2 sigue funcionando.

Así lo solucionas:

  1. Haz una copia del contenido de la base de datos antes de cambiar nada, por ejemplo mediante una exportación.
  2. Actualiza CS2-SimpleAdmin a la última versión y reinicia el servidor una vez para que se ejecute la migración.
  3. Si el mensaje persiste, compara las tablas de tu base de datos con el esquema, es decir, la estructura de tablas, de la versión instalada del plugin.
  4. Si puedes prescindir de los datos antiguos de baneos, crea una base de datos nueva en Bases de datos, introduce sus credenciales en la configuración del plugin y reinicia.

WeaponPaints no arranca («TypeInitializationException»)

Así se ve el mensaje:

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

Qué hay detrás: En el primer acceso, WeaponPaints ejecuta una rutina de inicio estática (Type Initializer). Esta ha fallado, por eso el plugin no arranca. El mensaje en sí es solo la envoltura: la causa real la indica la excepción interna justo a continuación, por ejemplo una configuración errónea, un archivo de datos que falta o una dependencia que no es compatible.

Así lo solucionas:

  1. Lee la primera excepción interna debajo de este mensaje, normalmente introducida con --->.
  2. Actualiza WeaponPaints y CounterStrikeSharp juntos a versiones compatibles entre sí.
  3. Después corrige solo lo que indique concretamente la excepción interna: el archivo de configuración, un archivo de datos que falta como weapons.json o la conexión con la base de datos. Las credenciales de tu base de datos las encuentras en Bases de datos.
  4. Reinicia el servidor y revisa la Consola.

Plugin de .NET: falta una dependencia («Could not load file or assembly»)

Así se ve el mensaje:

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

Qué hay detrás: Muchos juegos cargan plugins a través de .NET, por ejemplo CS2 con CounterStrikeSharp, Valheim con BepInEx o SCP: Secret Laboratory. Un assembly es un archivo de programa de .NET, normalmente una .dll. El mensaje significa: un plugin necesita un assembly concreto que no está instalado, o las versiones de sus dependencias no encajan entre sí. El plugin afectado entonces no se inicia o solo lo hace en parte.

Así lo solucionas:

  1. Lee el nombre y la versión entre las comillas. Esa es la dependencia que falta.
  2. Comprueba en la página del plugin qué dependencias se necesitan y en qué versión. A menudo vienen como archivos .dll adicionales en el paquete de descarga.
  3. Instala la dependencia en la versión requerida en Archivos, en la carpeta que indique la página del plugin.
  4. Reinicia el servidor y comprueba si el mensaje ha desaparecido.

Un componente de .NET falla al inicializarse

Así se ve el mensaje:

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

Qué hay detrás: Un componente de .NET, es decir, un plugin, un mod o una parte del cargador, ha fallado en su rutina de inicio o en un callback. Un callback es una función que se llama cuando ocurre un evento determinado. Estos mensajes son solo envoltorios del error real: la excepción interna que aparece justo a continuación contiene la causa. Después, el componente afectado no funciona o lo hace de forma limitada.

Así lo solucionas:

  1. Averigua qué componente está afectado. El nombre entre las comillas o las líneas del stacktrace lo indican.
  2. Actualiza ese componente y el cargador de mods o plugins que uses, por ejemplo BepInEx o CounterStrikeSharp.
  3. Reinicia el servidor y lee en el log la primera excepción interna, que normalmente empieza con --->. En los juegos de Unity, la excepción original suele estar justo encima de una línea con Rethrow as.
  4. Corrige lo que indique esa excepción interna, como un archivo que falta o un ajuste incorrecto.

El plugin de .NET no puede cargar sus clases

Así se ve el mensaje:

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

Qué hay detrás: El cargador de plugins ha abierto el archivo del plugin, pero no ha podido cargar sus clases o no ha encontrado su punto de entrada, es decir, el lugar donde inicia el plugin. O bien el archivo del plugin no es compatible con la versión instalada del cargador o del juego, o bien en la carpeta de plugins hay un archivo equivocado, por ejemplo una simple biblioteca auxiliar en lugar del plugin en sí. El plugin permanece inactivo.

Así lo solucionas:

  1. Actualiza el plugin y el cargador a la vez, de modo que ambos sean compatibles con la versión actual del juego.
  2. Comprueba en Archivos que el archivo correcto del plugin está en la carpeta que indica la página del plugin.
  3. Elimina las copias antiguas del mismo plugin para que solo se cargue una versión.
  4. Reinicia el servidor y revisa la Consola.

Valheim: el mod no es compatible con la versión del juego y no tiene ningún efecto

Así se ve el mensaje:

Rethrow as TypeInitializationException: The type initializer for '<Clase del mod>' threw an exception.

Qué hay detrás: BepInEx, el cargador de mods de Valheim, ha cargado el mod, pero este se ha bloqueado de inmediato al inicializarse. El mod accede a algo del juego que no existe o ya no existe en la versión actual de Valheim. Aun así, el servidor arranca con normalidad y se puede jugar sin problemas. El mod sigue apareciendo como instalado, pero no hace nada, y en el juego no se muestra ningún mensaje de error al respecto. La causa más frecuente es una actualización de Valheim: el servidor se actualiza solo en cada inicio, mientras que el mod se queda como estaba. El nombre del mod aparece en la línea de arriba.

Así lo solucionas:

  1. Anota el nombre del mod que aparece en la línea situada encima del mensaje.
  2. Comprueba en Mods si hay una versión más reciente que sea compatible con la versión actual de Valheim. Si la hay, instálala y reinicia el servidor.
  3. Si no hay ninguna versión compatible, desinstala el mod por ahora. De lo contrario, solo ocupa espacio y da la impresión de que está activo.
  4. Los mods que sean importantes para tu servidor no los vuelvas a activar hasta que su autor los haya adaptado a la nueva versión del juego.

Más detalles: Valheim 1.0: actualización del servidor, mundo antiguo y comprobación segura de mods

Un mod de Valheim busca el campo eliminado «ZRoutedRpc.Everybody»

Así se ve el mensaje:

MissingFieldException: Field not found: .ZRoutedRpc.Everybody

Qué hay detrás: ZRoutedRpc es la parte de Valheim a través de la cual el servidor y los jugadores intercambian mensajes. Un mod de BepInEx se ha creado para otra versión de Valheim y espera encontrar el campo Everybody, que no existe en la versión instalada. El mod no puede ejecutar su función en ese punto y no funciona, o solo lo hace en parte.

Así lo solucionas:

  1. Busca en el stacktrace, la lista de partes del programa llamadas debajo del mensaje, el primer mod. Ese es el afectado.
  2. Actualízalo en Mods a una versión para el build actual de Valheim, es decir, la versión del juego en ejecución.
  3. Si todavía no existe ninguna, desinstala el mod por ahora y reinicia el servidor.
  4. Si el mod también lo usan tus compañeros de juego, todos deberían usar la misma versión.

Más detalles: Valheim 1.0: actualización del servidor, mundo antiguo y comprobación segura de mods

SCP: Secret Laboratory: el plugin no se puede cargar

Así se ve el mensaje:

[LabApi] System.BadImageFormatException: <Detalles del archivo del plugin>

Qué hay detrás: LabApi es la interfaz de plugins de SCP: Secret Laboratory. No ha podido cargar un archivo de plugin porque su formato no es compatible con la versión del servidor. Es algo típico después de una actualización del juego, cuando un plugin todavía está compilado para la versión anterior, o cuando el archivo se dañó al subirlo. El plugin afectado permanece inactivo y el servidor arranca sin él.

Así lo solucionas:

  1. Comprueba si el mensaje indica el nombre del archivo del plugin.
  2. Vuelve a subir el plugin en una versión para tu versión actual de SCP:SL y reinicia el servidor. La página del plugin indica las versiones compatibles.
  3. Si no sabes de qué plugin se trata, elimina en Archivos el último archivo añadido de la carpeta de plugins y vuelve a reiniciar.
  4. Después de subirlo, compara el tamaño del archivo con el del original. Si es distinto, la transferencia fue incompleta.

Conviene saber: encontrarás los conceptos básicos del servidor en Configurar un servidor de SCP Secret Laboratory.

Project Zomboid: un mapa o mod usa una propiedad de tile desconocida

Así se ve el mensaje:

IsoPropertyTypeNotFoundException: Property Name not found: <Property>

Qué hay detrás: Los mapas de Project Zomboid se componen de casillas (tiles). Cada casilla tiene propiedades que determinan, por ejemplo, si algo es un contenedor, una puerta o un obstáculo. Un mapa o mod usa aquí una propiedad que tu versión de Project Zomboid no conoce. Los objetos afectados pueden faltar o funcionar mal, pero el servidor normalmente sigue funcionando. Con frecuencia, el mapa o el mod está creado para otra versión del juego, por ejemplo tras el cambio a la Build 42.

Así lo solucionas:

  1. Averigua qué mapa o mod está afectado. Si el mensaje es nuevo, el último que instalaste o actualizaste es el primer sospechoso.
  2. Actualiza el mapa o el mod a una versión que sea compatible con tu versión instalada de Project Zomboid.
  3. Si el problema empezó tras una actualización de un mod, restaura la versión compatible anterior del mod.
  4. Si quieres eliminar por completo un mod de mapa, crea antes una copia en Copias de seguridad. Si falta un mapa que tu partida ya utiliza, puede alterar el mundo.

Bueno saber: Para el cambio a la Build 42 tienes Project Zomboid Build 42 en tu propio servidor.

The Forest: «Bolt is already running» tras un reinicio

Así se ve el mensaje:

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

Qué hay detrás: The Forest usa la biblioteca de red Bolt para el modo multijugador. El mensaje significa: el servidor quiso iniciar una segunda instancia de Bolt aunque la primera seguía en ejecución. Esto puede ocurrir tras un reinicio suave fallido, es decir, un reinicio dentro del programa en ejecución en lugar de un reinicio real del proceso. Así, la nueva sesión no puede iniciarse correctamente.

Así lo solucionas:

  1. Detén el servidor en el panel y espera a que esté completamente apagado.
  2. Después, vuelve a iniciarlo. Un proceso nuevo inicia Bolt solo una vez.
  3. Para reiniciar, no uses ninguna función del juego ni una recarga en caliente, sino siempre el reinicio desde el panel.
  4. Para reinicios periódicos, configura un reinicio programado en Tareas.

Bueno saber: Cómo hacerlo lo encuentras en Programar reinicios automáticos para tu servidor.

The Forest no puede leer los adaptadores de red

Así se ve el mensaje:

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

Qué hay detrás: Al iniciarse, el servidor dedicado de The Forest intenta determinar sus adaptadores de red y, con ello, su propia dirección IP. La interfaz del sistema operativo que consulta para ello no está disponible en el entorno del servidor. Si el servidor es accesible a pesar de todo, el mensaje no tiene ningún otro efecto.

Así lo solucionas:

  1. Comprueba si el servidor es accesible: ¿aparece en la lista de servidores y pueden unirse los jugadores?
  2. Si es así, puedes ignorar el mensaje.
  3. Si no, actualiza el servidor a la build actual, es decir, la versión de servidor más reciente del juego, y reinícialo.
  4. Si sigue sin ser accesible, abre un ticket e indica la hora del mensaje. El entorno de inicio del servidor no puedes modificarlo tú mismo.

Bueno saber: Encontrarás los conceptos básicos del servidor en Configurar un servidor de The Forest.

La mod informa de «CS0246: no se encontró el tipo o el espacio de nombres»

Así se ve el mensaje:

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

Qué hay detrás: El compilador, que traduce el código fuente de C# en partes de programa ejecutables, no encuentra un tipo utilizado. El nombre no se puede resolver ni en el código fuente existente ni a través de las bibliotecas incluidas. Por eso no se puede cargar la mod afectada. En el caso de archivos de mods incluidos o modificados, el código fuente y las bibliotecas deben ser compatibles con la versión del juego.

Cómo solucionarlo:

  1. Lee el mensaje de error completo en la Consola. Indica el archivo, la línea y el tipo que falta.
  2. Haz una copia de seguridad de tus propios cambios en Archivos antes de reemplazar archivos de la mod.
  3. Instala una versión de la mod afectada que sea compatible con la versión del juego, junto con las dependencias necesarias. Si se trata de código fuente propio, comprueba la ortografía, el espacio de nombres y las referencias a bibliotecas.
  4. Reinicia el servidor y comprueba si el compilador notifica más errores.

¿Tu mensaje no aparece aquí?

Lee el mensaje completo en la Consola o en el archivo de registro del juego, incluidas las líneas anteriores. En los juegos .NET y Unity, la causa real suele estar en la excepción interna. Los nombres de carpetas y archivos del stacktrace te indican qué plugin o mod está implicado. Antes de cada reemplazo, crea una copia en Copias de seguridad. Los fallos y las actualizaciones fallidas se tratan en El servidor de juego se cierra o la actualización de Steam falla. Si no avanzas, abre un ticket e indica la hora del mensaje.