Simulated ChestShop
More actions
The Simulated ChestShop is a custom-built automated market activity engine developed specifically for Prosperity SMP. Unlike off-the-shelf plugins, it was designed from scratch to integrate with the server's CPI tracking, monetary policy engine, and economic dashboard. It creates background buying activity at player-owned ChestShop signs, ensuring shops see traffic even during low-population hours.
Purpose
At low player counts, player shops can sit idle for hours. This discourages players from setting up shops, which weakens the player-driven economy. The Simulated ChestShop solves this by having a server-managed bank account (CentralBank) purchase items from player shops at fair market prices.
The system only buys — it does not sell items to players. It is a pure liquidity injection from the CentralBank reserve into player hands.
Custom development
The Simulated ChestShop was purpose-built as a Skript plugin (sim-chestshop.sk) rather than using an existing solution. This allows deep integration with the server's other custom systems:
- CPI awareness — the system reads real market prices to determine fair buy values, and its own transactions are excluded from CPI calculations to prevent feedback loops.
- Monetary policy engine integration — every bank-to-player payout is classified as a TRANSFER_TO_PUBLIC event, feeding the engine's source-flow ratio analysis.
- Demand governor — an adaptive controller that adjusts buying intensity based on time of day, player count, real buyer activity, and bank health. The system backs off when real buyers are active and fills in when the market is quiet.
- Per-shop persona system — transactions use randomized buyer names in logs for natural appearance.
How it works
- The system maintains a shopping list of approximately 130 common items with internal maximum buy prices.
- Every few minutes, it scans active player ChestShop signs for eligible items.
- If a shop sells an item on the list at or below the max price, the system may purchase.
- The shop owner receives payment to their balance, identical to a normal sale.
- If the shop owner is online, the system sends a chat notification: +$X sale: <buyer> bought Yx <item> from your shop.
- Purchased items are removed from the chest (the bank does not stockpile).
From the shop owner's perspective, the transaction looks identical to a real player purchase.
Sale notifications
When a simulated buyer purchases from a player's shop, the shop owner receives a chat message identifying the buyer persona, item, quantity, and payment amount. The notification only fires if the seller is online at the moment of sale; offline sellers see no notification but their balance reflects the sale on next login.
The notification was added on 2026-05-28 in response to player feedback that sim shop sales were silently increasing balances without indication of source.
Bedrock shop owners
The system supports player shops owned by Bedrock Edition players. Floodgate's bedrock-prefix (.) is preserved on the sign and routed through the system's UUID resolver, which looks up the player's full Bedrock IGN even when the shop sign truncates names longer than 15 characters.
What the system buys
| Category | Examples |
|---|---|
| Mining | Cobblestone, stone, deepslate, iron ingot, gold ingot, diamond, coal, redstone, lapis, copper |
| Wood | Oak log, spruce log, birch log, planks |
| Farming | Wheat, carrots, potatoes, sugar cane, melon, pumpkin |
| Food | Cooked beef, cooked chicken, bread |
| Building | Glass, bricks, sand, gravel |
| Mob drops | String, gunpowder, bones, leather, feathers |
| Nether/End | Quartz, glowstone, chorus fruit, blaze rod |
Items the system will NOT buy
Beacons, totems of undying, ender pearls, shulker boxes, elytra, mob spawners, and other high-value or exploit-prone items are excluded from the sim shop's purchase list. Players can still sell these to the Admin shop at a floor price.
Demand controls
| Control | Purpose |
|---|---|
| Daily spending cap | Bank stops buying after a server-wide daily limit |
| Per-owner cap | No single shop owner receives more than a set share of the daily budget |
| Per-shop cooldown | Waits between purchases from the same shop |
| Intensity profiles | Activity scales with server population and time of day |
| Bank floor | Stops all activity if the CentralBank balance drops below a safety threshold |
Economy integration
The system is tightly integrated with the server's custom economic infrastructure:
- Transactions are flagged
simulated: truein the transaction log. - The CPI excludes simulated transactions — it reflects real player prices only.
- The Monetary policy engine classifies payouts as transfers from reserve, not new money creation.
- A 7-day lagged CPI snapshot prevents the system from chasing its own price signal.
Visibility
The system is intentionally invisible to players except for the sale notification described above:
- No command reveals bank buy prices or the shopping list.
- The /market command shows real player data only.
- Shop owners cannot distinguish simulated purchases from real ones in the transaction log.
Admin commands
| Command | Description |
|---|---|
/simshop status |
Bank balance, daily spend, pause state |
/simshop pause |
Pause all activity |
/simshop resume |
Resume activity |
/simshop refill <amount> |
Add funds to CentralBank |
These require staff permissions.
See also
- Consumer Price Index — the price index (excludes simulated trades)
- Monetary policy engine — the inflation management system
- Item worth — the unified pricing engine used by tooltips
- Economy — how money flows through the server
- ChestShop — how to create player shops
- Admin shop — the separate server-run shop
- Trading — trading methods and price discovery