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.
| 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 |
| SillyValuables Fix | Preloader patcher that rewrites SillyValuables.dll on disk to fix MissingMethodException: void .Sound.PlayLoop(bool,single,single,single) spam — grenade/throw sounds in SillyValuables now work correctly |
Install via Thunderstore Mod Manager or Gale — no manual steps required.
Manual: drop REPOModelFixer.dll into BepInEx/plugins/REPOModelFixer/.
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)
MissingMethodException: void .Sound.PlayLoop spam, grenade/throw sounds now work