MapleStory Quest

Client formula audit

Formulas

Every calculation this site performs, with its source and status. If a number in the planner surprises you, it should be traceable to something on this page.
About this page

These are transcribed from the COT2 client formula audit published alongside the OSMS datamine. They are COT2 formulas, and several differ from both COT1 and older versions of the game, so applying remembered numbers from other versions will give wrong answers. The audit was made on Closed Online Test 2 and has not been redone for the Public Release, so until it is, these are the CoT2 formulas. The engine that implements them is covered by unit tests that assert these exact expressions.

Damage4

Damage over time

Partly verified
TotalDamage   = (DoTBasicAttack / 100) × MAGIC × (Total INT / 125 + 1)
DamagePerTick = TotalDamage / DurationSeconds
  • MAGIC is the floored value above.
  • Note the 125 divisor, not the 100 used everywhere else.
  • DoT ignores all defence: the routine never reads the enemy’s weapon or magic defence.
  • DoT still takes the element modifier, the level penalty and the crit roll, but only ever the linear branch of the level penalty.
  • The client computes the total and never divides it; the per-tick line comes from the skill descriptions, which is why this is marked partial.

Bleed

Partly verified
TotalDamage   = (BleedPercent / 100) × ((2 × Primary + Secondary) / 100 + 1 + AttackPower / 50) × WeaponAttack
DamagePerTick = TotalDamage / DurationSeconds
  • The physical damage-over-time routine: Axe Mastery’s bleed, Coma’s and Inferno’s. It has its own base and is not a share of the hit that applied it, so it does not inherit the skill’s damage %, the weapon multiplier or the defence of the hit.
  • Like a magic DoT it ignores defence and takes the linear level penalty, the element and the crit roll.
  • The total is read from the client; the per-tick split is not, which is why this is marked partial.

Shadow Partner

Partly verified
Damage = Damage × PartnerDamage / 100
  applied only to hits in the second half of the hit list
  • The partner repeats the hit list at its own share of the damage, 10% at level 1 rising to 40%.
  • The step is read from the client, but nothing in the code names the skill, so tying it to Shadow Partner is the audit’s inference.

Fixed damage

Partly verified
Damage = FixedDamage

Three Snails → 15 · 25 · 40
  • Three Snails states a flat number rather than a percentage, and the client’s own skill data carries the same numbers as its fixed damage.
  • The audit does not cover this step, so the planner takes defence, element, level and crit not to apply to it. Only the hit test does.

What is deliberately missing

  • Cast times and DPS. The audit does not establish frame-accurate cast delays, and Spell Booster’s speed stages have no verified conversion to milliseconds. The character’s own action frames are extracted from the client, but not yet turned into cast times, so the planner computes damage per cast exactly and turns it into DPS only for a cast time you supply.
  • Monster drop tables. Not present in the datamine. Item sources on this site come from quest rewards and crafting recipes only.
  • Potion stacking rules. The data states each consumable’s effect but not how overlapping categories interact, so consumable bonuses are entered as manual modifiers rather than stacked automatically.
  • Skill elements. Read from the client’s own skill data rather than from the tooltips: twenty-one skills carry an element there. The monster side is the datamine’s resistance table, and every value is overridable per target in the planner.
MapleStory Classic World damage & EXP formulas · MapleStory Quest