Damage Calculator
For all your weird pre-BB damage calculation needs!Assumptions
We assume that the player can attack as quickly as possible (i.e. holding down the attack button), and does so uninterrupted: they are never struck, never have to move, never use potions, &c., and also never miss. We also assume that they are damaging exactly one foe at all times, and that that one foe has infinite HP. You can select a number of targets greater than one, but note that this does not take into account the damage taken by any of said virtual enemies, except for one of them. The ability to select a number of targets is only there for skills like Heal, which change their per-line damage based on the total number of targets.
We assume that there is no particular damage cap.
You Should Know
You Should Know…
Weapon speeds are calculated based on the speed of the weapon itself, in addition to any booster effects that may be active. The slowest possible speed is 9,^{[1]} and the fastest is 2. Booster skills add −2 to your speed value, and so does Speed Infusion.^{[2]} Booster skills and Speed Infusion do stack, granting −4 speed (in addition to the speed of your weapon) when both are active.^{[2]} However, your speed can never go below 2, so e.g. a weapon with speed 3 that is affected by a Booster skill is speed 2, not 1. You may need to use an external reference and/or look in the game files to find out the speed of any given weapon, because only some weapons have their true speeds displayed in-game. Others have ambiguous speed descriptions like “Fast”, which could correspond to a speed of 4, or to a speed of 5.
Stats (STR, DEX, INT, LUK) are total stat values, after base stats and equipment and buffs. Likewise, total WATK is the sum of all WATK from your equipment (including both your weapon, and your other equips), plus WATK from skills, plus WATK from buffs (except Echo of Hero, which, for convenience, can be entered separately). Total MATK is defined similarly to total WATK, but it should be noted that it should also include the MATK that is due to your total INT score. This “total MATK” is displayed in-game as “MAGIC” inside of the “DETAIL” tab of the “CHARACTER STATS” window (in the keybinding GUI, this window is listed as “ABILITY”).
The mastery is given here as a percentage. Your mastery can never be less than 10%, but it can be higher, if you have one or more relevant mastery skills (“relevant” because mastery skills typically only apply to certain classes of weapons, e.g. only axes). Most mastery skills increase your mastery up to a total of 60%, but some fourth-job skills can take you up to as high as 90%. Mastery for magical attacks works on a per-spell basis (based on which spell it is and what level it’s at), and should be listed in-game within the spell’s description.
The “Damage multi” field under “Skill” refers to the damage percentage listed in the description of a physical attack; for example, the Power Strike skill has a “Damage multi” of 260% at max level. The “Basic attack” only applies to magical attacks and summons, and is generally listed in the skill description as “basic attack”; for example, the Magic Claw skill has a “Basic attack” of 40 at max level. “Lines” refers to how many lines of damage the attacking skill does; for example, this value is 1 for Power Strike and 2 for Magic Claw.
Damage multipliers from skills, critical hits, and elemental effects work in tandem. All of these influences combine into a single multiplier that we will here refer to as “the damage multiplier”. This is the number by which you multiply your basic attack damage (for physical attacks, this is your basic attack — i.e. not using a skill — with no crits nor elemental effects nor reduction due to WDEF). These sources of damage multiplier (skills, crits, elemental effects) are additive in the sense that these multipliers are summed together, and then that sum makes up the damage multiplier. Note that basic attacks have a “skill” multiplier of 1, i.e. as if you were using an attacking skill that said “100% damage” in the description. For example, say you use the Arrow Blow skill as an archer who has maxed both Arrow Blow (described in-game as “Damage 260%”) and Critical Shot (described in-game as “40% success rate, critical damage 200%”, although the critical damage is actually 100 percentage points lower than described, i.e. 100%; see below). Let’s assume that this particular use of Arrow Blow is a crit, and thus we get the benefit of the “critical damage 200%” (again, really 100%; see below). The damage multiplier is the sum of the multipliers from Arrow Blow and Critical Shot: 2.6 + 1 = 3.6. Thus, we expect this attack to (again, assuming the monster has 0 WDEF) do 3.6 times as much as a non-critical basic attack would. Note that magic attacks work somewhat differently, and (as far as I know) do not use this additive notion of “damage multiplier”.
The descriptions of skills that have to do with critical hits are typically misleading. Below is a list of these skills and what they actually add to the damage multiplier:
- Critical Shot: 100 percentage points lower than described in-game; at max level, the description reads “200%”, but it only adds 100 percentage points to your damage multiplier.
- Critical Throw: Same as for Critical Shot.
- Stun Mastery: The in-game description is mostly correct (60 extra percentage points added to the damage multiplier when Stun Mastery is at its maximum level), but this skill interacts bizarrely with Sharp Eyes: when the marauder/buccaneer is affected by Sharp Eyes, Stun Mastery acts as if it granted 100 more percentage points than it nominally does, viz. 160 at max level. This extra 100 percentage points is in addition to all of the percentage points contributed by Sharp Eyes, which is 140 such points when Sharp Eyes is at its maximum level (see below).
- Sharp Eyes: 100 percentage points higher than described in-game; at max level, the description reads “+40%”, but it actually adds 140 percentage points to your damage multiplier. This also, for unknown reasons, interacts strangely with Stun Mastery (see above). Sharp Eyes in particular is a source of confusion (especially because it can be applied to characters of any class/job), so the paragraph immediately below is dedicated to it.
The in-game description of the Sharp Eyes skill is somewhat misleading. At max level, the skill grants “[Critical] Damage + 40%”. However, this should probably read “+140%”, because the actual value that is added to the damage multiplier is 1.4 (140 percentage points). For archers and assassins/hermits/nightlords, interpreting Sharp Eyes is pretty straightforward: it just adds something to your already-existing critical chance and to your already-existing critical multiplier. For example, an archer with maxed Critical Shot and maxed Sharp Eyes has a 0.4 + 0.15 = 0.55 probability of critting, and a critical multiplier of 1 + 1.4 = 2.4. For marauders/buccaneers with Stun Mastery, Sharp Eyes works confusingly: it effectively adds 2.4 (instead of 1.4) to the critical multiplier of critical hits on stunned monsters. Stun Mastery’s critical multiplier at max level is 0.6, so with maxed Sharp Eyes, it is increased to 0.6 + 2.4 = 3.0. For physical attackers who do not already have a critical-hit-granting skill, being buffed with maxed Sharp Eyes means an overall 0 + 0.15 = 0.15 probability of critting, and a critical multiplier of 1.4; not a critical multiplier of 0.4. Note that the value referred to here as the “critical multiplier” is additive and only serves to cumulate into the overall “damage multiplier”. For more on this, see above. For magical attacks, the probability of critting with maxed Sharp Eyes is also 0.15, but an attack that crits does not add 1.4 to the damage multiplier of a non-crit, as you would expect (magical attacks do not use the same notion of “damage multiplier”). Instead, it simply multiplies the overall damage of the magical attack by a factor of 1.4. Nevertheless, if you want to use the calculator for magical attacks combined with Sharp Eyes, you should set the values in the inputs below as if you were setting them for a physical attacker who has no critical-hit-granting skill of their own.
“Good anim probability” refers to the probability of your melee attack having a “good” (read: higher primary stat multiplier) animation, given that you’re basic attacking or using a skill that animates similarly (e.g. Power Strike). This value is ignored whenever you’re attacking with a skill that always uses a certain animation, e.g. Somersault Kick, which always stabs (i.e. never swings). This value is also ignored whenever you’re attacking with a weapon that does not distinguish between “good” and “bad” animations, e.g. swords and daggers. The only weapon types that distinguish between “good” and “bad” animations are:
- Polearms: swings are good, stabs are bad. Good anim probability is suspected to be 60%.
- Spears: stabs are good, swings are bad. Good anim probability is suspected to be 40%.
- Axes: swings are good, stabs are bad. Good anim probability is unknown.
- Blunt weapons: swings are good, stabs are bad. Good anim probability is unknown.
- Wands: swings are good, stabs are bad. Good anim probability is suspected to be 100%.
- Staves: swings are good, stabs are bad. Good anim probability is suspected to be 100%.
You can select a number of targets greater than one, but note that this does not take into account the damage taken by any of said virtual enemies, except for one of them. The ability to select a number of targets is only there for skills like Heal, which change their per-line damage based on the total number of targets. Note that when casting Heal (maximum of 6 targets), the caster counts as a target, thus lowering the maximum number of possible enemy targets from 6 to 5. Also note that Heal, unlike most spells, uses the “Damage multi” rather than the “Basic attack” (the damage multi is typically 300% at maximum level).
“Ordinal # of hit” refers to the position/index of the particular damaging strike in question, within the ordering of all damaging strikes produced by the attack in question. For example, when using Iron Arrow, the first damaging strike (the one that damages the first monster struck by the arrow) has an ordinal # of 1, the next damaging strike an ordinal # of 2, and so on.
It is possible for enemies to have negative WDEF values, due to effects like Threaten.
The “Attack with Dark Power” in the description of the Panic skills is a probability of the target having Darkness (the status effect that lowers WACC) inflicted on them, and is unrelated to the damage that each skill deals. Both Panic and Coma lack attack periods, because they are combo finishers.
Venom skills (Venomous Star and Venomous Stab) have their damage calculated for just the venom damage over time. Also note that these same skills make use of the “Basic attack” parameter, as noted in their skill descriptions.
The damage of the Heaven’s Hammer skill is calculated on the server side. As a result, its exact damage formula has remained somewhat elusive. Two versions are given here: the original XiuzSource version, and a “corrected” version that uses the attacker’s mastery to determine the minimum damage. The original XiuzSource version determines the minimum damage by simply multiplying the maximum damage by 0.8.
The terms “expectation” and “expected” are here used in the probability-theoretic sense. The “σ” symbol refers to the standard deviation, which is conveniently in the same units/dimensions as the values themselves. We often talk about the so-called “stability” of damage, which is essentially a way of talking about the dispersion of the damage instances, and the standard deviation is one way of quantifying dispersion. However, care must be taken when comparing two separate standard deviations, because standard deviation is an absolute measure of dispersion. As a result, two characters who appear to have roughly the same damage stability, but the magnitude of whose damage outputs — say, damage per line, for example — are significantly different, will have damage-per-line distributions with significantly different standard deviations. This is because the standard deviation is expressed in the same dimensions as the values themselves, so it scales up linearly as the values of the distribution are scaled up. To help get a relative (and thus more comparable) measure of damage stability, the coefficient of variation (CV) is used. The CV is a dimensionless quantity.
If you see an asterisk (*) on the right-hand side of a damage value (particularly, the upper bound of a range), it means that that value is exactly an integer, before it is sampled from. Damage ranges are virtually intervals of real numbers (actually floating point numbers, of course). To get a particular damage outcome, the interval is sampled from (as a continuous uniform distribution), the sample is then clamped to a minimum of 1, and the result’s fractional part is then truncated. There’s some finer details here about the exact order of operations, but the point is that when a particular bound is exactly an integer, it becomes unclear whether or not it can ever be sampled. This is perhaps a bigger deal than it usually would be, because the fractional parts of the samples are truncated, making a sample of e.g. 2.999 effectively much less (viz. 1 less, instead of 0.001 less) than a sample of 3. If you see an asterisked value, you can effectively just subtract 1 from it. The method here chosen to display these liminal values is largely for completeness.^{[3]}
Footnotes for “You Should Know”
[1]: This is technically untrue; speeds above 9 are in fact possible, but would require equipping a weapon with a speed above 9 (because there is no way to increase speed values with (de)buffs or similar). Such weapons conventionally do not exist, although see for example the Golden Mace, which has a speed of 15 (but does not actually exist in MapleLegends as far as I know). As a result, attack period values for speeds above 9 are unknown — and they may just be the same as for speed 9.
[2]: Depending on the implementation, this may or may not be exactly correct. In early versions of MapleStory that have pirates (e.g. GMS v62), the client did not have a separate buff opcode for Speed Infusion, so Speed Infusion has to be “emulated” by using an ordinary Booster buff with twice the magnitude of a normal Booster skill (4 instead of 2). The result is thus usually the same, but for jobs that lack a booster skill of their own, this can be a big boon (−4 to the speed of their weapon when affected by Speed Infusion, instead of the expected −2). Also worth noting here is that many implementations lack a separate opcode for Spell Booster, so Speed Infusion can effectively lower spellcasting speeds beyond the usual −2 of maxed Spell Booster (all the way to −4, potentially). This is another artifact/bug of early pirate implementations, and spellcasting speeds below −2 are not handled by this calculator.
[3]: Typically (see e.g.
in Java), software functions that are intended to return a
uniformly-distributed sample from an interval of floating point
numbers do so from a nominally
half-closed interval; in particular, the lower “half” (read: bound) is
closed/included, while the upper “half” is
open/excluded. As a result, an upper range bound that has an
asterisk (*) can only be guaranteed to nominally be
part of the range, and it may or may not have a nonzero
probability of being sampled, depending upon the
implementation. For reference, the number of
single-precision
(32-bit, typically float
in
C)
IEEE 754
floating point numbers within
the unit interval
is 1,065,353,217 — this number is only for scale, since
precision varies depending on how far away from zero you are,
and
double-precision
floating point numbers are common as well — but the point
is that it shouldn’t matter much for expected values and
variances. It’s just that it may (or may not) be
impossible to actually witness that asterisked damage
value.
Calculator
Elemental
Combo attack
Expected dmg per line: ???
σ_{per line}, CV_{per line}: ???, ???
Total range: ??? ~ ???
Total expected dmg per hit: ???
σ_{total hit}, CV_{total hit}: ???, ???
Expected DPS: ???
σ_{DPS}, CV_{DPS}: ???, ???
Magic
Range, crit range: ??? ~ ???, ??? ~ ???Expected dmg per line: ???
σ_{per line}, CV_{per line}: ???, ???
Total range: ??? ~ ???
Total expected dmg per hit: ???
σ_{total hit}, CV_{total hit}: ???, ???
Expected DPS: ???
σ_{DPS}, CV_{DPS}: ???, ???
Warnings
Legal
All of the code on this page is entirely free (GNU AGPL v3+). See the Source page for more information and access to source code.