Compatibility
Minecraft: Java Edition
Platforms
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Overview
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.
Spawner Stacker GUI
Stacking a Spawner
How To Stack Spawners?
- Right-click on a spawner with a spawner in hand to add 1 to the stack.
- Shift + Right-click to stack all spawners in your hand.
- Or use the stacker GUI.
-
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, ShopGUI+. For selling items directly from the Spawner Storage GUI, with plans to expand compatibility to more shop plugins in the future.
Supported mobs
Supported mobs
- Blaze
- Bogged (1.21+ only)
- Breeze (1.21+ only)
- 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
config.yml
# ===============================================================
# Global Settings
# ===============================================================
settings:
# Language Selection
# Supported: en (English), vi (Vietnamese)
language: en
# Debug Mode (for printing debug messages to console)
debug: false
# Data Persistence Interval
# 20 ticks = 1 second, default: 5 minutes
save-interval: 6000
# ===============================================================
# Spawner Core Mechanics
# ===============================================================
spawner:
# Spawner Configuration
default-entity: PIG
min-mobs: 1 # Minimum mob spawn count
max-mobs: 4 # Maximum mob spawn count
range: 16 # Player proximity for activation (blocks)
delay: 600 # Base spawn delay (ticks) - 30 seconds
# Resource Management
max-storage-pages: 1 # Storage page(s) per spawner (1 page = 45 slots)
max-stored-exp: 1000 # Maximum storable experience points
max-stack-size: 1000 # Maximum spawner stack size
# Advanced Features
allow-exp-mending: true # Repair items using stored experience
allow-toggle-equipment-drops: true
allow-grief: false # Prevent explosions destroying spawners
activate-on-place: true # Immediate spawner activation
# ===============================================================
# Spawner Breaking Mechanics
# ===============================================================
spawner-break:
enabled: true
# Permitted Breaking Tools
required-tools:
- IRON_PICKAXE
- GOLDEN_PICKAXE
- DIAMOND_PICKAXE
- NETHERITE_PICKAXE
# Breaking Penalties
durability-loss-per-spawner: 1
# Silk Touch Requirements
silk-touch:
required: true
level: 1
# Dropping Configurations
drop-stack:
amount: 64 # Maximum dropped items per break
# ===============================================================
# Economic Integration
# ===============================================================
# Available options: disabled, EconomyShopGUI, EconomyShopGUI-Premium, ShopGUIPlus
shop-integration: EconomyShopGUI
# Formating price with currency symbol: K, M, B, T by default in the message file
formated-price: true
tax:
enabled: false
rate: 10.0 # % tax on sales
# ===============================================================
# Hopper Mechanics (Experimental)
# ===============================================================
# Not recommended for large servers
hopper:
enabled: false
items-per-transfer: 1
check-interval: 20
# ===============================================================
# Performance Optimizations
# ===============================================================
performance:
# Batch Processing for Mob Drops
# Higher values = more consistent, lower resource usage
batch-size: 3
# ===============================================================
# 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)
en.yml
prefix: "&8[೗A9&lSmartSpawner&8]&r"
#---------------------------------------------------
# Formatted Numbers
#---------------------------------------------------
format-number:
thousand: "%sK"
million: "%sM"
billion: "%sB"
trillion: "%sT"
default: "%s"
#---------------------------------------------------
# Formatted Mob Names
#---------------------------------------------------
mob_names:
BLAZE: "Blaze"
BOGGED: "Bogged"
BREEZE: "Breeze"
CAVE_SPIDER: "Cave Spider"
CHICKEN: "Chicken"
COW: "Cow"
CREEPER: "Creeper"
DROWNED: "Drowned"
ENDERMAN: "Enderman"
EVOKER: "Evoker"
GHAST: "Ghast"
GLOW_SQUID: "Glow Squid"
GUARDIAN: "Guardian"
HOGLIN: "Hoglin"
HUSK: "Husk"
IRON_GOLEM: "Iron Golem"
MAGMA_CUBE: "Magma Cube"
MOOSHROOM: "Mooshroom"
PIG: "Pig"
PIGLIN: "Piglin"
PIGLIN_BRUTE: "Piglin Brute"
PILLAGER: "Pillager"
PUFFERFISH: "Pufferfish"
RABBIT: "Rabbit"
RAVAGER: "Ravager"
SALMON: "Salmon"
SHEEP: "Sheep"
SHULKER: "Shulker"
SILVERFISH: "Silverfish"
SKELETON: "Skeleton"
SLIME: "Slime"
SPIDER: "Spider"
SQUID: "Squid"
STRAY: "Stray"
STRIDER: "Strider"
TROPICAL_FISH: "Tropical Fish"
VINDICATOR: "Vindicator"
WITCH: "Witch"
WITHER_SKELETON: "Wither Skeleton"
ZOGLIN: "Zoglin"
ZOMBIE: "Zombie"
ZOMBIE_VILLAGER: "Zombie Villager"
ZOMBIFIED_PIGLIN: "Zombified Piglin"
#---------------------------------------------------
# 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
spawner-in-use:
message: "&c[!] Other player is currently using this spawner! Please wait."
prefix: false
type: ACTION_BAR
sound: block.note_block.pling
# Message for accessing spawner when it's protected by an external plugin
spawner-protected:
message: "&c[!] This spawner is protected!"
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
no-items:
message: "&cThere are no items to sell in the spawner."
prefix: true
type: CHAT
sound: block.note_block.pling
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-sellable-items:
message: "&cNo items can be sold from this spawner."
prefix: true
type: CHAT
sound: block.note_block.pling
sell-failed:
message: "&cFailed to sell items! Please try again."
prefix: true
type: CHAT
sound: block.note_block.pling
#---------------------------------------------------
# Spawner Stacking/Unstacking
#---------------------------------------------------
hand-stack:
message: "�E689[✔] Successfully 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 Experience Collection
#---------------------------------------------------
exp-collected:
message: "&#d6e7edCollected &a%exp%&#d6e7ed experience points!"
prefix: true
type: CHAT
exp-collected-with-mending:
message: "&#d6e7edUsed &a%exp-mending%&&#d6e7ed experience points to repair items! Collected &a%exp%&&#d6e7ed experience points!"
prefix: true
type: CHAT
no-exp:
message: "&cThere is no experience to take!"
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
#---------------------------------------------------
# GUI Titles
#---------------------------------------------------
gui-title:
menu: "%entity% Spawner"
stacked-menu: "%amount% %entity% Spawner"
stacker-menu: "Spawner Stacker"
loot-menu: "Spawner Storage"
#---------------------------------------------------
# Main Menu GUI
#---------------------------------------------------
spawner-loot-item:
name: "&#FCD05C&lLoot Storage"
lore:
chest: |
&8â–ª &#FCD05CSlots: &f%current_items%&7/&f%max_slots%
&8â–ª &#FCD05CStorage: &a%percent_storage%&a%&f full
&#FCD05C➜ &7Click to open storage
spawner-info-item:
name: "fc3f7&lSpawner Info"
lore:
spawner-info: |
&8â–ª Qd4faEntity: &f%entity%
&8â–ª Qd4faRange: &f%range% &7blocks
&8â–ª Qd4faStack Size: &f%stack_size%
&8â–ª Qd4faMob Rate: &f%min_mobs% &7- &f%max_mobs%
&8â–ª Qd4faSpawn Delay: &f%delay%&7s
&8â–ª Qd4faNext Spawn: &e
Qd4fa➜ &7Click to open stack menu
lore-change: "&8â–ª Qd4faNext Spawn: &e"
lore-inactive: "&cSpawner is inactive!"
lore-now: "&cNow!"
lore-error: "&cError! Please replace the spawner."
exp-info-item:
name: "�F898&lStored Exp: &e%current_exp%�F898"
lore:
exp-bottle: |
&8â–ª �E689Current: &e%current_exp%&7/&e%max_exp% &7XP
&8â–ª �E689Stored: &e%percent_exp%&e% &7XP
�E689➜ &7Click to collect XP
#---------------------------------------------------
# Spawner Stacker GUI
#---------------------------------------------------
button:
name:
spawner: "fc3f7%entity% Spawner"
decrease-64: "&c-64 Spawners"
decrease-16: "&c-16 Spawners"
decrease-1: "&c-1 Spawner"
increase-64: "&a+64 Spawners"
increase-16: "&a+16 Spawners"
increase-1: "&a+1 Spawner"
lore:
remove: |
&7Click to remove %amount% spawner
&7from the stack
&7Current stack: &e%stack_size%
add: |
&7Click to add %amount% spawner
&7to the stack
&7Current stack: &e%stack_size%
spawner: |
&8â–ª Qd4faEntity: &f%entity%
&8â–ª Qd4faStack Size: &f%stack_size%
&8â–ª Qd4faMax Stack Size: &f%max_stack_size%
Qd4fa➜ &7Click to return main menu
#---------------------------------------------------
# Spawner Storage GUI
#---------------------------------------------------
navigation-button:
previous:
name: "Qd4faPrevious Page"
lore: |
Qd4faClick to go to page %target_page%
next:
name: "Qd4faNext Page"
lore: |
Qd4faClick to go to page %target_page%
page-indicator:
name: "&#ffd700Page [%current_page%/&#ffd700%total_pages%]"
lore: |
&7Total Items: &f%current_items%&7/&f%max_slots%
shop-page-indicator:
name: "&#ffd700Sell All Items"
lore: |
&8â–ª &#ffd700Total Items: &f%current_items%&7/&f%max_slots%
&8â–ª &#ffd700Storage: &a%percent_storage%&a%&f full
&#ffd700➜ &7Click to sell all items
return-button:
name: "&#ff6b6b Return to Main Menu"
take-all-button:
name: "�E689Take All Items"
equipment-toggle:
name: "&#f4d842Equipment Drops"
lore:
enabled: |
&7Status: &a&lAllowed
disabled: |
&7Status: &c&lBlocked
#---------------------------------------------------
# Spawner List GUI (Command)
#---------------------------------------------------
spawner-list:
gui-title:
world-selection: "೗A9&lSpawner List"
page-title: "{world} &r- [{current}/{total}]"
world-buttons:
overworld:
name: "&a&lOverworld"
lore: |
&8â–ª &7Total spawners: &a{total}
&a➜ &7Click to view Overworld spawners
nether:
name: "&c&lNether"
lore: |
&8â–ª &7Total spawners: &c{total}
&c➜ &7Click to view Nether spawners
end:
name: "&5&lThe End"
lore: |
&8â–ª &7Total spawners: &5{total}
&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 given spawners 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!"
Commands
Aliases: /ss
, /spawner
, /smartspawner
Command | Description | Usage | Permission |
---|---|---|---|
/smartspawner reload |
Reload the SmartSpawner plugin settings | /smartspawner reload |
smartspawner.reload |
/smartspawner give |
Gives a spawner to a player or yourself | /smartspawner give <player> <mobtype> <amount> |
smartspawner.give |
/smartspawner list |
Opens the spawner list GUI for admin management | /smartspawner list |
smartspawner.list |
Permissions
Permission | Description | Default |
---|---|---|
smartspawner.* |
Grants access to all SmartSpawner permissions | op |
smartspawner.reload |
Allows reloading the SmartSpawner plugin | op |
smartspawner.give |
Allows giving spawners to yourself or other players | op |
smartspawner.list |
Allows accessing the spawner list command | op |
smartspawner.stack |
Allows stacking spawners | true |
smartspawner.changetype |
Allows changing spawner type using spawn eggs | true |
smartspawner.break |
Allows breaking spawners | true |
smartspawner.sellall |
Allows selling items in the spawner storage GUI | true |