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 Apr 25, 2014@Varijon
I tried the MHF_<mob> thing, but because the new UUID thing, that wont work anymore.
As you can see in the code I posted, I have default there but the defaults don't drop. Just the custom ones.
-
View User Profile
-
Send Message
Posted Apr 25, 2014@asacavanagh
I think you can drop something like:
PIG_ZOMBIE:
- drop: skull_item@MHF_PigZombie
chance: 1%
Mojang has been kind enough to pre-create a few accounts with some useful skins.
Look on this page:
http://minecraft.gamepedia.com/Mob_head#Player_Heads
And for this question, this is how I do it:
PIG:
- drop: DEFAULT
- drop: DIRT
-
View User Profile
-
Send Message
Posted Apr 24, 2014@Faldonboy
Ah okay, thanks for the advice.
I will continue using this though. I find it funny watching primed tnt drop in front of players that have just killed a creeper and cooked pork dropping from pigman.
Also, as a side note, I don't seem to be getting the default drops from the mobs once I add something to that particular mobs drops using the "default" tag, just the custom ones are dropping. This is what I've got:
otherdrops:
PIG_ZOMBIE: [default, COOKED_PORKCHOP/1-3/40%]
ZOMBIE: [default, SKULL_ITEM@2/1/1%]
SKELETON: [default, SKULL_ITEM/1/1%,]
CREEPER: [default, SKULL_ITEM@4/1/2.5%, ENTITY_PRIMED_TNT/1/5%]
-
View User Profile
-
Send Message
Posted Apr 24, 2014@asacavanagh
Since other skulls don't actually exist you would have to find a player that has the same skin as the mob you want and use his name.
Other plugins such as Craftbook have their own built in skull drops for every mob and you can change the drop chance too. That might be easier then trying to have OtherDrops handle it.
-
View User Profile
-
Send Message
Posted Apr 24, 2014hi how do i stop people from farming ores? people have already figured out they can get a block break it over and over to get the rare drops then they sell it to the server
-
View User Profile
-
Send Message
Posted Apr 24, 2014Is there a way to get custom skull drops of other mobs rather than just the default ones (skeleton, creeper, zombie, witherskeleton & player)?
I'm trying to set it up so a PIG_ZOMBIE skull will drop at a low chance when you kill one.
Thanks :)
@The3ShotGod
For Oak Leaves, just use LEAVES or LEAVES@0.
Also, the grass I believe you want is LONG_GRASS@1.
LONG_GRASS by itself will give you a dead shrub.
http://dev.bukkit.org/bukkit-plugins/otherdrops/pages/entity-list/
-
View User Profile
-
Send Message
Posted Apr 22, 2014Hi I enjoy your plugin @ZariusT .
I am however having a couple difficulties.
How would I say Oak Leaves in the config "OAK_LEAVES?" ? If that the case it does not seem to work. Also "GRASS" can be tricky since it thinks you are talking about grass block.
-
View User Profile
-
Send Message
Posted Apr 22, 2014@Faldonboy
@CommodoreAlpha
@ colorcoding:
This works with UTF-8 encoding. Note how only lore lines are affected by encoding. The itemname takes & in any encoding and it works. Lorelines however work only with § in UTF-8. All other tests failed.
@water:
doesn't work. It still drops vanilla if you destroy the crops with water.
@soil/farmland:
Now the farmland itself isn't dropping dirt anymore, but the crops don't give a fuck and still drop vanilla. And only with a tool isn't possible either, since it just doesn't see the event. If it would, we wouldn't have a problem :) As a sidenote: Jumping on soil turning it to dirt also drops vanilla for the crops above.
@both of you:
I see otherdrops is open source and i might be able to get someone t fork it. Do you guys know your way around the code of otherdrops and willing to help that said person fix this problem and then maybe release an inofficial version or something? Can imagine it would take some time to understand the code without help.
@commodores sidenote:
I know, and there are multiple things affecting farming. But there is only so much one can do if simple drops don't apply to certain farm methods. I got plants dying while growing, but nerfing that one further portentially ends up in completely dead farming fields. And if not, it doesn't offset the drops which waaaayyy too much in vanilla.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@ZeEye
@CommodoreAlpha
Section symbol and ampersands both work but they each only work in certain file encoding. Try changing it from 1252(ANSI) to UTF-8 and see if it works. (I use 1252 and use ampersands personally).
So the crops thing is an interesting problem, it's not really a bug its just how MC and Bukkit handle things. I'm not sure if this will fix it(And your players might find it annoying if it does work) but you can try making it so that crops only drop things when broken with a specific tool(like a hoe, might as well give it a real use). Failing that, try making the block the crops are planted on not drop anything. I believe the block is called "FARMLAND" but double check that with the /od id command.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@deleted_8741347
Instead of using messages, have you tried using drops to test it? If the outcome for drops remains the same - that both drops occur regardless of the type of zombie - then there's probably something wrong.
But if both messages occur, but only the correct drop occurs, there might be another factor at play. I can only conjecture so much as to the nature of these types of issues, so it would help if you could reply back to this comment.
Have you tried using negations? For instance, instead of "spawnedby: SPAWNER", you could try "spawnedby: [SPAWNER, -NATURAL]".
@ZeEye
I'm glad you told me that the section symbol doesn't work - now I can probably add a warning in the documentation not to use it in place of ampersands. I would say colour codes in lores should work, but for some reason they aren't, and so I would normally think it's a bug. I do believe @Faldonboy, at some point, said that they worked for him, but my memory isn't that great these days. You could try asking him about this.
As for the second issue, it's because there's more than one way to remove a block. Breaking a block with your hands invokes the "BlockBreakEvent". OtherDrops reads for the "BlockBreakEvent" and modifies the drops based off of this. I'm assuming explosions pass the same, or a similar event that OtherDrops also reads for. It's somewhere in the javadocs on Bukkit, but I'm too lazy to look right now.
When a water flows "into" a block (or more accurate, displaces affected blocks with itself), that invokes the "BlockFromToEvent". The natural default on conditional parameters is that drops will only occur via "tool: BREAK" - that is, blocks destroyed via "BlockBreakEvent". You also need to specify blocks damaged by water, which would be "tool: DAMAGE_WATER".
As for breaking farmland blocks under wheat crops to get the vanilla drops, I don't know the name of this particular event, or if it's an event at all (that's passed through Bukkit). The thing is, when a "CROPS" block "breaks" after removing the soil underneath, it's not actually breaking - thus, it's not a "BlockBreakEvent". What happens is that breaking the farmland block updates the state of all blocks adjacent to it. Because vanilla Minecraft (in this case, your server) realises the "CROPS" block is actually "unsupported", it updates the block to become "AIR" (to destroy itself) and drop whatever items that vanilla mechanics mandate.
On a side note, if your server's integrity is pivotal on a few select features/mechanics, you might want to rethink how you're approaching the entirety of your server's design. I've had some rather unsavoury moments concerning problems like these myself. Instead of relying on one feature to make farming a difficult process, you could try a bundle of methods packed together. In short, there's always more than one way to solve a problem.
-
View User Profile
-
Send Message
Posted Apr 21, 2014@CommodoreAlpha
§ doesn't work. Throws an error into console.
However i have a biiiiiiiiiiiiiiiiig problem. So i am using otherdrops to nerf drops from farming to increase the challenge of the server. Here is an example:
Now the problem is, that if you break the block below the crop or if you use a waterbucket to harvest the crops then otherdrops doesn't kick in and everything drops vanilla. PLEASE tell me there is a solution for it. Otherwise I am so fucked^^
EDIT: Interesting enough if i destroy blocks with tnt then the otherdrops drops kick in.
-
View User Profile
-
Send Message
Posted Apr 20, 2014@CommodoreAlpha
I'm not sure that I've ever tried to use ranged data values, however I get that warning with a lot of other things, it's usually harmless and whatever is giving the warning is still working the way it's supposed to so I'd double check it to make sure it really isn't working.
It should only be "@" using "/" had some kind of problem before in yaml configurations.
-
View User Profile
-
Send Message
Posted Apr 20, 2014Hi, I'm having trouble using the spawnedby parameter. I'm using the following:
ZOMBIE:
- spawnedby: NATURAL
message: ["Test1"]
- spawnedby: SPAWNER
message: ["Test2"]
Every time I kill a zombie it prints both Test1 and Test2. I want to make it only say Test1 when its a natural zombie and Test2 when its a spawner zombie. Please help!
-
View User Profile
-
Send Message
Posted Apr 19, 2014@Faldonboy
Does using ranged data values on items work for you? For some reason, I get an "error" in my console whenever I try to specify something like "COCOA@0-3", saying that it's illegal data. I'm pretty sure it's correct though, as it's consistent with the documentation. Perhaps I'm just doing something wrong or using something deprecated.
Also, should specifying something like: "event: EXPLOSION/2/NOBREAK" work? For me, it doesn't work, but when I use "@" instead of "/" it works. I'm asking, because I'm wondering if I should label the use of "/" within such parameters as deprecated and non-functional.
-
View User Profile
-
Send Message
Posted Apr 18, 2014@ghr4
You have to specify the item's data-value. For example, "WOOL@1" would be orange wool. "WOOL" would be all types of wool. "WOOL@2" would be yet another colour of wool. To specify data-values on an item, just add "@<integer>" after the item's material name.
I'm not sure if using names instead of numbers work, but it wouldn't hurt to try - for example, "STAINED_CLAY@PINK" or "STAINED_CLAY@ORANGE".
@PratamaJr
Telling me it doesn't work, then offering sparse information won't allow me to help you. So I can only tell you to figure it out on your own 'till you offer me more information.
-
View User Profile
-
Send Message
Posted Apr 18, 2014DOESNT WORK!
Dirt not dropping
dirt: - drop: diamond/2
in drops.yml
not work
-
View User Profile
-
Send Message
Posted Apr 16, 2014@ZeEye
"Is it possible to distinguish between sunlight and normal light?" Short answer is no, because there's no such thing as sunlight. That's not a game mechanic to my knowledge.
When something is under direct sunlight, that's just a "concurrent condition", where two conditions are met:
For your colour-coding issue, try using section symbols instead of ampersands to see if that'll work. I believe colour-coding should work in item-lore, but for some reason, many people complain it doesn't, and none have reported back to tell me if using section symbols instead works (it should).
-
View User Profile
-
Send Message
Posted Apr 16, 2014As condition, is it possible to differenciate between sunlight and normal lightlevel?
Like crops growing better in direct sunlight: 10 (through glass) or 15 (only in full sunlight) than in light that emits from torches etc. ?
EDIT:
Also colorcoding in lorelines doesn't seem to work
the "This plant couldn't survive. Maybe next time..." gets shown in the standard purple text color instead of the with "&c" specified light red. The displayname coloring works however.
Any ideas?
-
View User Profile
-
Send Message
Posted Apr 15, 2014@highfaller
Use damage values. That's how I prevent all possible instances of "break-and-place" dupes on my server. (It's also how, unlike other plugins, I can use the looting enchantment to drop multiple ores without worrying about duplication.)
You might also want to consider using Item Renamer (requires ProtocolLib) to be able to distinguish between the same items with different damage values better, which can be handy.
Here's an example of what I'm talking about:
If that doesn't work, make sure that the drop is occurring correctly; as in, "DIAMOND_BLOCK@1" drops, and not just plain "DIAMOND_BLOCK@0". If only "DIAMOND_BLOCK@0" drops no matter what you try, it may be a vanilla mechanic restriction.
Anyhow, if you have any questions, feel free to ask. :)
@Faldonboy
Thanks for correcting me. ;)
-
View User Profile
-
Send Message
Posted Apr 15, 2014@highfaller
Maybe you could set right clicking a diamond block to break the diamond block and give 1 back? i think this is more possible than making the diamond blocks you get from one have no drops.