Extensible, customizable Inventory Manager that redistributes items on pickup to their best fit, the way you tell it to! Able to send items to party members, the camp chest, or custom containers, using character and items stats. Balance out your consumable stacks, send arrows to your archers, and give your wizard all your scrolls!
Or download from https://github.com/Norbyte/bg3se/releases
Permissions and credits
Credits and distribution permission
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou can upload this file to other sites but you must credit me as the creator of the file
Modification permissionYou are allowed to modify my files and release bug fixes or improve on the features without permission from or credit to me
Conversion permissionYou can convert this file to work with other games as long as you credit me as the creator of the file
Asset use permissionYou are allowed to use the assets in this file without permission or crediting me
Asset use permission in mods/files that are being soldYou are allowed to use the assets in this file in mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Added "TCP_OBJ_TUTORIALCHEST" to the ContainerRoots blacklist -- Another tutorial chest, possibly specific to Tutorial Chest Summoning mod
Added "SYR_OBJ_" to the ContainerRoots blacklist -- Immersive Tutorial Chest Spawning and more mod
Added "U_AUTOLOOTTOGGLE" to the RootTemplates blacklist -- Customizable Auto Loot Aura mod
Fix issue with copying false values from predefined MCM setting if config.json doesn't exist
Version 2.4.0
Adds optional MCM integration
Adds new RESPECT_CONTAINER_BLACKLIST_FOR_CUSTOM_STACK_CALCULATIONS configuration
Fixes items transformed by TransmogEnhanced from getting redistributed
Tweaked logs again
Fixes Wifi Potions default blacklist entry
Version 2.3.1
- Fixes Tag ItemFilterLookups not being case-insensitive
- Fixes Stack Amount logic when processing items that have previously been processed in the same session
- Changes Tool Tag ItemFilter to calculateStackUsing Tool tag
- Tweaks Debug and Trace logs, making Debug logs less noisy and more helpful
- Adds Trade with Withers Addon - Containers to the Container Blacklist
Version 2.3.0
See https://tinyurl.com/aimchangelog for all changes - this one includes a lot
I'm hardstuck on hotfix 27, so was tested on that, but should be good for Hotfix 26
Highlights below:
Add new optional filter field CalculateStackUsing to customize the STACK_AMOUNT calculation
Adds support for blacklisting by TAGS
Adds ability to blacklist Containers, preventing items contained within from being processed (even if contained within another container inside the blacklisted one)
Adds ItemShipmentFramework and Tutorial chest to blacklisted containers by default
Fixes CompareStategy misspelling - AIM will do this for you, no manual changes needed
When a char joins the party, their equipment will be tagged as already processed, then their inventory will be sorted
If an item untagged by AIM is equipped, AIM will no longer try to sort that item. Will just tag it and move on.
Tweaked Equipment, Weapons, and Tags ItemFilters to use new CalculateStackUsing, plus some general enhancements
Version 2.2.1
#### Changed
- No longer processes items on pickup when there's only one character in the party (but items are still tagged as processed)
- ALL_DEFAULTS preset, Changed priority of Proficiency filter for all Equipment up to 51 from 99
- Improved some log info
#### Fixed
- Non-nil safe logs
Version 2.2.0
Added Below
Per-Stack Prefilter EXCLUDE_CLASSES_OR_SUBCLASSES, which accepts a single value or an array
Filter IS_ONE_OF_CLASS_OR_SUBCLASS, which accepts a single value or an array under TargetSubStat
Changed Below
Automatic_Inventory_Manager-All-Defaults /Weapons.json and /Equipment.json so stack amount is the highest priority filter for all applicable items, and Weapon filters are prioritized over Equipment filters when applicable
Fixed Below
HAS_TYPE_EQUIPPED and PROFICIENCY filter never running
The Consumable Tag check that's run on item use, so only consumables should be run again
Looking for feedback on a proposal, see the stickied post on Nexus Mods!
Version 2.1.2
Reverted change to mod name ot prevent messing with presets - if you already used 2.1.1, feel free to delete all the AIM preset configs and folders to reset back to clean slate
Version 2.1.1
Fix .pak so it should work with Vortex's Load Order utility without resetting the modsettings.lsx
Version 2.1.0
Added Config RECORD_APPLICABLE_ENTITY_PROPS and the associated functionality (see wiki)
Added Mods Transmog Enhanced and Lodestones items to ItemBlackList by default
Fixed Weapons itemFilterMap now uses rootTemplateUUID, not itemUUID, as a key
Fixed Equipment itemFilterMap now uses the Larian values for main/offhand equipment slot values
Changed Equipment itemFilterMap now accepts the Root Template UUID and the Entity fields Equipable.Slot and Armor.ArmorType as a valid key
Changed Equipment and Weapon itemFilterMaps now accept `ServerItem.Template.EquipmentTypeID` (translated to human) as a valid key
Changed TargetStat HAS_TYPE_EQUIPPED now checks armorType as well as equipmentType
Changed Target filters now accept any party members as a target, including ones at camp
Changed ItemBlackList now accepts partial item or root UUIDs
Version 2.0.1
Fix ItemStackSize logic
Version 2.0.0
Just.... so much. See main vortex page and https://github.com/osirisOfGit/BG3_Automatic_Inventory_Manager/wiki/Migration-Guides
Version 1.1.1
Fixes FilterCompare logic so it actually works
Adds RespectEligibility field for TargetFilters, default to false
Add more trace logs
Include ItemFilter Modifiers and custom fields in the FilterProcessor ParamMap
Version 1.1.0
Removes all usages of PersistentVars, forceably setting value to {}
Removes all in-memory references to itemMaps that aren't listed in the FILTER_TABLES config property
when enabled, or entirely replacing defaults withRename SYNC_FILTERS to MERGE_DEFAULT_FILTERS, changing the primary operation to either merging in customizations with defaults customizations when disabled.See https://github.com/osirisOfGit/BG3_Automatic_Inventory_Manager#merge_default_filters for more details
Implement safeguards around logic interacting with missing itemMaps
Update the README
Remove SYNC_CONFIGS config property
Version 1.0.4
Refactor Config logic to not rely on PersistentVars so much
Fix CoreProcessor trying to execute when there aren't any partyMembers
Version 1.0.3
Fix resorting consumable on use logic
Version 1.0.2
Initalize PersistentVars with empty Config table in case templateAddedTo event somehow fires before SessionLoaded event
Account for nil returns from Osi.IsTemplateInPartyInventory
For Minimum filters, remove FilterLookup function looking for equipment and weapons maps, which don't exist.
Version 1.0.1
Prevents AIM from resorting tagged items on load
Working with Patch 7, Script Extender v20. File a bug report if you come across anything!
Disclaimer This mod isn't actually particular useful from a functionality standpoint thanks to Larian's Magic Pockets, multi-select, and Filter implementations - if you're looking at this mod because you think you need to move items and gear to a character before you can use them, or because you don't know about the built-in filters and have trouble finding items, or because you don't know you can select multiple items in your inventory by shift-clicking, then you'll be happy to know that Larian has largely solved these problems already (although controller support leaves a bit to be desired - this mod may alleviate those issues in conjunction with vanilla functionality!). Play around!
This mod is more targeted at people like me who hate the giant, messy inventories for aesthetic but also hate swapping between characters to pick up items/constantly right-click "send to"ing, or who find the interface way too busy to manage (especially when playing on small monitors or Steam Deck).
Additionally, I have no idea what'll happen in a true multiplayer game - never tested it. If you run into issues, let me know by filing a github issue with your log.txt and filters/ directory!
Additionally additionally, if you're looking for a junk management mod, I highly recommend Auto Loot Seller V3, as solving that particular problem within AIM's framework would have been extremely tedious and complicated, and they've solved the problem magnificently!
When Does AIM Manage Items? Unless an item is in AIM's blacklist, or inside a blacklisted container, Items will be processed when being added directly to a party member's inventory - this includes picking up, transferring between party members, pulling out of containers. Items already in a given character's inventory will also be processed when they join the party, unless they've been processed previously.
It will also attempt to sort all items on load (if they haven't been sorted previously) - this functionality is a little unreliable due to the sheer amount of items being processed and Larian's Event pipeline, so you'll probably have to manually sort items yourself first, or drop and pick them up, to get your inventory where you want it to be (only needs to happen the very first time you load up with AIM). Make sure to save!
To prevent constant reprocessing, a custom tag is added to each item that is evaluated by AIM, regardless of whether it was eligible for sorting. This tag can be cleared by dropping the item, allowing it to be re-processed on pickup.
Additionally, each item in the party's inventory with the CONSUMABLE tag will be re-processed on use, when outside of combat (meaning, if you drink a small health potion, all small health potions in the party's inventory will be redistributed according to the filters). This can be controlled with a configuration.
Defaults This mod comes with two presets: The Automatic_Inventory_Manager-All-Defaults preset, which manages most items of general concern:
Gold
Healing Potions
Lockpicks
Weapons
Armor/General Equipment
Arrows
Grenades
Scrolls
Camp Supplies
Books
Coatings
General Consumables
The logic for each of these differ, but the general rule is that any character that has the item already (or similar items) will be prioritized, unless AIM is _extremely_ confident about who should receive it.
The other preset, Automatic_Inventory_Manager-Camp-Gold-Books, is still the same AIM functionality, but only comes with filters for
Gold (sending all gold to the character with the biggest stack)
Books (sent to camp chest)
Camp Supplies (sent to camp chest)
The presets can be easily be swapped between on save load by modifying the config.json (more details below) .
Configuration Configurations are generated at %localappdata%\Larian Studios\Baldur's Gate 3\Script Extender\Automatic_Inventory_Manager - this contains the config.json, log.txt, and all the Item Filter Map presets - you can add your own presets, and mix + match with existing ones!
If you're seeing weird behavior after an update or after installing/uninstalling a mod that extends this mod, you can just nuke the whole folder and AIM will regenerate with defaults + what your other installed mods add.
Compatibility and Uninstalling AIM works on Larian's event system, specifically TemplateAddedTo, and has safegaurds around making sure the item exists and is in the party's inventory, so it should play well with mods like Auto Loot Seller and any bag mods with auto-sorting like Bags Of Sorting- Beans. Mods can also leverage AIM's API to implement or overwrite filters to specifically work with their mods, if so desired.
There shouldn't be any concerns with uninstalling this mod - the only artifact it will leave behind is the custom tag it uses to identify previously processed items - i'm not aware of any use-cases that would cause this to break anything, but it may depend on a mod's implementation. If anyone is aware of concerns around this, please reach out!
Also to @Fararagi for the logging code + some misc utility stuff - they've been propping up all my mods since the start, so really appreciate it
Additional shoutouts to early adopters of this mod - especially ShaySignyr, MasterVegito2012, and Llamby - the feedback y'all have been providing has been invaluable!