
Why SmartSpawner?
Say goodbye to entity lag forever. SmartSpawner calculates mob drops and XP virtually - no actual mobs spawn, no AI processing, zero pathfinding eating your tick. This plugin is inspired by the iconic spawner mechanic from DonutSMP now available on your own server.
Perfect for: Survival servers • Skyblock • Prison • Factions • Any server where spawners matter
Main Feature Showcase
|
|
Advanced Spawner GUIIntuitive GUI system that makes spawner management simple, with quick controls, clear metrics, and easy handling of drops and experience |
Spawner StackingOptimize performance with smooth spawner stacking. Players can easily stack spawners via right-click or manage them precisely through a dedicated GUI. |
|
|
|
Bedrock FormUI SupportNative Floodgate integration. Bedrock players get beautiful, mobile-friendly form menus instead of chest GUIs. No extra configuration needed! |
Admin Spawner ManagementYour all-in-one admin panel for managing every spawner on the server. Instantly teleport to any spawner, inspect detailed data, and make real-time adjustments such as editing stack sizes or removing spawners with ease. |
|
Highlighted Features
| Feature | Description |
|---|---|
| Spawner Holograms | Floating text displays above every spawner showing mob type, stack count, and real-time status - always visible at a glance. |
| Hopper Integration | Hoppers automatically drain items from spawner virtual storage into adjacent containers, enabling fully automated farming pipelines. |
| Mineable Spawners | Fully configurable breaking mechanics - require Silk Touch to drop spawners, set custom drop chances, and tailor the behavior to perfectly fit your server's rules. |
| Database Support | Supports both MySQL/MariaDB and SQLite for spawner data storage. MySQL mode enables cross-server data sync, making it ideal for networks and multi-instance setups. |
| Fully Configurable | Every message, GUI layout, and mob loot table is customizable. All mob types with individually tunable drop tables, prices, and more. |
| Plugin Compatibility | Auto-detects and integrates with 20+ popular plugins - economy (Vault, CoinsEngine), shops (EconomyShopGUI, ShopGUI+,...), protection (WorldGuard, Towny, Lands,..), SkyBlock (SuperiorSkyblock2, BentoBox), and more. View full list → |
Localization
Want to contribute or update a translation? Open a Pull Request →
| Language | Status |
|---|---|
| 🇺🇸 English | ✅ Latest |
| 🇩🇪 German | v1.6.7 |
| 🇻🇳 Vietnamese | ✅ Latest |
| 🇨🇳 Chinese (Simplified) | v1.2.3 |
| 🇮🇹 Italian | v1.3.5 |
| 🇹🇷 Turkish | ✅ Latest |
Statistics
Over 3,000+ Minecraft servers trust and using SmartSpawner for their spawner management needs. The plugin has proven to be reliable and efficient, making it a popular free choice among server administrators
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
|
R
v1.5.7.1
|
18h ago | 1 | |||
|
R
v1.5.7
|
18h ago | 1 | |||
|
R
v1.5.6.2
|
18h ago | 1 | |||
|
R
v1.5.6.1
|
18h ago | 1 | |||
|
R
v1.5.6
|
18h ago | 1 | |||
|
R
v1.5.5
|
18h ago | 1 | |||
|
R
v1.5.4.3
|
18h ago | 1 | |||
|
R
v1.5.4.2
|
18h ago | 1 | |||
|
R
v1.5.4.1
|
18h ago | 1 | |||
|
R
v1.5.4
|
18h ago | 1 | |||
|
R
v1.5.3
|
18h ago | 1 | |||
|
R
v1.5.2
|
18h ago | 1 | |||
|
R
v1.5.1
|
18h ago | 1 | |||
|
R
v1.5.0
|
18h ago | 1 | |||
| 18h ago | 1 | ||||
|
R
v1.4.0.2
|
18h ago | 1 | |||
|
R
v1.3.9
|
18h ago | 1 | |||
|
R
v1.3.8
|
18h ago | 1 | |||
|
R
v1.3.7
|
18h ago | 1 | |||
|
R
v1.3.6
|
18h ago | 1 | |||
|
R
v1.3.5
|
18h ago | 1 | |||
|
R
v1.3.4
|
18h ago | 1 | |||
|
R
v1.3.3
|
18h ago | 1 | |||
|
R
v1.3.2
|
18h ago | 1 | |||
|
R
v1.3.1
|
18h ago | 1 | |||
|
R
v1.3.0
|
18h ago | 1 | |||
|
R
v1.2.9
|
18h ago | 1 | |||
|
R
v1.2.8
|
18h ago | 1 | |||
|
R
v1.2.7
|
18h ago | 1 | |||
| 18h ago | 1 | ||||
|
R
v1.2.6
|
18h ago | 1 | |||
|
R
v1.2.5.2
|
18h ago | 1 | |||
|
R
v1.2.5.1
|
18h ago | 1 | |||
|
R
v1.2.5
|
18h ago | 1 | |||
|
R
v1.2.4
|
18h ago | 1 | |||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 | ||||
| 18h ago | 1 |
- Opening a spawner's storage while another player was using it could leave the menu stuck open with its ghost items takeable. In creative mode those items were kept. The player now stays on the spawner menu with a "storage in use" message.
### Added
- Custom spawners: any number of extra spawners for the same mob or item, each with its own loot, set up under
custom_spawners. They stack only with each other and are given by their own name. display_namegives a spawner its own name on the item, in menus and on the hologram, so players can tell custom spawners apart.- Each spawner can have its own menu head and drop chance. A custom spawner takes anything it leaves out, except loot, from the normal spawner of its mob or item.
- A custom spawner can be renamed without losing the ones already placed by listing the old name under
aliases. - The console warns about spawner names that clash, and about placed spawners whose spawner was removed from the settings files.
### Changed
/ss giveis shorter:/ss give <player> <spawner> [amount], for example/ss give Steve zombie 5. Vanilla spawners use/ss give <player> vanilla <mob> [amount].spawner_mobs.ymlandspawner_items.ymluse a simpler layout. Each mob or item is listed under its own name, and custom spawners have their own section. See the details below.
### Notes
- Both settings files are converted on the first start, and the old files are kept with a
.1.8-backupending. Placed spawners and spawner items keep working and stack with new ones. No action is required. - The old give form (
smart_spawner,item_spawner,vanilla_spawner) still works from the console and command blocks, so shop, crate and vote setups need no changes.
<details>
<summary>Configuration file details</summary>
- Entries are keyed by the mob or item itself:
zombie_spawner:withentity: ZOMBIEbecomeszombie:, anddiamond_spawner:withitem: DIAMONDbecomesdiamond:. - Entries that were not named after their mob or item move under
custom_spawners, keeping theirentityoritemline. - New optional keys on every entry:
display_nameandaliases. - Spawner names now match the entry keys, so
zombie_spawneriszombiein commands. The old names are still accepted.
</details>
- This release fixes a critical item duplication exploit. Update as soon as possible.**
### Fixed
- Item duplication in the spawner storage menu involving multiple players with Autism Client.
- Clicking items quickly in the storage menu no longer floods chat with "clicking too fast" and "inventory full" messages.
### Added
- Spanish (es_ES) language.
- Sulfur Cube spawner support for servers on Minecraft 26.2. Its spawner drops no items and gives 2 experience.
### Changed
- Happy Ghast, Copper Golem and Sulfur Cube now show a translated name in every language.
- Breaking a spawner and placing a new one at the same spot no longer triggers a database save error. Spawner data now saves reliably in this case.
### Changed
- Spawners that store tools, weapons or armor with different durability now save using less database space.
- Sorting items in the storage menu is faster.
- When a claim or region plugin blocks an action on a spawner, only that plugin's own message shows. SmartSpawner no longer adds a second protection message on top.
- GriefPrevention now uses separate trust levels for each action. Breaking or placing a spawner needs build trust, while opening a spawner's storage menu only needs container trust.
### Notes
- Spawner storage now uses a more compact save format. Existing data is read and upgraded automatically, and no action is required.
- This release contains several breaking changes.** Back up the
plugins/SmartSpawner/folder before updating. The give commands changed shape, spawner settings files were renamed and are not carried over, YAML storage and the Bedrock form menus were removed, and several config keys moved. Read the Removed and Notes sections below before updating a live server.
### Added
- Custom spawners can now be created. The same mob or item can be set up under several names, each with its own drop table, so one entity can power many different spawners.
- Custom items can now be spawner drops, including potions, enchanted gear, named items and items from other plugins. They keep all of their data and show their real in-game name in every menu.
/ss editloot <name>opens an in-game loot editor for mob and item spawners. Drop an item into the menu to add it as a drop, captured exactly with all of its data, then set its amount, chance and durability. Existing drops can be edited or removed. Durability is shown only for tools and weapons.- Sneak stacking and sneak placing can each be turned off with
sneak_stackandsneak_placeinconfig.yml. Both stay on by default.
### Fixed
- Item Spawner holograms now show the spawned item's name instead of a generic entity label.
- Sneak-placing a whole stack of spawners now fires the stacking event in the API, so it can be cancelled and limited like normal stacking.
- A spawner type change cancelled through the API no longer takes the player's spawn egg.
### Changed
- Give commands now put the player first, as
/ss give <player> smart_spawner|item_spawner|vanilla_spawner, and only suggest names of online players. Thespawnertype was renamed tosmart_spawner. Smart and item spawners are still selected by their configured name. - SQLite is now the default storage and is faster than the old YAML files on servers of any size. MySQL and MariaDB work as before, including cross-server spawner listing.
- How often spawner data is saved can now be set with
database.autosave-interval, which defaults to 3 minutes. - Large spawner stacks and full storages use far less CPU and memory. Loot generation, storage menus, hoppers and selling were all reworked to stay fast with large amounts of items.
- Menus respond faster to clicks.
- Settings that only take effect after a full restart are now marked RESTART in
config.yml. - Selling and action logging settings moved into clearer files, and the
databasesection was simplified. Existing settings move across automatically on the first start. See the details below. - The two spawner settings files were renamed and loot entries use a new format. See the details below.
### Removed
- YAML storage was removed. Servers still set to
YAMLare switched toSQLITEautomatically. - Bedrock form menus were removed. Bedrock players now use the same chest menus as Java players, and the
bedrock_supportsection ofconfig.ymlis gone. - The stacker menu was removed, along with the admin stack editor in
/ss list. Spawners still stack by placing one spawner on another of the same type, controlled by thesmartspawner.stackpermission.
### Notes
- Spawner settings are not carried over.** The two renamed files are created fresh in the new format, and the old files are left untouched beside them so customised drop tables can be copied across by hand. The console reports this on the first start.
- Spawner data is migrated automatically.
spawners_data.ymlis renamed tospawners_data.yml.migratedso nothing is imported twice. - Back up the
plugins/SmartSpawner/folder before updating. The plugin also copies the old data inside the database before converting it. - If the database cannot be opened, the plugin stops instead of running without saving. The console reports the reason.
- Every renamed config key is migrated on the first start, so no config file needs editing by hand after updating.
<details>
<summary>Configuration file details</summary>
spawners_settings.ymlis nowspawner_mobs.yml, anditem_spawners_settings.ymlis nowspawner_items.yml.- Each loot entry names its item on an
itemline. It accepts a material, the item text/givecompletes in game, or a code copied from the game. - The name above each entry is now only a label, so one mob can drop several versions of the same item, such as two different tipped arrows.
- The old format, where the entry name doubled as the material name, is no longer read. The
materialline in item spawner entries was removed with it. - The
potion_typeline was removed. Name the potion insideiteminstead. - The spawner block head moved to
mob_head, withitemfor the material andhash_texturefor the texture code. It replaceshead_texturewithmaterialandcustom_texture. - The
default_materialline was removed. The fallback head is now built in. - A loot entry the server cannot read is skipped, and the console names the mob and the entry.
- The guide in the comments at the top of both files was replaced with a link to the documentation site.
- The storage button in the main menu now accepts the
{total_sell_price}placeholder, showing the sell value of everything stored, as the info button already does. discord_logging.ymlis nowactivity_log.yml, and theloggingsection ofconfig.ymlbecame itsfilesection. Both moves happen on the first start and keep the configured values.- Inside that file the Discord settings sit under
discord, and the per-event message templates sit underembeds, one block per event with theembedline removed. - The
sell_integrationsection ofconfig.ymlbecame the top level ofsell_integration.yml, so its keys lost thesell_integration.prefix.item_prices.ymlbecame thecustom_prices.pricessection of that file and is deleted once its prices have been copied across. - A price removed from
custom_prices.pricesstays removed and is not added back on the next start. - The
databasesection was flattened and its keys now use hyphens.modeistype,table_prefixistable-prefix,server_nameisserver-name,sync_across_serversissync-across-servers,migrate_from_localismigrate-from-local,sqlite.fileissqlite-file, and the foursqlconnection keys moved up a level. sql.pool.maximum-sizeis nowpool-sizeand covers both storage modes. The other pool tuning keys andsqlite.pool_sizewere removed and are set internally.- The new
database.autosave-intervalaccepts the usual time format, with a minimum of 30 seconds. It is the only setting in the section that/ss reloadapplies. - Database columns were shortened:
world_nameisworld,item_spawner_materialisitemspawner_type,spawner_expisexp,spawner_activeisactive,spawner_rangeisactivation_range,spawner_stopisstop,spawn_delayisdelay, andmax_spawner_loot_slotsismax_loot_slots.entity_typekeeps its name. - Columns are now grouped by subject in the table, so location, spawner type, stacking, spawning, stored loot, stored experience and player settings each sit together.
- The
server_namecolumn was removed. A table now holds one server's spawners and says which in its name, so the column held the same value on every row. - With
sync-across-serverson, this server's table is<prefix><server-name>_datainstead of<prefix>data. Switching the setting renames the table, and an existing table at the target name is never overwritten.
</details>
- GUI layout button changes now persist correctly after a restart or
/ss reload, including moved and deleted buttons. - Clicking the sell button in an empty storage no longer returns to the main menu. Stored experience is collected when available; otherwise, the storage empty message is shown.
- Updated the bundled
sell_confirm_gui.ymllayouts to the current click-action format, preventing unnecessary value migrations on fresh installations. - DonutSMP storage titles now use the correct singular or plural form and remain consistent after pagination or refreshes.
- Dynamic storage lore placeholders, including
{total_sell_price}and{current_exp}, are now replaced correctly.
### Notes
- Previously restored buttons must be moved or deleted once after updating.
- Customized button sections no longer receive new bundled buttons automatically. Other layout settings continue to update normally.
- Delete a layout file and restart the server to restore its default content
- Removed mob drops in
spawners_settings.ymlare no longer restored after a restart or/ss reload. - Removed message components, such as chat messages, action bars, sounds, titles, and subtitles, are no longer restored automatically.
### Removed
- Removed generation of the outdated
language/CHANGELOG.txtfile.
### Notes
- Previously restored drops or message components must be removed once after updating.
- Customized drop lists and messages are preserved, while entirely new mobs and messages are still added with their default content.
- Existing
language/CHANGELOG.txtfiles are left unchanged and can be removed safely. - GUI and formatting language files retain their previous update behavior.
- Added FactionsUUID support. Spawners now respect faction access rules when opening menus or stacking.
- Added BlockLocker support. Spawners protected by
[Private]signs now restrict menu access, stacking, and breaking to authorized players.
### Changed
- Config and language files now update automatically while preserving existing values and comments.
- Update backups are no longer created because configuration changes are applied in place.
- Obsolete
config_versionentries are now removed automatically.
- Fixed a crash that could happen when breaking a vanilla spawner that had no mob type set. This no longer throws an error and the spawner now breaks normally.
- Fixed an error that could appear in the console when a Bedrock player (via Floodgate/Geyser) opened a spawner menu or storage on Folia based servers. Menus now open reliably for these players.
- Removed the "Server Version Not Supported" warning message. It was showing up incorrectly on newer supported server versions and is no longer needed.
- Update notifications will no longer mention SmartSpawner2 versions (2.0.0 and above). SmartSpawner2 is a separate product, so 1.x servers will only be notified about relevant 1.x updates.
### Added
- Re-added RedProtect support. Spawners inside RedProtect regions now respect region permissions again when opening menus or stacking spawners.
### Notes
- This is a maintenance release focused on stability. No configuration changes are required to update.
- Fixed
sell_and_xp_breakpreventing players from breaking a spawner when its
now always succeeds - auto-sell and XP collection remain a best-effort bonus.
- Fixed the configured
open_soundnot playing whenskip_main_guiopens the
### Compatibility
- Updated EconomyShopGUI integration to API 1.10.1.
- Updated Towny integrations to their latest supported versions.
- Introduced GUI layout API with support for dynamic layouts and buttons.
- Enhanced natural spawner drop chance loading and added configurable open sound for GUI.
- Added global default drop chance configuration for natural spawners.
- Enhanced sell functionality to include experience collection with combined messaging.
- Added comprehensive Vietnamese language support, updated spawner messages, and improved configuration documentation.
- Added Turkish language support across configuration and language files.
- Refactored language file handling and updated metrics integration.
- Refactored GUI button actions and sound configurations to improve overall user experience.
- Fixed SuperiorSkyblock2 permission hook integration.
- Updated repository references from NighterDevelopment to OpenVdra.
### What's New
- Added support for
custom player-head textureson buttons in the main and storage GUIs. - Custom textures can be applied to navigation, storage, experience, sorting, selling, and other configurable GUI buttons.
- Added a dedicated GUI layout guide with examples for configuring custom textures and conditional button styles.
### Improvements
- Improved spawner removal from management menus, including spawners located in unloaded chunks.
- Related menus now close automatically when a spawner is removed, preventing players from interacting with outdated inventories.
- Improved the reliability of stacking and admin management actions while a spawner is being modified or removed.
- Improved nearby-spawner highlight cleanup and session handling.
- Refreshed the documentation website with clearer navigation, updated branding, and improved readability.
### Compatibility
- Updated compatibility with newer SimpleClaimSystem releases.
- Updated compatibility with plugins using the latest NightCore release.
### Developer API
- Added
removeSpawner(String spawnerId)to remove a SmartSpawner by its unique ID. - Added
removeSpawner(Location location)to remove a SmartSpawner at a specific location. - Both methods return a
CompletableFuture<Boolean>and complete after the spawner block and stored data have been removed, including when its chunk must be loaded first.
### Fixes
- Fixed the
en_US_DonutSMP_v2language pack not being included under the expected resource path, which caused missing-resource warnings and prevented its language files from loading. - Prevented overlapping spawner actions from causing inconsistent spawner data.
- Prevented explosions and manual breaking from interfering with spawners already being removed.
- Improved menu behavior when a managed spawner is no longer available.
### What’s New
- Added configurable drop chances for Smart Spawners and natural spawners.
- Added an option to control sneak-breaking of spawner stacks.
- Added customizable button images for Bedrock Form UI.
- Spawner item names and lore can now be customized per entity.
- Added dedicated language customization for cross-server management GUIs.
### Improvements
- Completely redesigned the language system with cleaner formatting, fewer small caps, less duplication, and more consistent messages.
- Improved item processing and overall performance.
### Fixes
- Fixed large values loading incorrectly from YAML files.
- Fixed the sell confirmation menu on Folia and Canvas.
- Various stability and consistency fixes.
### Important
- Minecraft server versions below **1.21.5 are no longer officially supported**.
- Built-in German and Vietnamese language packs have been deprecated.
- Please review custom language and configuration files when updating.
### New
/ss set CommandAdded a new admin command to quickly update SmartSpawner properties in-game.
Admins can now set:
- Stack size
- Spawn range
- Spawn delay
The command can be used on the spawner the player is looking at, or with exact world coordinates for console/admin use.
### New Performance Settings
Added new performance options for loot generation. These settings help large stacked spawners run more smoothly by using a faster calculation method when extremely large amounts of loot are generated.
This is enabled by default and is recommended for most servers.
## Improvements
### Better Loot Generation Performance
Large spawner stacks now handle loot generation more efficiently, reducing heavy processing during big spawn cycles while keeping results realistic over time.
### Improved Item Giving Behavior
The
/ss give command now handles full inventories more reliably. If the player does not have enough space, extra items will be dropped safely at their location instead of being lost or handled incorrectly.### Clearer Configuration
The selling configuration has been renamed and reorganized to make it easier to understand.
The old
custom_economy section has been replaced with sell_integration, which better describes what the feature is used for.## Compatibility Changes
### ExcellentEconomy Support
SmartSpawner now supports ExcellentEconomy for storage selling.
CoinsEngine support has been replaced by ExcellentEconomy.
### Shop Integration Updates
ExcellentShop integration has been removed.
Supported shop integrations now include:
- EconomyShopGUI
- EconomyShopGUI Premium
- ShopGUI+
- zShop
## Important Notes
- SmartSpawner now requires Java 25 or newer.
- Existing sell-related configuration values are migrated where possible.
- A new permission has been added:
smartspawner.command.set.
- Auto-Sell & XP Claim on Spawner Break**
- Version 26.x Support**
### Improvements
- Experience Fields Migrated to
longType**
int to long, significantly increasing capacity and precision for high-volume or long-running servers.### Bug Fixes
- Fixed: Spawner Disappearing When Surrounded by Blocks**
- Fixed: Money Stacking Up with GUI Open on Full Storage**
- Fixed: Drop All Button Dropping Items in Inconsistent Directions**
- Fixed: Placeholder Errors in Some Embeds Not Displaying Information**
### Removed
- RedProtect Integration Removed**
- Fixed selling items from spawner occasionally not working as expected.
- Fixed the confirm sell UI in DonutSMP to better match the DonutSMP visual style.
### New Features
- Added mob head button to display spawner infos inside Spawner Storage GUI.
- Added new
DonutSMP_v2spawner GUI layout.
### Changes
- Renamed language file from
DonutSMPtoen_US_DonutSMP. gui_config.ymlentries are now separated into their own respective layout files, making per-layout customization much cleaner.- Various other language/locale string adjustments - see
CHANGELOG.txtfor full details.
### Removed
- Removed item translation entries from
items.yml. Item names are now built viatemplateKeyand rendered client-side for much better performance and full compatibility with all in-game Minecraft translated languages.
### Bug Fixes
- Resolved plugin crash introduced in v1.6.3 when running on Minecraft 1.21.4 and below.
- Fixed hook integration with the **Residence** protection plugin.
- Enhanced explosion protection logic to correctly handle non-destructive explosions.
but never actually destroy blocks. Spawner data is now always preserved for these explosion
types, regardless of the
protect_from_explosions config value.### New Integrations
- Added support for **HuskClaims** land-claim plugin.
- Added support for **SimpleClaimSystem 2**.
- (Thanks to Xyness, the plugin author, for the contribution.)*
### Performance
- Optimized the selling process for improved throughput and transaction security.
###
/ss near [radius] CommandAdded a new command that scans for nearby spawners within a specified radius and highlights them through walls. All discovered spawners are displayed in a dedicated GUI for easy management.
### Collect XP Button in Storage GUI
A new **Collect XP** button has been added directly to the spawner storage GUI, allowing players to collect accumulated experience without opening a separate menu.
### Centralized Discord Logging Configuration
Discord logging is now fully configurable through a dedicated
discord_logging.yml file. Each embed can be individually customized, giving server administrators complete control over the appearance and content of Discord notifications.### Language Changelog Files
Added language changelog files to make it easier for users to maintain and update their custom language translations across versions.
### New API Events
- SpawnerTakeAllEvent** - Fired when a player clicks the "Take All" button in the spawner storage GUI.
- SpawnerDropAllEvent** - Fired when a player clicks the "Drop All" button in the spawner storage GUI.
## Bug Fixes
- SimpleClaimSystem (Paid Version)** - Fixed a crash that occurred when using the paid version of SimpleClaimSystem. SmartSpawner now only hooks into the free version of SimpleClaimSystem. ([#185](https://github.com/NighterDevelopment/SmartSpawner/pull/185))
- Memory Leak in Sell Operation** - Fixed a memory leak caused by
itemToRemovenot being properly cleared during sell operations in the spawner inventory. - ExcellentShop Sell Prices** - Fixed sell prices not being loaded correctly when ExcellentShop is used as the price provider.
- Spawner Loss on Stack Limit Reduction** - Fixed a bug where reducing the maximum stack limit would delete spawners that exceeded the new limit. Spawners are now properly preserved when the limit changes.
- Spawner Item Floating Near Bedrock** - Fixed an issue where broken spawner items would float upward into a cave pocket above the player when mining near bedrock with no block directly behind the spawner.
## Improvements
- Discord Logging Performance** - Optimized the Discord logging system to reduce overhead and improve overall server performance when logging is enabled.
- Improved overall performance between spawners and hoppers, resulting in smoother and more efficient operation.
## Bug Fixes
- Fixed an issue in the GUI config where the right-click action could not be changed, now works as expected.
- Fixed a bug where XP could not be collected after clicking "Sell All & Collect XP" when no items were available to sell.
- Fixed broken developer API links in the documentation and bumped the API version to reflect the latest changes (1.6.2).
- Optimized sell operation performance to prevent server crashes when processing large quantities of items in spawner storage
### Bug Fixes
- Fixed placeholders not updating correctly in storage GUI title when performing actions (page changes, loot spawn, etc.)
- Resolved placeholder formatting issues for:
{entity},{ᴇɴᴛɪᴛʏ}{amount}
- Fixed an issue where item spawners with different item types could be incorrectly stacked together
- Fixed wiki link references for mob drops in
spawners_settings.ymlto point to correct documentation - Fixed wind charges converting smart spawners to vanilla spawners when
protect_from_explosionsis disabled - Fixed
NoClassDefFoundErrorwith CoinEngine API - Fixed unbreakable tools breaking after mining a certain number of spawners
## New Features
- Added support for Minecraft 1.21.11
- Added new mob spawners:
- Parched
- Camel Husk
- Nautilus
- Zombie Nautilus
## Bug Fixes
- Fixed the error causing "zip file closed" on Minecraft 1.21.4.
## Updates
- Updated the Developer API with additional methods for modifying and retrieving spawner's stats.
https://nighterdevelopment.github.io/smartspawner-docs/developer-api/api-data-access/
## Changes
- Removed chunk spawner limiter** - This feature has been temporarily removed from the core plugin and will be re-implemented as a separate addon to improve overall performance
## Bug Fixes
- Fixed shift-place spawner** - Resolved an issue where players would lose their entire stack when shift-placing spawners if the max stack size config was less than 64 items
- Fixed storage item consumption bug** - Resolved incorrect item amount when using the "Take All" button in spawner storage
- Fixed race condition exploit** - Added lock protection to spawner breaking/mining operations to prevent potential race condition exploits
## Performance Improvements
- Optimized storage GUI rendering for better performance
- General performance enhancements to improve plugin efficiency
- Note: The chunk spawner limiter will return as a separate addon in a future update with enhanced performance optimizations.*
## Critical Dupe Patched
- Fixed item duplication exploit caused by race condition in VirtualInventory synchronization with storage GUI
## Technical Details
The exploit involved using two game instances with swarm mode (custom mod) to create a race condition between spawner inventories. This has been completely patched by:
- Synchronizing inventory operations across all connected clients
- Adding transaction verification before committing item changes
- Implementing proper locking mechanisms for concurrent access
- All users running v1.5.4.3 or lower should update immediately.**
## 🐛 Bug Fixes
- Fixed:** Possible item duplication issue with "Take All" and "Drop Page" buttons
- Found by:** @Raczain (Autism Inc.)
This dupe has not been fully confirmed but has been patched as a precautionary measure. We recommend updating to this version to prevent potential exploits.
## 🎯 What's New
### ✨ New Feature: Item Spawners
#### What are Item Spawners?
- New spawner type** with the appearance of a specific item in the spawner block
- All the same features as regular spawner spawners (storage, stack, etc.)
### 📝 Configuration
#### New Item Spawner Settings File
- Added
item_spawners_settings.ymlfor full control over item spawner behavior - Customize spawn loots, experience, and other settings
- New command:
/ss give item_spawner <player> <item_type> [amount]
### 🔧 Bug Fixes
#### Fixed Storage GUI Page Display Issues
- Problem**: When you removed items from your spawner storage, the page counter at the top would sometimes show weird placeholders like
[{current_page}/{total_pages}]instead of the actual page numbers like[1/1] - What fixed**:
- Page numbers now always display correctly when you take items out of storage
- When your spawner generates loot while you have the storage open, the page counter updates properly
- The GUI title now always shows the right page you're on and total pages available
### 🛡️ Security & Performance Improvements
#### Added Anti-Spam Protection for Storage GUI
- What this means**: We've added a short cooldown (half a second) between opening and closing your spawner storage
- Why this helps**: Prevents issues with cheater try to spam-click or use macros in GUIs
- Your experience**: You won't even notice this - it only blocks actions that happen too fast to be intentional
#### Optimized Storage Title Updates
- What changed**: The plugin now only updates the page counter when it actually needs to (like when moving between pages)
- Benefit**: Better performance, especially if you have many items in storage
### 🔌 Developer Features
#### New API Methods for Custom Spawners
Plugin developers can now create:
- Vanilla Spawners**: Natural spawners that spawn mob
- Item Spawners**: Special spawners with the appearance of a specific item in the spawner block
## 📋 Summary
This is a major feature update! We've introduced **Item Spawners** - a completely new way to use spawners for automatic item generation. Plus, we fixed annoying storage GUI display bugs, added protection against spam-clicking, and improved overall performance.
- Upgrade highly recommended**: New features + important bug fixes and stability improvements.
## ✨ New Features
### Version Support
- Added Minecraft 1.21.10 Support** - Full compatibility with latest Minecraft version
### New Spawner Config
- Copper Golem Spawner** - Added support for Copper Golem spawner in 1.21.10
## 🐛 Bug Fixes
### Spawner Mechanics
- Fixed Cycle Skipping** - Resolved issue where spawners would skip a cycle after stack size updates (stacking or destacking)
- Fixed Hopper Integration** - Hoppers now continue working correctly after spawner stacking operations
- Fixed Low TPS Issues** - Spawners no longer stop spawning loot when server TPS drops
- Spectator Mode Fix** - Spectator players can no longer activate spawners
## 🛡️ Security & Stability
### Critical Fixes
- Fixed Item Duplication Exploit** - Implemented comprehensive item duplication exploit patch with transaction locking and atomic operations for "Drop All" and "Take All" buttons in spawner storage GUI
- Enhanced Exception Handling** - Added exception catching to prevent plugin shutdown when other plugins crash, ensuring SmartSpawner continues to load even if other plugins fail
## 🎨 Configuration Changes
### Placeholder System Update
- New Placeholder Format** - Changed from
%placeholder%to{placeholder}syntax - Added Percentage Placeholders** - New percentage-based placeholders available in holograms and spawner info buttons
> ⚠️ **Important**: You must update your language folder. Backup your current language files and either:
> - Delete the language folder to let the plugin regenerate it with new format, or
> - Manually update placeholders if using custom language files
### Configuration Migration
- Migrated from
mob_drops.ymltospawners_settings.yml** - Consolidated configuration structure - Customizable Mob Head Textures** - Users can now edit mob head texture displays directly in spawner GUI settings
## ⚡ Performance Optimizations
### Spawner System
- Optimized Range Checking** - Significantly improved performance of spawner range detection
- Enhanced GUI Updates** - Streamlined spawner GUI view updates with reduced meta calls and improved placeholder handling
- Loot Spawn Optimization** - Enhanced loot spawning efficiency with scheduled spawn time tracking and early loot addition
### User Experience Improvements
- Accurate Countdown Timer** - Spawner delay now counts down correctly from configured time to 00:00 (e.g., 25s → 00:25 to 00:00)
- Smoother GUI Experience** - Pre-spawner loot processing for faster, smoother GUI timer performance
- Prewarm Head Texture Cache** - Reduced GUI latency by preloading mob head textures
## 🔧 Bug Fixes
### Fixed Folia Server Errors
- Fixed critical error** that caused the plugin to throw errors on Folia servers when checking for ghost spawners
- The plugin now properly works with Folia's multi-threaded system
- Ghost spawner checks are now thread-safe and won't cause server errors
### Automatic Ghost Spawner Checks Removed
- Removed automatic ghost spawner cleanup** that ran every 5 minutes to improve server performance
- Use
/ss clear ghost_spawnerscommand whenever you want to manually clean up ghost spawners
## ✨ Improvements
### Customizable Storage GUI Title
``
yaml
# Before:
gui_title_storage: '򅊮ꜱᴘᴀᴡɴᴇʀ ꜱᴛᴏʀᴀɢᴇ'
# After:
gui_title_storage: '򅊮ꜱᴘᴀᴡɴᴇʀ ꜱᴛᴏʀᴀɢᴇ - [%current_page%/%total_pages%]'
`
- Storage GUI title is now fully customizable** through the language files (
gui.yml`)### Better Storage GUI Experience
- Fixed page display bug** - When taking all items from storage, the page number now updates correctly
### Performance Optimizations
- Storage GUI now updates faster and uses less server resources
- Reduced unnecessary operations when browsing through storage pages
## Bug Fixes
### Fixed Loot Not Spawning Issue
- Sometimes spawner would skip spawn cycles even though the timer reached zero.
### Fixed Total Price Showing $0
- The total price display in the spawner menu would sometimes show $0 even though items were worth money (selling still worked correctly). The display now properly refreshes to show the correct accumulated value.
## Hotfix Release
### 🐛 Bug Fixes
- Fixed timer reaching zero without spawning items**
- Resolved an issue where newly created spawners would occasionally fail to spawn items when the timer reached zero
- Only affected spawners created after the previous update
- Existing spawners from earlier versions were not impacted by this bug
### 📝 Notes
This is a critical hotfix addressing spawn failures in new spawners. If you're experiencing this issue, please update immediately to restore proper functionality.
## 🐛 Bug Fixes
### UI & Display
- Fixed
%time%placeholder flickering** when clicking sell/claim exp on the info button in the spawner menu - Improved hologram stability** - Holograms now properly clean up after server restarts and chunk reloads, preventing ghost holograms from accumulating
### Chunk Limit System
- Fixed initialization bug that could affect spawner chunk limits
### Third-Party Compatibility
- Updated SuperiorSkyblock2 integration to use better API methods
- Added Residence plugin support** for region protection compatibility
## ✨ New Features
### 📊 Comprehensive Logging System
A powerful new logging system to track all spawner activities and player interactions:
- Core Features:**
- Zero Performance Impact** - Fully asynchronous with automatic batch writing every 2 seconds
- Flexible Storage** - Choose between JSON or human-readable formats with automatic file rotation
- Granular Control** - Enable/disable specific events from 21 different event types
- Discord Integration** - Beautiful rich embeds with color-coded events and player avatars
- What Gets Logged:**
- Spawner lifecycle (place, break, explode)
- Stacking operations (hand, GUI, destack)
- GUI interactions (main menu, storage, stacker)
- Economy actions (XP claims, selling items)
- Storage management (take all, drop, sort, filters)
- Commands (player, console, RCON - captures ALL admin actions)
- Entity type changes
- Log Output Examples**
- Human-Readable:** (.log)
[2025-10-12 18:30:45] Spawner placed | Player: Steve | Location: world (100, 64, 200) | Entity: ZOMBIE | quantity=1
[2025-10-12 18:31:20] Command executed by player | Player: Admin | command=give full_command=/ss give Steve zombie 5
[2025-10-12 18:32:10] All items taken from storage | Player: Steve | items_taken=64 items_left=0
`
- JSON:** (.json)
`json
{"timestamp":"2025-10-12 18:30:45","event_type":"SPAWNER_PLACE","player":"Steve","player_uuid":"069a79f4-44e9-4726-a5be-fca90e38aaf5","location":{"world":"world","x":100,"y":64,"z":200},"entity_type":"ZOMBIE","metadata":{"quantity":1}}
{"timestamp":"2025-10-12 18:31:20","event_type":"COMMAND_EXECUTE_PLAYER","player":"Admin","player_uuid":"069a79f4-44e9-4726-a5be-fca90e38aaf6","metadata":{"command":"give","full_command":"/ss give Steve zombie 5"}}
{"timestamp":"2025-10-12 18:32:10","event_type":"SPAWNER_ITEM_TAKE_ALL","player":"Steve","player_uuid":"069a79f4-44e9-4726-a5be-fca90e38aaf5","location":{"world":"world","x":100,"y":64,"z":200},"entity_type":"ZOMBIE","metadata":{"items_taken":64,"items_left":0}}
`
- Discord Webhook Features:**
- 🎨 Color-coded embeds organized by event category
- 👤 Player skin/head thumbnails via https://mc-heads.net/
- ⚙️ Fully customizable titles, descriptions, and fields
- 🛡️ Rate limiting protection (Discord API compliant)
- 🔄 20+ placeholder variables for custom formatting



and more...
### Hologram Placeholders
Two new percentage-based placeholders are now available for hologram customization:
%percentage_storage%% - Displays storage capacity as a percentage (e.g., 75.5%)%percentage_exp%% - Displays experience capacity as a percentage (e.g., 50.0%)
### New Commands
/ss clear holograms**Kill all text display holograms from the server Useful for cleaning up hologram displays after configuration changes or when holograms get stuck Permission: smartspawner.command.clear
/ss clear ghost_spawners**Automatically detects and removes broken spawners without physical blocks Runs asynchronously to prevent server lag Provides detailed feedback on the number of spawners cleaned Permission: smartspawner.command.clear
### Permission Updates
All command permissions now use a consistent .command prefix:
smartspawner.command.use - Main command access (replaces smartspawner.admin)smartspawner.command.reload - Reload configurationsmartspawner.command.give - Give spawners to playerssmartspawner.command.list - Access spawner list adminsmartspawner.command.hologram - Toggle hologramssmartspawner.command.prices - View spawner pricessmartspawner.command.clear` - Clear holograms and ghost spawners### Configuration Updates
- Updated mob_drops.yml** - All mob drop rates have been corrected based on official Minecraft Wiki data. We recommend updating your configuration file to benefit from these accuracy improvements.
## ⚡ Performance Improvements
This update includes significant performance optimizations:
- Improved spawner range checking** - Now runs most calculations efficiently and asynchronously
- Reduced server load** - Optimized entity spawning process to use fewer resources
- Better memory usage** - Spawners now handle entity creation more efficiently, reducing memory allocation
- Faster chunk operations** - Optimized how the plugin interacts with world data
These changes should result in smoother gameplay, especially on servers with many spawners.
- Important:** If you're upgrading from an older version, please review the permission changes and update your permission plugin accordingly. The new logging system is enabled by default but can be disabled in the configuration.





