Spell Stats
Spell Casting Profiles
I've outlined our casting profiles on Character Stats under Spell Power, defining coefficients for Direct Hit, Damage/Healing Over Time (DoT/HoT), and Area of Effect (AoE). Here's a quick summary of formulas we'll use in the final calculation when adding Spell Power Bonus:
For our alpha milestone of this doc, I'm only outlining Direct Hit and Over Time spells as our key profiles needed for basic boss fights. I will expand out this section with AoE in the future (e.g. add Healing Wave/Fire Wave).
Spell Book
Here are the quintessential damage and healing spells we need for the simulation.
| Spell | Profile | Cast Time | Duration | Base (Vstart) | Scaling Rate (r) | Variance | Mana Cost (% of Pool) |
|---|---|---|---|---|---|---|---|
| Flash Missile | Direct Hit DPS | 1.5s | Instant | 7.5 | 0.04 | 5.0% | 9.0% |
| Greater Fireball | Direct Hit DPS | 3.0s | Instant | 15.0 | 0.04 | 5.0% | 7.0% |
| Gradual Burn | Damage Over Time | 1.5s (GCD) | 18.0s | 18.0 | 0.04 | 5.0% | 10.0% |
| Flash Mend | Direct Hit Heal | 1.5s | Instant | 11.0 | 0.04 | 5.0% | 12.0% |
| Greater Heal | Direct Hit Heal | 3.0s | Instant | 22.0 | 0.04 | 5.0% | 9.0% |
| Gradual Heal | Healing Over Time | 1.5s (GCD) | 12.0s | 24.0 | 0.04 | 5.0% | 11.0% |
Cast Time Limits
- 1.5s Floor: Any spell with a cast time of 1.5 seconds or faster (including instant casts) is treated as 1.5 seconds, giving it a minimum coefficient of roughly 42.8% (1.5 ÷ 3.5).
- 3.5s Cap: Spells are capped at 100% scaling, even if the cast time is 4 or 5 seconds.
Low-Level Coefficient Penalty
A spell's coefficient is reduced by 3.75% for each level the player is below level 20 to balance out a player's increasing Spell Power at higher levels.
18s Duration ÷ 15s Base = 1.20
20 − 10 = 10 levels below the threshold
10 levels × 3.75% = 37.5% reduction
1.0 − 0.375 = 0.625
1.20 × 0.625 = 0.75
50 SP × 0.75 Leveled Coefficient = 37.5 Bonus Damage
Coefficients and Tempo
The coefficient is calculated using the base cast time of the spell. If you use Tempo to reduce a 3 second cast to 2.7 seconds, it still gets the same bonus damage, SP × ( 3 ÷ 3.5 ). This gives Tempo buffs the advantage of delivering the same bonus damage more often.
Level Scaling and Base Values
Spells start with a base value for damage or healing and scale by player level at a rate of 4% per level. Base values are given for each spell in the table above.
A level 60 Ranged DPS Mage casting Greater Fireball:
Variance
Variance introduces an RNG element into each spell's final output. We'll use a fixed 5% adjustment in the positive and negative from the level scaled damage or healing output which establishes a min and max damage.
Our fireball with a fixed variance of 5% would have the following min/max:
Over Time Tick Rates
Over Time spells have an additional attribute of tick rate, releasing a portion of the total spell output every tick over the duration of the effect. We'll use a flat 3 second tick rate for all OT spells. For an 18 seconds spell, we know there will be 6 ticks (18 ÷ 3). The total spell output is then divided by the number of ticks to determine tick output.
For new spells, OT spell durations should be defined as a multiple of the 3 second tick rate. If adjusting tick rate in the future, this relationship with duration should be considered.
Spell Damage Calculation in Combat
Spell Outcome Roll Table
Spells have very limited outcomes. For damage spells, you need to roll for spell resistance based on level friction with the target. Otherwise, all spells will succeed with either standard output or a critical hit dependent on players crit stats. Note that the crit modifier is only 150% for casters.
| Outcome | Bracket Width | Roll Threshold | Threshold Value Key |
|---|---|---|---|
| Spell Resist | Resist%ΔL | R < T₁ | T₁ = Resist%ΔL e.g. 17% for Boss (ΔL +3) |
| Critical | Crit%player | T₁ ≤ R < T₂ | T₂ = T₁ + Crit%player |
| Standard | Remaining Balance | T₂ ≤ R ≤ 100 | — |
Spell Outcome Sample Reference
Level 60 Dungeon Ready (1.2×) DPS Caster fighting a Level +3 Boss
| Outcome | Bracket Width | Roll Threshold |
|---|---|---|
| Spell Resist | 17.0% | R < 17.0 |
| Critical | 13.0% | 17.0 ≤ R < 30.0 |
| Standard | 70% Remaining | 30.0 ≤ R ≤ 100 |
Spell Output Calculation Sequence
If the roll succeeds we move forward with the final spell output calculation sequence.
| Step | Calculation | Calculation Logic |
|---|---|---|
| 1 | Spell Output RNG | Random number between the spell's min and max output |
| 2 | SP Bonus | Determine SP Bonus by applying the profile specific coefficient to SP |
| 3 | Total Spell Output | Spell Output RNG + SP Bonus |
| 4 | Critical Hit | If Critical Hit, apply 1.5× crit bonus modifier |
| 5 | Tick Count (if DoT/HoT) | Spell Duration ÷ 3s Tick Duration |
| 6 | Tick Output (if DoT/HoT) | Total Spell Output ÷ Tick Count |
Spell Output Example Calculations
Level 60 Dungeon Ready Ranged DPS Caster (Magic Mage)
Spell Power (SP): 300 Critical Hit Chance: 13% Critical Hit Modifier: 1.5×
Opponent: Boss Level +3 (Imposes 17% flat Spell Resistance)
Level Scaling Baseline: 15.0 × (1.0460) = 15.0 × 10.520 = 157.8 Base Output
Min: floor(157.8 × 0.95) = 150 Max: ceil(157.8 × 1.05) = 166
Spell Output RNG: 158.00 (random value between 150 and 166)
SP Bonus: 300 SP × (3.0s Cast ÷ 3.5s Base) = 300 × 0.857 = 257.1 Bonus
Total Spell Output: 158.00 + 257.1 = 415.1 Damage
Level Scaling Baseline: 18.0 × (1.04)60 = 18.0 × 10.52 = 189.4 Base Output
Min: floor(189.4 × 0.95) = 180 Max: ceil(189.4 × 1.05) = 199
Spell Output RNG: 189.4 (random value between 180 and 199)
SP Bonus: 300 × (18s Duration ÷ 15s Base) = 300 × 1.20 = 360.0 Bonus
Tick Count: 18.0s Duration ÷ 3.0s Fixed = 6 Ticks
Total Spell Output: 189 + 360.0 = 549.0 Damage