Our best current understanding of how SpiritVale's combat math works — pieced together by the community from the game client. We aim to keep it accurate, but the game changes and mistakes happen, so treat these as a helpful reference rather than gospel. Spot something off? Let us know on Discord and we'll fix it.
How each stat is calculated from your attributes and gear.
When an autoattack triggers an autocast, it uses your learned level of that skill if it is higher than the default autocast level. The level shown on an item is not a cap: learning the skill at a higher level also raises its autocast level. If you haven’t learned it, the default autocast level still applies — you don’t get the skill’s maximum level automatically.
Base Attack Delay (BAD) drives attack speed — higher is slower. Below are the dual-wield, two-hand, and ranged weapon groups, and each weapon type's BAD.
How often you can repeat one skill. Two separate clocks run per cast, and only one of them adds to your cast time — which is why a skill listing no cooldown is not the same as a skill with no delay.
Each monster keeps a running threat total for every hostile unit and attacks whoever has the highest total. Threat is accumulated event by event; there is no forced-target lock or automatic reset.
| Event | Base threat | Where it is recorded |
|---|---|---|
| Damage is taken | 1000 | On the hit enemy’s table, credited to the attacker |
| A cast completes | max(10, 2 × MP cost), capped at 1000 | On every enemy within 10 m, credited to the caster; 0-MP casts add none |
| A monster detects a cast | 1000 | On that monster’s table, credited to the caster; separate from cast-completion threat |
| Proximity / hostility ticks | 1000 | On the nearby enemy selected by the hostility check |
| A skill applies authored threat | 1000 | On each enemy the skill lands on; currently Taunt is the only skill with its own nonzero value |
These are base values before your Threat Generation stat and distance falloff. Events stack: a 40-MP heal adds 80 threat to every enemy within 10 m, and a monster that detects the cast can add its own separate 1000-point event.
+100% Threat Generation doubles every event; +500% makes it ×6, while −25% makes it ×0.75. It does not change damage or healing. Distance then scales the result: 100% at point-blank, about 92% at 5 m, 70% at 10 m, and 24% at 20 m.
| Current source | Threat Generation | Scaling |
|---|---|---|
| Taunt buff | +100% per skill rank | +100% at rank 1 to +500% at rank 5 |
| Breakjaw passive | +150% | Always on |
| Gaze Gem | +10% per gem refine | 0% at +0 to +100% at +10 |
| Echo Knight, Bull Shark, Sharkling, Shark Buccaneer Cards | +10% per gear refine | Uses the refine of the gear holding the card: 0% at +0 to +100% at +10 |
| Bluefin Card | −25% | Flat; refine does not change it |
Taunt lands one maximum authored-threat event on every enemy it hits and buffs the Knight’s Threat Generation for follow-up actions. Its displayed “Applies threat: 200%” does not mean twice the normal spike: authored threat uses a cap of 1, so any nonzero coefficient already reaches the 1000-point base ceiling.
It does not lock a monster onto the Knight, clear another player’s threat, or move the Knight directly to the top. The target changes as soon as someone else’s accumulated total becomes higher.
The running totals are not shown in-game and are not simulated by the site’s calculators. These rules come from the current live client’s threat and targeting code.
Each class's own HP multiplier (how much Max HP scales as you level), starting attributes, and max job level. Advanced classes start their attributes at 1.
How much damage each attacking element (row) deals against each defending element (column). Blank means normal damage (×1.0).
Enemy element and attack element are different. “Damage against Holy enemies” checks the target; “Holy damage” checks your attack. Both bonuses multiply the chart value separately: Holy against Holy with +20% damage against Holy enemies is 0.75 × 1.20 = 0.90, not 0.95.
Each resistance layer has its own cap — there is no shared 75% ceiling across them.
Checks the incoming attack’s element. Fire Resistance reduces Fire damage, regardless of which enemy dealt it.
Specific resistance + All Resistance share this cap. For Neutral damage, only specific Neutral Resistance applies.
Checks the enemy’s own element. Resistance to Air Enemies applies even when an Air enemy uses a Fire skill.
This has its own 75% cap and multiplies with your resistance to the attack’s element.
Damage remaining = attack resistance factor × enemy resistance factor × elemental matchup. At each 75% resistance cap, that layer leaves ×0.25 damage.
The matchup chart compares the attack’s element with your body/armor element: ×0.75 resisted, ×1 normal, or ×1.25 weak. It is not another resistance stat.
Illustrative capped values, not a claim that current gear can reach both caps. Other damage modifiers and DEF/MDEF are not included.
Reduces both a status effect’s chance and duration. At 100%, you are immune to that specific status.
Combines gear bonuses with roughly two-thirds of the relevant attribute.
A successful block means 0 HP damage and no barrier spent. Magic uses Spell Dodge instead.
Normally capped at 75%. A Block stat of 100+ guarantees a block; stun, stagger or freeze disables it.
DEF, MDEF and Final Damage Reduction apply separately from these resistance caps.
EXP needed for each level and the running total, up to level 150.
Every stat in the game's StatType list, with its ID, name, and whether it's a percentage stat.
Each group allows at most one normal substat. Different groups can coexist within the item’s slot limit. Ranges show 0% → 100% roll quality, keeping negative signs.
Loading substat ranges…
The Chaos-added slot on equipment can reuse a group or duplicate a normal stat; artifacts do not have this extra slot. The shared attribute is separate from the category groups. These are substat pools, not fixed item stats; individual items may override their usual category. More negative means a stronger reduction: −3% → −5%. Chaos over-rolls can exceed these endpoints. Rounding can give a displayed maximum before the hidden roll reaches 100%.
Essences re-roll an equip’s substats. Every item drops with a finite Potential budget; each essence spends some Potential plus coins to change its substats, and once Potential runs out the item can’t be re-rolled again.
→ Try it hands-on in the Crafting Simulator — craft a real item, roll its substats, then spend essence against its Potential.
Chaos is a gamble: it spends all remaining Potential on one of four equally-likely rolls.
Every buff, debuff, and damage-over-time status in the game, with its element and stacking behavior.
Loading status effects…