OtherDrops

https://lh3.googleusercontent.com/-6F70Lqix6ss/USZFvy65wNI/AAAAAAAAA3s/L3hzRyfpJOU/s600/od%2520logo-fill.jpg

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)

Core Features

Note: features in orange are only available in the latest beta versions

  • 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
  • Where-ever possible the official Bukkit lists are used so OtherDrops:
    • supports all current and future blocks, items & mobs
    • supports all current and future enchantments & potion effects
    • supports all current and future biomes, spawn reasons & tree species
    • supports all current and future 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
    • Custom HP (health) for any mob
    • Custom equipment (w/custom drop chance)
    • Baby animals (all "Ageable" mobs - chicken, cow, pig, etc)
    • Tame wolves (including collar color) or cats (& different cat types)
    • Sheep colors and/or whether they haven been sheared
    • Villager professions
    • Powered creepers
    • Baby & villager zombies
    • 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])
  • Add lorename requirements
  • Heroes class & level conditions
  • Cooldowns

Actions

  • Apply actions alongside the drop (or even without a drop)
  • Damage tools
  • 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.

--

Many long nights are spent improving OtherDrops so if you like it please consider a donation to my coffee fund :) Donate

Metrics

  • OtherDrops uses Metrics for anonymous usage stats (learn more).

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Faldonboy Faldonboy Apr 24, 2014 at 19:20 UTC - 0 likes

    @asacavanagh: Go

    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.

    https://minestatus.net/19094-larkspur-gaming/image/original.png

  • Avatar of tremby90 tremby90 Apr 24, 2014 at 16:58 UTC - 0 likes

    hi 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

  • Avatar of asacavanagh asacavanagh Apr 24, 2014 at 11:15 UTC - 0 likes

    Is 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: Go

    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/

    Last edited Apr 24, 2014 by asacavanagh
  • Avatar of The3ShotGod The3ShotGod Apr 22, 2014 at 14:09 UTC - 0 likes

    Hi 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.

  • Avatar of ZeEye ZeEye Apr 22, 2014 at 12:55 UTC - 0 likes

    @Faldonboy: Go

    @CommodoreAlpha: Go

    @ colorcoding:

    drop: "POISONOUS_POTATO@!SMITE#1~&c&oPoisonous Potato; ;§7This plant didn't survive. Maybe next time..."
    

    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:

      POTATO@7:
      - drop: {POTATO_ITEM/1/35%,POTATO_ITEM/2/55%,POISONOUS_POTATO@!SMITE#1~&c&oPoisonous Potato; ;§7This plant didn't survive. Maybe next time.../1/10%}
        height: ">50"
        tool: DAMAGE_WATER
    

    doesn't work. It still drops vanilla if you destroy the crops with water.

    @soil/farmland:

      SOIL:
      - drop: NOTHING
    

    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.

  • Avatar of Faldonboy Faldonboy Apr 22, 2014 at 02:31 UTC - 0 likes

    @ZeEye: Go

    @CommodoreAlpha: Go

    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.

    Last edited Apr 22, 2014 by Faldonboy
  • Avatar of CommodoreAlpha CommodoreAlpha Apr 22, 2014 at 00:04 UTC - 0 likes

    @whatthesamm: Go

    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: Go

    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.

    Sure, I'd love to include my server IP here. But it's under construction, and I wouldn't want to get sued for players wandering inside and getting hit by a random beam of steel floating about. And no, I doubt plugins would make very good lawyers either. I've never seen a plugin that forced you to sign a contract do so well.

  • Avatar of ZeEye ZeEye Apr 21, 2014 at 21:09 UTC - 0 likes

    @CommodoreAlpha: Go

    § 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:

      CROPS@7:
      - drop: {WHEAT/2/20%,SEEDS/1/20%,SEEDS/2/30%,LONG_GRASS@1!SMITE#1~&c&oDead Crop; ;The earth has been too heavily polluted;to sustain much life underground.../1/30%}
        height: "<50"
      - drop: {WHEAT/2/20%,SEEDS/1/10%,SEEDS/2/55%,LONG_GRASS@1!SMITE#1~&c&oDead Crop; ;This plant didn't survive. Maybe next time.../1/5%}
        height: ">50"
    

    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.

    Last edited Apr 21, 2014 by ZeEye
  • Avatar of Faldonboy Faldonboy Apr 20, 2014 at 16:50 UTC - 0 likes

    @CommodoreAlpha: Go

    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.

    Last edited Apr 20, 2014 by Faldonboy
  • Avatar of whatthesamm whatthesamm Apr 20, 2014 at 12:28 UTC - 0 likes

    Hi, 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!

    Last edited Apr 20, 2014 by whatthesamm

Facts

Date created
Aug 27, 2011
Categories
Last update
Jul 04, 2013
Development stage
Release
Language
  • enUS
License
GNU General Public License version 3 (GPLv3)
Curse link
OtherDrops
Downloads
69,840
Recent files

Authors