The challenge with building formulas is to get to the target number you want while A) not using any stats or skills that don't relate to the stat being calculated and B) balancing the contribution of each of the stats so that the ones that should make the most difference do so.
Look at some example formulas to get an idea of what they look like.
It's a good idea to start with the contributing stats when writing a formula for a new generated/calculated statistic. You might, for example, decide that your new magic defense threshold "Wards" should be based on the character's Knowledge, Creativity, Willpower, Arcana, and Hedge Magic.
Note that it's okay to use any type of stat, primary, skill, etc, in a generation formula, but you still want to maintain as much balance between the stat uses as possible. You want to avoid having one stat play too much of a part in all your thresholds and pools, just as in your skills.
You will probably find that you want some statistics to play a bigger part in a generated statistic than others. You might, for example, decide that Willpower should contribute more to Wards than Creativity. There are a number of ways of accomplishing this.
- Divide the other stats by a simple integer:
(Willpower + (Sum(Knowledge, Creativity, Arcana, Hedge Magic) / 2))
- Add it directly to the total instead of putting it in an Average or Max:
(Willpower + Average(Knowledge, Creativity, Arcana, Hedge Magic))
- Simply modify the value directly:
((Willpower × 3) + Sum(Knowledge, Creativity, Arcana, Hedge Magic)
You can of course reverse these techniques to reduce the contribution of a stat to the total.
Don't forget that some folks may want or need to manually calculate their characters, so try to avoid making your formulas too obnoxious to deal with.
The best way to test your formulas is to use the console app. It will allow you to write new formulas then parse them and recalculate your entire storage file instantly, as many times as you need to get the formula right. Each formula will be automatically applied to all entities in the storage file, so you don't have to manually recalculate anything.