Inspired by Donut SMP’s Spawner mechanics, this plugin enhances minecraft spawner usage with a user-friendly GUI that generates mob drops and experience without spawning entities, reducing server load.
Key Features:
Intuitive GUI: A user-friendly interface that allows players to view, manage, and interact with spawners effortlessly.
Spawner Main GUI
Spawner Storage GUI
Spawner Stacking: Reduce server load with our robust stacking mechanics. Players can stack spawners with ease using intuitive interactions or a dedicated GUI.
Right-click on a spawner with a spawner in hand to add 1 to the stack.
Shift + Right-click to stack all spawner in your hand.
Or use the stacker GUI.
Spawner Stacker GUI
Stacking a Spawner
Mineable Spawner: Allows players to break and collect spawners using specific tools, Silk Touch enchantment,.. Fully customizable.
Shop Integration: Fully compatible with popular economy plugins, including EconomyShopGUI, EconomyShopGUI-Premium. For selling items directly from the Spawner Storage GUI, with plans to expand compatibility to more shop plugins in the future.
Supported mobs:
Blaze
Bogged (only 1.21+)
Breeze
Cave Spider
Chicken
Cow
Creeper
Drowned
Enderman
Evoker
Ghast
Glow Squid
Guardian
Hoglin
Husk
Iron Golem
Magma Cube
Mooshroom
Pig
Piglin
Piglin Brute
Pillager
Pufferfish
Rabbit
Ravager
Salmon
Sheep
Shulker
Silverfish
Skeleton
Slime
Spider
Squid
Stray
Strider
Tropical Fish
Vindicator
Witch
Wither Skeleton
Zoglin
Zombie
Zombie Villager
Zombified Piglin
Default Config & Language Files: Use this as a base for updates and translations
#--------------------------------------------------- # Spawner Item Name With Entity #--------------------------------------------------- spawner-name: "&6%entity% Spawner"
#--------------------------------------------------- # Spawner Interaction #--------------------------------------------------- messages:
activated:
message: "&#d6e7edSpawner ೗A9activated&#d6e7ed! Mobs won’t spawn naturally, collect loot and XP through the GUI instead." prefix: true
type: CHAT
sound: block.beacon.activate
entity-spawner-placed:
message: "&#d6e7edThis spawner is ೗A9not activated&#d6e7ed! Mobs will spawn naturally." prefix: true
type: CHAT
sound: block.note_block.pling
changed:
message: "&#d6e7edSpawner changed to ೗A9%type%&#d6e7ed!" prefix: true
type: CHAT
sound: block.note_block.pling
invalid-egg:
message: "&cInvalid spawn egg! or spawn egg not supported!" prefix: true
type: CHAT
break-warning:
message: "&c[!] Warning! All items and xp will be lost!" prefix: false
type: ACTION_BAR
sound: block.note_block.chime
required-tools:
message: "&c[!] Can't break spawner with this tool!" prefix: false
type: ACTION_BAR
sound: item.shield.block
silk-touch-required:
message: "&c[!] Required ೗A9Silk Touch&c to break this spawner!" prefix: false
type: ACTION_BAR
sound: block.note_block.pling
#--------------------------------------------------- # Selling Items from Spawner #--------------------------------------------------- sell-all:
message: "&#d6e7edYou sold a total of ೗A9%amount% items&#d6e7ed for&a %price%$ &#d6e7ed!" prefix: true
type: CHAT
sound: block.note_block.bell
sell-all-tax:
message: "&#d6e7edYou sold a total of ೗A9%amount% items&#d6e7ed for&a %price%$ &#d6e7ed (Tax: &#ff6b6b%tax%%&#d6e7ed)!" prefix: true
type: CHAT
sound: block.note_block.bell
no-items:
message: "&cThere are no items to sell in the spawner." prefix: true
type: CHAT
sound: block.note_block.pling
no-sellable-items:
message: "&cNo items can be sold from this spawner." prefix: true
type: CHAT
sound: block.note_block.pling
#--------------------------------------------------- # Spawner Stacking/Unstacking #--------------------------------------------------- hand-stack:
message: "�E689Successfully stacked &6%amount%�E689 spawners!" prefix: false
type: ACTION_BAR
sound: entity.experience_orb.pickup
items-lost:
message: "&cSome items were lost due to unstacking!" prefix: true
type: CHAT
sound: block.note_block.pling
cannot-go-below-one:
message: "&cCannot go below 1! Only decreasing by %amount%!" prefix: true
type: CHAT
sound: block.note_block.pling
stack-full:
message: "&cStack limit reached! Cannot increase anymore!" prefix: true
type: CHAT
sound: block.note_block.pling
not-enough-spawners:
message: "&cYou don't have enough spawners! Need %amountChange% but only have %amountAvailable%!" prefix: true
type: CHAT
sound: block.note_block.pling
stack-full-overflow:
message: "&cStack limit reached! Only stack %amount% spawners!" prefix: true
type: CHAT
sound: block.note_block.pling
inventory-full-drop:
message: "&cSome spawners were dropped at your feet due to full inventory!" prefix: true
type: CHAT
sound: block.note_block.pling
invalid-spawner:
message: "&cInvalid spawner type!" prefix: true
type: CHAT
sound: block.note_block.pling
different-type:
message: "&cYou can only stack spawners of the same type!" prefix: true
type: CHAT
sound: block.note_block.pling
#--------------------------------------------------- # Spawner Storage Interaction #--------------------------------------------------- no-items-to-take:
message: "&cThere are no items to take!" prefix: true
type: CHAT
sound: block.note_block.pling
inventory-full:
message: "&cYour inventory is full!" prefix: true
type: CHAT
sound: block.note_block.pling
take-some-items:
message: "&#d6e7edYou have taken ೗A9%amount%&#d6e7ed items! Your inventory is now full!" prefix: true
type: CHAT
take-all-items:
message: "&#d6e7edSuccessfully taken ೗A9%amount%&#d6e7ed items!" prefix: true
type: CHAT
sound: block.note_block.chime
#--------------------------------------------------- # Hopper Interaction #--------------------------------------------------- hopper-paused:
message: "&cHopper has been paused while interacting with the spawner!" prefix: true
type: CHAT
sound: block.note_block.pling
hopper-resumed:
message: "&aHopper has been resumed!" prefix: true
type: CHAT
sound: block.note_block.chime
#--------------------------------------------------- # Spawner List Teleport Message #--------------------------------------------------- teleported:
message: "&aSuccessfully teleported to &6Spawner #%spawnerId%" prefix: true
type: CHAT
sound: entity.enderman.teleport
not-found:
message: "&cCould not teleport to that Spawner! Spawner not found." prefix: true
type: CHAT
sound: block.note_block.pling
&5➜ &7Click to view The End spawners
spawner-item:
name: "fc3f7&lSpawner #{id}" id_pattern: "Spawner #([A-Za-z0-9]+)"# Pattern to match the spawner id for teleportation lore:
separator: "&8&m------------------------" location: "&8▪ &7Location: &f{x}, {y}, {z}" entity: "&8▪ &7Entity: &f{entity}" stack_size: "&8▪ &7Stack Size: &6{size}" status:
active: "&8▪ &7Status: &a&lACTIVE" inactive: "&8▪ &7Status: &c&lINACTIVE" teleport: "೗A9➜ &eClick to teleport" navigation:
previous-page: "&e&lPrevious Page" next-page: "&e&lNext Page" back: "&c&lBack to World Selection"
#--------------------------------------------------- # Command & Update Messages #--------------------------------------------------- command:
usage: |
&aCommands Usage: &f/smartspawner reload &7- Reload the plugin configuration
&f/smartspawner list &7- Open the spawner list
(for admin management
) &f/smartspawner give <player> <mobtype> <amount> &7- Give spawners to a player
reload:
usage: "&cUsage: /smartspawner reload" success: "&aPlugin reloaded successfully!" error: "&cError reloading plugin. Check console for details." give:
usage: "&cUsage: /smartspawner give <player> <mobtype> <amount>" player-not-found: "&cPlayer not found!" amount-too-large: "&cMaximum amount allowed is %max%!" invalid-amount: "&cInvalid amount! Please enter a number between 1 and 64." inventory-full: "&eYour inventory is full! Some items have been dropped on the ground." invalid-mob-type: "&cInvalid mob type! Use tab completion to see available types." spawner-received: "&aYou have received %amount% %entity% spawner(s)!" spawner-given: "&aYou have given %player% %amount% %entity% spawner(s)!" spawner-given-dropped: "&eYou have given %player% %amount% %entity% spawner(s) (some items were dropped on the ground)" no-permission:
message: "&cYou do not have permission to do that!" prefix: true
type: CHAT
sound: block.note_block.pling
update:
title: "[Smart Spawner] Update Available!" current_version: "▪ Your version: v%current_version%" last_version: "▪ Latest version: v%new_version%" download_button: "→ [Download]" download_hover: "Click to download the latest version!"
Code (YAML):
# =============================================================== # Global Settings # =============================================================== settings: # Language Selection # Supported: en (English), vi (Vietnamese) language: en
# =============================================================== # Plugin Update Checker # =============================================================== update-checker:
enabled: true
check-interval: 24
# Hours between update checks notify-ops: true
# Alert server operators notify-on-join: true
# Notify on server entry (for players have update permission)
Commands: Aliases: /ss, /spawner, /smartspawner
/smartspawner reload: Reload the SmartSpawner plugin settings.
/smartspawner give <player> <mobtype> <amount>: Gives a spawner to a player or yourself.
/smartspawner list: Opens the spawner list GUI for admin management
Permissions:
smartspawner.reload - Reloads the plugin (default: OP).
smartspawner.give - Allow giving spawners to yourself or other players (default: OP).
smartspawner.list - Allows accessing the spawner list command (default: OP)
smartspawner.stack - Allows stacking in the GUI or by right-click (default: true).
smartspawner.changetype - Permits spawner type changes using spawn eggs (default: true).
smartspawner.break - Allows players to break spawners (default: true).
smartspawner.sellall - Allows selling items in the spawner storage GUI (default: true).
Important: Since this is my first plugin, there may be bugs. Please report any issues directly on my Discord server instead of posting them in the review section. [
Discord Server Link]