User:NtCarlson/Sandbox
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. | 2Acid 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.
|
2Radiant 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.
|
1d8Physical from |
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 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 , this will increase to 8 DRS instances since Shriek will be triggered by each of the 4 preceding instances. a
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:
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.
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 |
[1] | Proficiency Bonus | Target is threatened |
Callous Glow Ring[1] | 2Radiant | Target is illuminated (i.e. not Obscured) |
[1] | 1Lightning | Have at least 1 Lightning Charge |
[1] | 1d10Necrotic | Available only to Astarion after ascending at the end of The Pale Elf |
Spellmight Gloves | 1d8 | Spell with an attack roll[2] |
Charisma modifier Force | ||
Intelligence modifier | Evocation spell | |
Wisdom modifier | Cleric cantrip | |
Potent Robe | Charisma modifier | Any cantrip |
Necklace of Elemental Augmentation | Spellcasting Ability Modifier | Elemental cantrip |
Charisma modifier | Spell/cantrip whose elemental type corresponds to the chosen draconic ancestry | |
Ring of Absolute Force | 1Thunder | Applies only to Thunder damage |
Mourning Frost | 1Cold | Applies only to Cold damage |
Armour of the Sporekeeper | 1Necrotic | Applies only to Necrotic damage |
Poisoner's Robe | 1d4Poison | Poison spell |
Number of Heat charges | Requires and consumes Heat charges, applies only to Fire damage | |
Markoheshkir | Proficiency Bonus | Elemental spell damage with the corresponding variant of Kereska's Favour active |
1d8Necrotic | Spellcaster attacks Curse target | |
1d6Necrotic | Spellcaster attacks Hex target | |
1d4Psychic | Attack while Overloaded With Synaptic Power is active | |
Boots of Psionic Movement | 1d4Psychic | Next melee attack after Githyanki | as a
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 | 1d6Slashing | Melee attack against a Fiend or Undead |
Hammer of the Just | 1d6Bludgeoning | Melee attack against a Fiend or Undead |
- ↑ 1.0 1.1 1.2 1.3 1.4 These damage riders are universal (see below).
- ↑ Prior to Patch 4, this worked with any direct damage spell. More testing is needed to see what it works with after Patch 4.
- ↑ The Shadow-Cloaked Ring boosts both weapon and unarmed damage, but weapon damage is boosted using
CharacterWeaponDamage()
. - ↑ 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 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.
Damage rider sources (DealDamage())
Damage bonus implemented with DealDamage()
(i.e. Damage rider sources) are the underlying cause for much of the unintuitive damage mechanics in Baldur's Gate 3.
All attacks or damaging spells are implemented using DealDamage()
, so any damage bonus implemented using that same function will behave somewhat like an independent attack or spell.
Importantly, this means that damage rider sources can potentially trigger each other causing an exponential explosion in the number of damage instances (with the right combination of DRS effects).
As previously stated, adding DRS effects to an attack will also multiple the effectiveness of damage riders.
Exponential behavior when combining DRS effects
Attached vs detached instances
There are two sub-categories of DRS effects that determine how they interact with damage riders: attached and detached.
- A DRS effect 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 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 1d4Fire DRS. The amulet's effect doesn't call
DealDamage()
directly, but instead callsApplyStatus(BURNING)
. On application, the status effect callsDealDamage()
immediately. - To apply its 1d4Thunder damage, the Punch-Drunk Bastard calls
CreateExplosion()
which then callsDealDamage()
.
- When standing in a Burning surface, the Amulet of Elemental Torment will effectively add a 1d4Fire DRS. The amulet's effect doesn't call
The practical difference between attached and detached DRS sources is that some damage rider effects will not apply to detached sources. For example, the 1d4Fire 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 which explicitly apply only to spell/cantrip attacks. It will, however, be boosted by more universal damage riders like .
Additional DRS effects from class features
This is a list of class features that provide additional damage rider sources to attacks or spells.
Feature | Class | Damage Bonus | Limitation | Notes |
---|---|---|---|---|
Level 1 |
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. | |
Level 2 |
2d8 to 5d8 | Consumes spell slots |
Also applies to all other Smite variants. | |
Level 3 |
1d6, 1d8, or 1d10 | Consumes Bardic Inspiration Charge |
Bard must apply the buff to another character. The damage type is inherited from the weapon. | |
Level 3 |
1d8 | Once per turn[1] |
Target must already be damaged. The damage type is inherited from the weapon. | |
Level 6 |
(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 Lightning or Thunder damage spell. This damage instance is detached from the spell. Recastable spells like do not count as leveled spells when recasted for free. | |
Level 8 |
1d8 | Once per turn[1] |
Damage type depends on the Cleric domain. The 1d8Physical variant from 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. | |
Level 11 |
3d8 | Consumes 3Ki Points |
Must be or . | |
Level 12 |
Charisma modifier | None |
Applies to all melee weapon attacks. |
Bardic Inspiration Charge on anything other than Valiant Roll (bonus to Ability Check rolls), the Combat Inspiration buff is not removed. This leaves the recipient in a state where they have a non-functional buff that prevents Combat Inspiration from being reapplied. This can be worked around by enabling Valiant Roll and performing an action that uses an ability check like . This will remove the lingering Combat Inspiration buff.
is currently bugged. When a buffed character expends the grantedOn the other hand, this bug can work in your favor. If you apply Combat Inspiration to another Bard, the recipient can continue to use Valiant Damage on each attack without having to reapply the buff until they run out of Bardic Inspiration Charges.
Additional damage rider sources attached to ordinary weapon attacks
This is a list of weapons that can get bonus attached damage rider sources with ordinary attacks. Since these damage instances are attached to a weapon attack, they will be boosted by applicable damage riders.
Source | Damage Bonus | Conditions |
---|---|---|
Assassin's Touch | 1d4Necrotic | Target is or |
Deep Delver | 1d4Piercing | Target is Shattered. Deep Delver inflicts Shattered on hit. |
Dragon's Grasp | 1d4Slashing | Target is |
Exterminator's Axe | 1d6Fire | Target is a plant, Myconid, or is size small or less |
Firestoker | 1d4Piercing | Target is |
Shortsword of First Blood | 1d8Piercing | Target must have 100% hit points |
Blooded Greataxe | 1d4Slashing | Wielder has 50% hit points or less |
Rat Bat | 1d6Piercing | Unlisted effect; always applies |
Render of Mind and Body | 1d8Psychic | Attack with Advantage |
Sword of Life Stealing | 10Necrotic | Attack is a Critical hit |
Crimson Mischief | 7Piercing damage. | Attack with Advantage while equipped in the main hand |
Duellist's Prerogative | Proficiency Bonus Necrotic | Requires and consumes a reaction; only applies while equipped in the main hand |
Additional detached damage rider sources triggered by ordinary weapon attacks
This is a list of weapons that can trigger bonus detached damage rider sources with ordinary attacks. Weapon attack related damage riders will not apply to these extra damage instances since they are not directly attached to a weapon attack. Only the universal damage riders will apply.
Source | Damage Bonus | Notes |
---|---|---|
Loviatar's Scourge: Willing Whip | 1d6Necrotic | Hits everything in a 2m radius including the wielder |
Punch-Drunk Bastard | 1d4Thunder | Must be . Hits everything in a 3m radius excluding the wielder. |
Nyrulna: Zephyr Connection | 3d4Thunder | Must be thrown. Hits everything in a 6m radius including the wielder. |
Additional damage rider sources attached to weapon actions
This is a list of damage rider sources from special Weapon actions. These sources are inherently more limited by nature of being once-per-short-rest actions.
Source | Damage Bonus | Notes |
---|---|---|
Strength modifier Slashing | Bonus applies to all melee attacks for the rest of the turn, including melee spells | |
Hoppy: Revitalising Strike | Proficiency Bonus Necrotic | Also heals you 1d6hit points |
Very Heavy Greataxe: Gargantuan Cleave | 1d6Slashing | Hits up to 3 targets like a normal cleave but inflicts on the wielder |
Soulbreaker Greatsword: Soulbreaker | 4Psychic | Can also | the target (Constitution saving throw)
Silver Sword of the Astral Plane: Soulbreaker | 4Psychic | Can also | 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 Radiant | |
Balduran's Giantslayer: Topple the Big Folk | 2d6Slashing | Target must have size Large or greater. Also adds your Proficiency Bonus to the base attack damage |
Additional damage rider 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:
- Multi-hit spells like or deal separate damage instances for each projectile.
- Spells with multiple damage types like or deal separate damage instances for each damage type.
Below is a list of attached DRS effects that work with spells.
Source | Damage Bonus | Notes |
---|---|---|
1d4Thunder | As mentioned previously, Shriek damage activates universally on any damage instance. | |
Strength modifier Slashing | This works with all melee attacks, which includes melee attack roll spells like Daredevil Gloves can turn any ranged attack roll spell into a melee one. | . The|
Craterflesh Gloves | 1d6Force | Requires landing a critical hit, so it only works with attack roll spells. |
The Blast Pendant | Lightning damage equal to | Once per long rest, consume to add an additional Lightning damage instance to a Lightning spell. |
Ilmater's Aid | 1d4Force | 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,
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.