<?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=Add-on_Development%2Fen</id>
	<title>Add-on Development/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=Add-on_Development%2Fen"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/index.php?title=Add-on_Development/en&amp;action=history"/>
	<updated>2026-10-25T18:43:50Z</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=Add-on_Development/en&amp;diff=8461&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=Add-on_Development/en&amp;diff=8461&amp;oldid=prev"/>
		<updated>2026-10-13T05:52:38Z</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;Add-on development&amp;#039;&amp;#039;&amp;#039; means writing your own Forge mod that depends on DragonMineZ and reacts to it: granting bonus TP, listening for form changes, adding new quest objective and reward types, adding buttons to the utility menu and so on. These pages are for Java developers who can run a Forge 1.20.1 development environment.&lt;br /&gt;
&lt;br /&gt;
If you only want to tune numbers or add races, forms, quests or wishes, you don&amp;#039;t need any of this: see [[Special:MyLanguage/Modding|Modding]] instead. DragonMineZ has no Java API to register new races, forms, skills or techniques; new races and forms are added through JSON config files.&lt;br /&gt;
&lt;br /&gt;
== Guides ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;dmz-cards&amp;quot;&amp;gt;&lt;br /&gt;
{{Card|Developer Scope and Prerequisites|Who these pages are for, the two ways to extend DMZ and the baseline setup.}}&lt;br /&gt;
{{Card|Add-on Getting Started|Toolchain versions, incompatible mods and what an add-on can safely rely on.}}&lt;br /&gt;
{{Card|Implementation and Events|Every DMZ event, reading player state, extension registries and networking.}}&lt;br /&gt;
{{Card|Creating a DMZ Addon|Set up the Gradle project, declare the dependency and receive your first event.}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The project ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;dmz-cards&amp;quot;&amp;gt;&lt;br /&gt;
{{Card|Contributing|Report bugs, suggest features, build the mod and open pull requests.}}&lt;br /&gt;
{{Card|Security Policy|How to report a vulnerability and how to keep a server safe.}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reading order ==&lt;br /&gt;
# [[Special:MyLanguage/Add-on Getting Started|Add-on Getting Started]]: match the toolchain and make sure your development environment builds against DMZ.&lt;br /&gt;
# [[Special:MyLanguage/Implementation and Events|Implementation and Events]]: wire up the actual hooks.&lt;br /&gt;
# [[Special:MyLanguage/Creating a DMZ Addon|Creating a DMZ Addon]]: the full Gradle and &amp;lt;code&amp;gt;mods.toml&amp;lt;/code&amp;gt; setup.&lt;br /&gt;
&lt;br /&gt;
== Ground rules for add-ons ==&lt;br /&gt;
* Hook &amp;lt;code&amp;gt;com.dragonminez.common&amp;lt;/code&amp;gt; almost exclusively: it is the shared, most stable layer. On the client, the only hooks meant for add-ons are &amp;lt;code&amp;gt;DMZClientEvent&amp;lt;/code&amp;gt; and the utility menu slots.&lt;br /&gt;
* Prefer reacting to DMZ events (changing their settable fields, or cancelling them) over changing DMZ data directly.&lt;br /&gt;
* Register your own network channel; never add packets to DMZ&amp;#039;s channel.&lt;br /&gt;
* Never trust client input for stats, unlocks, quests, wishes or progression: validate it on the server.&lt;br /&gt;
* Don&amp;#039;t depend on &amp;lt;code&amp;gt;com.dragonminez.mixin&amp;lt;/code&amp;gt; classes or on DMZ internals that the guides don&amp;#039;t mention; they can change without notice between versions.&lt;br /&gt;
* Don&amp;#039;t bundle or depend on Legendary Tooltips, Epic Fight or Better Combat: DMZ refuses to start alongside them.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{Navbox Add-ons}}&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>