<?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=Custom_Forms%2Fen</id>
	<title>Custom Forms/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=Custom_Forms%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Custom_Forms/en&amp;action=history"/>
	<updated>2026-10-25T16:23:26Z</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=Custom_Forms/en&amp;diff=38180&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=Custom_Forms/en&amp;diff=38180&amp;oldid=prev"/>
		<updated>2026-10-22T00:58:01Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:58, 22 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;tintColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tintIntensity&amp;lt;/code&amp;gt; || Hex / Double || &amp;lt;code&amp;gt;#FF0000&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Color tint over the player while transformed. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; means no tint.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;tintColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tintIntensity&amp;lt;/code&amp;gt; || Hex / Double || &amp;lt;code&amp;gt;#FF0000&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Color tint over the player while transformed. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; means no tint.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;outlineShader&amp;lt;/code&amp;gt; || Object || — || &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;primaryColor&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;#7FFFFF&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;secondaryColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;outlineThickness&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;outlineShader&amp;lt;/code&amp;gt; || Object || — || &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;primaryColor&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;#7FFFFF&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;secondaryColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;outlineThickness&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &amp;lt;code&amp;gt;fireIntensity&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;, default &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: animated flame tongues), &amp;lt;code&amp;gt;colorMode&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;&quot;pulse&quot;&amp;lt;/code&amp;gt;, the default, shifts between the two colors; &amp;lt;code&amp;gt;&quot;gradient&quot;&amp;lt;/code&amp;gt; goes from &amp;lt;code&amp;gt;primaryColor&amp;lt;/code&amp;gt; next to the body to &amp;lt;code&amp;gt;secondaryColor&amp;lt;/code&amp;gt; at the outer edge) and &amp;lt;code&amp;gt;bodyGlow&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;, default &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;: a glow of the outline color along the edges of the body). The same &amp;lt;code&amp;gt;outlineThickness&amp;lt;/code&amp;gt; draws a wider outline than before 2.2&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.dragonminez.com/index.php?title=Custom_Forms/en&amp;diff=4427&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=Custom_Forms/en&amp;diff=4427&amp;oldid=prev"/>
		<updated>2026-10-13T05:22:46Z</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;Custom forms&amp;#039;&amp;#039;&amp;#039; are transformations you add or change with JSON files. Forms can live in two places; both use exactly the same JSON schema and Java class (&amp;lt;code&amp;gt;FormConfig.java&amp;lt;/code&amp;gt;), and only the folder they sit in changes what they mean:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Location !! What it is&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;config/dragonminez/races/&amp;lt;race&amp;gt;/forms/*.json&amp;lt;/code&amp;gt; || &amp;#039;&amp;#039;&amp;#039;Race forms&amp;#039;&amp;#039;&amp;#039; belong to one race only (for example, Super Saiyan only exists for Saiyans). See [[Special:MyLanguage/Custom Races|Custom Races]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;config/dragonminez/forms/*.json&amp;lt;/code&amp;gt; || &amp;#039;&amp;#039;&amp;#039;Stack forms&amp;#039;&amp;#039;&amp;#039; are shared by all races and designed to layer on top of whatever race form is already active.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This page is about the second kind, stack forms, but the [[Special:MyLanguage/Custom Forms#Field reference|field reference]] below applies to race forms too.&lt;br /&gt;
&lt;br /&gt;
Loader: &amp;lt;code&amp;gt;ConfigManager.createOrLoadStackForms()&amp;lt;/code&amp;gt; reads every file in &amp;lt;code&amp;gt;config/dragonminez/forms/&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;ConfigLoader.loadStackForms&amp;lt;/code&amp;gt;). Files whose name starts with &amp;lt;code&amp;gt;old_&amp;lt;/code&amp;gt; are ignored.&lt;br /&gt;
&lt;br /&gt;
== What a stack form is ==&lt;br /&gt;
{{Main|Transformations}}&lt;br /&gt;
A stack form doesn&amp;#039;t replace your current transformation: it stacks its multipliers on top of it. The clearest example is [[Special:MyLanguage/Kaioken|Kaioken]]: a Saiyan can be in base form or Super Saiyan and &amp;#039;&amp;#039;also&amp;#039;&amp;#039; be in Kaioken x2 at the same time, multiplying whatever form they are already in. The built-in stack form groups are &amp;lt;code&amp;gt;kaioken&amp;lt;/code&amp;gt; (x2, x3, x4, x10, x20) and &amp;lt;code&amp;gt;ultimate&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;StackForms.java&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
A stack group is unlocked by the stack skill named in its &amp;lt;code&amp;gt;formType&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;kaioken&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ultimate&amp;lt;/code&amp;gt;. A form of the group becomes available when that skill reaches the form&amp;#039;s &amp;lt;code&amp;gt;unlockOnSkillLevel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== File structure ==&lt;br /&gt;
There is one file per group, for example &amp;lt;code&amp;gt;config/dragonminez/forms/kaioken.json&amp;lt;/code&amp;gt; (shortened):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;configVersion&amp;quot;: &amp;quot;2.2.0&amp;quot;,&lt;br /&gt;
  &amp;quot;groupName&amp;quot;: &amp;quot;kaioken&amp;quot;,&lt;br /&gt;
  &amp;quot;formType&amp;quot;: &amp;quot;kaioken&amp;quot;,&lt;br /&gt;
  &amp;quot;forms&amp;quot;: {&lt;br /&gt;
    &amp;quot;x2&amp;quot;: {&lt;br /&gt;
      &amp;quot;name&amp;quot;: &amp;quot;x2&amp;quot;,&lt;br /&gt;
      &amp;quot;unlockOnSkillLevel&amp;quot;: 1,&lt;br /&gt;
      &amp;quot;keepBaseFormHeadBones&amp;quot;: true,&lt;br /&gt;
      &amp;quot;strMultiplier&amp;quot;: 1.1,&lt;br /&gt;
      &amp;quot;skpMultiplier&amp;quot;: 1.1,&lt;br /&gt;
      &amp;quot;defMultiplier&amp;quot;: 1.125,&lt;br /&gt;
      &amp;quot;pwrMultiplier&amp;quot;: 1.1,&lt;br /&gt;
      &amp;quot;speedMultiplier&amp;quot;: 1.1,&lt;br /&gt;
      &amp;quot;healthDrain&amp;quot;: 0.03,&lt;br /&gt;
      &amp;quot;attackSpeed&amp;quot;: 1.1,&lt;br /&gt;
      &amp;quot;tintColor&amp;quot;: &amp;quot;#FF0000&amp;quot;,&lt;br /&gt;
      &amp;quot;tintIntensity&amp;quot;: 0.1,&lt;br /&gt;
      &amp;quot;auraColor&amp;quot;: &amp;quot;#DB182C&amp;quot;,&lt;br /&gt;
      &amp;quot;auraLayer&amp;quot;: 1,&lt;br /&gt;
      &amp;quot;formStackable&amp;quot;: true,&lt;br /&gt;
      &amp;quot;stackDrainMultiplier&amp;quot;: 1.0,&lt;br /&gt;
      &amp;quot;incompatibleWith&amp;quot;: [&amp;quot;ultimate.ultimate&amp;quot;],&lt;br /&gt;
      &amp;quot;shareMasteryWith&amp;quot;: [&amp;quot;kaioken.x3&amp;quot;],&lt;br /&gt;
      &amp;quot;shareMasteryMultiplier&amp;quot;: 0.25&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;groupName&amp;lt;/code&amp;gt; is the group key (lowercase); groups are identified by it, not by the filename. Everything nested under &amp;lt;code&amp;gt;forms&amp;lt;/code&amp;gt; is one form entry, keyed by its own &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;. Any field you leave out takes the default shown below.&lt;br /&gt;
&lt;br /&gt;
{{Note|type=config|title=Config version|text=Use &amp;lt;code&amp;gt;&amp;quot;configVersion&amp;quot;: &amp;quot;2.2.0&amp;quot;&amp;lt;/code&amp;gt;. A custom form file with an older or missing version is backed up to &amp;lt;code&amp;gt;config/dragonminez/oldBackup/&amp;lt;/code&amp;gt; and saved again with the current version; your values are kept. A file with broken JSON syntax is skipped and reported until you fix it.}}&lt;br /&gt;
&lt;br /&gt;
== Field reference ==&lt;br /&gt;
Schema source: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/common/config/FormConfig.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Unlock and requirements ===&lt;br /&gt;
{{Config|General Server Config|gameplay}}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Form key within the group (for example &amp;lt;code&amp;gt;x2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;x3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ultimate&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unlockOnSkillLevel&amp;lt;/code&amp;gt; || Integer || &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; || Level of the group&amp;#039;s form skill that unlocks this form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;formRequisite&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Other forms that must be mastered first, as &amp;lt;code&amp;gt;&amp;quot;group.form&amp;quot;&amp;lt;/code&amp;gt;. Separate several with commas.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;formRequisiteType&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt;: every listed form needs the mastery. &amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt;: one is enough.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unlockOnMastery&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Mastery the &amp;lt;code&amp;gt;formRequisite&amp;lt;/code&amp;gt; forms need. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; turns the requirement off.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;levelRequisite&amp;lt;/code&amp;gt; || Integer || &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; || Player level needed. Until it is reached, the form skill cannot be leveled up to this form. Toggle: &amp;lt;code&amp;gt;levelFormRequisiteEnabled&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;general-server.json&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;gameplay&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sagaRequisite&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Saga quest that must be completed first, as &amp;lt;code&amp;gt;&amp;quot;sagaId:questId&amp;quot;&amp;lt;/code&amp;gt; (for example &amp;lt;code&amp;gt;&amp;quot;frieza_saga:10&amp;quot;&amp;lt;/code&amp;gt;). Until it is completed, the form skill cannot be leveled up to this form. Ignored when story mode is off or the quest does not exist. Toggle: &amp;lt;code&amp;gt;sagaFormRequisiteEnabled&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;general-server.json&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;gameplay&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Visuals ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Model key for the form. Looked up like a race model: built-in keys or your own &amp;lt;code&amp;gt;geo/entity/races/&amp;lt;key&amp;gt;.geo.json&amp;lt;/code&amp;gt; (see [[Special:MyLanguage/Custom Models and Assets|Custom Models and Assets]]). A stack form&amp;#039;s model wins over the race form&amp;#039;s.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;keepBaseFormHeadBones&amp;lt;/code&amp;gt; || Boolean || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Keeps the player&amp;#039;s chosen head bone (ears, horns and so on) visible in this form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hideTail&amp;lt;/code&amp;gt; || Boolean || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Hides the Saiyan tail while in this form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;transformationAnimation&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;transf.generic&amp;lt;/code&amp;gt; || Animation played while charging into this form. Built-in values: &amp;lt;code&amp;gt;transf.generic&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.ssj&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.ssj3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.ssg2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.ozaru&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.absorb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.berserker&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.freezer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.freezer2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.janemba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf.daima&amp;lt;/code&amp;gt;. Any animation name from the player animation files (&amp;lt;code&amp;gt;assets/dragonminez/animations/entity/races/*.animation.json&amp;lt;/code&amp;gt;) works, so a resource pack can add its own. Empty means the generic animation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bodyColor1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bodyColor2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bodyColor3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hairColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;eye1Color&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;eye2Color&amp;lt;/code&amp;gt; || Hex string || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Color overrides. Empty keeps the player&amp;#039;s color. Colors blend in while charging.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;furUsesHairColor&amp;lt;/code&amp;gt; || Boolean || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || On SSJ4 models (a &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; containing &amp;lt;code&amp;gt;ssj4gt&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ssj4d&amp;lt;/code&amp;gt;), colors the fur with the hair color.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hairType&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Which of the player&amp;#039;s hair styles to show: &amp;lt;code&amp;gt;base&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssj&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssj2&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssj3&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ssj4&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;forcedHairCode&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || A hair code (from the hair editor) forced while in this form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;extraFormLayer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extraFormColor&amp;lt;/code&amp;gt; || String / Hex || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Extra texture drawn over the body, tinted with &amp;lt;code&amp;gt;extraFormColor&amp;lt;/code&amp;gt; (white if empty). Use a full &amp;lt;code&amp;gt;namespace:path&amp;lt;/code&amp;gt; or a path inside the &amp;lt;code&amp;gt;dragonminez&amp;lt;/code&amp;gt; namespace, for example &amp;lt;code&amp;gt;textures/entity/races/my_overlay.png&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auraType&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;kakarot&amp;lt;/code&amp;gt; || 2D aura sprite set: &amp;lt;code&amp;gt;kakarot&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;god&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auraType3D&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;userPreference&amp;lt;/code&amp;gt; || 3D aura style: &amp;lt;code&amp;gt;smooth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sparking&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;god&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;userPreference&amp;lt;/code&amp;gt; (each player&amp;#039;s own setting). A form that names &amp;lt;code&amp;gt;god&amp;lt;/code&amp;gt; shows it for any race; as a player preference it is Glind-only.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auraColor&amp;lt;/code&amp;gt; || Hex string || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Aura color. Empty keeps the player&amp;#039;s aura color.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;auraLayer&amp;lt;/code&amp;gt; || Integer || &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; || Aura layer slot. Forms on different layers show separate auras at the same time (the Kaioken forms use layer &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;aura3DStyle&amp;lt;/code&amp;gt; || Object || See below || Shape of the 3D aura (see [[Special:MyLanguage/Custom Forms#3D aura shape|3D aura shape]]).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;extraAuraType&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extraAuraType3D&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extraAuraColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extraAuraLayer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;extraAura3DStyle&amp;lt;/code&amp;gt; || — || &amp;lt;code&amp;gt;kakarot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;userPreference&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;#FFFFFF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt;, defaults || A second aura. &amp;lt;code&amp;gt;extraAuraLayer&amp;lt;/code&amp;gt; must be &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;–&amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; to show; &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; means none.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hasLightnings&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lightningColor&amp;lt;/code&amp;gt; || Boolean / Hex || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Lightning bolts around the player.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;modelScaling&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;[x, y, z]&amp;lt;/code&amp;gt; floats || &amp;lt;code&amp;gt;[0.9375, 0.9375, 0.9375]&amp;lt;/code&amp;gt; || Model scale factors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tintColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tintIntensity&amp;lt;/code&amp;gt; || Hex / Double || &amp;lt;code&amp;gt;#FF0000&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Color tint over the player while transformed. &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; means no tint.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outlineShader&amp;lt;/code&amp;gt; || Object || — || &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;primaryColor&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;#7FFFFF&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;secondaryColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;outlineThickness&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D aura shape ===&lt;br /&gt;
These keys go inside &amp;lt;code&amp;gt;aura3DStyle&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;extraAura3DStyle&amp;lt;/code&amp;gt; (and inside a race&amp;#039;s &amp;lt;code&amp;gt;aura3DStyle&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;character.json&amp;lt;/code&amp;gt;). Every key is optional; a missing key uses the default.&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;size&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;[1.10, 1.17, 1.02]&amp;lt;/code&amp;gt; || Width, height and depth of the aura shell.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flamePeaks&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt; || Number of flame tongues around the shell (1–64). Smooth style only.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;waveFrequency&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;waveSpeed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;waveAmplitude&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;2.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;5.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.75&amp;lt;/code&amp;gt; || Flame waves. In the sparking style, &amp;lt;code&amp;gt;waveAmplitude&amp;lt;/code&amp;gt; is the spike reach and &amp;lt;code&amp;gt;waveSpeed&amp;lt;/code&amp;gt; is the surge speed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noiseDetail&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;upwardBias&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.10&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.54&amp;lt;/code&amp;gt; || Flame turbulence, and how strongly it flows upwards.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;coreAlpha&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rimAlpha&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rimPower&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rimThreshold&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;0.05&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.05&amp;lt;/code&amp;gt; || Opacity of the center and of the edge.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;coreColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rimColor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;noiseColor&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Hex colors. Empty means derived from the aura color.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;secondBorderColor&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Hex color of an outer fringe around the edge. Sparking style only; empty means no fringe.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bloomIntensity&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Glow strength.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;spikeDensity&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spikeBurstRate&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;spikeRarity&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bandStart&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.50&amp;lt;/code&amp;gt; || Sparking style only: spike columns (4–32), burst rate, how rare spikes are, and where the outline band starts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stats and drains ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;strMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;skpMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;stmMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;defMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vitMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pwrMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;eneMultiplier&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;speedMultiplier&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Stat multipliers. RES uses the average of &amp;lt;code&amp;gt;defMultiplier&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;stmMultiplier&amp;lt;/code&amp;gt;. A race form and a stack form add their bonuses together, or multiply them if &amp;lt;code&amp;gt;multiplicationInsteadOfAdditionForMultipliers&amp;lt;/code&amp;gt; is on in &amp;lt;code&amp;gt;general-server.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attackSpeed&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Attack speed multiplier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;energyDrain&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;staminaDrain&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;healthDrain&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Drain while transformed (also used for the cost of transforming). Values below &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; are treated as &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;staminaDrainMultiplier&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Multiplier on the stamina each attack costs while transformed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;otherworldTimeDrain&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;otherworldTimeDrainMastered&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || How fast this form drains Baba&amp;#039;s temporary-revive timer, at 0 mastery and at full mastery (blended in between). See [[Special:MyLanguage/Otherworld|Otherworld]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mastery ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maxMastery&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;100.0&amp;lt;/code&amp;gt; || Maximum mastery (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; means no mastery progression).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;masteryPerHitDealt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;masteryPerHitReceived&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.01&amp;lt;/code&amp;gt; || Mastery gained per hit.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;passiveMasteryEveryFiveSeconds&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.001&amp;lt;/code&amp;gt; || Passive mastery gained every 5 seconds in the form.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maxStatsMultiplier&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;1.25&amp;lt;/code&amp;gt; || At full mastery, stat multipliers above &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; are multiplied by this (scales up linearly with mastery).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;maxCostMultiplier&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt; || At full mastery, the form&amp;#039;s drains are multiplied by this (scales linearly with mastery).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stackOnMastery&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;0.0&amp;lt;/code&amp;gt; || Mastery this form needs before it can be combined with a stack form (or, for a stack form, with a race form).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;instantTransformOnMastery&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;40.0&amp;lt;/code&amp;gt; || Mastery this form needs for instant transformation (no charge, costs ki).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;allowFreeTransformOnMastery&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;50.0&amp;lt;/code&amp;gt; || Mastery this form needs before you can transform straight into it instead of going through the group in order. The group&amp;#039;s first unlocked form never needs it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;shareMasteryWith&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;shareMasteryMultiplier&amp;lt;/code&amp;gt; || List / Double || &amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1.0&amp;lt;/code&amp;gt; || Whenever this form gains mastery, each listed form (&amp;lt;code&amp;gt;&amp;quot;group.form&amp;quot;&amp;lt;/code&amp;gt;) gains that amount × &amp;lt;code&amp;gt;shareMasteryMultiplier&amp;lt;/code&amp;gt;. The default Kaioken forms share 25% with the next one up.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stacking behavior ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! Default !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;formStackable&amp;lt;/code&amp;gt; || Boolean || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Both the race form and the stack form must allow stacking.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stackDrainMultiplier&amp;lt;/code&amp;gt; || Double || &amp;lt;code&amp;gt;2.0&amp;lt;/code&amp;gt; || While a race form and a stack form are combined, the drains of both forms are multiplied by the &amp;lt;code&amp;gt;stackDrainMultiplier&amp;lt;/code&amp;gt; of both forms.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;incompatibleWith&amp;lt;/code&amp;gt; || List of &amp;lt;code&amp;gt;&amp;quot;group.form&amp;quot;&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;[&amp;quot;ultimate.ultimate&amp;quot;]&amp;lt;/code&amp;gt; || Forms that cannot be active at the same time as this one (checked both ways). On a race form, listing &amp;lt;code&amp;gt;ultimate.ultimate&amp;lt;/code&amp;gt; also keeps the Ultimate form from copying it as your best form; DragonMineZ&amp;#039;s own forms only list it on each race&amp;#039;s top tier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;formCombo&amp;lt;/code&amp;gt; || String || &amp;lt;code&amp;gt;&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; || Weapon attributes id used for melee combos while in this form, for example &amp;lt;code&amp;gt;dragonminez:giant&amp;lt;/code&amp;gt; for giant forms. A bare name is looked up under &amp;lt;code&amp;gt;dragonminez:&amp;lt;/code&amp;gt;, then &amp;lt;code&amp;gt;minecraft:&amp;lt;/code&amp;gt;. See [[Special:MyLanguage/Weapon Attributes|Weapon Attributes]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Costs and effects ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Type !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;triggerItemCosts&amp;lt;/code&amp;gt; || List of &amp;lt;code&amp;gt;{ itemId&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;itemTag, nbt, count, consume }&amp;lt;/code&amp;gt; || Items needed to transform. Entries are alternatives: the first one the player can pay is used. &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; defaults to &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;consume&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;itemTag&amp;lt;/code&amp;gt; is a tag id without &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;. Creative players skip it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;durationItemCosts&amp;lt;/code&amp;gt; || List of &amp;lt;code&amp;gt;{ itemId&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;itemTag, nbt, durationSeconds }&amp;lt;/code&amp;gt; || Items that keep the form going: one item buys &amp;lt;code&amp;gt;durationSeconds&amp;lt;/code&amp;gt; (default &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;) of form time. When none is left, the form ends.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;mobEffects&amp;lt;/code&amp;gt; || List of &amp;lt;code&amp;gt;{ effectId, amplifier, durationTicks, ambient, visible, showIcon }&amp;lt;/code&amp;gt; || Potion effects applied while transformed. &amp;lt;code&amp;gt;durationTicks&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;-1&amp;lt;/code&amp;gt; (the default) means as long as the form lasts.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Translation keys ==&lt;br /&gt;
Stack form groups and forms are named with these keys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
race.dragonminez.stack.group.&amp;lt;groupName&amp;gt;       # e.g. &amp;quot;race.dragonminez.stack.group.kaioken&amp;quot; -&amp;gt; &amp;quot;Kaioken&amp;quot;&lt;br /&gt;
race.dragonminez.stack.form.&amp;lt;groupName&amp;gt;.&amp;lt;name&amp;gt;  # e.g. &amp;quot;race.dragonminez.stack.form.kaioken.x2&amp;quot; -&amp;gt; &amp;quot;x2&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add these to your &amp;lt;code&amp;gt;en_us.json&amp;lt;/code&amp;gt; or to your own language file. Custom translations merge with the Crowdin ones in the same way as for [[Special:MyLanguage/Custom Races#Step 4: Add translation keys|custom races]].&lt;br /&gt;
&lt;br /&gt;
== Reload and validate ==&lt;br /&gt;
# Save your file under &amp;lt;code&amp;gt;config/dragonminez/forms/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Validate the JSON syntax (see [[Special:MyLanguage/How to JSON|How to JSON]]).&lt;br /&gt;
# Run &amp;lt;code&amp;gt;/dmzreload config&amp;lt;/code&amp;gt; (see [[Special:MyLanguage/Reloading and Updating Changes|Reloading and Updating Changes]]).&lt;br /&gt;
# Transform in game and check that stats, drains, visuals and stacking behave as expected.&lt;br /&gt;
&lt;br /&gt;
{{Navbox Modding}}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>