Pricing¶
The default scale¶
The generated catalogue is priced on one coherent scale, anchored at iron = 40. Anything cheaper is something you get by walking around; anything dearer is something you worked for.
| Oak planks | 4 |
| Iron ingot | 40 |
| Diamond | 400 |
| Netherite ingot | 5,000 |
| Enchanted golden apple | 9,000 |
Sell ratio¶
Sell prices are a flat fraction of buy prices — 25% by default, set by
sell-ratio — rather than a number per item.
Why a ratio, not a price
The moment buy and sell are set independently, someone finds the pair where buying from one section and selling into another prints money. A single ratio below 1.0 cannot be arbitraged, whatever the prices are.
sell-ratio only applies when the catalogue is generated. Changing it later
does not reprice an existing shop.
Dynamic pricing¶
Off by default. Turn on dynamic-pricing.enabled and prices drift with what
players actually do: buying pushes a price up, selling pushes it down, and the
drift decays back toward the listed price over time.
dynamic-pricing:
enabled: true
elasticity: 0.002 # 100 bought moves the price ~20%
min-multiplier: 0.5
max-multiplier: 2.0
half-life-minutes: 60
Three properties make it safe on a live economy:
- It cannot run away. The multiplier is clamped at both ends.
- It cannot be arbitraged. Buy and sell move off the same figure, so the ratio between them holds wherever the market has drifted.
- It forgets. A one-off raid on the diamond section does not reprice diamonds permanently.
Trade windows show a trend: ▲ in demand, ▼ oversupplied, ● stable.
Rank discounts¶
Permission nodes, not a rank list in our config:
Give the node to a LuckPerms group and the shop needs to know nothing about
groups, inheritance, tracks, contexts or expiry — LuckPerms answers
hasPermission and all of that comes along free. It also works unchanged on
any other permissions plugin.
The best node wins, not the sum. Stacking is how someone with three donor ranks ends up buying at a 95% discount, and every inherited rank in a ladder would otherwise add up. Discounts cap at 90%, sell bonuses at +100%.
Stock limits¶
Per item, in the editor. Stock limit sets how many are available; Restock rate adds that many back per hour. Players selling the item back also restock it.
Restocking is worked out from elapsed time when the item is read, not by a timer. A shop with ten thousand listings would otherwise need ten thousand timers, and a server that was offline overnight would come back with everything still empty.