<?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_Models_and_Assets</id>
	<title>Custom Models and Assets - 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_Models_and_Assets"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Custom_Models_and_Assets&amp;action=history"/>
	<updated>2026-10-25T16:12:36Z</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_Models_and_Assets&amp;diff=123&amp;oldid=prev</id>
		<title>Neb: Sync from dragonminez-wiki repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Custom_Models_and_Assets&amp;diff=123&amp;oldid=prev"/>
		<updated>2026-10-13T04:15:50Z</updated>

		<summary type="html">&lt;p&gt;Sync from dragonminez-wiki repository&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Custom models and assets&amp;#039;&amp;#039;&amp;#039; let races and forms use your own geometry, body textures and faces. You don&amp;#039;t need to build a separate add-on for this, but you do need to edit JSON config files and add assets to a resource pack.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== How the model is chosen == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
DragonMineZ picks the model key in this order:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
# The &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; of the active &amp;#039;&amp;#039;&amp;#039;stack form&amp;#039;&amp;#039;&amp;#039; (from &amp;lt;code&amp;gt;config/dragonminez/forms/&amp;lt;group&amp;gt;.json&amp;lt;/code&amp;gt;).&lt;br /&gt;
# The &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; of the active &amp;#039;&amp;#039;&amp;#039;race form&amp;#039;&amp;#039;&amp;#039; (from &amp;lt;code&amp;gt;races/&amp;lt;race&amp;gt;/forms/&amp;lt;group&amp;gt;.json&amp;lt;/code&amp;gt;).&lt;br /&gt;
# The race&amp;#039;s &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; (from &amp;lt;code&amp;gt;races/&amp;lt;race&amp;gt;/character.json&amp;lt;/code&amp;gt;).&lt;br /&gt;
# The race&amp;#039;s built-in default model (a custom race without &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; uses the Human model).&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Source: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/client/model/DMZPlayerModel.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Built-in model keys == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
You can point any race or form at a model that already ships with DragonMineZ. These keys also bring that model&amp;#039;s textures and faces with them:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; Family&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; Keys&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; [[Special:MyLanguage/Human|Human]] / [[Special:MyLanguage/Saiyan|Saiyan]]&amp;lt;/translate&amp;gt; || &amp;lt;code&amp;gt;human&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;saiyan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;buffed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;buffedg3&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;4arms&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssj4gt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssj4d&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;oozaru&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; [[Special:MyLanguage/Namekian|Namekian]]&amp;lt;/translate&amp;gt; || &amp;lt;code&amp;gt;namekian&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;namekian_orange&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;namekian_buffed&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; [[Special:MyLanguage/Majin|Majin]]&amp;lt;/translate&amp;gt; || &amp;lt;code&amp;gt;majin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;majin_super&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;majin_ultra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;majin_evil&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;majin_kid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;janemba_imperfect&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;janemba_fat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;janemba_super&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; [[Special:MyLanguage/Frost Demon|Frost Demon]]&amp;lt;/translate&amp;gt; || &amp;lt;code&amp;gt;frostdemon&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_second&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_third&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_final&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_fifth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_fp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_mecha&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;frostdemon_metalcore&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; [[Special:MyLanguage/Bio-Android|Bio-Android]]&amp;lt;/translate&amp;gt; || &amp;lt;code&amp;gt;bioandroid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_base&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_semi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_perfect&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_ultra&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_xeno&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bioandroid_xenofp&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; [[Special:MyLanguage/Glind|Glind]]&amp;lt;/translate&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; &amp;lt;code&amp;gt;glindtrueform&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;trascended&amp;lt;/code&amp;gt; (uses the female model for female characters)&amp;lt;/translate&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
The special key &amp;lt;code&amp;gt;finalbase&amp;lt;/code&amp;gt; (used by the Ultimate stack form) switches back to the race&amp;#039;s own base model for the built-in races.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Any other key is a &amp;#039;&amp;#039;&amp;#039;custom model key&amp;#039;&amp;#039;&amp;#039; and follows the conventions below.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Geometry files == &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Custom model files are looked up at this namespace and path, for race models &amp;#039;&amp;#039;&amp;#039;and&amp;#039;&amp;#039;&amp;#039; form models:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
assets/dragonminez/geo/entity/races/&amp;lt;model_key&amp;gt;.geo.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
If the race has &amp;lt;code&amp;gt;hasGender: true&amp;lt;/code&amp;gt;, DragonMineZ appends the gender suffix instead:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
assets/dragonminez/geo/entity/races/&amp;lt;model_key&amp;gt;_male.geo.json&lt;br /&gt;
assets/dragonminez/geo/entity/races/&amp;lt;model_key&amp;gt;_female.geo.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
If the file is not found, the player falls back to the default Human model. This suffix behavior comes from &amp;lt;code&amp;gt;DMZPlayerModel#resolveCustomModel&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
Extra head parts chosen in character customization (the race&amp;#039;s &amp;lt;code&amp;gt;headBones&amp;lt;/code&amp;gt;) are taken from &amp;lt;code&amp;gt;assets/dragonminez/geo/entity/raceparts.geo.json&amp;lt;/code&amp;gt; first, then from the race model itself, so you can add your own ear or horn bones directly to your model.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Body textures == &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
For custom model keys, body textures live in a folder named after the &amp;#039;&amp;#039;&amp;#039;race key&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;assets/dragonminez/textures/entity/races/&amp;lt;race_key&amp;gt;/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Layered races&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;isLayered: true&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;character.json&amp;lt;/code&amp;gt;) use three grayscale layers per body type, tinted with the three body colors:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_&amp;lt;bodyType&amp;gt;_layer1.png&amp;lt;/code&amp;gt; (body color 1)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_&amp;lt;bodyType&amp;gt;_layer2.png&amp;lt;/code&amp;gt; (body color 2)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_&amp;lt;bodyType&amp;gt;_layer3.png&amp;lt;/code&amp;gt; (body color 3)&lt;br /&gt;
* With gender: &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_male_&amp;lt;bodyType&amp;gt;_layer1.png&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_female_&amp;lt;bodyType&amp;gt;_layer1.png&amp;lt;/code&amp;gt; and so on.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
The number of body types offered in character customization is the number of consecutive &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;[_male|_female]_&amp;lt;n&amp;gt;_layer1.png&amp;lt;/code&amp;gt; files found, starting at &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;. If the race has &amp;lt;code&amp;gt;useVanillaSkin: true&amp;lt;/code&amp;gt;, body type &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; is the player&amp;#039;s own Minecraft skin and your textures start at &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;. A missing &amp;lt;code&amp;gt;layer1&amp;lt;/code&amp;gt; for a body type falls back to body type &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Non-layered races&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;isLayered: false&amp;lt;/code&amp;gt;) use a single texture tinted with body color 1: &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;.png&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_male.png&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_female.png&amp;lt;/code&amp;gt; with gender.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Source: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/client/util/SkinGathererProvider.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;src/main/java/com/dragonminez/client/util/TextureCounter.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Face textures == &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
Layered custom races draw their own face from this folder:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
assets/dragonminez/textures/entity/races/&amp;lt;race_key&amp;gt;/faces/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
The files follow this naming pattern:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_eye_&amp;lt;eyesType&amp;gt;_0.png&amp;lt;/code&amp;gt; (white of the eye)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_eye_&amp;lt;eyesType&amp;gt;_1.png&amp;lt;/code&amp;gt; (eye color 1)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_eye_&amp;lt;eyesType&amp;gt;_2.png&amp;lt;/code&amp;gt; (eye color 2)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_eye_&amp;lt;eyesType&amp;gt;_3.png&amp;lt;/code&amp;gt; (eyebrows, hair color)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_nose_&amp;lt;noseType&amp;gt;.png&amp;lt;/code&amp;gt; (skin color)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;model_key&amp;gt;_mouth_&amp;lt;mouthType&amp;gt;.png&amp;lt;/code&amp;gt; (skin color)&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
A missing index falls back to &amp;lt;code&amp;gt;_0&amp;lt;/code&amp;gt;. The customization screen offers your own eyes, noses and mouths first (counted from the files above, starting at &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;), followed by all of the Human ones, so players can also give your race a Human face.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Non-layered custom races borrow the Human face entirely. When a race renders the player&amp;#039;s Minecraft skin (body type &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;useVanillaSkin: true&amp;lt;/code&amp;gt;), no face textures are drawn on top.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
Source: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/client/render/layer/DMZSkinLayer.java&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;renderCustomFace&amp;lt;/code&amp;gt;).&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Assigning your model key == &amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
Pick one place:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
* The race&amp;#039;s default model: &amp;lt;code&amp;gt;races/&amp;lt;race&amp;gt;/character.json&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt;&lt;br /&gt;
* A specific form: &amp;lt;code&amp;gt;races/&amp;lt;race&amp;gt;/forms/&amp;lt;group&amp;gt;.json&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;forms.&amp;lt;form&amp;gt;.customModel&amp;lt;/code&amp;gt;&lt;br /&gt;
* A stack form: &amp;lt;code&amp;gt;forms/&amp;lt;group&amp;gt;.json&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;forms.&amp;lt;form&amp;gt;.customModel&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
Then add the matching geometry and textures to your resource pack. See [[Special:MyLanguage/Custom Races|Custom Races]] and [[Special:MyLanguage/Custom Forms|Custom Forms]] for the other fields.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Transformation animations == &amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
A form&amp;#039;s &amp;lt;code&amp;gt;transformationAnimation&amp;lt;/code&amp;gt; can name any animation defined in the player animation files under &amp;lt;code&amp;gt;assets/dragonminez/animations/entity/races/&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;movement&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;combat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ki&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;transf&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;skp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evs&amp;lt;/code&amp;gt;). To add your own, ship a copy of &amp;lt;code&amp;gt;transf.animation.json&amp;lt;/code&amp;gt; in your resource pack that keeps the built-in entries and adds your animation, then reference its name from the form config.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Checklist == &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
# Set &amp;lt;code&amp;gt;customModel&amp;lt;/code&amp;gt; in the race or form config.&lt;br /&gt;
# Add &amp;lt;code&amp;gt;geo/entity/races/&amp;lt;model_key&amp;gt;.geo.json&amp;lt;/code&amp;gt; (plus &amp;lt;code&amp;gt;_male&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;_female&amp;lt;/code&amp;gt; variants if the race has gender).&lt;br /&gt;
# Add the body textures under &amp;lt;code&amp;gt;textures/entity/races/&amp;lt;race_key&amp;gt;/&amp;lt;/code&amp;gt; (and gender variants if needed).&lt;br /&gt;
# For layered races, add face textures for every eye, nose and mouth index you use.&lt;br /&gt;
# Reload resources and run &amp;lt;code&amp;gt;/dmzreload&amp;lt;/code&amp;gt;. Sometimes you will need to restart the game.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navbox Modding}}&lt;/div&gt;</summary>
		<author><name>Neb</name></author>
	</entry>
</feed>