Pascal's Wager Wiki

A critical hit multiplies an attack's damage by 1 + Crit damage / 1000. It happens either by chance (Crit rate) or automatically when you break an opponent's poise while they are in an armoured move. Only direct hits can crit. Damage-over-time, traps and falling never do. Where crits sit in the full calculation is shown on Damage formula.

The stats#

Stat (property id)UI nameMeaning
CritRate (4)Crit RateChance per hit, in ‰
CritDamage (2)Crit DamageExtra damage on a crit, in ‰ (201 = +20.1%)
CritResist (3)迅击伤害 (untranslated)Target-side multiplier on the crit bonus (see below)

Starting values per hero (base attributes):

HeroCrit rateReal chanceCrit damageCrit multiplier
Terrence34‰3.5%201‰×1.20
Viola64‰6.5%307‰×1.31
Benita48‰4.9%272‰×1.27
Norwood22‰2.3%147‰×1.15
Jerold40‰4.1%254‰×1.25
Elena41‰4.2%258‰×1.26

Crit rate comes mostly from Dexterity and crit damage from Dexterity and Strength (see Attributes and Character stats). Trophies can add both as random properties (see Random trophy properties).

How a crit is decided#

For every direct hit (not damage over time), in this order:

  1. If the move has CritIgnore, it can never crit. That includes the guaranteed crit below.
  2. Guaranteed crit: if the target's poise is at 0 and the target is inside an armoured window of its current move (the animator's "SkillToughness" flag), the hit is a crit. The same hit also deals extra weakness damage equal to 30% of the target's maximum weakness (on the 43 models whose WeaknessPermilSub is 0.3: the 42 fighting enemy models and one object, 90010; see Weakness and execution#What drains Resilience). This hit's own poise damage is applied first, so the very hit that breaks an armoured attack is already a crit. See Poise and stagger#Super armour (armour pools).
  3. Otherwise roll: crit chance = attacker's Crit rate. Talent bonuses for this move (SkillCritRateAdd) and Viola's "Bloody" against Bleeding targets multiply it.
  4. On a crit: bonus = Crit damage, multiplied by talent bonuses for this move (SkillCritDamageAdd). If the target's CritResist is above 0, bonus = bonus × CritResist / 1000. Then damage = damage × (1 + bonus/1000).

The crit multiplier is applied after the defence reduction and before the back-hit, guard and talent multipliers. Everything in the chain is multiplied together.

Moves that can never crit#

Terrence, Viola, Benita, Norwood and Elena have CritIgnore on their Backstab (107), Execution (108) and plunging attacks (111). Terrence, Norwood and Elena also have it on their Riposte after a parry (105), while Viola's and Jerold's ripostes can crit. Jerold (the DLC hero) is the exception: his backstab, execution, plunges and riposte can all crit, because none of those rows have the flag. Other examples:

HeroOther moves that cannot crit
TerrenceFully charged war art (8/1)
BenitaTalent counterattacks, second hit (23-26)
NorwoodUltimate heavy (26), guards and ultimate guard (27, 28), ultimate light 2 (16/1), talent heavy war art (32, 33), alternative execution (1108)
JeroldEnding his transformation (44/1)

These moves usually have high multipliers already (for example, Execution BaseRate 1600 and Riposte up to 2500 for Norwood).

Crit resistance#

Enemies with a CritResist value reduce your crit bonus:

Enemy (model)CritResistYour crit bonus becomes
Terror Obsession (20045), The First Fallen: Handel (20053), Treasure Thieves (20055)60060%
Guderian the Guardian (20054)70070%
Noble Knight (20050, 贵族骑士), Assassin (20051, 杀手)80080%
Venomous Impostor (20048, 剧毒伪装者), Gold prospector (20049, 淘金者)90090%
Everyone else, and all heroes0100% (no effect)

Example: Viola's 307‰ crit against Handel becomes 307 × 0.6 = 184‰, so ×1.18 instead of ×1.31.

EffectSourceWhat it does
BloodyViola talent 12203 (Viola talent tree)Crit rate ×1.2 against Bleeding targets
BrutalityViola talent 12410In an abnormal sanity state, crits have a 20% chance (one level only) to inflict Bleed
Viola's Lunatic stateHero10002_Define.SanCritDamageAddRate = 100Crit damage +10% of its value while in an abnormal sanity state (raised by "Adapt to Abnormality: Critical Strike"; see Abnormal state#Effects by hero)
Oath, The First SeedTrophies (CriticalEnergyAdd)Each crit restores 15 / 35 Stamina (attacks only, not throwables)

Hidden mechanics#

  • The real chance is (rate + 1) / 1001. The game rolls a whole number from 0 to 1000 inclusive and crits when the roll is ≤ the rate. 0‰ never crits and 1000‰ or more always crits. A fractional rate (for example 76.8‰ after "Bloody") effectively rounds down: 76.8 gives 77/1001, the same as 76.
  • Crits come in one-second streaks (inferred from the code). Before every roll, the random generator is re-seeded from the current clock time in whole seconds plus the attacker's id. Every crit roll one character makes within the same real-time second therefore gives the same result. If your first hit in a second crits, all your other hits in that second crit too, and if it misses, they all miss. Over many seconds the average rate is unchanged, but fast multi-hit moves crit all together or not at all. This includes a single swing that touches several weak points: each weak point is calculated separately, but all of them get the same roll. Brutality's bleed roll uses a second seed (attacker id + 1), so it is also fixed for the whole second, independently of the crit roll.
  • Armour still reduces the poise-break crit. A guaranteed poise-break crit still goes through the target's move damage reduction (DamageSub, which stays active until the armour window closes), so armoured bosses such as Treasure Thieves (−90% during some moves) take only a fraction of even that crit. See Damage formula#6. Damage-reduction moves.
  • "Bloody" is weaker than it reads. Its text says crit rate is increased by 20%, but the code multiplies your crit rate by 1.2 instead of adding 20 points: Viola's 64‰ becomes 76.8‰ (about 7.8%), not 26%. The per-move crit rate talent type works the same way.
  • Jerold's finishers can crit. The DLC hero's backstab, execution and plunging attacks roll for crits like normal attacks, unlike every other hero (the table above lists the moves that cannot).
  • Two crit talent types are never used. The code supports per-move "crit rate +" and "crit damage +" talents (SkillCritRateAdd, SkillCritDamageAdd), but no talent in the shipped talent table uses them.
  • "Crit resistance" works backwards. The stat is a multiplier on the attacker's crit bonus. 0 means no protection and lower non-zero values protect more. No hero or trophy has it, and its menu label was never translated.
  • Enemies almost never crit at random. About 2,680 of the 2,747 story enemy placements have a crit rate of 0‰ (2,607) or 1‰ (74; a 0.2% real chance), even though their crit damage is 212-250‰. The remaining ~66 placements use hero-like stats with rates of 22-84‰ (for example 64‰, the same as Viola's starting rate). The guaranteed poise-break crit (step 2 above) works for enemies too, so getting your own armoured move broken can still cost you a crit (inferred: the rule is the same for every character).

Sources#

  • reference/lua_src/luascript/logic/playervalue/animalbase_value.lua:2333-2495 (poise-break crit, crit roll, crit damage, crit resist, Brutality, CriticalEnergyAdd), :410-444 (Viola's lunatic crit damage)
  • reference/lua_src/luascript/common/mathhelper.lua:193-238 (addValuePermil, getRandomResult, getRandom re-seeding with os.time)
  • reference/lua_src/gamedata/playerdefine/hero10002_define.lua:84-85; structdata/ms_statusdata.lua (status 10001 = Bleed); structdata/ms_herodata.lua:18-61; structdata/ms_itemdata.lua:77 (CriticalEnergyAdd = 103)
  • es_skilldata.lua: CritIgnore column, hero rows listed above (e.g. 10005/105-111 with CritIgnore 0, 10001/8/1, 10001/105/1-2, 10001/107/1, 10001/108/1, 10001/111/1-2, 10004/26/1-3, 10005/44/1)
  • es_herotalent.lua: 12203 (Bloody, Value 200), 12409, 12410 (Brutality, Value 200; ValueAdd 100 is never reached because StoneLevel 4 lists a single level); no rows of type 27 or 28
  • es_herodata.lua: WeaknessPermilSub (0.3 on 43 models: 42 of the 20xxx enemy models plus 90010; 0 on 32), re-counted in build/wiki/pass/scripts/combat/c1.py; es_skilldata.lua CritIgnore for 105/107/108/111 of heroes 10001-10007 re-read in the same script
  • Adversarial review: mathhelper.lua:210-238 (roll is random(0,1000) <= rate, re-seeded per call), animalbase_value.lua:2066-2107 (one calculation per weak point), :2337, :2609-2611 (DamageSub on the same hit), logic/player/animalbase.lua:3977-3988 (DamageSub tied to the SkillToughness window)
  • es_trophydata.lua: 60033 (Oath, 15), 60055/60255/60355 (The First Seed, 35)
  • Hero crit stats: re-derived from es_heropropertydata.lua + es_heroattributedata.lua via structdata/fs_herodata.lua:560-608 (property = floor(sum(weight x attribute table value) / 1000)); enemy CritRate/CritResist: the same formula on es_enemyattributedata.lua plus es_storymonsterproperty.lua adds (logic/playervalue/animalbase_value.lua:229-231); UI names from GameText UI_PLAYERINFO_PROPERTY_TYPE
Categories:Combat