CartWeightFix
Restores vanilla weight-based drag to player-pulled carts. Fixes OdinHorse side effect where all carts ignore item weight. Server-enforced: every connecting client must have this mod.
About this mod Author’s original text
CartWeightFix
Restores vanilla weight-based drag to player-pulled carts.
The Problem
OdinHorse replaces Vagon.FixedUpdate with a Harmony Prefix (returns false) to support horse-drawn cart attachment. A side effect is that UpdateMass() — the method that sets cart Rigidbody mass from container item weight — never runs. This means all carts (vanilla and horse-drawn) ignore item weight entirely. A cart loaded with 1200 weight moves as if empty.
The Fix
CartWeightFix adds a Harmony Postfix to Vagon.FixedUpdate that re-invokes UpdateMass() for player-pulled and idle carts. Horse-pulled carts are detected (via Tameable component on the connected Rigidbody) and left alone so OdinHorse's physics still govern them.
- Player-pulled cart: weight-based drag restored (vanilla behavior)
- Horse-pulled cart: unchanged (OdinHorse governs speed)
- Idle cart: correct mass for physics interactions
Compatibility
- Requires BepInEx (included in BepInExPack Valheim)
- Requires Jötunn (for the server-side enforcement handshake)
- Soft-dependency on OdinHorse — works with or without it. Without OdinHorse the vanilla FixedUpdate runs normally and this plugin is a harmless no-op.
Server enforcement
This mod uses Jötunn's NetworkCompatibility at level EveryoneMustHaveMod with Minor version strictness. When it runs on a dedicated server, every connecting client must also have CartWeightFix installed at a matching major.minor version — clients that are missing the mod or on a mismatched version are rejected at the connection handshake with an error screen. This guarantees the cart-weight rule is enforced for everyone on the server, since cart physics are evaluated client-side.
Installation
Drop CartWeightFix.dll into BepInEx/plugins/ or install Mod Manager.
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: