# MobManager v2.8 by Michael McKnight (ShadowDog007)
# http://dev.bukkit.org/bukkit-mods/mobmanager/
# Ability Global Config
#
# - Please read the following text carefully! -
#
# My Name is Sven Heilbrunner aka DJMadMax. I come from Germany and my goal
# with this file is to explain as good as possible how you should use the
# abilities.yml file, to set it up correctly for fitting to your own needs.
#
# Just to make it clear, this plugin is NOT MINE, it's completely coded
# by Michael McKnight (ShadowDog007), as stated in the first line. This is
# nothing more than a tutorial file for all the MobManager-fans out there :)
#
# For short, what is MobManager? It first started out as a plugin to manage
# and mainly despawn 'senseless' spawns from the original Minecraft, such as
# mobs 150 blocks away which you mostly cant even see but still use much
# performance of your server/local machine and also decrease the possible
# mobs that could spawn around your own position.
# Since ShadowDog007 constantly packed his plugin with more and more stuff,
# it is now possible to almost do anything to the standard minecraft mobs
# you can possibly imagine. You can exactly manage how the mobs should spawn
# and despawn, you can edit most of the mob's stats and you can even manage
# the items dropped upon death of a mob. You can even create your own
# 'bounty system' with the bounty.yml (needs to be enabled in the config.yml
# first), but that should not be the main part of this HowTo.
#
# For explanation why I wrote this file as I did (with the #'s and blanks and
# so on), I want you to clearly get the formatting code right from the very
# beginning because the syntax of the YML script is crucial! One '-' left out
# or one ' ' too much at any point in your .yml-file and the whole thing may
# not work at all.
#
# As you may have noticed by now, a '#' at the beginning of a line disables
# the whole line. It's practical for making comments or just for disabling
# parts of the script.
# There's another thing you should know about the #'s! As soon as you start
# or reload the MobManager plugin on your minecraft-server, all the commented
# lines done by yourself (not the ones on the top from ShadowDog007 himself)
# will be deleted! Therefore it's important to script your abilities.yml in
# a safe folder and just copy it to the MobManager-folder after finishing it.
#
# Before we can get started, you should use a proper editor for working with
# .yml-files! Notepad (for Windows users) is almost impossible, because it
# can't handle the formatting and just gives you a bunch of spaghetti-code
# when you open an .yml-file with it. I recommend Notepad++ for example but
# any other editor which handles the YAML script correctly, will work too.
#
# Some of the descriptions below are written completely by myself, others
# are just copied from ShadowDog007, because there was (imho) nothing
# important to add and everything should be understandable as he wrote it.
#
# Let's start with the standard entries that are generated upon first start.
#
# ========================================================================= #
EnabledWorlds:
- world
- world_nether
- world_the_end
LimitBonusSpawns: true
BonusSpawnRange: 16
BonusSpawnHeightRange: 4
CommandPSpawnMinRange: 8
UseCircleLocationGeneration: false
BonusSpawnUseRadius: false
CommandSpawnUseRadius: false
CommandPSpawnUseRadius: true
CommandPSpawnRadiusAllowCenter: false
AbilitySets: {}
EnabledSpawnReasons:
- NATURAL
- JOCKEY
- CHUNK_GEN
- SPAWNER
- EGG
- SPAWNER_EGG
- LIGHTNING
- BED
- BUILD_SNOWMAN
- BUILD_IRONGOLEM
- BUILD_WITHER
- VILLAGE_DEFENSE
- VILLAGE_INVASION
- BREEDING
- SLIME_SPLIT
- CUSTOM
- DEFAULT
MobAbilities: {}
# ========================================================================= #
# The above is the total script that is generated in the abilities.yml when
# you first start MobManager (2.8). Every single command and line will be
# explained, beginning from this point.
#
# ==================== #
EnabledWorlds:
- world
- world_nether
- world_the_end
#
# This part simply manages the abilities.yml for the different worlds. If
# you - for example - want to disable it for the Nether, just remove the line
# or put a '#' in front of the line.
# If your world's name is, for example, 'My cool server', of course you have
# to alter the lines appropriately. Blanks can be used but you always have to
# put the '_nether' and '_the_end' behind it, if you want to use it.
#
# ==================== #
LimitBonusSpawns: false
#
# Since you can add bonus spawns upon a spawn or a death of a mob with this
# plugin, you can also limit them to your global mob-numbers which you set
# up through your limits.yml. For example, you can make MobManager to have a
# silverfish spawn any time, a zombie is killed (will be explained later).
# If you use the limits.yml to limit global number of mobs and also enable
# the LimitBonusSpawns, the mobs spawned that way will always count to the
# global spawnlimit. If this option is set to 'false', bonus spawns will
# always spawn, regardless of the global mob limit.
#
# ==================== #
BonusSpawnRange: 16
#
# If LimitBonusSpawns is true, BonusSpawnRange will define the horizontal
# radius in which the defined bonus mob should spawn.
# This also defines the range when using the command /mm pspawn.
#
# ==================== #
BonusSpawnHeightRange: 4
#
# Works similar to BonusSpawnRange but vertically instead of horizontally.
#
# ==================== #
CommandPSpawnMinRange: 8
#
# If you use the '/mm pspawn'-command ingame, this line determines, how far
# away the summoned mob should at least spawn away from the player.
# However, when i perform this command with an abilityset, it crashes. For me
# it only works with a normal mob class (eg. ZOMBIE or SKELETON instead of
# Zombie_strong or Skeleton_weak).
# Here's an example on how to use the '/m pspawn'-command in the minecraft
# console:
# /mm pspawn skeleton 1 MinecraftSteve
# This would spawn a skeleton (with random abilitysets if more than one are
# defined) near the player MinecraftSteve within a minimum range of 8 as it
# is defined with CommandPSpawnMinRange.
#
# ==================== #
UseCircleLocationGeneration: false
#
# If this is true MobManager uses an algorithm which generates random
# locations in a circle around a center location when spawning mobs.
# If this is false a (About 3.6 times faster) algorithm is used instead which
# generates random locations in a square around the center location. It is
# recommended that this is left as false.
#
# ==================== #
BonusSpawnUseRadius: false
#
# This value determines if Birth/Death spawns uses random locations around
# the parent mob to spawn child mobs.
# true = use random locations
# false = don't use random locations
#
# ==================== #
CommandSpawnUseRadius: false
#
# This value determines if the command /mm spawn uses random locations around
# the center location to spawn mobs.
# true = use random locations
# false = don't use random locations
#
# ==================== #
CommandPSpawnUseRadius: false
# #######################################################################
# This value determines if the command /mm pspawn uses random locations
# around the players location to spawn mobs.
# true = use random locations
# false = don't use random locations
#
# ==================== #
CommandPSpawnRadiusAllowCenter: false
#
# If this is true then /mm pspawn and /mm pspawnset will not allow mobs to
# spawn on top of a player. This can sometimes happen when the player is in
# an enclosed space.
#
# ==================== #
UseWorldSettings: true
#
# If this is false then settings 'EnabledSpawnReasons' and 'MobAbilities'
# will have no effect, and the global configuration for mobs will be used.
# NOTE: This setting does nothing in the global config.
#
# ==================== #
EnabledSpawnReasons: true
#
# When a Mob spawns, it is spawned with a given 'SpawnReason'. This list
# defines which of those 'SpawnReasons' that MobManager will check for.
# If a mob spawns with a listed 'SpawnReason' MobManager will apply
# abilities to the mob.
# Hint: If you have other plugins which spawn mobs with special gear you can
# remove 'CUSTOM' from the list of enabled spawn reasons so MobManager does
# not interfere with this.
# Note: By default all spawn reasons are checked
# Valid spawn reasons can be found here:
#     http://jd.bukkit.org/apidocs/org/bukkit/event/entity/CreatureSpawnEvent.SpawnReason.html
#
#
#
#
#
# ========================================================================= #
# ======== AbilitySets and MobAbilities - The Magic of MobManager ========= #
# ========================================================================= #
#
# I want to make a big break here, because now the 'magic' of MM begins!
# With the following two commands, AbilitySets and MobAbilities (both work
# together as explained in a while) you can just do almost anything you want
# to do to your mobs. Alter their strength and hitpoints, even give those
# stats 'chances', so you would always have different mobs spawning. You can
# give your 'humanoid mobs' (Skeleton, Wither-Skeleton, Zombie, Zombie-Pig)
# weapons and armour just as you could use it. That means, if you want a
# certain (or every) skeleton to spawn with an enchanted fire-bow, you're
# free to do so! When you give your mobs leather armour you can even dye it
# in any possible colour!
#
# The following steps explain, how to do all that stuff with simple examples.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
# ==================== #
MobAbilities:
  SKELETON:
    ApplySets:
    - Chance: 1
      SetName: Skeleton_test
# ==================== #
#
# Now what exactly would this do? In fact: Nothing. But still you have defined
# your first 'custom' mob by creating a new class under 'AbilitySets' with
# the name 'Skeleton_test' and its MobType 'SKELETON'. You can alter every
# valid MobType from vanilla Minecraft (vanilla bukkit to be exactly). Mobs
# provided by a third party plugin are not supported. Without any further
# settings, our 'Skeleton_test' would just appear as a typical skeleton.
#
# Well, let's move on!
#
# Every AbilitySet must be named in the lower section of MobAbilities too.
# Only MobTypes for which you have an AbilitySet need to be mentioned in the
# MobAbilities. The MobAbilities are done for now, first we will concentrate
# on the AbilitySets from now on.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      BabyRate: 0.0
      VillagerRate: 0.0
      AngryRate: 0.0
      ChargedRate: 0.0
# ==================== #
#
# Let's keep it simple for the beginning. Here we have four 'Abilities' with
# a possible rate between 0.0 and 1.0 in 0.01 setps. BabyRate would only
# affect the MobType 'ZOMBIE'. When - for example - set to 0.5, there would
# be a 50% chance that your zombie in that particular AbilitySet spawns as
# a zombie child.
#
# VillagerRate is also exclusive to the MobType ZOMBIE. If set to 0.25, there
# would be a 25% chance that every zombie spawned becomes a villager-zombie.
#
# AngryRate is exclusive to the MobType WOLF. It sets the percentage whether
# the wolf spawns angry (hostile to the player) or not.
#
# ChargedRate sets the percentage of a Creeper for spawning charged or not.
#
# We'll move on with our skeleton.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      Name:
      - Chance: 1
        Name: '&fOur first Skeleton'
        ShowOverhead: false
# ==================== #
#
# To be honest, we didn't add much information, only four lines. Still there
# is lots of explanation needed. The 'Name:'-part is important, if you want
# your mobs to have names over their head when they appear.
#
# The '- Chance: 1' is something similar to the 'rate' we learned above. It
# sets a chance for the following settings to be applied. Even if you only
# want to set only one possibility, you still have to decline it with the
# '- Chance: 1'.
#
# 'Name: '&fOur first Skeleton' - now, what's this? Again, 'Name:' is needed
# to give the mob a name shown over its head. The first 'Name:' only started
# the 'branch' for the .yml-file, that's because we now have the 'Name:' a
# second time. You will see that many a time in this HowTo.
# 
# The name itself could be written plain, without the ''s. The reason we used
# them here anyway is, minecraft delivers a possibility to set an individual
# format for all your user-generated texts. The &-sign is used to start an
# individual formatting. Possible formatting codes can be found here:
# http://www.minecraftwiki.net/wiki/Formatting_codes
# Even if minecraftwiki tells you, the '§'-sign is used for the formatting
# code, you still have to use the '&'-sign, as a reason of Bukkit with which
# I'm not quite familiar with ;).
#
# The last thing is 'ShowOverhead: false'. If set to true, the given name
# would ALWAYS appear over the mob's head, even when it's underground or
# behind a hill or whatever. This also happens when not using any plugins
# or texture packs at all. That's why I recommend leaving this option to
# 'false'. But 'false' doesn't mean, you cannot see the given name of the
# mob any more. 'false' just means, that you only see the mob's name, when
# looking directly (at a closer range) at the mob, pointing on it with your
# cross-hair.
#
# Now let's do something with the chances and colour codes!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      Name:
      - Chance: 1
        Name: '&fOur first Skeleton'
        ShowOverhead: false
      - Chance: 5
        Name: '&b&nStill our&6 first &rSkeleton'
        ShowOverhead: false
# ==================== #
#
# Now we still have only one AbilitySet (Skeleton_test), however we gave it
# a chance to spawn with two different names. Out of six skeletons, one would
# spawn with the white name 'Our first Skeleton' and the other five would
# spawn with the multi-coloured and partially underlined name
# 'Still our first skeleton'.
#
# As you can see, the formatting codes are very powerful and you can combine
# different formatting codes in one single string. There's one thing you have
# to be aware about: COLOUR always has do be IN FRONT of the FORMATTING, as
# shown above in our example. '&b&n' -> will give you an aqua-blue and also
# underlined string. '&n&b' -> which is the other way around, will only give
# you the aqua-blue string and ignores the underlining.
#
# Let's move on, shall we?
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      BirthSpawn: []
      DeathSpawn:
      - MobType: COW
        AbilitySets: Cow_test
        Count: 2
        Range: 8
        HightRange: 2
# ==================== #
#
# BirthSpawn and DeathSpawn - we heard this before in the upper section with
# 'BonusSpawnUseRadius'. Birth- and Death-spawns determine, whether a given
# mob should spawn upon another (in this case, our skeleton) mob's birth or
# death. The MobType MUST BE defined, the other settings aren't necessary.
# AbilitySet determines if the newly spawned mob should have any special
# AbilitySet loaded. If there are more than one AbilitySets for the given
# MobType then this is important. If you ignore this line, all available
# AbilitySets for the MobType to spawn will have a similar chance to be
# applied to the new mob.
#
# Count simply means, how many of the new mobs should spawn. Range and
# HightRange determine, how far from the 'MotherMob' the new mobs should
# spawn. If this isn't defined, the global settings from BonusSpawnRange and
# BonusSpawnHeightRange will be used.
#
# Actually there's a drawback! In MobManager 2.8 there seems to be a flaw in
# the BirthSpawn and DeathSpawn algorithm. Unfortunately, none of the two
# components work right now and ShadowDog007 will hopefully fix this soon!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      PotionEffects:
      - Chance: 1
        Effects:
        - SLOW: 1
      HealthBonus:
      - Chance: 1
        Bonus: -10
      DamageMulti:
      - Chance: 1
        Multi: 0.5
# ==================== #
#
# Here are some other interesting abilities you can apply to custom mobs.
# PotionEffects (or in the sub-category 'Effects') are all the effects you
# can have from brewed potions. In our example, the skeleton will spawn with
# an effect that slows it down a little bit. Values behind the effects must
# be valid. Since there are two slowness-levels available from potions,
# values '1' and '2' are valid (and 2 is even slower than 1).
# You can also add more effects to the list, just write them below each other
# on the same column as '- SLOW: 1' begins with.
#
# HealthBonus should be self-explanatory. As you can see in the example, you
# are also allowed to give negative numbers, giving a mob lesser health.
# 
# DamageMulti defines the multiplier of the mob's damage given to the player.
# It is multiplied with the base damage of the vanilla mob's damage. You can
# even set the multiplier to 0.0 - the mob won't deal any damage at all. But
# be careful, your armour will still receive damage and when the mob holds
# a weapon (for example an enchanted bow with fire-aspect), you will still 
# get hurt! You can also raise the damage by setting the Multi above 1.0.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: HELMET
          Material: LEATHER
        - Position: CHESTPLATE
          Material: IRON
        - Position: LEGGINGS
          Material: GOLD
        - Position: BOOTS
          Material: DIAMOND
# ==================== #
#
# Wow, look at that! This skeleton will spawn with a complete set of armour!
# As you can see, we have defined different materials for each position of
# the armour. There are four valid armour positions (as you can see, I wont
# repeat them now :P). There is something about the valid materials though.
# Besides the four materials already shown, you can also use 'CHAIN' as a
# material! Ingame it's only obtainable via console and in creative mode,
# since the later Minecraft versions it's also available through trading
# with villages. Still you can use CHAIN as a valid material for mob-armour.
#
# Now let's try out the chances with mob-armour!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: HELMET
          Material: LEATHER
        - Position: LEGGINGS
          Material: LEATHER
      - Chance: 1
        Pieces:
        - Position: CHESTPLATE
          Material: LEATHER
        - Position: BOOTS
          Material: LEATHER
# ==================== #
#
# Now, our skeleton has a chance of two different EquipmentSets! One is with
# a helmet and leggings both leather, the other chance would be the skeleton
# spawning with chestplate and boots both leather.
# Just like the chances from the name-example, you can alter the chances as
# you wish.
#
# There's much more stuff you can do with the mob's equipped items. Let's
# stay on one position for the moment as the routine itself is the same for
# all four armour positions. We won't concentrate on the weapon right now,
# because that would be a fifth 'item position'. We will maintain the weapon
# in an extra part of this HowTo.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: LEGGINGS
          CustomItem:
            type: LEATHER_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 0
                GREEN: 255
                BLUE: 0
          DropChance: 0.1
# ==================== #
#
# Here's something special and exclusive just to leather equipment. As you
# surely know you can dye leather armour in every colour you can imagine.
# The RGB-chart lets you choose between 256x256x256 colours (0-255 each) or
# in total: 16.777.216 colour combinations. Of course this will not only work
# with mob-equipped leather-armour but also to leather-armour dropped from an
# drop-set. Of course armour made of other materials can't be dyed. When you
# want to equip a mob with any other material then leather, the 'meta-type'
# would be 'UNSPECIFIC'.
#
# The DropChance defines the chance that the equipped item is dropped upon
# the mob's death. This can only be 0.0 to 1.0 in steps of 0.1. You may think
# that even 0.1 is quite much - and you're right. But there's a solution, you
# already know! With the chance from the EquipmentSet itself it's possible to
# just create a second EquipmentSet equally to the one we already have with
# the slight difference of the DropChance. Let's see that in an example.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: LEGGINGS
          CustomItem:
            type: LEATHER_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 0
                GREEN: 255
                BLUE: 0
          DropChance: 1.0
      - Chance: 999
        Pieces:
        - Position: LEGGINGS
          CustomItem:
            type: LEATHER_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 0
                GREEN: 255
                BLUE: 0
          DropChance: 0.0
# ==================== #
#
# Now we have defined two EquipmentSets for our skeleton. One with a chance
# of '1' of being applied and the other one has a chance of '999' of being
# applied upon spawning the skeleton. That's a chance of 0.1% to 99.9%.
# Since the EquipmentSet with the small chance of only 0.1% has a DropChance
# of 1.0 and the other one has a DropChance of 0.0, there is also a 0.1% for
# the equipped green leather-leggings being dropped upon the mob's death.
# This might be a little less but it just shows how powerful and individual
# this part of the MobManager is! And we're just at the beginning.
#
# Since ShadowDog007 updated the MobManager and the internal syntax a little
# bit, it is now possible to 'repeat' parts of the script without copying and
# pasting the whole part you want to execute again. It's called 'References'.
# Read here about YAML-references: http://en.wikipedia.org/wiki/YAML#References
# Let's see that in our example, shall we?!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: LEGGINGS
          CustomItem: &id001
            type: LEATHER_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 0
                GREEN: 255
                BLUE: 0
          DropChance: 1.0
      - Chance: 999
        Pieces:
        - Position: LEGGINGS
          CustomItem: *id001
          DropChance: 0.0
# ==================== #
#
# This script does exactly the same as the the one before but with much less
# text and therefore much less work for the server on which this plugin runs.
# Especially with very big scripts and very much different items to drop or
# AbilitySets and (later) MobAbilities, it's absolutely recommended to keep
# the code as short and as clean as possible.
#
# As you can see, the anchor (&) copies the complete branch where it's set
# into memory and repeats itself when asked with the reference (*) in the
# new branch of the script.
#
# Okay, next step.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: LEGGINGS
          CustomItem:
            type: LEATHER_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 0
                GREEN: 255
                BLUE: 0
              enchants:
                THORNS: 3
          DropChance: 0.0
# ==================== #
#
# Watch out! Those trousers will hurt you! We've added an enchantment to the
# leggings the mob is wearing, 'THORNS: 3'. In fact, the mob will not only
# drop that equipment (when the DropChance allows it) with the enchantment
# and the configured colour, but also the mob uses the enchantment for 
# himself! That means, if you now encounter the mob which wears an enchanted
# equipment, the mob is definitely able to use that enchantment for itself.
# You can just try it out yourself! Give a zombie or a skeleton such leggings
# and you will receive damage and get knocked back a little bit as soon as
# you hit him.
#
# Okay, let's move on to the 'fifth' equipment-position, the mob's hand.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: HAND
          CustomItem:
            type: DIAMOND_SWORD
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                KNOCKBACK: 2
                FIRE_ASPECT: 2
                DAMAGE_ALL: 5
                DAMAGE_ARTHROPODS: 5
                DAMAGE_UNDEAD: 5
                LOOT_BONUS_MOBS: 3
                DURABILITY: 3
              repair-cost: 5
          DropChance: 1.0
# ==================== #
#
# Oh yes, this is a totally overpowered diamond sword, and the skeleton is
# holding it in its hands. Again, this is just to show you, what's  possible
# with this plugin.
# As you can see, much is similar to the handling of equipped armour items.
# The position is now 'HAND' and the type is a typical weapon. In fact you
# can use any item from Minecraft one can hold in his hand but of course you
# cannot give a cobblestone any enchantments. I just wanted to tell you as
# a precaution :)
# Since no 'special' data is applied to the item (like the colour code from
# the leather armour which is leather-exclusive), the 'meta-type' now is
# 'UNSPECIFIC'.
#
# The listed enchantments are all of the currently available and valid ones
# for a sword (all five materials) at maximum level and provided from vanilla
# Minecraft. MobManager doesn't work with any other third-party enchantments.
#
# The 'repair-cost' is an additional cost that's applied, when you want to
# repair that item with an ambos. There's a big drawback! Too good enchanted
# items can't be repaired with an ambos in survival mode. As soon as the
# repairing of an item exceeds 39 levels, the ambos would just tell you that
# it's 'Too expensive' and won't let you repair the item, regardless if your
# level is above 39 and if you have the necessary materials or not.
# That's why I recommend using a third party plugin for repairing your 
# items provided from this plugin. What good is (for example) a highly
# enchanted sword with a really really low drop-chance and when you finally
# got it, you know you cannot repair it because vanilla Minecraft thinks,
# it's 'too expensive'.
#
# Since there's no way to control that through MobManager or Bukkit/Minecraft
# I recommend RepairRecipe: http://dev.bukkit.org/bukkit-plugins/repairrecipe/
#
# Just to finish the equipment-section, let's make a fully customized and
# deadly skeleton that haunts our nightmares!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      Name:
      - Chance: 1
        Name: '&fOur first Skeleton'
        ShowOverhead: false
      PotionEffects:
      - Chance: 5
        Effects:
        - SPEED: 1
      - Chance: 2
        Effects:
        - SPEED: 2
      - Chance: 3
        Effects:
        - NONE
      HealthBonus:
      - Chance: 1
        Bonus: 10
      - Chance: 1
        Bonus: 20
      - Chance: 1
        Bonus: 5
      - Chance: 1
        Bonus: 0
      DamageMulti:
      - Chance: 1
        Multi: 2.5
      - Chance: 1
        Multi: 1.5
      EquipmentSet:
      - Chance: 1
        Pieces:
        - Position: HELMET
          CustomItem:
            type: GOLD_HELMET
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                THORNS: 3
                PROTECTION_ENVIRONMENTAL: 4
          DropChance: 0.0
        - Position: CHESTPLATE
          CustomItem:
            type: DIAMOND_CHESTPLATE
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                PROTECTION_PROJECTILE: 4
                PROTECTION_EXPLOSIONS: 4
          DropChance: 0.0
        - Position: LEGGINGS
          CustomItem:
            type: IRON_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                PROTECTION_FIRE: 4
          DropChance: 0.0
        - Position: BOOTS
          CustomItem:
            type: LEATHER_BOOTS
            meta:
              ==: ItemMeta
              meta-type: LEATHER_ARMOR
              color:
                ==: Color
                RED: 120
                GREEN: 200
                BLUE: 255
              enchants:
                PROTECTION_FALL: 4
          DropChance: 0.0
        - Position: HAND
          CustomItem:
            type: BOW
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                ARROW_KNOCKBACK: 2
                ARROW_FIRE: 1
      - Chance: 1
        Pieces:
        - Position: HELMET
          CustomItem:
            type: DIAMOND_HELMET
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                THORNS: 3
                PROTECTION_ENVIRONMENTAL: 4
          DropChance: 0.0
        - Position: CHESTPLATE
          CustomItem:
            type: GOLD_CHESTPLATE
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                PROTECTION_PROJECTILE: 4
                PROTECTION_EXPLOSIONS: 4
          DropChance: 0.0
        - Position: LEGGINGS
          CustomItem:
            type: CHAIN_LEGGINGS
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                PROTECTION_FIRE: 4
          DropChance: 0.0
        - Position: BOOTS
          CustomItem:
            type: IRON_BOOTS
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                PROTECTION_FALL: 4
          DropChance: 0.0
        - Position: HAND
          CustomItem:
            type: BOW
            meta:
              ==: ItemMeta
              meta-type: UNSPECIFIC
              enchants:
                ARROW_KNOCKBACK: 2
                ARROW_FIRE: 1
          DropChance: 0.0
# ==================== #
#
# Yes I know, that's a lot of code for only one mob! But then again it is a
# fully customized skeleton with different chances of health bonus, strength,
# two different and fully enchanted armour-sets and an enchanted bow. There
# is nothing new in the script above, it's just all the parts we talked about
# before are now combined into one big AbilitySet.
#
# For now this should be enough about the mob's equipment. Let's continue
# with something similar important: The loot-table!
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      DropSet:
      - Chance: 1
        Replace: true
        Drops:
        - type: BAKED_POTATO
# ==================== #
#
# This is a simple DropSet. There's only one item defined, a baked potato.
# As you can see, MobManager (since 2.8) works with the item names instead
# of just with item ID's (pre 2.8). The ID's still work but it's recommended
# you use the item names because that's what vanilla Minecraft and Bukkit
# provides.
#
# 'Replace: true' tells Minecraft to replace the specified mob's vanilla
# drops and only uses the items defined through MobManager. If set to 'false'
# the mob will keep it's vanilla drops and all the drops added by MobManager
# will drop additionally to the vanilla drops. If you want total control over
# your mobs and their drops it's recommended setting this to 'true'.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      DropSet:
      - Chance: 1
        Replace: true
        Drops:
        - type: BAKED_POTATO
          amount: 1
          amount-max: 1
          meta:
            ==: ItemMeta
            meta-type: UNSPECIFIC
            display-name: '&6My great Potato'
            lore:
            - '&cThis is the best potato you''ll ever see!'
            - '&cHonestly! :)'
# ==================== #
#
# 'amount' tells the game the minimum drop chance of the item. Therefore
# 'amount-max' controls the maximum amount of the current item.
# This is a very effective way of setting the right chance for a drop of
# every item you want to add to your DropSet. If you set 'amount: -98' and
# 'amount-max: 1', there's an exact chance of 1%, the baked potato would drop
# upon the mob's death. Why -98? Because 0 is zero and together with -98 you
# already have 99 possibilities of NOT getting the drop. Therefore your
# 'amount-max: 1' is the only possibility out of 100 to get the drop.
# You can also set bigger positive amounts, the choice is, as always, yours.
#
# And what's that? A baked potato with a name? Yes, that's right! You can
# give every dropped item a specific name. The formatting of the text is just
# the same as we already encountered it before.
#
# Here's even something new, the lore! You can add lore to every single item
# you want and as long as it's the same item with the same lore, they will
# also add just as it would do in vanilla. As soon as you alter the lore or
# the display name of the same item, it will create its own stack anymore.
#
# Well, we can already drop items upon mobs deaths and even give them their
# own names and lores. But there are items that require a little more data
# than just their names and the mount to fit your needs. I'm talking about
# items with varieties - for example a sapling. Actually there are four
# different types of saplings, oak, spruce, birch and jungle. I'll show you
# in the next step, how it's done correctly.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      DropSet:
      - Chance: 1
        Replace: true
        Drops:
        - type: SAPLING
          damage: 0
        - type: SAPLING
          damage: 1
        - type: SAPLING
          damage: 2
        - type: SAPLING
          damage: 3
# ==================== #
#
# In this example, the skeleton drops all four types of saplings available
# at the moment. 0 represents the oak sapling, 1 is the spruce sapling,
# 2 is the birch sapling and 3 is the jungle sapling. There are many items
# with different data values in minecraft, the stairs, slabs and wooden
# planks just to name a few. You can check out all the data values on the
# following page: http://www.minecraftwiki.net/wiki/Data_values
#
# And of course you can combine all the above with the amount- and meta-stuff
# we learned before but please have 
#
# The damage-value can do something else to specific items. Every item that
# actually can be damaged (weapons, tools and armour) can use the 'damage'
# parameter to become a 'damaged drop', just in case you do not want your
# mobs to drop perfectly unworn stuff.
#
# ==================== #
AbilitySets:
  Skeleton_test:
    MobType: SKELETON
    Abilities:
      DropSet:
      - Chance: 1
        Replace: true
        Drops:
        - type: WOOD_SWORD
          damage: 20
        - type: WOOD_SWORD
          damage: 0
          damage-max: 60
# ==================== #
#
# Here we get two different swords from the skeleton. One is damaged by '20'
# and the other one varies between '0' and '60'. Since a wooden sword has
# a basic durability of exactly 60 uses, the second shovel can be everything
# from absolutely unused ('0') to totally worn out ('60').
#
# Unfortunately this does NOT work with the items equipped to mobs. They
# always seem to differ between the possible minimum and maximum damage,
# where the more damaged items seem to have a slightly bigger chance of
# being dropped.
#
#
#
#
# TO DO NEXT:
# Valid MetaTypes, Books, Potions, etc.
# One DropSet for all with anchors and references (YAML script)