-
-
Notifications
You must be signed in to change notification settings - Fork 0
Selling
Players sell stored loot straight from a spawner's GUI. This page covers how a payout is calculated, how to price materials, and how rank multipliers work.
Selling works only when both are true:
-
SELL.ENABLED: trueinspawners.yml(the default), and - an economy is available — see Economy.
Otherwise players get Selling is disabled or no economy plugin is installed.
Sell All in the storage menu (slot 53), or the mob head in the main menu (which also claims XP in the same click).
Sell All opens a confirmation screen first, showing the payout, the multiplier and the item count. Nothing is sold until the green pane is clicked.
payout = SUM over each stored material of
amount x unit price x multiplier
A material is included only if all of these hold:
- it has a price — from
SELL.PRICES, or aSELL_PRICEon a drop entry, - its filter is enabled on that spawner,
- its stored amount is greater than zero.
Anything without a price is simply skipped. That is the intended way to make a drop collect-only: give it no price.
If nothing qualifies, the player gets There are no sellable items stored in that spawner. and
nothing is removed.
Sold items are removed only after the money is successfully deposited. A failed deposit
leaves the loot untouched and reports Failed to pay out the spawner loot sale.
SELL:
PRICES:
PORKCHOP: 2.5
BEEF: 2.5
LEATHER: 3.0
ROTTEN_FLESH: 0.75
IRON_INGOT: 12.0
GOLD_INGOT: 13.5
BLAZE_ROD: 18.0Prices are per single item. IRON_INGOT: 12.0 means one ingot sells for 12, a full stack of
64 for 768.
Names are Bukkit material names, uppercase. Unknown names are logged
([Worth] Unknown material in SELL.PRICES: …) and skipped. Prices of zero or less are dropped,
which is the same as leaving the material out.
A SELL_PRICE inside a drop entry overrides SELL.PRICES for that material:
TYPES:
BLAZE:
DROPS:
BLAZE_ROD:
MATERIAL: BLAZE_ROD
MIN: 1
MAX: 2
CHANCE: 1.0
SELL_PRICE: 25.0This override is global, not per type. Prices are resolved by material, so this sets blaze rods to 25.0 everywhere. Two spawner types cannot sell the same material at different prices.
SELL:
MULTIPLIER: 1.0
PERMISSION_MULTIPLIERS:
ultimatevirtualspawner.sell.multiplier.vip: 1.25
ultimatevirtualspawner.sell.multiplier.mvp: 1.5
ultimatevirtualspawner.sell.multiplier.elite: 2.0-
MULTIPLIERapplies to every payout on the server. Use it for global events —2.0for a double-money weekend, back to1.0afterwards, live via/spawner reload. -
PERMISSION_MULTIPLIERSare rank bonuses. Only the highest node a player holds applies, and it multiplies the global value rather than replacing it.
final = MULTIPLIER x (highest permission multiplier the player holds, or 1.0)
| Player holds | MULTIPLIER |
Final |
|---|---|---|
| nothing | 1.0 |
1.0 |
…vip (1.25) |
1.0 |
1.25 |
…vip and …elite (2.0) |
1.0 |
2.0 — only the highest counts |
…mvp (1.5) |
2.0 (event) |
3.0 |
The node names are entirely yours. Rename them to match your ranks:
myserver.rank.gold: 1.3
myserver.rank.diamond: 1.7Grant them like any other permission:
/lp group vip permission set ultimatevirtualspawner.sell.multiplier.vip true
The multiplier in the confirmation screen is the one the viewing player will actually get, so players can see their rank bonus before confirming.
Compute revenue per spawner before shipping a price. With the default 5-second interval (12 cycles per minute):
money/min = 12 x BASE_ITEMS_PER_CYCLE x stack x CHANCE x ((MIN + MAX) / 2) x price x multiplier
A 100-stack zombie spawner on the defaults:
ROTTEN_FLESH 12 x 1 x 100 x 1.0 x 2.0 = 2400/min x 0.75 = $1,800
IRON_INGOT 12 x 1 x 100 x 0.05 x 0.5 = 30/min x 12.0 = $360
CARROT + POTATO 30/min x 1.5 = $45
total ~ $2,205/min
That is about $132,000 per hour from one block at 100 stack — and
MAX_STACK_PER_BLOCK defaults to 100,000.
Decide what a maxed spawner should earn per hour on your server and work backwards from there. It is much easier to loosen a tight economy later than to claw money back after an inflation spiral.
- Price — cheapest to change, least visible to players.
-
MAX_STACK_PER_BLOCK— caps the top end without touching per-spawner feel. -
GENERATION_INTERVAL_SECONDS— no long-run effect on totals, only on payout rhythm. - Drop chances and amounts — most visible, reads loudest as a nerf.
Collect-only material — remove its price:
SELL:
PRICES:
# ROTTEN_FLESH: 0.75 <- commented out: storable, not sellableDouble-money weekend
SELL:
MULTIPLIER: 2.0then /spawner reload.
Disable selling entirely
SELL:
ENABLED: falseThe Sell All button still appears, but reports that selling is disabled. To remove the button, move it out of the layout in menus.yml.
- Economy — where the money comes from
-
spawners.yml — the full
SELLreference - Permissions — granting multiplier nodes
- Storage and Filters — the sell confirmation screen
Repository · Releases · Issues · Discord · MIT License
Getting started
Reference
Configuration
Features
Operations
Development