RustyHeathensWarSaddle
Jo-bags for normal and summoned moose. Animated leather saddlebags, server-controlled storage up to 32 slots, and item drops on normal death or native unsummon. Press K to open.Rusty Heathens War Saddle 1.0.4
Give your tamed moose Jo-bags: leather saddlebags with persistent storage. Rounded bags, stitched flaps, leather straps and metal buckles follow the saddle as your moose walks, runs and bends to eat.
Uses the ordinary moose saddle. Built for the Rusty Heathens community.
Update in 1.0.4
Version 1.0.4 updates the package and compiled mod version for a fresh upload. Functionality is unchanged from 1.0.3, including summoned-moose support. This is a version/packaging update and does not establish or resolve the reason for any previous moderation rejection.
Summoned-moose support added in 1.0.3
Jo-bags now supports the Spirit Caller summoned moose (Moose_spiritcaller) as well as normal moose. The moose must still be tamed, saddled and alive, with no rider when opening the bags. Use K as before.
Native unsummoning drops bag contents on the ground at the moose's location before it disappears, including the native distance, logout and summon-limit removal paths that use the unsummon RPC. Contents do not transfer to the next summoned moose. If loading or dropping an item fails, owner-side removal is delayed and retried. A real death takes priority over a pending dismissal. Ordinary scene unloading does not trigger drops.
Forced deletion by console or another mod bypassing native unsummon is not covered. World rollback, crashes, and separately restored character/world saves are not made transactional by this change.
Update War Saddle on the server and every client, replacing older versions and keeping the existing config. Keep only one active DLL. This version keeps the existing storage keys and capacity protocol.
This test build compiled against the supplied Valheim 1.0.21 assemblies with no warnings or errors. Passed 11,164 policy/mesh assertions and 12 simulated capacity handshake checks. The compiled unsummon hook and current game method signatures were also inspected. Summoned-moose bag fitting, item drops and multiplayer still need an in-game check.
Features
- Configurable storage: 16 slots by default; up to 32 slots in an 8-column, 4-row layout.
- Server-controlled capacity: multiplayer clients receive the host/server's storage settings automatically.
- Safe size reductions: loaded bags retain their existing size until emptied and closed.
- Persistent contents: items stay with the moose across saves and restarts and drop on normal death.
- Animated leather bags: rounded bodies, stitched flaps and open metal buckles.
- Cosmetic appearance: no changes to defense, health, damage, movement speed or hitboxes.
- Saddle protection: empty and close the bags before removing the saddle.
Controls
| Control | Action |
|---|---|
| K | Look at a saddled moose while dismounted to open its bags. Nobody can be riding it. |
| E | Ride the moose as usual. |
| Shift + E | Remove the saddle after emptying and closing the bags. |
K is configurable. G remains available for your backpack.
Installation
Install BepInExPack Valheim and RustyHeathensWarSaddle through your mod manager. Install the same version on the server and every client, then restart both. No Jotunn or external ServerSync dependency is required.
For manual installation, put RustyHeathensWarSaddle.dll in BepInEx/plugins/RustyHeathensWarSaddle/.
Upgrading from a manual test build: replace/remove the old manually installed DLL so only one copy remains. Keep your existing config and world. Existing saddlebag contents use the same saved item format. Back up the world before upgrading. Empty expanded bags before downgrading to a version without configurable capacity.
Set the number of slots
Start once to generate:
BepInEx/config/com.rustyheathens.warsaddle.cfg
In multiplayer, edit this file on the server. In single-player, edit your local file. Stop the server/game before editing, then restart.
Default: 16 slots:
[Storage]
Columns = 4
Rows = 4
Maximum: 32 slots:
[Storage]
Columns = 8
Rows = 4
| Setting | Default | Allowed range |
|---|---|---|
| Columns | 4 | 1–8 |
| Rows | 4 | 1–4 |
Total slots = Columns × Rows. For example, 6 columns and 4 rows gives 24 slots. Bounds are enforced to keep the layout within 8×4; no extra inventory window rows are added. A player changing their local storage settings cannot override the server's capacity.
Increasing both dimensions, or increasing one while keeping the other unchanged, preserves all existing item positions. Reducing either dimension waits until that moose's bags are empty and closed. Until then, the hover text shows the current capacity and a reminder to empty the bags. No items are discarded or pushed into hidden slots to meet a smaller setting.
If the bags say they are waiting for settings, confirm that the server and clients all have version 1.0.4, then reconnect. Capacity synchronization is required to open bags in multiplayer.
Appearance settings
Appearance / BagScale and BagOffset adjust the fit; restart after changing them. Shoulder and chest armor are removed. An older experimental headpiece remains available through ShowHeadArmor, but is disabled by default and is not part of the finished bag appearance.
Compatibility and item safety
- Supports normal moose and Spirit Caller summoned moose. Other creature types are excluded.
- Do not combine with another mod that attaches a storage container to the same moose. This mod refuses that combination to avoid conflicting container handlers.
- Normal death drops the stored items. Failed drops are retried before death cleanup.
- If saved items cannot be read, the original saved bytes are retained and access is blocked; check the log and restore the missing item/mod dependency.
- Empty the bags before uninstalling. Vanilla Valheim cannot access their contents.
- Do not console-delete a moose carrying items. Keep ordinary world backups.
For servers running ModGuard, allow the plugin GUID com.rustyheathens.warsaddle. Existing allow-lists for this mod still work. No private server/admin configuration is included in this package.
Release verification
The 0.1.6 baseline was confirmed in-game by the server owner: bag appearance, animation, storage, restart/rejoin persistence and normal death drops. Version 1.0.0 preserves that appearance and adds configurable capacity and synchronization.
The release compiles against supplied game references with no warnings/errors. Automated mesh/capacity checks and simulated server/client handshake tests pass. The new configurable sizes and synchronization still need an in-game check: use 8×4, save/rejoin, then reduce the size with items present and verify it applies after emptying and closing.
Source, build script and offline tests are supplied in the separate development package. This upload package contains only the runtime DLL and package metadata. No game or third-party DLLs are redistributed.
When reporting a problem, include your mod version, server/client configs, BepInEx/LogOutput.log, and screenshots. Fitting messages start with WarSaddle fit: and WarSaddle attachment:.
