CombatAi Archetypes And Modifiers
From Divinity Engine Wiki
The following archetypes already exist in D:OS2 and can have their modifiers overridden:
- base
- berserker
- bomber
- healer
- mage
- melee
- ranged
- ranger
- rogue
- warrior
The following table lists all modifiers, their default value in the base archetype, and a short desciption on how their used. More information on the italic terms and a basic explanation on how scores work for Ai can be found here:
Modifier | Base Value | Description |
---|---|---|
SCORE_MOD | 100.0 | A general modifier that you probably shouldn't change, but you're welcome to try |
MULTIPLIER_DAMAGE_SELF_POS | 1.0 | Damage score on self that's considered positive (e.g. when removing the Burning status, which 'removes' damage) |
MULTIPLIER_DAMAGE_SELF_NEG | 1.0 | Damage score on self that's considered negative (this is just damage) |
MULTIPLIER_DAMAGE_ENEMY_POS | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_POS, but for enemies (this is just damage) |
MULTIPLIER_DAMAGE_ENEMY_NEG | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_NEG, but for enemies (e.g. when removing the Burning status, which 'removes' damage) |
MULTIPLIER_DAMAGE_ALLY_POS | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_POS, but for allies |
MULTIPLIER_DAMAGE_ALLY_NEG | 1.5 | Same as MULTIPLIER_DAMAGE_SELF_NEG, but for allies |
MULTIPLIER_DAMAGE_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_POS, but for neutrals |
MULTIPLIER_DAMAGE_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_NEG, but for neutrals |
MULTIPLIER_HEAL_SELF_POS | 1.0 | Healing score on self that's considered positive (this is just healing) |
MULTIPLIER_HEAL_SELF_NEG | 1.0 | Healing score on self that's considered negative (e.g. when removing the Restoration status, which 'removes' healing) |
MULTIPLIER_HEAL_ENEMY_POS | 1.0 | Same as MULTIPLIER_HEAL_SELF_POS, but for enemies (e.g. when removing the Restoration status, which 'removes' healing) |
MULTIPLIER_HEAL_ENEMY_NEG | 1.0 | Same as MULTIPLIER_HEAL_SELF_NEG, but for enemies (this is just healing) |
MULTIPLIER_HEAL_ALLY_POS | 1.0 | Same as MULTIPLIER_HEAL_SELF_POS, but for allies |
MULTIPLIER_HEAL_ALLY_NEG | 1.0 | Same as MULTIPLIER_HEAL_SELF_NEG, but for allies |
MULTIPLIER_HEAL_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_HEAL_SELF_POS, but for neutrals |
MULTIPLIER_HEAL_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_HEAL_SELF_NEG, but for neutrals |
MULTIPLIER_DOT_SELF_POS | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_POS, but for damage over time |
MULTIPLIER_DOT_SELF_NEG | 1.0 | Same as MULTIPLIER_DAMAGE_SELF_NEG, but for damage over time |
MULTIPLIER_DOT_ENEMY_POS | 1.0 | Same as MULTIPLIER_DAMAGE_ENEMY_POS, but for damage over time |
MULTIPLIER_DOT_ENEMY_NEG | 1.0 | Same as MULTIPLIER_DAMAGE_ENEMY_NEG, but for damage over time |
MULTIPLIER_DOT_ALLY_POS | 1.0 | Same as MULTIPLIER_DAMAGE_ALLY_POS, but for damage over time |
MULTIPLIER_DOT_ALLY_NEG | 1.0 | Same as MULTIPLIER_DAMAGE_ALLY_NEG, but for damage over time |
MULTIPLIER_DOT_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_NEUTRAL_SELF_POS, but for damage over time |
MULTIPLIER_DOT_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_NEUTRAL_SELF_NEG, but for damage over time |
MULTIPLIER_HOT_SELF_POS | 1.0 | Same as MULTIPLIER_HEAL_SELF_POS, but for healing over time |
MULTIPLIER_HOT_SELF_NEG | 1.0 | Same as MULTIPLIER_HEAL_SELF_NEG, but for healing over time |
MULTIPLIER_HOT_ENEMY_POS | 1.0 | Same as MULTIPLIER_HEAL_ENEMY_POS, but for healing over time |
MULTIPLIER_HOT_ENEMY_NEG | 1.0 | Same as MULTIPLIER_HEAL_ENEMY_NEG, but for healing over time |
MULTIPLIER_HOT_ALLY_POS | 1.0 | Same as MULTIPLIER_HEAL_ALLY_POS, but for healing over time |
MULTIPLIER_HOT_ALLY_NEG | 1.0 | Same as MULTIPLIER_HEAL_ALLY_NEG, but for healing over time |
MULTIPLIER_HOT_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_NEUTRAL_SELF_POS, but for healing over time |
MULTIPLIER_HOT_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_NEUTRAL_SELF_NEG, but for healing over time |
MULTIPLIER_CONTROL_SELF_POS | 1.0 | Control score on self that's considered positive. Control score comes from the statuses KnockedDown, Blind, ShacklesOfPain, Fear, Charmed, Incapacitated, and any Consume status that makes you lose control. (e.g. removing KnockedDown) |
MULTIPLIER_CONTROL_SELF_NEG | 2.0 | Control score on self that's considered negative. (e.g. applying KnockedDown) |
MULTIPLIER_CONTROL_ENEMY_POS | 1.0 | Same as MULTIPLIER_CONTROL_SELF_POS, but for enemies (e.g. applying KnockedDown) |
MULTIPLIER_CONTROL_ENEMY_NEG | 1.0 | Same as MULTIPLIER_CONTROL_SELF_NEG, but for enemies (e.g. removing KnockedDown) |
MULTIPLIER_CONTROL_ALLY_POS | 1.0 | Same as MULTIPLIER_CONTROL_SELF_POS, but for allies |
MULTIPLIER_CONTROL_ALLY_NEG | 2.0 | Same as MULTIPLIER_CONTROL_SELF_NEG, but for allies |
MULTIPLIER_CONTROL_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_CONTROL_SELF_POS, but for neutrals |
MULTIPLIER_CONTROL_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_CONTROL_SELF_NEG, but for neutrals |
MULTIPLIER_BOOST_SELF_POS | 1.0 | Boost score on self that's considered positive (e.g. buffs like resistance increase) |
MULTIPLIER_BOOST_SELF_NEG | 1.0 | Boost score on self that's considered negative (e.g. debuffs like a intelligence penalty) |
MULTIPLIER_BOOST_ENEMY_POS | 1.0 | Same as MULTIPLIER_BOOST_ENEMY_POS, but for enemies (e.g. debuffs like a intelligence penalty) |
MULTIPLIER_BOOST_ENEMY_NEG | 1.0 | Same as MULTIPLIER_BOOST_ENEMY_NEG, but for enemies (e.g. buffs like resistance increase) |
MULTIPLIER_BOOST_ALLY_POS | 1.0 | Same as MULTIPLIER_BOOST_ALLY_POS, but for allies |
MULTIPLIER_BOOST_ALLY_NEG | 1.0 | Same as MULTIPLIER_BOOST_ALLY_NEG, but for allies |
MULTIPLIER_BOOST_NEUTRAL_POS | 1.0 | Same as MULTIPLIER_BOOST_NEUTRAL_POS, but for neutrals |
MULTIPLIER_BOOST_NEUTRAL_NEG | 1.0 | Same as MULTIPLIER_BOOST_NEUTRAL_NEG, but for neutrals |
MULTIPLIER_ARMOR_SELF_POS | 0.75 | Armor (both physical and magical) score on self that's considered positive (e.g. when removing the Acid status, which 'removes' armor damage) |
MULTIPLIER_ARMOR_SELF_NEG | 0.75 | Armor score on self that's considered negative (this is just armor damage) |
MULTIPLIER_ARMOR_ENEMY_POS | 0.75 | Same as MULTIPLIER_ARMOR_ENEMY_POS, but for enemies (this is just armor damage) |
MULTIPLIER_ARMOR_ENEMY_NEG | 0.75 | Same as MULTIPLIER_ARMOR_ENEMY_NEG, but for enemies (e.g. when removing the Acid status, which 'removes' armor damage) |
MULTIPLIER_ARMOR_ALLY_POS | 0.75 | Same as MULTIPLIER_ARMOR_ALLY_POS, but for allies |
MULTIPLIER_ARMOR_ALLY_NEG | 1.50 | Same as MULTIPLIER_ARMOR_ALLY_NEG, but for allies |
MULTIPLIER_ARMOR_NEUTRAL_POS | 0.75 | Same as MULTIPLIER_ARMOR_NEUTRAL_POS, but for neutrals |
MULTIPLIER_ARMOR_NEUTRAL_NEG | 0.75 | Same as MULTIPLIER_ARMOR_NEUTRAL_NEG, but for neutrals |
MULTIPLIER_FREE_ACTION | 0.25 | The 'final' score of an action (combined score of damage, heal, dot, hot, armor, boost, and control) is multiplied by a CostModifier and divided by an ActionCostModifier. If an action is free (meaning 0 AP) the ActionCostModifier will be equal to MULTIPLIER_FREE_ACTION |
MULTIPLIER_ACTION_COST_MULTIPLIER | 1.00 | Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_ACTION_COST_MULTIPLIER is multiplied with the AP cost of the action itself and added to the ActionCostModifier |
MULTIPLIER_MOVEMENT_COST_MULTPLIER | 0.90 | Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_MOVEMENT_COST_MULTIPLIER is multiplied with the AP cost of the movement needed to execute the action and added to the ActionCostModifier |
MULTIPLIER_INVISIBLE_MOVEMENT_COST_MULTPLIER | 0.30 | If the player is sneaking or invisible this modifier is used on top of MULTIPLIER_MOVEMENT_COST_MULTIPLIER |
MULTIPLIER_SOURCE_COST_MULTIPLIER | 1.00 | Used in the ActionCostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_SOURCE_COST_MULTIPLIER is multiplied with the SP cost of the action itself and added to the ActionCostModifier |
MULTIPLIER_COOLDOWN_MULTIPLIER | 0.01 | Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_COOLDOWN_MULTIPLIER is used in combination with the cooldown of the action and a higher MULTIPLIER_COOLDOWN_MULTIPLIER results in a lower CostModifier |
MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER | 0.45 | Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER is used in combination with MULTIPLIER_HIGH_ITEM_AMOUNT_MULTIPLIER and we lerp between the LOW and HIGH value based on the health of the source character before multiplying it with the CostModifier. This way we make sure that lower health characters are more likely to use items |
MULTIPLIER_HIGH_ITEM_AMOUNT_MULTIPLIER | 1.00 | See MULTIPLIER_LOW_ITEM_AMOUNT_MULTIPLIER |
MULTIPLIER_CANNOT_EXECUTE_THIS_TURN | 0.50 | Used in the CostModifier explained in MULTIPLIER_FREE_ACTION. MULTIPLIER_CANNOT_EXECUTE_THIS_TURN is multiplied with the CostModifier if the action can not be executed this turn |
MULTIPLIER_TARGET_MY_ENEMY | 1.50 | Used whtn the target of the action is attacking the source character |
MULTIPLIER_TARGET_MY_HOSTILE | 3.00 | Used when the target of the action is already under attack by the source character |
MULTIPLIER_TARGET_SUMMON | 0.35 | Used when the target is a summon |
MULTIPLIER_TARGET_AGGRO_MARKED | 5.00 | Used when the target has the status AggroMarked |
MULTIPLIER_TARGET_HOSTILE_COUNT_ONE | 0.50 | Used when the target already is under attack by another character |
MULTIPLIER_TARGET_HOSTILE_COUNT_TWO_OR_MORE | 0.25 | Used when the target already is under attack by 2 or more characters |
MULTIPLIER_TARGET_IN_SIGHT | 1.05 | Used when the target is in sight from the current position of the source character |
MULTIPLIER_TARGET_INCAPACITATED | 0.20 | Used when the character is incapacitated (e.g. due to Frozen status) |
MULTIPLIER_TARGET_KNOCKED_DOWN | 1.25 | Used when the character has the KnockedDown status. Replaces MULTIPLIER_TARGET_INCAPACITATED (because KnockedDown is also incapacitates) |
MULTIPLIER_TARGET_PREFERRED | 20.00 | Used when the target has the AI_PREFERRED_TARGET tag |
MULTIPLIER_TARGET_UNPREFERRED | 0.20 | Used when the target has the AI_UNPREFERRED_TARGET tag |
ENDPOS_NEARBY_DISTANCE | 6.00 | The maximum distance that's considered to be 'nearby'. Is used in combination with several other modifiers |
MULTIPLIER_ENDPOS_ALLIES_NEARBY | 0.00 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_ALLIES_NEARBY is multiplied with the amount of allies nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore |
MULTIPLIER_ENDPOS_ENEMIES_NEARBY | 0.00 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_ENEMIES_NEARBY is multiplied with the amount of enemies nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore |
MULTIPLIER_ENDPOS_STENCH | 0.25 | Used when the target has the Stench talen |
MULTIPLIER_ENDPOS_FLANKED | 0.05 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_FLANKED is multiplied with the amount of characters that would flank the source character and added to the PositionScore |
MULTIPLIER_ENDPOS_HEIGHT_DIFFERENCE | 0.002 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_HEIGHT_DIFFERENCE is multiplied with the height difference between the current and the new position and added to the PositionScore |
MULTIPLIER_ENDPOS_TURNED_INVISIBLE | 0.01 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_TURNED_INVISIBLE is used when invisible for the difference between the old and new position and substracted from the PositionScore (going invisible and not moving is bad) |
MULTIPLIER_ENDPOS_NOT_IN_AIHINT | 0.01 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_AIHINT is substracted from the PositionScore if it's not in an AiHint (and if it's not forced, because then the action would be completely aborted) |
MULTIPLIER_ENDPOS_NOT_IN_SMOKE | 0.00 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_SMOKE is added the the PositionScore when the position is not inside a smoke surface |
MULTIPLIER_ENDPOS_NOT_IN_DANGEROUS_SURFACE | 0.10 | Used when calculating the PositionScore. MULTIPLIER_ENDPOS_NOT_IN_DANGEROUS_SURFACE is added the the PositionScore when the position is inside a dangerous surface that has positive effects (e.g. when you heal from a poison surface) |
DANGEROUS_ITEM_NEARBY | 0.00 | Used when calculating the PositionScore. DANGEROUS_ITEM_NEARBY is multiplied by all dangerous items (e.g. barrels) nearby (defined by ENDPOS_NEARBY_DISTANCE) and added to the PositionScore |