A spawner customisation plugin that lets players upgrade any spawner's speed, mob quantity, and drop tier through an in-game GUI, paid for in Vault economy. Released publicly on SpigotMC.
SpawnersPlus turns vanilla mob spawners into upgradable economy items. Right-click any spawner and a 27-slot GUI opens with three upgrade tracks, speed, quantity, and drops, each with five tiers. Costs scale geometrically and are deducted via Vault, so any economy plugin (EssentialsX, CMI, etc.) plugs straight in.
It's designed to live on long-running survival or economy servers where spawners are a natural progression goal: players buy or find a spawner, then sink money into making it pay off harder over time. Spawners can also be silk-touched up and re-placed without losing their levels.
Every spawner starts at level 1 across the board. Each upgrade in the GUI shows the current level โ next level, the resulting stat, and the price; clicking purchases it and refreshes the GUI live.
20s and multiplies by 0.9 per level, so level 5 is around 13.1s. The min/max delay variation can be tuned via Speed.MaxSpeedVariation.2 and adds QuantityPerLevel mobs per upgrade, so a level-5 quantity spawner can spit out 6 mobs at once.none until you author tables for them.Pricing for any upgrade is StartingPrice ร PriceMultiplier^(currentLevel - 1). With the defaults (start 100, ร1.5), the level 1โ2 upgrade costs 100, then 150, 225, 337.5, and so on, so the final upgrade is the most expensive by far.
Per-location data. Levels are stored in an in-memory map keyed on world + block coordinates. On server shutdown the map is serialised into data.yml as world:x:y:z โ speed:quantity:drop; on startup it's read back, then the file is wiped (configurable via clearDataFileOnLaunch) so the file doesn't bloat with stale entries.
Drop-level branding. Spawned mobs get an automatic custom name like Level 3 Pig showing their tier. On death the plugin reads the level back out of the name to look up the correct drop table for that level, so two spawners spawning the same mob type at different levels yield different loot.
Drop replacement is spawner-only. Custom drops only apply when the mob's name was set by a spawner (i.e. it has the level prefix). Wild-spawned mobs with no level prefix keep their normal vanilla drops, so the plugin doesn't accidentally rewrite drops across the whole world.
Silk-Touch + lore round-trip. Breaking a spawner with a Silk-Touch tool drops a custom item with the mob type and all three levels baked into its lore. Placing that item back down restores the spawner with its levels intact, letting players relocate progress without losing investment.
The GUI is gated by permission, with both global and per-entity nodes:
- spawnersplus.usespawner: open the upgrade GUI on any spawner type
- spawnersplus.usespawner.<entity>: open the GUI only for a specific mob type (e.g. spawnersplus.usespawner.pig)
- spawnersplus.help: see the help command output
- spawnersplus.reload: reload config.yml
- spawnersplus.givespawner: admin command to spawn the custom-NBT spawner item
All commands available under /sp or /spawnersplus.
config.yml: picks up new prices, multipliers, level caps, drop tables.amount spawner items pre-named for the given entity, with all three levels initialised at 1. Aliases: gs, spawner, give. The entity name follows Minecraft's enum (e.g. PIG, BLAZE, IRON_GOLEM).All numbers live in config.yml. Each upgrade track has its own StartingPrice, PriceMultiplier, and UpgradeCap, plus track-specific tunables:
- Speed: DefaultSpeed (seconds), TimerMultiplier (per level), MaxSpeedVariation
- Quantity: DefaultQuantity, QuantityPerLevel
- Drops: a nested Drops.<ENTITY>.<level>.<MATERIAL>: <quantity> tree
To author drops for, say, a Skeleton spawner, replace its SKELETON: none entry with a level tree mirroring the Pig/Blaze examples in the default config. Mobs left as none simply don't get the Drop track surfaced in their GUI.