If you want to buy me a coffee or if you want to support the original author with paypal to felix.mueller.86@web.de
A Foundry VTT module to enhance the dnd5e inventory. Allows to customize your Inventory in various ways, transfer items instead duplicate between character sheet, ordering the items, and many other feature hidden under the hood.
- Delete every category even the default ones of dnd5e
- Add item in every category even the non-default ones of dnd5e
- Specify what type of item can be put on a category
- Set up a max weight for the category
NOTE: If you are a javascript developer and not a typescript developer, you can just use the javascript files under the dist folder
NOTE: This module is under maintenance, I have no plans to update or add features. However, I will try to fix any bugs as possible. Any contribution is welcome.
It's always better and easier to install modules through in in app browser. Just search for "Mount Up!"
To install this module manually:
- Inside the Foundry "Configuration and Setup" screen, click "Add-on Modules"
- Click "Install Module"
- In the "Manifest URL" field, paste the following url:
https://raw.githubusercontent.com/p4535992/inventory-plus/master/src/module.json
- Click 'Install' and wait for installation to complete
- Don't forget to enable the module in game using the "Manage Module" button
This module uses the libWrapper library for wrapping core methods. It is a hard dependency and it is recommended for the best experience and compatibility with other modules.
This module allows you to create custom inventory categories and sort items into them and the default categories. You can also order the categories around and even disable weight tracking on a per category basis.
Due to collisions, code maintenance problems, and reduction in the number of modules I have rewritten for the inherent use of the module some features of other modules, mentioned in the credits of this document. I invite you to support these authors in their various kofis and patreons. Each feature is non-blocking with the other modules and can be activated / deactivated from a specific module setting, which we list below
Feature: Integration with Variant Encumbrance: If enabled it will calculate the weight with the API of the module 'VariantEncumbrance' for a better and smarter calculation of the weight, if the module is present and active
Feature: Integration with Item Collection: Use equipped/unequipped feature of the 'ItemCollection/Item Container' module for the backpack. Bags can be unequipped by players or GM, so that their reported weight drops to 0 in your inventory (only bags with a capacity other than 0 can be unequipped). ATTENTION: If the module 'Variant Encumbrance' is present and active this feature is disabled by default if the module settings 'Feature: Integration with Variant Encumbrance' is enabled.
Feature: Enable item transfer: Know that you can temporarily disable the transfer feature by pressing the alt key while you move the item.
[Only with 'Feature: Enable item transfer' enabled] Enable currency transfer: When moving an object named "Currency" is transferer it will open a dialog to transfer money instead of transferring the actual item.",
[Only with 'Feature: Enable item transfer' enabled] Enable for actors of the same type: If disabled you will have to rely on the pairs you can define by hand.
[Only with 'Feature: Enable item transfer' enabled] Compatible Actor Types: The body of a JSON map of compatible actor type key-value pairs allowing transfer. By default this module only works between actor sheets of the same type, but some game systems may have other combinations that work. Example 1: "character":"synthetic","synthetic":"vehicles","vehicles":"character". Example 2 (for DnD5e): "character":"vehicle","vehicle":"character" that would enable moving item between characters and vehicles. You can also have multiple actor types as value, example 3: "character":["vehicle", "character"],"vehicle":"character" would enable transfer from character to vehicle, from character to character and from vehicle to character but NOT from vehicle to vehicle (providing that the "actors of the same type" checkbox is unchecked).",
Feature: Enable inventory sorter: Automatically sorts all actors' items (inventory, features, and spells) alphabetically (within each category).
Feature: Equipment Multiplier: Apply a weight multiplier to equipped items
[Only with 'Feature: Equipment Multiplier' enabled] Equipment Multiplier value: What weight multiplier to apply to equipped items. ATTENTION: If the module 'Variant Encumbrance' is present and active this feature is disabled by default if the module settings 'Feature: Integration with Variant Encumbrance' is enabled.
Feature: Do Not increase weight by quantity for no ammunition item: This is a homebrew rule, for non-ammunition items don't increase weight by quantity (so 5 potions = 1 item weight for example). ATTENTION: If the module 'Variant Encumbrance' is present and active this feature is disabled by default if the module settings 'Feature: Integration with Variant Encumbrance' is enabled.
Hide button for manage default categories: By default only GM can see this button, but if you enable this module settings the button is hide for everyone.
A method to calculate the weight (the one from the module filters) on inventory array and the current currency present on the actor
Returns: number
Param | Type | Description | Default |
---|---|---|---|
actorIdOrName | string |
The actor id or name (if founded) | undefined |
game.modules.get('inventory-plus').api.isCategoryFulled(actor: Actor, categoryType: string, itemData:ItemData) ⇒ boolean
Returns: boolean
Param | Type | Description | Default |
---|---|---|---|
actor | Actor |
The actor | undefined |
categoryType | string |
The id of the category | undefined |
itemData | ItemData |
The item data to drop on the inventory with specific category type | undefined |
game.modules.get('inventory-plus').api.addCategory(actorId: string, categoryLabel: string, ignoreWeight: boolean | undefined, maxWeight: number | undefined, ownWeight: number | undefined, items: ItemData[] | undefined, explicitTypes: InventoryPlusItemType[]|undefined) ⇒ Promise
Param | Type | Description | Default |
---|---|---|---|
actorId | string |
The actor Id | undefined |
categoryLabel | string |
The label of the category | undefined |
ignoreWeight | boolean |
The boolean value for ignore the weight | false |
maxWeight | number |
The value of the max weight of the category | 0 |
ownWeight | number |
The value of the own weight of the category | 0 |
items | ItemData[] |
The array of itemData to associate to the category. If the item is not present on the actor it will be created so pay attention. | undefined |
explicitTypes | InventoryPlusItemType[] |
The array of InventoryPlusItemType associated to the category |
undefined |
const actorEntityTmp = game.actors?.getName('PARTY INVENTORY');
const actorId = actorEntityTmp.id;
game.modules.get('inventory-plus').api.addCategory(actorId, 'label16')
The InventoryPlusItemType
object is represented like this:
{
id: string;
name: string;
namePl: string;
img: string;
isSelected: boolean;
isInventory: boolean;
}
The Category
object is represented like this:
{
label: string;
dataset: { type: string };
sortFlag: number;
ignoreWeight: boolean;
maxWeight: number;
ownWeight: number;
collapsed: boolean;
items: ItemData[];
}
npm install
will build the code and copy all necessary assets into the dist folder and make a symlink to install the result into your foundry data; create a
foundryconfig.json
file with your Foundry Data path.
{
"dataPath": "~/.local/share/FoundryVTT/"
}
build
will build and set up a symlink between dist
and your dataPath
.
npm run-script build
You don't need to build the foundryconfig.json
file you can just copy the content of the dist
folder on the module folder under modules
of Foundry
build:watch
will build and watch for changes, rebuilding automatically.
npm run-script build:watch
clean
will remove all contents in the dist folder (but keeps the link from build:install).
npm run-script clean
prettier-format
launch the prettier plugin based on the configuration here
npm run-script prettier-format
package
generates a zip file containing the contents of the dist folder generated previously with the build
command. Useful for those who want to manually load the module or want to create their own release
npm run-script package
Any issues, bugs, or feature requests are always welcome to be reported directly to the Issue Tracker, or using the Bug Reporter Module.
- Transfer Stuff : GPL-3.0 License
- Encumbrance calculator 5e : MIT
- Illandril's Inventory Sorter (5e) : MIT
This package is under an GPL-3.0 License and the Foundry Virtual Tabletop Limited License Agreement for module development.
- playest for the module Transfer Stuff
- kandashi for the module Encumbrance calculator 5e
- illandril for the module Illandril's Inventory Sorter (5e)
Bootstrapped with League of Extraordinary FoundryVTT Developers foundry-vtt-types.