MMOrpg Combat Lab
Technical Specification · Spells

Spells

Just as we did with weapons and shields, we'll simplify the vast compendium of spells into a manageable, scalable set of common spell types and formulas.

§ 06.01

Spell Calculations

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:

Direct Hit
Area of Effect *
Over Time
Note for Future Expansion

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).

§ 06.02

Spell Book

Here are the quintessential damage and healing spells we need for the simulation.

Spell Book
SpellProfileCast TimeDuration Base (Vstart)Scaling Rate (r) VarianceMana Cost (% of Pool)
Flash MissileDirect Hit DPS1.5sInstant7.50.045.0%9.0%
Greater FireballDirect Hit DPS3.0sInstant15.00.045.0%7.0%
Gradual BurnDamage Over Time1.5s (GCD)18.0s18.00.045.0%10.0%
Flash MendDirect Hit Heal1.5sInstant55.00.045.0%12.0%
Lesser HealDirect Hit Heal2.25sInstant55.00.045.0%4.0%
Greater HealDirect Hit Heal3.0sInstant90.00.045.0%9.0%
Gradual HealHealing Over Time1.5s (GCD)12.0s60.00.045.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.

If player level < 20
Example — Level 10 Player Casting Gradual Burn (DoT)
Base Over-Time Coefficient
18s Duration ÷ 15s Base = 1.20
Level Delta
20 − 10 = 10 levels below the threshold
Penalty Reduction
10 levels × 3.75% = 37.5% reduction
Penalty Modifier
1.0 − 0.375 = 0.625
Final Leveled Coefficient
1.20 × 0.625 = 0.75
Final SP Bonus
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.

§ 06.03

Base Spell Output and Level Scaling

Spells start with a base value for damage or healing output that is scaled 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:

Spell Base Output by Level — All Spells (no SP bonus)

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 second 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.

Future Proofing

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.

§ 06.04

Spell Output 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.

Spell Outcome Roll Table
OutcomeBracket WidthRoll ThresholdThreshold Value Key
Spell ResistResist%ΔLR < T₁T₁ = Resist%ΔL   e.g. 17% for Boss (ΔL +3)
CriticalCrit%playerT₁ ≤ R < T₂T₂ = T₁ + Crit%player
StandardRemaining BalanceT₂ ≤ R ≤ 100

Spell Outcome Sample Reference

Level 60 Dungeon Ready (1.2×) DPS Caster fighting a Level +3 Boss

Spell Outcome Sample — Level 60 DR Caster vs. Level +3 Boss
OutcomeBracket WidthRoll Threshold
Spell Resist17.0%R < 17.0
Critical13.0%17.0 ≤ R < 30.0
Standard70% Remaining30.0 ≤ R ≤ 100

Spell Output Calculation Sequence

If the roll succeeds we move forward with the final spell output calculation sequence.

Spell Output Calculation Sequence
StepCalculationCalculation Logic
1Spell Output RNGRandom number between the spell's min and max output
2SP BonusDetermine SP Bonus by applying the profile specific coefficient to SP
3Total Spell OutputSpell Output RNG + SP Bonus
4Critical HitIf Critical Hit, apply 1.5× crit bonus modifier
5Tick Count (if DoT/HoT)Spell Duration ÷ 3s Tick Duration
6Tick Output (if DoT/HoT)Total Spell Output ÷ Tick Count

Spell Output Example Calculations

Character Profile

Level 60 Dungeon Ready Ranged DPS Caster

Spell Power (SP): 300
Critical Hit Chance: 13%
Critical Hit Modifier: 1.5×
Opponent: Boss Level +3 (Imposes 17% flat Spell Resistance)

Greater Fireball — Direct Hit

Greater Fireball Spell Profile

Level Scaling Baseline: 15.0 × (1.0460) = 15.0 × 10.520 = 157.8 Base Output Min Damage: 150    Max Damage: 166

Spell Damage

SP Bonus: 300 SP × (3.0s Cast ÷ 3.5s Base) = 300 × 0.857 = 257.1 Bonus Total Spell Output: 158.00Random + 257.1SP Bonus = 415.1 Damage

Spell Attack Roll Outcomes

OutcomeMultiplierDamage
Standard Hit1.0×415.1
Critical Hit1.5×622.7

Spell DPS (tempo adjusted)

Total spell output tells us the damage of a single cast. To compare spells to physical damage on a sustained throughput basis, we convert to a DPS rate using the tempo-adjusted cast time:

Cast Time: 3.0 × 0.90 = 2.7s Yellow DPS: 415.1 ÷ 2.7 = 153.7 DPS

Without tempo this would be 415.1 ÷ 3.0 = 138.4 DPS. Tempo delivers an 11.1% DPS increase by reducing the cast interval while preserving full spell output — the same proportional gain seen in weapon white damage.

Note that the SP Bonus coefficient uses the base cast time (3.0s), not the tempo-adjusted time. Tempo speeds up delivery without reducing the bonus. This is intentional. Tempo is purely a frequency multiplier, not a scaling penalty.

Gradual Burn — Damage Over Time

Gradual Burn Spell Profile

Over Time spells deliver damage in ticks rather than a single hit, so the relevant rate is damage per tick per second rather than total output per cast:

Level Scaling Baseline: 18.0 × (1.04)60 = 18.0 × 10.52 = 189.4 Base Output Min Damage: 180    Max Damage: 199

Spell Damage

SP Bonus: 300 × (18s Dur ÷ 15s Base) = 300 × 1.20 = 360.0 Bonus Tick Count: 18.0s Duration ÷ 3.0s Fixed = 6 Ticks Total Spell Output: 189Random + 360.0SP Bonus = 549.0 Damage Output per Tick: 549.0 ÷ 6 = 91.5 Damage/Tick Tick DPS: 91.5 ÷ 3.0s = 30.5 DPS (sustained)

The 1.5s GCD cast triggers the effect, which then runs independently. The total 549 damage lands over 18 seconds regardless of what the caster does next — freeing them to cast other spells during the DoT's duration.

Regarding tempo reduction, tempo reduces the GCD cast time to apply the DoT (1.5s → 1.35s) but does not affect the tick interval (fixed at 3.0s). The DPS gain from tempo on Over Time spells is therefore minimal compared to Direct Hit spells.

Spell Attack Roll Outcomes

OutcomeMultiplierDamageDamage/TickSustained DPS
Standard Hit1.0×549.0549.0 ÷ 6 = 91.530.5
Critical Hit1.5×823.5823.5 ÷ 6 = 137.2545.8
Reference Table