I'd initially had a really messy version made for personal use. Tidied it up a little to make it more accessible.
This spreadsheet rounds down the non-existent stat increases from some traits if they're odd numbered, rounds them up when paired with stat-boosting equips, does comparisons across the next two levels of trait investment, etc.
Ah, it's a lot to say...so here's a picture in place of a description. Simply, you type your character details into the orange cells, and you get recommended a trait that gives you the most bang for your AP.
For those who are interested in comparing the actual DPS differences between fast and slow weapons, 2 handed vs. light, etc., this one factors in enemy armor and resistances for a more realistic prediction of DPS. Default target value is set to the unweakened Undermother's stats, the stuff of nightmares... Well, have fun with that. Orange cells are required inputs which are used for calculations, yellow ones can be filled with whatever.
Oh, and I hope you lore seekers don't mind too much that I just went and borrowed your weapon table from the wiki for this. I apologize for that.
It works just fine on my phone, so why not give it a try?
Re-did the formulas, corrected some errors, tidied it up a little.
Added the new Battle Prayer and Body Development advanced skills
Updated the weapon table with new weapons
Added armor optimiser
New link to updated file. https://1drv.ms/x/s!AhA-BFYn_0aKgRp35LncOOXg-icb
Separate version for companions. https://1drv.ms/x/s!AhA-BFYn_0aKgRxfslyBcXLZu-JY
*About the armor optimizer*
- [+] SPOILER
- Calculations involve the use of a "toughness" variable which is the sum of the percentages of damage reduced across all
relevant elements. As for what damage type is relevant, that's for you to decide. Just fill up the orange boxes of unmitigated damage received with numbers representing the amount of damage you expect to receive; or leave it blank if you don't want it included in calculations.
Note that it works best with exact values, e.g. if gearing up to reduce the Broken Crown of Tol life drain, set death damage to 12. Default values are set to the highest average damage of each category you'd expect to find on a normal play through. Spirit is listed as 100 to more accurately represent the flooring of resistances in the game. Setting an element at a low value causes the optimizer to be more parsimonious with calculations; ideal for identifying the exact amount of resistance required to shave off an extra point of damage. Setting them to 100 would cause the optimizer to generously count any increase in resistance % as an increase in toughness.
Recommendations for the best armor are based on overall toughness. As there are diminishing returns to elemental resistance, the optimizer dynamically changes recommendations based on your current total resists.
If it stubbornly recommends an armor that you just can't or won't use, you can increase the number in the 'Xth best option' box till you find a suitable armor.
As for the contributions to defensive stats from traits, input is taken from the trait planner tab, so remember to fill that up too.
*Note* Yeah, technically, spirit damage doesn't really apply against player characters, but let's include it in the toughness calculation kay?
*Rationale for default stat weights*
- [+] SPOILER
- The default stat weights and stat inclusions are set to create a jack of all trades-type of character. One that gets the most out of all stats.
Atk and Armor are set at 1 as increases in those two stats from traits, with the exception of 2 handed weapons, increase in increments of 1. Without tilting a bias towards any particular stat, modifying the basic increments in either of those two stats to the same value would serve as a basic standard of comparison; i.e. by default stat weights of 1, 1 ATK is worth the same as 1 Armor. It could be any number really; 1 is used for simplicity sake.
HP and Mana increase by increments of "character level" per trait level. At max character level of 25, HP and Mana, if increased by traits, increase by increments of 25 at a time. With an added 5 HP increase per trait point in the case of HP from endurance, or 0.2 of a 1 point stat stat weight at max level. This extra 0.2 from endurance is kept constant across all character levels to avoid an early-game overvaluing of endurance. Following the previous standards of setting basic increments at stat weights of 1, each level dependent increase in HP/Mana matches the stat weights of the basic increments of Atk and Armor from traits. I.e. current level no. of HP/Mana = 1 Atk = Armor.
TLDR, the default stat weights are set to numbers that assign the same relative value to the basic increments in each stat from increases in trait level. By setting stat weights to the same value, you're placing each basic increment at equal value.
*Notes on usage of multiple weapon types and their effect on stat weights*
- [+] SPOILER
- For the builds that involve the use of multiple weapon types, e.g. an archer-rogue who keeps a dagger on hand for close combat situations, you can check the cells for both weapons with "Yes". This results in an overvalued Atk stat due to there being an extra source of Atk input, i.e. (Ranged Atk + HP + Armor) vs. (Ranged Atk + Light Weapon Atk + HP + Armor).
To correct for this overvalued Atk, consider dividing the stat weight of Atk by the number of added weapons.
I.e. From the default stat weight distribution,
Stat weights for 1 weapon,
Stat weights for 2 weapons,
Stat weights for 3 weapons (seriously?!),
*On stat inclusion*
- [+] SPOILER
- In the event that you do not consider a particular stat to have any value in your character build, e.g. HP stat in a "Healer" build or HP & Armor in a "Glass Cannon", simply set the respective stat inclusion cell to "No". All increases in the excluded stat would not be used in calculating the relative gains/AP for trait recommendations.
Alternatively, setting the stat weight to 0 does the same thing.
*Sample stat weights for different purposes*
- [+] SPOILER
- Glass Cannon
Just some of the many ways to use stat weights to optimize your own personalized character.