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 Mar 5, 2012I'm sure my events are working fine, but this may be a problem for creature drops:
2.5-pre4 and pre3 on R6 [SEVERE] Could not pass event PlayerInteractEntityEvent to OtherDrops java.lang.NoClassDefFoundError: Could not initialize class com.gmail.zariust.otherdrops.data.CreatureData$1 at com.gmail.zariust.otherdrops.data.CreatureData.parse(CreatureData.java:329) at com.gmail.zariust.otherdrops.subject.CreatureSubject.<init>(CreatureSubject.java:57) at com.gmail.zariust.otherdrops.event.OccurredEvent.getEntityTarget(OccurredEvent.java:498) at com.gmail.zariust.otherdrops.event.OccurredEvent.<init>(OccurredEvent.java:209) at com.gmail.zariust.otherdrops.listener.OdPlayerListener.onPlayerInteractEntity(OdPlayerListener.java:67) at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:443) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:950) at net.minecraft.server.Packet7UseEntity.handle(SourceFile:33) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:111) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:575) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
-
View User Profile
-
Send Message
Posted Mar 5, 2012Decay message still present. :P
-
View User Profile
-
Send Message
Posted Mar 4, 2012@strontkever
Hopefully this new build below should fix it (2.5-pre4).
@sorrow123444
There's a prerelease I've posted below which isn't quite ready for posting to the main site - had a few bugs. Here's a new prerelease which if almost ready:
Release 2.5-pre4 (download here & hawkeye version on GitHub download page as usual)
-
View User Profile
-
Send Message
Posted Mar 4, 2012Is this going to be updated for R6 soon?
-
View User Profile
-
Send Message
Posted Mar 4, 2012any tempfix for the errors about material: sapling, data: 3?
its flooding the log
-
View User Profile
-
Send Message
Posted Mar 4, 2012@Joymo
Thanks - something odd with GitHub there - fixed now.
The Hawkeye build allows for proper logging of block breaks on customised blocks and supports rollback. The normal version only logs a "custom hawkeye event" which shows who broke a block but cannot be rolled back.
I can't integrate the full hawkeye logging into the normal OtherDrops since it causes a hard dependency on HawkEye then (I think due to limitations of the HawkEye API).
-
View User Profile
-
Send Message
Posted Mar 4, 2012OtherDrops_2.5-pre3-hawkeye.zip -> Gives file not found :<
I do use Hawkeye, never used a seperate ODR build though, not sure what it adds/fixes :P
-
View User Profile
-
Send Message
Posted Mar 3, 2012Release 2.5-pre3 (download & HawkEye version on GitHub download page)
example of new messages:
Yes, you can use all of the messages at once if you wish. Next feature is to allow default colours for each message type in the otherdrops-config.yml file but haven't got much time for a while so wanted to push this release quickly to see if there are any bugs I missed.
-
View User Profile
-
Send Message
Posted Mar 2, 2012@Brock_Blocking
You're welcome :)
@Folas1337
This ones a Bukkit issue - hopefully it'll be fixed before the RB (the issue is that they haven't added Jungle to the TreeSpecies)
-
View User Profile
-
Send Message
Posted Mar 2, 2012The 2.5-pre2 gives many errors when people destroy leaves with data value 3 (the ones in the jungle)
-
View User Profile
-
Send Message
Posted Mar 2, 2012Thanks for the early releases as always :D
-
View User Profile
-
Send Message
Posted Mar 2, 20122.5-pre2 (download - Hawkeye release on GitHub download page)
-
View User Profile
-
Send Message
Posted Mar 1, 2012Version 2.5-prerelease1 (download - Hawkeye release on GitHub download page)
-
View User Profile
-
Send Message
Posted Feb 29, 2012@WayGroovy
BTW: a good place to test out the YAML aliases and how they affect the config is here: http://yaml-online-parser.appspot.com/
-
View User Profile
-
Send Message
Posted Feb 29, 2012@Darkhand81
You can make an alias of creatures but you can only really use it as a tool: or drop: parameter and not as a target - I do plan on making this more configurable in the future.
@xclucky
I would use tool: ANY_TOOL@!SILK_TOUCH as I'm not sure how the enchantments interact with "ANY". You should also add a "flags: UNIQUE" line to both drops (as otherwise the silktouch will match the first ANY and still drop sand).
Ice: same way as with glass, just replace GLASS with ICE.
@WayGroovy
It works (with a couple of indentation tweaks) - but wont do what I think you want it to do. It will add a drop to the main group and not the dropgroup under it so you end up with:
I can't think of a way to do what you're wanting without creating another alias for it.
@Nuinethir
1) Percentages not currently possible but a good idea - trick is to work out how to define them without mixing it up with the chance percentage.
2) Not currently possible - I'm planning on adding message.attacker, message.victim, message.server, etc
3) See 1 :)
4) You can do this by adding command: "/xp %p" and canceling XP drops (currently you have to override all default drops for this, I'll be looking at adding a CANCEL_XP or DEFAULT_XP drop later).
Thanks for the feedback :)
-
View User Profile
-
Send Message
Posted Feb 28, 2012Creature group synonyms aren't quite organized as I need them to be... Can these be changed, or added to? Can a group of mobs be used as an alias, or would I have to specify them all separately?
-
View User Profile
-
Send Message
Posted Feb 28, 2012I think I may be typing this wrong. Basically all I want is for glass to drop sand, but then if you have a silk touch tool it will drop glass. However, I'm having a problem where, with this configuration, any tool will drop glass "and" sand. Here's my config.
Also, how would I write ice dropping ice when mined with a tool with silk touch? (with the ice being replaced by water when removed)
-
View User Profile
-
Send Message
Posted Feb 27, 2012@WayGroovy
I am pretty sure that would work, but I would rather it print as an event message and not a message from the player/console, similar to the way the message parameter works.
-
View User Profile
-
Send Message
Posted Feb 27, 2012How does/should Merge affect Drop Groups in Aliases? Example:
aliases: - &playerWeapons [ANY_SWORD, PROJECTILE_ARROW@PLAYER] - &smokeAndScream [SMOKE@SELF, EXTINGUISH@10, GHAST_SHRIEK@20] - &respawn tool: *playerWeapons dropgroup: scream_then_respawn chance: 10 drops: - delay: 20 effect: *smokeAndScream - drop: THIS delay: 40 otherdrops: CAVE_SPIDER - *respawn SPIDER - <<: *respawn drop: CAVE_SPIDERwould that work at all? I'll test this 'weekend' in about 36 hours, just wondering what your thoughts were on how it should, if at all, work.
@Nuinethir
Could you use a command action to have the player initiate a say command as op?
command: /!* "/say %p just stole %q from %v"
or
command /!$ "/tell %v %p just stole %q from you"
I am totally unsure of how commands work, haven't tested them yet personally, and I didn't find any examples in the includes folder.
-
View User Profile
-
Send Message
Posted Feb 26, 2012@ZariusT
Few questions in regards to using this to replace a few PvP plugins...
1. I want to include a PvP component into the drops for players that are killed by other players. I saw the MONEY@STEAL component, but if I am correct operates using a flat rate. Is there a way to have it calculate a percentage of the killed player's money? (I am using BOSEconomy alongside Vault.)
2. I know how to send a message to the player that makes the kill with message but how can I send a message to the loser? I want to basically say "You just stole %amount from %loser." and "%winner looted %amount from your corpse."
3. I would like to also have an XP-stealing component alongside the money stealing using, again, a percentage based on the killed player's total experience.
4. I know it is possible to give XP directly to players (I was using ControlORBle), so I was also wondering if instead of mobs actually dropping experience, XP orbs are not dropped at all and given to player directly. This could work either by a "last-hit-wins" or "most-damage-wins" type of scenario, possibly configured in OtherDrops main config file.
I also wanted to say thanks again for such an awesome plugin. I have no idea what I would do without it, as it is simple yet very customizable and caters directly to the economy of my server. Thanks so much! :)