Dynamic Container Loot Wiki
When multiple mods change the same container (barrel, chest, sack, etc.), Skyrim only keeps the last mod's version and throws away everyone else's changes. This plugin fixes that. It finds the missing items and puts them back. Install it, forget about it.
Quick Start: Install with your mod manager, launch the game. That's it. Check Data/SKSE/Plugins/DynamicContainerLoot.log if you want to see what it did.
Requirements
- Skyrim SE (1.5.97+), AE (1.6.x), or VR
- SKSE64 (matching your game version)
- Address Library for SKSE Plugins
What This Mod Does
When multiple mods change the same container, Skyrim only keeps the last mod's version. Every other mod's items are silently deleted. This plugin checks every mod that edited each container, figures out what was added or removed, and merges it all together at startup. Think of it like an automatic Bashed Patch for containers.
- Restores lost items. Mod A puts apples in a barrel. Mod B also edits that barrel but doesn't include the apples. Normally the apples are gone. This plugin adds them back.
- Respects removals. If a mod specifically removed an item from a container, it stays removed. The plugin won't add it back.
- Keeps count changes. If a barrel originally had 3 bread and a mod changed it to 1, you get 1. The mod's choice is honored, unless another mod also changed it, in which case the last mod in your load order takes priority.
- Every mod gets a say. Skyrim normally only listens to one mod per container. This plugin makes sure all of them are heard. Nothing is thrown away unless a mod intended it.
What This Mod Does NOT Do
This comes up a lot, so let's be clear:
- This is NOT SPID. It does not distribute items to NPCs or containers. It only restores items that were already supposed to be there but got lost due to mod conflicts.
- It does NOT randomly add items. Every item it adds was intentionally placed by one of your mods. Skyrim just threw it away because another mod edited the same container.
- It does NOT replace Wrye Bash or Mator Smash. Those tools build patches ahead of time. This does the same job automatically at startup for anything they missed.
- It does NOT touch leveled lists, NPCs, or anything else. Containers only.
- It does NOT "smash" records together blindly. It compares each mod's changes against the original and only carries over what each mod specifically added or removed. It's a smart merge, not a dumb copy-paste.
- It does NOT create dirty edits (ITMs). Nothing is written to disk. All merging happens in memory while the game loads. Your plugin files are never touched.
- It does NOT create circular references. It never invents new items or new connections. Every item it restores was already placed by one of your mods. It's just putting back what Skyrim threw away.
The Problem
Skyrim has a simple rule: if two mods edit the same thing, the last one in your load order wins and the other gets thrown out. So if Mod A adds apples to a barrel and Mod B adds cheese to the same barrel, you only get the cheese. The apples are gone. No warning, no error. Just silently deleted.
The more mods you have, the worse this gets. Hundreds of items across your load order can just vanish.
The Fix
Dynamic Container Loot looks at every mod that touched each container, figures out what each one added or removed, and merges all those changes together. The result is the same as if you had manually built a compatibility patch for every container conflict in your load order, except you don't have to do anything.
How It Works (Simple Version)
- Runs once when the game starts, before you reach the main menu
- Finds every container that more than two mods tried to change
- Reads each mod's version of that container to see what items they added or removed
- Merges all the changes together so nothing gets lost
- Done. You play the game normally.
Key Features
INI Settings
The config file is at Data/SKSE/Plugins/DynamicContainerLoot.ini. If it doesn't exist, it gets created automatically the first time you launch the game.
[General] ;Enable detailed merge logging (true/false) enablelogs = false
Settings Reference
enablelogs
Default: false
Logs every single item that was added, removed, or changed for each container. Helpful if you want to see exactly what was merged, but it makes startup slower. Leave it off unless you're curious or troubleshooting.
Reading the Log
The log at Data/SKSE/Plugins/DynamicContainerLoot.log always shows a summary of what happened:
=== DynamicContainerLoot: Merge complete === Total containers: 1247 With overrides (base + winner only): 89 With conflicts (3+ sources): 34 Actually merged: 12 Total items added: 27 Total items removed: 3 Total items count changed: 2
If you turn on enablelogs, you also get a detailed breakdown for each container:
BarrelFood01 [CONT:0001003E]
Sources: Skyrim.esm, FoodExpansion.esp, LootOverhaul.esp
-- Changes --
+ [ALCH] Apple x2 [00064B2F] (added by FoodExpansion.esp)
+ [ALCH] SweetRoll x1 [00064B40] (added by FoodExpansion.esp)
-- Carried forward --
. [ALCH] Bread x1 [00064B30]
Result: +2 added, -0 removed, ~0 count changed
-- Final state --
* [ALCH] Bread x1 [00064B30]
* [ALCH] Apple x2 [00064B2F]
* [ALCH] SweetRoll x1 [00064B40]
(3 items total)
Heads up: Detailed logging makes startup noticeably slower because it has to look up the name of every item. Keep it off for normal play.
Compatibility
- Wrye Bash / Mator Smash: Works fine alongside them. They patch things ahead of time, this catches whatever they missed at startup.
- Load order: Doesn't matter. Safe with any load order. It just reads your mods, it doesn't change them.
- Other SKSE plugins: No conflicts. This plugin doesn't hook into any game functions, so it won't fight with anything.
Credits
- CommonLibSSE-NG for making SKSE plugins possible across SE, AE, and VR
- SKSE Team for the Script Extender that none of this works without
- powerof3 for CLib utility library
- herumi for xbyak (JIT assembler)
- brofield for SimpleINI (config file parsing)
Export Wiki
Copy the wiki content as BBCode (for Nexus mod pages) or Markdown.
