Difference between revisions of "Scaling"

From Tales of Maj'Eyal
Jump to: navigation, search
((cTSpD) combatTalentSpellDamage: Fixed typo)
((cS) combatScale: Fixed typo in formula)
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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 goal here is to provide a very basic understanding of how various talent parameters are scaled so that talent pages do not need to be filled with a plethora of unknown X's. Instead, the actual range of values can be displayed on each talent page with a footnote linking to this article for further details.
+
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.
 +
 
 +
 
 +
==(gTL) getTalentLevel <span id="gtl"></span>==
 +
 
 +
''Talent parameters that scale by this function should be noted with [[Template:gtl]]''
 +
 
 +
;Example of talent description
 +
:The value is {{gtl|'''low'''|'''high'''}}
 +
 
 +
;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 {{gtl|'''low'''|'''high'''|raw}}.
 +
:In almost all cases, this means 1 - 5, so you should write <nowiki>{{gtl|1|5|raw}}</nowiki> to get {{gtl|1|5|raw}}
  
 
==(cL) combatLimit <span id="cL"></span>==
 
==(cL) combatLimit <span id="cL"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CL|CL]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:cl]]''
  
 
''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].''
 
''This function is the archetype for both [[#cSL|combatStatLimit]] and [[#cTL|combatTalentLimit]].''
 +
 +
;Example of talent description
 +
:The value is {{cl|'''parameter x'''|'''limit'''|'''y<sub>low</sub>'''|'''x<sub>low</sub>'''|'''y<sub>high</sub>'''|'''x<sub>high</sub>'''}}
 +
 +
;What the talent description means
 +
:The value will be '''y<sub>low</sub>''' when '''parameter x''' is '''x<sub>low</sub>''', and '''y<sub>high</sub>''' when the parameter is '''x<sub>high</sub>''', with some diminishing returns and will never exceed '''limit'''.
  
 
==(cS) combatScale <span id="cS"></span>==
 
==(cS) combatScale <span id="cS"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CS|CS]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:cs]]''
  
 
''This function is the archetype for both [[#cSS|combatStatScale]] and [[#cTS|combatTalentScale]].''
 
''This function is the archetype for both [[#cSS|combatStatScale]] and [[#cTS|combatTalentScale]].''
Line 17: Line 40:
  
 
;What the talent description means
 
;What the talent description means
:The value will be '''''y<sub>low</sub>''''' when '''parameter x''' is '''''x<sub>low</sub>''''', and '''''y<sub>high</sub>''''' when the parameter is '''''x<sub>high</sub>''''', with some diminishing returns.
+
:The value will be '''y<sub>low</sub>''' when '''parameter x''' is '''x<sub>low</sub>''', and '''y<sub>high</sub>''' when the parameter is '''x<sub>high</sub>''', with some diminishing returns.
  
 
;What the game actually does
 
;What the game actually does
:Using the function '''''y(x) = m * (t + shift) <sup>power</sup> + b + add''''',
+
:Using the function '''y(x) = m * (x + shift) <sup>power</sup> + b + add''',
:find the values of '''''m''''' and '''''b''''' that produce the best fit to the two points '''''y( x<sub>low </sub>)''''' = '''''y<sub>low</sub>''''' and '''''y( x<sub>high </sub>)''''' = '''''y<sub>high</sub>''''',
+
:find the values of '''m''' and '''b''' that produce the best fit to the two points '''y( x<sub>low </sub>)''' = '''y<sub>low</sub>''' and '''y( x<sub>high </sub>)''' = '''y<sub>high</sub>''',
:then return the value '''''y(x)''''' with the fitted function given the actual parameter '''''x''''' of the character
+
: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
 
;Default values for the fit parameters are
:'''''power = 0.5'''''
+
:'''power = 0.5'''
:'''''shift = 0'''''
+
:'''shift = 0'''
:'''''add = 0'''''
+
:'''add = 0'''
  
 
;Example calculation
 
;Example calculation
:The trap detection power of [[Heightened senses (talent)|Heightened Senses]] is {{CS|(0.25 * Cunning * Talent Level)|0|0|125|125}}
+
:The trap detection power of {{t|Heightened Senses}} is {{cs|(0.25 * Cunning * Talent Level)|0|0|125|125}}
:The resulting fit function is '''''y = 11.18 * (0.25 * Cunning * Talent Level) <sup>0.5</sup>''''' and will, for example, produce the following results:
+
:The resulting fit function is '''y = 11.18 * (0.25 * Cunning * Talent Level) <sup>0.5</sup>''' and will, for example, produce the following results:
 
:{|class = "wikitable"
 
:{|class = "wikitable"
 
!Talent Level!!Cunning!!Detection Power
 
!Talent Level!!Cunning!!Detection Power
Line 50: Line 73:
 
==(cSL) combatStatLimit <span id="cSL"></span>==
 
==(cSL) combatStatLimit <span id="cSL"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CSL|CSL]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:csl]]''
  
 
;Example of talent description
 
;Example of talent description
:The value is {{CSL|'''stat'''|'''limit'''|'''low'''|'''high'''}}
+
:The value is {{csl|'''stat'''|'''limit'''|'''low'''|'''high'''}}
  
 
;What the talent description means
 
;What the talent description means
Line 60: Line 83:
 
==(cSS) combatStatScale <span id="cSS"></span>==
 
==(cSS) combatStatScale <span id="cSS"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CSS|CSS]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:css]] ''
  
''This function is almost identical to [[#cS|combatScale]] except that it sets '''''x<sub>low</sub> = 10''''' and '''''x<sub>high</sub> = 100''''' to represent the stat that the scaling is based on. [[Prodigies]] will typically use '''''x<sub>low</sub> = 50''''' instead.''
+
''This function is almost identical to [[#cS|combatScale]] except that the scaling parameter is always a character stat, and it uses '''x<sub>low</sub> = 10''' and '''x<sub>high</sub> = 100''' as default parameters.''
 +
 
 +
;Example of talent description
 +
:The value is {{css|'''stat'''|'''low'''|'''high'''}}
 +
 
 +
;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) <sup>power</sup> + 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 <span id="cTID"></span>==
 
==(cTID) combatTalentIntervalDamage <span id="cTID"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTID|CTID]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctid]] ''
  
 
;Example of talent description
 
;Example of talent description
:The value is {{CTID|'''stat'''|'''min'''|'''max'''}}
+
:The value is {{ctid|'''stat'''|'''min'''|'''max'''|'''stat_weight''' * }}
  
 
;What the talent description means
 
;What the talent description means
Line 83: Line 122:
 
==(cTL) combatTalentLimit <span id="cTL"></span>==
 
==(cTL) combatTalentLimit <span id="cTL"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTL|CTL]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctl]]''
  
 
;Example of talent description
 
;Example of talent description
:The value is {{CTL|'''limit'''|'''low'''|'''high'''}}
+
:The value is {{ctl|'''limit'''|'''low'''|'''high'''}}
  
 
;What the talent description means
 
;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'''.
 
: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 {{ctl|'''limit'''|'''low'''|'''high'''|PM}}
 +
:the game will multiply your talent level by a Paradox Modifier when calculating the value, where
 +
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>'''
  
 
==(cTMD) combatTalentMindDamage <span id="cTMD"></span>==
 
==(cTMD) combatTalentMindDamage <span id="cTMD"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTMD|CTMD]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctmd]]''
  
 
;Example of talent description
 
;Example of talent description
:The value is {{CTMD|'''base'''|'''max'''}}
+
:The value is {{ctmd|'''base'''|'''max'''}}
  
 
;What the talent description means
 
;What the talent description means
:The value will scale with respect to both mind power and talent level, returning '''max''' at 100 mind power and talent level 5.
+
: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
 
;What the game actually does
:The actual value will be ( '''max''' * '''Mind Power Factor''' * '''Talent Factor''' )<sup>1.04</sup>, where
+
:The actual value will be ( '''max''' * '''Mindpower Factor''' * '''Talent Factor''' )<sup>1.04</sup>, where
:'''Mind Power Factor''' = ('''base''' + '''Mind Power''') / ('''base''' + 100),
+
:'''Mindpower Factor''' = ('''base''' + '''Mindpower''') / ('''base''' + 100),
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
:Notice that '''base''' is not actually the minimum possible value.
+
:Notice that '''base''' is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to '''Mindpower'''.
  
 
==(cTPD) combatTalentPhysicalDamage <span id="cTPD"></span>==
 
==(cTPD) combatTalentPhysicalDamage <span id="cTPD"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTPD|CTPD]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctpd]]''
  
 
;Example of talent description
 
;Example of talent description
:The value is {{CTPD|'''base'''|'''max'''}}
+
:The value is {{ctpd|'''base'''|'''max'''}}
  
 
;What the talent description means
 
;What the talent description means
Line 121: Line 165:
 
:'''Physical Power Factor''' = ('''base''' + '''Physical Power''') / ('''base''' + 100),
 
:'''Physical Power Factor''' = ('''base''' + '''Physical Power''') / ('''base''' + 100),
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
:Notice that '''base''' is not actually the minimum possible value.
+
:Notice that '''base''' is not actually the minimum possible value, but instead controls the amount of diminishing returns applied to '''Physical Power'''.
  
 
==(cTS) combatTalentScale <span id="cTS"></span>==
 
==(cTS) combatTalentScale <span id="cTS"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTS|CTS]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:cts]]''
  
''This function is almost identical to [[#cS|combatScale]] except that is sets '''''x<sub>low</sub> = 1''''' and '''''x<sub>high</sub> = 5''''' to represent the talent level that the scaling is based on.
+
''This function is almost identical to [[#cS|combatScale]] except that the scaling parameter is always your talent level, and it sets '''x<sub>low</sub> = 1''' and '''x<sub>high</sub> = 5''' as default parameters.
  
 
;Example of talent description
 
;Example of talent description
:Value is {{CTS|'''low'''|'''high'''}}
+
:Value is {{cts|'''low'''|'''high'''}}
  
 
;What the talent description means
 
;What the talent description means
Line 146: Line 190:
  
 
;Custom power
 
;Custom power
:With a talent description of: Value is 5–10<sup>[[Scaling#cTS|cTS:0.75P]]</sup>
+
:With a talent description of: Value is {{cts|5|10|0.75P}}
 
:the fit parameter '''power = 0.75''' will be used instead.
 
:the fit parameter '''power = 0.75''' will be used instead.
 
:Higher '''power''' suppresses the effects of diminishing returns.
 
:Higher '''power''' suppresses the effects of diminishing returns.
  
 
;Custom shift
 
;Custom shift
:With a talent description of: Value is 5–10<sup>[[Scaling#cTS|cTS:2S]]</sup>
+
:With a talent description of: Value is {{cts|5|10|2S}}
 
:the fit parameter '''shift = 2''' will be used instead.
 
:the fit parameter '''shift = 2''' will be used instead.
 
:Higher '''shift''' basically acts as a direct bonus to your talent level.
 
:Higher '''shift''' basically acts as a direct bonus to your talent level.
  
 
;Logarithmic fits
 
;Logarithmic fits
:With a talent description of: Value is 5–10<sup>[[Scaling#cTS|cTS:log]]</sup>
+
:With a talent description of: Value is {{cts|5|10|log}}
 
:the game will use a logarithmic fit with the function '''y(x) = m * Log<sub>10</sub>(x + shift) + b + add''' instead
 
:the game will use a logarithmic fit with the function '''y(x) = m * Log<sub>10</sub>(x + shift) + b + add''' instead
  
 
;Paradox modifier
 
;Paradox modifier
:With a talent description of: Value is 5–10<sup>[[Scaling#cTS|cTS:PM]]</sup>
+
:With a talent description of: Value is {{cts|5|10|PM}}
 
:the game will multiply your talent level by a Paradox Modifier and return '''y ( x * Paradox Modifier )''', where
 
:the game will multiply your talent level by a Paradox Modifier and return '''y ( x * Paradox Modifier )''', where
 
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>'''
 
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>'''
  
 
;Example of calculation
 
;Example of calculation
:If the description of a talent is: This skill has a range of 5–10<sup>[[Scaling#cTS|cTS]]</sup>
+
:If the description of a talent is: This skill has a range of {{cts|5|10}}
 
:then the game will use default values to produce the fit function
 
:then the game will use default values to produce the fit function
 
:'''y(x) = 4.045 * x <sup>0.5</sup> + 0.955'''
 
:'''y(x) = 4.045 * x <sup>0.5</sup> + 0.955'''
Line 190: Line 234:
 
==(cTSpD) combatTalentSpellDamage <span id="cTSpD"></span>==
 
==(cTSpD) combatTalentSpellDamage <span id="cTSpD"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTSPD|CTSPD]] template.''
+
''Talent parameters that scale by this function should be noted with [[Template:ctspd|ctspd]] template.''
  
 
;Example of talent description
 
;Example of talent description
:Value is {{CTSPD|'''base'''|'''max'''}}
+
:Value is {{ctspd|'''base'''|'''max'''}}
  
 
;What the talent description means
 
;What the talent description means
:The value will scale with respect to both spell power and talent level, returning '''max<sup>1.04</sup>''' at 100 spell power and talent level 5.
+
:The value will scale with respect to both spellpower and talent level, returning '''max<sup>1.04</sup>''' at 100 spell power and talent level 5.
  
 
;What the game actually does
 
;What the game actually does
:The actual value will be ( '''max''' * '''Spell Power Factor''' * '''Talent Factor''' )<sup>1.04</sup>, where
+
:The actual value will be ( '''max''' * '''Spellpower Factor''' * '''Talent Factor''' )<sup>1.04</sup>, where
:'''Spell Power Factor''' = ('''base''' + '''Spell Power''') / ('''base''' + 100),
+
:'''Spellpower Factor''' = ('''base''' + '''Spellpower''') / ('''base''' + 100),
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5)
 
:'''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
 
;Paradox modifier
:With a talent description of: Value is {{CTSPD|'''base'''|'''max'''|PM}},
+
:With a talent description of: Value is {{ctspd|'''base'''|'''max'''|PM}},
 
:the game will multiply the final value by your Paradox Modifier, which is defined as
 
:the game will multiply the final value by your Paradox Modifier, which is defined as
 
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>'''
 
:'''Paradox Modifier = (0.5 + Paradox / 600)<sup>0.5</sup>'''
 +
 +
;Cursed Form spellpower override
 +
:With a talent description of: Value is {{ctspd|'''base'''|'''max'''|CF}},
 +
:the game will use (1.2 * (Character Level + Willpower) ) as your effective spellpower instead
 +
 +
 +
==(cTStmD) combatTalentSteamDamage <span id="cTStmD"></span>==
 +
 +
''Talent parameters that scale by this function should be noted with [[Template:ctstmd|ctstmd]] template.''
 +
 +
;Example of talent description
 +
:Value is {{ctstmd|'''base'''|'''max'''}}
 +
 +
;What the talent description means
 +
:The value will scale with respect to both steampower and talent level, returning '''max<sup>1.04</sup>''' at 100 steampower and talent level 5.
 +
 +
;What the game actually does
 +
:The actual value will be ( '''max''' * '''Steampower Factor''' * '''Talent Factor''' )<sup>1.04</sup>, 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 <span id="cTStD"></span>==
 
==(cTStD) combatTalentStatDamage <span id="cTStD"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTSTD|CTSTD]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctstd]]''
  
 
;Example of talent description
 
;Example of talent description
:Value is {{CTSTD|'''stat'''|'''base'''|'''max'''}}
+
:Value is {{ctstd|'''stat'''|'''base'''|'''max'''}}
  
 
;What the talent description means
 
;What the talent description means
Line 223: Line 289:
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5),
 
:'''Talent Factor''' = (0.2 + 0.8 * √ '''Talent Level''') / (0.2 + 0.8 * √ 5),
 
:then return '''Final Value''' = '''Base Value''' * ( 1  - Log<sub>10</sub>(2 * '''Base Value''') / 7 )
 
:then return '''Final Value''' = '''Base Value''' * ( 1  - Log<sub>10</sub>(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 <span id="cTWD"></span>==
 
==(cTWD) combatTalentWeaponDamage <span id="cTWD"></span>==
  
''Talent parameters that scale by this function should be noted with the [[Template:CTWD|CTWD]] template''
+
''Talent parameters that scale by this function should be noted with [[Template:ctwd]]''
  
 
;Example of talent description
 
;Example of talent description
:Value is {{CTWD|'''base'''|'''max'''}}
+
:Value is {{ctwd|'''base'''|'''max'''}}
  
 
;What the talent description means
 
;What the talent description means
Line 240: Line 307:
 
:An extra '''t2''' parameter can sometimes be provided (e.g. [[Shield pummel (talent)|Shield Pummel]]), in which case
 
:An extra '''t2''' parameter can sometimes be provided (e.g. [[Shield pummel (talent)|Shield Pummel]]), in which case
 
:the value is ('''base''' + ('''max''' - '''base''') * √ ((Talent Level + '''t2''' / 2 ) / 5) )
 
:the value is ('''base''' + ('''max''' - '''base''') * √ ((Talent Level + '''t2''' / 2 ) / 5) )
:Although the [[Template:CTWD|CTWD]] template will accept an extra parameter for '''t2''', it is probably best to just explain its effects directly in a talent's description instead.
+
: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.
  
 
[[Category:Game Mechanics]]
 
[[Category:Game Mechanics]]

Latest revision as of 10:24, 13 October 2021

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.


(gTL) getTalentLevel

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

Example of talent description
The value is lowhighgtl
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 lowhighgtl :raw.
In almost all cases, this means 1 - 5, so you should write {{gtl|1|5|raw}} to get 1–5gtl :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 ylowyhighcL:limit as parameter x varies from xlowxhigh
What the talent description means
The value will be ylow when parameter x is xlow, and yhigh when the parameter is xhigh, with some diminishing returns and will never exceed 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 ylowyhighcS as parameter x varies from xlowxhigh
What the talent description means
The value will be ylow when parameter x is xlow, and yhigh when the parameter is xhigh, with some diminishing returns.
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( xlow ) = ylow and y( xhigh ) = yhigh,
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–125cS as (0.25 * Cunning * Talent Level) varies from 0–125
The resulting fit function is y = 11.18 * (0.25 * Cunning * Talent Level) 0.5 and will, for example, produce the following results:
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 lowhighcSL: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 xlow = 10 and xhigh = 100 as default parameters.

Example of talent description
The value is lowhighcSS: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 minmaxcTID: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 - Log10(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 lowhighcTL: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 lowhighcTL: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]maxcTMD
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]maxcTPD
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 xlow = 1 and xhigh = 5 as default parameters.

Example of talent description
Value is lowhighcTS
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–10cTS: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–10cTS: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–10cTS:log
the game will use a logarithmic fit with the function y(x) = m * Log10(x + shift) + b + add instead
Paradox modifier
With a talent description of: Value is 5–10cTS: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–10cTS
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]maxcTSpD
What the talent description means
The value will scale with respect to both spellpower and talent level, returning max1.04 at 100 spell power and talent level 5.
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]maxcTSpD: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]maxcTSpD: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]maxcTStmD
What the talent description means
The value will scale with respect to both steampower and talent level, returning max1.04 at 100 steampower and talent level 5.
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]maxcTStD: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 - Log10(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 basemaxcTWD
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.