Description
XenDrops (formerly CustomDrops) is an advanced, region-based drop customization plugin — and it's completely free.
As a server owner, I wanted full control over what blocks and mobs drop, without breaking vanilla building blocks or affecting drops server-wide. I searched for a plugin that did this well... and couldn't find one. So I built it myself.
The core idea: XenDrops lets you customize block and mob drops and control where those drops apply — set them to a specific region, or make them global. You can even configure the same block or mob to drop different loot in different regions, blacklist specific worlds, and fine-tune everything through an extensive settings system — all from an in-game GUI.
🆕 XenDrops Conditions & Actions
XenDrops now supports conditions and actions through the optional Xenith library — add requirements before a drop triggers (e.g. item-in-hand checks) and run follow-up effects (messages, commands, chance/mine-speed modifiers, and more).
This is completely optional. If you don't need conditions or actions, you don't need to install anything extra — XenDrops runs perfectly fine on its own.
Actions support is currently awaiting Spigot approval. If you'd like early access while that's pending, join the Discord and we'll get you set up.
Features
- Active development for the next year
- Block, Mob, and Fishing Drops
- Reward Damagers — reward every player who damages a mob, not just the killer
- Custom Block Breaking Speeds — configure custom mining speeds for specific drops and regions
- Custom Particles — display particles on blocks and mobs with custom drops only to players who can receive the drop
- Conditions & Actions (optional, via Xenith)
- Per-region or global drops — make the same block/mob drop different loot depending on location
- Fully GUI-based — never touch a config file
- Doesn't cancel break/kill events — stays compatible with other plugins
- Per-drop/loot/action/condition permissions — restrict individual content
- Per-drop/loot/action/condition chances — fine-tune from 0.1% to 100%
- Searchable GUIs — search blocks, mobs, particles, and more
- Per-drop actions:
- Player message
- Console command (supports
%player%) - Player command
- Per-drop item conditions:
- Player item stack
- Player item type
- Player item name
- ...and more
- Per-drop settings:
- Vanilla drops
- Auto inventory
- Silk touch
- XP amount
- Placed-block drops
- World blacklist
- Fortune/Looting
- ...and much more
- Configurable Auto-Save — automatically save changes at your chosen interval
- Easy to set up, fast to load
- So many more features — try it out in-game!
Leave a review if XenDrops works well for your server — it really helps! ⭐
| Command | Permission | Description |
|---|---|---|
/cd |
drops.cd |
Open the main menu |
/cd reload |
drops.reload |
Reload the plugin |
/cd debug item |
drops.debug.item |
Debug the item in your hand |
/cd report <title> <description> |
drop.report |
Send a report |
/cd create <id> [dropType] [material] |
drops.create |
Create a drop |
/cd edit <id> |
drops.edit |
Edit a drop |
/cd list |
drops.list |
List all drops |
/cd loot create |
loot.create |
Create loot |
/cd loot edit <id> |
loot.edit |
Edit loot |
/cd loot list |
loot.list |
List all loot |
/cd region wand |
drops.region.wand |
Get the region selection wand |
/cd region create <id> [material] |
drops.region.create |
Create a region from your selection |
/cd region delete <id> |
drops.region.delete |
Delete a region |
/cd region edit <id> |
drops.region.edit |
Edit a region |
/cd region list |
drops.region.list |
List all regions |
/cd region teleport <id> |
drops.region.teleport |
Teleport to a region |
/cd region outline <id> |
drops.region.outline |
Toggle a region's outline |
/cd condition create <id> |
drops.condition.create |
Create a condition (needs Xenith) |
/cd condition list |
drops.condition.list |
List conditions (needs Xenith) |
/cd action create <id> |
drops.action.create |
Create an action (needs Xenith) |
/cd action list |
drops.action.list |
List actions (needs Xenith) |
<> = required, [] = optional.
Information and Support
DISCORD WIKI
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
|
A
Hotfix
|
13h ago | 1 | |||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
|
B
Bug Fix
|
13h ago | 1 | |||
| 13h ago | 1 | ||||
|
B
Hotfix
|
13h ago | 1 | |||
| 13h ago | 1 | ||||
|
B
Hot Fix
|
13h ago | 1 | |||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 | ||||
| 13h ago | 1 |
- Choose what happens when your inventory is full.** Each drop has a new "Full Inventory" setting in its settings menu. Click it to switch between:
- Drop on the ground**: anything that doesn't fit lands at your feet, the same as before.
- Stop drops**: only what fits in your inventory drops. This includes normal Minecraft drops.
- Server owners can set the default for all drops in the config.
## Improvements
- Smarter inventory checks.** A full inventory still picks up an item if you already have a stack of it with room. For example, you can keep collecting wool while your wool stack isn't full.
- Auto-inventory works better when your inventory is nearly full.** It fills every stack it can, and only the extra goes to the drop's Full Inventory setting.
- Shared mob kills are fairer.** When several players damage a mob, its normal drops are checked against the killer's inventory.
- Choose what happens when your inventory is full. Each drop has a new "Full Inventory" setting in its settings menu. Click it to switch between:
- Drop on the ground: anything that doesn't fit lands at your feet, the same as before.
- Stop drops: only what fits in your inventory drops. This includes normal Minecraft drops.
- Server owners can set the default for all drops in the config.
- Addon Manager. Install and update CustomDrops addons without leaving the game. Open it with /cd addons or the new Addons button in the main menu.
- Xenith adds conditions and actions for drops and loot.
- BlockHardness adds custom mining speeds for blocks. It needs ProtocolLib, and the menu warns you if that's missing.
- Each addon shows whether it's installed and if an update is available. Click to install or update, then restart the server to finish.
- Requires the drops.addons permission.
Improvements
- Smarter inventory checks. A full inventory still picks up an item if you already have a stack of it with room. For example, you can keep collecting wool while your wool stack isn't full.
- Auto-inventory works better when your inventory is nearly full. It fills every stack it can, and only the extra goes to the drop's Full Inventory setting.
- Shared mob kills are fairer. When several players damage a mob, its normal drops are checked against the killer's inventory.
Fixes
- Fixed an error that some unusually named loot entries could cause.
- Drop & Loot Boosts**
- Start drop/loot boosts with
/cd boost create: boost the chance of loot dropping, or how many items drop - Boost everyone, a single player, or attach a boost to a permission, for 30 minutes, a week, or forever
- Boost all drops, one drop, or one loot item
- Mining**
- Blocks with a custom mine speed can be mined faster with better tools (customizable materials), Efficiency, and Haste.
- Requires* [*newest version of BlockHardness*](https://modrinth.com/plugin/blockhardness-library)
- Tool speeds are configurable, so any tool/item will work.
- Requires* [*newest version of BlockHardness*](https://modrinth.com/plugin/blockhardness-library)
- Menus**
- The drop list now shows each drop's type, what it triggers on, its loot count, regions, and permission at a glance
- Tidier Block Drop settings layout
- Tab completion for loot IDs when editing loot
- The drop list always opens now, even when a drop is missing its blocks or mobs
- When you duplicate drops, they no longer share loot, regions, or settings with the original, and no longer show the wrong name
- Drops**
- Bag drop mode could fail to drop anything when there was no player involved, such as a mob dying naturally
- Loot chance boosts are now counted properly when picking loot in bag mode
- Older Servers**
- Opening the drop list no longer errors on versions without colored bundles
- New
config.ymlFormat**
``
yaml
Auto-Save:
# How often (in minutes) changed drops, loot and regions are saved to file.
# Data is always saved on a normal shutdown, but a crash or killed server skips that.
# 0 = save immediately whenever something changes
# -1 = never auto-save (only on shutdown or with the save button)
interval-minutes: 5
Particles:
# Shows each drop's particle (set in the drop's settings menu) on nearby blocks/mobs,
# only to players who could get that drop there (permissions, regions, world blacklist,
# placed blocks, spawn reason blacklist).
enabled: true
# Default for how often particles are shown, in whole ticks (20 ticks = 1 second).
# Each drop can override this with its own interval (Particle button, Shift-Right-Click).
interval-ticks: 20
# How far from each player (in blocks) to look for drop blocks
block-radius: 6
# Max blocks per player that show particles each interval
max-blocks-per-player: 30
# How far from each player (in blocks) to look for drop mobs
mob-radius: 16
Global-Drop-Defaults:
permission: "empty"
xp: -1
vanilla-drops: false
auto-inventory: false
bag-drop-mode: false
ignore-chances: false
# Syntax: ["global", "test", "test1"]
auto-add-regions-by-id: ["global"]
BlockDrop-Defaults:
placed-drops: true
silktouch: false
fortune: true
break-speed: -1.0
# When a drop with a custom break-speed applies, vanilla mining is frozen in that area.
# Whether blocks without a custom break-speed can still be mined there (used for global drops;
# regions have their own setting)
allow-normal-mining: true
MobDrop-Defaults:
natural-death-drops: true
looting: true
breeding-drops: false
# Syntax: ["CUSTOM", "SPAWN_EGG", "BREEDING"]
# Use: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
spawn-reason-blacklist: []
reward-all-damagers: false
Loot-Defaults:
permission: "empty"
chance: 100.0
Region-Defaults:
permission: "empty"
# List of valid material names:
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
display-material: "BEACON"
ignore-blacklist: false
# Default for new regions: whether blocks without a custom break-speed can still be mined
allow-normal-mining: true
``- CustomDrops Update**
- Drop Particles**
- Drops can show particles on their blocks and mobs, only to players who can get the drop there
- Custom colour dust particles, including dust that fades into a second colour
- Set particle, amount, speed, and spread per drop
- New particle options in config.yml, light on performance
- Search**
- Search in the block, mob, particle and spawn reason menus
- Mine Speed**
- Per-region Allow Normal Mining setting for custom mine speed areas
- Players without a drop's permission can't mine its custom speed blocks
- Mine speed no longer overrides other plugins' break speed changes
- Mining was frozen in any region, not just custom mine speed ones
- Players stuck with 0 break speed after a crash are fixed on join
- Saving**
- Configurable auto-save
- Loot added to or removed from drops wasn't saved
- Loot edits weren't saved until shutdown
- Deleted loot stayed in loot.json
- Mob Drops**
- Player-kill-only drops no longer drop when mobs die naturally
⚠️ PLEASE READ BEFORE UPDATING
Welcome to XenDrops.
Formerly known as CustomDrops, XenDrops represents a complete rewrite of the plugin built on top of the Xenith framework.
This is a MASSIVE recode and is currently considered ALPHA software.
Breaking Changes
ALL EXISTING DROPS MUST BE RECREATED
Migration from previous CustomDrops versions is NOT supported.
Due to extensive architectural changes, existing drops, loot tables, conditions, actions, and plugin data are incompatible with XenDrops.
Please back up your server before upgrading.
Version Support
OLDER MINECRAFT VERSIONS ARE NO LONGER SUPPORTED
Minecraft 1.16 support has been dropped.
Only Minecraft 1.21.1 has been tested.
Testing has not been extensive and bugs should be expected during the alpha phase.
Xenith Integration
ALL ACTIONS AND CONDITIONS HAVE BEEN MIGRATED TO XENITH - OPTIONAL
XenDrops now uses Xenith for all actions and conditions, providing:
A more powerful condition system
A more flexible action framework
Better maintainability
Cross-plugin compatibility with future Xenith-powered plugins
Faster feature development moving forward
✨ New Features
Damage-Based Loot Restrictions
Restrict rewards based on player damage contribution.
Configure minimum participation requirements before rewards are granted.
Reward Distribution Improvements
Option to reward all qualifying participants instead of only the highest damage dealer.
Loot
You can now reuse loot across drops!
Region System Rework
Complete redesign of the region system.
Improved region management tools and menus.
Region Outline Renderer
Brand-new cuboid outline rendering system.
Improved visualization accuracy and performance.
Async Material Processing
Asynchronous material lookups for improved performance.
Improvements
Modernized Drop Engine
Complete rewrite of the internal drop architecture.
New DropContext-based handling system.
Improved scalability and maintainability.
Loot Chance Calculations
Reworked loot chance calculations using threshold-based processing.
Debugging Tools
Improved debugging and reporting capabilities.
Data Management
Improved save handling and dirty-state tracking.
Better overall reliability.
Fixes
MANY MANY MANY bug fixes!! All the bugs that I knew existed in the previous versions are now fixed.
Loot Management
Fixed loot deletion issues.
Fixed loot cleanup when removing references.
Fixed loot saving issues.
Block Drops
Improved block drop handling logic.
Fishing (NEW)
Fixed fishing drops not triggering correctly.
Fixed drops triggering from player-thrown items.
Permissions
Reworked permission handling.
Updated configuration to support disabled permission states.
Potential Fix → Items sometimes drop with NBT data preventing them from stacking/being recognized by other plugins... Hopefully, it's actually fixed this time.
and some other bug fixes!
Old files should automatically convert and be backed up. Old data will be found in the CustomDrops folder named: "placedBlocks-old.json"
Save the old file in case of any issues with the new format or conversion to report to me in [Discord](https://discord.vanixmc.com/)!
Fixed → Chat modification plugins causing certain chat prompts to break
- items teleporting up blocks when dropped in tight spots (test and report issues)
- fix /cd list missing next button
Potential Fix | Items being changed when dropped (not stacking or being recognized in shops, etc.)
Fix | Bugs with new region loading and id system
- Fix** | World blacklist not working properly.
Due to my horrible personal GitHub practices, I may have re-introduced a bug or two with this jar. Please report them to my discord :)
For now, the exp won't be taken into account though!
``
YML
Global-Drop-Defaults:
permission: "customdrops.drop"
xp: -1
# Fortune/Looting
enchant-multiplier: false
auto-inventory: false
auto-add-global-region: true
# Syntax: ["test", "test1"]
auto-add-regions-by-id: []
BlockDrop-Defaults:
placed-drops: false
silktouch: false
vanilla-drops: false
MobDrop-Defaults:
natural-death-drops: true
Loot-Defaults:
permission: "customdrops.loot"
chance: 100
Region-Defaults:
permission: "customdrops.regions"
# List of valid material names: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
display-material: "BEACON"
``- Change Log**
- Add Block mining speed setting to block drops. This requires my new BlockHardness plugin and ProtocolLib.
- Add Auto-Inventory setting for all drops.
- Add new config options to control all default settings when it comes to drop creation.
- Add cancel option to chat prompts.
- Add papi placeholder parsing to actions.
- Add support for entities with no spawn egg (check out wiki for more info).
- Add natural death drops to mobs and a setting to disable natural death drops.
- Update ItemMatchCondition.
- Fix Loot/action chances not loading properly.
- Fix Vanilla Drops being removed when drop isn't in region.
- Fix Loot action's chances not saving at all.
- Fix Actions not staying deleted after server restarts.
- Fix console warning spam for command creation.
- Fix double chances not working (specifically below 1).
- Change requirement to shift-right-click drop to delete it to prevent accidental deleting of drops.
- Fix error with actions if you don't have PAPI installed.
- Tons of other features, bug fixes, and code improvements that I forgot about.
- Refactored and greatly improved plugin code as a whole.
- Improved file saving and loading.
- MANY bug fixes including but not limited to:
- Drop/Region file saving, loading.
- MobDrop won't delete bug.
- Dupe glitch with world-protection plugins (like worldguard and towny).
- Mobs now drop custom drops when dying naturally as well as when killed.
- Basically just worked a lot on cleaning up the code. This will allow me to be able to maintain and add new features to the plugin more easily. I also focused on fixing the bugs brought up in the discord server.
+ NEW Drop-Amount option exclusive to Weighted-Bag drop mode
+ NEW Ignore-Chances setting for both drop modes
More info for all of these settings can be found here.
Also fixed issues with mob drops not functioning like block drops and not executing the actions provided to them. Please report bugs to the discord, the plugin is still in beta and may not work as intended.
