Difference between revisions of "List of all bonus types"

From VCMI Project Wiki
Jump to: navigation, search
(REBIRTH)
m (Update for new subtype formats in 1.4.)
 
(36 intermediate revisions by 7 users not shown)
Line 6: Line 6:
 
*val = value
 
*val = value
 
=== MAGIC_SCHOOL_SKILL ===
 
=== MAGIC_SCHOOL_SKILL ===
eg. for magic plains terrain
+
eg. for magic plains terrain and for magic school secondary skills
*subtype: school of magic (0 - all, 1 - fire, 2 - air, 4 - water, 8 - earth)
+
*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
 
*val - level
  
Line 16: Line 16:
 
= Hero bonuses =
 
= Hero bonuses =
 
=== MOVEMENT ===
 
=== MOVEMENT ===
both water / land
+
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)
 
* val = number of movement points (100 points for a tile)
  
=== LAND_MOVEMENT, SEA_MOVEMENT ===
+
=== LAND_MOVEMENT, SEA_MOVEMENT (before 1.2) ===
 
* val = number of movement points (100 points for a tile)
 
* val = number of movement points (100 points for a tile)
 +
 
=== WATER_WALKING ===
 
=== WATER_WALKING ===
*subtype: 1 - without penalty, 2 - with penalty
+
Before 1.4: subtype 1 without penalty, 2 with penalty
 +
After 1.4: val = Penalty to movement, in percent
  
 
=== FLYING_MOVEMENT ===
 
=== FLYING_MOVEMENT ===
*subtype: 1 - without penalty, 2 - with penalty
+
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 ===
 
=== PRIMARY_SKILL ===
Line 31: Line 40:
 
* additional info if set: 1 - only melee, 2 - only distance
 
* additional info if set: 1 - only melee, 2 - only distance
  
=== SIGHT_RADIOUS ===
+
=== SIGHT_RADIOUS (before 1.2) ===
Additional bonus to range of sight
+
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
 
* val = distance in tiles
  
 
=== MANA_REGENERATION ===
 
=== MANA_REGENERATION ===
points per turn apart from normal (1 + mysticism)  
+
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 ===
 
=== FULL_MANA_REGENERATION ===
all mana points are replenished every day
+
all mana points are replenished every day
 +
 
 
=== NONEVIL_ALIGNMENT_MIX ===
 
=== NONEVIL_ALIGNMENT_MIX ===
good and neutral creatures can be mixed without morale penalty   
+
good and neutral creatures can be mixed without morale penalty  
=== SECONDARY_SKILL_PREMY ===
+
   
 +
=== SECONDARY_SKILL_PREMY (before 1.2) ===
 
%   
 
%   
 
=== SURRENDER_DISCOUNT ===
 
=== SURRENDER_DISCOUNT ===
 
%  
 
%  
 +
 
=== IMPROVED_NECROMANCY ===
 
=== IMPROVED_NECROMANCY ===
allows Necropolis units other than skeletons to be raised by 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 ===
 
*subtype = skill id
 
*additionalInfo = value per level in percent
 
  
 
=== SPECIAL_SPELL_LEV ===
 
=== SPECIAL_SPELL_LEV ===
*subtype = id
+
*subtype = identifier of affected spell
 
*additionalInfo = value per level in percent
 
*additionalInfo = value per level in percent
  
 
=== SPELL_DAMAGE ===
 
=== SPELL_DAMAGE ===
 +
Since 1.2: used for Sorcery secondary skill
 
*val = value in percent
 
*val = value in percent
  
Line 63: Line 146:
 
*val = value in percent (Luna, Ciele)
 
*val = value in percent (Luna, Ciele)
  
=== SPECIAL_BLESS_DAMAGE ===
+
=== SPECIAL_BLESS_DAMAGE (before 1.2) ===
 
*subtype = spell (bless by default)
 
*subtype = spell (bless by default)
 
*val = value per level in percent
 
*val = value per level in percent
  
=== MAXED_SPELL ===
+
=== MAXED_SPELL (before 1.2) ===
 
Spell always has expert effects but not expert range
 
Spell always has expert effects but not expert range
 
*subtype = id
 
*subtype = id
Line 73: Line 156:
 
=== SPECIAL_PECULIAR_ENCHANT ===
 
=== SPECIAL_PECULIAR_ENCHANT ===
 
blesses and curses with id = val dependent on unit's level
 
blesses and curses with id = val dependent on unit's level
*subtype = 0 or 1 for Coronius
+
Before 1.4: subtype = 0 or 1 for Coronius
 +
After 1.4: subtype - affected spell identifier
  
 
=== SPECIAL_UPGRADE ===
 
=== SPECIAL_UPGRADE ===
*val = base creature ID
+
*subtype = base creature ID
 
*addInfo = target creature ID
 
*addInfo = target creature ID
  
Line 82: Line 166:
 
=== SPELL_DURATION ===
 
=== SPELL_DURATION ===
 
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===
 
=== AIR_SPELL_DMG_PREMY, EARTH_SPELL_DMG_PREMY, FIRE_SPELL_DMG_PREMY, WATER_SPELL_DMG_PREMY ===
=== BLOCK_MORALE, BLOCK_LUCK ===
+
 
 +
Effect of original Orb artifacts.
 +
 
 +
* val - '''percent''' bonus to air / earth / fire / water spell damage.
 +
 
 +
=== BLOCK_MORALE, BLOCK_LUCK (removed in 1.2) ===
 
=== SPELL ===
 
=== SPELL ===
hero knows spell
+
Hero knows spell, even if this spell is banned in map options or set to "special".
 
*subtype - spell id
 
*subtype - spell id
 
*val - skill level (0 - 3)
 
*val - skill level (0 - 3)
Line 90: Line 179:
 
=== SPELLS_OF_LEVEL ===
 
=== SPELLS_OF_LEVEL ===
 
hero knows all spells of given level
 
hero knows all spells of given level
*subtype - level
+
*subtype - level (in form "spellLevelX" after 1.4, where X is desired level)
 
*val - skill level
 
*val - skill level
 +
Does not grant spells banned in map options.
  
 
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===
 
=== FIRE_SPELLS, AIR_SPELLS, WATER_SPELLS, EARTH_SPELLS ===
All spells of this school are granted to hero, eg. by Tomes of Magic
+
All spells of this school are granted to hero, eg. by Tomes of Magic.
 +
Does not grant spells banned in map options.
  
 
=== GENERATE_RESOURCE ===
 
=== GENERATE_RESOURCE ===
Line 109: Line 200:
 
*val - percentage
 
*val - percentage
  
=== ENEMY_CANT_ESCAPE ===
+
=== BATTLE_NO_FLEEING ===
for Shackles of War  
+
for Shackles of War
 +
 
 
=== NEGATE_ALL_NATURAL_IMMUNITIES ===
 
=== NEGATE_ALL_NATURAL_IMMUNITIES ===
 
Orb of Vulnerability
 
Orb of Vulnerability
Line 129: Line 221:
  
 
=== CREATURE_DAMAGE ===
 
=== CREATURE_DAMAGE ===
*subtype: 0 = both, 1 = min, 2 = max
+
Before 1.4: subtype 0 for both, 1 for min, 2 for max
 +
After 1.4: subtype = creatureDamageBoth / creatureDamageMin / creatureDamageMax
  
 
=== SHOTS ===
 
=== SHOTS ===
Line 138: Line 231:
 
== Static abilities and immunities ==
 
== Static abilities and immunities ==
 
=== NON_LIVING ===
 
=== NON_LIVING ===
eg. gargoyle
+
eg. golems, elementals
=== UNDEAD ===
+
=== 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 ===
 
=== DRAGON_NATURE ===
=== KING1, KING2, KING3 ===
+
=== KING1, KING2, KING3 (before 1.2) ===
 
Creatures take more damage from basic, advanced or expert Slayer effect.
 
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 ===
 
=== FEARLESS ===
 
=== NO_LUCK ===
 
=== NO_LUCK ===
Line 149: Line 247:
 
=== NO_MORALE ===
 
=== NO_MORALE ===
 
eg. when fighting on cursed ground
 
eg. when fighting on cursed ground
=== SELF_MORALE ===
+
=== SELF_MORALE (before 1.2) ===
 
eg. minotaur
 
eg. minotaur
=== SELF_LUCK ===
+
=== SELF_LUCK (before 1.2) ===
 
halfling
 
halfling
  
 
== Combat abilities ==
 
== Combat abilities ==
 
=== FLYING ===
 
=== FLYING ===
*subtype - 0 - regular, 1 - teleport
+
Before 1.4: subtype 0 for regular flying, 1 - teleporting
 +
After 1.4: subtype = movementFlying / movementTeleporting
  
 
=== SHOOTER ===
 
=== SHOOTER ===
Line 166: Line 265:
  
 
=== JOUSTING ===
 
=== JOUSTING ===
for champions
+
for champions
 +
*val: percentage of charge
 +
 
=== HATE ===
 
=== HATE ===
 
eg. angels hate devils,
 
eg. angels hate devils,
Line 187: Line 288:
 
in % (value) eg. behemots  
 
in % (value) eg. behemots  
 
=== GENERAL_DAMAGE_REDUCTION ===
 
=== GENERAL_DAMAGE_REDUCTION ===
0 - shield (melee) , 1 - air shield effect (ranged)
+
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 ===
 
=== GENERAL_ATTACK_REDUCTION ===
Line 206: Line 312:
 
=== BLOCKS_RETALIATION ===
 
=== BLOCKS_RETALIATION ===
 
eg. naga
 
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 ===
 +
*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  ===
 
=== CHANGES_SPELL_COST_FOR_ALLY  ===
 
eg. mage
 
eg. mage
Line 220: Line 388:
 
eg. unicorns
 
eg. unicorns
 
*value - resistance bonus in % for adjacent creatures
 
*value - resistance bonus in % for adjacent creatures
 +
 
=== HP_REGENERATION ===
 
=== HP_REGENERATION ===
 
creature regenerates val HP every new round
 
creature regenerates val HP every new round
* subtype - 1 for green animation
+
* val: amount of HP regeneration per round
 
 
=== FULL_HP_REGENERATION ===
 
first creature regenerates all HP every new round
 
*subtype 0 - animation 4 (trolllike), 1 - animation 47 (wightlike)
 
  
 
=== MANA_DRAIN ===
 
=== MANA_DRAIN ===
 
value - spell points per turn
 
value - spell points per turn
 +
 
=== MANA_CHANNELING ===
 
=== MANA_CHANNELING ===
 
eg. familiar
 
eg. familiar
Line 235: Line 401:
  
 
=== LIFE_DRAIN ===
 
=== LIFE_DRAIN ===
* val - precentage of life drained (since 0.92)
+
* val - precentage of life drained
  
 
=== DOUBLE_DAMAGE_CHANCE ===
 
=== DOUBLE_DAMAGE_CHANCE ===
Line 244: Line 410:
 
=== HEALER ===
 
=== HEALER ===
 
First aid tent
 
First aid tent
 +
*subtype: (since 1.2) ability used for healing.
 +
 
=== FIRE_SHIELD ===
 
=== FIRE_SHIELD ===
 
=== MAGIC_MIRROR ===
 
=== MAGIC_MIRROR ===
Line 253: Line 421:
  
 
=== DEATH_STARE ===
 
=== DEATH_STARE ===
*subtype: 0 - gorgon, 1 - commander
+
Before 1.4: subtype 0 for gorgon, 1 for commander
*val: if subtype is 0, its the (average) percentage of killed creatures related to size of attacking stack
+
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 ==
Line 263: Line 439:
 
*additional info - weighted chance
 
*additional info - weighted chance
 
use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power
 
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 ===
 
=== ENCHANTER ===
Line 269: Line 446:
 
*subtype - spell id
 
*subtype - spell id
 
*additionalInfo - cooldown (number of turns)   
 
*additionalInfo - cooldown (number of turns)   
 +
 
=== RANDOM_SPELLCASTER ===
 
=== RANDOM_SPELLCASTER ===
 
eg. master genie
 
eg. master genie
Line 276: Line 454:
 
*subtype - spell id
 
*subtype - spell id
 
*value - chance %
 
*value - chance %
*additional info % 1000 - level
+
*additional info - [X, Y]
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]
+
*X - spell level
 +
*Y = 0 - all attacks, 1 - shot only, 2 - melee only
 +
 
 
=== SPELL_BEFORE_ATTACK ===
 
=== SPELL_BEFORE_ATTACK ===
 
*subtype - spell id
 
*subtype - spell id
 
*value - chance %
 
*value - chance %
*additional info % 1000 - level
+
*additional info - [X, Y]
*additional info / 1000 -> [0 - all attacks, 1 - shot only, 2 - melee only]
+
*X - spell level
 +
*Y = 0 - all attacks, 1 - shot only, 2 - melee only
  
 
=== CASTS ===
 
=== CASTS ===
 
how many times creature can cast activated spell
 
how many times creature can cast activated spell
 +
 
=== SPECIFIC_SPELL_POWER ===
 
=== SPECIFIC_SPELL_POWER ===
*value used for Thunderbolt and Resurrection casted by units
+
*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  
+
*subtype - spell id
 +
 
 
=== CREATURE_SPELL_POWER ===
 
=== CREATURE_SPELL_POWER ===
 
*value per unit, divided by 100 (so faerie Dragons have 500)  
 
*value per unit, divided by 100 (so faerie Dragons have 500)  
 
=== CREATURE_ENCHANT_POWER ===
 
=== CREATURE_ENCHANT_POWER ===
 
total duration of spells casted by creature  
 
total duration of spells casted by creature  
=== DAEMON_SUMMONING ===
 
pit lord
 
*subtype - type of creatures
 
*val - hp per unit
 
 
=== REBIRTH ===
 
=== REBIRTH ===
 
*val - percent of total stack HP restored
 
*val - percent of total stack HP restored
*subtype = 0 - regular, 1 - at least one unit (sacred Phoenix)
+
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===
 
===ENCHANTED===
Line 313: Line 493:
 
eg. golems
 
eg. golems
 
*value - reduction in %
 
*value - reduction in %
*subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth
+
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 ===
 
=== MORE_DAMAGE_FROM_SPELL ===
 
*value - damage increase in %
 
*value - damage increase in %
Line 319: Line 500:
 
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===
 
=== FIRE_IMMUNITY,WATER_IMMUNITY, EARTH_IMMUNITY, AIR_IMMUNITY ===
 
*subtype 0 - all, 1 - all except positive, 2 - only damage spells
 
*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 ===
 
=== MIND_IMMUNITY ===
 
Creature is immune to all mind spells.
 
Creature is immune to all mind spells.
 
=== SPELL_IMMUNITY ===
 
=== SPELL_IMMUNITY ===
 
*subtype - spell id
 
*subtype - spell id
 +
* ainfo - 0 - normal, 1 - absolute
 +
 
=== DIRECT_DAMAGE_IMMUNITY ===
 
=== DIRECT_DAMAGE_IMMUNITY ===
 
WoG ability. Creature is completely immune to damage spells.
 
WoG ability. Creature is completely immune to damage spells.
 
=== RECEPTIVE ===
 
=== RECEPTIVE ===
 
WoG ability. Creature accepts all friendly spells even though it would be normally immune to it.
 
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 =
Line 342: Line 534:
 
=== ALWAYS_MINIMUM_DAMAGE ===
 
=== ALWAYS_MINIMUM_DAMAGE ===
 
unit does its minimum damage from range
 
unit does its minimum damage from range
*subtype: -1 - any attack, 0 - melee, 1 - ranged
+
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)
 
*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]
 
*additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]
Line 348: Line 540:
 
=== ALWAYS_MAXIMUM_DAMAGE ===
 
=== ALWAYS_MAXIMUM_DAMAGE ===
 
eg. bless effect
 
eg. bless effect
*subtype: -1 - any attack, 0 - melee, 1 - ranged
+
Before 1.4: subtype -1 for any attack, 0 for only melee attacks, 1 for only ranged attacks
 
*value: additional damage
 
*value: additional damage
 
*additional info - multiplicative bonus for dmg in %  
 
*additional info - multiplicative bonus for dmg in %  

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