Greeeny-PersonalLoot icon

PersonalLoot

First test build: identical personal loot from enemy corpses and world chests, including lootable bosses and boss reward chests.

By Greeeny
Last updated 14 hours ago
Total downloads 18
Total rating 0 
Categories Balancing Characters Items
Dependency string Greeeny-PersonalLoot-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_Outward-5.4.19 icon
BepInEx-BepInExPack_Outward

BepInEx pack for Outward.

Preferred version: 5.4.19

README

Personal Loot — first test build 0.1.0

A separate mod for Outward Definitive Edition (Steam, default-mono). Each player gets their own copy of the same original loot. Taking an item does not remove another player's copy.

How it works

Open a lootable enemy corpse or a world treasure chest normally. A Personal Loot window appears over the inventory. Click Take beside an item or silver entry. Items are delivered to that character's pouch, including their stack quantity and serialized item properties. Click Close or press Escape when finished. Mouse controls are required for this first window implementation. Only one local personal-loot window is open at a time.

World treasure chests, lootable mob corpses, lootable boss corpses, and boss reward treasure chests are covered. Player bags, player corpses, house stashes, legacy chests, merchants, and special crafting containers keep their normal behavior. Quest rewards and loose items lying on the ground are outside this mod's scope. A boss that has no corpse loot or reward chest does not gain invented drops.

The host retains the original contents as a common source and creates an individual item for each claim. Items already removed before installing the mod cannot be recovered. Late joiners can claim their own copies while the original corpse or chest still exists. New skinning drops can be added to a corpse's snapshot. The same type of loot with a new game item identity after a world reset is treated as new loot.

Install with r2modman

  1. Close Outward. Select your Outward Definitive Edition profile.
  2. Open Settings → Import local mod and select Local-PersonalLoot-0.1.0.zip without extracting it.
  3. Install the same version on the host and every other player's computer. Keep BepInEx enabled.
  4. Launch with Start modded. Personal Loot is independent of Կյաժ Power; both may be enabled.

SideLoader and Loot_Manager are not required. The network event code defaults to 182, separate from Կյաժ Power's 181. If another mod uses 182, change Network / EventCode in BepInEx/config/local.personal_loot.cfg to the same unused value from 1–199 on every computer, then restart.

Save data and first-test limits

The host stores personal claim records in the profile's BepInEx/config/PersonalLoot folder, one XML file per host character, plus a .bak copy. Keep these files when sharing or backing up the host's profile. The file records each player's character ID, the original source/item IDs, serialized loot, and completed or pending claims.

Normal closing/reopening and loading the same claim file preserve remaining loot. Inventory delivery and these claim files are not one atomic game-save operation: a crash or restoring an older game save without matching claim data can leave a claim recorded without its item in the restored inventory. Back up the test character saves and this folder together before the first co-op test. Do not treat this first build as validated for an established campaign.

Original source contents stay in the world. If you uninstall Personal Loot, vanilla shared looting can expose those originals again. All participants must have the mod enabled to avoid mixing personal and shared looting.

Items containing nested inventories, mod-specific item behaviors, simultaneous split-screen interactions, unusual boss loot scripts, and chest resets still need in-game verification. The code copies serialized item fields, but does not recursively copy contents of nested bags/containers.

Loot_Manager and compatibility

GymMed's Loot_Manager lets mods assign enemy loot and make unique enemies lootable. It does not describe per-player inventories. Personal Loot captures the contents present when opened, so it is designed to include drops another mod has already added. Compatibility with Loot_Manager is not yet runtime-tested; no Loot_Manager code is bundled. Mods that multiply or auto-collect loot may alter this behavior.

References checked:

Validation

The DLL compiles against the installed Definitive Edition game and BepInEx 5.4.19. Twelve automated ledger checks cover distinct player claims, repeated requests, different sources, new loot identities, save/reload, pending-delivery identities, XML and Unicode preservation, backup creation, and refusing corrupt claim files. Gameplay and multiplayer item delivery have not been executed by the developer in a running game.

Suggested first co-op check:

  1. Both players open the same freshly generated chest and compare item names, quantities, and silver.
  2. Player A takes an item. It should disappear only from A's personal window and appear once in A's pouch.
  3. Player B takes the same item. B should receive a separate copy.
  4. Close/reopen, save/reload, and reconnect. Claimed entries must remain absent for the corresponding character.
  5. Repeat with a mob corpse and a boss corpse or reward chest. Check silver and durability/enchantments.
  6. Verify a normal chest respawn creates new loot and that skinning additions do not restore previously claimed entries.

Check BepInEx/LogOutput.log for Personal Loot if a source cannot load or an item stays pending. A missing host response shows an explicit message in the loot window.

Build and tests

Install a .NET SDK. Build.ps1 reads game and BepInEx assemblies from the specified local installation; it does not redistribute them or install the plugin. It accepts -GameDirectory and -ProfileDirectory overrides. The compiled DLL appears under package/BepInEx/plugins/PersonalLoot.

Test.ps1 runs the standalone ledger tests using the .NET Framework 4.7.2 reference assemblies. Use -OutputDirectory to select where test artifacts are written.