SWTOR Math/Formulas

Freehugs, over on the sithwarrior forums, has done some excellent reverse-engineering work which represents the current most accurate formulas for calculating a variety of combat values in the current build of Star Wars: The Old Republic. Unfortunately, they’re all in one big block of text that’s not exactly easy to read. It’s not Freehugs’ fault, really, forums just don’t (usually) offer the kind of markup needed to beautifully express mathematical concepts… But MathJax does – and as it happens I’ve got MathJax installed on this blog, so let’s have a (prettier) look at the math behind the game, shall we?

Ability Damage:

$(M+1) $times H_m + (M+1) $times M_o \times 0.3 + C \times D + H_{sp} \times H_s[/extract_itex$/extract_itex]

Ability Healing

$C $times H_b + H_{sp} $times H_s[/extract_itex$/extract_itex]

Strength/Willpower/Aim/Cunning Damage Bonus

$0.2 ( $mbox{Attribute} )$/extract_itex]

Force/Tech Power Damage Bonus

$0.23 ( $mbox{Attribute} )$/extract_itex]

Willpower/Aim/Cunning Healing Bonus

$0.14 ( $mbox{Attribute} )$/extract_itex]

Force/Tech Power Healing Bonus

$0.17 ( $mbox{Attribute} )$/extract_itex]

Crit Chance (%)

$5+30(1-(1-( $frac { 0.01 }{ 0.3 } ))^{ $frac { \frac { S_1 }{ \mbox{max(level,20)} } }{ 2.5 } })+30(1-(1-(\frac { 0.01 }{ 0.3 } ))^{\frac { \frac { R_c }{ \mbox{max(level,20)} } }{ 0.45 } })[/extract_itex$/extract_itex]

Crit Damage Bonus

$50+50(1-(1-($frac { 0.01 }{ 0.5 } ))^{ $frac{ \frac { R_s }{ \mbox{max(level,20)} } }{0.1} })[/extract_itex$/extract_itex]

Accuracy (%)

$90+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_a}{\mbox{max(level,20)}}}{0.55} })[/extract_itex$/extract_itex]

Off-Hand Accuracy (%)

$57+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_a}{\mbox{max(level,20)}}}{0.55} ) }[/extract_itex$/extract_itex]

Special/Force/Tech Attack Accuracy

$100+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_a}{\mbox{max(level,20)}}}{0.55} ) }[/extract_itex$/extract_itex]

Special/Force/Tech Attack Off-Hand Accuracy

$67+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_a}{\mbox{max(level,20)}}}{0.55} })[/extract_itex$/extract_itex]

Activation Speed

$$frac { T_{ c } }{ 1+0.3(1-(1-($frac { 0.01 }{ 0.3 } ))} ^{ \frac { \frac { R_{al} }{ { max(level,20) } } }{ 0.55 } })[/extract_itex$/extract_itex]

Damage Reduction From Armor (%)

$$frac{R_{ar}}{R_{ar}+200 $times \mbox{level}+800}[/extract_itex$/extract_itex]

Defense Chance (%)

$5+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac { \frac { R_{d} }{ { max(level,20) } } }{ 0.55 } })[/extract_itex$/extract_itex]

Shield/Glance Chance (%)

$B_s+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_d}{\mbox{max(level,20)}}}{0.55} })[/extract_itex$/extract_itex]

Shield/Glance Absorption (%)

$B_s+30(1-(1-($frac { 0.01 }{ 0.3 } ))^{ $frac{\frac{R_{ab}}{\mbox{max(level,20)}}}{0.55} })[/extract_itex$/extract_itex]

Max Health

$H+10E$

Health Regen

$x + 0.03E$

Bonus Companion Health

$5P$

Bonus Companion Damage

$0.2P$

Bonus Companion Healing

$0.14P$

Base Stats

$S_1= 50+$mbox{level} $times 4[/extract_itex$/extract_itex]

$S_2= 20+$mbox{level} $times 1.6[/extract_itex$/extract_itex]

$S_4= 10+$mbox{level} $times 0.8[/extract_itex$/extract_itex]

$E=45+$mbox{level} $times 3.6[/extract_itex$/extract_itex]

Notes:

There are, of course, a lot of special cases to cover, such as accuracy > 100% reducing the defense of the target and certain of these formulas cap out at a given max value. These formulas are also in a constant state of flux and I can’t guarantee that my formulas will always be up-to-date compared to those on the forum, nor can I guarantee that those on the forum are up-to-date with reality. For these reasons I refer you to always double-check against the forum before using any of these formulas. Finally, the above won’t look very pretty if MathJax doesn’t run properly, such as within an RSS reader or in older browsers or browsers with JavaScript disabled.

Glossary of Terms:

• M = weapon damage modifier for min and max values and all ranks of the ability
• C = force/tech/melee/ranged damage bonus modifier for min and max values and all ranks of the ability
• Hsp = base damage modifier, which can vary for the min and max values of the ability
• E = endurance
• H = base health
• Hs = standard health (see table)
• Hb = healing bonus
• Rc = crit rating
• Rs = surge rating
• Ra = accuracy rating
• Tc = base cast time
• Ral = alacrity rating
• Rar = armor rating
• Rd = defense rating
• Rg = glance rating
• Rab = absorbtion rating
• Bs = shield generator bonus
• P = presence
• S1 = primary class stat (i.e. Cunning for the Smuggler)
• S2 = secondary class stat (i.e. Willpower for the Sith Warrior)
• S3 = tertiary class stat (i.e. Strength for the Trooper)
• x = currently unknown (but probably constant) value

Standard Health Lookup Table:

level damage health    level damage health
1     180    375       26    975    3205
2     210    430       27    1005   3300
3     240    505       28    1050   3425
4     270    585       29    1085   3535
5     305    675       30    1130   3670
6     340    770       31    1175   3915
7     380    880       32    1215   4165
8     420    1000      33    1220   4355
9     465    1140      34    1255   4590
10    500    1290      35    1280   4830
11    540    1405      36    1305   5055
12    580    1535      37    1320   5265
13    620    1665      38    1335   5530
14    655    1790      39    1350   5715
15    690    1915      40    1380   5945
16    720    2060      41    1400   6080
17    725    2150      42    1430   6225
18    750    2285      43    1440   6320
19    780    2435      44    1480   6485
20    790    2560      45    1490   6565
21    830    2680      46    1540   6735
22    870    2795      47    1545   6785
23    910    2915      48    1560   6920
24    945    3040      49    1575   6970
25    960    3105      50    1610   7085

1. n+1 says:

all of the (1-(1-0.01/0.3)^x) brackets seem to be missing the last closing bracket, apart from that very nice list. thank you.

• enmaku says:

Good eye! Should all be fixed now. That's what I get for reusing a common snippet I guess :P

• n+1 says:

Now you have written (1-(1-(0.01/.3)))^x , instead of (1-(1-(0.01/0.3))^x) Also the shield generator formular is still lacking the last bracket.

;)

• enmaku says:

Argh! This last week has just not been my best work :P

It should be fixed, so now it's time for the SWTOR devs to get under the hood and change all the math on us…

2. Terry says:

Currently there's a stat under crit called Sp. That doesn't appear under the glossary – should that be S1?

• enmaku says:

Sp is the "primary stat" for your class, such as Strength for the Knight. I believe I started with Sp and then changed it to S1 when it became evident that I'd have more than a primary and secondary to deal with. Should be fixed now.

3. Terry says:

Also, isn't (1−(1−(0.01/0.3))) simply (0.01/0.3)?

• enmaku says:

The formulas are not fully simplified. My understanding is that they're in expanded form to give a better idea of what's actually happening under the hood. 0.01 and 0.3 aren't likely to be actual constants, but variables which could change at some point in the future or which may be derived from other math that we aren't yet aware of.

• Terry says:

oh, no, I see… it should be (1-(1-(0.01/0.3))^x). The way it's written, it looks like it's (1-(1-(0.01/0.3)))^x, which would be entirely different :)

4. vegypies says:

whats all the "max lvl 20"

• enmaku says:

max(level, 20) means "your current level or the number 20, whatever is highest." In other terms, certain stats will be calculated exactly the same for a level 5 as for a level 12 but begin to scale differently after level 20.

5. intrested says:

There is no "D" in your legend and how is attribute and S1 S2 or S3 dependent? It doesnt make sense to use only in the critchance% the S1. Im little bit confused.

• enmaku says:

D is whatever random number the server chooses for base damage (uniformally distributed random number within a range as shown on the ability tooltip).

S1 S2 and S3 are the primary, secondary and tertiary stat for your class. S1 is the only stat factored into critchance% in pretty much every game – In WoW, Dexterity would be S1 for a rogue and it's factored into crit % whereas strength, although helpful in other areas, is not.

6. intrested says:

nice, thanks a lot.

another question. Hm and Mo are in the formula but there are no explanations to them.

Attributes are also mentioned, but dont exactly understand which attributes you mean.

H is the base health and a variable in max health. but the standart health Hs from table isnt a variable in max health, but in the ability damage. What is the difference between base and standart health.

Maybe you can write some example values behind the explanation of the variable for example for a lvl 20 or lvl 40 char to get a feeling about the variables.

Thanks a lot for everything

• Dave says:

I have been looking myself for a table of base health in order to calculate this. To my surprise, there were no formulas or information listed on how base health is found. From what I've quickly gathered through a little research, is that base health increases by a set amount each level that changes every few levels. Level 1 base health is 130. From level 1-7, it increases by 10. From level 7-10 it increases by 20, from 10-13, by 25, From 13-17, by 30. This continues in a trend that I haven't fully finished, yet. However, there is no formula for it. The max health then gives you what you see when you start the game.

Standard health, as far as I know, is the health a healing ability trained at that level will heal with no added bonuses. I may be wrong there.

7. Johnny says:

these are great and im a math nerd enough to know these types of games are really math games that do the math for you…you just pick the variables values. but i dont see power listed anywhere in these and power affects attacks and healing abilities. along with that is expertise and being a level 50 pvper myself expertise is a rather important one to include in these equations. otherwise great page ill be referencing to it for quite a while if nothing changes too drastically

8. Hello! I know this is kinda off topic but I was wondering if you knew
where I could get a captcha plugin for my comment form?

I’m using the same blog platform as yours and I’m having trouble finding one?
Thanks a lot!