Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BetterArmoryFix
Parches no oficiales para bugs de reconexión. Corrige el spam de NullReferenceException de BetterArmory y el desync de stats de Lategame Upgrades (More Ship Upgrades) entre host y cliente.
By Lanzallamas
| Last updated | 6 hours ago |
| Total downloads | 22 |
| Total rating | 0 |
| Categories | Bug Fixes |
| Dependency string | Lanzallamas-BetterArmoryFix-2.1.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
Y4NGZ313-BetterArmory
Standalone weapons pack: Heavy Shotgun, Revolver, Assault Rifle, Bolt-Action Rifle, Pistol and Flame Thrower, with configurable shop listings, interior spawns, damage and ammunition, plus an ammo HUD.
Preferred version: 1.0.6README
BetterArmoryFix
Parches puntuales y no oficiales para bugs de BetterArmory
(com.y4ngz.betterarmory) mientras no estén corregidos en el mod original.
Gracias, Yangz313 🔥
Este mod nació como un fix para el lanzallamas, que dejaba de disparar fuego y de gastar munición después de morir y reconectarte al servidor. Ese bug ya fue corregido oficialmente por Yangz313 en BetterArmory 1.0.6 — gracias por el arreglo rápido y prolijo. Si tenés BetterArmory actualizado, no necesitás ese fix, y ya no está incluido acá.
Lo que queda en este mod es un fix aparte, para un bug distinto que seguía presente al momento de esta versión.
Qué corrige esta versión
Spam de NullReferenceException / animación de armas rota.
Y4NGZWeaponItem.get_Shotgun() puede lanzar una excepción real cuando el
arma tiene una referencia de red obsoleta (típicamente tras una reconexión),
en vez de fallar con gracia. Como WeaponFirstPersonAnimation.IsAlive()
depende de ese getter, el juego queda crasheando ese chequeo cada frame para
siempre, rompiendo toda la animación de armas en primera persona.
Este mod atrapa esa excepción con un Harmony Finalizer y devuelve un valor seguro, dejando que el propio BetterArmory se recupere solo como ya estaba diseñado para hacerlo.
No modifica el DLL original de BetterArmory — todo pasa en tiempo de ejecución vía Harmony.
Bug 2: stats de Lategame Upgrades (More Ship Upgrades) distintas entre host y cliente
Este es un mod completamente distinto a BetterArmory (Lategame Upgrades,
de malco), pero vive en el mismo tipo de problema: al reconectarte, el
cliente carga su guardado personal (indexado por su propio SteamID) y lo
aplica al diccionario único y compartido de niveles de mejora
(UpgradeBus.Instance.upgradeLevels) — de donde lee TODA la lógica del
juego. Si esa copia personal quedó desactualizada respecto al estado real
del host, el cliente termina viendo niveles de mejora distintos a los que
tiene el host (fuerza de espalda, pulmones, etc.).
Este mod detecta ese momento y, si no sos el host, sustituye temporalmente el SteamID usado para la búsqueda por el del host (obtenido desde la lobby de Steam), forzando a que el cliente cargue la copia del host — que es la que realmente refleja el estado en vivo de la partida — en vez de la suya. Es una dependencia opcional: si no tenés Lategame Upgrades instalado, este parche simplemente no se activa.
Instalación
Con Thunderstore Mod Manager / r2modman
Buscá BetterArmoryFix en el mod manager de tu perfil e instalalo desde ahí con un clic, como cualquier otro mod. Se activa automáticamente en tu próxima partida.
Manual
- Descargá el
.zipde la página de Thunderstore. - Extraé
BetterArmoryFix.dll. - Copialo a:
<Lethal Company>\BepInEx\plugins\BetterArmoryFix\BetterArmoryFix.dll - Asegurate de tener BetterArmory instalado (es una dependencia obligatoria) y BepInEx funcionando.
Cómo confirmar que funciona
En BepInEx/LogOutput.log, si el bug de BetterArmory llega a ocurrir, vas a
ver (una sola vez por sesión, para no llenar el log de spam):
[Info :BetterArmoryFix] Contuve un crash en Y4NGZWeaponItem.get_Shotgun() (arma con referencia obsoleta, típicamente tras una reconexión). Devolviendo null de forma segura en vez de dejar que se propague. (Este aviso solo se muestra una vez por sesión.)
Si tenés Lategame Upgrades instalado, cada vez que un cliente reconecta vas a ver:
[Info :BetterArmoryFix] Forzando que el cliente cargue las stats del host (SteamID host=XXXXXXXXXXXXXXXXX) en vez de su copia personal.
Después de eso, las mejoras deberían mostrar el mismo nivel para todos.