
Trilobytes MZ: Limited Stock Shop
A downloadable plugin
Features
- Set up a shop with limited inventory of any combination of items, weapons and armours, with the option of using the database price or specifying your own
- Add or remove stock to an existing limited shop
- Change prices without affecting inventory
- Set up auto restocking, either on a per-item basis or with a default frame delay*
- Choose a random selection of items from the available pool, either once or every time you visit*
- Use a variable to determine stock/restock quantities*
- Automatically remove "sell" command from purchase-only shops.*
* Premium version feature only, not present in the free one
Premium version is available at no extra charge to Trilobytes patrons on any tier: https://www.patreon.com/trihan
Screenshots

Current version
1.08
Changelog
Version 1.08:
- Fixed a bug where non-restocking items reset when interacting with the
shop event.
- Added a parameter to remove "sell" command from purchase-only shops.
Version 1.07:
- Fixed a bug where shops could no longer stock via constant quantity values and only worked with variables.
Version 1.06:
- Item quantity can no longer be set higher than restock max. If a higher
value is used, it will be changed to the max value.
- Fixed a bug where the stock equality check wasn't using correct keys.
- Quantities/Restock quantities for all plugin commands can now use a
variable instead of a constant value.
Version 1.05:
- Fixed an issue where loading an existing save after changing in-line stock data would retain the old inventory.
Version 1.04:
- Added additional failsafes that were missed in the previous fix.
Version 1.03:
- Added missing failsafes to create required objects if they don't already exist, which should prevent crashes when adding this plugin to a game with existing save files.
Version 1.02:
- Fixed a bug where creating a normal shop with no plugin commands would crash the game.
- Implemented "Randomise Once" and "Randomise Always" options for setting up a shop, to determine whether random X items should only happen once when first visiting to create a permanent inventory, or whether items should be chosen randomly every visit.
- Fixed descriptions in some outdated restock timer struct properties that didn't include the addition of -1 as a no restock option.
Version 1.01:
- Changed auto restock value to use 0 as default and -1 as no restock.
- Fixed help formatting to fit in available space.
Version 1.00:
- Finished plugin!
Purchase
In order to download this plugin you must purchase it at or above the minimum price of $5 USD. You will get access to the following files:
Comments
Log in with itch.io to leave a comment.
Version 1.08 is now available!
Hi there,
I'm interested in this plugin and would absolutely buy the premium version if I can address a couple of things:
When I execute the plugin command to Set Shop Stock, then put it above (or below for that matter) the shop processing window, the game crashes with the error: Cannot convert undefined or null to object
Is this because I'm only using it to sell a certain few items and don't include weapons and armor? I've read through the parameters and I'm not sure what I'm overlooking. I've tried this both with loading the normal shop inventory, leaving it blank, or removing it altogether.
Also - Is it possible to modify the shop in some way so it's purchase only and remove the tab to sell entirely?
Thanks!
Let me look into those and I'll get back to you. For the last one, you should just be able to check the "purchase only" checkbox on the regular shop command.
Can I clarify that this is happening to you when using the free version?
Also confirmed that "purchase only" does prevent selling items, but doesn't affect the actual layout. I will add a parameter to remove the sell option from shops if they're set to purchase only.
Right - but checking purchase only just grays out the sell option. It's just cosmetically unnecessary and I was hoping to remove the whole thing.
But yes, this is the free demo version that I'm using.
The newly-released 1.08 adds the removal option you requested, but only in the premium version (I don't plan on adding anything else to the free version except fixing any bugs that are present in it). I'm unable to replicate your error; is this happening with my plugin as the only one enabled?
Well, now it seems to be working. Not sure what the null was that tripped it before. But I'll grab the full version now!
Only other question I have is if there is a way to extend the section for the item name or allow it to drop down a layer? The item name, plus the price, plus the quantity ends up overlapping itself.
It's currently predicated on the assumption that whatever string you enter for the stock text is going to fit in the game window width you've set, but I can certainly look at providing something automated.
Hello, I don't want the item to restock. I set the default restock quantity to 0 and restock time to -1. After I go to another map, it restocks again! I just want to make it one time purchase.
Oh, it shouldn't restock again with those settings. I'll loook into it!
Identified the problem and fixed it! I'll release 1.08 after I look into the other issue above.
Hello! Im implementing this plugin in my latest game Look Outside - and in working on it I found a few issues you might want to fix on your end-
will add to this in replies if I find more stuff!
Also - im not sure Im setting up the shops properly - it seems like, in order for the stocks to not reset every time the shop is launched, and to not break after loading the game, I need to use two Set Stock calls for each shop:
The first one is only called once per game and sets up the initial shop inventory
The second one just before the shop processing call, that doesnt have any inventory set up in it.
If I only do the first call, the shop works fine initially, but it breaks if I load the game.
if I only have that second call just before the shop processing event, and put the full shop inventory in that one call, the shop works but it resets the shop stock inventory every time the shop is called.
If that is the intended usage, I think it needs to be explained better in the plugin files - if its not the intended usage, I think I'm either doing something wrong, or it might not be working properly.
Thank you for choosing my plugin! Sorry for the delay in getting back to you, I've been crazy busy lately. I'll take a look at these issues as soon as I can, will hopefully have an update for you by end of next week at the latest (along with a fix for re3troo's issue below)
Thanks for making it, its very useful!
I buy this Plugin - its very nice :) but the variable addon not final working.
it adds the items via the variable this work but subtract it after buying nothing in the variable, i buy this for the variable =(
Oh, that's not good! I'll try to figure that out tomorrow for you. Thanks for the purchase!
Ho! Very Nice! Thx for your speed and hard work , Cheers :)
Is this compatible with the VisuStella shop stuff?
It should be. If there are any issues with it, let me know and I'll try to resolve them.
Thanks. ^^
It cannot be implemented in saved games, set property [object array] of the undefined... I have to test from scratch, then it works. Can fix?
I'll look into it! Thanks for the report.
Thanks, let me know.
Just hit this same error.
Can you give me any further information for replicating it?
From what I can tell, if you have a project with the traditional shop in place, enter and engage with that shop, save the game, then install the plugin, load the game, and reenter the shop sequence - it crashes.
Ooh, that's potentially helpful in tracking down the cause and fixing it. Thank you!
Hi there! Liking this plugin, very user-friendly!
The 'sell' functionality appears to be broken in the current version - items you attempt to sell will end up back in your inventory after you leave the shop - and won't appear for sale in the shop you've sold to
Oh, that definitely sounds like a bug! Leave that with me and I'll post an update as soon as it's fixed.
Was that the free version or the premium one?
Are you sure you're using the latest version? I've tested on both the free and paid plugins and if I sell an item, it's removed from my inventory and added to the shop's stock if it's one they sell.
Version 1.07 is now available and finally fixes the bug with stock! It turns out that there was a logic error that made it only use variables for stock quantities, so constant values no longer worked. This is now resolved.
I'm getting this error when launching my project with this plugin enabled.
I tried turning off all my other plugins to see if it will work and it still throws up the same error.
Are you trying to run it on a mobile device with Android 4 or earlier?
Nope, I'm on windows 10.
Weird, that usually only happens on mobile. It's because of a browser that doesn't support null-coalescing assignment, which I use pretty liberally in my plugins unfortunately. It's client-end so there's no way for me to fix it besides not using those operators at all, which I'd rather not do since they're a really handy ES2020 feature.
Ah that's unfortunate, thank you for responding though!
If I get the time (and I'm not promising since my schedule is horrendously hectic at the best of times) I'll create a variant for you that doesn't use null-coalescing and put it up as a separate download. Did you buy the premium version or are you using the free one?
It looks like 1.06 has caused a bug where shops are always sold out; I'm currently looking into this and will update as soon as I resolve it.
Version 1.06 has been released! Quantities can now be set via variable and cannot result in a stock value greater than the max restock value. I also fixed a bug where comparison between the stock equality check wasn't working properly.
Hi, I bought this plugin, it's ALMOST perfect for my game, but I may be doing something wrong. So,
- I'd like to disable auto-restock and only do it via plugin command when a certain point of my game is reached
- I set the default stock maximum to 5
But if I use a plugin command to add, say, 10 items, it will go above the stock maximum! Is there a way to control this?
Thank you
Hi Trihan, any plans to port this to MV?
Hey zelanius! I'd considered an MV version but I can't think of an elegant way to do the plugin commands that would still allow for the same versatility. If I come up with something I for sure will.
Thanks for the response, Trihan. I thought that might be the case, as I recall someone else (I think it was Ramza) who mentioned how MV was more difficult to build plugins for due to the way their script was structured. Hopefully, you will find a solution, as this would be a really nice way to limit item stocks and manage game difficulty (and force some crafting on top of that), instead of a tedious "Show Choice" menu with tied to various variables and switches which will certainly make me go @_@.
Since it's you I'm sure I can figure something out.
Is there a way to specify item quantity adjustments using a variable?
Not yet, but someone else requested it and I'm planning to include that as a feature in the next version, which should be available soon.
I am having a compatability issue with the plugin. Source maps of old save files will not load when the plugin is enabled. New game files run with no problem. I disabled Visustella Main Menu core but that did not help.
Sorry to hear that! I'll take a look.
Okay, so the source map thing is entirely unrelated to the problem; that happens in all RM projects and can be safely ignored.
The actual issue is with the restock timers tracker. Did you add the plugin to an existing project and try to load a save you'd already created prior to installing it?
I did add it to an existing project. Is there a way to disable the global restock timer? Otherwise I can try setting restock to -1 and see if that helps.
Setting it to 0 does disable it, but the problem is the code is still checking for it being there so whether enabled or not you'll still have this issue. It's because the object is created on game start, so obviously it doesn't exist in your save.
I'll update the plugin to create the object if it doesn't exist when it's needed. Should have a new version up soon, thanks for the report!
Is the update available? Sorry, I can't seem to see the versions
I am getting this when running the plugin in play test after following your instructions.
SyntaxError
Unexpected token '='
Can you please help?
Of course! I'm so sorry to hear that and thanks so much for the purchase.
What have you done in terms of shop setup?
Just checking in for this since it's been 2 months. I can't help you without some more information. ^_^