# Scaling

This page will list some of the scaling functions that are frequently used in game to calculate talent parameters. The sections below are named after the actual function names used in the game's Lua files. The majority of these functions can be found in *tome.team/mod/class/interface/Combat.lua*.

The goal here is to provide basic explanations of how various talent parameters are scaled so that talent pages do not need to be filled with unknown variables. Instead, the actual range of values can be displayed on each talent page with a footnote linking to this article for further details.

## Contents

- 1 (gTL) getTalentLevel
- 2 (cL) combatLimit
- 3 (cS) combatScale
- 4 (cSL) combatStatLimit
- 5 (cSS) combatStatScale
- 6 (cTID) combatTalentIntervalDamage
- 7 (cTL) combatTalentLimit
- 8 (cTMD) combatTalentMindDamage
- 9 (cTPD) combatTalentPhysicalDamage
- 10 (cTS) combatTalentScale
- 11 (cTSpD) combatTalentSpellDamage
- 12 (cTStmD) combatTalentSteamDamage
- 13 (cTStD) combatTalentStatDamage
- 14 (cTWD) combatTalentWeaponDamage

## (gTL) getTalentLevel

*Talent parameters that scale by this function should be noted with Template:gtl*

- Example of talent description
- The value is
**low**–**high**^{gtl}

- What the talent description means
- The value scales from
**low**to**high**as talent level increases, including mastery values.

- For raw talent level
- If talent level is used
**without**mastery (eg. pure points allocated into the talent), then use**low**–**high**^{gtl :raw}. - In almost all cases, this means 1 - 5, so you should write {{gtl|1|5|raw}} to get 1–5
^{gtl :raw}

## (cL) combatLimit

*Talent parameters that scale by this function should be noted with Template:cl*

*This function is the archetype for both combatStatLimit and combatTalentLimit.*

- Example of talent description
- The value is
**y**–_{low}**y**_{high}^{cL:limit}as**parameter x**varies from**x**–_{low}**x**_{high}

- What the talent description means
- The value will be
**y**when_{low}**parameter x**is**x**, and_{low}**y**when the parameter is_{high}**x**, with some diminishing returns and will never exceed_{high}**limit**.

## (cS) combatScale

*Talent parameters that scale by this function should be noted with Template:cs*

*This function is the archetype for both combatStatScale and combatTalentScale.*

- Example of talent description
- The value is
**y**–_{low}**y**_{high}^{cS}as**parameter x**varies from**x**–_{low}**x**_{high}

- What the talent description means
- The value will be
**y**when_{low}**parameter x**is**x**, and_{low}**y**when the parameter is_{high}**x**, with some diminishing returns._{high}

- What the game actually does
- Using the function
**y(x) = m * (x + shift)**,^{power}+ b + add - find the values of
**m**and**b**that produce the best fit to the two points**y( x**=_{low })**y**and_{low}**y( x**=_{high })**y**,_{high} - then return the value
**y(x)**with the fitted function given the actual parameter**x**of the character

- Default values for the fit parameters are
**power = 0.5****shift = 0****add = 0**

- Example calculation
- The trap detection power of Heightened Senses is 0–125
^{cS}as (0.25 * Cunning * Talent Level) varies from 0–125 - The resulting fit function is
**y = 11.18 * (0.25 * Cunning * Talent Level)**and will, for example, produce the following results:^{0.5}

Talent Level Cunning Detection Power 1 10 18 1 20 25 1 40 35 5 40 79 5 100 125 5 150 153

## (cSL) combatStatLimit

*Talent parameters that scale by this function should be noted with Template:csl*

- Example of talent description
- The value is
**low**–**high**^{cSL:limit,stat}

- What the talent description means
- The value will be
**low**when the**stat**is 10, and**high**when the**stat**is 100, with some diminishing returns and will never exceed**limit**.

## (cSS) combatStatScale

*Talent parameters that scale by this function should be noted with Template:css *

*This function is almost identical to combatScale except that the scaling parameter is always a character stat, and it uses x_{low} = 10 and x_{high} = 100 as default parameters.*

- Example of talent description
- The value is
**low**–**high**^{cSS:stat}

- What the talent description means
- The value will be
**low**when**stat**is**10**, and**high**when**stat**is**100**, with some diminishing returns.

- What the game actually does
- Using the function
**y(x) = m * (t + shift)**,^{power}+ b + add - find the values of
**m**and**b**that produce the best fit to the two points**y(10)**=**low**and**y(100)**=**high**, - then return the value
**y(stat)**with the fitted function given the actual**stat**of the character

- Default values for the fit parameters are
**power = 0.5****shift = 0****add = 0**

## (cTID) combatTalentIntervalDamage

*Talent parameters that scale by this function should be noted with Template:ctid *

- Example of talent description
- The value is
**min**–**max**^{cTID:stat_weight *stat}

- What the talent description means
- The value will be
**max**when**stat**is 100 and the talent level is 6.5.

- What the game actually does
- Calculate
**Base Value**=**min**+ (**max**-**min**) * ( (**stat_weight*****stat**/ 100) + (1 -**stat_weight**) * Talent Level / 6.5 ) - then return
**Final Value**=**Base Value*** ( 1 - Log_{10}(2 ***Base Value**) / 7 )

- The
*stat_weight*parameter - The
**stat_weight**parameter determines the relative weight between stats and talent level. It defaults to 0.5 to indicate equal contributions.

## (cTL) combatTalentLimit

*Talent parameters that scale by this function should be noted with Template:ctl*

- Example of talent description
- The value is
**low**–**high**^{cTL:limit}

- What the talent description means
- The value will be
**low**at talent level 1, and**high**at talent level 5, with some diminishing returns and will never exceed**limit**.

- Paradox modifier
- With a talent description of: Value is
**low**–**high**^{cTL:limit,PM} - the game will multiply your talent level by a Paradox Modifier when calculating the value, where
**Paradox Modifier = (0.5 + Paradox / 600)**^{0.5}

## (cTMD) combatTalentMindDamage

*Talent parameters that scale by this function should be noted with Template:ctmd*

- Example of talent description
- The value is
_{[base]}**max**^{cTMD}

- What the talent description means
- The value will scale with respect to both mindpower and talent level, returning
**max**at 100 mind power and talent level 5.

- What the game actually does
- The actual value will be (
**max*****Mindpower Factor*****Talent Factor**)^{1.04}, where **Mindpower Factor**= (**base**+**Mindpower**) / (**base**+ 100),**Talent Factor**= (0.2 + 0.8 * √**Talent Level**) / (0.2 + 0.8 * √ 5)- Notice that
**base**is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to**Mindpower**.

## (cTPD) combatTalentPhysicalDamage

*Talent parameters that scale by this function should be noted with Template:ctpd*

- Example of talent description
- The value is
_{[base]}**max**^{cTPD}

- What the talent description means
- The value will scale with respect to both physical power and talent level, returning
**max**at 100 physical power and talent level 5.

- What the game actually does
- The actual value will be (
**max*****Physical Power Factor*****Talent Factor**)^{1.04}, where **Physical Power Factor**= (**base**+**Physical Power**) / (**base**+ 100),**Talent Factor**= (0.2 + 0.8 * √**Talent Level**) / (0.2 + 0.8 * √ 5)- Notice that
**base**is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to**Physical Power**.

## (cTS) combatTalentScale

*Talent parameters that scale by this function should be noted with Template:cts*

*This function is almost identical to combatScale except that the scaling parameter is always your talent level, and it sets x_{low} = 1 and x_{high} = 5 as default parameters.*

- Example of talent description
- Value is
**low**–**high**^{cTS}

- What the talent description means
- The value will be
**low**at talent level 1, and**high**at talent level 5, with some diminishing returns.

- What the game actually does
- Using the function
**y(x) = m * (x + shift)**,^{power}+ b + add - find the
**m**and**b**that produce the best fit to the two points**y(1)**=**low**and**y(5)**=**high**, - then return
**y(x)**as the desired value using the fitted function and the actual talent level**x**of the character

- Default values for the fit parameters are
**power = 0.5****shift = 0****add = 0**

- Custom power
- With a talent description of: Value is 5–10
^{cTS:0.75P} - the fit parameter
**power = 0.75**will be used instead. - Higher
**power**suppresses the effects of diminishing returns.

- Custom shift
- With a talent description of: Value is 5–10
^{cTS:2S} - the fit parameter
**shift = 2**will be used instead. - Higher
**shift**basically acts as a direct bonus to your talent level.

- Logarithmic fits
- With a talent description of: Value is 5–10
^{cTS:log} - the game will use a logarithmic fit with the function
**y(x) = m * Log**instead_{10}(x + shift) + b + add

- Paradox modifier
- With a talent description of: Value is 5–10
^{cTS:PM} - the game will multiply your talent level by a Paradox Modifier and return
**y ( x * Paradox Modifier )**, where **Paradox Modifier = (0.5 + Paradox / 600)**^{0.5}

- Example of calculation
- If the description of a talent is: This skill has a range of 5–10
^{cTS} - then the game will use default values to produce the fit function
**y(x) = 4.045 * x**^{0.5}+ 0.955- which would return the following values for the talent's range

Talent Level *x*Range *y(x)*1 5 2 6.68 3 7.96 4 9.05 5 10 6 10.86 7 11.66

- In cases such as this where non-integer values are not meaningful, the final value will be rounded up or down, though no convention has yet been set to indicate how this rounding will be expressed.

## (cTSpD) combatTalentSpellDamage

*Talent parameters that scale by this function should be noted with ctspd template.*

- Example of talent description
- Value is
_{[base]}**max**^{cTSpD}

- What the talent description means
- The value will scale with respect to both spellpower and talent level, returning
**max**at 100 spell power and talent level 5.^{1.04}

- What the game actually does
- The actual value will be (
**max*****Spellpower Factor*****Talent Factor**)^{1.04}, where **Spellpower Factor**= (**base**+**Spellpower**) / (**base**+ 100),**Talent Factor**= (0.2 + 0.8 * √**Talent Level**) / (0.2 + 0.8 * √ 5)- Notice that
**base**is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to**Spellpower**.

- Paradox modifier
- With a talent description of: Value is
_{[base]}**max**^{cTSpD:PM}, - the game will multiply the final value by your Paradox Modifier, which is defined as
**Paradox Modifier = (0.5 + Paradox / 600)**^{0.5}

- Cursed Form spellpower override
- With a talent description of: Value is
_{[base]}**max**^{cTSpD:CF}, - the game will use (1.2 * (Character Level + Willpower) ) as your effective spellpower instead

## (cTStmD) combatTalentSteamDamage

*Talent parameters that scale by this function should be noted with ctstmd template.*

- Example of talent description
- Value is
_{[base]}**max**^{cTStmD}

- What the talent description means
- The value will scale with respect to both steampower and talent level, returning
**max**at 100 steampower and talent level 5.^{1.04}

- What the game actually does
- The actual value will be (
**max*****Steampower Factor*****Talent Factor**)^{1.04}, where **Steampower Factor**= (**base**+**Steampower**) / (**base**+ 100),**Talent Factor**= (0.2 + 0.8 * √**Talent Level**) / (0.2 + 0.8 * √ 5)- Notice that
**base**is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to**Steampower**.

## (cTStD) combatTalentStatDamage

*Talent parameters that scale by this function should be noted with Template:ctstd*

- Example of talent description
- Value is
_{[base]}**max**^{cTStD:stat}

- What the talent description means
- The value before diminishing returns will scale with respect to both
**stat**and talent level, returning**max**at 100 stat and talent level 5.

- What the game actually does
- Calculate
**Base Value**= (**max*****Stat Factor*****Talent Factor**), where **Stat Factor**= (**base**+**Stat**) / (**base**+ 100),**Talent Factor**= (0.2 + 0.8 * √**Talent Level**) / (0.2 + 0.8 * √ 5),- then return
**Final Value**=**Base Value*** ( 1 - Log_{10}(2 ***Base Value**) / 7 ) - Notice that
**base**is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to**stat**.

## (cTWD) combatTalentWeaponDamage

*Talent parameters that scale by this function should be noted with Template:ctwd*

- Example of talent description
- Value is
**base**–**max**^{cTWD}

- What the talent description means
- The value will be
**max**at talent level 5.

- What the game actually does
- The value is (
**base**+ (**max**-**base**) * √ (Talent Level / 5) )

- The
*t2*Parameter - An extra
**t2**parameter can sometimes be provided (e.g. Shield Pummel), in which case - the value is (
**base**+ (**max**-**base**) * √ ((Talent Level +**t2**/ 2 ) / 5) ) - Although Template:ctwd will accept an extra parameter for
**t2**, it is probably best to just explain its effects directly in a talent's description instead.