Bazaar Core - Supply, Demand, Stock & Trade Routes for RPG Maker MZ
A downloadable plugin
Keep your shop plugin. This is the economy underneath it.
Every shop plugin for MZ governs how a shop looks, or when it unlocks. Not one of them makes a price or a stock level respond to anything. The merchant has infinite iron at a fixed price, forever, and the world never notices what the player did.
Bazaar Core is the layer underneath the shop. It decides what things are worth, how many exist, and why that differs from town to town. Your shop UI keeps doing its job.
Stock is finite, and it actually depletes
Buy twenty iron ore and there are twenty fewer. Buy the lot and the shelf is empty, and it stays empty until time passes. Stock never silently refills behind the player’s back — it recovers on an authored restock curve over days, so clearing out a small village has consequences a player can feel and plan around.
Prices are derived, never stored
A price is computed from what is on the shelf against what the market wants. Nothing writes a number into a variable and hopes it stays true. That is the whole design: a stored price is a number someone has to remember to update, and it drifts out of agreement with the world the moment two things touch it. Derived prices cannot drift, because there is nothing to drift.
The same good costs different money in different places
Salt fish is cheap in the fishing town and dear inland. Silk is dear at the source and dearer still where nobody weaves. Regional spread falls out of local stock and local demand rather than being hand-authored per town.
Trade routes as an actual mechanic
Because prices differ by region and stock is finite, buying low and selling high becomes a real loop rather than a flavour line. The market screen shows the spread directly: buy at Saltmarsh, sell at Highfell, and what each unit earns.
What it is not
It is not a shop UI, and it does not replace one. It is complementary to the shop builders and haggling systems already on the store — those decide how a transaction feels; this decides what the numbers are. Untouched items behave exactly as they always did.
Verification
- 109 automated tests, 0 failing, across the economy arithmetic, the parameter parse and the save/load lifecycle
- Measured in the real MZ engine, not a mock: the market screen costs 1.45–1.97 ms per frame, 8.7–11.8% of the 60 FPS budget, with 0 of 600 frames over budget in each of three independent runs
- Save/load round-trips losslessly, including markets and commodities added after a save was written — you can patch the economy of a shipped game without invalidating player saves
Those are frame costs measured by stepping the engine, not presented frame rates. Run-to-run spread was 35.8%, so no comparative timing claim is made from them.
Built to be read
Raw, readable, uncompressed JavaScript with full JSDoc. Complete @param, ~struct~ and @command blocks, so everything is editable from the Plugin Manager with no code. Deterministic seeded RNG — no Math.random() in game logic, so a playthrough is reproducible.
Requires RPG Maker MZ.
More MZ systems
- Chronicle Core — branching quests, choices, faction reputation and world state
- Chimera Core — creature genetics, breeding and box storage
- Chimera Battle — type chart, move sets, status effects and battle AI
- Chimera Field — spawn tables, rarity tiers and a dex
| Updated | 52 minutes ago |
| Published | 1 day ago |
| Status | Released |
| Category | Tool |
| Author | CSAF — Corey & Stephanie's Asset Factory |
| Genre | Simulation, Strategy |
| Tags | Economy, gamedev, javascript, JRPG, plugin, RPG Maker, RPG Maker MZ, Trading |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this plugin you must purchase it at or above the minimum price of $18 USD. You will get access to the following files:







