You are viewing a potentially older version of this package. View all versions.
SADnaki-SADmodelfix-1.1.0 icon

SADmodelfix

Fixes broken mod models at runtime: convex MeshColliders, spawn bounds, center of mass, volumeType. Also suppresses PhotonView IPunObservable spam and LocalizedString empty-table errors.

By SADnaki
Date uploaded 2 months ago
Version 1.1.0
Download link SADnaki-SADmodelfix-1.1.0.zip
Downloads 41
Dependency string SADnaki-SADmodelfix-1.1.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305
Zehs-REPOLib-4.1.0 icon
Zehs-REPOLib

Library for adding content to R.E.P.O.

Preferred version: 4.1.0

README

SADmodelfix

A BepInEx plugin for R.E.P.O. that automatically fixes common issues in community mods — broken physics colliders, wrong spawn bounds, incorrect center of mass, and misclassified object sizes — all at runtime, without touching the original mod files.


What it fixes

Fix What it does
MeshCollider Enables convex mode on non-convex MeshColliders so objects fall and rotate with the correct shape (not like invisible cubes)
RoomVolumeCheck Recalculates the spawn AABB pivot and size so objects actually spawn in rooms instead of clipping through walls or floors
Center of Mass Moves Rigidbody.centerOfMass to the geometric center of all colliders so objects don't spin wildly when grabbed
VolumeType Auto-classifies Tiny / Small / Medium / Big / Wide / Tall / VeryTall based on real mesh bounds so objects end up in the correct loot pool
Hierarchy Check Detects mesh renderers incorrectly placed on the prefab root (experimental, off by default)
PhotonView Fix Removes non-IPunObservable components from PhotonView.ObservedComponents — stops thousands of Photon error spam lines per session (e.g. ChargingStation, Minecraft items)
Localization Fix Suppresses ArgumentException: Empty Table Reference spam from mods that register items with an empty LocalizedString table

Installation

Install via Thunderstore Mod Manager or Gale — no manual steps required.

Manual: drop REPOModelFixer.dll into BepInEx/plugins/REPOModelFixer/.


Configuration

All fixes can be toggled in BepInEx/config/mrnak.REPOModelFixer.cfg:

FixMeshColliders         = true   (default: true)
FixRoomVolumeCheck       = true   (default: true)
FixCenterOfMass          = true   (default: true)
FixVolumeType            = true   (default: true)
CheckHierarchy           = true   (default: true)
FixHierarchy             = false  (default: false — experimental)
FixPhotonViewObservers   = true   (default: true)
FixEmptyLocalizationTable= true   (default: true)
VerboseLogging           = false  (default: false)
BlockList                =        (comma-separated prefab names to skip)

Compatibility

  • R.E.P.O. v0.4.4+
  • BepInEx 5.4.23+
  • REPOLib 4.1.0+
  • Works alongside all existing mods — only patches, never replaces

Changelog

1.0.0

  • Initial release
  • Convex MeshCollider fix (shape-accurate physics)
  • RoomVolumeCheck bounds recalculation
  • Center of mass correction
  • VolumeType auto-classification
  • Harmony hooks on REPOLib Valuables / Enemies / Items + fallback director patches

CHANGELOG

v1.3.2

  • 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

v1.1.0

  • Added PhotonView IPunObservable observer spam fix
  • Added LocalizedString empty-table error suppression
  • Improved VolumeType auto-classification accuracy
  • Added configurable BlockList for skipping specific prefabs

v1.0.0

  • Initial release
  • MeshCollider convex fix
  • RoomVolumeCheck AABB pivot/size recalculation
  • Rigidbody center of mass correction
  • VolumeType auto-classification (Tiny/Small/Medium/Big/Wide/Tall/VeryTall)
  • Hierarchy checker (experimental)