When an attack is made, the game first checks if a hit is landed. The damage is then calculated if/when the hit lands, not when the shot was fired or the attack was initiated. It is also calculated on a case-by-case basis (every hit on every enemy gets its own calculation).
Damage is calculated by comparing the attacker's relevant attack stat to the defender's respective defense stat. Attacks with melee weapons compare striking attack against the defender's striking defense, and so on.
The damage each hit deals is randomized between a minimum and a maximum value. The maximum is determined in the section below. The minimum is determined in a similar way, but with extra factors taken into account, as detailed in the Damage Variance section.
The damage formula is basically as follows:
Maximum Damage = (A - D) * 0.2 * M
Where A is the attacker's relevant attack stat, D is the defender's relevant defense stat, and M is any and all multipliers that apply to that specific attack and situation. This value is your maximum possible damage. First, some examples.
Since technics are relatively straightforward to calculate, we'll start with them.
Let's suppose I am a force attacking a spargun with a fully charged Rafoie. Since Rafoie is a fire-based technic, it will take into account some class-specific skills from the force skill tree. Lets suppose I have 1500 tech-attack and the spardan has 200 tech-defense. Lets also suppose I have 10 points in Fire Mastery for 20% more damage with fire technics, and 10 points in Tech Charge Advance, for 10% more damage with fully-charged technics. I am also using level 10 Rafoie, which has an attack power of 260 (2.60 multiplier).
Combining this all together, we get
(1500 - 200) * 0.2 * 2.60 * 1.2 * 1.1 = 892.23
Since PSO2 only deals with whole number damage, this number is truncated (892) then 1 is added, for a final value of 893 damage.
Now I've given myself shifta for extra attack power (1700 total) and come across a dagan. The attack power that shifta adds can simply be put into the formula and does not need to be specially accounted for. The same applies to shifta/deband drink, as well as team tree buffs. I'll attack the dagan with a charged level 15 Grants (350 attack power). I still have 10% extra damage for charged technics, but this time I'll use a Just Attack for 30% more damage and attack its weak spot for double damage. I don't have any points in light mastery, so I won't gain anything there, but the dagan is weak to light element, so I gain an additional 20% damage.
Since Grants is a 5-hit technic, each hit does the following calculation:
(1700-200) * 0.2 * (3.50/5) * 1.1 * 1.3 * 2 * 1.2 = 720.72
or 721 damage, for a total of 721 * 5 = 3605 damage per cast.
The above formula will not always be the damage you deal. The number calculated above is your maximum damage for that particular hit. In reality, your damage per hit will fluxuate randomly between your minimum and maximum values. The minimum is calculated in the following way:
Minimum Damage = ( ((A - W - D) * 0.2) + ((aDex - dDex) * 0.4) ) * m
Where W is your weapon's base attack, A is your total attack, aDex is the attacker's dexterity stat and dDex is the defender's dexterity stat. Your weapon's base damage includes grind level, but does not include any affixes, such as souls or mutation.
Let's revisit the last example with the dagan.
Suppose that 700 of my 1700 tech attack comes from my weapon, excluding any affixes I've added to it. I also have 400 dexterity against the dagan's 200, and my weapon does not grant any hidden extra dexterity.
The minimum damage would be as follows:
( ((1700-700-200)*0.2) + ((400-200)*0.4) ) * (3.50/5)*1.1*1.3*2*1.2 = 576.576
or 577 damage, for a total of 2885.
This means that each one of the 5 hits will deal damage somewhere between 577 and 721, inclusively, and will total somewhere between 2885 and 3605.
Notes about Damage Variance
- Rare weapons (except for red weapons) give 25% of their unaffixed attack power as dexterity when calculating attacks you make. Red weapons give -30 dexterity.
- Dexterity cannot increase your minimum damage by more than 90% of your weapon's contribution to your damage.
- Dexterity does not appear to have a maximum for the defender.
Normally, all attacks have a 5% chance to critically hit. A critical hit will bypass the damage variance stage and deal maximum damage. Critical hits on enemies are indicated by larger, cyan text, and critical hits on you are indicated by slightly larger text that shakes on hit.
Certain Classes have skills that can increase critical hit chance, such as Techer and Fighter.
Many things not detailed here can also have an effect on damage dealt:
- Weapon Element Bonus
- Various class skills
- Enemy parts (e.g. micda body, weak spots)
- Headshots from ranged weapons
- PSE levels
- Weapon-specific multipliers
- Hidden PA/technic-specific multipliers