Dexter Studio
HomeDexWorthStock Market
DexWorth · Optional

Stock Market

Prices that move with supply — nothing random. Ships switched off so you can tune it to your own player numbers first.

Ships disabled. stock.enabled: false by default. The system is finished — turn it on once drop-per-item is tuned to your server. Nothing else in the plugin depends on it.

How prices move

Selling pushes a price downEach item sold lowers that item's multiplier by drop-per-item.
Unsold items drift upEvery interval, an item nobody is selling rises by rise.per-interval.
Sold items recoverAn item that is being sold drifts back toward its base price at recovery.rate.
Hard clampedThe multiplier can never leave limits.min/max, so a boosted sell price can never beat a shop buy price.

Configuration

stock:
  enabled: false
  limits:
    min-multiplier: 0.5
    max-multiplier: 2.0
  # 0.00002 => one stack (64) = -0.13%, 10,000 items = -20%
  drop-per-item: 0.00002
  rise:
    per-interval: 0.02
    quiet-threshold: 0
    include-untouched-items: true
  recovery:
    interval-seconds: 300    # one market step = 5 minutes
    rate: 0.05              # 5% back toward base per step

Keep max-multiplier at or below 2.0 if your buy shop uses buy = sell × 4. That way a boosted sell price is still only half the buy price — buying low and selling high can never turn a profit. Raise the ceiling and that guarantee is gone.

Which items take part

Farmable items are kept out through stock.blacklist (cobblestone, dirt, sugar cane, iron/gold ingot, wheat and more), or flip to stock.whitelist to allow only specific items. Shulker contents are recorded item by item, so packing things into a box doesn't dodge the market.

The trend indicator

{trend} in the price menu and hover tooltip shows the movement:

  display:
    up: "<green>+{percent}%"
    down: "<red>-{percent}%"
    hide-below-percent: 0.5

Admin

CommandDoes
/dexworth stockShow the current market state
/dexworth stock set <multiplier>Set an item's multiplier
/dexworth stock reset [all]Reset one or every item

State lives in data/stock.yml and survives restarts.