<?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_Wishes%2Fen</id>
	<title>Custom Wishes/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_Wishes%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Custom_Wishes/en&amp;action=history"/>
	<updated>2026-10-25T17:37:32Z</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_Wishes/en&amp;diff=3624&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_Wishes/en&amp;diff=3624&amp;oldid=prev"/>
		<updated>2026-10-13T05:17:53Z</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 wishes&amp;#039;&amp;#039;&amp;#039; change what a dragon grants when it is summoned, entirely with JSON and no Java. Wish JSON lives in two different places, depending on what you are trying to do:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Goal !! Where !! Format&lt;br /&gt;
|-&lt;br /&gt;
| Override the wish list of a dragon ([[Special:MyLanguage/Shenron|Shenron]], [[Special:MyLanguage/Porunga|Porunga]] or an add-on dragon) on one world. || &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/wishes/&amp;lt;dragon_id&amp;gt;.json&amp;lt;/code&amp;gt; || A plain JSON &amp;#039;&amp;#039;&amp;#039;array&amp;#039;&amp;#039;&amp;#039; of wish objects.&lt;br /&gt;
|-&lt;br /&gt;
| Ship a &amp;#039;&amp;#039;&amp;#039;new dragon&amp;#039;&amp;#039;&amp;#039;, or wishes as part of a distributable pack. || An add-on pack (folder or &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt;) under &amp;lt;code&amp;gt;&amp;lt;game dir&amp;gt;/dragonballs/&amp;lt;/code&amp;gt; || A JSON &amp;#039;&amp;#039;&amp;#039;object&amp;#039;&amp;#039;&amp;#039; with &amp;lt;code&amp;gt;dragon&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wishes&amp;lt;/code&amp;gt; fields.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Both formats use the same wish objects underneath; only the outer wrapper differs. Standard datapacks are &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; read for dragons or wishes: use an add-on pack instead. For how players summon dragons and pick wishes, see [[Special:MyLanguage/Dragons and Wishes|Dragons and Wishes]].&lt;br /&gt;
&lt;br /&gt;
== How the wish lists are merged ==&lt;br /&gt;
# Wish lists from add-on packs are loaded first (one list per dragon).&lt;br /&gt;
# Every known dragon without a list gets an empty one.&lt;br /&gt;
# Each file in &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/wishes/&amp;lt;/code&amp;gt; then &amp;#039;&amp;#039;&amp;#039;replaces&amp;#039;&amp;#039;&amp;#039; the whole list of the dragon named by its filename.&lt;br /&gt;
&lt;br /&gt;
== Base fields of every wish ==&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;type&amp;quot;: &amp;quot;attributes&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.attributes.name&amp;quot;,&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.attributes.desc&amp;quot;,&lt;br /&gt;
  &amp;quot;amount&amp;quot;: 100&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&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;type&amp;lt;/code&amp;gt; || String || One of the [[Special:MyLanguage/Custom Wishes#Wish types|wish types]] below.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; || String || Translation key for the wish&amp;#039;s display name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;description&amp;lt;/code&amp;gt; || String || Translation key for the wish&amp;#039;s description.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repeatable&amp;lt;/code&amp;gt; || Boolean || Optional. Dragons that grant several wishes (Porunga) let a player pick the same wish more than once per summon. Set it to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; to allow the wish only once. When it is absent, the wish is repeatable.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Source: &amp;lt;code&amp;gt;Wish.java&amp;lt;/code&amp;gt; (base class), &amp;lt;code&amp;gt;WishTypeAdapterFactory.java&amp;lt;/code&amp;gt; (mapping from type to class).&lt;br /&gt;
&lt;br /&gt;
== Wish types ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; !! Extra fields !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;item_list_wish&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;: list of item objects || Grants one or more items described as typed item objects (see below). Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;item_list_wish&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.senzu.name&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.senzu.desc&amp;quot;, &amp;quot;items&amp;quot;: [{ &amp;quot;itemType&amp;quot;: &amp;quot;generic_item&amp;quot;, &amp;quot;itemId&amp;quot;: &amp;quot;dragonminez:senzu_bean&amp;quot;, &amp;quot;count&amp;quot;: 16 }] }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;item&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;itemId&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; || Grants one item stack. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;item&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;itemId&amp;quot;: &amp;quot;dragonminez:senzu_bean&amp;quot;, &amp;quot;count&amp;quot;: 16 }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;multi_wish&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt;: list of &amp;lt;code&amp;gt;{ &amp;quot;a&amp;quot;: &amp;quot;&amp;lt;item_id&amp;gt;&amp;quot;, &amp;quot;b&amp;quot;: &amp;lt;count&amp;gt; }&amp;lt;/code&amp;gt; || Grants several item stacks. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;multi_wish&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;items&amp;quot;: [{ &amp;quot;a&amp;quot;: &amp;quot;dragonminez:kikono_shard&amp;quot;, &amp;quot;b&amp;quot;: 32 }, { &amp;quot;a&amp;quot;: &amp;quot;minecraft:iron_ingot&amp;quot;, &amp;quot;b&amp;quot;: 64 }] }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attributes&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; || Grants &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; Attributes, split into Attribute Points and the TP those points would cost the player right now (see [[Special:MyLanguage/Stats and Attributes|Stats and Attributes]]). The default &amp;#039;&amp;#039;&amp;#039;Power Boost&amp;#039;&amp;#039;&amp;#039; wishes use it. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;attributes&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;amount&amp;quot;: 100 }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;attributepoints&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; || Grants &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; Attribute Points only. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;attributepoints&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;amount&amp;quot;: 50 }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tps&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;amount&amp;lt;/code&amp;gt; || Grants a fixed amount of Training Points. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;tps&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;amount&amp;quot;: 5000 }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;skill&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;level&amp;lt;/code&amp;gt; || Raises a skill to at least &amp;lt;code&amp;gt;level&amp;lt;/code&amp;gt;, for example &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;skill&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;skill&amp;quot;: &amp;quot;kaioken&amp;quot;, &amp;quot;level&amp;quot;: 2 }&amp;lt;/code&amp;gt;. Ignored if the player is already at that level.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;commands&amp;lt;/code&amp;gt;: string array, where &amp;lt;code&amp;gt;%player%&amp;lt;/code&amp;gt; is replaced with the player&amp;#039;s name || Runs commands. Example: &amp;lt;code&amp;gt;{ &amp;quot;type&amp;quot;: &amp;quot;command&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;...&amp;quot;, &amp;quot;commands&amp;quot;: [&amp;quot;effect give %player% minecraft:regeneration 60 1&amp;quot;] }&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;revive&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;maxTargets&amp;lt;/code&amp;gt; (default &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;) || Truly revives up to &amp;lt;code&amp;gt;maxTargets&amp;lt;/code&amp;gt; dead players, chosen in the wish screen. See [[Special:MyLanguage/Otherworld|Otherworld]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;passivereset&amp;lt;/code&amp;gt; || None || Resets racial passive skill bonuses (Zenkai, Assimilation and Absorption).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;recustomize&amp;lt;/code&amp;gt; || None || Opens the character customization screen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;relocatestats&amp;lt;/code&amp;gt; || None || Lets the player redistribute their spent stat points.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;changedifficulty&amp;lt;/code&amp;gt; || None || Lets the player pick their story difficulty again.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;resetstory&amp;lt;/code&amp;gt; || None || Resets all story quest progress.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;item_list_wish&amp;lt;/code&amp;gt; is what the default wishes use. Each entry of &amp;lt;code&amp;gt;items&amp;lt;/code&amp;gt; is a typed item object, so a wish can also grant enchanted gear, potions or trimmed armor:&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;type&amp;quot;: &amp;quot;item_list_wish&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.strongest.name&amp;quot;,&lt;br /&gt;
  &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.strongest.desc&amp;quot;,&lt;br /&gt;
  &amp;quot;items&amp;quot;: [&lt;br /&gt;
    { &amp;quot;itemType&amp;quot;: &amp;quot;enchanted_item&amp;quot;, &amp;quot;itemId&amp;quot;: &amp;quot;minecraft:diamond_sword&amp;quot;, &amp;quot;count&amp;quot;: 1, &amp;quot;enchantments&amp;quot;: { &amp;quot;minecraft:sharpness&amp;quot;: 5 } },&lt;br /&gt;
    { &amp;quot;itemType&amp;quot;: &amp;quot;potion&amp;quot;, &amp;quot;itemId&amp;quot;: &amp;quot;minecraft:potion&amp;quot;, &amp;quot;count&amp;quot;: 1, &amp;quot;potion&amp;quot;: &amp;quot;minecraft:strong_healing&amp;quot; }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fields of each item object (&amp;lt;code&amp;gt;generic_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enchanted_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enchanted_book&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;potion&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;splash_potion&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lingering_potion&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tipped_arrow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;trimmed_armor&amp;lt;/code&amp;gt;) are listed on [[Special:MyLanguage/Custom Quests#Item objects|Custom Quests]].&lt;br /&gt;
&lt;br /&gt;
Source: the classes under &amp;lt;code&amp;gt;src/main/java/com/dragonminez/common/wish/wishes/&amp;lt;/code&amp;gt;, and the dispatch table in &amp;lt;code&amp;gt;WishTypeAdapterFactory.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Overriding a dragon&amp;#039;s wishes ==&lt;br /&gt;
Drop a file named after the dragon&amp;#039;s id in &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/wishes/&amp;lt;/code&amp;gt;, for example &amp;lt;code&amp;gt;shenron.json&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;porunga.json&amp;lt;/code&amp;gt;. It is a &amp;#039;&amp;#039;&amp;#039;plain array&amp;#039;&amp;#039;&amp;#039;, with no wrapper object:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;item_list_wish&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.senzu.name&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.senzu.desc&amp;quot;,&lt;br /&gt;
    &amp;quot;items&amp;quot;: [ { &amp;quot;itemType&amp;quot;: &amp;quot;generic_item&amp;quot;, &amp;quot;itemId&amp;quot;: &amp;quot;dragonminez:senzu_bean&amp;quot;, &amp;quot;count&amp;quot;: 16 } ]&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;attributes&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.attributes.name&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.attributes.desc&amp;quot;,&lt;br /&gt;
    &amp;quot;amount&amp;quot;: 100&lt;br /&gt;
  },&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;revive&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;wish.shenron.revive.name&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;wish.shenron.revive.desc&amp;quot;,&lt;br /&gt;
    &amp;quot;maxTargets&amp;quot;: 3&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|type=warning|title=The file replaces the whole list|text=This file &amp;#039;&amp;#039;&amp;#039;completely replaces&amp;#039;&amp;#039;&amp;#039; that dragon&amp;#039;s wish list; it is not added on top of the add-on pack wishes. If you only want to add one wish and keep the rest, copy the dragon&amp;#039;s full existing wish list first and then add yours to it.}}&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;code&amp;gt;shenron.json&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;porunga.json&amp;lt;/code&amp;gt; don&amp;#039;t exist yet, DragonMineZ creates them with the default wish list the first time wishes load, so you always have a working example to start from. Any other filename you create here sets the wish list of that dragon id; it only shows up if a dragon with that id exists (see [[Special:MyLanguage/Custom Wishes#Adding a new dragon|Adding a new dragon]]).&lt;br /&gt;
&lt;br /&gt;
Every wish is checked when the file loads: an unknown &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; or an unknown key is reported in the JSON load report. A file that fails to parse (broken JSON, an invalid item object) is skipped as a whole and reported, so the dragon keeps its add-on pack wishes until you fix it.&lt;br /&gt;
&lt;br /&gt;
Source: &amp;lt;code&amp;gt;WishManager.loadWishes()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;loadWishConfig()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Adding a new dragon ==&lt;br /&gt;
A wish override file alone only works for a dragon id that already has a &amp;#039;&amp;#039;&amp;#039;dragon definition&amp;#039;&amp;#039;&amp;#039; (entity, ball set and summon rules). A new dragon, ball set or radar comes from an add-on pack under &amp;lt;code&amp;gt;&amp;lt;game dir&amp;gt;/dragonballs/&amp;lt;/code&amp;gt;: a folder or a &amp;lt;code&amp;gt;.zip&amp;lt;/code&amp;gt; file with this layout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pack_name&amp;gt;/&lt;br /&gt;
  definitions/&lt;br /&gt;
    dragon.json&lt;br /&gt;
    ballset.json&lt;br /&gt;
    radar.json&lt;br /&gt;
    wishes.json&lt;br /&gt;
  assets/&lt;br /&gt;
    dragon.json&lt;br /&gt;
    ballset.json&lt;br /&gt;
    radar.json&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Packs are loaded in alphabetical order and merge over the built-in definitions by id: a pack whose &amp;lt;code&amp;gt;dragon.json&amp;lt;/code&amp;gt; uses an existing dragon id overrides that dragon&amp;#039;s definition. Dragons, ball sets and radars register their entity, blocks and items when the game starts, so &amp;#039;&amp;#039;&amp;#039;new ones need a game restart&amp;#039;&amp;#039;&amp;#039;. See [[Special:MyLanguage/Locating Specific Folders|Locating Specific Folders]] for the full folder map.&lt;br /&gt;
&lt;br /&gt;
=== Dragon definition ===&lt;br /&gt;
&amp;lt;code&amp;gt;definitions/dragon.json&amp;lt;/code&amp;gt;:&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;id&amp;quot;: &amp;quot;my_dragon&amp;quot;,&lt;br /&gt;
  &amp;quot;entity_registry_name&amp;quot;: &amp;quot;my_dragon&amp;quot;,&lt;br /&gt;
  &amp;quot;entity_width&amp;quot;: 3.0,&lt;br /&gt;
  &amp;quot;entity_height&amp;quot;: 17.0,&lt;br /&gt;
  &amp;quot;dimensions&amp;quot;: [&amp;quot;minecraft:overworld&amp;quot;],&lt;br /&gt;
  &amp;quot;ball_set&amp;quot;: &amp;quot;my_ball_set&amp;quot;,&lt;br /&gt;
  &amp;quot;wish_screen_id&amp;quot;: &amp;quot;my_dragon&amp;quot;,&lt;br /&gt;
  &amp;quot;wish_count&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;asset_definition&amp;quot;: &amp;quot;my_dragon&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! What it does&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; || Dragon id.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entity_registry_name&amp;lt;/code&amp;gt; || Registry name of the dragon entity (&amp;lt;code&amp;gt;dragonminez:&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt;). Keep it equal to &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;: summoning looks the entity up by the dragon id.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entity_width&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;entity_height&amp;lt;/code&amp;gt; || Entity size.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dimensions&amp;lt;/code&amp;gt; || Dimensions the dragon can be summoned in.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ball_set&amp;lt;/code&amp;gt; || Id of the ball set that summons it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wish_screen_id&amp;lt;/code&amp;gt; || Id of the wish list the dragon offers (the &amp;lt;code&amp;gt;dragon&amp;lt;/code&amp;gt; value in &amp;lt;code&amp;gt;wishes.json&amp;lt;/code&amp;gt; and the filename of a per-world override).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;wish_count&amp;lt;/code&amp;gt; || How many wishes are granted per summon.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;asset_definition&amp;lt;/code&amp;gt; || Optional id of an &amp;lt;code&amp;gt;assets/dragon.json&amp;lt;/code&amp;gt; entry (&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;renderer_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;texture&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;animation&amp;lt;/code&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Ball set definition ===&lt;br /&gt;
&amp;lt;code&amp;gt;definitions/ballset.json&amp;lt;/code&amp;gt; takes these keys: &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dimensions&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;copies&amp;lt;/code&amp;gt; (default &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;spawn_range&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;summon_radius&amp;lt;/code&amp;gt; (how close the other balls must be to the one you right-click), &amp;lt;code&amp;gt;blocks&amp;lt;/code&amp;gt; (star number to block registry name), &amp;lt;code&amp;gt;asset_definition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;display_name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;natural_spawn&amp;lt;/code&amp;gt; (optional, default &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;).&lt;br /&gt;
* A set is complete when &amp;#039;&amp;#039;&amp;#039;every star listed in &amp;lt;code&amp;gt;blocks&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039; is placed within &amp;lt;code&amp;gt;summon_radius&amp;lt;/code&amp;gt;, so a set doesn&amp;#039;t have to have seven balls.&lt;br /&gt;
* With &amp;lt;code&amp;gt;&amp;quot;natural_spawn&amp;quot;: false&amp;lt;/code&amp;gt;, the set&amp;#039;s balls are never scattered around the world (not at world start, not after a wish, not by &amp;lt;code&amp;gt;/dmzdragonballs&amp;lt;/code&amp;gt;): they only exist if you hand them out yourself, for example as quest or world boss rewards.&lt;br /&gt;
&lt;br /&gt;
=== Radar definition ===&lt;br /&gt;
&amp;lt;code&amp;gt;definitions/radar.json&amp;lt;/code&amp;gt; takes these keys: &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;item_registry_name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dimensions&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ball_set&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tooltip_key&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ranges&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;recipe_definition&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chip_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cpu_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chip_model_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cpu_model_item&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;asset_definition&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;display_name&amp;lt;/code&amp;gt;. A radar with &amp;lt;code&amp;gt;chip_item&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cpu_item&amp;lt;/code&amp;gt; and no &amp;lt;code&amp;gt;recipe_definition&amp;lt;/code&amp;gt; gets a crafting recipe from those two items. See [[Special:MyLanguage/Dragon Radar|Dragon Radar]] for the built-in radar.&lt;br /&gt;
&lt;br /&gt;
=== Pack wish list ===&lt;br /&gt;
&amp;lt;code&amp;gt;definitions/wishes.json&amp;lt;/code&amp;gt; uses a wrapper object. This is the add-on pack format, different from the per-world array format above:&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;dragon&amp;quot;: &amp;quot;my_dragon&amp;quot;,&lt;br /&gt;
  &amp;quot;wishes&amp;quot;: [&lt;br /&gt;
    { &amp;quot;type&amp;quot;: &amp;quot;tps&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;wish.my_dragon.tps.name&amp;quot;, &amp;quot;description&amp;quot;: &amp;quot;wish.my_dragon.tps.desc&amp;quot;, &amp;quot;amount&amp;quot;: 5000 }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Every key in these files is checked against the lists above, and unknown keys are reported in the JSON load report.&lt;br /&gt;
&lt;br /&gt;
Source: &amp;lt;code&amp;gt;DragonBallPackManager.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DragonDefinition.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DragonBallSetDefinition.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DragonRadarDefinition.java&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DragonWishRegistry.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Translation keys ==&lt;br /&gt;
The convention is &amp;lt;code&amp;gt;wish.&amp;lt;dragon_id&amp;gt;.&amp;lt;wish_key&amp;gt;.name&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;wish.&amp;lt;dragon_id&amp;gt;.&amp;lt;wish_key&amp;gt;.desc&amp;lt;/code&amp;gt;, for example &amp;lt;code&amp;gt;wish.shenron.senzu.name&amp;lt;/code&amp;gt;. Add these keys 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 wish override files under &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/wishes/&amp;lt;/code&amp;gt;, or your add-on pack under &amp;lt;code&amp;gt;&amp;lt;game dir&amp;gt;/dragonballs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Validate the JSON syntax (see [[Special:MyLanguage/How to JSON|How to JSON]]).&lt;br /&gt;
# For per-world overrides, run &amp;lt;code&amp;gt;/dmzreload wishes&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;/dmzreload all&amp;lt;/code&amp;gt;); see [[Special:MyLanguage/Reloading and Updating Changes|Reloading and Updating Changes]]. Wish lists inside add-on packs are read again by the vanilla &amp;lt;code&amp;gt;/reload&amp;lt;/code&amp;gt;; run &amp;lt;code&amp;gt;/dmzreload wishes&amp;lt;/code&amp;gt; afterwards so the per-world overrides are applied on top again. New dragons, ball sets and radars need a full restart.&lt;br /&gt;
# Summon the dragon in game and check that the wish list matches what you expect.&lt;br /&gt;
&lt;br /&gt;
{{Navbox Modding}}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>