Difference between revisions of "List of all bonus types"

From VCMI Project Wiki
Jump to: navigation, search
(Spell immunities)
m (Update for new subtype formats in 1.4.)
 
(134 intermediate revisions by 8 users not shown)
Line 1: Line 1:
The bonuses were grouped according to their original purpose. The bbonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.
+
The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.
  
 
= General-purpose bonuses =
 
= General-purpose bonuses =
* NONE
+
=== NONE ===
* MORALE
+
=== MORALE, LUCK ===
* LUCK
+
*val = value
* MAGIC_SCHOOL_SKILL eg. for magic plains terrain, subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth, value - level
+
=== MAGIC_SCHOOL_SKILL ===
* NO_TYPE
+
eg. for magic plains terrain and for magic school secondary skills
* DARKNESS val = radius
+
*subtype: school of magic (0 for all, 1 for air, 2 for fire, 4 for water, 8 for earth before 1.4, spellSchool.air / spellSchool.fire / spellSchool.water / spellSchool.earth after 1.4)
 +
*val - level
 +
 
 +
=== NO_TYPE ===
 +
=== DARKNESS ===
 +
*val = radius
 +
 
 
= Hero bonuses =
 
= Hero bonuses =
* MOVEMENT both water / land
+
=== MOVEMENT ===
* LAND_MOVEMENT  
+
Before 1.2: both water / land
* SEA_MOVEMENT
+
After 1.2: subtype 0 for sea, subtype 1 for land
* WATER_WALKING subtype 1 - without penalty, 2 - with penalty
+
After 1.4: subtype = heroMovementLand / heroMovementSea
* FLYING_MOVEMENT subtype 1 - without penalty, 2 - with penalty  
+
* val = number of movement points (100 points for a tile)
* PRIMARY_SKILL uses subtype to pick skill; additional info if set: 1 - only melee, 2 - only distance
+
 
* SIGHT_RADIOUS
+
=== LAND_MOVEMENT, SEA_MOVEMENT (before 1.2) ===
* MANA_REGENERATION points per turn apart from normal (1 + mysticism
+
* val = number of movement points (100 points for a tile)
* FULL_MANA_REGENERATION all mana points are replenished every day
+
 
* NONEVIL_ALIGNMENT_MIX good and neutral creatures can be mixed without morale penalty   
+
=== WATER_WALKING ===
* SECONDARY_SKILL_PREMY %   
+
Before 1.4: subtype 1 without penalty, 2 with penalty
* SURRENDER_DISCOUNT %  
+
After 1.4: val = Penalty to movement, in percent
* IMPROVED_NECROMANCY allows Necropolis units other than skeletons to be raised by necromancy
+
 
 +
=== FLYING_MOVEMENT ===
 +
Before 1.4: subtype 1 without penalty, 2 with penalty
 +
After 1.4: val = Penalty to movement, in percent
 +
 
 +
=== NO_TERRAIN_PENALTY (since 0.98f) ===
 +
Hero does not get movement penalty on certain terrain type (Nomads ability).
 +
*subtype - type of terrain
 +
 
 +
=== PRIMARY_SKILL ===
 +
* uses subtype to pick skill
 +
* additional info if set: 1 - only melee, 2 - only distance
 +
 
 +
=== SIGHT_RADIOUS (before 1.2) ===
 +
Additional bonus to range of sight (Used for Scouting secondary skill)
 +
* val = distance in tiles
 +
 
 +
=== SIGHT_RADIUS (after 1.2) ===
 +
Sight radius of a hero. Used for base radius + Scouting secondary skill
 +
* val = distance in tiles
 +
 
 +
=== MANA_REGENERATION ===
 +
Before 1.2: points per turn apart from normal (1 + mysticism)
 +
After 1.2: points per turn (used for artifacts, global 1 point/turn regeneration and mysticism secondary skill)
 +
 
 +
=== FULL_MANA_REGENERATION ===
 +
all mana points are replenished every day
 +
 
 +
=== NONEVIL_ALIGNMENT_MIX ===
 +
good and neutral creatures can be mixed without morale penalty  
 +
   
 +
=== SECONDARY_SKILL_PREMY (before 1.2) ===
 +
%   
 +
=== SURRENDER_DISCOUNT ===
 +
%  
 +
 
 +
=== IMPROVED_NECROMANCY ===
 +
Before 1.2: allows Necropolis units other than skeletons to be raised by necromancy
 +
After 1.2: determine units which is raised by necromancy skill.
 +
* subtype: creature raised
 +
* val: Necromancer power
 +
* addInfo: limiter by Necromancer power
 +
* Example (from Necromancy skill):
 +
  "power" : {
 +
  "type" : "IMPROVED_NECROMANCY",
 +
  "subtype" : "creature.skeleton",
 +
  "addInfo" : 0
 +
  }
 +
 
 +
===LEARN_BATTLE_SPELL_CHANCE (since 1.2)===
 +
*subtype: 0 - from enemy hero, 1 - from entire battlefield (not implemented now). (Removed in 1.4)
 +
*val: chance to learn spell after battle victory
 +
Note: used for Eagle Eye skill
 +
 
 +
===LEARN_BATTLE_SPELL_LEVEL_LIMIT (since 1.2)===
 +
*subtype: school (-1 for all), others TODO
 +
*val: maximum learning level
 +
Note: used for Eagle Eye skill
 +
 
 +
===LEARN_MEETING_SPELL_LIMIT (since 1.2)===
 +
*subtype: school (-1 for all), others TODO
 +
*val: maximum learning level for learning a spell during hero exchange
 +
Note: used for Scholar skill
 +
 
 +
===ROUGH_TERRAIN_DISCOUNT (since 1.2)===
 +
*val: Non-road terrain discount in movement points
 +
Note: used for Pathfinding skill
 +
 
 +
===WANDERING_CREATURES_JOIN_BONUS (since 1.2)===
 +
*val: value than used as level of diplomacy inside joining probability calculating
 +
 
 +
===BEFORE_BATTLE_REPOSITION (since 1.2)===
 +
*val: number of hexes - 1 than should be used as repositionable hexes before battle (like H3 tactics skill)
 +
 
 +
===BEFORE_BATTLE_REPOSITION_BLOCK (since 1.2)===
 +
*val: value than block opposite tactics, if value of opposite tactics is less than this value of your hero (for 1.2, double-side tactics is not working).
 +
 
 +
===HERO_EXPERIENCE_GAIN_PERCENT (since 1.2)===
 +
*val: how many experience hero gains from any source. There is a global effect which set it by 100 (global value) and it is used as learning skill
 +
 
 +
===UNDEAD_RAISE_PERCENTAGE (since 1.2)===
 +
*val: Percentage of killed enemy creatures to be raised after battle as undead.
 +
Note: used for Necromancy secondary skill, Necromancy artifacts and town buildings.
 +
 
 +
===MANA_PER_KNOWLEDGE (since 1.2)===
 +
*val: Percentage rate of translating 10 hero knowledge to mana, used for intelligence and global bonus
 +
 
 +
===HERO_GRANTS_ATTACKS (since 1.2)===
 +
*subtype: creature to have additional attacks
 +
*val: Number of attacks
 +
Note: used for Artillery secondary skill
 +
 
 +
===BONUS_DAMAGE_PERCENTAGE (since 1.2)===
 +
*subtype: creature to have additional damage percentage
 +
*val: percentage to be granted
 +
Note: used for Artillery secondary skill
 +
 
 +
===BONUS_DAMAGE_CHANCE (since 1.2)===
 +
*subtype: creature to have additional damage chance (will have BONUS_DAMAGE_PERCENTAGE applied before attack concluded)
 +
*val: chance in percent
 +
 
 +
===MAX_LEARNABLE_SPELL_LEVEL (since 1.2)===
 +
*val: maximum level of spells than hero can learn from any source. This bonus have priority above any other LEARN_*SPELL_LEVEL bonuses.
 +
Note: used as global effect and as wisdom secondary skill.
 +
 
 
== Hero specialties ==
 
== Hero specialties ==
* SPECIAL_SECONDARY_SKILL val = id, additionalInfo = value per level in percent  
+
 
* SPECIAL_SPELL_LEV val = id, additionalInfo = value per level in percent
+
=== SPECIAL_SPELL_LEV ===
* SPELL_DAMAGE val = value
+
*subtype = identifier of affected spell
* SPECIFIC_SPELL_DAMAGE subtype = id of spell, val = value
+
*additionalInfo = value per level in percent
* SPECIAL_BLESS_DAMAGE val = spell (bless, additionalInfo = value per level in percent
+
 
* MAXED_SPELL val = id
+
=== SPELL_DAMAGE ===
* SPECIAL_PECULIAR_ENCHANT blesses and curses with id = val dependent on unit's level, subtype = 0 or 1 for Coronius
+
Since 1.2: used for Sorcery secondary skill
* SPECIAL_UPGRADE val = base, additionalInfo = target
+
*val = value in percent
 +
 
 +
=== SPECIFIC_SPELL_DAMAGE ===
 +
*subtype = id of spell
 +
*val = value in percent (Luna, Ciele)
 +
 
 +
=== SPECIAL_BLESS_DAMAGE (before 1.2) ===
 +
*subtype = spell (bless by default)
 +
*val = value per level in percent
 +
 
 +
=== MAXED_SPELL (before 1.2) ===
 +
Spell always has expert effects but not expert range
 +
*subtype = id
 +
 
 +
=== SPECIAL_PECULIAR_ENCHANT ===
 +
blesses and curses with id = val dependent on unit's level
 +
Before 1.4: subtype = 0 or 1 for Coronius
 +
After 1.4: subtype - affected spell identifier
 +
 
 +
=== SPECIAL_UPGRADE ===
 +
*subtype = base creature ID
 +
*addInfo = target creature ID
  
 
= Artifact bonuses =
 
= Artifact bonuses =
* SPELL_DURATION
+
=== SPELL_DURATION ===
* AIR_SPELL_DMG_PREMY  
+
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===
* EARTH_SPELL_DMG_PREMY
+
 
* FIRE_SPELL_DMG_PREMY
+
Effect of original Orb artifacts.
* WATER_SPELL_DMG_PREMY
+
 
* BLOCK_MORALE  
+
* val - '''percent''' bonus to air / earth / fire / water spell damage.
* BLOCK_LUCK
+
 
* FIRE_SPELLS
+
=== BLOCK_MORALE, BLOCK_LUCK (removed in 1.2) ===
* AIR_SPELLS
+
=== SPELL ===
* WATER_SPELLS  
+
Hero knows spell, even if this spell is banned in map options or set to "special".
* EARTH_SPELLS
+
*subtype - spell id
* GENERATE_RESOURCE daily value, uses subtype (resource type
+
*val - skill level (0 - 3)
* CREATURE_GROWTH for legion artifacts: value - week growth bonus, subtype - monster level if aplicable
+
 
* WHIRLPOOL_PROTECTION hero won't lose army when teleporting through whirlpool 
+
=== SPELLS_OF_LEVEL ===
* SPELL hero knows spell, val - skill level (0 - 3, subtype - spell id 
+
hero knows all spells of given level
* SPELLS_OF_LEVEL hero knows all spells of given level, val - skill level; subtype - level 
+
*subtype - level (in form "spellLevelX" after 1.4, where X is desired level)
* ENEMY_CANT_ESCAPE for shackles of war
+
*val - skill level
* NEGATE_ALL_NATURAL_IMMUNITIES
+
Does not grant spells banned in map options.
* OPENING_BATTLE_SPELL casts a spell at expert level at beginning of battle, val - spell power, subtype - spell id  
+
 
* CREATURE_GROWTH_PERCENT increases growth of all units in all towns, val - percentage
+
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===
* FREE_SHIP_BOARDING movement points preserved with ship boarding and landing  
+
All spells of this school are granted to hero, eg. by Tomes of Magic.
 +
Does not grant spells banned in map options.
 +
 
 +
=== GENERATE_RESOURCE ===
 +
*subtype - [[resource]] type
 +
*val - daily income
 +
 
 +
=== CREATURE_GROWTH ===
 +
for legion artifacts
 +
*value - weekly growth bonus,
 +
*subtype - monster level if aplicable
 +
 
 +
=== CREATURE_GROWTH_PERCENT ===
 +
increases growth of all units in all towns,
 +
*val - percentage
 +
 
 +
=== BATTLE_NO_FLEEING ===
 +
for Shackles of War
 +
 
 +
=== NEGATE_ALL_NATURAL_IMMUNITIES ===
 +
Orb of Vulnerability
 +
=== OPENING_BATTLE_SPELL ===
 +
casts a spell at expert level at beginning of battle
 +
*subtype - [[spell]] id
 +
*val - spell power
 +
 
 +
=== FREE_SHIP_BOARDING ===
 +
movement points preserved with ship boarding and landing
 +
=== WHIRLPOOL_PROTECTION ===
 +
hero won't lose army when teleporting through whirlpool
 +
 
 
= Creature bonuses =
 
= Creature bonuses =
* STACK_HEALTH
+
=== STACK_HEALTH ===
* STACKS_SPEED  additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part  
+
=== STACKS_SPEED ===
* CREATURE_DAMAGE subtype 0 = both, 1 = min, 2 = max
+
*additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part
* EXP_MULTIPLIER val - percent of additional exp gained by stack / commander (base value 100)
+
 
* SHOTS
+
=== CREATURE_DAMAGE ===
 +
Before 1.4: subtype 0 for both, 1 for min, 2 for max
 +
After 1.4: subtype = creatureDamageBoth / creatureDamageMin / creatureDamageMax
 +
 
 +
=== SHOTS ===
 +
=== EXP_MULTIPLIER ===
 +
*val - percent of additional exp gained by stack / commander (base value 100)
  
 
= Creature abilities =
 
= Creature abilities =
 
== Static abilities and immunities ==
 
== Static abilities and immunities ==
* NON_LIVING eg. gargoyle
+
=== NON_LIVING ===
* UNDEAD
+
eg. golems, elementals
* DRAGON_NATURE  
+
=== GARGOYLE ===
* KING1
+
Gargoyle is special than NON_LIVING, cannot be rised or healed
* KING2
+
=== UNDEAD ===
* KING3
+
=== SIEGE_WEAPON ===
* FEARLESS
+
War machines have it. They cannot be raised or healed, have no morale and don't move.
* NO_LUCK eg. when fighting on cursed ground
+
=== DRAGON_NATURE ===
* NO_MORALE eg. when fighting on cursed ground
+
=== KING1, KING2, KING3 (before 1.2) ===
* SELF_MORALE eg. minotaur
+
Creatures take more damage from basic, advanced or expert Slayer effect.
* SELF_LUCK halfling
+
=== KING  (after 1.2) ===
 +
Creatures take more damage from Slayer effect than have greater or equal value than KING bonus.
 +
=== FEARLESS ===
 +
=== NO_LUCK ===
 +
eg. when fighting on cursed ground
 +
=== NO_MORALE ===
 +
eg. when fighting on cursed ground
 +
=== SELF_MORALE (before 1.2) ===
 +
eg. minotaur
 +
=== SELF_LUCK (before 1.2) ===
 +
halfling
  
== Combat abilities ==
+
== Combat abilities ==
* FREE_SHOOTING stacks can shoot even if otherwise blocked (sharpshooter's bow effect)
+
=== FLYING ===
* FLYING
+
Before 1.4: subtype 0 for regular flying, 1 - teleporting
* SHOOTER
+
After 1.4: subtype = movementFlying / movementTeleporting
* CHARGE_IMMUNITY
+
 
* ADDITIONAL_ATTACK
+
=== SHOOTER ===
* UNLIMITED_RETALIATIONS
+
=== CHARGE_IMMUNITY ===
* NO_MELEE_PENALTY
+
=== ADDITIONAL_ATTACK ===
* ADDITIONAL_RETALIATION value - number of additional retaliations
+
=== UNLIMITED_RETALIATIONS ===
* JOUSTING for champions
+
=== ADDITIONAL_RETALIATION ===
* HATE eg. angels hate devils, subtype - ID of hated creature, val - damage bonus percent
+
*value - number of additional retaliations
* SPELL_LIKE_ATTACK subtype - spell, value - spell level; range is taken from spell, but damage from creature; eg. magog  
+
 
* THREE_HEADED_ATTACK eg. cerberus
+
=== JOUSTING ===
* RETURN_AFTER_STRIKE
+
for champions
* ENEMY_DEFENCE_REDUCTION in % (value eg. behemots  
+
*val: percentage of charge
* GENERAL_DAMAGE_REDUCTION shield air shield effect
+
* GENERAL_ATTACK_REDUCTION eg. while stoned or blinded - in %, subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage  
+
=== HATE ===
* DEFENSIVE_STANCE  val - bonus to defense while defending
+
eg. angels hate devils,
* ATTACKS_ALL_ADJACENT eg. hydra
+
*subtype - ID of hated creature,
* NO_WALL_PENALTY
+
*val - damage bonus percent
* BLOCKS_RETALIATION eg. naga
+
 
 +
=== SPELL_LIKE_ATTACK ===
 +
range is taken from spell, but damage from creature; eg. magog, lich
 +
*subtype - spell,
 +
*value - spell level
 +
 
 +
=== THREE_HEADED_ATTACK ===
 +
eg. cerberus
 +
=== ATTACKS_ALL_ADJACENT ===
 +
eg. hydra
 +
=== TWO_HEX_ATTACK_BREATH ===
 +
eg. dragons
 +
=== RETURN_AFTER_STRIKE ===
 +
=== ENEMY_DEFENCE_REDUCTION ===
 +
in % (value) eg. behemots  
 +
=== GENERAL_DAMAGE_REDUCTION ===
 +
Before 1.4: subtype 0 for melee damage (shield), 1 for ranged damage (air shield effect), -1 for all damage (armorer secondary skill, since 1.2)
 +
After 1.4: subtype = damageTypeMelee / damageTypeRanged / damageTypeAll
 +
 
 +
=== PERCENTAGE_DAMAGE_BOOST (since 1.2) ===
 +
Before 1.4: subtype -1 for any damage (not used), 0 for melee damage (offence), 1 for ranged damage (archery)
 +
After 1.4: subtype = damageTypeMelee / damageTypeRanged
 +
 
 +
=== GENERAL_ATTACK_REDUCTION ===
 +
eg. while stoned or blinded - in %
 +
*subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage
 +
 
 +
=== DEFENSIVE_STANCE ===
 +
WoG ability.
 +
*val - bonus to defense while defending
 +
 
 +
=== NO_DISTANCE_PENALTY ===
 +
=== NO_MELEE_PENALTY ===
 +
Ranged stack does full damage in melee.
 +
 
 +
=== NO_WALL_PENALTY ===
 +
=== FREE_SHOOTING ===
 +
stacks can shoot even if otherwise blocked (sharpshooter's bow effect)
 +
=== BLOCKS_RETALIATION ===
 +
eg. naga
 +
 
 +
=== SOUL_STEAL ===
 +
WoG ability. Gains new creatures for each enemy killed
 +
*val: number of units gained per enemy killed
 +
Before 1.4: subtype 0 means gained units survive after battle, 1 means they do not
 +
After 1.4: subtype = soulStealPermanent / soulStealBattle
 +
 
 +
=== TRANSMUTATION ===
 +
WoG ability. % chance to transform attacked unit to other type
 +
*val: chance to trigger in %
 +
Before 1.4: subtype 0 for resurrection based on HP, 1 for that based on unit count
 +
After 1.4: subtype = transmutationPerHealth / transmutationPerUnit
 +
*addInfo: additional info - target creature ID (attacker default)
 +
 
 +
=== SUMMON_GUARDIANS ===
 +
WoG ability. Summon guardians surrounding desired stack
 +
*val - amount in % of stack count
 +
*subtype = creature ID
 +
 
 +
=== RANGED_RETALIATION ===
 +
Allows shooters to perform ranged retaliation
 +
*no additional parameters
 +
 
 +
=== BLOCKS_RANGED_RETALIATION ===
 +
Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only
 +
*no additional parameters
 +
 
 +
=== WIDE_BREATH ===
 +
Dragon breath affecting multiple nearby hexes
 +
*no additional parameters
 +
 
 +
=== FIRST_STRIKE ===
 +
First counterattack, then attack if possible
 +
*no additional parameters
 +
 
 +
=== SHOOTS_ALL_ADJACENT ===
 +
H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics
 +
*no additional parameters
 +
 
 +
=== DESTRUCTION ===
 +
Kills extra units after hit
 +
Before 1.4: subtype 0 to kill percentage of units, 1 to kill amount
 +
After 1.4: subtype = destructionKillPercentage / destructionKillAmount
 +
*val: chance in percent to trigger
 +
*addInfo: amount/percentage to kill
 +
 
 +
=== LIMITED_SHOOTING_RANGE (since VCMI 1.2) ===
 +
Limits shooting range and/or changes long range penalty
 +
*val: max shooting range in hexes
 +
*addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10
  
 
== Special abilities ==
 
== Special abilities ==
* CATAPULT
+
=== CATAPULT ===
* CHANGES_SPELL_COST_FOR_ALLY in mana points (value , eg. mage  
+
*subtype: (since 1.2) ability to use when catapulting (usually it contains ballistics parameters, ability for standard catapult and affected by ballistics is core:spell.catapultShot)
* CHANGES_SPELL_COST_FOR_ENEMY in mana points (value , eg. pegasus 
+
 
* SPELL_RESISTANCE_AURA eg. unicorns, value - resistance bonus in % for adjacent creatures  
+
=== CATAPULT_EXTRA_SHOTS ===
* TWO_HEX_ATTACK_BREATH eg. dragons
+
*subtype: (since 1.2) ability to be affected. Ability of CATAPULT bonus should match. Used for ballistics secondary skill with subtype of core:spell.catapultShot.
* HP_REGENERATION creature regenerates val HP every new round
+
*val: (since 1.2) ability level to be used with catapult. Additional shots configured in ability level, not here.
* FULL_HP_REGENERATION first creature regenerates all HP every new round; subtype 0 - animation 4 (trolllike, 1 - animation 47 (wightlike
+
*val: (before 1.2) number of additional shots, requires CATAPULT bonus to work
* MANA_DRAIN value - spell points per turn
+
 
* MANA_CHANNELING value in %, eg. familiar  
+
=== MANUAL_CONTROL ===
* LIFE_DRAIN
+
* manually control warmachine with
* DOUBLE_DAMAGE_CHANCE value in %, eg. dread knight
+
*id = subtype
* FEAR
+
*val = chance
* NO_DISTANCE_PENALTY
+
* HEALER
+
=== CHANGES_SPELL_COST_FOR_ALLY  ===
* FIRE_SHIELD
+
eg. mage
* MAGIC_MIRROR  value - chance of redirecting in %
+
*value - reduction in mana points
* SLAYER value - level
+
 
* ACID_BREATH additional val damage per creature after attack, additional info - chance in percent
+
=== CHANGES_SPELL_COST_FOR_ENEMY ===
* DEATH_STARE subtype 0 - gorgon, 1 - commander
+
eg. Silver Pegasus
 +
*value - mana points penalty
 +
 
 +
=== SPELL_RESISTANCE_AURA ===
 +
eg. unicorns
 +
*value - resistance bonus in % for adjacent creatures
 +
 
 +
=== HP_REGENERATION ===
 +
creature regenerates val HP every new round
 +
* val: amount of HP regeneration per round
 +
 
 +
=== MANA_DRAIN ===
 +
value - spell points per turn
 +
 
 +
=== MANA_CHANNELING ===
 +
eg. familiar
 +
*value in %
 +
 
 +
=== LIFE_DRAIN ===
 +
* val - precentage of life drained
 +
 
 +
=== DOUBLE_DAMAGE_CHANCE ===
 +
eg. dread knight
 +
*value in %
 +
 
 +
=== FEAR ===
 +
=== HEALER ===
 +
First aid tent
 +
*subtype: (since 1.2) ability used for healing.
 +
 
 +
=== FIRE_SHIELD ===
 +
=== MAGIC_MIRROR ===
 +
*value - chance of redirecting in %
 +
 
 +
=== ACID_BREATH ===
 +
*val - damage per creature after attack,
 +
*additional info - chance in percent
 +
 
 +
=== DEATH_STARE ===
 +
Before 1.4: subtype 0 for gorgon, 1 for commander
 +
After 1.4: subtype = deathStareGorgon / deathStareCommander
 +
*val: if subtype is 0 or deathStareGorgon, its the (average) percentage of killed creatures related to size of attacking stack; if it is 1 or deathStareCommander, it means the number of creatures to kill (total amount of killed creatures is (attacker level / defender level) * val)
 +
 
 +
 
 +
=== SPECIAL_CRYSTAL_GENERATION ===
 +
Crystal dragon crystal generation
 +
 
 +
=== NO_SPELLCAST_BY_DEFAULT ===
 +
Spellcast will not be default attack option for this creature
  
 
== Creature spellcasting and activated abilities ==
 
== Creature spellcasting and activated abilities ==
* SPELLCASTER subtype - spell id, value - level of school, additional info - weighted chance. use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power  
+
=== SPELLCASTER ===
* ENCHANTER for Enchanter spells, val - skill level, subtype - spell id, additionalInfo - cooldown   
+
Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon
* RANDOM_SPELLCASTER eg. master genie, val - level
+
*subtype - spell id
*       SPELL_AFTER_ATTACK  subtype - spell id, value - chance %, additional info % 1000 - level, (additional info1000 -> [0 - all attacks, 1 - shot only, 2 - melee only  
+
*value - level of school
* SPELL_BEFORE_ATTACK  subtype - spell id, value - chance %, additional info % 1000 - level, (additional info1000 -> [0 - all attacks, 1 - shot only, 2 - melee only  
+
*additional info - weighted chance
* CASTS how many times creature can cast activated spell
+
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power
* SPECIFIC_SPELL_POWER  value used for Thunderbolt and Resurrection casted by units, subtype - spell id  
+
(since 1.2 those bonuses can be used for calculating CATAPULT and HEALER bonuses)
* CREATURE_SPELL_POWER  value per unit, divided by 100 (so faerie Dragons have 800
+
 
* CREATURE_ENCHANT_POWER total duration of spells casted by creature  
+
=== ENCHANTER ===
* DAEMON_SUMMONING pit lord, subtype - type of creatures, val - hp per unit
+
for Enchanter spells
* REBIRTH  val - percent of life restored, subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)
+
*val - skill level
 +
*subtype - spell id
 +
*additionalInfo - cooldown (number of turns)  
 +
 
 +
=== RANDOM_SPELLCASTER ===
 +
eg. master genie
 +
*val - spell mastery level
 +
 
 +
=== SPELL_AFTER_ATTACK ===
 +
*subtype - spell id
 +
*value - chance %
 +
*additional info - [X, Y]
 +
*X - spell level
 +
*Y = 0 - all attacks, 1 - shot only, 2 - melee only
 +
 
 +
=== SPELL_BEFORE_ATTACK ===
 +
*subtype - spell id
 +
*value - chance %
 +
*additional info - [X, Y]
 +
*X - spell level
 +
*Y = 0 - all attacks, 1 - shot only, 2 - melee only
 +
 
 +
=== CASTS ===
 +
how many times creature can cast activated spell
 +
 
 +
=== SPECIFIC_SPELL_POWER ===
 +
*value used for Thunderbolt and Resurrection casted by units, also for Healing secondary skill (for core:spell.firstAid used by First Aid tent)
 +
*subtype - spell id
 +
 
 +
=== CREATURE_SPELL_POWER ===
 +
*value per unit, divided by 100 (so faerie Dragons have 500)
 +
=== CREATURE_ENCHANT_POWER ===
 +
total duration of spells casted by creature  
 +
=== REBIRTH ===
 +
*val - percent of total stack HP restored
 +
Before 1.4: subtype 0 for regular rebirth, 1 means at least one unit would rebirth (sacred Phoenix)
 +
After 1.4: subtype = rebirthRegular / rebirthSpecial
 +
 
 +
===ENCHANTED===
 +
Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3.
 +
Enchantment is refreshed every turn.
  
 
== Spell immunities ==
 
== Spell immunities ==
* LEVEL_SPELL_IMMUNITY creature is immune to all spell with level below or equal to value of this bonus
+
=== LEVEL_SPELL_IMMUNITY ===
* MAGIC_RESISTANCE in % (value)
+
creature is immune to all spell with level below or equal to value of this bonus
* SPELL_DAMAGE_REDUCTION eg. golems; value - reduction in %, subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth
+
=== MAGIC_RESISTANCE ===
* MORE_DAMAGE_FROM_SPELL value - damage increase in %, subtype - spell id
+
*value - percent
* FIRE_IMMUNITY subtype 0 - all, 1 - all except positive, 2 - only damage spells
+
=== SPELL_DAMAGE_REDUCTION ===
* WATER_IMMUNITY
+
eg. golems
* EARTH_IMMUNITY
+
*value - reduction in %
* AIR_IMMUNITY
+
Before 1.4: subtype - spell school; -1 for all, 0 for air, 1 for fire, 2 for water, 3 for earth
* SPELL_IMMUNITY subid - spell id
+
After 1.4: subtype - spell school identifier
* DIRECT_DAMAGE_IMMUNITY direct damage spells, that is
+
=== MORE_DAMAGE_FROM_SPELL ===
* RECEPTIVE accepts friendly spells even with immunity
+
*value - damage increase in %
 +
* subtype - spell id
 +
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===
 +
*subtype 0 - all, 1 - all except positive, 2 - only damage spells
 +
=== SPELL_SCHOOL_IMMUNITY (Since 1.4) ===
 +
Affected unit is immune to all spells of a specified spell school
 +
* subtype - spell school to which this unit is immune to
 +
=== MIND_IMMUNITY ===
 +
Creature is immune to all mind spells.
 +
=== SPELL_IMMUNITY ===
 +
*subtype - spell id
 +
* ainfo - 0 - normal, 1 - absolute
 +
 
 +
=== DIRECT_DAMAGE_IMMUNITY ===
 +
WoG ability. Creature is completely immune to damage spells.
 +
=== RECEPTIVE ===
 +
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.
 +
 
 +
== Deprecated creature abilities ==
 +
=== DAEMON_SUMMONING ===
 +
pit lord - removed in VCMI 1.2 as part of major battles refactoring
 +
*subtype - type of creatures
 +
*val - hp per unit
  
 
= Spell effects =
 
= Spell effects =
* POISON val - max health penalty from poison possible
+
=== POISON ===
* BIND_EFFECT doesn't do anything particular, works as a marker
+
*val - max health penalty from poison possible
* FORGETFULL forgetfulness spell effect, value - level  
+
=== SLAYER ===
* NOT_ACTIVE
+
*value - spell level
* ALWAYS_MINIMUM_DAMAGE unit does its minimum damage from range; subtype: -1 - any attack, 0 - melee, 1 - ranged, value: additional damage penalty (it'll subtracted from dmg, additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]  
+
 
* ALWAYS_MAXIMUM_DAMAGE eg. bless effect, subtype: -1 - any attack, 0 - melee, 1 - ranged, value: additional damage, additional info - multiplicative bonus for dmg in %  
+
=== BIND_EFFECT ===
* ATTACKS_NEAREST_CREATURE while in berserk  
+
doesn't do anything particular, works as a marker
* IN_FRENZY value - level
+
=== FORGETFULL ===
* HYPNOTIZED
+
forgetfulness spell effect
 +
*value - level  
 +
=== NOT_ACTIVE ===
 +
=== ALWAYS_MINIMUM_DAMAGE ===
 +
unit does its minimum damage from range
 +
Before 1.4: subtype -1 for any attack, 0 for only melee attacks, 1 for only ranged attacks
 +
*value: additional damage penalty (it'll subtracted from dmg)
 +
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]
 +
 
 +
=== ALWAYS_MAXIMUM_DAMAGE ===
 +
eg. bless effect
 +
Before 1.4: subtype -1 for any attack, 0 for only melee attacks, 1 for only ranged attacks
 +
*value: additional damage
 +
*additional info - multiplicative bonus for dmg in %  
 +
=== ATTACKS_NEAREST_CREATURE ===
 +
while in berserk  
 +
=== IN_FRENZY ===
 +
*value - level
 +
 
 +
=== HYPNOTIZED ===
 +
 
 +
=== NO_RETALIATION ===
 +
Eg. when blinded or paralyzed.
 +
 
 +
{{Bonuses}}

Latest revision as of 15:09, 17 December 2023

The bonuses were grouped according to their original purpose. The bonus system allows them to propagate freely betwen the nodes, however they may not be recognized properly beyond the scope of original use.

Contents

General-purpose bonuses

NONE

MORALE, LUCK

  • val = value

MAGIC_SCHOOL_SKILL

eg. for magic plains terrain and for magic school secondary skills

  • subtype: school of magic (0 for all, 1 for air, 2 for fire, 4 for water, 8 for earth before 1.4, spellSchool.air / spellSchool.fire / spellSchool.water / spellSchool.earth after 1.4)
  • val - level

NO_TYPE

DARKNESS

  • val = radius

Hero bonuses

MOVEMENT

Before 1.2: both water / land After 1.2: subtype 0 for sea, subtype 1 for land After 1.4: subtype = heroMovementLand / heroMovementSea

  • val = number of movement points (100 points for a tile)

LAND_MOVEMENT, SEA_MOVEMENT (before 1.2)

  • val = number of movement points (100 points for a tile)

WATER_WALKING

Before 1.4: subtype 1 without penalty, 2 with penalty After 1.4: val = Penalty to movement, in percent

FLYING_MOVEMENT

Before 1.4: subtype 1 without penalty, 2 with penalty After 1.4: val = Penalty to movement, in percent

NO_TERRAIN_PENALTY (since 0.98f)

Hero does not get movement penalty on certain terrain type (Nomads ability).

  • subtype - type of terrain

PRIMARY_SKILL

  • uses subtype to pick skill
  • additional info if set: 1 - only melee, 2 - only distance

SIGHT_RADIOUS (before 1.2)

Additional bonus to range of sight (Used for Scouting secondary skill)

  • val = distance in tiles

SIGHT_RADIUS (after 1.2)

Sight radius of a hero. Used for base radius + Scouting secondary skill

  • val = distance in tiles

MANA_REGENERATION

Before 1.2: points per turn apart from normal (1 + mysticism) After 1.2: points per turn (used for artifacts, global 1 point/turn regeneration and mysticism secondary skill)

FULL_MANA_REGENERATION

all mana points are replenished every day

NONEVIL_ALIGNMENT_MIX

good and neutral creatures can be mixed without morale penalty

SECONDARY_SKILL_PREMY (before 1.2)

%

SURRENDER_DISCOUNT

%

IMPROVED_NECROMANCY

Before 1.2: allows Necropolis units other than skeletons to be raised by necromancy After 1.2: determine units which is raised by necromancy skill.

  • subtype: creature raised
  • val: Necromancer power
  • addInfo: limiter by Necromancer power
  • Example (from Necromancy skill):
 "power" : {
 	"type" : "IMPROVED_NECROMANCY",
 	"subtype" : "creature.skeleton",
 	"addInfo" : 0
 }

LEARN_BATTLE_SPELL_CHANCE (since 1.2)

  • subtype: 0 - from enemy hero, 1 - from entire battlefield (not implemented now). (Removed in 1.4)
  • val: chance to learn spell after battle victory

Note: used for Eagle Eye skill

LEARN_BATTLE_SPELL_LEVEL_LIMIT (since 1.2)

  • subtype: school (-1 for all), others TODO
  • val: maximum learning level

Note: used for Eagle Eye skill

LEARN_MEETING_SPELL_LIMIT (since 1.2)

  • subtype: school (-1 for all), others TODO
  • val: maximum learning level for learning a spell during hero exchange

Note: used for Scholar skill

ROUGH_TERRAIN_DISCOUNT (since 1.2)

  • val: Non-road terrain discount in movement points

Note: used for Pathfinding skill

WANDERING_CREATURES_JOIN_BONUS (since 1.2)

  • val: value than used as level of diplomacy inside joining probability calculating

BEFORE_BATTLE_REPOSITION (since 1.2)

  • val: number of hexes - 1 than should be used as repositionable hexes before battle (like H3 tactics skill)

BEFORE_BATTLE_REPOSITION_BLOCK (since 1.2)

  • val: value than block opposite tactics, if value of opposite tactics is less than this value of your hero (for 1.2, double-side tactics is not working).

HERO_EXPERIENCE_GAIN_PERCENT (since 1.2)

  • val: how many experience hero gains from any source. There is a global effect which set it by 100 (global value) and it is used as learning skill

UNDEAD_RAISE_PERCENTAGE (since 1.2)

  • val: Percentage of killed enemy creatures to be raised after battle as undead.

Note: used for Necromancy secondary skill, Necromancy artifacts and town buildings.

MANA_PER_KNOWLEDGE (since 1.2)

  • val: Percentage rate of translating 10 hero knowledge to mana, used for intelligence and global bonus

HERO_GRANTS_ATTACKS (since 1.2)

  • subtype: creature to have additional attacks
  • val: Number of attacks

Note: used for Artillery secondary skill

BONUS_DAMAGE_PERCENTAGE (since 1.2)

  • subtype: creature to have additional damage percentage
  • val: percentage to be granted

Note: used for Artillery secondary skill

BONUS_DAMAGE_CHANCE (since 1.2)

  • subtype: creature to have additional damage chance (will have BONUS_DAMAGE_PERCENTAGE applied before attack concluded)
  • val: chance in percent

MAX_LEARNABLE_SPELL_LEVEL (since 1.2)

  • val: maximum level of spells than hero can learn from any source. This bonus have priority above any other LEARN_*SPELL_LEVEL bonuses.

Note: used as global effect and as wisdom secondary skill.

Hero specialties

SPECIAL_SPELL_LEV

  • subtype = identifier of affected spell
  • additionalInfo = value per level in percent

SPELL_DAMAGE

Since 1.2: used for Sorcery secondary skill

  • val = value in percent

SPECIFIC_SPELL_DAMAGE

  • subtype = id of spell
  • val = value in percent (Luna, Ciele)

SPECIAL_BLESS_DAMAGE (before 1.2)

  • subtype = spell (bless by default)
  • val = value per level in percent

MAXED_SPELL (before 1.2)

Spell always has expert effects but not expert range

  • subtype = id

SPECIAL_PECULIAR_ENCHANT

blesses and curses with id = val dependent on unit's level Before 1.4: subtype = 0 or 1 for Coronius After 1.4: subtype - affected spell identifier

SPECIAL_UPGRADE

  • subtype = base creature ID
  • addInfo = target creature ID

Artifact bonuses

SPELL_DURATION

AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY

Effect of original Orb artifacts.

  • val - percent bonus to air / earth / fire / water spell damage.

BLOCK_MORALE, BLOCK_LUCK (removed in 1.2)

SPELL

Hero knows spell, even if this spell is banned in map options or set to "special".

  • subtype - spell id
  • val - skill level (0 - 3)

SPELLS_OF_LEVEL

hero knows all spells of given level

  • subtype - level (in form "spellLevelX" after 1.4, where X is desired level)
  • val - skill level

Does not grant spells banned in map options.

FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS

All spells of this school are granted to hero, eg. by Tomes of Magic. Does not grant spells banned in map options.

GENERATE_RESOURCE

  • subtype - resource type
  • val - daily income

CREATURE_GROWTH

for legion artifacts

  • value - weekly growth bonus,
  • subtype - monster level if aplicable

CREATURE_GROWTH_PERCENT

increases growth of all units in all towns,

  • val - percentage

BATTLE_NO_FLEEING

for Shackles of War

NEGATE_ALL_NATURAL_IMMUNITIES

Orb of Vulnerability

OPENING_BATTLE_SPELL

casts a spell at expert level at beginning of battle

  • subtype - spell id
  • val - spell power

FREE_SHIP_BOARDING

movement points preserved with ship boarding and landing

WHIRLPOOL_PROTECTION

hero won't lose army when teleporting through whirlpool

Creature bonuses

STACK_HEALTH

STACKS_SPEED

  • additional info - percent of speed bonus applied after direct bonuses; >0 - added, <0 - subtracted to this part

CREATURE_DAMAGE

Before 1.4: subtype 0 for both, 1 for min, 2 for max After 1.4: subtype = creatureDamageBoth / creatureDamageMin / creatureDamageMax

SHOTS

EXP_MULTIPLIER

  • val - percent of additional exp gained by stack / commander (base value 100)

Creature abilities

Static abilities and immunities

NON_LIVING

eg. golems, elementals

GARGOYLE

Gargoyle is special than NON_LIVING, cannot be rised or healed

UNDEAD

SIEGE_WEAPON

War machines have it. They cannot be raised or healed, have no morale and don't move.

DRAGON_NATURE

KING1, KING2, KING3 (before 1.2)

Creatures take more damage from basic, advanced or expert Slayer effect.

KING (after 1.2)

Creatures take more damage from Slayer effect than have greater or equal value than KING bonus.

FEARLESS

NO_LUCK

eg. when fighting on cursed ground

NO_MORALE

eg. when fighting on cursed ground

SELF_MORALE (before 1.2)

eg. minotaur

SELF_LUCK (before 1.2)

halfling

Combat abilities

FLYING

Before 1.4: subtype 0 for regular flying, 1 - teleporting After 1.4: subtype = movementFlying / movementTeleporting

SHOOTER

CHARGE_IMMUNITY

ADDITIONAL_ATTACK

UNLIMITED_RETALIATIONS

ADDITIONAL_RETALIATION

  • value - number of additional retaliations

JOUSTING

for champions

  • val: percentage of charge

HATE

eg. angels hate devils,

  • subtype - ID of hated creature,
  • val - damage bonus percent

SPELL_LIKE_ATTACK

range is taken from spell, but damage from creature; eg. magog, lich

  • subtype - spell,
  • value - spell level

THREE_HEADED_ATTACK

eg. cerberus

ATTACKS_ALL_ADJACENT

eg. hydra

TWO_HEX_ATTACK_BREATH

eg. dragons

RETURN_AFTER_STRIKE

ENEMY_DEFENCE_REDUCTION

in % (value) eg. behemots

GENERAL_DAMAGE_REDUCTION

Before 1.4: subtype 0 for melee damage (shield), 1 for ranged damage (air shield effect), -1 for all damage (armorer secondary skill, since 1.2) After 1.4: subtype = damageTypeMelee / damageTypeRanged / damageTypeAll

PERCENTAGE_DAMAGE_BOOST (since 1.2)

Before 1.4: subtype -1 for any damage (not used), 0 for melee damage (offence), 1 for ranged damage (archery) After 1.4: subtype = damageTypeMelee / damageTypeRanged

GENERAL_ATTACK_REDUCTION

eg. while stoned or blinded - in %

  • subtype: -1 - any damage, 0 - melee damage, 1 - ranged damage

DEFENSIVE_STANCE

WoG ability.

  • val - bonus to defense while defending

NO_DISTANCE_PENALTY

NO_MELEE_PENALTY

Ranged stack does full damage in melee.

NO_WALL_PENALTY

FREE_SHOOTING

stacks can shoot even if otherwise blocked (sharpshooter's bow effect)

BLOCKS_RETALIATION

eg. naga

SOUL_STEAL

WoG ability. Gains new creatures for each enemy killed

  • val: number of units gained per enemy killed

Before 1.4: subtype 0 means gained units survive after battle, 1 means they do not After 1.4: subtype = soulStealPermanent / soulStealBattle

TRANSMUTATION

WoG ability. % chance to transform attacked unit to other type

  • val: chance to trigger in %

Before 1.4: subtype 0 for resurrection based on HP, 1 for that based on unit count After 1.4: subtype = transmutationPerHealth / transmutationPerUnit

  • addInfo: additional info - target creature ID (attacker default)

SUMMON_GUARDIANS

WoG ability. Summon guardians surrounding desired stack

  • val - amount in % of stack count
  • subtype = creature ID

RANGED_RETALIATION

Allows shooters to perform ranged retaliation

  • no additional parameters

BLOCKS_RANGED_RETALIATION

Disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only

  • no additional parameters

WIDE_BREATH

Dragon breath affecting multiple nearby hexes

  • no additional parameters

FIRST_STRIKE

First counterattack, then attack if possible

  • no additional parameters

SHOOTS_ALL_ADJACENT

H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics

  • no additional parameters

DESTRUCTION

Kills extra units after hit Before 1.4: subtype 0 to kill percentage of units, 1 to kill amount After 1.4: subtype = destructionKillPercentage / destructionKillAmount

  • val: chance in percent to trigger
  • addInfo: amount/percentage to kill

LIMITED_SHOOTING_RANGE (since VCMI 1.2)

Limits shooting range and/or changes long range penalty

  • val: max shooting range in hexes
  • addInfo: optional - sets range for "broken arrow" half damage mechanic - default is 10

Special abilities

CATAPULT

  • subtype: (since 1.2) ability to use when catapulting (usually it contains ballistics parameters, ability for standard catapult and affected by ballistics is core:spell.catapultShot)

CATAPULT_EXTRA_SHOTS

  • subtype: (since 1.2) ability to be affected. Ability of CATAPULT bonus should match. Used for ballistics secondary skill with subtype of core:spell.catapultShot.
  • val: (since 1.2) ability level to be used with catapult. Additional shots configured in ability level, not here.
  • val: (before 1.2) number of additional shots, requires CATAPULT bonus to work

MANUAL_CONTROL

  • manually control warmachine with
  • id = subtype
  • val = chance

CHANGES_SPELL_COST_FOR_ALLY

eg. mage

  • value - reduction in mana points

CHANGES_SPELL_COST_FOR_ENEMY

eg. Silver Pegasus

  • value - mana points penalty

SPELL_RESISTANCE_AURA

eg. unicorns

  • value - resistance bonus in % for adjacent creatures

HP_REGENERATION

creature regenerates val HP every new round

  • val: amount of HP regeneration per round

MANA_DRAIN

value - spell points per turn

MANA_CHANNELING

eg. familiar

  • value in %

LIFE_DRAIN

  • val - precentage of life drained

DOUBLE_DAMAGE_CHANCE

eg. dread knight

  • value in %

FEAR

HEALER

First aid tent

  • subtype: (since 1.2) ability used for healing.

FIRE_SHIELD

MAGIC_MIRROR

  • value - chance of redirecting in %

ACID_BREATH

  • val - damage per creature after attack,
  • additional info - chance in percent

DEATH_STARE

Before 1.4: subtype 0 for gorgon, 1 for commander After 1.4: subtype = deathStareGorgon / deathStareCommander

  • val: if subtype is 0 or deathStareGorgon, its the (average) percentage of killed creatures related to size of attacking stack; if it is 1 or deathStareCommander, it means the number of creatures to kill (total amount of killed creatures is (attacker level / defender level) * val)


SPECIAL_CRYSTAL_GENERATION

Crystal dragon crystal generation

NO_SPELLCAST_BY_DEFAULT

Spellcast will not be default attack option for this creature

Creature spellcasting and activated abilities

SPELLCASTER

Creature gain activated ability to cast a spell. Example: Archangel, Faerie Dragon

  • subtype - spell id
  • value - level of school
  • additional info - weighted chance

use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power (since 1.2 those bonuses can be used for calculating CATAPULT and HEALER bonuses)

ENCHANTER

for Enchanter spells

  • val - skill level
  • subtype - spell id
  • additionalInfo - cooldown (number of turns)

RANDOM_SPELLCASTER

eg. master genie

  • val - spell mastery level

SPELL_AFTER_ATTACK

  • subtype - spell id
  • value - chance %
  • additional info - [X, Y]
  • X - spell level
  • Y = 0 - all attacks, 1 - shot only, 2 - melee only

SPELL_BEFORE_ATTACK

  • subtype - spell id
  • value - chance %
  • additional info - [X, Y]
  • X - spell level
  • Y = 0 - all attacks, 1 - shot only, 2 - melee only

CASTS

how many times creature can cast activated spell

SPECIFIC_SPELL_POWER

  • value used for Thunderbolt and Resurrection casted by units, also for Healing secondary skill (for core:spell.firstAid used by First Aid tent)
  • subtype - spell id

CREATURE_SPELL_POWER

  • value per unit, divided by 100 (so faerie Dragons have 500)

CREATURE_ENCHANT_POWER

total duration of spells casted by creature

REBIRTH

  • val - percent of total stack HP restored

Before 1.4: subtype 0 for regular rebirth, 1 means at least one unit would rebirth (sacred Phoenix) After 1.4: subtype = rebirthRegular / rebirthSpecial

ENCHANTED

Stack is permanently enchanted with spell subID of skill level = val, if val > 3 then spell is mass and has level of val-3. Enchantment is refreshed every turn.

Spell immunities

LEVEL_SPELL_IMMUNITY

creature is immune to all spell with level below or equal to value of this bonus

MAGIC_RESISTANCE

  • value - percent

SPELL_DAMAGE_REDUCTION

eg. golems

  • value - reduction in %

Before 1.4: subtype - spell school; -1 for all, 0 for air, 1 for fire, 2 for water, 3 for earth After 1.4: subtype - spell school identifier

MORE_DAMAGE_FROM_SPELL

  • value - damage increase in %
  • subtype - spell id

FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY

  • subtype 0 - all, 1 - all except positive, 2 - only damage spells

SPELL_SCHOOL_IMMUNITY (Since 1.4)

Affected unit is immune to all spells of a specified spell school

  • subtype - spell school to which this unit is immune to

MIND_IMMUNITY

Creature is immune to all mind spells.

SPELL_IMMUNITY

  • subtype - spell id
  • ainfo - 0 - normal, 1 - absolute

DIRECT_DAMAGE_IMMUNITY

WoG ability. Creature is completely immune to damage spells.

RECEPTIVE

WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.

Deprecated creature abilities

DAEMON_SUMMONING

pit lord - removed in VCMI 1.2 as part of major battles refactoring

  • subtype - type of creatures
  • val - hp per unit

Spell effects

POISON

  • val - max health penalty from poison possible

SLAYER

  • value - spell level

BIND_EFFECT

doesn't do anything particular, works as a marker

FORGETFULL

forgetfulness spell effect

  • value - level

NOT_ACTIVE

ALWAYS_MINIMUM_DAMAGE

unit does its minimum damage from range Before 1.4: subtype -1 for any attack, 0 for only melee attacks, 1 for only ranged attacks

  • value: additional damage penalty (it'll subtracted from dmg)
  • additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]

ALWAYS_MAXIMUM_DAMAGE

eg. bless effect Before 1.4: subtype -1 for any attack, 0 for only melee attacks, 1 for only ranged attacks

  • value: additional damage
  • additional info - multiplicative bonus for dmg in %

ATTACKS_NEAREST_CREATURE

while in berserk

IN_FRENZY

  • value - level

HYPNOTIZED

NO_RETALIATION

Eg. when blinded or paralyzed.

Bonus string constants

Additional links