Traits

 

 

Traits

What is a trait?

A trait is an ability, spell or a passive effect on the class/race. Traits are one of the main features for this plugin, since it's such a huge gamechanger! With the right traits and a big bowl of creativity, the possiblities are endless!

 

Configuring a trait

There are many parameters that add to your customization of a trait.
First of all we need to know what the different terms mean:

  • String: a Word or text.
  • sign: an operational symbol. Allowed: '+', '-', '*'
  • number: a whole number (with no decimal): (example: 1, 4, 42, 1337, ...)
  • decimal: a number with decimal: (example: 0.5, 13.37, 4.0, ...)
  • boolean: a true/false value: Allowed: true, false
  • itemName/MaterialName/Material: a name that represents an Item. Can be found at: Material
  • list: a list of Strings. For example:
key:
  - value1
  - value2
  - value3

or

key: [value1,value2,value3]


The "operation" in some traits means what "operation" the value should do. Should it multiply, add, or subtract the given value?
An example here could be:

AxeDamageIncreaseTrait:
  operation: '+'
  value: 2

This adds 2 more damage to the axe damage. If the operation was "*" it would multiply the axe damage with 2. Giving an insane amount of damage.

Since this plugin focuses alot on customization, here is the Big list 'o' customization!

  • minLevel: number (optional) -> The Minimal level to have to use this Trait.
  • maxLevel: number (optional) -> The Maximal level to have to use this Trait.
  • biomes: List (optional) -> A list of BIOMES
  • onlyOnBlock: List (optional) -> A list of MATERIALs
  • onlyInWater: boolean (optional) -> This Trait can only be used when in water.
  • onlyOnLand: boolean (optional) -> This Trait can only be used on the land.
  • onlyInSnow: boolean (optional) -> This Trait can only be used on snow
  • onlyOnDay: boolean (optional) -> This Trait can only be used when it is day
  • onlyInNight: boolean (optional) -> This Trait can only be used at night
  • onlyInRain: boolean (optional) -> This Trait can only be used when standing in rain
  • onlyAfterDamaged: number (optional) -> This Trait can only be used X seconds after taking damage (X = number)
  • onlyAfterNotDamaged: number (optional) -> This Trait can only trigger X seconds after NOT taking damage (X = number)
  • onlyInLava: boolean (optional) -> This Trait can only be used in lava.
  • aboveElevation: number (optional) -> The Trait can only be used on y-level higher than the passed value
  • belowElevation: number (optional) -> The Trait can only be used on y-level lower than the passed value
  • cooldown: number (optional) -> This gives the Trait a cooldown. This means a Player can't use this trait X seconds after the last activation.
  • displayName: String (optional) -> The Name the Trait should be shown to players. Therefore a possibility to rename Traits
  • description: String (optional) -> Replaces the default description of a trait with your own.
  • onlywhilesneaking: boolean (optional) -> The Trait can only be used, when the player is sneaking
  • disableCooldownNotice: boolean (optional) -> Gives no cooldown message on the Trait.
    An example with these custom parameters, would be:
BerserkerRageTrait:
  operation: '*'
  value: 2
  cooldown: 300
  minLevel: 25

This would only multiply the damage given by 2, IF he was over lvl 25, and it could only be used once every 5 minutes.

Trait-Modifiers


Trait-Modifiers are a feature officially added in RacesAndClasses 1.1.9.
The first tought is, what are Trait-Modifiers?
Let me explain on an example:

Mages have have a spell (Fireball for example).
But the trait does always the same damage. No matter if level 1 or level 100.
You can make different levels for the Trait, like Fireball 1, Fireball 2, ...
But is this really a good idea?
Do not fear, this is what Trait-Modifiers are for.
Trait-Modifiers can modify Trait values dependent on the situation of the player.
The easiest modifier is the Level-Modifier.
It modifies the damage / value of a trait dependent on the level of the Player using this trait.

Example:
Mage fireball does 4 damge by default.
But there is a Level-Modifier for level 20-30 with x1.5 damage.
Therefore it would deal 6 damage when the player is between level 20 and 30.

Here is an YML example for that:

FireballTrait:
  damage: 4
  range: 10
  modifiers:
  - 'level:20-30:1.5:damage'


The syntax of the example is not correct, since we striped away the complete part around the trait!


Therefor let us check what the modifier has to look like.
In the example we had the modifier:
'level:20-30:1.5:damage'
The different parts are split by an ':'.

The first part tells the plugin which modifier to use, in the example 'level'. (below are all modifiers).
The second part is the configuration part of the modifier, in the example '20-30'.
The third part is modifier to apply to the original value, in the example '1.5'.
The last part is on which values of the trait to apply the modifiers, in the example 'damage'. This has to be a config option in the trait.
To apply the modifier on all parts of the Trait, use '*'. (example: 'level:1-100:1.1:*')

Here are all current Trait-Modifiers with explaination:
===== Biome-Modifier =====
Modifies dependent on the current biome.
The biomesin the configuration are split by ','.
Example: 'biome:OCEAN,JUNGLE:1.5:*'

===== Expression-Evaluation-Modifier =====
Modifies to the expression passed.
This is the most powerfull Modifier. It uses Calculations to form a term with variables.
The configuration is: 'eval:EXPRESSION:0:*'.
Herefore the EXPRESSION is any mathamatical formular consistant of: numbers, +, -, *, /, (, )
Also variables are supported. example: '(%LEVEL%/2)+2+(%MANA%*2)'
Possible variables: %LEVEL%, %MANA%, %MAXMANA%, %HEALTH%, %MAXHEALTH%, %OLD%.
Where %OLD% is the value before entering the expression. ('%OLD%*2' multiplies the old result by 2).

===== Level-Modifier =====
Modifies the value dependent on the current level.
Example: 'level:20-30:1.5:damage'
The Value is always from-to.

===== Time-Modifier =====
Modifies the value dependent on the server-time.
Example: 'time:6-10:1.5:value'.
The example above multiplies the value variable by 1.5 in the server-time from 6am to 10am.

===== World-Modifier =====
Modifies the value dependent on the current World.
Example: 'world:world_the_end:2:*'
The example above multiplies all values by 2 when in the World 'world_the_end'.

List of traits

All the traits in this plugin so far, more to come!

Passive traits

  • "BerserkerRageTrait"
    modifies your damage, when your health is below 30% (percent in config changeable).
    Expected value syntax:
    BerserkerRageTrait:
      operation: sign
      value: decimal
      
    
  • "DamageIncreaseTrait"
    Increases the damage of the race. Value: 1 = normal damage. 1.5 = normal damage * 1.5, +1 = normal damage + 1.
    Expected value synthax:
    DamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "DamageReduceTrait"
    Decreases the damage taken. Value: 1 = normal damage(100%) . 0.75 = 75% of normal damage, 1.25 = 125% of normal dmg.
    Expected value syntax:
    DamageReduceTrait:
      operation: sign
      value: decimal
      
    
  • "DodgeTrait"
    Chance to dodge an attack. Percentage is in 'chance'.
    Expected value synthax:
    DodgeTrait:
      chance: decimal (between 0 and 100)
      
    
  • "DwarfSkinTrait"
    modifies your taken damage, when your life is below 30%.
    Expected value synthax:
    DwarfSkinTrait:
      operation: sign
      value: decimal
      
    
  • "HorseRestrictionTrait"
    Restricts some access to Horses. When setting any of the optional setting to true, the player may not use this with a horse. For example: 'mount: true' means they can't mount a horse.
    Expected value syntax:
    HorseRestrictionTrait:
      mount: boolean (optional)
      leash: boolean (optional)
      chest: boolean (optional)
      jumping: boolean (optional)
      tame: boolean (optional)
      
    
  • "HungerReplenishTrait"
    Changes the amount of replenished hunger
    When you receive / loose Hunger (example by eating food), it will edit the value.
    For example: When you have operation '+' and value: 2, an Apple will bring back 6 Hunger (4 default + 2 Trait). Expected value syntax:
    HungerReplenishTrait:
      operation: sign
      value: decimal
      
    
  • "JumpHeightIncreaseTrait"
    This modifies the Height you can jump. This is the height for the jump boost buff in 'value'.
    Expected value syntax:
    JumpHeightIncreaseTrait:
      value: number
      
    
  • "LastStandTrait"
    When your health drops below 30%, you will be healed by y. You should add cooldown or the Trait makes invincible with damage.
    Expected value syntax:
    LastStandTrait:
      value: number of health to heal
      
    
  • "ManaRegenerationTrait"
    This will give you 'value' mana every 'time' seconds.
    Expected value syntax:
    ManaRegenerationTrait:
      time: number
      value: decimal
      
    
  • "MiningSpeedTrait"
    This lets you break blocks faster or slower. Values > 0 make you mine faster. Values < 0 make you mine slower.
    This will only trigger on the blocks listed in 'blocks'. Expected is a List of MaterialNames. Expected values:
    MiningSpeedTrait:
      value: number (between -5 and 5, except 0)
      blocks: list (list of blocks. Example: [STONE,SAND,COBBLESTONE,...])
      
    
  • "MovementSpeedTrait"
    This lets you move faster. Values > 0.2 make you move faster. Values < 0.2 make you move slower.
    Values MUST be between 0 and 1. Otherwise they won't be accepted by Bukkit. Expected values:
    MovementSpeedTrait:
      value: decimal (between 0 and 1)
      
    
  • "NightDamageTrait"
    This lets you Take damage when standing in moon light.
    Expected values:
    NightDamageTrait:
      seconds: number (every how many seconds the player takes damage)
      damage: decimal (the damage done to the player)
      standing: boolean (optional) (if true, only doing damage when STANDING in direct Moon Light (default: true))
      
    
  • "NoHungerTrait"
    This lets you have infinite hunger.
    Expected values:
    NoHungerTrait:
      refill: boolean (optional) (if true, hunger is replenished every some seconds)
      
    
  • "PermanentPotionTrait"
    This lets you Take damage when standing in moon light.
    Expected values:
    PermanentPotionTrait:
      amplifier: number (the amplifier of the Potion)
      type: number (the ID of the potion effect. See [[http://minecraft.gamepedia.com/Status_effect|HERE]] for IDs)
      removeParticles: boolean (optional) (if true Particles are removed from the Client (does not work with every MC version) (default: false))
      
    
  • "PermissionTrait"
    This gives you a permission when the preconditions are met.
    permission or permissions has to be set. Expected values:
    PermissionTrait:
      permission: the permission as name (optional)
      permissions: if more then one permission is needed, the permissions as list. (optional)
      
    
  • "PassiveAggroTrait"
    This trait regulates the Aggro range of monsters.
    Expected values:
    PassiveAggroTrait:
      aggro: The aggro ranges to set. As List of: 'EntityType#range' (example: [ZOMBIE#5,WOLF#10] )
     
    
    Real Example:
    PassiveAggroTrait:
      aggro: [ZOMBIE#5,WOLF#10]
     
    
  • "RegenerationTrait"
    Regenerates more/less health each tick
    Expected values:
    RegenerationTrait:
      operation: sign
      value: decimal
      
    
  • "SpecificRegenerationTrait"
    Lets you regenerate X health every Y seconds
    This is bound to the optional Parameters from page start (e.g. onlyOnDay, onlyInWater, ....) Expected values:
    SpecificRegenerationTrait:
      seconds: number (Every how many seconds this is triggered)
      health: decimal (The healed value)
      
    
  • "SwimmingSpeedTrait"
    Lets you swim / walk faster in water
    This is only available with Minecraft 1.8 or newer.
    Expected values:
    SwimmingSpeedTrait:
      level: number (1-3) This is equivalent to the DepthStrider enchant.
      
    
  • "SunDamageTrait"
    This lets you Take damage when standing in sun light.
    Expected values:
    SunDamageTrait:
      seconds: number (every how many seconds the player takes damage)
      damage: decimal (the damage done to the player)
      standing: boolean (optional) (if true, only does damage when STANDING in DIRECT Sun Light (default: true))
      
    
  • "ToolTrait"
    This forbids / allows to use specific tools for the Race / Class.
    Expected values:
    ToolTrait:
      tools: list of Materials (+ to use, - to forbid)
      allowNonForbidden: boolean (If all non forbidden tools should be allowed. Mostly should be true)
      
    
    Example:
    The Example states, that everything may be used except for Diamand Sword and Diamond Axe.
    ToolTrait:
      tools:
      - -DIAMOND_SWORD
      - -DIAMOND_AXE
      allowNonForbidden: true
  • "UnderwaterBreathTrait"
    Your breath for breathing underwater is modified.
    Expected value syntax:
    UnderwaterBreathTrait:
      time: number in seconds
      
    
  • "VampirismTrait"
    You regenerate a percentage of damage you do.
    Expected value syntax:
    VampirismTrait:
      value: decimal as Percentage (decimal between 0 and 1)
      
    

 

Weapon traits


First some lines to say about these Traits here:
All Traits here MODIFY your dealt damage. Most traits simply do some mathematical operations on the Original damage value.
Example: AxeDamageIncreaseTrait: operation: '+' value: '2.0' (This is no YML synthax!)
This will give by an default damage of 4: 4 + 2 = 6. 4 Damage by default, + because of operation +, 2, because of the value 2.0, and the result of 6, because of the resulting calculations. This the calculations are the same with other operators. For example '*': 4 * 2 = 8.

  • "ArrowDamageIncreaseTrait"
    Increases damage done by arrows
    Expected value syntax:
    ArrowDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "AxeDamageIncreaseTrait"
    Increases damage, when hitting with an axe
    Expected value syntax:
    AxeDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "HoeDamageIncreaseTrait"
    Increases damage, when hitting with a Hoe
    Expected value syntax:
    HoeDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "PickaxeDamageIncreaseTrait"
    Increases damage, when hitting with a Pickaxe
    Expected value syntax:
    PickaxeDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "ShovelDamageIncreaseTrait"
    Increases damage, when hitting with a Shovel (also known as 'SPADE')
    Expected value syntax:
    ShovelDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    
  • "StickDamageIncreaseTrait"
    Increases damage, when hitting with a Stick
    Expected value syntax:
    StickDamageIncreaseTrait:
      operation: sign
      value: decimal
      
    

Resistance traits

  • "DrainResistanceTrait"
    Damage reduce for "drain" damage. This is damage dealt when the air bar is empty.
    Expected value syntax:
    DrainResistanceTrait:
      operation: sign
      value: decimal
      
    
  • "FallResistanceTrait"
    Damage reduce for Fall-Damage
    Expected value synthax:
    FallResistanceTrait:
      operation: sign
      value: decimal
      
    
  • "FireResistanceTrait"
    Damage reduce for fire damage
    Expected value syntax:
    FireResistanceTrait:
      operation: sign
      value: decimal
      
    
  • "LavaResistanceTrait"
    Damage reduce for lava damage
    Expected value syntax:
    LavaResistanceTrait:
      operation: sign
      value: decimal
      
    

Activation traits

  • "BackstabTrait"
    Backstabs an enemy by Right-Clicking on him.
    This means you teleport behind him.
    Also you can put a strength potion effect on the backstabber for short time.
    Expected value syntax:
    BackstabTrait:
      blocks: number (of blocks that can maximal be teleported)
      strength: number (optional) (the strength of the Strength potion added to the player on Backstab (default: 0))
      duration: number (optional) (the duration the strength potion lasts (default: 0))
      
    
  • "HealOthersTrait"
    heals other when rightclicking with a string (untested). You have to sneak while clicking.
    Expected value syntax:
    HealOthersTrait:
      value: number as Percentage
      
    
  • "PoisonedWeaponTrait"
    Poisons your Weapon. When you attack, the enemy is poisoned.
    To poison your weapon, simply put your weapon + the poison material (default: RED_ROSE, itemID: 38) in the Crafting bench and take out your poisoned weapon as result. Only people with the Trait can use this poison effect. Expected value syntax:
    PoisonedWeaponTrait:
      duration: number (The time the enemy is poisoned)
      totaldamage: decimal (The total Damage that should be done by the poison)
      applications: number (optional) (The number of Applications of damage to add to the weapon (default: 10))
      chance: decimal (optional) (The chance to poison an enemy on attack (default: 0.2))
      poisonMaterial: Material (optional) (The material to use for poisoning the Weapon (default: RED_ROSE))
      
    
  • "SprintTrait"
    Enables Sprint for a short amount of time. Activated by holding item in hand (see config, default: apple) and toggling sprinting.
    Expected value syntax:
    SprintTrait:
      duration: number
      value: number
      
    
  • "TauntTrait"
    Taunts a Target to ONLY attack you.
    This does NOT work on Players.
    Expected value syntax:
    TauntTrait:
      seconds: number (The time to taunt the Entity)
      range: number (number of blocks to maximal taunt)
      
    
  • "TrollbloodTrait"
    Removes all poisons (hitting somewhere with item in hand (default: apple))
    Expected value syntax:
    TrollblootTrait:
      duration: number  
      
    

Arrow traits

  • "CobWebArrowTrait"
    This places CobWebs at the location your Arrow hits.
    It is meant to slow players or Monsters.
    Expected value syntax:
    CobWebArrowTrait:
      range: number (the blocks the CobWebs should spread)
      time: number (the time in seconds the CobWebs should last)
      
    
  • "ExplosiveArrowTrait"
    Sounds cool, is cool! :D (I love it) Does, what it should do! lets everything explode in a radius and deals damage. (blockdamage off by default)
    Expected value syntax:
    ExplosiveArrowTrait:
      radius: number
      damage: decimal
      explode: boolean
      
    
    WARNING: avoid setting the block damage to true. It can easily destroy much of your map.
  • "FireArrowTrait"
    Hit target goes up in flames and gets damaged. The time-value passed is the TOTAL damage over time.
    Expected value syntax:
    FireArrowTrait:
      duration: number
      totalDamage: decimal
      
    
  • "LongArrowTrait"
    The arrow is shot with much more force.
    Expected value syntax:
    LongArrowTrait:
      speed: decimal (default : 1, value above speed the arrow up, values below slows it down)
      
    
  • "MightyArrowTrait"
    This is an arrow that does increased damage.
    Expected value syntax:
    MightyArrowTrait:
      damage: additional damage as decimal
      
    
  • "MultishotArrowTrait"
    Fires multiple arrows in the direction the player looks.
    Expected value syntax:
    MultishotArrowTrait:
      amount: number (numbers of arrows to use (has to be > 1))
      useArrow: boolean (true if the arrows should be removed from inventory (default: true))
      
    
  • "PoisonArrowTrait"
    Hit target gets poisoned and gets poison damage every second. The time-value passed is the TOTAL damage over time.
    Expected value syntax:
    PoisonArrowTrait:
      duration: number
      totalDamage: decimal
      
    
  • "PotionArrowTrait"
    Applies a potion effect on the target.
    Expected value syntax:
    PotionArrowTrait:
      type: type of potion to use as number
      amplifier: the amplifier to use as number
      target: the target to apply on ('all', 'ally' or 'enemy') (optional)
      duration: the duration of the effect (optional)
      
    
  • "QuickArrowShotTrait"
    Fires Arrows consecutively after each other.
    Expected value syntax:
    QuickArrowShotTrait:
      amount: the amount of arrows to use as number
      useArrow: if the arrows should be used (optional)
      every: every how many ticks the arrows should be fired as number (optional)
      
    
  • "TeleportArrowTrait"
    If an arrow is fired with this arrowtype selected, the shooter will be teleported there.
    Expected value syntax: (no parameters needed)
    TeleportArrowTrait:
      cooldown: number in seconds (optional, default: 0)
      
    
  • "StunArrowTrait"
    Stuns an Enemy for a specific time by chance.
    Expected value syntax: (no parameters needed)
    StunArrowTrait:
      duration: number (The time in seconds to stun the enemy)
      chance: decimal (optional) (The chance between 0 and 1 (default: 0.1))
      
    

Buff traits

  • "AbsorbDamageBuffTrait"
    Absorbs some of the Damage you get.
    Expected value syntax:
    AbsorbDamageBuffTrait:
      types: the [[http://jd.bukkit.org/rb/apidocs/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html|types]] to absorb as list.
      value: the value to absorb as number.
      
    
  • "WeaponNextHitDamageIncreaseBuffTrait"
    The next weapon hit does more damage.
    Expected value syntax:
    WeaponNextHitDamageIncreaseBuffTrait:
      weapons: the [[http://jd.bukkit.org/rb/apidocs/org/bukkit/Material.html|weapons]] to work with as list.
      damage: the damage to add as number.
      
    

Magic traits

Traits(Magic):

(Since Version 1.0.2 BETA 6 - RC 3) !!! IMPORTANT !!!!

All Traits below need Mana to use. This means that all the need the keyword: 'cost: ...' in the config. EXAMPLE:

ColdFeetTrait:
  cost: 10
  duration: 10

This example above says that activation costs 10 Mana.
Spells can Cost Items instead of Mana. To activate this for a Spell, use:

costType: ITEM
item: FEATHER
cost: 2

This config above says: This spell costs 2 Feathers to cast.

Also it is possible to use Health as casting Source.
Example:

costType: HEALTH
cost: 10

This says that the Player will loose 10 health when casting this spell.

All the examples below are using Mana. This is just for easy copy-pasting.
They ALL support Item / Health / Stamina usage, as long as nothing else is written in the description.

  • "AreaAirDropSpellTrait"
    Starts an Airdrop on the location you are looking.
    Expected value syntax:
    AreaAirDropSpellTrait:
      damage: damage the explosion does, as number
      rainRange: the spawn-radius of the explosions as number (optional)
      explosionRange: the range of the explosion as number (optional)
      amount: the amount of explosions as number (optional)
      aboveTarget: the blocks above the target to spawn as number (optional)
      material: the Material to use as falling block as Material (optional)
      materialDamageValue: the Damage value to the block to display as number (optional)
      particle: the particle Effect on explosion as Particle (optional)
      particleFromSelf: the particle Effect on cast (optional)
    
  • "AreaDamageTrait"
    This does damage in a range around the Player.
    Expected value syntax:
    AreaDamageTrait:
      damage: the Damage to do as number
      cause: the Damage cause to use as [[http://jd.bukkit.org/rb/apidocs/org/bukkit/event/entity/EntityDamageEvent.DamageCause.html|DamageCause]] (optional)
      particle: the particles to show on cast target as Particle (optional)
      particleFromSelf: the particles to show on caster (optional)
      showLine: if a line to the enemy should be shown as boolean (optional)
    
  • "ColdFeetTrait"
    Freezes the Water below your feet when you activate it. It is frozen for 'duration' seconds. It is unfrozen after some seconds again.
    Expected value syntax:
    ColdFeetTrait:
      duration: number
      cost: decimal
    
  • "CommandTrait " This magic Spell executes a command at the time the spell is cast and optional one at the time this spell ends.
    If @p is present in the Commands, it's replaced by the players name that is executing the spell.
    This means: 'teleport @p 200 100 200' -> 'teleport tobiyas 200 100 200' (for me). Expected value syntax:
      CommandTrait:
        start: 'command in here' (optional)
        end: 'command in here' (optional)
        time: number in seconds (optional, default: 10)
      
    
  • "ExplosionTrait"
    Lets you explode and do damage to your environment. If 'explode: true' is set, it will really explode. 'explode: false' will only do damage.
    Expected value syntax:
    ExplosionTrait:
      damage: decimal
      range: number
      cost: decimal
      explode: boolean (optional)
    
  • "FireballTrait"
    This simply fires a Fireball in the direction you are looking.
    Expected value syntax:
    FireballTrait:
      cost: decimal
    
  • "FirebreathTrait"
    You breath with a breath of fire. This is straight line in front of you.
    Expected value syntax:
    FirebreathTrait:
      damage: the damage to do as number (optional)
      range: the range of the firebreath as number (optional)
    
  • "FlyingTrait"
    This trait lets you fly for 'duration' seconds. Afterwards, it's going down. ;D
    Expected value syntax:
    FlyingTrait:
      cost: decimal
      duration: number
    
  • "GrapplingHookTrait"
    Shoots a Grappling hook to pull yourself somewhere up.
    THIS TRAIT DOES NOT DO ANYTHING YET! Expected value syntax:
    GrapplingHookTrait:
      cost: decimal
    
  • "InvisibleTrait"
    This trait lets you get invisible for 'duration' seconds. You can never fool animals or mobs with this trait. They are intelligent! =P
    Expected value syntax:
    InvisibleTrait:
      cost: decimal
      duration: number
    
  • "ItemForManaConsumeTrait"
    This Trait lets you convert an Item into Mana. The Item is specified in 'item'. The amount is at 'cost'. The Value of mana gained is: 'value'
    Expected value syntax:
    ItemForManaConsumeTrait:
      item: itemName
      cost: decimal
      value: decimal
    
  • "LifeTapTrait"
    This Trait lets you convert life into Mana. The life drained is in 'cost'. The Mana gained is in 'value'.
    Expected value syntax:
    LifeTapTrait:
      cost: decimal
      value: decimal
    
  • "LightningTrait"
    Lightning strikes the location. Nothing more...
    Expected value syntax:
    LightningTrait:
      cost: decimal
    
  • "LightTrait"
    This Trait lets a Light appear below your feet.
    Expected value syntax:
    LightTrait:
      cost: decimal
      duration: number (The length the light stays)
    
  • "MagicAreaHealTrait"
    This Traits heals everyone in a specific radius.
    Expected value syntax:
    MagicAreaHealTrait:
      range: the range of healing as decimal
      value: the value to heal as decimal
      target: the type of targets ('all', 'ally' or 'enemy')
      particle: the particles on the target as Particle (optional)
      particleFromSelf: the particles from self as Particle (optional)
    
  • "MagicDamageTrait"
    This does damage or potion effects on the Target.
    Expected value syntax:
    MagicDamageTrait:
      range: the range as number (optional)
      damage: the value to damage as decimal (optional)
      targetParticles: the particles on the target as Particle (optional)
      showLine: If the line to the target should be displayed as boolean (optional)
      potionType: the potion to apply as number (optional)
      potionAmplifier: the potion amplifier to apply as number (optional)
      potionDuration: the duration of the potion effect as number (optional)
    
  • "MagicSpellsSpellTrait"
    This activates a MagicSpells spell.
    Expected value syntax:
    MagicSpellsSpellTrait:
      name: the name of the MagicSpells spell as name
    
  • "MagicHealTrait"
    This Traits heals yourself or Other people.
    You heal yourself by using this cast while sneaking.
    Expected value syntax:
    MagicHealTrait:
      cost: decimal
      value: decimal (the Value to heal)
      blocks: number (optional) (The distance to maximal find a target for Healing)
    
  • "PickupItemTrait"
    You pickup an Item you are looking at.
    EXPERIMENTAL. This is not tested.
    Expected value syntax:
    PickupItemTrait:
      cost: decimal
      blocks: number (optional) (The maximal distance to find a target to pickup)
    
  • "PushAwayTrait"
    You push an Enemy away.
    EXPERIMENTAL. This is not tested.
    Expected value syntax:
    PushAwayTrait:
      cost: decimal
      blocks: number (optional) (The distance to maximal find a target to push away)
    
  • "SlowFallTrait"
    You fall slower when falling.
    Expected value syntax:
    SlowFallTrait:
      cost: decimal
      duration: number (The time in seconds to fall slower)
    
  • "StunSpellTrait"
    Stuns your target for x seconds.
    Expected value syntax:
    StunSpellTrait: 
      duration: the number in seconds to stun as number
      range: the maximal range possible as number
      targetParticle: the particle effect on the target as Particle
      ownParticle: the particle effect on the caster as Particle
    
  • "ThrowItemsAroundSpellTrait"
    Throws stuff around you that does damage on contact.
    Expected value syntax:
    ThrowItemsAroundSpellTrait: 
      damage: the damage to do on contact as decimal
      speed: the speed the item has on start as decimal (default = 3) (optional)
      split: the degree to split the items in range as decimal (default = 3) (optional)
      amount: the amount of items to throw (optional)
      material: to throw as Material (optional)
      materialDamageValue: to throw as number (optional)
      particle: to show on contact as Particle (optional)
      particleFromSelf: to show on cast as Particle (optional)
    
  • "ThrowItemTrait"
    Throws 1 item around you that does damage on contact.
    Expected value syntax:
    ThrowItemTrait: 
      damage: the damage to do on contact as decimal
      speed: the speed the item has on start as decimal (default = 3) (optional)
      material: to throw as Material (optional)
      materialDamageValue: to throw as number (optional)
      particle: to show on contact as Particle (optional)
      particleFromSelf: to show on cast as Particle (optional)
      addSmallOffset: if a small offset should be added as boolean (optional)
    
  • "TeleportTrait"
    Teleports you to where you are looking. Has to be on a block.
    Expected value syntax:
    TeleportTrait:
      cost: decimal
    
  • "WallTrait"
    Builds a small wall in front of you. The wall lasts 'duration' seconds. It is made of the Material in 'material'. If none present, GLASS is taken.
    Expected value syntax:
    WallTrait:
      cost: decimal
      duration: number
      material: itemName (optional)
    

Totem traits

(Since Version 1.0.4 ) !!! IMPORTANT !!!!

All Traits below need Mana to use. This means that all the need the keyword: 'cost: ...' in the config.
Totem Traits extend Magic Traits. That means they have absolutely the same usability as for Magic spells. The general configs for Magic Spells also apply for Totems.

EXAMPLE:

HealTotemTrait:
  cost: 5
  duration: 5
  range: 7
  tickEvery: 1
  value: 2
  cooldown: 30

This example above says that activation of the Heal Totem costs 5 Mana.
Totems also CAN have a 'duration'. Duration is how many seconds the totem lasts. The default value when NOT present is 5 seconds.
Also Totems CAN have a 'tickEvery'. This is every how many seconds the totem will tick. In the example above the totem will heal everything around every 1 seconds and will disappear after 5 seconds. This makes total 5 ticks.
The 'range' of a totem is also a optional parameter. It is the range where the players or monsters around the totem are hit. In the example above the totem will heal everything 7 blocks around the totem.



Here are the currently supported Totems:
Don't forget that the configs below are the minimal needed configs. Optional fields can be found some lines above and in the Magic Spells section.

  • "HealTotemTrait"
    This Traits places a totem around you that heals everyone.
    Expected value syntax:
    HealTotemTrait:
      cost: decimal
      value: decimal (the Value to heal)
    
  • "ManaRegenerationTotemTrait"
    This Traits stocks mana up on players around.
    Expected value syntax:
    ManaRegenerationTotemTrait:
      cost: decimal
      value: of mana to restore as number
    
  • "PotionTotemTrait"
    This Traits applies a potion effect to everyone surrounding when ticking.
    Expected value syntax:
    PotionTotemTrait:
      cost: decimal
      effect: number (the ID of the potion to apply)
      amplifier: number (the amplifier of the potion to apply)