promotional bannermobile promotional banner

Stock Prices - Supply and Demand

Item prices that react to supply, hoarding, and the money supply optional: Spud's Shop stall pricing.

Stock Prices - Supply and Demand

Source & full guide: github.com/teamdemivfxfish-dev/stock-prices-wiki

A living, self-balancing economy for your world. Mine, hoard, spend, or print money, and every price moves in answer.

Stock Prices is not a shop mod; it is the price engine behind one. Every obtainable item is given a Standard Retail Price (SRP) that is recomputed once per Minecraft day from the live state of the world: how much of the item exists, how concentrated it is into a few hands, how much money is circulating, and how much was bought lately. Prices rise when goods get scarce or hoarded, or when money floods in, and they fall when the world is awash in supply.

Players move the market by playing. Mine an ore, farm a crop, stuff a vault, flood a good, or cut off a supply line, and the daily recompute answers. Press a keybind to open the Market Prices screen and read any item's true value, complete with a 7-day trend arrow. It works entirely on its own, and it plugs into a shop when you have one.

How the market moves

Everything is measured relative to opening day. On the first recompute the engine calibrates its supply and money references so that day-one prices equal the base prices you configured. You see movement only after you change the world away from that baseline. One easing rate governs every force, so a rise and a crash behave identically, and a big shock still resolves within a day or two.

Four forces set the target price for each commodity:

  • Supply pulls the price down. Circulate more of a good and it gets cheaper.
  • Scarcity pushes the price up when effective supply runs low. Cut off a supply line and watch the price climb.
  • Hoarding folds into effective supply. A stockpile far above the per-location threshold discounts itself out of circulation, so the price climbs even when the raw total is high. A monopolist dumping their vault causes a hard crash; the very same total spread evenly across many players barely moves the price.
  • Inflation lifts every price as the total money supply grows. Hoard or print currency and the whole market floats upward.
  • Demand, meaning buying pressure, pushes prices up. Live purchase tracking arrives through Spud's Shop; until real purchases are seen, the demand factor stays neutral.

An item with zero supply clamps at the price ceiling, and all prices are held between a configurable floor and ceiling.

The Market Prices screen

Open the screen with a keybind (default the backslash key \, rebindable in Controls under the "Stock Prices" category) or with /stockprices market. Inside you get:

  • A live search box to jump straight to any item.
  • A scrollable list of every priced commodity.
  • Name, Price, and Movers sort modes, so you can find the biggest gainers and losers at a glance.
  • One honest number per item in the base currency unit, plus a 7-day trend glyph: green up, red down, or a gray flat mark when the change sits inside the negligible band.

What counts as a commodity

A commodity is any obtainable item: everything except air, spawn eggs, and a short technical blacklist of un-obtainable blocks. Items can be grouped so that reversible packing and cross-mod synonyms price as a single thing (an iron block is worth nine ingots), while one-way processing such as ore versus ingot is deliberately kept separate, so a smelting bottleneck actually shows up in the prices. Anything unlisted becomes its own commodity at weight 1.

Supply scanning

The mod keeps its own per-chunk index of every item held in container inventories. Online players' inventories and ender chests count as distinct locations for the hoarding math, and both are configurable. Scanning is throttled: loaded chunks are queued and only a small budget of chunks is scanned per server tick, so joining a world never stalls the load screen, and only chunks that actually contain containers are queued. At the day rollover the loaded chunks are re-scanned before pricing, and the recompute is held until the catch-up scan has fully settled, so a half-built index can never corrupt good prices.

  • Logging out does not delete you from the economy. Whatever a player was carrying keeps counting toward supply and the money pool while they are away, so prices no longer lurch with who happens to be online.
  • Unopened structure chests are skipped and left completely untouched. Dungeon, village and temple loot that nobody has found yet is priced in only once a player actually opens the chest.
  • Every container is counted exactly once, double chests included, so supply, hoarding and the money in circulation match what is really out there.
  • The scan reads each chunk directly and never reaches back out through the level while it works, so it stays out of the way of the rest of the game.

Money supply and inflation

The money pool is the sum of two sources:

  • Physical currency: every currency item in the world, counted at its configured value. Hoarding or printing currency inflates every price.
  • Bank balances (optional): with SDM Economy installed, every account balance is totalled in on top, so stored bank wealth feeds inflation too. Locked balances are skipped.
  • Numismatics accounts (optional): money held in Create's Numismatics bank accounts counts as well, converted at whatever your denominations list says a numismatics:spur is worth. A coin is worth the same in a chest as it is in the bank, so paying your spurs in no longer quietly removes them from the world's money supply and drags every price down. Turn it off with [integration] numismaticsEnabled.

If the make-up of the money supply changes, an economy mod added to or removed from a running world, the inflation baseline re-bases itself rather than measuring today's money against a total that was counted a different way.

Bills and denominations

The screen always shows one honest base-unit number. When a price is written onto a shop stall, though, it is expressed in coins.

Out of the box the ladder is Create's Numismatics coins: spur 1, bevel 8, sprocket 16, cog 64, crown 512, sun 4096. If none of the configured denomination items exist in your instance, because the currency mod is not installed or the ids are wrong, the mod falls back to a vanilla netherite, diamond and emerald ladder, so bills and the money pool keep working instead of going dead.

Optional integrations

Every integration is an optional soft dependency. Nothing is bundled, each hook is guarded, and the mod runs perfectly well on its own against pure NeoForge.

  • Spud's Shop: a checkbox in the stall owner screen toggles that stall to SRP mode. When it is on, the daily recompute writes the computed price (as denominated bills) straight onto the stall, and the toggle persists. This is also how live demand tracking reaches the market.
    • A stall has a single payment slot, so a price has to be one coin type times a count. The bill is whichever coin lands nearest the true price, preferring the bigger coin when accuracy ties, rather than the biggest coin that fits and a rounding error on top.
    • A stall's SRP setting is cleared when the stall is gone, so a new stall built where an old one stood does not silently inherit pricing from a shop that no longer exists.
    • The payment slot is located in the Spud's build you actually have installed rather than assumed, which protects a stall owner's takings if Spud's changes its layout.
  • Create: Numismatics: the default currency ladder, and the source of the bank balances counted above.
  • SDM Economy: account balances are totalled into the money pool, feeding inflation through the bank. On any error it falls back to a neutral value.
  • SDM Shop: listed as an optional dependency in the mod metadata.

Commands

Command Who can use it What it does
/stockprices market All players Open the Market Prices screen.
/stockprices info All players Inspect the item in your main hand: weighted supply, hoarding level, effective supply, baseline reference, base price, current SRP, and the money pool.
/stockprices recompute Operators Re-scan loaded chunks and recompute the whole market immediately.
/stockprices reload Operators Rebuild the commodity registry from the config.

Configuration

Everything is tuned from a single server-authoritative config file, config/stockprices-common.toml. Set base prices per item, define commodity groups, choose currency denominations, adjust how hard each force pulls, tune the trend window, and dial in scanning performance. Highlights:

  • Base prices: a neutral-market price for every commodity, with per-item overrides.
  • Formula tuning: sensitivity dials for scarcity, demand, money, and hoarding, plus the daily adjustment speed and the price floor and ceiling.
  • Commodity control: grouping, force-include and force-exclude lists, and toggles for counting player inventories and ender chests toward supply.
  • Currency: the base unit name, the two-way denomination table (used for both bills and the money pool), and which bank currencies to total in.
  • Trend: how many days the trend arrow compares against, and how small a change is treated as flat.

Supported versions

  • Minecraft: 1.21.1
  • Loader: NeoForge
  • Mod ID: stockprices

Support the Mods

These mods are free and they stay free. If one of them runs on your server, you can back the next version, the next port, and the next mod at patreon.com/epicwarborn. Patrons get their name in the credits, a direct line to me for bugs, early builds, and a vote on what gets built next.


Give your world a real economy, then watch it breathe. Open the Market and see where the money is.

Part of The Warborn Realm, by barunn

The Stock Prices - Supply and Demand Team

profile avatar
Owner
  • 12
    Followers
  • 12
    Projects
  • 44.9K
    Downloads

YouTuber and Small-Project Dev: https://www.youtube.com/@The_Bronn

More from BarunnView all