Originally posted by Technolink on SW:
Please point out any errors that I have made, or equations you know of that aren't here. I will update this periodically with any new information.Originally Posted by Technolink
Well I noticed that we have quite a lot of maplestory's formulas cracked, the problem is between sleepy, lolbasil, mapletip, hidden-street, etc, its very hard to find a formula. I've even seen two people from different sites working on the same formula.
I hope to eventually put this thread on all sites so maplestory knowledge can be spread and easily accessed from everywhere.
Unsolved formulas will be detonated in red so perhaps we could get to work on those next!
Equations/expressions/values in blue have not been verified and may be outdated
Equations/expressions/values in red are incomplete, unconfirmed, or experimental
General Damage CalculationIn general, damage is calculated this way:
{((BaseDamage * A) - (Defense * rand(0.5, 0.6))) * (Skill * B + Critical) * C} * D
where:
- BaseDamage is a random number selected from a base damage range (see Base Damage Equations),
- A, B, C, and D are modifiers (see Modifiers),
- Defense is PDDamage for physical attacks and MDDamage for magic attacks; also see Level Disadvantage under Modifiers > A which has a defense-like effect,
- Skill and Critical are expressed as decimals, such that a 260% damage skill is 2.6 (see Critical),
- Skill is equal to 1 if no skill or a magic skill is used, and
- {X} restricts the value of X to the range [1, 199999] and removes its fractional part.
There are certain exceptions to the general formula, outlined below:
No critical: Blizzard, Shadow Meso, Assassinate first 3 hits
Ignores defense (but not dLevel modifier): Assaulter, Sacrifice, Demolition, Phoenix/Frostprey/Octopus/Gaviota
Base Damage EquationsWeapon Damage:
Max = (Primary + Secondary) * WeaponAttack / 100
Min = (Primary * Mastery * 0.9 + Secondary) * WeaponAttack / 100
where:
Primary and Secondary vary depending on the weapon (see Weapon Modifiers below),
Mastery is weapon mastery as a decimal, such that 60% mastery is 0.54, and
WeaponAttack is the sum of all equips, and includes projectiles if and only if they are consumed during the attack.
For the rest of this post I will use the notation: rand(min, max). Using this convention the general Weapon Damage equation can be expressed in one line:
(Primary * rand(Mastery * 0.9, 1) + Secondary) * WeaponAttack / 100
Weapon Modifiers:
Weapon Primary Secondary One Handed Sword STR * 4.0 DEX One Handed Axe/BW/Wand/Staff (Swinging) STR * 4.4 DEX One Handed Axe/BW/Wand/Staff (Stabbing) STR * 3.2 DEX Two Handed Sword STR * 4.6 DEX Two Handed Axe/BW (Swinging) STR * 4.8 DEX Two Handed Axe/BW (Stabbing) STR * 3.4 DEX Spear (Swinging) STR * 3.0 DEX Spear (Stabbing) STR * 5.0 DEX Polearm (Swinging) STR * 5.0 DEX Polearm (Stabbing) STR * 3.0 DEX Dagger (Non-Thieves) STR * 4.0 DEX Dagger/Throwing Stars (Thieves) LUK * 3.6 STR + DEX Bow DEX * 3.4 STR Crossbow DEX * 3.6 STR Knuckle STR * 4.8 DEX Gun DEX * 3.6 STR
Magic:
((Magic * 0.058)^2 + Magic * 3.3 * rand(Mastery * 0.9, 1) + INT * 0.5) * SpellAttack / 100
Heal Damage:
(INT * rand(0.3, 1.2) + LUK) * Magic / 200 * TargetMultiplier
The % listed in the skill description (300% at max) acts as the Skill value (see General Damage Calculation above)
Heal Target Multiplier: 0.3 + 1/NumTargets (including yourself)
1: 1.3
2: 0.8
3: 0.633
4: 0.55
5: 0.5
6: 0.467
Dragon Roar:
(STR * 4.0 * rand(Mastery * 0.9, 1) + DEX) * WeaponAttack / 100
Lucky Seven/Triple Throw:
(LUK * rand(2.5, 5.0)) * WeaponAttack / 100
Bow (Swinging) / Power Knock Back:
(DEX * 3.4 * rand(0.09, 1) + STR) * WeaponAttack / 150
Claw (Punching):
(LUK * rand(0.09, 1) + STR + DEX) * WeaponAttack / 150
Gun (Punching):
(DEX * rand(0.09, 1) + STR) * WeaponAttack / 200
Bare Hands:
(STR * J * rand(0.09, 1) + DEX) * WeaponAttack / 100
WeaponAttack equals floor((2*level+31)/3) and is capped at 31.
J equals 3.0 for Pirates and 4.2 for all 2nd+ job Pirates.
Phoenix/Frostprey/Octopus/Gaviota:
(DEX * 2.5 * rand(0.7, 1) + STR) * AttackRate / 100
Damage ModifiersAA = LevelDisadvantage * ElementAttribute * Charges * ArrowBomb
Level Disadvantage:
For physical attacks, LevelDisadvantage = 1 - 0.01 * dLevel,
where dLevel = MobLevel - CharLevel if MobLevel > CharLevel and 0 otherwise.
For magic attacks, LevelDisadvantage = 1.
Element Modifier:
ElementAttribute = 1 + X_i * E_i
where for each element i:
X_i = portion of the skill used that has that element, and
E_i = 0.5 if weak, 1 if neutral, -0.5 if resistant to that element.
Element examples:
Fire Arrow has X = 1 for Fire only
I/L Composition has X = 0.5 for both Ice and Lightning
Level 1 Holy Charge has X = 0.43 for Holy (see Skill Tables)
Charges:
Dual charging?
Arrow Bomb:
ArrowBomb = 0.5 for impact hits and SkillDamage% for splash hits. "Skill" for Arrow Bomb is always 1.
(As an aside, this causes critical to act as multiplicative on Arrow Bomb rather than additive.)
BB = ComboModifier * FinisherModifier * Barrage
Combo Attack and Finishers:
ComboModifier 1-5 orbs = ComboAttack% + [(Orbs - 1) * (ComboLevel / 6)]%
ComboModifier 6-10 orbs = ComboAttack% + 20% + [(Orbs - 5) * 4]%
where:
ComboLevel refers to the Crusader skill, and
[X] denotes X rounded down to the nearest integer.
FinisherModifier is applied for Panic and Coma only, as follows:
1 orb = 1.0
2 orbs = 1.2
3 orbs = 1.54
4 orbs = 2.0
5 - 10 orbs = 2.5
Barrage:
Barrage = 1 for 1st-4th hit, 2 for 5th hit, 4 for 6th hit
CC = KeyDown modifier for Big Bang/Pierce/Screw Punch
C = 10% + 90% * KeyDownTime / FullChargeTime
DD = chain lightning effect
'OrderHit' refers to, e.g., 1 for the first hit, 2 for the second, etc. 'NumHits' refers to the number of hits in total.
Slash Blast FA:
D = 2 * (1/3) ^ (OrderHit - 1)
Cumulative damage = 3 * (1 - (1/3) ^ NumHits)
Iron Arrow:
D = 0.9 ^ (OrderHit - 1)
Cumulative damage = 10 * (1 - 0.9 ^ NumHits)
Pierce:
D = 1.2 ^ (OrderHit - 1)
Cumulative damage = 5 * (-1 + 1.2 ^ NumHits)
Chain Lightning:
D = 0.7 ^ (OrderHit - 1)
Cumulative damage = 3.333 * (1 - 0.7 ^ NumHits)
Energy Orb:
D = (2/3) ^ (OrderHit - 1)
Cumulative damage = 3 * (1 - (2/3) ^ NumHits)
CriticalCritical is normally additive to the skill percentage. For the canonical example, Double Shot is 130% with no critical, and 230% with +100% critical.
Sharp Eyes adds an additional 100%, for +140% to base critical when maxed. When combined with Stun Mastery, a further 100%, totalling to Stun Mastery + Sharp Eyes + 200%, or +300% when both are maxed.
Corsair's Elemental Boost also acts as "critical" in that it is additive to the skill percentage, so it is +200% when maxed.
Other Damage Equations (damage per tick, healing, etc)Venom:
Damage per second tick = (rand(8.0, 18.5) * [STR + LUK] + DEX * 2) / 100 * BasicAttack
Ninja Ambush:
Damage per second tick = (STR + LUK) * (1.5 + (SkillLevel * 0.05))
Shadow Web:
Damage per 3-second tick = MonsterHP / (50 - SkillLevel)
Flamethrower:
Damage per second tick = InitialHitDamage * (5% + AmpBulletDamage%)
Shadow Meso:
Damage = 10 * Mesos * SpecialCritical (in skill description; ignores regular critical)
Meso Explosion:
if Mesos <= 1000, then Damage per bag = (50 * Mastery) * rand(0.5, 1) * ((Mesos * 820 + 28000) / 5300)
if Mesos >= 1000, then Damage per bag = (50 * Mastery) * rand(0.5, 1) * ((Mesos * 50000) / (Mesos + 5250))
note: Mastery = X/1000, where X is the internal skill variable.
Chakra Recovery:
Base = (LUK * 6.6 * 0.5 + DEX) * (SkillRecovery + 1) / 5
Heal Recovery:
Recovery = something * Magic * HealLevel * TargetMultiplier
Heal Target Multiplier: 0.3 + 1/NumTargets (including yourself)
1 - 1.3
2 - 0.8
3 - 0.633
4 - 0.55
5 - 0.5
6 - 0.467
Nekonecat's old equation:
Max = (1.132682429*10^-7*luk^2 + 3.368846366*10^-6*luk + 1.97124794*10^-3) * magic * int * healSkillLevel * multiplier
Min = MAX*0.8
Poison Brace/Poison Mist/Fire Demon/Ice Demon:
Damage per second tick = MonsterHP / (70 - SkillLevel)
Mob DamageWeapon Damage:
PADamage^2 * rand(0.0085) - WDEF*A - (WDEF-StandardPDD)*B
where:
A = C + 0.28
if WDEF >= StandardPDD, then B = (C*28/45 + (CharacterLevel)*7/13000 + 0.196)
if WDEF < StandardPDD, then B = D * (C + (CharacterLevel)/550 + 0.28)
C (warriors) = STR/2800 + DEX/3200 + INT/7200 + LUK/3200
C (everyone else) = STR/2000 + DEX/2800 + INT/7200 + LUK/3200
if Character Level >= Mob Level, then D = 13/(13 + CharacterLevel - MobLevel)
if Character Level < Mob Level, then D = 1.3
StandardPDD values can be found here.
Magic Damage:
MADamage^2 * rand(0.0075, 0.008) - (MDEF/4 + STR/28 + DEX/24 + LUK/20) * K
where K = 1.2 for magicians and 1 otherwise.
AccuracyPhysical Accuracy:
HitRate = (13 - Avoid / Accuracy * (dLevel + 25.5)) / 6
FullAccuracy = Avoid * (dLevel + 25.5) / 7
MinAccuracy = Avoid * (dLevel + 25.5) / 13
where dLevel = MobLevel - CharLevel, and 0 if negative
Magical Accuracy:
HitRate = (12 - Avoid / Accuracy * (dLevel + 25.5)) / 7
FullAccuracy = Avoid * (dLevel + 25.5) / 5
MinAccuracy = Avoid * (dLevel + 25.5) / 12
where
Accuracy = (floor(INT/10) + floor(LUK/10)) * 5, and
dLevel = MobLevel - CharLevel, and 0 if negative
EXP SplittingLeech conditions: At least one of the following must be met in order to share a cut of party EXP
1. Deal at least 1 damage to the monster.
2. Be within 5 levels of the monster.
3. Be within 5 levels of a party member that fulfills 1 or 2.
EXP received when partied = Monster EXP * (0.4 * Player level / Total party level + 0.6 * Damage dealt / Monster HP) * Party bonus
(Total party level = sum of the levels of all players that satisfy leech conditions. When not partied, you count as your own party, i.e. you get all the EXP.)
(In order words, 60% is split proportional to damage dealt and 40% is split proportional to character level.)
EXP recieved when not partied = Monster EXP * (Damage dealt / Monster HP)
(In order words, all EXP is split proportional to damage dealt.)
If your party is not the only one who dealt damage:
EXP received when partied = Monster EXP * (Damage your party dealt / Monster HP) * (0.4 * Player level / Total party level + 0.6 * Damage dealt / Damage your party dealt) * Party bonus
(It's the same as treating each party as a separate unpartied individual and then splitting within each party.)
EXP RequiredCharacter
1: 15
2: 34
3: 57
4: 92
5: 135
6 ≤ level ≤ 50:
if level%3 = 0, exptnl(level) = (level^4 + 57*level^2)/9
otherwise, exptnl(level) = (level^4 + 55*level^2 - 56)/9
51 ≤ level:
exptnl(level) = floor(1.0548*exptnl(level-1))
Monster Book (credit to Chris from Kryptodev)
numCardsNeeded = (5 * MBLevel) * (MBLevel + 1)
Stat Related StuffEverything relating to HP/MP:
See LazyBui's Guide to HP and MP, no need to have info twice.
Base Accuracy:
Warriors/Magicians/Beginners = DEX * 0.8 + LUK * 0.5
Brawlers = DEX * 0.9 + LUK * 0.3
Bowmen/Thieves/Pirates/Gunslingers = DEX * 0.6 + LUK * 0.3
Base Avoid:
Warriors[/Magicians/Bowmen/Thieves/Beginners] = DEX * 0.25 + LUK * 0.5
Pirates = DEX * 0.25 + LUK * 0.5
Brawlers = DEX * 1.5 + LUK * 0.5
Gunslingers = DEX * 0.125 + LUK * 0.5
Hands = DEX + INT + LUK (used for Maker skill in KMS, thanks GW2000 for pointing that out)
Misc/ConstantsCaps: (most of these are trivially common knowledge, but they're here for reference anyway)
Level: 200
HP/MP: 30000
STR/DEX/INT/LUK: 999
Weapon/magic attack/defense: 1999
Accuracy/avoid: 999
Meso: 2147483647 (or 2^31-1, the maximum value of a signed int)
Damage in one hit (normally): 199999
All of the above also apply to mobs, if the stat applies.
(non-thieves)
Min Miss Rate: 2%
Max Miss Rate: 80%
(thieves)
Min Miss Rate: 5%
Max Miss Rate: 95%
Cast times can be found in LazyBui's Attack Speed Reference
Base HP Recovery: 10 / 10 seconds while inactive
Base MP Recovery: 3 / 10 seconds
Mages' Improving MP Recovery skill: Character level * MP Recovery level / 10
EXP lost on death:
Warriors/Mages/Pirates' = (5 + 20 / Base LUK)%
Bowmen/Thieves' = (5 + 8 / Base LUK)%
Battleship Durability: Battleship level * 5000 + (Character level - 120) * 3000
Each point of durability is equivalent to 1 HP.
Energy Charge:
10000 units = 1 fully charged meter
Charge rate: Skill % * 100 units per monster per hit. In other words, at maximum level, it charges 192 units per monster per hit.
Energy Charge decay: 200 units / 10 seconds while inactive
ContributorsAGF
blitzkrieg
Devil's Sunrise
Fiel
GameMX
Hidden-Street
JoeTang
KaidaTan
Kortestanov
LazyBui
RFSurg
Stereo
Sybaris
Truemark
ZakumSlaYers
50504724
Thank you!
Not dealt with


Reply With Quote








흣