Damage

Inflicting Damage
A character's base damage is the main factor all other damage scales off.

A multiplier is built with base value of 1.0, to which any of the following contributions are added together:
 * 1) +0.1 for each instance of BoostDamage the character has.
 * 2) +(x * teamSize - 1), where x is the number of held by the summoner (only relevant for the Solus Probes spawned by said item).
 * 3) -0.05 for each stack of the debuff (inflicted by  flying beetles).
 * 4) +0.5 if PowerBuff is active (active within the radius of a ).
 * 5) +0.1 for each.
 * 6) +(2^x -1) where where x is the number of stacks held. For example, for two stacks this will add 3 to the base 1 multiplier, for effectively quadruple damage.
 * 7) -0.3 if the character holds the Elite Void equipment (only granted to Void Infested enemies).

This multiplier is applied to the character's base damage plus their level's damage, resulting in the character's damage. After this, the following reduction and increases are applied in order:
 * 1) If the character is an invading doppelganger, multiply their damage by 0.04.
 * 2) If the Artifact of Glass is enabled and the character is on the player team, multiply their damage by 5.
 * 3) If the character is, multiply their damage by 0.6.
 * 4) If the is active, multiply their damage by 2.
 * 5) Otherwise, if the Tonic is not active and the character has at least 1 Tonic Affliction, multiply their damage by 0.95^x, where x is the amount of Tonic Afflictions held.

Critical Strike
All Survivors, except, have a base 1% critical strike chance, and monsters have a 0% base chance. If is performing a  attack, the hit will be marked as critical regardless of the current critical strike chance.

Items that increase critical strike chance are  (+10% per stack) ,  (+5% max),   (+5% max) ,   (+5% max) , and   (+10% per stack) . The will also give +100% when active. Note that Proc Coefficient does not affect critical strike chances.

Upon landing a critical strike, the incoming damage is multiplied by the critical strike multiplier, which starts at a base value of 2.0. This can be further modified by:
 * 1) +1.0 for each stack of.
 * 2) +totalCritChance if the survivor is . Note that since the total critical strike chance can exceed 100%, the Railgunner can benefit by ever-increasing contributions of critical strike chance.

Hit Damage
Each hit has damage info. This is scaled (possibly indirectly) from the character's damage. It holds the following properties: the attacker, the damage, if it is a critical strike, the damage type, the proc coefficient, the proc chain, position and force for knockback-related calculations, the damage color and if the damage was rejected for displaying the damage. Upon hitting a character, the following things are done in order:
 * 1) The character applies the damage to themselves. (see: Receiving Damage)
 * 2) The game checks if on-hit items need to trigger and DoTs need to be applied. (see: Handling Hits)
 * 3) The game checks if the attack needs to explode. (see: Handling Hits)

Attack Speed
Attack speed is a statistic that mainly controls the animation duration of attacks. In certain circumstances it also controls the recharge period, i.e.,, primary attacks, and  M99 sniper. It can also affect the number of attacks performed within a fixed duration, such as for Flamethrower and  Suppressive Fire. Attack speed starts at a base value of 1.0 and the following items and buffs contribute towards it:


 * 1) gives +1.0 per stack to any spawned Squid Turrets.
 * 2) gives +0.15 per stack.
 * 3) gives +0.075 per stack.
 * 4) gives +.5 per stack to any summoned drones.
 * 5) gives +0.12 for each stack of the buff, limited to 3 stacks of the buff (+2 per stack).
 * 6) gives +0.3 from the buff.
 * 7) gives +0.7 from the buff.
 * 8) and  both give +1 from the / buffs, respectively (these do not stack with each other as only one can be active at a time).
 * 9) gives +0.1 per stack.

The following items act multiplicatively on the above summed terms, which affects how effective the bonuses are.
 * 1) multiplies this by 1/(1 + stacks), but it will not reduce the attack speed value to less than 0.1.
 * 2) The debuff multiplies this by 1 - 0.05*x, where x in the number of stacks.
 * 3) multiplies this by 1.7 while the  is active.
 * 4) Instead, if the Tonic Buff is not active and the character has Tonic Afflictions, the attack speed is multiplied by 0.95^x for each stack.

Damage Falloff
Damage falloff is a statistic that determines whether an attack will hit at full or reduced damage. Attacks that have damage falloff discourage shooting from extreme ranges and reward accuracy with area of effect attacks. There are two falloff models: a bullet falloff model and an area of effect (AoE) falloff model.


 * Bullet falloff is used for hitscan bullet attacks, such as, , and . Attacks that launch an actual projectile, such as , do not use this falloff model. If an attack has bullet falloff, its final damage is determined by the distance between the attacker and the target, with three types:
 * None: Deals 100% damage, regardless of distance. For example, is a skill that uses this type.
 * Default: Deals 100% damage within 25m, linearly decreasing to a minimum of 50% at 60m or farther. Most hitscan attacks will use this type.
 * Buckshot: Deals 100% within 7m, linearly decreasing to a minimum of 25% at 25m or farther. For example, is a skill that uses this type.


 * AoE falloff is used for exploding attacks, such as, , and . If an attack has area of effect falloff, its final damage is determined by the distance from the explosion's center to the target, with three types:
 * None: Deals 100% damage, regardless of position inside the explosion. For example, the uses this type.
 * Linear: Deals 100% damage at the explosion's center, linearly decreasing to 0% at the explosion's edge. For example, the Genesis Supernova uses this type.
 * Sweet spot: Deals 100% from the explosion's center to half of its radius, and deals 25% from half its radius to its edge. Most exploding attacks will use this type.

'Base' vs. 'Total' Damage
Base damage and total damage are the two main damage types in Risk of Rain 2.


 * Base damage scales specifically with the character's base damage value. For instance, take at level 1, with a base damage stat of 12, and assume he has inflicted a single stack of thanks to his . The damage from bleeding deals 20% base damage per tick, so it will deal 20% x 12 = 2.4 points of damage per tick. This tick damage is not affected by the attack that inflicts the bleeding; it only will deal more damage as Commando levels up and his base damage increases.
 * Total damage is used for on-hit items that generate bonus attacks. These items scale with the strength of the attack that activates them. For instance, take another level 1 Commando (still with a base damage of 12), and assume he has shot an enemy one time with, inflicting 300% x 12 = 36 damage. If Commando has one and his Phase Round activates it, the missile deals 300% of the Phase Round shot, for 300% x 36 = 108 damage. If this missile in turn activates a , the Sticky Bomb will deal 180% of the missile's damage, dealing 180% x 108 = 194.4 damage.

Multiple different total damage items may activate at once from a single hit, or they can activate each other, leading to cascading item activations (commonly referred to as a "proc chain"). There are several important quirks to keep in mind with regard to proc chains:


 * Total damage items calculate their final damage without accounting for any damage bonuses on the triggering hit, in order to prevent those bonuses from being repeatedly applied as the chain grows longer; instead, the bonuses are calculated on a per-hit basis. The items that are impacted by this are the, , , and . For instance, an attack that deals 100 damage that is boosted by 1 stack of Armor-Piercing Rounds bonus will deal 120 final damage. If this attack activates an AtG Missile Mk. 1, that missile will only deal 300% x 100 = 300 damage; the extra damage from the Armor-Piercing Rounds is not taken into account when calculating its initial damage. However, if that missile strikes a boss, then it will also be boosted and deal 360 final damage.
 * Total damage items only critically strike if the triggering hit was a critical strike, and can never critically strike otherwise. For example, if a non-critical attack deals 100 damage and activates an AtG Missile Mk. 1, the missile will deal 300% x 100 = 300 damage and is sure to not be a critical strike. If we instead assume the original attack is a critical strike, the missile will become a critical strike as well, dealing 2 x 300% x 100 = 600 final damage (note that the critical strike bonus also applies to each attack individually, similar to the above bonuses). The lone exception to this is the, which rolls critical strike chance completely independently of the triggering hit (this may be a bug).
 * A given total damage item can only activate once per proc chain. For instance, if the player activates an AtG Missile Mk. 1, that missile (and any other total damage items activated by it) will not activate the AtG Missile Mk. 1 again in that same chain. This is sometimes referred to as a "proc mask," preventing proc chains from escalating for extremely long times.

Damage over Time
Damage over time refers to negative status effects that cause the victim to continuously take damage until the status expires. These status effects each deal damage a certain number of times per second, and they each have a set base duration (which may be multiplied by the proc coefficient of the attack that inflicts the debuff).

Additionally, some of these debuffs can stack, dealing proportionally more damage per tick with more stacks. and are unique in that when a new stack is applied to a target, all the existing stacks of that debuff that have a lower duration remaining are "refreshed," with their durations becoming equal to the newest stack. This means that these debuffs can be infinitely stacked as long as they are continually reapplied.

is a special case among damage over time debuffs, in that it does not have a definite duration; instead, its duration is proportional to the strength of the inflicting hit. For example, an attack that deals 1000% base damage will inflict Ignite for 10 seconds, but an attack dealing 100% base damage will inflict it for only 1 second. Each tick deals a constant 10% base damage (with 5 ticks per second), and Ignite's duration scales such that it always deals 50% total damage over its entire duration (for instance, a stack of Ignite inflicted by the above 1000% base damage attack would deal an additional 500% base damage over its duration).

Having any stacks of will replace all instances of Ignite with, which inflicts 300% more total damage over time per stack of Ignition Tank.

Knockback
Knockback is applied to a character upon receiving damage, pushing them away some amount. How much a victim is knocked back depends on 2 factors: the force of the attack and the victim's mass.


 * Force is a vector applied by an attack to the victim that pushes them in a direction. For instance, a bullet will apply a force in the same direction, while an explosion will apply a force away from its center.
 * Mass is a statistic inherent to a given character. A character with greater mass suffers less knockback.

The final knockback applied to the victim is the quotient of the attack's force vector and the victim's mass. An attack with greater force will inflict proportionally more knockback (for instance,  inflicts greater knockback than ). Likewise, a victim with greater mass will receive proportionally less knockback (for instance, only suffers half as much knockback as, since Acrid has 300 mass compared to Loader's 150).

Additionally, if after knockback calculation the y-axis component of the knockback vector is less than 6, and the victim is standing on the ground, the y-axis component becomes 0 instead, so the victim is only pushed horizontally.

Receiving Damage
This procedure is used for players and enemies alike.

The game begins by creating a copy of the incoming damage amount. We'll call this new copy 'amount', whereas we'll call the old damage 'original amount'.


 * 1) If the target is still protected by One-Shot Protection, skip any further steps.
 * 2) If the target is invincible, or the attack does not bypass blocks and the target has either succeeded the roll for, or has active, set the damage rejected flag and stop applying any further damage.
 * 3) If the attack is backstabbing, set the critical strike flag.
 * 4) If the attacker has and the target is above 90% of their maximum combined health, multiply amount by.
 * 5) If the attacker has and the target is above 90% of their maximum combined health, queue the explosion to occur after 0.2 seconds.
 * 6) If the attacker has and is within 13 meters of the target, multiply amount by.
 * 7) If the attacker has, multiply amount by.
 * 8) If the attack has a nonzero proc coefficient:
 * 9) Apply any or  debuffs. However, these will not affect the target's armor value for the current frame.
 * 10) If the target has the debuff and the attacker is, increment amount by 3.5.
 * 11) If the attacker has  and the target is a boss, special boss, or Horde of Many, multiply amount by.
 * 12) If the hit was a critical hit, multiply amount by the critical strike multiplier. See Critical Strike.
 * 13) If the target has the  debuff, multiply amount by 1.5.
 * 14) If the damage doesn't bypass armor (such as damage from a Shrine of Blood or the Void Fog), apply the armor reduction/increase to amount. This can't reduce amount to less than 1. Also trigger the heal from at this step.
 * 15) If the target is a player and amount is greater than 90% of the character's combined health, reduce the amount to 90% of the target's combined health instead. This is commonly known as One-Shot Protection or OSP for short.
 * 16) If the attack has the Slayer Keyword, multiply amount by.
 * 17) If applicable, apply certain slows and roots to the character based on the damage type.
 * 18) If the target has any, take away money equal to the maximum between   and.
 * 19) If the target has any, grant  amount of money.
 * 20) If the target has Adaptive Armor, increase it by, without exceeding 400.
 * 21) If the target is on the player team and the difficulty is Eclipse 8, gain any Permanent Curse stacks.
 * 22) Reduce the target's barrier by amount, and amount by the barrier actually removed.
 * 23) Reduce the target's shield by amount, and amount by the shield actually removed.
 * 24) Reduce the target's health by amount. If this would reduce their health below 1 and the damage is of the nonlethal type, such as self-damage or fall damage, set their health to 1 instead.
 * 25) Apply knockback.
 * 26) If the target isn't player-controlled, proceed with the execution calculations:
 * 27) If the target is frozen, set the execution threshold to 0.3.
 * 28) If the target is an Elite and their execution threshold is below the execution threshold set by of the attacker, set the execution threshold to the threshold of the Guillotines.
 * 29) If the target is not a boss and the attacker succeeds the roll for, mask the target for execution.
 * 30) If the target has been marked for execution, or their combined health is below the amount dictated by the execution threshold, set their health to 0.
 * 31) If the target is now dead (health less than or equal to 0), tell the game to check for on-death effects, else proc the  effect if available.

One-Shot Protection
(See also: Health)

One-shot protection is visible on the HUD as a faint overlay on the health bar, protecting the player from dying to a single instance of damage when above 90% health. "Curse" effects which lower maximum health by 10% or more, such as or the, will remove one-shot protection.

A single hit taken cannot deal more than  damage. This is checked after damage-reducing effects such as armor are applied.

After receiving damage that triggers one-shot protection, the protection will remain for 0.1s, meaning health cannot be reduced below the resulting health after the initial hit.

Version History

 * Anniversary Update
 * Quality of Life
 * Graphics Updates
 * Update damage numbers to be more legible
 * Early Access Content Update 5
 * Gameplay Changes
 * Slightly reworked OSP. The goal is to fix inconsistencies and make it actually protect you from one-shots - while also fixing some abuse cases with curse.
 * The threshold for OSP is now displayed on the healthbar with a faint graphic.
 * Now has a lingering 0.1s duration when activated.
 * 🌧 Now is subtracted via Curse (,, etc), i.e a curse of 10% will remove OSP entirely.
 * 🌧 Update OSP logic so it still triggers if you receive multiple sources of damage in the same frame that go past OSP values, i.e
 * Melee Survivors
 * 🌧 Melee skills will now perform more consistently at high attack speeds.
 * Melee skills will now scale hitpause duration with attack speed - since the pause when hitting enemies were static, melee characters actually scaled poorly with attack speed.
 * Melee skills will now ‘hold’ you in the air better at high attack speeds.
 * Early Access Artifacts Content Update
 * Gameplay Changes
 * 🌧 Update how AOE falloff is calculated to be more accurate
 * Developer Notes: This affects AOE attacks that did less damage at the edges, like Commando’s Grenade and MUL-T’s Scrap Launcher. They should now do full damage with a direct impact - however, this also affects enemies as well!
 * Characters with damage interrupt thresholds like and  now use total damage received instead of incoming damage with a crit modifier when determining whether or not they should be interrupted when hit. This makes these interrupts more likely when using items that modify damage like  and.
 * Bug Fixes
 * 🌧 Fix issue which caused blast attacks to calculate hit distance based on the center of the hit hurtbox instead of the closest point. The overall effect of this is that blast attacks with falloff will do more damage since objects will now be considered closer than they were, especially against monsters with large hurtboxes like the.
 * Early Access Hidden Realms Content Update
 * Gameplay Changes
 * Change ‘One Shot Protection’ calculation to include barrier
 * Our intent in changing OSP in this manner is to make sure that it is a hidden mechanic, not a reliable one to build a strategy around. We know there’s still edge cases that are abusable - but as long as it’s not ALWAYS the best strategy, we don’t mind having some end-game builds that are extremely powerful.
 * If you have 100% Health and 100% Barrier and take a billion damage, previously you would remain at 100% Health and 10% Barrier. You will now be at 10% Health, as intended before the inclusion of barrier in Scorched Acres.
 * Quality of Life
 * 🌧Update right edge of execution threshold bar not lining up with the actual value
 * Early Access 'Skills 2.0' Content Update
 * QOL
 * 🌧︎ Damage numbers can now support up to 998,000,000 damage (truncated as 10K, 100K, 1M, etc)
 * Early Access Scorched Acres Content Update
 * Gameplay Changes
 * ☂ Critical Strikes no longer double/triple/quadruple/etc “dip” through the proc chain
 * On-hit items have accidentally been benefiting multiple times from critical strikes, resulting in each proc doubling in damage for huge multipliers. While neat, this was ultimately unintentional and not sustainable for the game going forward - so we’re ripping the bandaid now and fixing it. On-hit items have been compensated for the removal of power from this fix.
 * QOL
 * Change damage with no team assigned to be Grey
 * Bug Fixes
 * ☂ Fix ‘Enable Damage Numbers’ not saving between playthroughs
 * Early Access Patch (Build ID No.3830295)
 * Bug Fixes
 * Reorganize fall damage code to try to fix issues with the server reporting false fall damage hits
 * Early Access Patch (Build ID No.3743353)
 * Bug Fixes
 * Fixed an issue where enemies executed from freezing didn't call the correct events, leading to no money, on-kill procs, and potentially a stalled Teleporter event.

Trivia

 * If Damage Numbers are enabled in Gameplay Settings, the damage will be displayed after rounding up to the nearest integer, for a maximum of 990,000,000, abbreviated as 990M.