<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dragonminez.com/index.php?action=history&amp;feed=atom&amp;title=Dynamic_Growth%2Fen</id>
	<title>Dynamic Growth/en - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dragonminez.com/index.php?action=history&amp;feed=atom&amp;title=Dynamic_Growth%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Dynamic_Growth/en&amp;action=history"/>
	<updated>2026-10-25T15:46:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.dragonminez.com/index.php?title=Dynamic_Growth/en&amp;diff=10953&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Dynamic_Growth/en&amp;diff=10953&amp;oldid=prev"/>
		<updated>2026-10-13T06:12:24Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Dynamic Growth&amp;#039;&amp;#039;&amp;#039; is a progression system that runs alongside buying stats with Training Points: instead of (or as well as) spending TP on stat points, you earn practice XP toward each stat just by using it, by dealing damage, taking hits, spending stamina and ki, and training on the right kind of target. When a stat&amp;#039;s practice XP bar is full, that stat goes up by 1 point and you get a message and a sound.&lt;br /&gt;
&lt;br /&gt;
Practicing one stat also trains its &amp;#039;&amp;#039;&amp;#039;linked&amp;#039;&amp;#039;&amp;#039; stat at half speed, and stat points earned through practice &amp;#039;&amp;#039;&amp;#039;don&amp;#039;t make TP purchases more expensive&amp;#039;&amp;#039;&amp;#039; (see the TP section below). Server owners configure the system under the &amp;lt;code&amp;gt;dynamicGrowth&amp;lt;/code&amp;gt; key of &amp;lt;code&amp;gt;config/dragonminez/general-server.json&amp;lt;/code&amp;gt;; it has its own page because it has more than 20 fields and its own anti-farming logic.&lt;br /&gt;
&lt;br /&gt;
== How each stat grows ==&lt;br /&gt;
{{See also|Stats and Attributes|Training Points and Mastery}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stat !! Practice XP comes from&lt;br /&gt;
|-&lt;br /&gt;
| STR || Melee damage dealt (also when Ki Infusion is active, see &amp;lt;code&amp;gt;kiWeaponMeleePwrShare&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| SKP || Damage dealt with strike techniques.&lt;br /&gt;
|-&lt;br /&gt;
| RES || Stamina spent (&amp;lt;code&amp;gt;staminaSpentXpRatio&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| VIT || Damage taken from an attacker.&lt;br /&gt;
|-&lt;br /&gt;
| PWR || Damage dealt with ki attacks and with ki weapons.&lt;br /&gt;
|-&lt;br /&gt;
| ENE || Ki spent (&amp;lt;code&amp;gt;energySpentXpRatio&amp;lt;/code&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Damage-based XP uses the damage of the hit, capped at 20% of the target&amp;#039;s max health (at least 1), multiplied by the practice-source multipliers below. Creative and spectator players don&amp;#039;t gain practice XP, and stats that are already at their cap don&amp;#039;t grow.&lt;br /&gt;
&lt;br /&gt;
=== Linked stats ===&lt;br /&gt;
Every bit of practice XP also gives a share of it (&amp;lt;code&amp;gt;linkedStatXpShare&amp;lt;/code&amp;gt;, &amp;#039;&amp;#039;&amp;#039;50%&amp;#039;&amp;#039;&amp;#039; by default) to the stat paired with it:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stat !! Linked stat&lt;br /&gt;
|-&lt;br /&gt;
| STR || SKP (and the other way round)&lt;br /&gt;
|-&lt;br /&gt;
| RES || VIT (and the other way round)&lt;br /&gt;
|-&lt;br /&gt;
| PWR || ENE (and the other way round)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
So punching mobs grows STR at full speed and SKP at half speed, spending ki grows ENE and some PWR, and so on. The linked share is applied before the linked stat&amp;#039;s own per-stat multiplier and limits, so it gets &amp;#039;&amp;#039;up to&amp;#039;&amp;#039; half as much. Each half respects its own per-player toggle: the linked stat still gains XP when the main stat&amp;#039;s growth is switched off, and vice versa.&lt;br /&gt;
&lt;br /&gt;
=== XP needed per point ===&lt;br /&gt;
With &amp;lt;code&amp;gt;practiceCurveEnabled&amp;lt;/code&amp;gt;, raising a stat that currently has the value &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; needs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
RequiredXp = 70 + 2 × S + floor(S^1.35)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the curve disabled, every point needs a flat &amp;lt;code&amp;gt;100&amp;lt;/code&amp;gt; XP. A single gain can never be bigger than 10% of the XP needed for the next point.&lt;br /&gt;
&lt;br /&gt;
=== Per-player toggles ===&lt;br /&gt;
{{See also|General User Config|Menus}}&lt;br /&gt;
When Dynamic Growth is enabled, each player can switch practice growth on or off for every stat from the &amp;#039;&amp;#039;&amp;#039;Configuration&amp;#039;&amp;#039;&amp;#039; screen of the character menu (Gameplay category, &amp;quot;Stat Growth&amp;quot; toggles). The choice is saved in the player&amp;#039;s data.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Everything below lives in the &amp;lt;code&amp;gt;dynamicGrowth&amp;lt;/code&amp;gt; block of &amp;lt;code&amp;gt;config/dragonminez/general-server.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Master toggles ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Master toggle for the whole system.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;practiceCurveEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || If &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, every stat point needs a flat 100 practice XP instead of the curve above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;practiceXpMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.0&amp;lt;/code&amp;gt; || Global multiplier applied to all practice XP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Per-stat practice multipliers ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;strPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on STR practice XP.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;skpPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on SKP practice XP.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; || Multiplier on RES practice XP.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vitPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || Multiplier on VIT practice XP.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pwrPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on PWR practice XP.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enePracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt; || Multiplier on ENE practice XP.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Negative values are treated as &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (no growth for that stat).&lt;br /&gt;
&lt;br /&gt;
=== Stamina and ki spending ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;staminaSpentXpRatio&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; || RES practice XP per point of stamina spent.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;energySpentXpRatio&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; || ENE practice XP per point of ki spent.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kiWeaponMeleePwrShare&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.25&amp;lt;/code&amp;gt; || Melee hits with Ki Infusion active give STR XP plus this fraction of the same XP as PWR. (Melee hits with a ki weapon give PWR XP only.)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;linkedStatXpShare&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || Fraction of every practice XP gain that also goes to the linked stat. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; turns linked growth off.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Stamina and ki spending award XP directly and bypass the repeat-target anti-farm check below, since they aren&amp;#039;t tied to a specific target.&lt;br /&gt;
&lt;br /&gt;
=== TP interplay ===&lt;br /&gt;
{{See also|General Server Config}}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;naturalCombatTpMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on the TP earned from hits and kills while Dynamic Growth is enabled. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; removes combat TP entirely.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;manualTpPurchasesEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Whether players can still buy stat points with TP. If &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, stats only grow through practice (and other sources such as capsules or racial skills).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attributeTpCostMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on the TP cost of buying a stat point (minimum &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;). See the TP cost formula on [[Special:MyLanguage/General Server Config|General Server Config]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;growthStatsCountForTpCost&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Whether stat points earned through Dynamic Growth raise the TP cost of buying stats.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The mod keeps count of the stat points each player earned through practice. With &amp;lt;code&amp;gt;growthStatsCountForTpCost&amp;lt;/code&amp;gt; off (the default), those points are left out of the total used for the TP cost of the next stat point, so growing through practice never makes buying stats more expensive. The same reduced total drives the other values that follow the stat cost: the progression TP bonus (&amp;lt;code&amp;gt;increaseTPGainRelativeToTPCost&amp;lt;/code&amp;gt;) and the TP rewards of training minigames.&lt;br /&gt;
&lt;br /&gt;
Points bought with TP or given by capsules, wishes, commands and so on count normally. If a &amp;lt;code&amp;gt;/dmzstats&amp;lt;/code&amp;gt; reset keeps only a percentage of your stats, the practice count shrinks by the same percentage; a full reset clears it.&lt;br /&gt;
&lt;br /&gt;
=== Practice-source multipliers ===&lt;br /&gt;
These scale XP down for easy or low-effort training, so the system doesn&amp;#039;t trivially outpace the intended progression:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! Applies when…&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;passiveAnimalPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || Training on animals (cows, sheep and so on).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;villagerPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.1&amp;lt;/code&amp;gt; || Training on protected NPCs (villagers, Namekian villagers and traders, demon villagers, masters, the dragon).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lowDamagePracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.2&amp;lt;/code&amp;gt; || The hit dealt less than 0.5 damage.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;shadowDummyPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.35&amp;lt;/code&amp;gt; || Training on a Shadow Dummy.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noRiskPracticeMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || The target is not a player or a monster and isn&amp;#039;t targeting the player back (no real risk).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Multipliers combine: a 0.3-damage hit on a passive cow counts &amp;lt;code&amp;gt;0.2 × 0.5 × 0.5&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Repeat-target anti-farming ===&lt;br /&gt;
Grinding the same target repeatedly falls off inside a time window:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Key !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatTargetWindowSeconds&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt; || Length of the window. It starts at the first hit on a target and restarts once it has fully elapsed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatTargetSoftCap&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt; || Hits on the same target after which the soft multiplier applies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatTargetHardCap&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;24&amp;lt;/code&amp;gt; || Hits on the same target after which the hard multiplier applies.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatTargetSoftMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || Multiplier from hit 9 to hit 24 (with the default caps).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatTargetHardMultiplier&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.15&amp;lt;/code&amp;gt; || Multiplier from hit 25 on.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With the defaults, hits 1–8 on the same target within the window give full XP (&amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;), hits 9–24 give &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;, and every hit after that gives &amp;lt;code&amp;gt;0.15&amp;lt;/code&amp;gt;. A cap of &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; disables that step. The [[Special:MyLanguage/Bio-Android|Bio-Android]] Vital Drain TP reward uses the same anti-farm counter.&lt;br /&gt;
&lt;br /&gt;
== Reload and validate ==&lt;br /&gt;
{{See also|Reloading and Updating Changes|How to JSON}}&lt;br /&gt;
# Edit the &amp;lt;code&amp;gt;dynamicGrowth&amp;lt;/code&amp;gt; block in &amp;lt;code&amp;gt;config/dragonminez/general-server.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Validate the JSON syntax.&lt;br /&gt;
# Run &amp;lt;code&amp;gt;/dmzreload config&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Test in-game: fight a mob and confirm that stat points arrive at the expected rate, and that repeated hits on the same target fall off as expected.&lt;br /&gt;
&lt;br /&gt;
{{Navbox Configuration}}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>