Fixes broken mod models at runtime: convex MeshColliders, spawn bounds, center of mass, volumeType. Also suppresses PhotonView IPunObservable spam and LocalizedString empty-table errors.
Fixed: items with broken/missing MeshCollider sharedMesh (e.g. VoidExpansion relics: AxiRelic, LithRelic, MesoRelic, NeoRelic, RequiemRelic, UniversalMedallion) received zero RoomVolumeCheck bounds and spawned inside walls. BoundsCalculator now falls back to MeshFilter.sharedMesh.bounds when colliders produce no usable volume
VolumeType is now correctly reclassified from the mesh-derived bounds for these items
v1.3.1
Fixed objects spawning in floors/walls: RoomVolumeCheck no longer overrides mod author's spawn bounds unless they are unset
Added ForceRoomVolumeCheck config option (default: false) — enable to always recalculate spawn bounds from colliders for all mods
v1.3.0
Renamed plugin DLL to SADmodelfix.dll and patcher DLL to SADmodelfixpatcher.dll for consistent branding
Renamed install folders to SADnaki-SADmodelfix and SADnaki-SADmodelfixpatcher
v1.2.0
Added BepInEx preloader patcher that fixes MissingMethodException: void .Sound.PlayLoop(bool,single,single,single) spam from SillyValuables mod
Patcher rewrites SillyValuables.dll on disk at game launch (before the chainloader loads it), redirecting old 4-parameter Sound.PlayLoop calls to the current 5-parameter signature with volumeMultiplier = 1.0
SillyValuables grenade/throw sounds now work correctly in-game
Self-guarding: on subsequent launches the patcher detects the DLL is already fixed and skips rewriting