User:NtCarlson/Sandbox: Difference between revisions

From Baldur's Gate 3 Wiki
Jump to navigation Jump to search
(Replaced the term "attack damage" with "weapon rider")
(Added universal damage rider discussion)
Line 48: Line 48:


==Damage Riders (<code>DamageBonus()</code>) ==
==Damage Riders (<code>DamageBonus()</code>) ==
This is a comprehensive list of all the damage riders in the game that use <code>DamageBonus()</code> which can be acquired by the player. There are other <code>DamageBonus()</code> effects exclusive to certain enemies or attached to items not available in the game (outside of cheats). These effects are excluded from the list below.
Unlike '''weapon riders''', '''damage riders''' can "ride" on damage sources other than weapon or unarmed damage.
This makes them more flexible and potentially abusable than basic '''weapon riders'''.
In particular, when combined with one or more '''damage rider source''' effects, a '''damage rider''' can potentially apply multiple times to a single attack, effectively multiplying their provided damage bonus.
 
This is a comprehensive list of all the '''damage riders''' in the game which can be acquired by the player. There are other '''damage riders''' exclusive to certain enemies or attached to items not available in the game (outside of cheats). These effects are excluded from the list below.


If a damage type is not specified, the damage bonus will inherit the type from whatever damage source it is applied to.
If a damage type is not specified, the damage bonus will inherit the type from whatever damage source it is applied to.
{| class="wikitable"
{| class="wikitable"
|+ <code>DamageBonus()</code> sources
|+ '''Damage riders'''
!Source
!Source
! Damage Bonus
! Damage Bonus
Line 187: Line 191:
|}
|}
<references>
<references>
<ref name="universal">These '''damage riders''' are universal. They will apply to any damage source, even damage '''detached''' from an attack or spell.</ref>
<ref name="universal">These '''damage riders''' are '''universal''' (see below).</ref>
<ref name="spellmight">Prior to Patch 4, this worked with ''any'' direct damage spell. More testing is needed to see what it works with after Patch 4.</ref>
<ref name="spellmight">Prior to Patch 4, this worked with ''any'' direct damage spell. More testing is needed to see what it works with after Patch 4.</ref>
<ref name="shadow-cloaked">The Shadow-Cloaked Ring boosts both weapon and unarmed damage, but weapon damage is boosted using <code>CharacterWeaponDamage()</code>.</ref>
<ref name="shadow-cloaked">The Shadow-Cloaked Ring boosts both weapon and unarmed damage, but weapon damage is boosted using <code>CharacterWeaponDamage()</code>.</ref>
<ref name="crit">The damage bonus applies to any Critical Hit, not just those made with this weapon.</ref>
<ref name="crit">The damage bonus applies to any Critical Hit, not just those made with this weapon.</ref>
</references>
</references>
The top 5 '''damage riders''' in the above list are '''universal'''. They will apply to any damage instance, even ones '''detached''' from a spell or attack. All the other '''damage riders''' involve conditions like <code>IsSpell()</code> or <code>IsMeleeAttack()</code> so any damage instance that is not a part of a spell or weapon attack cannot be boosted by these non-'''universal damage riders'''. Status effect damage like {{Cond|Simple Toxin}} is an example of damage '''detached''' from any attack or spell that can only be boosted by '''universal damage riders'''. See below for a more detailed discussion of '''detached''' damage instances.


== <code>DealDamage()</code>==
== <code>DealDamage()</code>==

Revision as of 08:18, 12 November 2023

Damage Mechanics

Overview

Under the hood, superficially similar damage bonuses can be implemented in very different ways. For example, the Callous Glow Ring and the Caustic Band are both rings that give 2 bonus damage. However, their damage bonuses are implemented using two different functions and wind up behaving quite differently. Understanding how these different functions work will help explain the oftentimes unintuitive damage mechanics in Baldur's Gate 3.

Below is a breakdown of the different functions used to apply damage bonus effects.

Function Term Comment Example
WeaponDamage() Weapon rider The basic, well-behaved damage bonuses are implemented with this function. The bonus will apply to only the triggering attack and nothing else. 2Damage TypesAcid from Caustic Band
CharacterWeaponDamage()
CharacterUnarmedDamage()
DamageBonus() Damage rider Damage bonuses using this function will add their damage to each independent damage instance. When combined with effects that use DealDamage(), a single attack can create numerous independent damage instances so DamageBonus() effects can potentially apply their damage many times per attack. 2Damage TypesRadiant from Callous Glow Ring
DealDamage() Damage rider source (DRS) This function is used by all damaging attacks, spells, and conditions to deal their damage, but some damage bonuses also use it. DealDamage() creates a separate damage instance that can be independently boosted by applicable DamageBonus() sources. In certain scenarios, DRS effects can trigger each other, creating far more damage instances than might be expected. 1d8Damage TypesPhysical from Colossus Slayer Colossus Slayer

The interaction between the different types of damage bonuses can be summarized as follows:

  • Weapon rider bonuses do exactly what they say -- nothing more, nothing less.
  • The effect of damage riders is multiplicative with the number of independent damage instances. An attack with 2 extra damage instances from damage rider source effects will apply any damage riders 3 times.
  • The number of damage instances can grow exponentially with the number of damage rider sources. For example, if you Sneak Attack Sneak Attack a Burning Burning target with the Firestoker, you will create 4 independent damage instances: the base attack, the sneak attack, Burned Alive triggered by the base attack, and Burned Alive triggered by the sneak attack. If you add Phalar Aluve: Shriek Phalar Aluve: Shriek, this will increase to 8 DRS instances since Shriek will be triggered by each of the 4 preceding instances.

Weapon riders (CharacterWeaponDamage(), etc.)

This category of damage increasing abilities applies only to your weapon (or unarmed) attack damage and nothing else. One weapon attack will apply each weapon rider exactly once. Unlike the two other classes of damage boosts, they are very well-behaved and won't interact with other damage boosts to produce unexpected results.

Weapon riders are far too numerous it exhaustively list. Instead, here is a small sample of damage boosts of this category:

  • +10 damage from Great Weapon Master
  • Bonus damage from Arcane Synergy Arcane Synergy
  • 1d4Damage TypesFire damage from a fire-dipped weapon

If a damage boost is not listed in one of the sections below, assume that it is a weapon rider by default.

Damage Riders (DamageBonus())

Unlike weapon riders, damage riders can "ride" on damage sources other than weapon or unarmed damage. This makes them more flexible and potentially abusable than basic weapon riders. In particular, when combined with one or more damage rider source effects, a damage rider can potentially apply multiple times to a single attack, effectively multiplying their provided damage bonus.

This is a comprehensive list of all the damage riders in the game which can be acquired by the player. There are other damage riders exclusive to certain enemies or attached to items not available in the game (outside of cheats). These effects are excluded from the list below.

If a damage type is not specified, the damage bonus will inherit the type from whatever damage source it is applied to.

Damage riders
Source Damage Bonus Conditions
Rhapsody[1] 1, 2, or 3 Kill 3 creatures with the weapon to unlock the max bonus; resets each Long Rest
Arcane Charge Arcane Charge[1] Proficiency Bonus Target is threatened
Callous Glow Ring[1] 2Damage TypesRadiant Target is illuminated (i.e. not Obscured)
Lightning Charges Lightning Charges[1] 1Damage TypesLightning Have at least 1 Lightning Charge
Vampire Ascendant Vampire Ascendant[1] 1d10Damage TypesNecrotic Available only to Astarion after ascending at the end of The Pale Elf
Spellmight Gloves 1d8 Spell with an attack roll[2]
Agonising Blast Agonising Blast Charisma modifier Damage TypesForce Eldritch Blast Eldritch Blast
Empowered Evocation Empowered Evocation Intelligence modifier Evocation spell
Potent Spellcasting Potent Spellcasting Wisdom modifier Cleric cantrip
Potent Robe Charisma modifier Any cantrip
Necklace of Elemental Augmentation Spellcasting Ability Modifier Elemental cantrip
Elemental Affinity: Damage Elemental Affinity: Damage Charisma modifier Spell/cantrip whose elemental type corresponds to the chosen draconic ancestry
Ring of Absolute Force 1Damage TypesThunder Applies only to Damage TypesThunder damage
Mourning Frost 1Damage TypesCold Applies only to Damage TypesCold damage
Armour of the Sporekeeper 1Damage TypesNecrotic Applies only to Damage TypesNecrotic damage
Poisoner's Robe 1d4Damage TypesPoison Damage TypesPoison spell
Heat Convergence Heat Convergence Number of Heat charges Requires and consumes Heat charges, applies only to Damage TypesFire damage
Markoheshkir Proficiency Bonus Elemental spell damage with the corresponding variant of Kereska's Favour active
Bestow Curse: Additional Damage Bestow Curse: Additional Damage 1d8Damage TypesNecrotic Spellcaster attacks Curse target
Hex Hex 1d6Damage TypesNecrotic Spellcaster attacks Hex target
Psionic Overload Psionic Overload 1d4Damage TypesPsychic Attack while Overloaded With Synaptic Power is active
Boots of Psionic Movement 1d4Damage TypesPsychic Next melee attack after flying flying as a Githyanki
Ring of Elemental Infusion 1d4 elemental Next weapon attack after using an elemental spell/cantrip
Cloak of Elemental Absorption 1d4 elemental Next weapon attack after using Absorb Elements
Shadow-Cloaked Ring 1d4 Unarmed attack[3]
Dolor Amarus 7 Critical Hit[4]
Vicious Battleaxe 7 Critical Hit[4]
Harmonic Dueller Charisma modifier Melee attack while Mellow Harmony is active
Titanstring Bow Strength modifier Ranged weapon attack
Scabby Pugilist Circlet 2 Unarmed or weapon attack with 2+ enemies within 3m
The Undead Bane 1d6Damage TypesSlashing Melee attack against a Fiend or Undead
Hammer of the Just 1d6Damage TypesBludgeoning Melee attack against a Fiend or Undead
  1. 1.0 1.1 1.2 1.3 1.4 These damage riders are universal (see below).
  2. Prior to Patch 4, this worked with any direct damage spell. More testing is needed to see what it works with after Patch 4.
  3. The Shadow-Cloaked Ring boosts both weapon and unarmed damage, but weapon damage is boosted using CharacterWeaponDamage().
  4. 4.0 4.1 The damage bonus applies to any Critical Hit, not just those made with this weapon.

The top 5 damage riders in the above list are universal. They will apply to any damage instance, even ones detached from a spell or attack. All the other damage riders involve conditions like IsSpell() or IsMeleeAttack() so any damage instance that is not a part of a spell or weapon attack cannot be boosted by these non-universal damage riders. Status effect damage like Simple Toxin Simple Toxin is an example of damage detached from any attack or spell that can only be boosted by universal damage riders. See below for a more detailed discussion of detached damage instances.

DealDamage()

Attached vs detached instances

There are two sub-categories of DealDamage() instances: attached and detached.

  • A DealDamage() instance attached to an attack or spell will be grouped and indented under a heading like "X used Main Hand Attack" or "X cast Fire Ball". Most DRS effects will be attached to the triggering attack.
  • A detached DealDamage() instance will appear separately in the damage log, not grouped with the triggering attack. DRS effects wind up detached because they call DealDamage() indirectly. For example:
    • When standing in a Burning surface, the Amulet of Elemental Torment will effectively add a 1d4Damage TypesFire DRS. The amulet's effect doesn't call DealDamage() directly, but instead calls ApplyStatus(BURNING). On application, the Burning Burning status effect calls DealDamage() immediately.
    • To apply its 1d4Damage TypesThunder damage, the Punch-Drunk Bastard calls CreateExplosion() which then calls DealDamage().

The practical difference between attached and detached DRS sources is that some damage rider effects will not apply to detached sources. For example, the 1d4Damage TypesFire damage instance from the Amulet of Elemental Torment is detached from the spell cast and thus will not get boosted by damage riders like Potent Robe or Elemental Affinity: Damage Elemental Affinity: Damage which explicitly apply only to spell/cantrip attacks. It will, however, be boosted by more universal damage riders like Arcane Charge Arcane Charge.

Additional DRS sources from class features

This is a list of class features that provide additional DealDamage() instances.

Extra DealDamage() sources from class features
Feature Class Damage Bonus Limitation Notes
Sneak Attack Sneak Attack Level 1
Rogue
1d6 to 6d6 Once per turn[1]

Sneak Attack will only create a separate damage instance when triggered as an automatic reaction. The damage type is inherited from the weapon.

Divine Smite Divine Smite Level 2
Paladin
2d8 to 5d8 Consumes spell slots

Also applies to all other Smite variants.

Colossus Slayer Colossus Slayer Level 3
Hunter
1d8 Once per turn[1]

Target must already be damaged. The damage type is inherited from the weapon.

Heart of the Storm Heart of the Storm Level 6
Storm Sorcery
(Sorcerer level)/2
or
(Sorcerer level)/2
Leveled spells only

Applies in a  Range: 6 m / 20 ft radius around you when you cast a leveled Damage TypesLightning or Damage TypesThunder damage spell. This damage instance is detached from the spell.

Recastable spells like Call Lightning Call Lightning do not count as leveled spells when recasted for free.

Divine Strike Divine Strike Level 8
Cleric
1d8 Once per turn[1]

Damage type depends on the Cleric domain. The 1d8Damage TypesPhysical variant from War Domain must be triggered as a reaction to deal a separate damage instance. All other variants create a separate instance no matter how they are triggered.

Shadow Strike Shadow Strike Level 11
Way of Shadow
3d8 Consumes 3Ki Points

Must be Invisible Invisible or Hiding Hiding.

Lifedrinker Lifedrinker Level 12
Warlock
Charisma modifier None

Applies to all melee weapon attacks.

  1. 1.0 1.1 1.2 If you attack outside of turn-based mode (for example, when initiating combat), the once-per-turn limitation is ignored.

Additional DRS sources attached to ordinary weapon attacks

This is a list of weapons that can get bonus attached DealDamage() instances with ordinary attacks. Since these damage instances are attached to a weapon attack, they will be boosted by applicable DamageBonus() sources.

Extra attached DealDamage() sources for ordinary weapon attacks
Source Damage Bonus Conditions
Assassin's Touch 1d4Damage TypesNecrotic Target is Knocked Out Knocked Out or Sleeping Sleeping
Deep Delver 1d4Damage TypesPiercing Target is Shattered. Deep Delver inflicts Shattered on hit.
Dragon's Grasp 1d4Damage TypesSlashing Target is Burning Burning
Exterminator's Axe 1d6Damage TypesFire Target is a plant, Myconid, or is size small or less
Firestoker 1d4Damage TypesPiercing Target is Burning Burning
Shortsword of First Blood 1d8Damage TypesPiercing Target must have 100% HP Icon.png hit points
Blooded Greataxe 1d4Damage TypesSlashing Wielder has 50% HP Icon.png hit points or less
Rat Bat 1d6Damage TypesPiercing Unlisted effect; always applies
Render of Mind and Body 1d8Damage TypesPsychic Attack with Advantage Icon.png Advantage
Sword of Life Stealing 10Damage TypesNecrotic Attack is a Critical hit
Crimson Mischief 7Damage TypesPiercing damage. Attack with Advantage Icon.png Advantage while equipped in the main hand
Duellist's Prerogative Proficiency Bonus Damage TypesNecrotic Requires and consumes a reaction; only applies while equipped in the main hand

Additional detached DRS sources triggered by ordinary weapon attacks

This is a list of weapons that can get bonus detached DealDamage() instances with ordinary attacks. Weapon attack related DamageBonus() sources will not apply to these extra damage instances since they are not directly attached to a weapon attack. Only the universal DamageBonus() sources will apply.

Extra detached DealDamage() sources from ordinary weapon attacks
Source Damage Bonus Notes
Loviatar's Scourge: Willing Whip 1d6Damage TypesNecrotic Hits everything in a 2m radius including the wielder
Punch-Drunk Bastard 1d4Damage TypesThunder Must be drunk drunk. Hits everything in a 3m radius excluding the wielder.
Nyrulna: Zephyr Connection 3d4Damage TypesThunder Must be thrown. Hits everything in a 6m radius including the wielder.

Additional DRS sources attached to weapon actions

This is a list of DealDamage() sources from special Weapon actions. These sources are inherently more limited by nature of being once-per-short-rest actions.

Extra DealDamage() sources from once-per-short-rest Weapon Actions
Source Damage Bonus Notes
Prepared (Condition) Prepared (Condition) Strength modifier Damage TypesSlashing Bonus applies to all melee attacks for the rest of the turn, including melee spells
Hoppy: Revitalising Strike Proficiency Bonus Damage TypesNecrotic Also heals you 1d6hit points
Very Heavy Greataxe: Gargantuan Cleave 1d6Damage TypesSlashing Hits up to 3 targets like a normal cleave but inflicts Off Balance Off Balance on the wielder
Soulbreaker Greatsword: Soulbreaker 4Damage TypesPsychic Can also Stun Stun the target (Constitution saving throw)
Silver Sword of the Astral Plane: Soulbreaker 4Damage TypesPsychic Can also Stun Stun the target (Constitution saving throw)
Moonlight Glaive: Moonlight Butterflies
Justiciar's Scimitar: Shadowsoaked Blow
The Undead Bane: Profane Scourge
Hellfire Greataxe: Hellflame Cleave
The Sacred Star: Dawnburst Strike Proficiency Bonus Damage TypesRadiant
Balduran's Giantslayer: Topple the Big Folk 2d6Damage TypesSlashing Target must have size Large or greater. Also adds your Proficiency Bonus to the base attack damage

Additional DRS sources that can apply to spells

There are a limited number of DRS effects that work with spells or cantrips, particularly attached effects. However, many spells have built in ways of dealing multiple damage instances. For example:

Below is a list of attached DRS sources that work with spells.

Extra attached DealDamage() sources that work with spells
Source Damage Bonus Notes
Phalar Aluve: Shriek Phalar Aluve: Shriek 1d4Damage TypesThunder As mentioned previously, Shriek damage activates universally on any damage instance.
Prepare Prepare Strength modifier Damage TypesSlashing This works with all melee attacks, which includes melee attack roll spells like Shocking Grasp Shocking Grasp. The Daredevil Gloves can turn any ranged attack roll spell into a melee one.
Craterflesh Gloves 1d6Damage TypesForce Requires landing a critical hit, so it only works with attack roll spells.
The Blast Pendant Damage TypesLightning damage equal to Lightning Charges Lightning Charges Once per long rest, consume Lightning Charges Lightning Charges to add an additional Damage TypesLightning damage instance to a Lightning spell.
Ilmater's Aid 1d4Damage TypesForce Applies to any leveled spell. Wearer has less than 50% HP. This item hasn't be available in-game since Early Access.

In Patch 3, Sneak Attack Sneak Attack could apply to attack roll spells, but this was changed in Patch 4.

Glossary

There is not necessarily any community consensus regarding the following terms and they may only make sense within the context of this article.

  • Attached: A damage instance attached to an attack or spell in the damage log.
  • Damage rider: A damage bonus implemented with DamageBonus(). These bonuses can potentially apply many times in a single attack since they boost each independent damage instance.
  • Damage rider source: A damage bonus implemented with DealDamage(). These bonuses create an independent damage instance instead of adding damage to an existing instance.
  • Detached: A damage instance not grouped with the triggering attack or spell in the damage log.
  • DRS: See damage rider source
  • Universal damage rider: A damage rider that doesn't have conditions like IsSpell() and can boost even detached damage instances.
  • Weapon rider: A damage bonus implemented with WeaponDamage() or similar functions. These bonuses are well-behaved and will only ever apply once per attack.