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.

Landing a hit2

Accuracy & Avoid

Read from the client
Common  = DEX × 1.2 + Level × 2 + LUK × 0.6

Beginner  Acc = Common / 2.5 + 5
Warrior   Acc = Common / 2.5 + 10
Magician  Acc = (INT × 1.2 + Level × 2 + LUK × 0.6) / 5.1 + 20
Bowman    Acc = Common / 4.8 + 20
Thief     Acc = Common / 4 + 15

Avoid = trunc(LUK / 3) + trunc(DEX / 6) + 5
  • Every stat is the total including equipment and buffs.
  • The magician branch reads INT where every other class reads DEX.
  • Below level 10 every character is a Beginner, whatever class the build is headed for, so the planner uses the Beginner line there and the class line from the first advancement on.

Hit test

Read from the client
BaseChance = Acc × 100 / ((max(0, LevelDiff) × 2 + 51) × 5)
Spread     = 0.15 + 0.2 / (1 + exp((BaseChance − Avoid) / 12))
Roll       = rand(1 − Spread, 1 + Spread)
DidHit     = Roll × BaseChance ≥ Avoid
  • Physical and magic share one hit-test routine.
  • Nine monster debuffs skip it and use their own success rate. No attack skill is exempt, Poison Mist included: its damage is gated by the hit test and then by its own success rate.
  • Roll is uniform, so MapleStory Quest reports the exact probability rather than sampling: P = clamp((1 + Spread − Avoid/BaseChance) / (2 × Spread), 0, 1).
  • This replaces the old Accuracy ÷ Avoid approximation, which is not what the client 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