Shop Manager: managing shops with shop ID’s
An update has been made to the Shop Manager to address a major limitation that developers may have found quite irritating:
Amazingly, developers weren’t able to accomplish this. But now you can!
The reason is that the original script design converted an entire event into a shop. That is, when you access a shop from a specific event, all of the information about that shop is pulled from the event.
Which, in hindsight, is a terrible idea. The only way to actually access two different shops from a single event was to make common event calls, but even that is just a workaround for a bad solution.
Now we have the idea of a “Shop ID”, which is basically any valid name that you could possibly give to a shop. My suggestion is to use names (“First Map Shop”), or perhaps symbols (:first_map_shop), or even numbers if you can manage that.
So for example, if you want to access two shops, right before each shop processing command, you would make a script call and say
get_shop(YOUR_SHOP_ID)
You can then make more script calls to specify shop options such as hide conditions or disable conditions, and then finally you have the actual shop processing:
Shop ID’s also allow you to access your shop from anywhere. Three events on completely different maps can all get the same shop (by the shop ID), and all of the shop properties such as shop stock or custom items added during the game will be loaded as you would expect.
Now, developers can finally access two shops in a single event…
Check out the Shop Manager to completely change the way you manage shops in your game.
Thank you so much for this. This helps a TON.
It's great that you go all the way to make your scripts work as people would expect.
I didn't find the workaround too odious (used Autoruns rather than Common Events), but being able to place them in a single event from now on will save lots of setup time and even a bit of the game's processing power.
THANKS!! 😀
Nice one! I never realized this flaw before, but it's great to have a solution now. I'm sure many devs will make use of it. 🙂