I’m not sure what damage scaling thing you are referring to? Anyway, I haven’t completed my write-up entirely, but it’s mostly done. It’s in the spoiler below (don’t want to derail too much). Using the method I describe in it, Dante’s Beehive does scale properly, but the game’s rounding gives you 700 instead of 750 damage.
I looked into the Thor unscaled stuff, and that’s pretty interesting. It looks like those hits are given a base scaling factor of 1. The unscaled hits do 13,000 each normally, but on one up TAC, they do 19,500 each (13,000*1.5). That fits with the model I describe below.
Spoiler
A lot of the basics are covered well in SRKs wiki, but there’s one glaring mistake. I’ll start from scratch here. There are 5 different categories of attacks: lights, mediums, heavies, specials, and hypers. Each of these are associated with a scaling factor that applies for all characters. Only level 3 hypers are not accounted for through these categories and they deal unscaled damage. Note that launchers (S) are scaled like specials while your air combo finishers (j.S) are scaled like heavies. Also, raw tags, TACs, and the character hit after a TAC all are scaled like specials.
Scaling Factors
Light - 0.75
Medium - 0.8
Heavy - 0.85
Special - 0.9
Hyper - 0.95
To calculate a given attack’s damage, you can use the following basic equation (not generalized).
Damage = attack_base_damage * (scaling_factor)^number_of_hits_before_this_attack
For example, suppose I do (cr.H, IAD j.M)x2 with MODOK and I want to know the damage of the second j.M, or the fourth hit, in this combo. j.M’s base damage is 70,000.
Damage = 70,000 * (0.8)^3 = 35,840 -> 35,800
The game will always round down to the nearest 100. So, if the calculated damage is in the range [35800, 35899], we actually get a damage output of 35,800. The only slight exception to this is when the special scaling factor is used. If the calculated damage is in the range [35801, 35900] and the special scaling factor is used, we get a damage output of 35,800.
Now, each character has a minimum scaling factor for their lights, mediums, heavies, specials, and hypers. These minimum scaling factors are used if [(scaling_factor)^number_of_hits] is less than the minimum scaling factor. For example, if we use MODOK’s j.M for hit number 21, we have [(scaling_factor)^number_of_hits] = (0.8)^20 = 0.012. MODOK’s minimum scaling factor for mediums is 0.2, so damage = 70,000 * 0.2 = 14,000. Note that assists use their own minimum scaling factors, not the point character’s.
Activating XFactor can alter those minimum scaling factors and also apply a damage boost. For example, MODOK’s XF1 gives him a 1.35 damage boost for normals and the minimum damage scaling for normals goes to 0.35. Using j.M for hit number 21 gives us the following damage output: (70,000*0.35)*1.35 = 33,075 -> 33,000.
Finally, TACs are associated with bonus scaling factors.
Up - 1.5
Side - 1.25
Down - 1
These scaling factors are applied when calculating damage using the normal damage scaling equation (not minimum scaling factors) and they persist for the duration of the combo. For example, let’s say that I use MODOK’s j.S after a side TAC on the 7th hit.
Damage = 90,000 * [1.25*(0.85)^6]
These TAC bonus scaling factors can stack, but in an unintuitive way. After doing one TAC and doing a second TAC without landing, the previous bonus scaling factor is removed in the equation and is replaced with the new corresponding value, except that it is doubled. For example, if you do a down TAC then an up TAC, the bonus scaling factor is 1.5^2 = 2.25. If you do an up TAC then a down TAC, the bonus scaling factor is 1^2 = 1. Note that doing a TAC or two, landing, and doing a launcher into another TAC will not stack and will just give you the normal TAC bonus scaling factors. Also note that the TAC hits and the character hits right after a TAC never apply TAC bonus scaling factors.
Finally, here are some base damage values for global attacks.
TAC Up - 60,000
TAC Side/down - 50,000
Character hit after TAC - 50,000
Raw tag - 30,000
Snapback - 50,000
Let me know if I messed something up. And yes, I forgot to look into grabs.
EDIT: Throws appear to apply a scaling penalty of 0.5 to non-Hypers.
Command grabs appear to apply a scaling penalty of 0.7 to non-Hypers.