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 28, 2014@ZeEye
For your first part, I don't know if it's currently possible to do so - if not, it would be a great idea to make a ticket for.
I don't know if it's possible to specify a drop-group as a drop, but if it is, it would be possible to achieve this idea. You would need to test if this is true, though. Consider this:
Here, a drop group is being treated as an item, hence treating a list like curly braces around a list of items. I don't know if this works, though. If it doesn't please make a ticket with a request for the feature in such a way that dropgroups can be treated as drops themselves. If it somehow does work, though, then great, that's your solution. :)
As for potion effects applying to a radius around the victim rather than the attacker, I don't think it's currently implemented. Again, make a ticket for that. I do believe the "potioneffects:" parameter currently supports applying a radius, but only around the attacker (or do-er) rather than the victim (or receiver). If you're curious on how to apply a radius to the attacker, just specify the ".radius" extension, and add an extra "@<integer>" onto the arguments, and it should work out.
@KnifePlay
Here is a very helpful page outlining most, if not all the parameters currently available in OtherDrops. The "world:" parameter should be able to help you out there.
@iPerki
That's not intended behaviour, because your configuration looks fine. Could you set your "verbose" level to "extreme" and pastebin your log to me? Perhaps that'll help me get to the bottom of this. Also, remember to space your lines correctly. Your "ANY_CREATURE" line has no spaces, and your other lines have eight, for some reason.
Also, your config has a lot of redundancies which should be eliminated. I've taken the liberty of "cleaning it up":
-
View User Profile
-
Send Message
Posted Feb 28, 2014Hi.
Anyone could help. Problem is simple. When i use otherdrops for enchanted wepon, otherdrop aplies to all of them. Flag Uniqe just changed it to randomly choose from drops. I just don't want LOOT_BONUS_MOBS#1 to give me 200$ :/
Any ideas?
My code:
-
View User Profile
-
Send Message
Posted Feb 28, 2014I was wondering how to handle otherdrops to work per world using multi-world. Could I get a sample bit of could or ideally referred to some documentation.
- Thank You, KnifePlay
-
View User Profile
-
Send Message
Posted Feb 27, 2014@CommodoreAlpha
Thanks for the answer so far, the chests/mobs work like a charme now. However i can't see anything that ensures only one drop to happen within a dropgroup in http://dev.bukkit.org/bukkit-plugins/otherdrops/pages/drop-groups/
With the overall dropgroup chance it seems like it first rolls the dice for the dropgroup but then still rolls the dice for every drop within that independent from the others.
"flag:uniqe" seems to be wrong since it would always need to pass through one drop for others to happen, so the first drop would be picked a lot more than the last one as example. I want it based on chances per drop. (Unless of course i understood it wrong.)
I am looking for what {curly brackets} do, just in a list format like
And another final question:
in potioneffect.radius: How do i define the radius? and Second: Is it possible to apply that radius around the dying zombie rather than around the attacker? Because radius on attacker kinda defeats the purpose of radius :)
-
View User Profile
-
Send Message
Posted Feb 27, 2014@Alsiokowsky
This page could be helpful. The general format is this:
"Object~Name", where the object can be a block, item, or mob.@Mal2ksc
I can't find them myself (not in the changelog; I've yet to sift through the code), but you could try experimenting what the slots are. Try "body" or "chest" or "top" for the top armour, "legs" or something like that for the bottom armour, and "feet" for the boots. If those don't work, I don't know what will, but Faldonboy/ZariusT will probably know.
On a side note, if you find out (or if someone answers), I'll be sure to document it right away and link you to it for future reference.
@ZeEye
The "lorename" parameter was never intended as a condition for objects, only tools; you have to use
"ITEM~Name"to specify that a certain object must have "x" name for "y" effect to occur.The way OtherDrops reads your config is something like this: It sees the block "CHEST", but there's no name required for it, so the effects you specified apply to all chests. It then sees the "lorename:" parameter, but there's no "tool:" specified, so you're basically requiring that the nonexistent tool should be named whatever name you set it to in order for whatever effect you have specified to happen.
Now, what you want to do to "fix" your config is something like this. Take all the "lorename: <name>" lines, and move them to their respective
"CHEST~Name:"entries. It should work after that.As for outcomes and chances, see Drop Groups; it lets you have what is essentially "drops within drops". It's actually a pretty powerful concepts. Alternatively, you can use the "flag: UNIQUE" parameter to specify that the events of each entry are disjoint.
-
View User Profile
-
Send Message
Posted Feb 27, 2014How I can set name and lore?
-
View User Profile
-
Send Message
Posted Feb 27, 2014I get how to use eq:slot, but I can't for the life of me find a list of available slots. I know there is eq:head and eq:hands, but I also want to specify a monster dropping with NO ARMOR (but a resistance effect) so I want to specify "chest" and "legs" and "feet", whatever the terms for those are. Is there a list somewhere? I've Googled all over for "otherdrops eq:slot" but I have never seen any slots referred to other than "head" and "hands".
-
View User Profile
-
Send Message
Posted Feb 26, 2014i am trying to use lorename as a condition for blocks/mobs. So as example only chests with a certain name execute mob spawning commands. In our case it is used for loot chests.
following code is used:
or another example for an zombie:
so the code itself works, but it works for all chest, named or not. Now i am wondering if its even possible to use the lorename as a condition for blocks/mobs. And if so, how?
EDIT: on a side note, in the alias for the chests above. How can i ensure that only ONE of the commands gets executed? Picked based on the chances they have.
-
View User Profile
-
Send Message
Posted Feb 25, 2014@deleted_11934140
You're right, I did overlook the second kill & drop. This line here however:
* OnEntityDeath, before checks (victim: CraftPig)
is fired at the very top of the OnEntityDeath listener in OtherDrops. There is no other code being run before it so if you get that line twice (as you did) it means that Bukkit has fired two OnEntityDeath events which OtherDrops faithfully processes.
Perhaps try this config on a test server with only OtherDrops installed?
Regarding Towny this is likely an issue with the priority Towny is running at. OtherDrops runs at the "highest" priority which theoretically means that it should run _after_ any protection plugins. OtherDrops then checks if the event has been cancelled (eg. if a protection plugin says this block cannot be broken) and ignores it.
If however the protection plugin is also running at "highest" there's no way to tell which will run first and if OtherDrops runs first it cannot see the event as being cancelled. Protection plugins are supposed to run at lower priorities for this reason.
-
View User Profile
-
Send Message
Posted Feb 25, 2014@deleted_11934140
If this were a problem, we would be getting a ton of complaints. My guess? A plugin conflict. Some other plugin is interfering with damage/death events being fired, and OtherDrops is caught in the crossfire.
According to your log, twice:
Also, the plugin shouldn't need to support Towny specifically as it should naturally be compatible with all plugins that come with region protection. Else, people would be asking for WG support, Residence support, etc., but we haven't gotten any requests like that recently. Towny is probably doing something weird in how it protects regions compared to other protection plugins, but I don't really know. A better question you could have asked would have been, "Could you support protection plugins?" or "Why doesn't OtherDrops adhere to protection plugins canceling the BlockBreakEvent?" rather than "Could you support 'x' plugin (as opposed to any other plugin)?" When it comes to support for any number of plugins that do similar things, I would like OtherDrops to remain agnostic on that fact.
@BMWBrandon
Don't feel stupid. That's why we're here. :) (Also, I'm never on IRC, and never will be.)
Could you pastebin your otherdrops-config and all relevant drops files so I can look through them? If, for some reason, you cannot disclose it here in the comments, feel free to shoot me a PM, or even email me.
Judging from your description, that is definitely not intended behaviour, but I can't really make a diagnosis for your issue because I don't have much to go off of. Have you tried setting the zombies/zombie-pigmen to drop only "AIR" or "DIRT" with the override-loot option set to true?
-
View User Profile
-
Send Message
Posted Feb 24, 2014Ugh, I feel so stupid posting here, but I'm having issues and the IRC is pretty much empty >_<.
I am trying to override the Default drops from Zombie Pigmen and Zombies. I have set in the OtherDrops-Config that "Loot_overrides_default" is true, and have also put the "drop: nothing" label under the entity name, yet it still drops golden swords and nuggets. I have even put in "drop: 371/0/0%" and "drop: 283/0/0%" to put a 0% chance on any of them dropping. Any idea what may be causing the issue? I've looked over my plugins and can't think of one that may be conflicting.
-
View User Profile
-
Send Message
Posted Feb 24, 2014@ZariusT: You must have overseen it, but it really does two drops in the logfile. As it registeres one mob two times as a kill.
You will find this two times in my log below. For that log below i only killed one pig, not two. But it registered two pig kills and dropped two times one bow. And this is the fault. Unfortunatley, i have not got two otherdrops versions installed, i already thought that. But in that case it would also register the Damage for the Pig two times, wouldn't it? The damage only gets registered once.
Also: Would there be a possibility to make it compatible with Towny? Blocks drop fine - they only drop the items defined, not doubled. But if i'm not allowed to break a block and the block comes back, the OtherDrops for this block are dropped nevertheless, while the default drops would not drop.
-
View User Profile
-
Send Message
Posted Feb 24, 2014@hagiel120
I don't quite understand. What's "that thing"?
If you want a drop to occur as a result of having a certain exp level, that's not currently possible, but I believe I've already made a ticket about it.
-
View User Profile
-
Send Message
Posted Feb 24, 2014Hello I have a question. Can I set that thing fall out from the exp specific level?
-
View User Profile
-
Send Message
Posted Feb 24, 2014@deleted_11934140
I've seen that before but only when I've had two copies of OtherDrops installed - perhaps you left an old version there too? Otherwise I'm not sure as I've not otherwise seen that nor had other reports, and the log only shows 1 bow being dropped.
-
View User Profile
-
Send Message
Posted Feb 24, 2014I got a problem. I tried the downloadable BETA here and the newest Build. OtherDrops drops double the amount of configured drops on every kill. So if i define a pig should drop one bow, it drops two. If i define two bows, it drops four, if i define 1-3 bows, it drops 2-6. I put in extreme logging and otherdrops fired two drops instead of one for every mob:
It was definatley one Mob killed, not two.
-
View User Profile
-
Send Message
Posted Feb 21, 2014@ZariusT
I saw an API include extra events for the changing of "day" to "night" and so forth. Don't remember the name of the plugin, but the developer's name was "coldandtired" or something. Perhaps you could just have something similar, where OtherDrops sees passing the "nth" tick of the day as passing from one phase to another, like dusk to dawn.
-
View User Profile
-
Send Message
Posted Feb 20, 2014@ecksfiftyone
As CommodoreAlpha noted I do plan to add enabling/disabling "modules" using in-game commands. This has the side effect of allowing you to use the current triggers & conditions to enable or disable modules (eg. 0.5% chance of enabling a "halloween" module when breaking pumpkins) - perhaps I should add to the command a time field to automatically disable after a set number of ticks (e.g. /od enable halloween 144000).
Unfortunately there's no "trigger" for changing from day to night so that won't help in your case.
-
View User Profile
-
Send Message
Posted Feb 16, 2014@ecksfiftyone
I sadly turned down someone else who had a very similar idea a few comments ago (while saying it was infeasible to add, but I now take that back). Then ZariusT did bring up a potential idea that he would implement in the future that might make such an "event" possible. Basically, the idea is to have the ability to turn on and off certain drops files for whatever duration under whatever conditions, so that should technically make events and thus your idea possible. In the future.
As of now, no, not possible.
As for the reaper, you'll have to give it some sort of data that OtherDrops can read as a condition in order for it to distinguish between just that special mob, and all skeletons. What do I mean by "readable data"? In this case, you'll either have to change the Reaper's health, name, or both, then make a separate OtherDrops entry just for that special skeleton, based on the health/name you changed it to.
An example, depicting what you wanted, might look like this:
It might work, but I'm not experienced with how to put equipment on mobs via OtherDrops. The format is very messy for that.
To pick out a quote from the changelog, which I ought to document soon, here's the "explanation":
@alanthya
Work how? If you want to specify an NPC as an object, just do "PLAYER@<NPCname>". The reason you can do this is because NPCs are treated as players. Just watch out not to have an NPC named after a real player that plays on your server, else something funny could happen to the real player.
-
View User Profile
-
Send Message
Posted Feb 15, 2014Can this work with Citizens?