Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Simulated ChestShop

From Prosperity SMP Wiki

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

  1. The system maintains a shopping list of approximately 130 common items with internal maximum buy prices.
  2. Every few minutes, it scans active player ChestShop signs for eligible items.
  3. If a shop sells an item on the list at or below the max price, the system may purchase.
  4. The shop owner receives payment to their balance, identical to a normal sale.
  5. If the shop owner is online, the system sends a chat notification: +$X sale: <buyer> bought Yx <item> from your shop.
  6. 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: true in 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