Pascal's Wager Wiki

Stamina (internally Energy) is the bar every hero spends on attacks, dodges, throws and absorbing hits with a guard. It refills very quickly, but almost every action pauses the refill until its animation is nearly over, and an empty bar disables blocking entirely.

Overview#

  • Each action in the skill table has a stamina cost (EnergySub). The cost is taken at the action's first animation trigger, not when you press the button.
  • An action only needs more than 0 stamina to start. A 210-cost art works with 1 stamina left; the bar just bottoms out at 0. The bar can never go below 0.
  • Regeneration is a percentage of your maximum, so a bigger bar also refills faster in absolute terms.
  • Running and sprinting do not cost stamina. No code path charges stamina for movement (inferred from the absence of any such call).

Maximum stamina#

Max stamina comes from one attribute: attribute 6 (internal name Generous; see Attributes). The formula is:

Max stamina = floor(HeroRate × T(points) / 1000)

T is a curve shared by all heroes. HeroRate is a per-hero multiplier.

Points in attribute 61510152025304050608099
T(points)291334400488573637688750793815830840
HeroHeroRateStarting pointsStarting maxAt 20At 30At 40At 60At 99
Terrence70012303401481525570588
Viola85014398487584637692714
Benita8009308458550600652672
Norwood75014351429516562611630
Jerold60014281343412450489504
Elena60024375343412450489504

On Casual the base value is raised by 20% before talents and trophies are applied.

Regeneration#

SituationRate
Normal40% of max stamina per second (EnergyRecovery 400‰)
Guard raised (Guarding)10% of max per second (EnergyRecoveryBlock 100‰)
During most actions0, until the animation reaches its "run exit" point (the frame where you could start moving again)
After your guard is broken0 for 1 second
After the bar hits 00 for the hero's exhaustion delay (see below)

These actions do not pause regeneration: holding a guard, drinking a consumable with the normal drink skill (the code does not list the quick-drink skill 113, so it should pause regeneration like an attack; inferred), executions, backstabs, and any skill flagged EnergyRecoveryForce.

At 40% per second, Terrence's starting bar of 303 refills from empty in 2.5 seconds once regeneration is allowed. Benita's Wind Whisper / Breath statuses (10019-10021) add 666 per mille to the base 400 for 40-60 s (per the Benita article).

Costs of common actions#

All values are flat stamina points from the skill table.

HeroLight attacksHeavy / chargedCombat artsDodgeThrowGuard
Terrence65 per swing95 (heavy chain), 150–180 (charged)95–120 (30 Rage), 150–210 (full Rage)65650 to raise; hits drain stamina
Viola90 per Light chain hit (melee)50 (heavy chain), 170 (charged shot)1406565none
Benita6565656565none
Norwood65 (light chain)105 (heavy chain)6565650 to raise; hits drain stamina
Jerold5575956565none (counter pose, drains stamina over time)
Elena363660–96 (form switch 96 / 48)48480 to raise; hits drain stamina

Backstabs, executions, drops, and eating/drinking cost no stamina (EnergySub 0 for every hero).

Hidden mechanics#

  • Overspending is free. The game only checks that stamina is above 0. Starting a 180-cost charged attack with 5 stamina left is allowed; you just end at 0.
  • Exhaustion delay. When the bar hits exactly 0, regeneration is locked for clamp(100 − EnergyRecoveryTime, 0, 100) / 10 seconds. Terrence, Viola, Benita and Norwood have EnergyRecoveryTime 100, so they have no extra delay. Jerold and Elena have 92, so they wait 0.8 s. While in the Abnormal state (and therefore also when Lunatic) and carrying her hit status, Viola's EnergyRecoveryTime is cut by 50% (to 50; see Abnormal state#Effects by hero), which works out to about a 5 s lockout (calculated from the formula).
  • The real regen pause is the animation. Regeneration stays off until the current move's run-exit frame. Chaining attacks keeps the bar frozen; stepping out between swings lets it refill.
  • Guarding at 0 stamina does nothing. A block or a hit-deflect only counts if stamina is above 0.
  • Stamina from critical hits. The trophies Oath (+15) and The First Seed (+35) restore that much stamina on each critical hit you land with a weapon (not with throwables).
  • Cheaper dodges. Eternity and Concentration Rune (−15%), Broken Eternity (−9%) and Chaos Silk (−20%) reduce the stamina cost of dodges only (dodge, dodge-cancel, and Jerold's leaping dodges). See Trophy effects and Dodging.
  • Free actions. A status of type EnergyDontUse makes every action cost 0 stamina while it lasts. Benita's statuses 10022–10024 and Elena's status 10114 are of this kind. Elena's is applied by her form-change move and is removed when her Power gauge runs out.
  • Jerold's combo discount. A Jerold talent reduces stamina costs by a per-mille amount once he has chained 3 or more attacks (TalentComboAttackNum = 3).
  • Wheel of Reversal. For Jerold, this trophy restores a flat 50 stamina every time he triggers a perfect ("extreme") dodge. See Dodging.

Sources#

  • logic/playervalue/animalbase_value.lua:428-433 (IsHeroSanNotNormal(10002) and Hero10002_Define.SanHitEnergyRecoveryDelayRate).
  • reference/lua_src/luascript/logic/playervalue/animalbase_value.lua: 627–697 (regeneration pause rules, delay timer), 809–895 (cost lookup, > 0 check, dodge trophy reduction), 1090 (clamp to 0..max), 1539–1584 (exhaustion delay formula, regeneration rates), 200–215 (Casual +20%), 432–433 (Viola lunatic modifier), 2487–2492 (stamina on crit).
  • luascript/logic/player/animalbase.lua: 3743–3757 (costs charged on the first trigger frame), 4818–4832 and 4846–4875 (guard and deflect need stamina > 0).
  • gamedata/playerdefine/animalbase_value_define.lua: 11 (DefenceBreakEnergyRecoveryDelay = 1), 24 (CasualEnergyRatio = 0.2).
  • luascript/structdata/fs_herodata.lua: 575–608 (property formula).
  • Tables: es_heropropertydata.lua (PropertyId 11 rates; PropertyId 15/6/27 recovery values per hero), es_heroattributedata.lua (AttributeId 6, Property_11 curve), es_herodata.lua (Attribute_6 starting values, HeroId 10001–10007), es_skilldata.lua (EnergySub; e.g. rows 1, 15, 18, 35, 36, 249, 336, 444, 558, 728), es_trophydata.lua rows 18, 25, 40, 49, 66, 75, 78.
  • Re-read in build/wiki/pass/scripts/combat/c5.py; Casual +20% and the Terrence 363 example are on the Difficulty article.
  • Raw data dump: build/wiki/data/resources/player_skills.tsv, heroes.json.
  • Verified in a second pass: animalbase_value.lua 858–861 (EnergyDontUse status), 645–660 (regeneration pause), hero10005_value.lua 33–45 (Jerold combo discount), hero10007.lua 419–425 (Elena's EnergyDontUse status 10114), es_skilldata.lua EnergySub for skill indexes 101–104 per hero.
Categories:Combat