OtherDrops

Make anything drop anything, anyhow!
Minecraft 1.7 features (click)!!
OtherDrops allows you to add anything from a simple "glass drops glass" or mob rewards, to a complex overhaul of your servers drops with drops differing depending on tools, biome, time, weather and much more, along with custom messages, actions and commands.
OtherDrops is lightweight* (it only acts on what you configure) and respects most protection plugins (eg. WorldGuard, Regios) settings. Many examples are included that you can enable and/or customize as you wish.
Getting Started (tutorials)
- Install & setup first custom drops
- Customising mob & block drops
- Customising money & XP rewards
- Customising fishing rewards
- Customising mob spawns
Core Features
- Drop anything!* (*from Bukkit - if it doesn't, let me know)
- Use triggers such as block break, combat, fishing & more
- Conditions to fine-tune your drops such as tool, world, regions, weather, permissions & more
- Add actions including damage, healing, messages, potion effects & more
- Easy syntax allows you to quickly customize drops & rewards for your server
- Future Support
- Where-ever possible the official Bukkit lists are used so OtherDrops supports all current and future:
- blocks, items, mobs, enchantments, potion effects, biomes,
- spawn reasons, tree, villager professions, cat & skeleton types
- Support for special item data:
- Custom names & lore text
- Enchanted weapons & armour (or add random enchantments)
- Enchant anything with unlimited levels (dirt with level 30 damage?)
- Enchanted books with any enchantment
- Written books (wtih custom title/author/pages)
- Leather armour colors
- Custom fireworks colors
- Skull types & custom player heads
- Support for special mob data:
- Custom names, HP (health) & equipment for any mob
- Baby animals (all "Ageable" mobs - chicken, cow, pig, zombie etc)
- Tame wolves (including collar color) or cats (& different cat types)
- Sheep colors (and sheared/unsheared)
- Villager professions, villager zombies, powered creepers & agressive level for pig-zombies
- Wither skeletons, Slime & lava-slimes of any size
- Economy support (via Vault)
- Support for all major economy plugins (see Vault project page)
- Players can gain, lose or steal money based on fixed amount or percentage
- Compatible with "MoneyDrop" to drop physical money items.
Conditions
- Multi-world support - create separate files to handle each world
- Add super rare drops with chance values down to 0.000000001%
- Specify tools required (or a list of tools eg. [any sword, -diamond sword])
- Lorename, Heroes (class & level) conditions
- Cooldowns
Actions
- Apply actions alongside the drop (or even without a drop)
- Damage tools and/or consume items (eg. use dyes to color wool)
- Damage or heal the victim, player or even the whole world
- Apply potion effects to the victim, player, radius, world or server
- Display custom messages (or a list of messages with one selected at random)
- Create explosions, lightning, visual effects (including particles), sound effects
- Run commands
Ideas
- Give leaves various chances of dropping apples, sticks, cocoa beans, saplings, etc on break and/or leaf decay.
- Make glass, stairs, and boats reclaimable (can be tool-specific if you wish).
- Allow gold and iron to be mined directly into ingots with a golden pickaxe.
- Allow users to right-click on cobblestone with vines in hand to turn the cobblestone mossy.
- Nerf mob traps by disabling drops from environmental damage.
- Unleash the zombie apocalypse by setting zombies to drop zombies when they die! (This can be world-specific.)
- Make mobs that don't normally spawn naturally spawn.
- Make mob spawning, drops, and events biome specific!
Documentation
Dev Builds
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Help Wanted
Would you like to help improve OtherDrops? Here are some ways to get involved:
- Media/art: OtherDrops could really do with some tutorial and example videos.
- Testers: Testers who are able to go through the plugin and rigorously check that things (both existing and new features) work as they should. PM Zarius your Skype (or other IM) details if you're interested or jump on the IRC channel.
- Programming: any assistance is welcomed - see the todo list here for some ideas. Anyone with refactoring and/or automated testing experience that wants to assist would be great.
Thanks
Many thanks to these people who helped with OtherDrops:
- Cyklo: creator of the original OtherBlocks. OtherDrops is a continuation of Cyklo's original OtherBlocks (2011) plugin.
- Celtic Minstrel: many code commits and a major overhaul of the code moving into version 2.0. Moved on to create DropFactory.
- Rofang: major update of OtherDrops documentation.
- RugRats13: lots of testing and some documentation.
- Faldonboy & Steelsouls: currently maintaining and improving the documentation.
- CommodoreAlpha: community support on the comments/forum, assisting with documentation.
Many long nights are spent improving OtherDrops so if you like it please consider a donation to my coffee fund :) 
- OtherDrops uses Metrics for anonymous usage stats (learn more).

-
View User Profile
-
Send Message
Posted Feb 16, 2012I've fixed the "getItem() is null" issue but need to head off for a couple of hours - will post a new version as soon as I can.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@do6star
Thanks for the extra info - I might try testing with an empty inventory (I think I always had something) and see if I get the error. I can bump the error up to verbosity high if it bugs people too much too but I'd rather determine the cause of the error first :)
-
View User Profile
-
Send Message
Posted Feb 15, 2012Getting the same problem as WGMasterMPH:
getItem() is null. With only me on the server, I get it as well as others when they are on. It's when im not holding anything and my inventory is completely empty. I am running craftbukkit from the spoutpeople.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@ZariusT
I had already changed wheat to CROPS at the time of posting. Thanks for your help. You do a great job of supporting your plugin.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@jaredlivingstone
Please note that WHEAT should be CROPS (I created the alias in error - WHEAT refers to the item you get from CROPS and make bread from). For the final stage of crops use CROPS@RIPE - sorry should have put that in my first example. See the Entity List page for full details on items/blocks you can drop or utilise.
I'll test the leaf decay dropping nothing tonight.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@ZariusT
I get no errors on startup. Reloading says "OtherDrops config reloaded."
I changed WHEAT and SEED to their correct terms so now they work. Unfortunately you can destroy a crop at any period of its life and you will receive the drops.
The trees still drop apples and saplings. When a leaf decays console spits out:
-
View User Profile
-
Send Message
Posted Feb 15, 2012@kahlilnc
Yup, check out the documentation on effects (on the Parameters page). Here's a simple example:
-
View User Profile
-
Send Message
Posted Feb 15, 2012Could you right click with a item and make smoke come out as if that player was smoking a pipe? XD That is what I want this for.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@ZariusT
Doh, silly move in beta 5 with the wheat alias for crops, I broke using wheat as an item. Will remove that alias in next release tonight.
Just have to keep in mind that wheat is the item in hand and crops grow on the ground.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@WGMasterMPH
I just put that in Beta5 because otherwise you get a nullpointerexception. I have not actually been able to replicate the issue though so I'm not sure why it would occur (empty hands is Material.AIR, not null).
With those "random" players are you able to find out what they did and/or what they are holding when the message came up?
-
View User Profile
-
Send Message
Posted Feb 15, 2012Getting a lot of this messages in console:
[WARNING] [OtherDrops:2.3-beta5] onPlayerInteract: getItem() is null - what it the player holding? Skipping event. Player=XXX
Where "XXX" stands for a random(?) player.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@jaredlivingstone
Right at the bottom of the file? Did you see any errors on startup? What do you see in the console when you type /odr? Also, perhaps put verbosity on normal or high (in the otherdrops-config.yml file) and reload the config - should show more messages.
Tested ok for me but I did notice that WHEAT and SEED are invalid names (it's actually CROPS & SEEDS) so I've added them both as valid aliases and they'll work in 2.3-beta5.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@ZariusT
I put those into the otherdrops-drops.yml file and they don't do anything. Is there a step I am missing? I tried changing the priority to highest but that made no difference.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@Jadedwolfs
Ninja'd your post? :D Hmm, I think there was a reason I didn't use ores (as I prefer dropping the ores myself) - but the only thing I can think of at the moment is generating free stone blocks (put down ore, mine, turns to stone, get ore, put down ore, etc) which isn't the end of the world.
-
View User Profile
-
Send Message
Posted Feb 15, 2012@OdnsRvns
The example you gave will only drop stone, yes.
There is no need that I can think of that block damage and replacement are needed at the same time. Also look in the includes folder for od-ore_extraction.yml, this file has good examples of replacement and ore droppings. However I rather dislike them dropping the ingots so i do something like
IRON_ORE:
- replacementblock: STONE
drop: IRON_ORE
tool: [STONE_PICKAXE, IRON_PICKAXE, DIAMOND_PICKAXE]
EDIT: Never mind, zerius' got this. :P
-
View User Profile
-
Send Message
Posted Feb 15, 2012@OdnsRvns
Yes, that config will override the default. Using drop: STONE/50% will drop stone 50% of the time and default drop 50% of the time unless you override it by adding a drop: NOTHING - here's some examples:
There's no BLOCK_DAMAGED event - it's currently LEFT_CLICK, although I might make BLOCK_DAMAGED an alias for LEFT_CLICK so you could use either. Yes, you can use replacement with it, eg:
-
View User Profile
-
Send Message
Posted Feb 15, 2012Just quick questions.
IRON_ORE - tool: ANY drop: STONE
Can i use this to stop ores from being mined with this example? Will this example drop only stone or both stone and iron ore? Can i use replacement: with event BLOCK_DAMAGED and if so how?
-
View User Profile
-
Send Message
Posted Feb 14, 2012@owenftw
Thanks heaps for the donation - much appreciated and glad you like the plugin :) Tricky to balance wanting to make the plugin do everything and keeping it focused on the task of customising "drops" - I'll always consider suggestions though :)
In regards to player inventory management I found a couple of other plugins - "InventorySave" (hasn't been updated but someone commented that it still works a while back) and "ItemVoid" (someone noted a problem in the end of the thread, so might not work)
-
View User Profile
-
Send Message
Posted Feb 14, 2012@ZariusT
Ah okay. No worries :)
I have donated $5 cause this plugin is epic! First time iv felt like donating to a plugin xD
-
View User Profile
-
Send Message
Posted Feb 14, 2012@owenftw
It can't currently do that - you can set it to drop nothing when the player dies but they still wont keep the inventory - OtherDrops doesn't hook into any inventory events - just the death event.
@jaredlivingstone
Try this: