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.

§ 05.01

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:

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

§ 05.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.5sInstant11.00.045.0%12.0%
Greater HealDirect Hit Heal3.0sInstant22.00.045.0%9.0%
Gradual HealHealing Over Time1.5s (GCD)12.0s24.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.

§ 05.03

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:

Spell Base Output by Level — All Six 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 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.

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.

§ 05.04

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.

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 (Magic Mage)

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

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

Standard Hit
Critical Hit
Gradual Burn — Damage Over Time

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

Standard Hit
Critical Hit
Reference Table