Introduction

FGO is a numbers game. Whether it's the gacha, the farming drop rates, or the damage numbers you see each turn of combat, it's all rooted in deep calculations. However, those numbers are not always intuitive. Take the following NP (Noble Phantasm) display text:

DmgScreenshot

How exactly does the game calculate the number above? This page will describe the damage formula to showcase how every factor contributes to a servant's overall damage output, and also show the process of how to calculate these numbers for yourself.

The Damage Formula

The damage formula is a big, intimidating expression that looks like this:Card Damage = [servantAtk * npDamageMultiplier * (firstCardBonus + (cardDamageValue * (1 + cardMod))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod) That's... quite a lot. We'll break down each of these elements point by point. Thankfully, the only operations here are addition, subtraction, and multiplication, so our main concern is what each value represents. Each of the following sections will do just that. Also, for demonstrative purposes, a grailed Level 120 Asagami Fujino will be used as the example for our calculations. Feel free to use your own servant to follow along, but the values will be different.

ServantCard
servantAtk

servantAtk, or Servant Attack, represents the number you see on a Servant's card. In our case, this is 16641. However, there are other factors that increase this further.Card Damage = [18641 * npDamageMultiplier * (firstCardBonus + (cardDamageValue * (1 + cardMod))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

Factors that can increase this number include:

  • Holy grails (increase level cap)
  • Gold and silver fous (up to +2000)
  • Equipped craft essence stats
  • In our case, we will assume she is equipping the craft essence First Day of Filming, which has 2000 ATK. Therefore, our value becomes 18641.

    npDamageMultiplier

    npDamageMultiplier is the overall NP strength multiplier. This is boosted by NP level and is a fixed number. NP buffs from strengthen quests and interludes boost this number. The values can be found in online databases such as the Grand Order Wiki in the "DmgIconDamage + " section. We will assume servants are fully boosted by any buffs received through quests. Our Servant's NP level is 4, this value will be 1150%, or 11.5.Card Damage = [18641 * 11.5 * (firstCardBonus + (cardDamageValue * (1 + cardMod))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    firstCardBonus

    This value is 0.5 if first card is a Buster command card or the attack is part of a Mighty Chain. It is 0 in all other circumstances, including all NPs.Card Damage = [18641 * 11.5 * (0 + (cardDamageValue * (1 + cardMod))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    cardDamageValue

    This is a percentage multiplier that corresponds to the following table:

    First Second Third
    Buster 150% 180% 210%
    Arts 100% 120% 140%
    Quick 80% 96% 112%

    Extra cards are treated as 100%. NPs are treated as first card of their color. For our example, the NP is Buster, so it has a value of 150% or x1.5. Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + cardMod))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    cardMod

    Any buff that increases Buster/Arts/Quick/Extra performance. In our case, Fujino has a 35% Buster attack bonus on her first skill. In addition, the Craft Essence boosts it by another 8% (cardMod is 43% or 0.43).

  • Note that "Buster/Arts/Quick/Extra Damage" increases do NOT affect this.
  • Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * classAtkBonus * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    classAtkBonus

    Each Servant class has a hidden modifier that directly impacts the base attack.

  • Caster/Assassin: 0.9x
  • Archer: 0.95x
  • Saber, Rider, Shielder, Alter Ego, Moon Cancer, Foreigner, Pretender, Beast: 1.0x
  • Lancer: 1.05x
  • Berserker, Ruler, Avenger: 1.1x
  • This modifier is why servants with identical stats but different classes will seem to perform differently. Casters and Assassins have a disadvantage compared to Berserkers and Avengers, for instance. Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * triangleModifier * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    triangleModifier

    Essentially class advantage effectiveness, this is based off the class affinity chart provided in the game.

    ClassChart

    Red arrows represent class advantage (2x). Blue arrows represent a class disadvantage (0.5x). If there is no arrow between classes, their relationship is neutral (1.0x). Berserkers, Pretenders, and Alter Egos do not have "true" class advantage so their modifier is only 1.5x.

    For our example, we will assume the enemy is a Saber. Therefore, our modifier is 2.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * attributeModifier * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    attributeModifier

    A modifier based off hidden attributes assigned to various servants. Essentially, it's a modifier that varies between 0.9x, 1x, or 1.1x. More information can be found here. For our example, we will assume a neutral modifier of 1.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * randomModifier * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    randomModifier

    A completely random modifier from 0.9 to 1.1.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + atkMod - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    atkMod

    Any buff that increases attack. Most common attack buffs are from servants like Waver, Merlin, Artoria Caster, or Charisma skills. Note that this is NOT the same as Attack Bonus against specific enemies, or "Damage Plus". For our calculation, Fujino does not have any attack buffs on her own, so this will be 0.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - defMod) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    defMod

    Any buff to the enemy that increases defense, commonly applied as enemy skills or permanent battle effects. This is NOT the same as "Special Resistance" which is a separate defensive modifier. For the sake of the calculations, we will assume an enemy with a 20% defense boost (0.2).Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * criticalModifier * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)As can be seen in the formula, this value is directly subtracting from the atkMod value. Essentially, this means that if a player's Servant has a 30% attack buff, but the enemy has a 30% defense buff, both modifiers are essentially negated.

    criticalModifier

    If the card is a critical hit, it will be a modifier of 2, otherwise it is 1. NPs cannot crit.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * extraCardModifier * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    extraCardModifier

    This value is 2 if it is the Extra card in a Brave Chain (all command cards selected are from the same Servant), 3.5 if all cards are from the same Servant AND the same color (3 arts cards, for example), or 1 in all other cases.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - specialDefMod) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    specialDefMod

    Special Defense modifiers mainly given through special battle effects or gimmicks. Normally indicated by the following icon:DmgResistIconCard Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + powerMod + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    powerMod

    All Event Craft Essences that boost damage for the entire event fall under this category. Also includes all modifiers that say "X% Power Up", or effects such as "Increases Quick Card Damage by 100%". For this case, no Power Mod will be applied.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + selfDamageMod + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    selfDamageMod

    Currently unused.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (critDamageMod * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    critDamageMod

    All buffs that increase critical damage. NPs cannot crit. In our example, Fujino has a passive ability that grants her 11% critical damage permanently.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * isCrit) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    isCrit

    Whether or not the card has actually passed the critical hit check. This is 1 if the card crits and 0 if the card does not crit, negating any critical damage modifiers. NPs cannot crit.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (npDamageMod * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    npDamageMod

    Any buff or modifier that directly specifically buffs NP Damage/NP Strength. The most common Craft Essence that boosts this is The Black Grail, which gives 60% (base) or 80% (max limit break). Our equipped Craft Essence boosts NP damage by 15%, or 0.15.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * isNP)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    isNP

    Whether or not the card is actually an NP. This is 1 if the card is an NP and 0 if the card is not, negating any NP damage modifiers.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((superEffectiveModifier - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    superEffectiveModifier

    Any status on the NP or a skill that will increase the card or NP's damage vs. specific enemy types. For example, Fujino's NP is described as dealing more damage vs "Super Large" enemies. On her page, this is shown as "DmgIconvs. Super Large Extra Damage x". It is an Overcharge effect, which is a separate mechanic. In our case, we will assume the enemy is a giant with the trait of "Super Large." It will be a regular overcharge assuming a NP gauge of 100%. Therefore, the modifier here will be 150%, or 1.5x.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * isSuperEffective)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    isSuperEffective

    Whether or not the card is actually super effective (checks whether the enemy has a trait the Servant's attacks are described as being strong against). This is 1 if the card passes the check and 0 if the card does not, negating any special modifiers in the above section.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * 1)}] + dmgPlusAdd + selfDmgCutAdd + (servantAtk * busterChainMod)

    dmgPlusAdd

    Also known as Flat Damage increases, these are buffs that increase damage by a specific value and NOT a percentage. These are NOT the same as Attack % buffs, which were described above. Examples of this include flat damage bonuses from Craft Essences such Volumen Hydrargyrum, which says "PowerUpIconIncreases Damage by 200/500". Other sources include Waver's Attack Buff that grants both an Attack % increase AND a Flat Damage increase.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * 1)}] + 0 + selfDmgCutAdd + (servantAtk * busterChainMod)

    selfDmgCutAdd

    Same as the above but for defense. It is additively calculated with the above section, so identical values will essentially cancel each other out, just like Attack % and Defense % do.Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * 1)}] + 0 + 0 + (servantAtk * busterChainMod)

    busterChainMod

    This value is 0.2 if it's a Buster card in a Buster Chain, 0 otherwise. This is the reason why a full chain of triple buster cards does more damage than any other chain. Essentially in Buster Brave chain, (3 buster cards of the same servant), 20% of the Servant's Attack is added as additional damage. However, NPs do not benefit from this modifier. Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * 1)}] + 0 + 0 + (18641 * 0)

    Putting It All Together

    Our final damage formula with everything plugged in is as follows: Card Damage = [18641 * 11.5 * (0 + (1.5 * (1 + 0.43))) * 0.95 * 2 * 1 * 1.1 * 0.23 * (1 + 0 - 0.2) * 1 * 1 * (1 - 0) * {1 + 0 + 0 + (0.11 * 0) + (0.15 * 1)} * {1 + ((1.5 - 1) * 1)}] + 0 + 0 + (18641 * 0)Putting all of this into a calculator, we get a value of around 305033. If we use a calculator such as this NP damage Calculator, we get a high range (remember the RNG associated with the randomModifier value) of 304756, which is accurate to our calculations. Here are some additional things you can do to better understand the formula:

  • Try running your own calculations with your own servants to better understand the formula.
  • Change different buffs around to see which types of buffs impact the final damage amount more. For example, which is more valuable, NP Damage % increases or Attack % increases? Think about how many servants have abilities that boost each.
  • Test the impact of critical damage by calculating whether it's better to boost critical damage to huge numbers, or if a 50% card color boost would be more impactful.