Pro-tip. You do not want to modify the default item pile. Duplicate it and then modify that actor as a merchant. Also, you can link the actor data [means no matter what map that merchant is on they have the same items across all canvases] or keep it unlinked [meaning your "blacksmith" actor will have different items on your phandelver map as the blacksmith on your Neverwinter map]. The module comes with pre-made merchant item tables. What does that mean? When you go into your merchant and navigate to the "populate items" tab there is a section on the right that says "rollable tables" you can click that drop-down and select a table then hit add table. This allows you to do 2 things. 1) You can create item roll tables for randomized items such as using a treasure chest or magic item vendor that rolls the table to have random magic items for sale 2) This allows you to enable the "refresh items each day / x days" option. This effectively lets you set their opening time so that when the shop opens it will delete their old inventory and refresh it with items rolled from the item table to replenish their stock and have fresh new items each day. Add variety to what items the merchant sells and allow situations to "find" specific rare things as I will explain below. Set weapon table to roll 1d12-1 each day [generates 0-11 new items every day on merchant] + magic item table (1d2-1) [50/50 chance they will have a magic item in stock. Magic item table has 1-50 as a potion of healing, 51-80 as a greater magic potion, 81-90 bag of holding, 91-97 roll uncommon magic item table, and 98-100 roll rare magic table. That gives the shop keeping a 50/50 they will have a magic item and within that 50% chance 10% of the time they have an item and 90% a potion. 10% chance is split 7/3 with 70% giving uncommon random items and 30% giving rare. So, to math it all out on any given day the merchant has the following chances: 25% to have a potion of healing, 15% to have a greater potion of healing, 5% to get a bag of holding, 3.5% to have uncommon magic item, & 1.5% to have a rare magic item. If you want them to roll more than 1 magic item potentially but keep the odds of what they roll the same, then you modify the roll table to something like 2d2-2 [0-2 items; 50/50] or 1d4-1 [0-3 items; 75% chance to get anything]. Just keep in mind that the % chance to pull an item will increase the probability of generating a rare item so don't get too crazy. *P.S. The casting macros allow you to set the spells up as "services" that the player buys from the merchant. Think of healing services from a priest or clergy for example. This means when they buy that service the merchant will actually cast that spell on the player and convey the benefits to them.
Also, for the Ration the price it correct. By default, the module has a setting that automatically converts currency prices on items. This means that if you list something for 10cp it will mark is as the highest denominator aka 1 silver. Your ration is 5 silver aka 1 electrum piece. So, if you do NOT want it to count electrum then you can disable electrum from being counted in the module settings.
Indeed, there is a 'Configure Override Currencies' button, so I personally just ticked the option and deleted Electrum, because it's just an added currency that doesn't really need to be there.@@Xayentist
I already made one tiny tryout shop with Monks but this looks really good as well. I know it probably comes down to personal preference but which one do you prefer? Item Piles seems like it has a lot more features.
Also, marcos are possible but do you know if I could put a spell up there? My party befriended a priestess of Tymora and they 'unlocked' her ability to heal them 3 times a day. it would be so cool if I could somehow put that ability on the map.
@@freakfire74 You can add things as a Service. Next video (th-cam.com/video/mtnQUcR-7g4/w-d-xo.htmlsi=9bSTiorNXUWgT-wl) I finally settled on my shop solution, which includes Services that don't get copied into the character sheet on purchase.
@@clay_golem yeah check it out. i am also interested in theripper's paper doll mod though it looks kinda wonky, gives a gui like a video game inventory screen to equip stuff. i know you said you didn't wanna make baldur's gate.. but some of the features are great lol
Hi, I currently use this with rolltables to populate the merchants inventory for each merchant type (weapons, armor, tools, general goods, etc.). Is there a way to edit the quantity modifier for each type? Especially for the general goods table it's really annoying to manually edit all the quantities after rolling, just because I wanted to sell more than one single torch lol. And there seems to be a modifier built into the module, because I sometimes get muttiples. Just rarely more than three.
You can nest roll tables - so rolls and item, and then rolls a quantity. Item Piles has recently been updated for V12, so it's probably worth another look at Shops, and incorporating the updates you're talking about. I'll add it to the list to play with this week :)
I'm sure there is, but not directly with item piles that I can see. Try Innocenti's Loot? I've not looed at it, but that's what it says it does. I suppose a work-around could be to have a "Item Pile" of the encounter's loot hidden, and then just unhide at the end of the combat? Would represent stripping the bodies and piling it up before grabbing stuff? Also, we looked at using Encounters to hoard and distribute loot, that may work for you: th-cam.com/video/p-RjBgi-WY4/w-d-xo.htmlsi=e_HzCuNL-AgLu-8j
@@rpgtime5423 I have just used a Loot Pile in the video going up shortly - Old Owl Well. Seems to be a decent way to do it. I've left it visible, but they need to get to it before they can raid it. But it's not a lootable-body, which is what you were after. I'm sure you could use a trigger tile to auto-reveal all the loot bags or something? Tricky... Let us know how you get on, and if you get a good solution, I'd be happy to cover it and share with others that may be interested.
@@clay_golem Ok so I figured out a macro that reveals the selected token (my hidden item pile I previous prepared) and applies a nice jb2a animation that continues to loop until you stop it with the 2nd macro: // Initialize or reset the global control variable window.loopAnimationControl = window.loopAnimationControl || {}; window.loopAnimationControl.stopLoop = false; // Ensure loop is allowed to start // Check if exactly one token is selected if (canvas.tokens.controlled.length === 1) { let token = canvas.tokens.controlled[0]; // The currently selected token // Function to start the animation const startAnimation = () => { // Define the animation file path let animationFile = "modules/JB2A_DnD5e/Library/Generic/Item/GlintMany01_02_Regular_Yellow_200x200.webm"; // Play the animation at the token's location new Sequence() .effect() .file(animationFile) .atLocation(token) .play(); }; // Function to loop the animation const loopAnimation = () => { if (window.loopAnimationControl.stopLoop) { console.log("Looping stopped."); return; // Exit the loop if the global flag is set to stop } startAnimation(); setTimeout(loopAnimation, 2000); // Adjust to match animation duration }; // Reveal the token if it's hidden and start the loop if (token.document.hidden) { token.document.update({hidden: false}).then(loopAnimation); } else { console.log("The selected token is already visible."); loopAnimation(); // Start the loop even if the token is already visible } } else if (canvas.tokens.controlled.length === 0) { console.log("No token is selected."); } else { console.log("Please select only one token."); }
and here i sthe stop macro: // Stop the looping animation window.loopAnimationControl = window.loopAnimationControl || {}; window.loopAnimationControl.stopLoop = true; // Signal to stop the loop console.log("Looping animation will be stopped.");
Pro-tip. You do not want to modify the default item pile. Duplicate it and then modify that actor as a merchant. Also, you can link the actor data [means no matter what map that merchant is on they have the same items across all canvases] or keep it unlinked [meaning your "blacksmith" actor will have different items on your phandelver map as the blacksmith on your Neverwinter map].
The module comes with pre-made merchant item tables. What does that mean? When you go into your merchant and navigate to the "populate items" tab there is a section on the right that says "rollable tables" you can click that drop-down and select a table then hit add table. This allows you to do 2 things.
1) You can create item roll tables for randomized items such as using a treasure chest or magic item vendor that rolls the table to have random magic items for sale
2) This allows you to enable the "refresh items each day / x days" option. This effectively lets you set their opening time so that when the shop opens it will delete their old inventory and refresh it with items rolled from the item table to replenish their stock and have fresh new items each day. Add variety to what items the merchant sells and allow situations to "find" specific rare things as I will explain below.
Set weapon table to roll 1d12-1 each day [generates 0-11 new items every day on merchant] + magic item table (1d2-1) [50/50 chance they will have a magic item in stock. Magic item table has 1-50 as a potion of healing, 51-80 as a greater magic potion, 81-90 bag of holding, 91-97 roll uncommon magic item table, and 98-100 roll rare magic table.
That gives the shop keeping a 50/50 they will have a magic item and within that 50% chance 10% of the time they have an item and 90% a potion. 10% chance is split 7/3 with 70% giving uncommon random items and 30% giving rare. So, to math it all out on any given day the merchant has the following chances: 25% to have a potion of healing, 15% to have a greater potion of healing, 5% to get a bag of holding, 3.5% to have uncommon magic item, & 1.5% to have a rare magic item.
If you want them to roll more than 1 magic item potentially but keep the odds of what they roll the same, then you modify the roll table to something like 2d2-2 [0-2 items; 50/50] or 1d4-1 [0-3 items; 75% chance to get anything]. Just keep in mind that the % chance to pull an item will increase the probability of generating a rare item so don't get too crazy.
*P.S. The casting macros allow you to set the spells up as "services" that the player buys from the merchant. Think of healing services from a priest or clergy for example. This means when they buy that service the merchant will actually cast that spell on the player and convey the benefits to them.
Also, for the Ration the price it correct. By default, the module has a setting that automatically converts currency prices on items. This means that if you list something for 10cp it will mark is as the highest denominator aka 1 silver.
Your ration is 5 silver aka 1 electrum piece. So, if you do NOT want it to count electrum then you can disable electrum from being counted in the module settings.
Indeed, there is a 'Configure Override Currencies' button, so I personally just ticked the option and deleted Electrum, because it's just an added currency that doesn't really need to be there.@@Xayentist
Yeah, it occurred to me part way through that is what was happening. Thanks for confirming.
That's some excellent information, sir. Thank you.
I'm not making Baulder's Gate 3 --- I LOVE YOU!
I already made one tiny tryout shop with Monks but this looks really good as well. I know it probably comes down to personal preference but which one do you prefer? Item Piles seems like it has a lot more features.
Also, marcos are possible but do you know if I could put a spell up there? My party befriended a priestess of Tymora and they 'unlocked' her ability to heal them 3 times a day. it would be so cool if I could somehow put that ability on the map.
I prefer Item Piles myself. As I use Item Piles for other things, I have the 1 mod that can do both shops and loot.
@@freakfire74 You can add things as a Service. Next video (th-cam.com/video/mtnQUcR-7g4/w-d-xo.htmlsi=9bSTiorNXUWgT-wl) I finally settled on my shop solution, which includes Services that don't get copied into the character sheet on purchase.
@@clay_golem Cool. Thank you.
@@clay_golem Ooh that is so awesome! This tool just keeps getting better and better. :)
Last time on Store Quest, Part II....and now, Store Quest, Part III...
Yeah, feels a little like that at the moment. Some great options out there though - just a little glitchy right now.
1ep equals 5sp. 2ep per 1gp. Currency rules.
Yeah, I hadn't realised that it was automatically converting currency. That and stupid electrum. I mean, who bothers with that? Haha
I love vaults because it's like WoW inventory grids the party can use to store and trade from, only wish they did pop up text of the items in em
Not a WoW player, so not entirely sure what you mean. But I definitely think we need to look at the other options with this mod.
@@clay_golem yeah check it out. i am also interested in theripper's paper doll mod though it looks kinda wonky, gives a gui like a video game inventory screen to equip stuff. i know you said you didn't wanna make baldur's gate.. but some of the features are great lol
Hi, I currently use this with rolltables to populate the merchants inventory for each merchant type (weapons, armor, tools, general goods, etc.).
Is there a way to edit the quantity modifier for each type? Especially for the general goods table it's really annoying to manually edit all the quantities after rolling, just because I wanted to sell more than one single torch lol. And there seems to be a modifier built into the module, because I sometimes get muttiples. Just rarely more than three.
You can nest roll tables - so rolls and item, and then rolls a quantity.
Item Piles has recently been updated for V12, so it's probably worth another look at Shops, and incorporating the updates you're talking about. I'll add it to the list to play with this week :)
Is there a way to have monsters/enemies drop loot piles when you kill them? Like an old school video game.
I'm sure there is, but not directly with item piles that I can see. Try Innocenti's Loot? I've not looed at it, but that's what it says it does.
I suppose a work-around could be to have a "Item Pile" of the encounter's loot hidden, and then just unhide at the end of the combat? Would represent stripping the bodies and piling it up before grabbing stuff?
Also, we looked at using Encounters to hoard and distribute loot, that may work for you: th-cam.com/video/p-RjBgi-WY4/w-d-xo.htmlsi=e_HzCuNL-AgLu-8j
@@clay_golem I'm going to try a hidden loot pile. I'm going to see if I can make it glow when it drops. I will feed back.
@@rpgtime5423 I have just used a Loot Pile in the video going up shortly - Old Owl Well. Seems to be a decent way to do it. I've left it visible, but they need to get to it before they can raid it. But it's not a lootable-body, which is what you were after.
I'm sure you could use a trigger tile to auto-reveal all the loot bags or something? Tricky... Let us know how you get on, and if you get a good solution, I'd be happy to cover it and share with others that may be interested.
@@clay_golem Ok so I figured out a macro that reveals the selected token (my hidden item pile I previous prepared) and applies a nice jb2a animation that continues to loop until you stop it with the 2nd macro: // Initialize or reset the global control variable
window.loopAnimationControl = window.loopAnimationControl || {};
window.loopAnimationControl.stopLoop = false; // Ensure loop is allowed to start
// Check if exactly one token is selected
if (canvas.tokens.controlled.length === 1) {
let token = canvas.tokens.controlled[0]; // The currently selected token
// Function to start the animation
const startAnimation = () => {
// Define the animation file path
let animationFile = "modules/JB2A_DnD5e/Library/Generic/Item/GlintMany01_02_Regular_Yellow_200x200.webm";
// Play the animation at the token's location
new Sequence()
.effect()
.file(animationFile)
.atLocation(token)
.play();
};
// Function to loop the animation
const loopAnimation = () => {
if (window.loopAnimationControl.stopLoop) {
console.log("Looping stopped.");
return; // Exit the loop if the global flag is set to stop
}
startAnimation();
setTimeout(loopAnimation, 2000); // Adjust to match animation duration
};
// Reveal the token if it's hidden and start the loop
if (token.document.hidden) {
token.document.update({hidden: false}).then(loopAnimation);
} else {
console.log("The selected token is already visible.");
loopAnimation(); // Start the loop even if the token is already visible
}
} else if (canvas.tokens.controlled.length === 0) {
console.log("No token is selected.");
} else {
console.log("Please select only one token.");
}
and here i sthe stop macro: // Stop the looping animation
window.loopAnimationControl = window.loopAnimationControl || {};
window.loopAnimationControl.stopLoop = true; // Signal to stop the loop
console.log("Looping animation will be stopped.");