<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://heroes.thelazy.net//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tapani</id>
	<title>Heroes 3 wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://heroes.thelazy.net//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tapani"/>
	<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php/Special:Contributions/Tapani"/>
	<updated>2026-05-04T13:22:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Interference&amp;diff=189687</id>
		<title>Interference</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Interference&amp;diff=189687"/>
		<updated>2025-11-25T07:42:21Z</updated>

		<summary type="html">&lt;p&gt;Tapani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inhota}}&lt;br /&gt;
{{Secondary skills}}&lt;br /&gt;
{{Secondary skill&lt;br /&gt;
 | B_effect = lowers the power skill of the enemy hero by 10% in combat.&lt;br /&gt;
 | A_effect = lowers the power skill of the enemy hero by {{gt|20%}} in combat.&lt;br /&gt;
 | E_effect = lowers the power skill of the enemy hero by {{gt|30%}} in combat.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Classes unable to learn {{PAGENAME}}:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(They can only acquire the skill from [[Scholar (Adventure Map)|Scholar]]s, [[Witch Hut]]s, [[Seer&#039;s Hut]]s, [[Event]]s or [[Pandora&#039;s Box]]es).&#039;&#039;&lt;br /&gt;
* {{Cl|Cleric}}s&lt;br /&gt;
* {{Cl|Druid}}s&lt;br /&gt;
* {{Cl|Wizard}}s&lt;br /&gt;
* {{Cl|Heretic}}s&lt;br /&gt;
* {{Cl|Necromancer}}s&lt;br /&gt;
* {{Cl|Warlock}}s&lt;br /&gt;
* {{Cl|Witch}}s&lt;br /&gt;
* {{Cl|Elementalist}}s&lt;br /&gt;
* {{Cl|Artificer}}s&lt;br /&gt;
Out of all the magic hero classes, only {{Cl|Battle Mage}}s and {{Cl|Navigator}}s can learn Interference, but the probability of learning it is still very [[#Chance to get|low]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heroes with Interference as a starting skill:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* {{H2|Ufretin|Ranger|image=Ufretin (HotA)}}&lt;br /&gt;
* {{H2|Clancy|Ranger}}&lt;br /&gt;
* {{H2|Fafner|Alchemist}}&lt;br /&gt;
* {{H2|Ignatius|Demoniac}}&lt;br /&gt;
* {{H2|Straker|Death Knight}}&lt;br /&gt;
* {{H2|Ajit|Overlord|image=Ajit (HotA)}}&lt;br /&gt;
* {{H2|Krellion|Barbarian}}&lt;br /&gt;
* {{H2|Saurug|Battle Mage}}&lt;br /&gt;
* {{H2|Bron|Beastmaster|image=Bron (HotA)}}&lt;br /&gt;
* {{H2|Zilare|Navigator}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heroes with {{PAGENAME}} as a specialty and a starting skill&#039;&#039;&#039; &#039;&#039;(5% bonus per level to the skill)&#039;&#039;&#039;&#039;&#039;:&#039;&#039;&#039;&lt;br /&gt;
* {{H2|Giselle|Ranger}} (Advanced)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Related factors:&#039;&#039;&#039;&lt;br /&gt;
* {{an2|Charm of Eclipse}}: reduces enemy&#039;s Spell Power by 10%&lt;br /&gt;
* {{an2|Seal of Sunset}}: reduces enemy&#039;s Spell Power by 10%&lt;br /&gt;
* {{an2|Plate of Dying Light}}: reduces enemy&#039;s Spell Power by 25%&lt;br /&gt;
&lt;br /&gt;
==Chance to get==&lt;br /&gt;
&#039;&#039;Out of total (112 + Interference chance). Banned skills change the probability.&#039;&#039;&lt;br /&gt;
{{ZET SEC SKILL CHANCE TABLE| 5| 0 (impossible)| 9 (highest)| 0 (impossible)| 5| 0 (impossible)| 6| 0 (impossible)| 5| 0 (impossible)| 6| 0 (impossible)| 6| 1| 5| 0 (impossible)| 2| 0 (impossible)| 3| 1| 4| 0 (impossible)}}&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot;&amp;gt;&lt;br /&gt;
Artifacts Interference HOTA PR.png|Early [[Interference]] artifacts and  icons&amp;lt;br&amp;gt;(art by [[Agar (Artist)|Agar]])&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
{{fanopinion|Inteference is only useful on heroes aiming to face opposing heroes. Even then its use is limited to shortening the duration or damage of opponent&#039;s spells, reducing the amount of hit points they might resurrect, or the number of elementals they might summon.&lt;br /&gt;
&lt;br /&gt;
In quick skirmish games with small armies, where spell damage or elementals matter, it might be useful, but in other formats it is mostly a wasted slot.&lt;br /&gt;
&lt;br /&gt;
For other, non-main heroes it is completely useless.}} &amp;lt;!-- end of opinion --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{secondary skill &#039;see also&#039;}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Secondary skills]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=189503</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=189503"/>
		<updated>2025-11-24T17:39:31Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Heroes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Non-Hota hero data is stored in h3hota HD.exe as two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game, how secondary skills work is only determined by the .exe file (i.e. heroes3.exe). &lt;br /&gt;
In HotA, the skills are both in the h3hota.exe and in HotA.dll files. The former is typically used in single player games, and the latter for multiplayer. When starting a multiplayer game the game loads the HotA DLL, and overrides parts of the hota EXE.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify how secondary skills in multiplayer HotA.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, since the text help is in different files, but you will get what you edited (check under kingdom income for example).&lt;br /&gt;
&lt;br /&gt;
=== Mysticism ===&lt;br /&gt;
&lt;br /&gt;
The percentage of maximum mana regenerated with Mysticism is located at 0x001EC46C in HotA.dll (version 1.7.3). It is stored as four IEEE 32-bit floating point numbers, in little endian format.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 CD CC CC 3D CD CC 4C 3E 9A 99 99 3E&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
where the first four bytes corresponds to the percentage gained without Mysticism, the next four bytes for basic level followed by advanced and expert.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 == 0.0&amp;lt;/code&amp;gt; (0%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC CC 3D == 0.1&amp;lt;/code&amp;gt; (10%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC 4C 3E == 0.2&amp;lt;/code&amp;gt; (20%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;9A 99 99 3E == 0.3&amp;lt;/code&amp;gt; (30%)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fixed number of points are located also in HotA.dll, offsets hota.dll, basic: 0x19a15E (05), advanced: 0x19a16a (0A), expert: 0x19a174 (0F).&amp;lt;br&amp;gt;&lt;br /&gt;
(Shoutout to [[User:Csaros|Csaros]] for finding some of these offsets).&lt;br /&gt;
&lt;br /&gt;
Like with Estates, the right click help will still state 10%, 20% or 30% etc, but the actual mana regeneration depends on the numbers encoded in the DLL.&lt;br /&gt;
&lt;br /&gt;
=== Pathfinding ===&lt;br /&gt;
&lt;br /&gt;
Pathfinding is spread out over several parts of the code. The part that allows for spending less than 100 MP per terrain is mostly in HotA.dll:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! File offset !! opcodes !! instruction !! comment&lt;br /&gt;
|-&lt;br /&gt;
|0x019a22b||	c7 40 04 5f 00 00 00 	|| mov    DWORD PTR [eax+0x4],0x5f|| ; 95 - dirt&lt;br /&gt;
|-&lt;br /&gt;
|0x019a232||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a237||	c7 40 08 5a 00 00 00 	|| mov    DWORD PTR [eax+0x8],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a23e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a243||	c7 40 0c 55 00 00 00 	|| mov    DWORD PTR [eax+0xc],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24f||	c7 40 14 7d 00 00 00 	|| mov    DWORD PTR [eax+0x14],0x7d|| ; 125 - sand&lt;br /&gt;
|-&lt;br /&gt;
|0x019a256||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a25b||	c7 40 18 64 00 00 00 	|| mov    DWORD PTR [eax+0x18],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a262||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a267||	c7 40 1c 55 00 00 00 	|| mov    DWORD PTR [eax+0x1c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a26e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a273||	c7 40 24 5f 00 00 00 	|| mov    DWORD PTR [eax+0x24],0x5f|| ; 95 - grass&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27f||	c7 40 28 5a 00 00 00 	|| mov    DWORD PTR [eax+0x28],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a286||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a28b||	c7 40 2c 55 00 00 00 	|| mov    DWORD PTR [eax+0x2c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a292||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a297||	c7 40 34 7d 00 00 00 	|| mov    DWORD PTR [eax+0x34],0x7d|| ; 125 - snow&lt;br /&gt;
|-&lt;br /&gt;
|0x019a29e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2a3||	c7 40 38 64 00 00 00 	|| mov    DWORD PTR [eax+0x38],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2aa||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2af||	c7 40 3c 55 00 00 00 	|| mov    DWORD PTR [eax+0x3c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2b6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2bb||	c7 40 44 96 00 00 00 	|| mov    DWORD PTR [eax+0x44],0x96|| ; 150 - swamp&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c7||	c7 40 48 7d 00 00 00 	|| mov    DWORD PTR [eax+0x48],0x7d|| ; 125&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2ce||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2d3||	c7 40 4c 64 00 00 00 	|| mov    DWORD PTR [eax+0x4c],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2da||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2df||	c7 40 54 64 00 00 00 	|| mov    DWORD PTR [eax+0x54],0x64|| ; 100 - rough&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2e6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2eb||	c7 40 58 5a 00 00 00 	|| mov    DWORD PTR [eax+0x58],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f7||	68 f1 55 30 4f       	|| push   0x4f3055f1||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2fc||	c7 40 5c 55 00 00 00 	|| mov    DWORD PTR [eax+0x5c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a303||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a308||	c7 40 64 5f 00 00 00 	|| mov    DWORD PTR [eax+0x64],0x5f|| ; 95 - subterranean&lt;br /&gt;
|-&lt;br /&gt;
|0x019a30f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a314||	c7 40 68 5a 00 00 00 	|| mov    DWORD PTR [eax+0x68],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a31b||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a320||	c7 40 6c 55 00 00 00 	|| mov    DWORD PTR [eax+0x6c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a327||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a32c||	c7 40 74 5f 00 00 00 	|| mov    DWORD PTR [eax+0x74],0x5f|| ; 95 - lava&lt;br /&gt;
|-&lt;br /&gt;
|0x019a333||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a338||	c7 40 78 5a 00 00 00 	|| mov    DWORD PTR [eax+0x78],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a33f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a344||	c7 40 7c 55 00 00 00 	|| mov    DWORD PTR [eax+0x7c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
To change the pathfinding minimum movement, one has to modify the values for each terrain, for each level of the skill.&lt;br /&gt;
The new terrains introduced by HotA, wasteland and highlands, are not affected by this. Their movement costs are stored as plain ASCII text in HotA.dat.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188237</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188237"/>
		<updated>2025-11-05T15:14:25Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Add pointer on how to edit movement costs for highlands and wastelands&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game, how secondary skills work is only determined by the .exe file (i.e. heroes3.exe). &lt;br /&gt;
In HotA, the skills are both in the h3hota.exe and in HotA.dll files. The former is typically used in single player games, and the latter for multiplayer. When starting a multiplayer game the game loads the HotA DLL, and overrides parts of the hota EXE.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify how secondary skills in multiplayer HotA.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, since the text help is in different files, but you will get what you edited (check under kingdom income for example).&lt;br /&gt;
&lt;br /&gt;
=== Mysticism ===&lt;br /&gt;
&lt;br /&gt;
The percentage of maximum mana regenerated with Mysticism is located at 0x001EC46C in HotA.dll (version 1.7.3). It is stored as four IEEE 32-bit floating point numbers, in little endian format.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 CD CC CC 3D CD CC 4C 3E 9A 99 99 3E&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
where the first four bytes corresponds to the percentage gained without Mysticism, the next four bytes for basic level followed by advanced and expert.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 == 0.0&amp;lt;/code&amp;gt; (0%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC CC 3D == 0.1&amp;lt;/code&amp;gt; (10%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC 4C 3E == 0.2&amp;lt;/code&amp;gt; (20%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;9A 99 99 3E == 0.3&amp;lt;/code&amp;gt; (30%)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fixed number of points are located also in HotA.dll, offsets hota.dll, basic: 0x19a15E (05), advanced: 0x19a16a (0A), expert: 0x19a174 (0F).&amp;lt;br&amp;gt;&lt;br /&gt;
(Shoutout to [[User:Csaros|Csaros]] for finding some of these offsets).&lt;br /&gt;
&lt;br /&gt;
Like with Estates, the right click help will still state 10%, 20% or 30% etc, but the actual mana regeneration depends on the numbers encoded in the DLL.&lt;br /&gt;
&lt;br /&gt;
=== Pathfinding ===&lt;br /&gt;
&lt;br /&gt;
Pathfinding is spread out over several parts of the code. The part that allows for spending less than 100 MP per terrain is mostly in HotA.dll:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! File offset !! opcodes !! instruction !! comment&lt;br /&gt;
|-&lt;br /&gt;
|0x019a22b||	c7 40 04 5f 00 00 00 	|| mov    DWORD PTR [eax+0x4],0x5f|| ; 95 - dirt&lt;br /&gt;
|-&lt;br /&gt;
|0x019a232||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a237||	c7 40 08 5a 00 00 00 	|| mov    DWORD PTR [eax+0x8],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a23e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a243||	c7 40 0c 55 00 00 00 	|| mov    DWORD PTR [eax+0xc],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24f||	c7 40 14 7d 00 00 00 	|| mov    DWORD PTR [eax+0x14],0x7d|| ; 125 - sand&lt;br /&gt;
|-&lt;br /&gt;
|0x019a256||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a25b||	c7 40 18 64 00 00 00 	|| mov    DWORD PTR [eax+0x18],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a262||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a267||	c7 40 1c 55 00 00 00 	|| mov    DWORD PTR [eax+0x1c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a26e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a273||	c7 40 24 5f 00 00 00 	|| mov    DWORD PTR [eax+0x24],0x5f|| ; 95 - grass&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27f||	c7 40 28 5a 00 00 00 	|| mov    DWORD PTR [eax+0x28],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a286||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a28b||	c7 40 2c 55 00 00 00 	|| mov    DWORD PTR [eax+0x2c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a292||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a297||	c7 40 34 7d 00 00 00 	|| mov    DWORD PTR [eax+0x34],0x7d|| ; 125 - snow&lt;br /&gt;
|-&lt;br /&gt;
|0x019a29e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2a3||	c7 40 38 64 00 00 00 	|| mov    DWORD PTR [eax+0x38],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2aa||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2af||	c7 40 3c 55 00 00 00 	|| mov    DWORD PTR [eax+0x3c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2b6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2bb||	c7 40 44 96 00 00 00 	|| mov    DWORD PTR [eax+0x44],0x96|| ; 150 - swamp&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c7||	c7 40 48 7d 00 00 00 	|| mov    DWORD PTR [eax+0x48],0x7d|| ; 125&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2ce||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2d3||	c7 40 4c 64 00 00 00 	|| mov    DWORD PTR [eax+0x4c],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2da||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2df||	c7 40 54 64 00 00 00 	|| mov    DWORD PTR [eax+0x54],0x64|| ; 100 - rough&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2e6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2eb||	c7 40 58 5a 00 00 00 	|| mov    DWORD PTR [eax+0x58],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f7||	68 f1 55 30 4f       	|| push   0x4f3055f1||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2fc||	c7 40 5c 55 00 00 00 	|| mov    DWORD PTR [eax+0x5c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a303||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a308||	c7 40 64 5f 00 00 00 	|| mov    DWORD PTR [eax+0x64],0x5f|| ; 95 - subterranean&lt;br /&gt;
|-&lt;br /&gt;
|0x019a30f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a314||	c7 40 68 5a 00 00 00 	|| mov    DWORD PTR [eax+0x68],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a31b||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a320||	c7 40 6c 55 00 00 00 	|| mov    DWORD PTR [eax+0x6c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a327||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a32c||	c7 40 74 5f 00 00 00 	|| mov    DWORD PTR [eax+0x74],0x5f|| ; 95 - lava&lt;br /&gt;
|-&lt;br /&gt;
|0x019a333||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a338||	c7 40 78 5a 00 00 00 	|| mov    DWORD PTR [eax+0x78],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a33f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a344||	c7 40 7c 55 00 00 00 	|| mov    DWORD PTR [eax+0x7c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
To change the pathfinding minimum movement, one has to modify the values for each terrain, for each level of the skill.&lt;br /&gt;
The new terrains introduced by HotA, wasteland and highlands, are not affected by this. Their movement costs are stored as plain ASCII text in HotA.dat.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188092</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188092"/>
		<updated>2025-11-04T11:15:25Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Add pathfinding with movement penalty table/code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game, how secondary skills work is only determined by the .exe file (i.e. heroes3.exe). &lt;br /&gt;
In HotA, the skills are both in the h3hota.exe and in HotA.dll files. The former is typically used in single player games, and the latter for multiplayer. When starting a multiplayer game the game loads the HotA DLL, and overrides parts of the hota EXE.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify how secondary skills in multiplayer HotA.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, since the text help is in different files, but you will get what you edited (check under kingdom income for example).&lt;br /&gt;
&lt;br /&gt;
=== Mysticism ===&lt;br /&gt;
&lt;br /&gt;
The percentage of maximum mana regenerated with Mysticism is located at 0x001EC46C in HotA.dll (version 1.7.3). It is stored as four IEEE 32-bit floating point numbers, in little endian format.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 CD CC CC 3D CD CC 4C 3E 9A 99 99 3E&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
where the first four bytes corresponds to the percentage gained without Mysticism, the next four bytes for basic level followed by advanced and expert.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 == 0.0&amp;lt;/code&amp;gt; (0%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC CC 3D == 0.1&amp;lt;/code&amp;gt; (10%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC 4C 3E == 0.2&amp;lt;/code&amp;gt; (20%)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;9A 99 99 3E == 0.3&amp;lt;/code&amp;gt; (30%)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fixed number of points are located also in HotA.dll, offsets hota.dll, basic: 0x19a15E (05), advanced: 0x19a16a (0A), expert: 0x19a174 (0F).&amp;lt;br&amp;gt;&lt;br /&gt;
(Shoutout to [[User:Csaros|Csaros]] for finding some of these offsets).&lt;br /&gt;
&lt;br /&gt;
Like with Estates, the right click help will still state 10%, 20% or 30% etc, but the actual mana regeneration depends on the numbers encoded in the DLL.&lt;br /&gt;
&lt;br /&gt;
=== Pathfinding ===&lt;br /&gt;
&lt;br /&gt;
Pathfinding is spread out over several parts of the code. The part that allows for spending less than 100 MP per terrain is mostly in HotA.dll:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! File offset !! opcodes !! instruction !! comment&lt;br /&gt;
|-&lt;br /&gt;
|0x019a22b||	c7 40 04 5f 00 00 00 	|| mov    DWORD PTR [eax+0x4],0x5f|| ; 95 - dirt&lt;br /&gt;
|-&lt;br /&gt;
|0x019a232||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a237||	c7 40 08 5a 00 00 00 	|| mov    DWORD PTR [eax+0x8],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a23e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a243||	c7 40 0c 55 00 00 00 	|| mov    DWORD PTR [eax+0xc],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a24f||	c7 40 14 7d 00 00 00 	|| mov    DWORD PTR [eax+0x14],0x7d|| ; 125 - sand&lt;br /&gt;
|-&lt;br /&gt;
|0x019a256||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a25b||	c7 40 18 64 00 00 00 	|| mov    DWORD PTR [eax+0x18],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a262||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a267||	c7 40 1c 55 00 00 00 	|| mov    DWORD PTR [eax+0x1c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a26e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a273||	c7 40 24 5f 00 00 00 	|| mov    DWORD PTR [eax+0x24],0x5f|| ; 95 - grass&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27a||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a27f||	c7 40 28 5a 00 00 00 	|| mov    DWORD PTR [eax+0x28],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a286||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a28b||	c7 40 2c 55 00 00 00 	|| mov    DWORD PTR [eax+0x2c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a292||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a297||	c7 40 34 7d 00 00 00 	|| mov    DWORD PTR [eax+0x34],0x7d|| ; 125 - snow&lt;br /&gt;
|-&lt;br /&gt;
|0x019a29e||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2a3||	c7 40 38 64 00 00 00 	|| mov    DWORD PTR [eax+0x38],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2aa||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2af||	c7 40 3c 55 00 00 00 	|| mov    DWORD PTR [eax+0x3c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2b6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2bb||	c7 40 44 96 00 00 00 	|| mov    DWORD PTR [eax+0x44],0x96|| ; 150 - swamp&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2c7||	c7 40 48 7d 00 00 00 	|| mov    DWORD PTR [eax+0x48],0x7d|| ; 125&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2ce||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2d3||	c7 40 4c 64 00 00 00 	|| mov    DWORD PTR [eax+0x4c],0x64|| ; 100&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2da||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2df||	c7 40 54 64 00 00 00 	|| mov    DWORD PTR [eax+0x54],0x64|| ; 100 - rough&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2e6||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2eb||	c7 40 58 5a 00 00 00 	|| mov    DWORD PTR [eax+0x58],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f2||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2f7||	68 f1 55 30 4f       	|| push   0x4f3055f1||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a2fc||	c7 40 5c 55 00 00 00 	|| mov    DWORD PTR [eax+0x5c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a303||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a308||	c7 40 64 5f 00 00 00 	|| mov    DWORD PTR [eax+0x64],0x5f|| ; 95 - subterranean&lt;br /&gt;
|-&lt;br /&gt;
|0x019a30f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a314||	c7 40 68 5a 00 00 00 	|| mov    DWORD PTR [eax+0x68],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a31b||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a320||	c7 40 6c 55 00 00 00 	|| mov    DWORD PTR [eax+0x6c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|0x019a327||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a32c||	c7 40 74 5f 00 00 00 	|| mov    DWORD PTR [eax+0x74],0x5f|| ; 95 - lava&lt;br /&gt;
|-&lt;br /&gt;
|0x019a333||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a338||	c7 40 78 5a 00 00 00 	|| mov    DWORD PTR [eax+0x78],0x5a|| ; 90&lt;br /&gt;
|-&lt;br /&gt;
|0x019a33f||	a1 90 36 20 10       	|| mov    eax,ds:0x10203690||&lt;br /&gt;
|-&lt;br /&gt;
|0x019a344||	c7 40 7c 55 00 00 00 	|| mov    DWORD PTR [eax+0x7c],0x55|| ; 85&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
To change the pathfinding minimum movement, one has to modify the values for each terrain, for each level of the skill.&lt;br /&gt;
The terraings introduced by HotA, wasteland and highlands, are not affected by this - and has to be modified at some so far unknown location.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Pathfinding&amp;diff=188084</id>
		<title>Pathfinding</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Pathfinding&amp;diff=188084"/>
		<updated>2025-11-04T06:23:12Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Added background for pathfinding changes in HotA 1.7.x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Secondary skills}}&lt;br /&gt;
{{Secondary skill&lt;br /&gt;
 | B_effect = reduces the movement penalty for rough terrain, reducing the cost of moving one tile by 25 movement points to a minimum of {{swh|95|100}}.&lt;br /&gt;
 | A_effect = reduces the movement penalty for rough terrain, reducing the cost of moving one tile by {{gt|50}} movement points to a minimum of {{swh|{{gt|90}}|100}}.&lt;br /&gt;
 | E_effect = removes the movement penalty for rough terrain, reducing the cost of moving one tile by {{gt|75}} movement points to a minimum of {{swh|{{gt|85}}|100}}.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{TerrainPenTable|float=right}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heroes with Pathfinding as a starting skill:&#039;&#039;&#039;&lt;br /&gt;
* {{H2|Clancy|Ranger}}&lt;br /&gt;
* {{H2|Gretchin|Barbarian}}&lt;br /&gt;
* {{H2|Korbac|Beastmaster}}&lt;br /&gt;
* {{H2|Corkes|Captain}}{{-wh}}&lt;br /&gt;
* {{H2|Leena|Captain}}{{-wh}}&lt;br /&gt;
* {{H2|Andal|Navigator}}{{-wh}}&lt;br /&gt;
* {{H2|Celestine|Artificer}}{{-wh}}&lt;br /&gt;
&lt;br /&gt;
==Chance to get==&lt;br /&gt;
{{Secondary skill chance explanation}}&lt;br /&gt;
{{ZET SEC SKILL CHANCE TABLE| 4| 2 (lowest)| 7| 5| 4| 2 (lowest)| 4| 4| 4| 6| 5| 2 (lowest)| 8 (highest)| 4| 8 (highest)| 2 (lowest)| 6| 2 (lowest)| 8 (highest)| 6| 7| 3}}&lt;br /&gt;
&lt;br /&gt;
{{user commentary|&lt;br /&gt;
{{Max tile movement}}&lt;br /&gt;
The usefulness of the Pathfinding skill depends on the terrain of the map. If you walk primarily on your home soil, [[Logistics]] is sufficient. However, if a map has vast territories very hard to pass (e.g. [[swamp]]), Pathfinding works decently, potentially even better than [[Logistics]]. Playing against [[Tower]] or [[Fortress]] is a reason to use Logistics and Pathfinding.&lt;br /&gt;
&lt;br /&gt;
In vanilla {{homm3}}, Pathfinding is only better than Logistics on difficult terrain: Sand, Snow, and Swamp. The {{hota}} changes, by nerfing Logistics and buffing Pathfinding, makes Pathfinding better starting with Rough and Wasteland terrains.&lt;br /&gt;
&lt;br /&gt;
Pathfinding can always be recommended as a secondary skill for scout type secondary heroes, but it may also be valuable for the main hero(es). It should be noted that some factions&#039; [[native terrain]]s slow the enemy down very much, which gives the player a big advantage and therefore may affect the necessity of pathfinding.&lt;br /&gt;
&lt;br /&gt;
=== Things that ruin Pathfinding ===&lt;br /&gt;
* Roads&lt;br /&gt;
* An army on native terrain&lt;br /&gt;
* [[Nomad]]s on sand terrain&lt;br /&gt;
* [[Dimension Door]]&lt;br /&gt;
* [[Fly]]&lt;br /&gt;
* [[Angel Wings]]&lt;br /&gt;
* [[Trailblazer]] {{withhota}}&lt;br /&gt;
* [[Wayfarer&#039;s Boots]] {{withhota}}&lt;br /&gt;
* [[Lodestar]] makes all terrains native to Cove armies {{withhota}}&lt;br /&gt;
&lt;br /&gt;
Allegedly a motivation for the HotA team to reduce movement below 100 MP/tile with Pathfinding was the observation that players in fast-paced online games tended to use fly to avoid terrain penalties, rendering Pathfinding a useless skill. With the change of below 100MP/tile, most terrains benefit from Pathfinding over Fly.&lt;br /&gt;
}}{{end of user commentary}}&lt;br /&gt;
&lt;br /&gt;
{{secondary skill &#039;see also&#039;}}&lt;br /&gt;
&lt;br /&gt;
{{Movement navigational box}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Secondary skills]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188083</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188083"/>
		<updated>2025-11-04T05:29:12Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Add mysticism editing information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game, how secondary skills work is only determined by the .exe file (i.e. heroes3.exe). &lt;br /&gt;
In HotA, the skills are both in the h3hota.exe and in HotA.dll files. The former is typically used in single player games, and the latter for multiplayer. When starting a multiplayer game the game loads the HotA DLL, and overrides parts of the hota EXE.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify how secondary skills in multiplayer HotA.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, since the text help is in different files, but you will get what you edited (check under kingdom income for example).&lt;br /&gt;
&lt;br /&gt;
=== Mysticism ===&lt;br /&gt;
&lt;br /&gt;
The percentage of maximum mana regenerated with Mysticism is located at 0x001EC46C in HotA.dll (version 1.7.3). It is stored as four IEEE 32-bit floating point numbers, in little endian format. &lt;br /&gt;
00 00 00 00 CD CC CC 3D CD CC 4C 3E 9A 99 99 3E&lt;br /&gt;
where the first four bytes corresponds to the percentage gained without Mysticism, the next four bytes for basic level followed by advanced and expert.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;00 00 00 00 == 0.0f&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC CC 3D == 0.1f&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;CD CC 4C 3E == 0.2f&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;9A 99 99 3E == 0.3f&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fixed number of points are located also in HotA.dll, offsets hota.dll, basic: 0x19a15E (05), advanced: 0x19a16a (0A), expert: 0x19a174 (0F).&amp;lt;br&amp;gt;&lt;br /&gt;
(Shoutout to [[User:Csaros|Csaros]] for finding some of these offsets).&lt;br /&gt;
&lt;br /&gt;
Like with Estates, the right click help will still state 10%, 20% or 30% etc, but the actual mana regeneration depends on the numbers encoded in the DLL.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=188082</id>
		<title>User talk:Csaros</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=188082"/>
		<updated>2025-11-04T05:24:14Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Edit bug report&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pumpkin Patch - User Requests =&lt;br /&gt;
&lt;br /&gt;
== Monoliths ==&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I love the changes made to HOTA!&lt;br /&gt;
&lt;br /&gt;
Do you think it would be possible to add a function where if you click a gateway/monolith it shows you the opposite end?&lt;br /&gt;
&lt;br /&gt;
Kind regards&lt;br /&gt;
&lt;br /&gt;
* I&#039;m gonna say probably not. The best that could possibly be done is probably something similar to quest messages &amp;quot;The Grail may be found in the %s regions of the world.&amp;quot; or &amp;quot;The Grail may be found in the %s regions of the underworld.&amp;quot;. But I don&#039;t think this could work with more than 1 exit for a portal. I&#039;ll put it in the To-Do list, but I&#039;ll honestly say I don&#039;t think this can be done. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 17:38, 1 October 2024 (UTC)&lt;br /&gt;
* Update: Melkor showed me that ERA has a similar feature. I&#039;ll try to figure out how they did it. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 18:10, 6 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fix Faerie Dragon damage calculation ==&lt;br /&gt;
&lt;br /&gt;
Faerie Dragons don&#039;t increase damage based on spell damage artis for Lightning Bolt, Ice bolt and Magic Arrow. (as noted by Melkor).&lt;br /&gt;
&lt;br /&gt;
== Request - Mysticism Buff / Mana Regen Items Buff ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Changes Requested:&#039;&#039;&#039;&#039;&#039; Increased to 6/12/18 (Wouldn&#039;t even grant a &#039;&#039;Fly&#039;&#039;) - 10/20/30 (&#039;&#039;Fly&#039;&#039; + &#039;&#039;Lightning Bolt&#039;&#039;, or 1 &#039;&#039;Dimension Door&#039;&#039;) Mana per Day, or maybe 6/13/25 depending on how much viable you want the skill to be.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Reasoning:&#039;&#039;&#039;&#039;&#039; Even with HOTAs update to 5/10/15 and your buff of the Hero Mysticism Speciality, the skill still doesn&#039;t feel that great in play. There are just much better option like Intelligence or Magic Schools, or any kind of Combat skill for a Battle Focused Frontline Character &#039;&#039;&#039;considering that you can just regenerate Mana to &#039;&#039;Full&#039;&#039; while spending a day in Town or by drinking from a Magic Well&#039;&#039;&#039;. In WOG/ERA you could set Mysticism to regen a percentage of max mana (10%/20%/30%) instead, and it still didn&#039;t feel game breaking. &lt;br /&gt;
&lt;br /&gt;
I honestly believe that even making it 10/20/30 points per day wouldn&#039;t overbuff it - there are plentiful of better skill option - while it would lead to Mysticism being much more bearable/viable. Compared to a Mage with Intelligence, who with 10-15 Wisdom would have 150-225pt Mana (or &#039;&#039;considerably&#039;&#039; more in longer games on bigger maps), and could still regen it so much more quickly &#039;&#039;in one go&#039;&#039; even without the Mysticism skill. Point based reg. Mysticism focused to Expert in the early game would at least allow Mage Heroes to fling a few spells more frequently in exploration-encounter combat.&lt;br /&gt;
&lt;br /&gt;
Mysticism Hero Speciality could even become additonal 2/lvl regen, instead of 1pt, with those changes above, and &#039;&#039;maybe&#039;&#039; would be kinda ok/good in the late game. You can just regen Mana too easily with other options...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Mana Items:&#039;&#039;&#039;&#039;&#039; In relation to the above, mana reg. items are really weak except for the combined item &amp;quot;Wizard&#039;s Well&amp;quot;. Making the Charm/Talisman/Mystic Orb of Mana grant 2/4/6 or 3/6/9 reg. would be a really nice improvement.&lt;br /&gt;
&lt;br /&gt;
Hope my suggestions didn&#039;t sound overly &amp;quot;stiff/businesslike&amp;quot; :D&lt;br /&gt;
&lt;br /&gt;
I&#039;m greatly enjoying playing HOTA again, with your mod-patch on top. Thank you for all your hard work!&lt;br /&gt;
&lt;br /&gt;
Kind Regards, &lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
* Granted. You&#039;ll see it in 1.3.1. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
== Request - Various Spell Changes ==&lt;br /&gt;
&lt;br /&gt;
Seeing as you can edit Spell Schools:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Remove Obstacle -&#039;&#039;&#039; Making it an All Schools spell would be nice (You can even make its costs higher [5/3 or 6/4] in exchange). Doesn&#039;t really feel like it should belong only to Water, or any 1 Element. Making it so it could remove 2 natural obstacles at Expert would be great, even at a higher Mana cost, but I&#039;m unsure if that&#039;s even possible to edit in.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Force Field -&#039;&#039;&#039; Again as above, All Schools pls. It creates a swirling wall of blue energy, doesn&#039;t feel very &#039;Earthy&#039;. Mana Cost reduction to 11/8 or 10/7 + &#039;&#039;maybe&#039;&#039; an additional +1 Round Duration at Expert (if possible to edit in). Its a &#039;&#039;really situational&#039;&#039; 3rd LvL spell - it works against melee only field encounters, but fliers and ranged can easily ignore it, and enemy Heroes could dispel it with the updated Remove Obstacle or just nuke creatures hiding behind the wall with offensive spells.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Slayer -&#039;&#039;&#039; All Schools? It works well for what it does, but I usually forget that it even exists, as it needs Fire Magic to let it affect other 7th LvL Creature Types. It doesn&#039;t really feel like it would need to belong to Fire, and Fire School has already 5 other, quite powerful, 4th Tier spells, the most out of all 4 Elemental Schools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Magic Mirror -&#039;&#039;&#039; It&#039;s still the worst 5th LvL spell. 40 Mana is too high for a chance of &#039;&#039;MAYBE&#039;&#039; reflecting spells from 1 Unit Stack. Anti-Magic just gives you spells immunity at a much lower cost (and it removes already present negative effects), the only difference being that it is dispellable, for which an enemy would usually need to waste his 1 spell/round. And even if you cast Magic Mirror, enemies will just plainly choose different targets for their spells, that&#039;s all. Fix: Reduce cost to 15-20, Make it All Schools as well, change reflect % to 40/60/80/100 or 30/50/70/90 if you want for it to still have RNG at Expert. If a player wanted to make all his creature completely spell immune, he would need to spend 7 turns of casting Magic Mirror in exchange for buffing/debuffing/offense.&lt;br /&gt;
&lt;br /&gt;
Thank you for all your hard work! Can&#039;t wait for the Mysticism changes!&lt;br /&gt;
&lt;br /&gt;
Kind Regards,&lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
** Moving spells to all schools - the base game has very few (I believe 2) spells that belong to all schools of magic. I moved TP to all schools for balance, but I don&#039;t want to now put all sorts of spells into all schoos as well. &lt;br /&gt;
** Remove Obstacle - I don&#039;t think I can make it work on 2 separate obstacles. &lt;br /&gt;
** Force Field is actually a really good spell! Try it yourself (or see a youtube video): a 150 marksmen with forcefield and some meat can take down a dragon utopia!&lt;br /&gt;
** Slayer got buffed to work on all units and is now a reasonable pick for dealing with difficult level 7 fights. Why doesn&#039;t it work on all t7? No idea, but its not really a balance issue. I &#039;&#039;could&#039;&#039; move it to another school... but I think Fire fits it very well - first of all, it&#039;s sort of a mirror image of prayer (the way frost ring and fireball are), and secondly it&#039;s about that inner fire, the will to fight. &lt;br /&gt;
** Magic Mirror - yeah, you make a good point. I think the whole concept of the spell is problematic (remember why Hota deleted Resistance?) and I think I&#039;ll have to change this spell more. &lt;br /&gt;
** I&#039;m glad you like the pumpkin patch! Thanks for the feedback! - Csaros&lt;br /&gt;
&lt;br /&gt;
Np. I was just brainstorming that maybe having 1 combat spell per tier of magic could be fun. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Remove Obstacle&#039;&#039; - Yeah, thought it would be impossible to script it for 2 separate obstacles. And if Force Field stays in One School, making Remove Obstacles All Schools would be a huge nerf to it. But maybe switching Remove Obstacle to Earth - as it is quasi terraforming the terrain - and Force Field to Water could work?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Force Field&#039;&#039; - Saw the video of Dragon Utopia. Interesting play. Still doesn&#039;t really fit with Earth from the look of the barrier :D, maybe Water if you wanted to have it in One Elemental School (as Water usually represents &#039;Utility&#039;)? But I can understand why you would want to just let it be as-is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Slayer&#039;&#039; - True, I forgot about the Mass Cast on Expert now! And Fire does usually represent &#039;Offense&#039;. Just that Fire already has Frenzy and Berserk, and the buffed Mass Cast Fire Shield works well too. But again, isn&#039;t a huge issue if it stays in its current form. Its rather specific in what it does, and with Mass Cast on Fire Expert, it works ok.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Magic Mirror&#039;&#039; - It&#039;s a tough nut to crack. I did try to coax AI heroes to target it, even reloading a fight and casting it on units, it debuffed or bolted previously as a spell opener, but it just switches targets or buffs its own units like a human player would, once Mirror was cast. Other H3 players speculate that it was just made to make acquiring the &#039;good&#039; 5th Tier spells harder. If it was All Schools (or maybe Air+Water? But again, I feel like the coding only allows for a spell either belonging to One or All Schools, right?), with a lesser mana cost and a higher reflection percentage (maybe even only up to 75-85 on Expert), it could be a reasonable alternative to the Earth-based Anti-Magic. And if you could make it that it cleanses negative effects from targeted creatures like Anti-Magic does, Mirror would be quite good I think. On my recent playthroughs on L-H random maps whenever I got it in 5th Tier Mage Guilds, it was just such a disappointment, even if I had Air Magic on a Hero, and I did get it multiple times even in newly conquered towns, often times with heroes that had other Spell Schools mastered.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work! :) &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll see the Magic Mirror at much higher % values in the next patch. I&#039;ll consider the Remove Obstacle - Force Field Swap. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 09:00, 20 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Request - Small Town Changes ==&lt;br /&gt;
&#039;&#039;&#039;[Fortress]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It has some good 5-7 LvL units, but the first 1-2 LvL are rather boring. Maybe that&#039;s why you can build Wyvern Nest so early? I remember that WOG added some kind of Preemptive Strike to Gnolls, and Double Attack to Lizards at Upgade. Preemptive Gnoll Atk. would be probably weird to implement (or not? Gunslingers have some Preemptive Shot, right?), and it honestly isn&#039;t that necessary, but the &#039;&#039;only&#039;&#039; Fortress Archer deserves some love :D&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Lizard Warrior (the Upg. Archer) -&#039;&#039;&#039;&#039;&#039; Add &#039;&#039;Double Attack&#039;&#039; (like Marksman, Grand Elf), Nerf Dmg to 2-4 from 2-5, Def to 6-7 down from 8, Health to 14 from 15. &#039;&#039;Maybe&#039;&#039; increase cost by 20-40g per unit? &#039;&#039;// It&#039;s more fun when a town has at least One viable Shooter unit. Most 2nd LvL Shooters in other towns like Marksman, Storm Elementals (especially those), Magogs, are much more powerful and even Halflings, a 1st LvL unit, have some special abilities now. A mostly &#039;defensive&#039;/&#039;tanky&#039; 1-shot Archer is kinda dumb.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Glyphs of Fear -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Blood Obelisk -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Dungeon]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Scorpicore -&#039;&#039;&#039;&#039;&#039; Maybe a small Dmg boost from 14-20 to 15/16-21/22, +10-20 HP? And a -2 Sulfur &amp;amp; -2 Mercury cost reduction to Manticore (Base) Dwelling? - Base Manticores don&#039;t have Special Abilities like Paralyzing Venom, so the first building is a bit costly too. &#039;&#039;// They kinda suck stat-wise as an Upg. 6th lvl unit. Compared to other creatures at the same Tier, they&#039;re the weakest of them all, cost more than better equivalents, die very easily and don&#039;t do much Dmg on the frontline. Paralyze is good, but it has a lower chance of triggering than Wyvern Monarch Poison; Unicorns have much frontline stats, Blind AND Magic resistance, AND cost &#039;&#039;less&#039;&#039;; Cyclops can attack from a safe distance and Shoot walls; Cavaliers have Jousting; Efreeti have really solid stats, Fire Immunity and get Fire Shield at Upg., etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Dragon Cave (Base) -&#039;&#039;&#039;&#039;&#039; Wood cost reduced to 10 down from 15? Maybe stone down to 10 too? Potentially in exchange for making the Dwelling Upg. cost 20 Wood &amp;amp; Ore instead, up from 15?  &#039;&#039;// Wood and Ore usually aren&#039;t a problem but it would be a small boost to get Red Dragons earlier, and diversify building costs between Base and Upg. Dwelling. (Rampart Dragon Cliffs have a Gold Increase between Base/Upgrade costs, Inferno Palace lessens Wood/Ore but Increases Gold. Some Towns have the same cost for 7th Base &amp;amp; Upg. Dwellings, but I think it would fit Dungeon to have that small bit of upgrade cost variety as Rampart, with its Dragon equivalent, has it too.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably my last suggestions for a while :D&lt;br /&gt;
&lt;br /&gt;
Can&#039;t wait for the next patch!&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
** You&#039;ll see a different Lizard Warrior buff in 1.3.1. Don&#039;t wanna give away too much before the big day. &lt;br /&gt;
** Scorpicores were buffed - now paralyse hits 25% of the time. &lt;br /&gt;
** Glyphs of Fear and Blood Obelisk are rather weak. &lt;br /&gt;
** Dragon Cave - There is a cost reduction for unupgraded dragon dwelling (by reducing cost of Manticore lair as a proxy). But know that I am a capricious lover and I take back everything I give, sometimes twofold. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Glyph/Obelisk&#039;&#039;&#039; - Sure, OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticores/Scorpicores&#039;&#039;&#039; - Consider that they are still relatively weak, potentially the weakest, even with better Paralyse proc chance (and you did buff other 6th Tier and Lesser Creatures procs while boosting Paralyse, like Unicorn Blind, Death Knight Blow, Thunderbird, Basilisk, Medusa, ... - I do like it, but it doesn&#039;t equalize Scorpicores that much). Iirc WOG buffed Scorpicores to 18-22 Dmg like Wyvern Monarchs (and Poison is 30% on those, right?) and they still felt borderline underwhelming, and rather not worth the Sulfur and Gold Dwelling cost. &lt;br /&gt;
&lt;br /&gt;
Maybe if you don&#039;t want higher Dmg on them, what about making the Scorpicores Upgrade a bit hardier with +15-20 HP, so that they can survive more to try proc some Venom, and at least Cutting Sulfur and reducing the Gold Costs (-1000g so the Base gold costs would be similar to other Unupgraded 6th Tier Dwellings - &#039;&#039;Fire Lake, Unicorn Glade, Golden Pavilion, Nix Fort, Watchtower&#039;&#039;, all 4000g for much better 6th Tier Unit Dwellings) from the Base Manticore Dwelling so that players wouldn&#039;t be inclined to skip it in favor of hoarding Sulfur for Dragon Cave. Base Manticore is &#039;&#039;really&#039;&#039; similar to Wyverns, but you can find Wyverns by freeing them from Dragonfly Dens and &#039;&#039;Wyvern Nest&#039;&#039; Costs 3500g + 15 Wood, while &#039;&#039;Manticores Lair&#039;&#039; Costs 5000g + 5 Sulfur + 5 Mercury + 5 Wood + 5 Ore. The more valuable resources Sulfur and Mercury, and 1500 higher Gold are a rather steep price considering that Manticores don&#039;t have Venom or any kind of other special ability or passive yet. Wyvern Monarch Dwelling only adds valuable resources like 10 Mercury on top to the Upgrade Cost once the creatures learn Poison. Unicorns, Efreets, Naga, etc. All have Special Abilities at Base, and so their 1st Unupgraded Dwellings cost valuable/rarer resources like Gems, Sulfur, Mercury, Crystals. &lt;br /&gt;
&lt;br /&gt;
Cyclops Dwelling Costs only Ore+Gold at base, and they&#039;re Shooters, with &#039;&#039;Siege Walls&#039;&#039;, similar stats to Manticores, better Minimum Dmg [16-20 vs Manticore 14-20] and Cost &#039;&#039;Less&#039;&#039; [Cyclops 750g vs Manticore 850g]. Only Cavaliers and Black Knights have a 5000g/6000g 1st Dwelling Cost, and still no special resources at Base, only Wood/Ore, and both are &#039;&#039;much&#039;&#039; better 6th Tier Units than Manticore statwise. Base Cavalier even has the Jousting ability already. And there exist Base Dwellings that Cost even less than 4000g, like &#039;&#039;Altar of Thought&#039;&#039; 3000g, &#039;&#039;Cyclops Cave&#039;&#039; 3500g, both giving better Units.&lt;br /&gt;
&lt;br /&gt;
An Unupgraded Efreety packs more punch (16-24), has more Health (90) and some nice passive immunity, costing 900g/unit - stronger than 1050g Scorpicore. An Upg. Efreety Sultan costing 1100g (50g more than Scorpicore), has still better Dmg and HP stats, passive immunity and Fire Shield. Unicorns have Blind/Res at base, 18-22 Dmg, 90 HP, at the Cost of 850g, while War Unicorns have Blind/Res, same Dmg, 110 HP at the Cost of 950g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Np, I develop Tabletops in my free time, so I know how balancing likes to meander XD. Should be OK tho. And feel free to add those -5 Wood/Ore as +5 Wood/Ore &#039;&#039;Cost Increase&#039;&#039; to the Upgradable Black Dragon Cave - should balance it out (like Ramparts Dragon Cliff does, just with Gold instead of Resources, Base 10000g vs Upg. 20000g, same 30 Ore + 20 Crystals on Base and Upg. Costs).&lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t favor Dungeon/Scorpicore as my Town/Creature of Choice, even if it sounds like that XD &#039;&#039;(The Statistics speak for themselves!)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* Fair enough, I just checked the numbers and yeah Scorpicores are trash. They&#039;ll get a small number buff. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And&#039;&#039; the Manticore Lair (Base) -5 Sulfur, -1000g? To 4000g, 5 Mercury, 5 Wood, 5 Ore? &#039;&#039;*Nudge, Nudge*&#039;&#039; :D&lt;br /&gt;
&lt;br /&gt;
The Cost of Base Lair actually started bothering me more and more the deeper I went into comparing Manticores against other, &#039;&#039;proper&#039;&#039; Tier 6 Units and &#039;&#039;their&#039;&#039; usual Dwelling Costs.&lt;br /&gt;
&lt;br /&gt;
The (Upg.) Manticore Lair Costs can freely remain as they are.&lt;br /&gt;
&lt;br /&gt;
Manticores/Scorpicores really are rather Trashtier 6th lvls. You can always reverse the Cost/Stat Changes later, if it altogether becomes a too strong Buff to Dungeon. Although I honestly doubt that it will end up feeling that way. &lt;br /&gt;
&lt;br /&gt;
- Eldrin.&lt;br /&gt;
&lt;br /&gt;
* Hey Eldrin, check out 1.3.1! A lot of the stuff you&#039;ve asked for is here! - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
Zgaduję, że skoro planujesz zrobić własne polskie tłumaczenie, to pewnie komunikacja po polsku będzie łatwiejsza? (Skoryguj mnie jeśli angielski jest dla ciebie wygodniejszy!)&lt;br /&gt;
&lt;br /&gt;
Ogólnie, wszystkie zmiany są raczej krokiem w dobrym kierunku, chociaż może w niektórych przypadkach nie są one aż tak dotkliwe jak bym tego pragnął :D&lt;br /&gt;
&lt;br /&gt;
Tylko, że coś występuje kilka problemów w mojej wersji H3. Po skopiowaniu 1.3.1 wyskakuje mi błąd (ResourceManager::GetBitmap816 could not find &amp;quot;bitmap8&amp;quot; resource &amp;quot;HPS219Sh.PCX) i zniknął polepszony wgląd Bohaterów (szczegółowe info miast tylko wyświetlania Specjalności Bohaterów) - niestety nie mam uprawnień by dzielić się tutaj linkami do screenshotów ;/ . Błąd naprawiłem, gdy po porównaniu 1.3.1 z archiwum poprzedniej wersji zauważyłem, że pliki &#039;&#039;Hota.lod&#039;&#039; i &#039;&#039;Hota_lng.lod&#039;&#039;, mają iść do folderu &#039;&#039;Data&#039;&#039; (wtedy też zmiany zaczęły funkcjonować gdy odpaliłem jakąś mapę), ale wgląd Bohaterów nadal jest &#039;uproszczony&#039;, więc zgaduję, że coś jest jeszcze nie tak? Po pierszym skopiowaniu plików nie działało, zrobiłem świeżą instalkę, update HD moda i dopiero po tym zauważyłem to z plikami do &#039;&#039;Data&#039;&#039; - dzisiaj 21.10 HD mod też dostał jakąś łatkę, to może to coś sknociło? Bo jak skopiowałem Pumpkin 1.3.0 to też szczegółowego wglądu brakowało. Chyba, że jeszcze czegoś brakuje w folderze Data 1.3.1? (Mam Angielską wersję GOG)&lt;br /&gt;
&lt;br /&gt;
// Update: Yup, coś jest zdecydowanie nie tak, bo po restarcie gry, zmiany Pumpkin Patcha przestały funkcjonować.&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
Dla mnie polski, angielski, hiszpański - obojętnie. Spróbuj proszę pobrac ponownie 131 i przenieść Hota_lng.lod i Hota_lod do folderu Data. Czy teraz wszystko działa? Dzisiaj testowałem i było ok... Jak chodzi o szczegółowe info - co konkretnie nie działa? W jaki sposób? - Csaros&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gdy przytrzymywało się prawy przycisk myszki na obrazku Bohatera, podczas obierania Zamków, przed odpaleniem mapy, przy generowaniu Random Map, dawało to zwykle szczegółowy wgląd: jaki ten Bohater ma armię, staty, zdolności, itp. Teraz po patchu 1.3.1, prawy przycisk na bohaterze tylko wyświetla mi informacje jaką bohater ma specjalność. Jeśli dobrze kojarzę, to tę opcję z większymi szczegółami wprowadził pierwotnie HD mod. Gdy zrobiłem czystą instalację dla 1.3.1, i nacisnąłem &#039;Update&#039; na Launcherze HD moda, to zupdatował się do jakieś, niby dzisiejszej (21.10.2024) wersji 5.5 R9 ze zmianami:&lt;br /&gt;
&lt;br /&gt;
[ ] Library patcher_x86.dll updated to version 4.18 (bug fixed)&lt;br /&gt;
&lt;br /&gt;
[-] HotA 1.7.1: fixed bug with bank in factory.&lt;br /&gt;
&lt;br /&gt;
[ ] HotA: Some changes, fixes, optimizations in the online lobby.&lt;br /&gt;
&lt;br /&gt;
[ ] Some changes, fixes, optimizations.&lt;br /&gt;
&lt;br /&gt;
[!] SoD: HoMM3 HD libraries are now built with new development tools. Incompatibility with plugins that modify these libraries is possible. If you find an incompatibility with such a plugin, contact its author.&lt;br /&gt;
&lt;br /&gt;
[!] WoG/ERA HoMM3 HD libraries are now built with new development tools. Incompatibility with mods/plugins that modify these libraries is possible.&lt;br /&gt;
&lt;br /&gt;
Dlatego też myślałem, że może HD mod jakoś zdołał wyjść nowy czasowo tuż po twoim updacie do 1.3.1 i wyszły jakieś nieścisłości.&lt;br /&gt;
&lt;br /&gt;
Oprócz tego, gdy parę razy wyłączyłem i ponownie odpaliłem H3 od nowa, po czym wystartowałem nową grę na nowej mapie, ustawienia jak zmiany do &#039;&#039;Lizard Warriorów&#039;&#039;, czy &#039;&#039;Manticore Lair&#039;&#039; przestały funkcjonować, zwyczajnie staty/koszty przywróciły się do standard Hota - pomimo, że te zedytowane przez ciebie pliki były nadal na swoich odpowiednich miejscach w folderze H3. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ale ogólnie, zrobiłem teraz jeszcze raz &#039;&#039;kolejną&#039;&#039; świeżą instalację i szczegółowe statystki pod prawym przyciskiem myszki wróciły, i Pumpkin Patch nadal działa jak powinien po restarcie H3, więc może ta poprzednia instalacja się u mnie coś zchraniła. Albo też to, że poprzednio raz odpaliłem grę, zanim dodałem te brakujące pliki do folderu &#039;&#039;Data&#039;&#039;, i to mogło już coś uszkodzić, zanim je później dodałem. Jakby coś znowu zaczęło się psuć, to dam znać.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
== Krytyka i Sugestie Dalszych Zmian (Post 1.3.1) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Imps and Familiars&#039;&#039;&#039; - Nawet fajna zmiana. Dodałbym jeszcze info &#039;&#039;Flies&#039;&#039; w opisie jednostek.&lt;br /&gt;
* Jest chyba od 1.3.2. Teraz w 1.3.4 chyba wszystkie błędy naprawione z brakującym tekstem, etc. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - Spoko, jest to napewno coś innego niż pozostali 2-poziomowi Strzelcy, i działa całkiem w porządku za te koszta jednostki. Może zamieniłbyś też Atk.&amp;lt;-&amp;gt;Def. &#039;&#039;&#039;Podstawowych &#039;&#039;Lizardman&#039;ów&#039;&#039;&#039;&#039;&#039;, żeby miały trochę większy Atak miast Obrony? (Lizard Warrior dostaje jakąś zbroje skórzaną po ulepszeniu - to może być ten odpowiednik 1 Def. różnicy :D)&lt;br /&gt;
* Fair enough. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticore Lair&#039;&#039;&#039; - całościowo powiedziałbym, że nadal kosztuje zbyt dużo w porównaniu z tym jakie jednostki daje - większość 6-poziomowych jednostek jest nadal mocniejsza niż zwykła Mantykora [np. Cyclop, Gunslinger, Unicorn]. Zmniejszenie Bazowej Budowli o 1000g jest spoko, ale &#039;&#039;&#039;Podstawowy Manticore Lair&#039;&#039;&#039; nadal nie ma powodu by kosztować dodatkowe 5 Siarki i 5 Rtęci - jak już pisałem powyżej po angielsku, wszystkie 6-poziomowe budowle w innych zamkach, co wykorzystują &#039;&#039;rzadsze surowce niż Kamień/Drewno&#039;&#039;, produkują jednostki mające jakąś dodatkową zdolność pasywną bądź aktywną (przykładowo &#039;&#039;&#039;Unicorn Glade&#039;&#039;&#039;, 5 Drewna, 5 Kameni, 10 Klejnotów, 4000g (Bardzo zbliżone koszta Budowli do Manticore Lair, zamieniając Klejnoty na Rtęć i Siarkę) - Jednostki mające &#039;&#039;Blind + Magic Res.&#039;&#039; [Ulepszona Budowla tylko &#039;&#039;5 Klejnotów!&#039;&#039;, 3000g]; &#039;&#039;&#039;Wyvern Nest&#039;&#039;&#039;, 15 Drewna, 3500g - Najtańsza budowla 6-poziomowa, ale Wyverny nie mają żadnych dodatkowych zdolności i należą do słabszych 6-tek. Nieulepszone Wyverny można za to też &#039;uratować&#039; z Dragon Fly Hives co polepsza ich sytuację. Koszt &#039;specjalnych&#039; surowców dopiero jest dodawany, na &#039;&#039;&#039;Ulepszone Wyvern Nest&#039;&#039;&#039; - &#039;&#039;10 Rtęci&#039;&#039;, 10 Drewna, 3000g - gdy zyskują &#039;&#039;Poisonous&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Sugestia:&#039;&#039;&#039;&#039;&#039; Wyrzucenie &#039;&#039;5 Siarki&#039;&#039; [lub redukcja na &#039;&#039;3 Siarki + 3 Rtęci&#039;&#039; - choć z tym pragnąłbym jakiś mały buff jak 10-15% Venom już u samych Mantykor] z kosztów Podstawowej Budowli &#039;&#039;&amp;lt;- moja preferowana opcja&#039;&#039;, TUDZIEŻ dodanie Mantykorom 25% &#039;&#039;Paralyzing Venom&#039;&#039;. Pragnę też zaznaczyć, że po twoim przeniesieniu 1000g z &#039;&#039;&#039;&#039;&#039;Podstawowej&#039;&#039;&#039;&#039;&#039; na &#039;&#039;&#039;&#039;&#039;Ulepszoną&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;Manticore Lair&#039;&#039;&#039;, jest to teraz jedyna &#039;&#039;&#039;Ulepszona&#039;&#039;&#039; Budowla 6-poziomowa spośród wszystkich zamków, która kosztuje 4000g, wszystkie inne posiadają koszty złota wynoszące 3000g, nawet &#039;&#039;&#039;Ulepszona Hall of Darkness&#039;&#039;&#039;, produkująca najpotężniejsze 6-poziomowe jednostki. Prosiłbym więc o upuszczenie tych 1000g różnicy (Utrzymywanie równie wysokich kosztów budowli jakie były pierwotnie przed zmianami jest w przypadku Manticore Lair kompletnie niepotrzebne - nadal nie mają tak silnych istot, by gwarantować te koszta, pomimo [fajnego] polepszenie Scorpicor!). I po zmianach kosztów &#039;&#039;Mana Vortex&#039;&#039; oraz &#039;&#039;Portal of Summoning&#039;&#039;, Dungeon jest najdroższym miastem po Factory i Conflux pod względem Złota za Budowle. Te trochę zmian do &#039;&#039;Manticore Lair&#039;&#039; balansu gry nie zniszczy - &#039;&#039;a wręcz go poprawi!&#039;&#039; (Swoją drogę, pragnę zaznaczyć, że wcześniej &#039;&#039;mylnie&#039;&#039; myślałem o możliwości przeskoczenia Mantykor, by szybciej budować Smoki, ale &#039;&#039;Manticore Lair&#039;&#039; jest potrzebny by móc budować &#039;&#039;Dragon Cave&#039;&#039;, więc nawet przeskoczyć ich się nie da...)&lt;br /&gt;
* Chciałbym by Rtęć i Siarka pozostały wymaganiami, żeby budowanie Smoków było równie trudne. Ale masz rację - są strasznie drogie. Jestem gotowy zmienić koszt budynku podstawy na &#039;&#039;&#039;3&#039;&#039;&#039; rtęci, &#039;&#039;&#039;3&#039;&#039;&#039; siarki, 5 drewna, 5 kamieni, &#039;&#039;&#039;3&#039;&#039;&#039;000 złota, koszt ulepszenia cofnąć do oryginalnego. Dodawanie Venomu podstawie na innej szansie wymagałoby w zasadzie stworzenie nowej zdolności dla nich; dodawanie go w pełni na podstawie usunęłoby w ogóle potrzebę ulepszania do Skorpikor. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ok, Super. To już powinno być w porządku nawet bez Venom na Mantykorach. --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magic Mirror&#039;&#039;&#039; - Nadal jest raczej słabe, jak na 5-pz Czar. Zmieniłbym na &#039;&#039;All Schools&#039;&#039; (- naprawdę sądzę, że to by bardzo do tego Spella pasowało) i dał &#039;&#039;Additionally, it removes negative spell effects (e.g. curse) but not positive spell effects (e.g. bless)&#039;&#039; - tak jak posiada Anti-Magic (o ile da się to wkodować do innego Spella). Wtedy Czar byłby git. Mógłbyś też ewentualnie miast tego obniżyć poziom na 3/4th lvl, ale powiedziałbym, że większość czarów przynajmniej 4-poziomu jest od Mirror w stanie obecnym nadal o wiele lepsza. Mirror tylko byłby przesadnie zbuffowany, jeślibyś nagle zmienił go na All-Castem - to by było OP.&lt;br /&gt;
* Nie wiem jak dodać clearowanie jakiś konkretnych efektów spellem, który normalne niczego nie clearuje. Ten spell był błędem gdy powstał. Teraz daje tak wysokie szanse na odbicie, że żaden rozsądny gracz nie rzuci łańcucha piorunów ani innych spelli na kogoś obdarzonego tym czarem. Jakby go dać do all schools, to jeszcze bardziej osłabi Air magic a już słyszałem narzekanie, że Fire jest lepszy od Air teraz. Przesunięcie do 4-poziomu: nie jestem fanem; po pierwsze, wtedy trzeba by przenieść coś z 4 do 5 (by się liczba spelli zgadzała) a po drugie, wtedy Złote Smoki byłyby jeszcze gorsze (Magic Mirror to taki AntiMagic dla złotych smoków). Jedyny sposób w jaki mógłbym polepszyć ten spell to a) zmienić koszt b) zmienić szanse c) zrobić all-cast z mniejszą szansą (ale to byłoby kind of cancer jak chodzi o usuwanie wszystkich hirków z spellami z obrażeniami). - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Osobiście uważam, że Air jest nadal spoko - Dimension Door był spellem, który kompletnie trywializował poruszanie się po mapie, zmiana jego na Fire całkiem dobrze mi odpowiadała i pasowała tematycznie (portal &#039;wypalając&#039; wyrwę w czasoprzestrzeni + oczywiście Gate u Inferno) no i Air ma jeszcze czar &#039;podróżny&#039; w postaci Fly. Chain Lightning poniekąd da się wycelować, zajęłoby raczej 3-4 casty Mirror by kompletnie zniesmaczyć Chain Lightning i AOE Debuffy (i nadal miałby 30% szansę na nieodbice w stanie obecnym). Counterstrike, Fortune, Air Shield, Precision są wszystkie spoko. Fly niwelujący dodatkowe koszta terenu czasem bardziej się opłaca niż DD. Ale jak tak jeszcze raz rzuciłem okiem na Elementarne Szkoły potrafię zrozumieć dlaczego inni graczę mogliby argumentować, że za bardzo nerfisz Air, gdybyś dał Mirror na All Schools. &#039;&#039;&#039;To co powiesz na to:&#039;&#039;&#039; 50/75/100% (&amp;lt;- To by było chyba najlepsze, by Air School się bardziej opłacało brać) albo 60/80/100% na Mirror i zmniejszenie kosztów do tych samych co Anti-Magic. Wiem, że 100% może brzmieć na pierwszy rzut oka przesadnie, ale bez możliwości wkodowania &#039;oczyszczenia&#039; jednostek gdy się na nich rzuca Mirror, dużo zależy od tego czy masz pierwszy ruch w walce, by uchronić daną jednostkę przed Debuffem, trochę mniej ważne w częstszych situacjach przed 1-osobowym zmiażdżeniem jak Implozja, bo nie zawsze ktoś Implozję ma - oczyścić jej już za jednym zamachem z Debuffa nie oczyścisz, więc niech już Mirror ma przynajmniej to 100% na Expercie. W przeciwnym wypadku Anti-Magic+Earth Magic Skill wydaje się nadal silniejsze/bardziej opłacalne. Ochrona złotych smoków przeciw Implozji jest silna, ale to jest za bardzo sytuacyjne, i wydaje się raczej jak patchowanie niedociągłości jednej jednostki niż jak 5-pz spell jak Mirror powinien w rzeczywistości fungować.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mysticism&#039;&#039;&#039; - Początkowa regeneracja nadal mierna, i późniejsza mogłabybyć trochę wyższa - &#039;&#039;dałbym 5/13/25&#039;&#039; albo &#039;&#039;8/16/25&#039;&#039;. Na większych mapach (L+) wydaje się wciąż, że lepiej jest ignorować ten Skill i Bohaterów mających Mysticism od początku. (Gdy gram, balansując 3/2 - Power/Wisdom, mana prawie mi się nie kończy. Zawsze znajdzie się Miasto z Gildią, albo Magic Well w pobliżu - wystarczy tylko trochę patrzeć, gdzie się rusza Bohaterów. To po co miałbym w ogóle brać Mysticism? Wolałbym nawet mieć ten nowy Learning albo Eagle Eye XD)&lt;br /&gt;
* Miło mi słyszeć, że podoba ci się nowy Learning! Jak chodzi o Mistycyzm, moim zdaniem jest już całkiem dobry jak grasz na Impossible i chcesz wysoki Score zdobyć (by się nie wracać do zamku ciągle). Na stronie [[Mysticism]] wstawiłem porównanie z inteligencją - więc mój nowy ekspercki mistycyzm działa idealnie jesli używasz 60 many dziennie (DD, TP i &amp;quot;coś extra&amp;quot;). Poza tym, nie podoba mi się 5/13/25. Prędzej bym dał 6/11/21 (i przedstawić to jako 1+5/10/25) no może 10/20/30 (choć to chyba trochę za dużo). Co sądzisz? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
Edit: szczerze mówiąc 6/11/21 bardzo mi sie podoba i chyba tak dam. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ja bym szczerze gorąco polecał Ci wypróbować przynajmniej na kilku grach u siebie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; na jakiś Większych Random Mapach L/XL/H + Podziemia, jeśli jesteś bardziej do tego skory niż 5/13/25 - 8/16/25 i inne kombinację (może &#039;&#039;&#039;5/15/25&#039;&#039;&#039; XD?). Też się zgodzę, że pod względem estetyki 10/20/30 wygląda najładniej jako liczba. Teraz na 5/10/20, Basic/Advanced jest dosyć słabe, i Expert też nie jest aż tak mocny, chyba, że ma się szybko Artefakt(y) - &#039;Mystic Orb&#039; dający dodatkowe 7 Many/dzień albo te dwa mniejsze odpowiedniki, tudzież jest to postać z Specjalnością Mistycyzm mająca już dobrą garść lvli - i nadal to, w tych specyficznych kombinacjach gdy gram, nie wydaje się &#039;aż tak silne&#039;, tylko raczej takie &#039;jakość-tak-może-ok&#039;. Jak za pierwszym razem pisałem o Mistycyzmie, wspominałem o procentowym regenerowaniu jako opcja u WOGa (10/20/30 &amp;gt;%&amp;lt;) - tą opcję testowałem wielokrotnie, wydawała się dobra [i nawet wcale nie aż tak mocna, jak się nie miało włączone 10 miast 8 Secondary Skill, niżby się na pierwszy rzut oka wydawało], ale nie przesadna - więc nie sądzę żeby nawet 10/20/30, mając tylko 8 Skill-slotów do dyspozycji, zniszczyło balans, ale sprawiłoby by Bohaterowie-Czarodzieje biliby bardziej skłonni do brania Mana-Regena nawet jeśliby nie mieli Specjalności. 30% to 90% Max Many &#039;dopiero&#039; po 3 dniach, na 15 Wisdom to 135 Many, a na mapach L+ z Podziemiami, ma się często o &#039;wiele&#039; więcej, i Procentowy Regen balansu gry nie zniszczył. Intelligence nadal wydawał się dużo mocniejszy pomimo &#039;%&#039; Regena, bo grając agresywnie i podbijając Zamki / rozplanowując ruch bohatera po już kontrolowanych terytoriach do Magicznych Studni i Zamków (+ też rzadszy Magic Spring, o którym wspomniałeś w adnotacji na stronce o Mistycyzmie), nadal o wiele prościej dało się regenerować o wiele większy zasób Many i to w pełni(!), w ciągu tylko jednego dnia(!) niż czekać na działanie &#039;procentowego&#039; Mistycyzmu do Maxa (I nawet po nerfie HOTA do 50%, Intelligence w mojej opinii jest silniejsze). 10/20/30 &#039;Punktowego&#039; Regenerowania naprawdę nie powinno się okazać nazbyt silne, da co najwyżej parę spelli w pierwszych walkach z neutralnymi NPC blokującymi drogę na mapie. Może to zwyczajnie kwestia różnych Stylów-gry - tak jak pisałeś o średniej Manie zużywanej na dzień - i ostatecznie wezmę to co dasz na Mistycyzm (HOTA z Pumpkinem jest już bardzo w porządku, i nowe Factory bardziej mi się spodobało niż w pierwszej chwili sądziłem), ale jest powód dla którego apelowałem/-uję o przynajmniej podbicie jeszcze troszkę Advanced (12-16) i Expert (przynajmniej do 25), Basic niech sobie będzie tym przysłowiowym &#039;Basic&#039;iem&#039;. Jeśli nie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; to &#039;&#039;&#039;5/15/25&#039;&#039;&#039; brzmi chyba też całkiem nieźle ^^ ? --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dalsze pomysły:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Scholar&#039;&#039;&#039; - Przy testowaniu 1.3.1 zauważyłem, że &#039;&#039;&#039;Scholar&#039;&#039;&#039; uczy tylko 1-2/3/4-lvl max czarów. Czy zmiana na 1-3/4/5 byłaby zbyt potężna? Komponowałby się lepiej z nowym &#039;&#039;&#039;Eagle Eye&#039;&#039;&#039;.&lt;br /&gt;
* No zmiana na 3/4/5 trochę by zrujnowała cały koncept postaci Gwenneth. Byłaby dość potężna (obecnie główne ograniczenie hirków ze scholarem to wymaganie level-upu by dzielić silniejsze czary) no i tbh ja zawsze chcę mieć co najmniej jednego hirka ze scholarem tak czy siak. No i wyobraź sobie takiego Alamara, który na 2 poz. (czyli 1. tura z Battle Scholar Academy) może już uczyć wszystkich nowych hirków Wskrzeszenia... Myślę że Scholar jest okej. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Z tym się zgodzę, za szybkie dzielenie się 4th lvl Spellami, z którymi startują niektórzy Bohaterowie, na samym &#039;Advanced Scholar&#039;, mogłoby być za silne w Early-gamie. Scholar wydawał mi się już w stanie obecnym całkiem dobry, bo samo przenoszennie 4-pz Czarów jest całkiem spoko, ale wolałem podrzucić zapytanie. - korzystam raczej sporadycznie ze Scholara, jak się natrafi, na swoich Utility-Heroesach i póżniej rozsyłam by przenosiły Spelle dalej od Zamków/Głównego Bohatera, ale też nie zawsze. Tak jak teraz piszę, to ciekawe byłoby, gdyby istniał jakiś (Major?) Artefact, który by Scholar zwiększał o 1-lvl Spelli.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Ponownie proszę o przeniesie 5 Kamieni i 5 Drewna (:D) z kosztów Bazowych do Ulepszonych, by wyglądały: &#039;&#039;&#039;Podstawowe Dragon Cave&#039;&#039;&#039; (Czerwone Smoki) &#039;&#039;10 Drewna, 10 Kamienia&#039;&#039;, 20 Siarki, 15000g; &#039;&#039;&#039;Ulepszone Dragon Cave&#039;&#039;&#039; (Czarne Smoki) &#039;&#039;20 Drewna, 20 Kamienia&#039;&#039;, 20 Siarki, 15000g (&#039;&#039;Total costs for both dwellings remain the same.&#039;&#039;). Posiadanie takich samych kosztów Bazowych i Ulepszonych Budowli, jest dosyć &#039;nudne&#039;, a wiele innych zamków ma inaczej - szczególnie Rampart, które ma niemalże lustrzane odbicia Smoków Dungeon&#039;a (Tematycznie Dobre vs. Złe Smoki?). U Rampart &#039;&#039;&#039;Bazowe Dragon Cliffs&#039;&#039;&#039; kosztuje 30 Kamienia, 20 Kryształów, &#039;&#039;10000g&#039;&#039;, a &#039;&#039;&#039;Ulepszone Dragon Cliffs&#039;&#039;&#039; 30 Kamienia, 20 Kryształów, &#039;&#039;20000g&#039;&#039;. Kamienia i Drewna raczej na mapach nie brakuje, więc na Całościowy Balans nie powinno to raczej wpłynąć (może gracz Dungeon będzie miał 250g więcej na Budowlę Czerwonych Smoków po sprzedaniu tych 5 Kamienia/Drewna na targowisku, XD)&lt;br /&gt;
* No w zasadzie... Dobra. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice! &#039;&#039;--[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
Jeszcze raz dzięki za twoją pracę nad patchowaniem H3. Nawet jeśli postuluję o dalsze działania, twoje już zaimplementowane zmiany o wiele polepszyły moją grę w Heroes&#039;y (wreszcie gram w HOTA i nie muszę się już męczyć z WOG/Era, jeśli nie chcę zbyt odbiegających, dalszych customizacji). Mam nadzieję, że moje sugestie polepszeń nie wydają się zbyt &#039;upierdliwe&#039; XD. Dzielę się nimi z własnej miłości dla Heroes III (i mając trochę bzika na punkcie statystyk i analizowania/balansowania różnych gier...).&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* No oczywiście, że mi nie przeszkadzają! Bardzo mi miło, że ktoś chce ze mną omawiać balans gier. Masz może jakiś inny komunikator poza tym czatem? Discord, acidcave.net, etc.?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Discorda w zasadzie mam, tylko raczej bardzo rzadko z niego korzystam. &#039;&#039;&#039;Założyłem konto na acidcave.net, i podesłałem wiadomość :)&#039;&#039;&#039; . Tutaj jeszcze odpisałem powyżej na dyskusję, ale jakby co to możemy już na Kwasowej pisać.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
== Interference and Water/Fire magic ==&lt;br /&gt;
&lt;br /&gt;
Would you be okay with Interference to give same values as the original Resistance? I feel like removing in completely on most magic heroes was not good idea.&lt;br /&gt;
&lt;br /&gt;
Also additionally some heroes originally have fire and water magic banned. In some ways this can be thought of as an advantage (these heroes can guarantee earth and air), but with the spell rebalance, it seems like unnecessary lacking.&lt;br /&gt;
&lt;br /&gt;
The only issue I can see with the changes would be breaking of the skill trees (same seed and same progression would result in different skills), but imo this already happens with the multiplayer maps if some skills are disallowed. And of course making some skills more viable to pick did already change that anyway.&lt;br /&gt;
&lt;br /&gt;
* Interference - From 1.3.7 interference will have 1 chance to roll and no longer be banned for all hero classes other than Wizards, Warlocks, Elementalists and Artificers; same with Resistance. Barbarians, Rangers etc will be able to learn all magic schools, with some schools being significantly favoured compared to others.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s there! Enjoy.&lt;br /&gt;
&lt;br /&gt;
== Bug report ==&lt;br /&gt;
&lt;br /&gt;
* Enabling Athe only makes Olenna disappear. No Athe is selectable in advanced options for random map. Which hero ID do I use to enable Athe with? Olenna is enabled.&lt;br /&gt;
* Disabling Archibald seems to only enable Jeddite. Archibald&#039;s ugly face is still there! (And he can also appear in prisons). Which hero ID do I use to disable Archibald with?&lt;br /&gt;
* Pressing Reset does not get rid of Archibald or the pumpkin patch. How do I get rid of him/the patch?&lt;br /&gt;
* The patch also installs icons on my Linux desktop that do not work. :-)&lt;br /&gt;
* Hero Limit of 1 does not limit to a single hero. Prisons can still give you more (unlike with 8 max). Maybe one hero limit should be called disable hero hiring?&lt;br /&gt;
* It would seem that the original map editor (h3maped.exe) crashes after installing this patch (hota maped has never worked under Linux, so using the original one is the price us linux users have to pay). Not a big deal, but just let you know :-)&lt;br /&gt;
&lt;br /&gt;
Thanks for the help locating Mysticism in the dll! Adding the info to the modding part of the wiki - [[User:Tapani|Tapani]]&lt;br /&gt;
&lt;br /&gt;
== Request - Alt Version with DD/TP Nerfs reverted for single hero templates like duel ==&lt;br /&gt;
Hi there, loving the mod but am struggling to play and enjoy popular single hero templates like &amp;quot;duel 2.7&amp;quot; with the mana cost and movement cost nerfs to DD and TP. While the nerfs feel really good on standard multi-hero templates and open up more choices in building your hero, on single hero templates like duel they feel punishing and somewhat force you to pick a few specific heroes to offset the significant reduction in tempo from the changes. A lot of these templates are built around immediate access and use of these spells so the balance of the spells is less of an issue. The spell school change is interesting and seems good, although fire magic now feels really strong since it covers expert DD and expert TP, but since fly is still air the balance does not seem affected too strongly by this change.&lt;br /&gt;
Making a alternate version is hard enough let alone maintaining one so I fully understand if it is not something you want to do at this time.&lt;br /&gt;
* The feature you&#039;re describing is currently being prepared. Melkor and I are working on a hex-swapper project which will allow you to customize which Pumpkin patch changes you want to keep and which you want to get rid of, with the possibility of changing these in-between games. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188081</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=188081"/>
		<updated>2025-11-04T04:31:54Z</updated>

		<summary type="html">&lt;p&gt;Tapani: Clarify intro to secondary skill modding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game, how secondary skills work is only determined by the .exe file (i.e. heroes3.exe). &lt;br /&gt;
In HotA, the skills are both in the h3hota.exe and in HotA.dll files. The former is typically used in single player games, and the latter for multiplayer. When starting a multiplayer game the game loads the HotA DLL, and overrides parts of the hota EXE.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify how secondary skills in multiplayer HotA.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, but you will get what you edited.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=188072</id>
		<title>Talk:Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=188072"/>
		<updated>2025-11-04T01:29:28Z</updated>

		<summary type="html">&lt;p&gt;Tapani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A lot of this information is already available in a very well-written guide by btb2. For now I&#039;ve been trying to cover what he&#039;s missing. Should I add the tips he presents, mention them, or just leave the guide as an external source? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
BTBs guides are for editing single-player, non-hota game, which is obsolete. At time of writing (2025 Nov) there is a shortage of resources for editing HotA. -[[User:Tapani|Tapani]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187968</id>
		<title>User talk:Csaros</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187968"/>
		<updated>2025-11-03T17:36:31Z</updated>

		<summary type="html">&lt;p&gt;Tapani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pumpkin Patch - User Requests =&lt;br /&gt;
&lt;br /&gt;
== Monoliths ==&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I love the changes made to HOTA!&lt;br /&gt;
&lt;br /&gt;
Do you think it would be possible to add a function where if you click a gateway/monolith it shows you the opposite end?&lt;br /&gt;
&lt;br /&gt;
Kind regards&lt;br /&gt;
&lt;br /&gt;
* I&#039;m gonna say probably not. The best that could possibly be done is probably something similar to quest messages &amp;quot;The Grail may be found in the %s regions of the world.&amp;quot; or &amp;quot;The Grail may be found in the %s regions of the underworld.&amp;quot;. But I don&#039;t think this could work with more than 1 exit for a portal. I&#039;ll put it in the To-Do list, but I&#039;ll honestly say I don&#039;t think this can be done. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 17:38, 1 October 2024 (UTC)&lt;br /&gt;
* Update: Melkor showed me that ERA has a similar feature. I&#039;ll try to figure out how they did it. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 18:10, 6 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fix Faerie Dragon damage calculation ==&lt;br /&gt;
&lt;br /&gt;
Faerie Dragons don&#039;t increase damage based on spell damage artis for Lightning Bolt, Ice bolt and Magic Arrow. (as noted by Melkor).&lt;br /&gt;
&lt;br /&gt;
== Request - Mysticism Buff / Mana Regen Items Buff ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Changes Requested:&#039;&#039;&#039;&#039;&#039; Increased to 6/12/18 (Wouldn&#039;t even grant a &#039;&#039;Fly&#039;&#039;) - 10/20/30 (&#039;&#039;Fly&#039;&#039; + &#039;&#039;Lightning Bolt&#039;&#039;, or 1 &#039;&#039;Dimension Door&#039;&#039;) Mana per Day, or maybe 6/13/25 depending on how much viable you want the skill to be.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Reasoning:&#039;&#039;&#039;&#039;&#039; Even with HOTAs update to 5/10/15 and your buff of the Hero Mysticism Speciality, the skill still doesn&#039;t feel that great in play. There are just much better option like Intelligence or Magic Schools, or any kind of Combat skill for a Battle Focused Frontline Character &#039;&#039;&#039;considering that you can just regenerate Mana to &#039;&#039;Full&#039;&#039; while spending a day in Town or by drinking from a Magic Well&#039;&#039;&#039;. In WOG/ERA you could set Mysticism to regen a percentage of max mana (10%/20%/30%) instead, and it still didn&#039;t feel game breaking. &lt;br /&gt;
&lt;br /&gt;
I honestly believe that even making it 10/20/30 points per day wouldn&#039;t overbuff it - there are plentiful of better skill option - while it would lead to Mysticism being much more bearable/viable. Compared to a Mage with Intelligence, who with 10-15 Wisdom would have 150-225pt Mana (or &#039;&#039;considerably&#039;&#039; more in longer games on bigger maps), and could still regen it so much more quickly &#039;&#039;in one go&#039;&#039; even without the Mysticism skill. Point based reg. Mysticism focused to Expert in the early game would at least allow Mage Heroes to fling a few spells more frequently in exploration-encounter combat.&lt;br /&gt;
&lt;br /&gt;
Mysticism Hero Speciality could even become additonal 2/lvl regen, instead of 1pt, with those changes above, and &#039;&#039;maybe&#039;&#039; would be kinda ok/good in the late game. You can just regen Mana too easily with other options...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Mana Items:&#039;&#039;&#039;&#039;&#039; In relation to the above, mana reg. items are really weak except for the combined item &amp;quot;Wizard&#039;s Well&amp;quot;. Making the Charm/Talisman/Mystic Orb of Mana grant 2/4/6 or 3/6/9 reg. would be a really nice improvement.&lt;br /&gt;
&lt;br /&gt;
Hope my suggestions didn&#039;t sound overly &amp;quot;stiff/businesslike&amp;quot; :D&lt;br /&gt;
&lt;br /&gt;
I&#039;m greatly enjoying playing HOTA again, with your mod-patch on top. Thank you for all your hard work!&lt;br /&gt;
&lt;br /&gt;
Kind Regards, &lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
* Granted. You&#039;ll see it in 1.3.1. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
== Request - Various Spell Changes ==&lt;br /&gt;
&lt;br /&gt;
Seeing as you can edit Spell Schools:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Remove Obstacle -&#039;&#039;&#039; Making it an All Schools spell would be nice (You can even make its costs higher [5/3 or 6/4] in exchange). Doesn&#039;t really feel like it should belong only to Water, or any 1 Element. Making it so it could remove 2 natural obstacles at Expert would be great, even at a higher Mana cost, but I&#039;m unsure if that&#039;s even possible to edit in.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Force Field -&#039;&#039;&#039; Again as above, All Schools pls. It creates a swirling wall of blue energy, doesn&#039;t feel very &#039;Earthy&#039;. Mana Cost reduction to 11/8 or 10/7 + &#039;&#039;maybe&#039;&#039; an additional +1 Round Duration at Expert (if possible to edit in). Its a &#039;&#039;really situational&#039;&#039; 3rd LvL spell - it works against melee only field encounters, but fliers and ranged can easily ignore it, and enemy Heroes could dispel it with the updated Remove Obstacle or just nuke creatures hiding behind the wall with offensive spells.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Slayer -&#039;&#039;&#039; All Schools? It works well for what it does, but I usually forget that it even exists, as it needs Fire Magic to let it affect other 7th LvL Creature Types. It doesn&#039;t really feel like it would need to belong to Fire, and Fire School has already 5 other, quite powerful, 4th Tier spells, the most out of all 4 Elemental Schools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Magic Mirror -&#039;&#039;&#039; It&#039;s still the worst 5th LvL spell. 40 Mana is too high for a chance of &#039;&#039;MAYBE&#039;&#039; reflecting spells from 1 Unit Stack. Anti-Magic just gives you spells immunity at a much lower cost (and it removes already present negative effects), the only difference being that it is dispellable, for which an enemy would usually need to waste his 1 spell/round. And even if you cast Magic Mirror, enemies will just plainly choose different targets for their spells, that&#039;s all. Fix: Reduce cost to 15-20, Make it All Schools as well, change reflect % to 40/60/80/100 or 30/50/70/90 if you want for it to still have RNG at Expert. If a player wanted to make all his creature completely spell immune, he would need to spend 7 turns of casting Magic Mirror in exchange for buffing/debuffing/offense.&lt;br /&gt;
&lt;br /&gt;
Thank you for all your hard work! Can&#039;t wait for the Mysticism changes!&lt;br /&gt;
&lt;br /&gt;
Kind Regards,&lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
** Moving spells to all schools - the base game has very few (I believe 2) spells that belong to all schools of magic. I moved TP to all schools for balance, but I don&#039;t want to now put all sorts of spells into all schoos as well. &lt;br /&gt;
** Remove Obstacle - I don&#039;t think I can make it work on 2 separate obstacles. &lt;br /&gt;
** Force Field is actually a really good spell! Try it yourself (or see a youtube video): a 150 marksmen with forcefield and some meat can take down a dragon utopia!&lt;br /&gt;
** Slayer got buffed to work on all units and is now a reasonable pick for dealing with difficult level 7 fights. Why doesn&#039;t it work on all t7? No idea, but its not really a balance issue. I &#039;&#039;could&#039;&#039; move it to another school... but I think Fire fits it very well - first of all, it&#039;s sort of a mirror image of prayer (the way frost ring and fireball are), and secondly it&#039;s about that inner fire, the will to fight. &lt;br /&gt;
** Magic Mirror - yeah, you make a good point. I think the whole concept of the spell is problematic (remember why Hota deleted Resistance?) and I think I&#039;ll have to change this spell more. &lt;br /&gt;
** I&#039;m glad you like the pumpkin patch! Thanks for the feedback! - Csaros&lt;br /&gt;
&lt;br /&gt;
Np. I was just brainstorming that maybe having 1 combat spell per tier of magic could be fun. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Remove Obstacle&#039;&#039; - Yeah, thought it would be impossible to script it for 2 separate obstacles. And if Force Field stays in One School, making Remove Obstacles All Schools would be a huge nerf to it. But maybe switching Remove Obstacle to Earth - as it is quasi terraforming the terrain - and Force Field to Water could work?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Force Field&#039;&#039; - Saw the video of Dragon Utopia. Interesting play. Still doesn&#039;t really fit with Earth from the look of the barrier :D, maybe Water if you wanted to have it in One Elemental School (as Water usually represents &#039;Utility&#039;)? But I can understand why you would want to just let it be as-is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Slayer&#039;&#039; - True, I forgot about the Mass Cast on Expert now! And Fire does usually represent &#039;Offense&#039;. Just that Fire already has Frenzy and Berserk, and the buffed Mass Cast Fire Shield works well too. But again, isn&#039;t a huge issue if it stays in its current form. Its rather specific in what it does, and with Mass Cast on Fire Expert, it works ok.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Magic Mirror&#039;&#039; - It&#039;s a tough nut to crack. I did try to coax AI heroes to target it, even reloading a fight and casting it on units, it debuffed or bolted previously as a spell opener, but it just switches targets or buffs its own units like a human player would, once Mirror was cast. Other H3 players speculate that it was just made to make acquiring the &#039;good&#039; 5th Tier spells harder. If it was All Schools (or maybe Air+Water? But again, I feel like the coding only allows for a spell either belonging to One or All Schools, right?), with a lesser mana cost and a higher reflection percentage (maybe even only up to 75-85 on Expert), it could be a reasonable alternative to the Earth-based Anti-Magic. And if you could make it that it cleanses negative effects from targeted creatures like Anti-Magic does, Mirror would be quite good I think. On my recent playthroughs on L-H random maps whenever I got it in 5th Tier Mage Guilds, it was just such a disappointment, even if I had Air Magic on a Hero, and I did get it multiple times even in newly conquered towns, often times with heroes that had other Spell Schools mastered.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work! :) &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll see the Magic Mirror at much higher % values in the next patch. I&#039;ll consider the Remove Obstacle - Force Field Swap. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 09:00, 20 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Request - Small Town Changes ==&lt;br /&gt;
&#039;&#039;&#039;[Fortress]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It has some good 5-7 LvL units, but the first 1-2 LvL are rather boring. Maybe that&#039;s why you can build Wyvern Nest so early? I remember that WOG added some kind of Preemptive Strike to Gnolls, and Double Attack to Lizards at Upgade. Preemptive Gnoll Atk. would be probably weird to implement (or not? Gunslingers have some Preemptive Shot, right?), and it honestly isn&#039;t that necessary, but the &#039;&#039;only&#039;&#039; Fortress Archer deserves some love :D&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Lizard Warrior (the Upg. Archer) -&#039;&#039;&#039;&#039;&#039; Add &#039;&#039;Double Attack&#039;&#039; (like Marksman, Grand Elf), Nerf Dmg to 2-4 from 2-5, Def to 6-7 down from 8, Health to 14 from 15. &#039;&#039;Maybe&#039;&#039; increase cost by 20-40g per unit? &#039;&#039;// It&#039;s more fun when a town has at least One viable Shooter unit. Most 2nd LvL Shooters in other towns like Marksman, Storm Elementals (especially those), Magogs, are much more powerful and even Halflings, a 1st LvL unit, have some special abilities now. A mostly &#039;defensive&#039;/&#039;tanky&#039; 1-shot Archer is kinda dumb.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Glyphs of Fear -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Blood Obelisk -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Dungeon]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Scorpicore -&#039;&#039;&#039;&#039;&#039; Maybe a small Dmg boost from 14-20 to 15/16-21/22, +10-20 HP? And a -2 Sulfur &amp;amp; -2 Mercury cost reduction to Manticore (Base) Dwelling? - Base Manticores don&#039;t have Special Abilities like Paralyzing Venom, so the first building is a bit costly too. &#039;&#039;// They kinda suck stat-wise as an Upg. 6th lvl unit. Compared to other creatures at the same Tier, they&#039;re the weakest of them all, cost more than better equivalents, die very easily and don&#039;t do much Dmg on the frontline. Paralyze is good, but it has a lower chance of triggering than Wyvern Monarch Poison; Unicorns have much frontline stats, Blind AND Magic resistance, AND cost &#039;&#039;less&#039;&#039;; Cyclops can attack from a safe distance and Shoot walls; Cavaliers have Jousting; Efreeti have really solid stats, Fire Immunity and get Fire Shield at Upg., etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Dragon Cave (Base) -&#039;&#039;&#039;&#039;&#039; Wood cost reduced to 10 down from 15? Maybe stone down to 10 too? Potentially in exchange for making the Dwelling Upg. cost 20 Wood &amp;amp; Ore instead, up from 15?  &#039;&#039;// Wood and Ore usually aren&#039;t a problem but it would be a small boost to get Red Dragons earlier, and diversify building costs between Base and Upg. Dwelling. (Rampart Dragon Cliffs have a Gold Increase between Base/Upgrade costs, Inferno Palace lessens Wood/Ore but Increases Gold. Some Towns have the same cost for 7th Base &amp;amp; Upg. Dwellings, but I think it would fit Dungeon to have that small bit of upgrade cost variety as Rampart, with its Dragon equivalent, has it too.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably my last suggestions for a while :D&lt;br /&gt;
&lt;br /&gt;
Can&#039;t wait for the next patch!&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
** You&#039;ll see a different Lizard Warrior buff in 1.3.1. Don&#039;t wanna give away too much before the big day. &lt;br /&gt;
** Scorpicores were buffed - now paralyse hits 25% of the time. &lt;br /&gt;
** Glyphs of Fear and Blood Obelisk are rather weak. &lt;br /&gt;
** Dragon Cave - There is a cost reduction for unupgraded dragon dwelling (by reducing cost of Manticore lair as a proxy). But know that I am a capricious lover and I take back everything I give, sometimes twofold. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Glyph/Obelisk&#039;&#039;&#039; - Sure, OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticores/Scorpicores&#039;&#039;&#039; - Consider that they are still relatively weak, potentially the weakest, even with better Paralyse proc chance (and you did buff other 6th Tier and Lesser Creatures procs while boosting Paralyse, like Unicorn Blind, Death Knight Blow, Thunderbird, Basilisk, Medusa, ... - I do like it, but it doesn&#039;t equalize Scorpicores that much). Iirc WOG buffed Scorpicores to 18-22 Dmg like Wyvern Monarchs (and Poison is 30% on those, right?) and they still felt borderline underwhelming, and rather not worth the Sulfur and Gold Dwelling cost. &lt;br /&gt;
&lt;br /&gt;
Maybe if you don&#039;t want higher Dmg on them, what about making the Scorpicores Upgrade a bit hardier with +15-20 HP, so that they can survive more to try proc some Venom, and at least Cutting Sulfur and reducing the Gold Costs (-1000g so the Base gold costs would be similar to other Unupgraded 6th Tier Dwellings - &#039;&#039;Fire Lake, Unicorn Glade, Golden Pavilion, Nix Fort, Watchtower&#039;&#039;, all 4000g for much better 6th Tier Unit Dwellings) from the Base Manticore Dwelling so that players wouldn&#039;t be inclined to skip it in favor of hoarding Sulfur for Dragon Cave. Base Manticore is &#039;&#039;really&#039;&#039; similar to Wyverns, but you can find Wyverns by freeing them from Dragonfly Dens and &#039;&#039;Wyvern Nest&#039;&#039; Costs 3500g + 15 Wood, while &#039;&#039;Manticores Lair&#039;&#039; Costs 5000g + 5 Sulfur + 5 Mercury + 5 Wood + 5 Ore. The more valuable resources Sulfur and Mercury, and 1500 higher Gold are a rather steep price considering that Manticores don&#039;t have Venom or any kind of other special ability or passive yet. Wyvern Monarch Dwelling only adds valuable resources like 10 Mercury on top to the Upgrade Cost once the creatures learn Poison. Unicorns, Efreets, Naga, etc. All have Special Abilities at Base, and so their 1st Unupgraded Dwellings cost valuable/rarer resources like Gems, Sulfur, Mercury, Crystals. &lt;br /&gt;
&lt;br /&gt;
Cyclops Dwelling Costs only Ore+Gold at base, and they&#039;re Shooters, with &#039;&#039;Siege Walls&#039;&#039;, similar stats to Manticores, better Minimum Dmg [16-20 vs Manticore 14-20] and Cost &#039;&#039;Less&#039;&#039; [Cyclops 750g vs Manticore 850g]. Only Cavaliers and Black Knights have a 5000g/6000g 1st Dwelling Cost, and still no special resources at Base, only Wood/Ore, and both are &#039;&#039;much&#039;&#039; better 6th Tier Units than Manticore statwise. Base Cavalier even has the Jousting ability already. And there exist Base Dwellings that Cost even less than 4000g, like &#039;&#039;Altar of Thought&#039;&#039; 3000g, &#039;&#039;Cyclops Cave&#039;&#039; 3500g, both giving better Units.&lt;br /&gt;
&lt;br /&gt;
An Unupgraded Efreety packs more punch (16-24), has more Health (90) and some nice passive immunity, costing 900g/unit - stronger than 1050g Scorpicore. An Upg. Efreety Sultan costing 1100g (50g more than Scorpicore), has still better Dmg and HP stats, passive immunity and Fire Shield. Unicorns have Blind/Res at base, 18-22 Dmg, 90 HP, at the Cost of 850g, while War Unicorns have Blind/Res, same Dmg, 110 HP at the Cost of 950g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Np, I develop Tabletops in my free time, so I know how balancing likes to meander XD. Should be OK tho. And feel free to add those -5 Wood/Ore as +5 Wood/Ore &#039;&#039;Cost Increase&#039;&#039; to the Upgradable Black Dragon Cave - should balance it out (like Ramparts Dragon Cliff does, just with Gold instead of Resources, Base 10000g vs Upg. 20000g, same 30 Ore + 20 Crystals on Base and Upg. Costs).&lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t favor Dungeon/Scorpicore as my Town/Creature of Choice, even if it sounds like that XD &#039;&#039;(The Statistics speak for themselves!)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* Fair enough, I just checked the numbers and yeah Scorpicores are trash. They&#039;ll get a small number buff. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And&#039;&#039; the Manticore Lair (Base) -5 Sulfur, -1000g? To 4000g, 5 Mercury, 5 Wood, 5 Ore? &#039;&#039;*Nudge, Nudge*&#039;&#039; :D&lt;br /&gt;
&lt;br /&gt;
The Cost of Base Lair actually started bothering me more and more the deeper I went into comparing Manticores against other, &#039;&#039;proper&#039;&#039; Tier 6 Units and &#039;&#039;their&#039;&#039; usual Dwelling Costs.&lt;br /&gt;
&lt;br /&gt;
The (Upg.) Manticore Lair Costs can freely remain as they are.&lt;br /&gt;
&lt;br /&gt;
Manticores/Scorpicores really are rather Trashtier 6th lvls. You can always reverse the Cost/Stat Changes later, if it altogether becomes a too strong Buff to Dungeon. Although I honestly doubt that it will end up feeling that way. &lt;br /&gt;
&lt;br /&gt;
- Eldrin.&lt;br /&gt;
&lt;br /&gt;
* Hey Eldrin, check out 1.3.1! A lot of the stuff you&#039;ve asked for is here! - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
Zgaduję, że skoro planujesz zrobić własne polskie tłumaczenie, to pewnie komunikacja po polsku będzie łatwiejsza? (Skoryguj mnie jeśli angielski jest dla ciebie wygodniejszy!)&lt;br /&gt;
&lt;br /&gt;
Ogólnie, wszystkie zmiany są raczej krokiem w dobrym kierunku, chociaż może w niektórych przypadkach nie są one aż tak dotkliwe jak bym tego pragnął :D&lt;br /&gt;
&lt;br /&gt;
Tylko, że coś występuje kilka problemów w mojej wersji H3. Po skopiowaniu 1.3.1 wyskakuje mi błąd (ResourceManager::GetBitmap816 could not find &amp;quot;bitmap8&amp;quot; resource &amp;quot;HPS219Sh.PCX) i zniknął polepszony wgląd Bohaterów (szczegółowe info miast tylko wyświetlania Specjalności Bohaterów) - niestety nie mam uprawnień by dzielić się tutaj linkami do screenshotów ;/ . Błąd naprawiłem, gdy po porównaniu 1.3.1 z archiwum poprzedniej wersji zauważyłem, że pliki &#039;&#039;Hota.lod&#039;&#039; i &#039;&#039;Hota_lng.lod&#039;&#039;, mają iść do folderu &#039;&#039;Data&#039;&#039; (wtedy też zmiany zaczęły funkcjonować gdy odpaliłem jakąś mapę), ale wgląd Bohaterów nadal jest &#039;uproszczony&#039;, więc zgaduję, że coś jest jeszcze nie tak? Po pierszym skopiowaniu plików nie działało, zrobiłem świeżą instalkę, update HD moda i dopiero po tym zauważyłem to z plikami do &#039;&#039;Data&#039;&#039; - dzisiaj 21.10 HD mod też dostał jakąś łatkę, to może to coś sknociło? Bo jak skopiowałem Pumpkin 1.3.0 to też szczegółowego wglądu brakowało. Chyba, że jeszcze czegoś brakuje w folderze Data 1.3.1? (Mam Angielską wersję GOG)&lt;br /&gt;
&lt;br /&gt;
// Update: Yup, coś jest zdecydowanie nie tak, bo po restarcie gry, zmiany Pumpkin Patcha przestały funkcjonować.&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
Dla mnie polski, angielski, hiszpański - obojętnie. Spróbuj proszę pobrac ponownie 131 i przenieść Hota_lng.lod i Hota_lod do folderu Data. Czy teraz wszystko działa? Dzisiaj testowałem i było ok... Jak chodzi o szczegółowe info - co konkretnie nie działa? W jaki sposób? - Csaros&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gdy przytrzymywało się prawy przycisk myszki na obrazku Bohatera, podczas obierania Zamków, przed odpaleniem mapy, przy generowaniu Random Map, dawało to zwykle szczegółowy wgląd: jaki ten Bohater ma armię, staty, zdolności, itp. Teraz po patchu 1.3.1, prawy przycisk na bohaterze tylko wyświetla mi informacje jaką bohater ma specjalność. Jeśli dobrze kojarzę, to tę opcję z większymi szczegółami wprowadził pierwotnie HD mod. Gdy zrobiłem czystą instalację dla 1.3.1, i nacisnąłem &#039;Update&#039; na Launcherze HD moda, to zupdatował się do jakieś, niby dzisiejszej (21.10.2024) wersji 5.5 R9 ze zmianami:&lt;br /&gt;
&lt;br /&gt;
[ ] Library patcher_x86.dll updated to version 4.18 (bug fixed)&lt;br /&gt;
&lt;br /&gt;
[-] HotA 1.7.1: fixed bug with bank in factory.&lt;br /&gt;
&lt;br /&gt;
[ ] HotA: Some changes, fixes, optimizations in the online lobby.&lt;br /&gt;
&lt;br /&gt;
[ ] Some changes, fixes, optimizations.&lt;br /&gt;
&lt;br /&gt;
[!] SoD: HoMM3 HD libraries are now built with new development tools. Incompatibility with plugins that modify these libraries is possible. If you find an incompatibility with such a plugin, contact its author.&lt;br /&gt;
&lt;br /&gt;
[!] WoG/ERA HoMM3 HD libraries are now built with new development tools. Incompatibility with mods/plugins that modify these libraries is possible.&lt;br /&gt;
&lt;br /&gt;
Dlatego też myślałem, że może HD mod jakoś zdołał wyjść nowy czasowo tuż po twoim updacie do 1.3.1 i wyszły jakieś nieścisłości.&lt;br /&gt;
&lt;br /&gt;
Oprócz tego, gdy parę razy wyłączyłem i ponownie odpaliłem H3 od nowa, po czym wystartowałem nową grę na nowej mapie, ustawienia jak zmiany do &#039;&#039;Lizard Warriorów&#039;&#039;, czy &#039;&#039;Manticore Lair&#039;&#039; przestały funkcjonować, zwyczajnie staty/koszty przywróciły się do standard Hota - pomimo, że te zedytowane przez ciebie pliki były nadal na swoich odpowiednich miejscach w folderze H3. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ale ogólnie, zrobiłem teraz jeszcze raz &#039;&#039;kolejną&#039;&#039; świeżą instalację i szczegółowe statystki pod prawym przyciskiem myszki wróciły, i Pumpkin Patch nadal działa jak powinien po restarcie H3, więc może ta poprzednia instalacja się u mnie coś zchraniła. Albo też to, że poprzednio raz odpaliłem grę, zanim dodałem te brakujące pliki do folderu &#039;&#039;Data&#039;&#039;, i to mogło już coś uszkodzić, zanim je później dodałem. Jakby coś znowu zaczęło się psuć, to dam znać.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
== Krytyka i Sugestie Dalszych Zmian (Post 1.3.1) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Imps and Familiars&#039;&#039;&#039; - Nawet fajna zmiana. Dodałbym jeszcze info &#039;&#039;Flies&#039;&#039; w opisie jednostek.&lt;br /&gt;
* Jest chyba od 1.3.2. Teraz w 1.3.4 chyba wszystkie błędy naprawione z brakującym tekstem, etc. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - Spoko, jest to napewno coś innego niż pozostali 2-poziomowi Strzelcy, i działa całkiem w porządku za te koszta jednostki. Może zamieniłbyś też Atk.&amp;lt;-&amp;gt;Def. &#039;&#039;&#039;Podstawowych &#039;&#039;Lizardman&#039;ów&#039;&#039;&#039;&#039;&#039;, żeby miały trochę większy Atak miast Obrony? (Lizard Warrior dostaje jakąś zbroje skórzaną po ulepszeniu - to może być ten odpowiednik 1 Def. różnicy :D)&lt;br /&gt;
* Fair enough. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticore Lair&#039;&#039;&#039; - całościowo powiedziałbym, że nadal kosztuje zbyt dużo w porównaniu z tym jakie jednostki daje - większość 6-poziomowych jednostek jest nadal mocniejsza niż zwykła Mantykora [np. Cyclop, Gunslinger, Unicorn]. Zmniejszenie Bazowej Budowli o 1000g jest spoko, ale &#039;&#039;&#039;Podstawowy Manticore Lair&#039;&#039;&#039; nadal nie ma powodu by kosztować dodatkowe 5 Siarki i 5 Rtęci - jak już pisałem powyżej po angielsku, wszystkie 6-poziomowe budowle w innych zamkach, co wykorzystują &#039;&#039;rzadsze surowce niż Kamień/Drewno&#039;&#039;, produkują jednostki mające jakąś dodatkową zdolność pasywną bądź aktywną (przykładowo &#039;&#039;&#039;Unicorn Glade&#039;&#039;&#039;, 5 Drewna, 5 Kameni, 10 Klejnotów, 4000g (Bardzo zbliżone koszta Budowli do Manticore Lair, zamieniając Klejnoty na Rtęć i Siarkę) - Jednostki mające &#039;&#039;Blind + Magic Res.&#039;&#039; [Ulepszona Budowla tylko &#039;&#039;5 Klejnotów!&#039;&#039;, 3000g]; &#039;&#039;&#039;Wyvern Nest&#039;&#039;&#039;, 15 Drewna, 3500g - Najtańsza budowla 6-poziomowa, ale Wyverny nie mają żadnych dodatkowych zdolności i należą do słabszych 6-tek. Nieulepszone Wyverny można za to też &#039;uratować&#039; z Dragon Fly Hives co polepsza ich sytuację. Koszt &#039;specjalnych&#039; surowców dopiero jest dodawany, na &#039;&#039;&#039;Ulepszone Wyvern Nest&#039;&#039;&#039; - &#039;&#039;10 Rtęci&#039;&#039;, 10 Drewna, 3000g - gdy zyskują &#039;&#039;Poisonous&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Sugestia:&#039;&#039;&#039;&#039;&#039; Wyrzucenie &#039;&#039;5 Siarki&#039;&#039; [lub redukcja na &#039;&#039;3 Siarki + 3 Rtęci&#039;&#039; - choć z tym pragnąłbym jakiś mały buff jak 10-15% Venom już u samych Mantykor] z kosztów Podstawowej Budowli &#039;&#039;&amp;lt;- moja preferowana opcja&#039;&#039;, TUDZIEŻ dodanie Mantykorom 25% &#039;&#039;Paralyzing Venom&#039;&#039;. Pragnę też zaznaczyć, że po twoim przeniesieniu 1000g z &#039;&#039;&#039;&#039;&#039;Podstawowej&#039;&#039;&#039;&#039;&#039; na &#039;&#039;&#039;&#039;&#039;Ulepszoną&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;Manticore Lair&#039;&#039;&#039;, jest to teraz jedyna &#039;&#039;&#039;Ulepszona&#039;&#039;&#039; Budowla 6-poziomowa spośród wszystkich zamków, która kosztuje 4000g, wszystkie inne posiadają koszty złota wynoszące 3000g, nawet &#039;&#039;&#039;Ulepszona Hall of Darkness&#039;&#039;&#039;, produkująca najpotężniejsze 6-poziomowe jednostki. Prosiłbym więc o upuszczenie tych 1000g różnicy (Utrzymywanie równie wysokich kosztów budowli jakie były pierwotnie przed zmianami jest w przypadku Manticore Lair kompletnie niepotrzebne - nadal nie mają tak silnych istot, by gwarantować te koszta, pomimo [fajnego] polepszenie Scorpicor!). I po zmianach kosztów &#039;&#039;Mana Vortex&#039;&#039; oraz &#039;&#039;Portal of Summoning&#039;&#039;, Dungeon jest najdroższym miastem po Factory i Conflux pod względem Złota za Budowle. Te trochę zmian do &#039;&#039;Manticore Lair&#039;&#039; balansu gry nie zniszczy - &#039;&#039;a wręcz go poprawi!&#039;&#039; (Swoją drogę, pragnę zaznaczyć, że wcześniej &#039;&#039;mylnie&#039;&#039; myślałem o możliwości przeskoczenia Mantykor, by szybciej budować Smoki, ale &#039;&#039;Manticore Lair&#039;&#039; jest potrzebny by móc budować &#039;&#039;Dragon Cave&#039;&#039;, więc nawet przeskoczyć ich się nie da...)&lt;br /&gt;
* Chciałbym by Rtęć i Siarka pozostały wymaganiami, żeby budowanie Smoków było równie trudne. Ale masz rację - są strasznie drogie. Jestem gotowy zmienić koszt budynku podstawy na &#039;&#039;&#039;3&#039;&#039;&#039; rtęci, &#039;&#039;&#039;3&#039;&#039;&#039; siarki, 5 drewna, 5 kamieni, &#039;&#039;&#039;3&#039;&#039;&#039;000 złota, koszt ulepszenia cofnąć do oryginalnego. Dodawanie Venomu podstawie na innej szansie wymagałoby w zasadzie stworzenie nowej zdolności dla nich; dodawanie go w pełni na podstawie usunęłoby w ogóle potrzebę ulepszania do Skorpikor. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ok, Super. To już powinno być w porządku nawet bez Venom na Mantykorach. --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magic Mirror&#039;&#039;&#039; - Nadal jest raczej słabe, jak na 5-pz Czar. Zmieniłbym na &#039;&#039;All Schools&#039;&#039; (- naprawdę sądzę, że to by bardzo do tego Spella pasowało) i dał &#039;&#039;Additionally, it removes negative spell effects (e.g. curse) but not positive spell effects (e.g. bless)&#039;&#039; - tak jak posiada Anti-Magic (o ile da się to wkodować do innego Spella). Wtedy Czar byłby git. Mógłbyś też ewentualnie miast tego obniżyć poziom na 3/4th lvl, ale powiedziałbym, że większość czarów przynajmniej 4-poziomu jest od Mirror w stanie obecnym nadal o wiele lepsza. Mirror tylko byłby przesadnie zbuffowany, jeślibyś nagle zmienił go na All-Castem - to by było OP.&lt;br /&gt;
* Nie wiem jak dodać clearowanie jakiś konkretnych efektów spellem, który normalne niczego nie clearuje. Ten spell był błędem gdy powstał. Teraz daje tak wysokie szanse na odbicie, że żaden rozsądny gracz nie rzuci łańcucha piorunów ani innych spelli na kogoś obdarzonego tym czarem. Jakby go dać do all schools, to jeszcze bardziej osłabi Air magic a już słyszałem narzekanie, że Fire jest lepszy od Air teraz. Przesunięcie do 4-poziomu: nie jestem fanem; po pierwsze, wtedy trzeba by przenieść coś z 4 do 5 (by się liczba spelli zgadzała) a po drugie, wtedy Złote Smoki byłyby jeszcze gorsze (Magic Mirror to taki AntiMagic dla złotych smoków). Jedyny sposób w jaki mógłbym polepszyć ten spell to a) zmienić koszt b) zmienić szanse c) zrobić all-cast z mniejszą szansą (ale to byłoby kind of cancer jak chodzi o usuwanie wszystkich hirków z spellami z obrażeniami). - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Osobiście uważam, że Air jest nadal spoko - Dimension Door był spellem, który kompletnie trywializował poruszanie się po mapie, zmiana jego na Fire całkiem dobrze mi odpowiadała i pasowała tematycznie (portal &#039;wypalając&#039; wyrwę w czasoprzestrzeni + oczywiście Gate u Inferno) no i Air ma jeszcze czar &#039;podróżny&#039; w postaci Fly. Chain Lightning poniekąd da się wycelować, zajęłoby raczej 3-4 casty Mirror by kompletnie zniesmaczyć Chain Lightning i AOE Debuffy (i nadal miałby 30% szansę na nieodbice w stanie obecnym). Counterstrike, Fortune, Air Shield, Precision są wszystkie spoko. Fly niwelujący dodatkowe koszta terenu czasem bardziej się opłaca niż DD. Ale jak tak jeszcze raz rzuciłem okiem na Elementarne Szkoły potrafię zrozumieć dlaczego inni graczę mogliby argumentować, że za bardzo nerfisz Air, gdybyś dał Mirror na All Schools. &#039;&#039;&#039;To co powiesz na to:&#039;&#039;&#039; 50/75/100% (&amp;lt;- To by było chyba najlepsze, by Air School się bardziej opłacało brać) albo 60/80/100% na Mirror i zmniejszenie kosztów do tych samych co Anti-Magic. Wiem, że 100% może brzmieć na pierwszy rzut oka przesadnie, ale bez możliwości wkodowania &#039;oczyszczenia&#039; jednostek gdy się na nich rzuca Mirror, dużo zależy od tego czy masz pierwszy ruch w walce, by uchronić daną jednostkę przed Debuffem, trochę mniej ważne w częstszych situacjach przed 1-osobowym zmiażdżeniem jak Implozja, bo nie zawsze ktoś Implozję ma - oczyścić jej już za jednym zamachem z Debuffa nie oczyścisz, więc niech już Mirror ma przynajmniej to 100% na Expercie. W przeciwnym wypadku Anti-Magic+Earth Magic Skill wydaje się nadal silniejsze/bardziej opłacalne. Ochrona złotych smoków przeciw Implozji jest silna, ale to jest za bardzo sytuacyjne, i wydaje się raczej jak patchowanie niedociągłości jednej jednostki niż jak 5-pz spell jak Mirror powinien w rzeczywistości fungować.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mysticism&#039;&#039;&#039; - Początkowa regeneracja nadal mierna, i późniejsza mogłabybyć trochę wyższa - &#039;&#039;dałbym 5/13/25&#039;&#039; albo &#039;&#039;8/16/25&#039;&#039;. Na większych mapach (L+) wydaje się wciąż, że lepiej jest ignorować ten Skill i Bohaterów mających Mysticism od początku. (Gdy gram, balansując 3/2 - Power/Wisdom, mana prawie mi się nie kończy. Zawsze znajdzie się Miasto z Gildią, albo Magic Well w pobliżu - wystarczy tylko trochę patrzeć, gdzie się rusza Bohaterów. To po co miałbym w ogóle brać Mysticism? Wolałbym nawet mieć ten nowy Learning albo Eagle Eye XD)&lt;br /&gt;
* Miło mi słyszeć, że podoba ci się nowy Learning! Jak chodzi o Mistycyzm, moim zdaniem jest już całkiem dobry jak grasz na Impossible i chcesz wysoki Score zdobyć (by się nie wracać do zamku ciągle). Na stronie [[Mysticism]] wstawiłem porównanie z inteligencją - więc mój nowy ekspercki mistycyzm działa idealnie jesli używasz 60 many dziennie (DD, TP i &amp;quot;coś extra&amp;quot;). Poza tym, nie podoba mi się 5/13/25. Prędzej bym dał 6/11/21 (i przedstawić to jako 1+5/10/25) no może 10/20/30 (choć to chyba trochę za dużo). Co sądzisz? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
Edit: szczerze mówiąc 6/11/21 bardzo mi sie podoba i chyba tak dam. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ja bym szczerze gorąco polecał Ci wypróbować przynajmniej na kilku grach u siebie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; na jakiś Większych Random Mapach L/XL/H + Podziemia, jeśli jesteś bardziej do tego skory niż 5/13/25 - 8/16/25 i inne kombinację (może &#039;&#039;&#039;5/15/25&#039;&#039;&#039; XD?). Też się zgodzę, że pod względem estetyki 10/20/30 wygląda najładniej jako liczba. Teraz na 5/10/20, Basic/Advanced jest dosyć słabe, i Expert też nie jest aż tak mocny, chyba, że ma się szybko Artefakt(y) - &#039;Mystic Orb&#039; dający dodatkowe 7 Many/dzień albo te dwa mniejsze odpowiedniki, tudzież jest to postać z Specjalnością Mistycyzm mająca już dobrą garść lvli - i nadal to, w tych specyficznych kombinacjach gdy gram, nie wydaje się &#039;aż tak silne&#039;, tylko raczej takie &#039;jakość-tak-może-ok&#039;. Jak za pierwszym razem pisałem o Mistycyzmie, wspominałem o procentowym regenerowaniu jako opcja u WOGa (10/20/30 &amp;gt;%&amp;lt;) - tą opcję testowałem wielokrotnie, wydawała się dobra [i nawet wcale nie aż tak mocna, jak się nie miało włączone 10 miast 8 Secondary Skill, niżby się na pierwszy rzut oka wydawało], ale nie przesadna - więc nie sądzę żeby nawet 10/20/30, mając tylko 8 Skill-slotów do dyspozycji, zniszczyło balans, ale sprawiłoby by Bohaterowie-Czarodzieje biliby bardziej skłonni do brania Mana-Regena nawet jeśliby nie mieli Specjalności. 30% to 90% Max Many &#039;dopiero&#039; po 3 dniach, na 15 Wisdom to 135 Many, a na mapach L+ z Podziemiami, ma się często o &#039;wiele&#039; więcej, i Procentowy Regen balansu gry nie zniszczył. Intelligence nadal wydawał się dużo mocniejszy pomimo &#039;%&#039; Regena, bo grając agresywnie i podbijając Zamki / rozplanowując ruch bohatera po już kontrolowanych terytoriach do Magicznych Studni i Zamków (+ też rzadszy Magic Spring, o którym wspomniałeś w adnotacji na stronce o Mistycyzmie), nadal o wiele prościej dało się regenerować o wiele większy zasób Many i to w pełni(!), w ciągu tylko jednego dnia(!) niż czekać na działanie &#039;procentowego&#039; Mistycyzmu do Maxa (I nawet po nerfie HOTA do 50%, Intelligence w mojej opinii jest silniejsze). 10/20/30 &#039;Punktowego&#039; Regenerowania naprawdę nie powinno się okazać nazbyt silne, da co najwyżej parę spelli w pierwszych walkach z neutralnymi NPC blokującymi drogę na mapie. Może to zwyczajnie kwestia różnych Stylów-gry - tak jak pisałeś o średniej Manie zużywanej na dzień - i ostatecznie wezmę to co dasz na Mistycyzm (HOTA z Pumpkinem jest już bardzo w porządku, i nowe Factory bardziej mi się spodobało niż w pierwszej chwili sądziłem), ale jest powód dla którego apelowałem/-uję o przynajmniej podbicie jeszcze troszkę Advanced (12-16) i Expert (przynajmniej do 25), Basic niech sobie będzie tym przysłowiowym &#039;Basic&#039;iem&#039;. Jeśli nie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; to &#039;&#039;&#039;5/15/25&#039;&#039;&#039; brzmi chyba też całkiem nieźle ^^ ? --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dalsze pomysły:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Scholar&#039;&#039;&#039; - Przy testowaniu 1.3.1 zauważyłem, że &#039;&#039;&#039;Scholar&#039;&#039;&#039; uczy tylko 1-2/3/4-lvl max czarów. Czy zmiana na 1-3/4/5 byłaby zbyt potężna? Komponowałby się lepiej z nowym &#039;&#039;&#039;Eagle Eye&#039;&#039;&#039;.&lt;br /&gt;
* No zmiana na 3/4/5 trochę by zrujnowała cały koncept postaci Gwenneth. Byłaby dość potężna (obecnie główne ograniczenie hirków ze scholarem to wymaganie level-upu by dzielić silniejsze czary) no i tbh ja zawsze chcę mieć co najmniej jednego hirka ze scholarem tak czy siak. No i wyobraź sobie takiego Alamara, który na 2 poz. (czyli 1. tura z Battle Scholar Academy) może już uczyć wszystkich nowych hirków Wskrzeszenia... Myślę że Scholar jest okej. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Z tym się zgodzę, za szybkie dzielenie się 4th lvl Spellami, z którymi startują niektórzy Bohaterowie, na samym &#039;Advanced Scholar&#039;, mogłoby być za silne w Early-gamie. Scholar wydawał mi się już w stanie obecnym całkiem dobry, bo samo przenoszennie 4-pz Czarów jest całkiem spoko, ale wolałem podrzucić zapytanie. - korzystam raczej sporadycznie ze Scholara, jak się natrafi, na swoich Utility-Heroesach i póżniej rozsyłam by przenosiły Spelle dalej od Zamków/Głównego Bohatera, ale też nie zawsze. Tak jak teraz piszę, to ciekawe byłoby, gdyby istniał jakiś (Major?) Artefact, który by Scholar zwiększał o 1-lvl Spelli.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Ponownie proszę o przeniesie 5 Kamieni i 5 Drewna (:D) z kosztów Bazowych do Ulepszonych, by wyglądały: &#039;&#039;&#039;Podstawowe Dragon Cave&#039;&#039;&#039; (Czerwone Smoki) &#039;&#039;10 Drewna, 10 Kamienia&#039;&#039;, 20 Siarki, 15000g; &#039;&#039;&#039;Ulepszone Dragon Cave&#039;&#039;&#039; (Czarne Smoki) &#039;&#039;20 Drewna, 20 Kamienia&#039;&#039;, 20 Siarki, 15000g (&#039;&#039;Total costs for both dwellings remain the same.&#039;&#039;). Posiadanie takich samych kosztów Bazowych i Ulepszonych Budowli, jest dosyć &#039;nudne&#039;, a wiele innych zamków ma inaczej - szczególnie Rampart, które ma niemalże lustrzane odbicia Smoków Dungeon&#039;a (Tematycznie Dobre vs. Złe Smoki?). U Rampart &#039;&#039;&#039;Bazowe Dragon Cliffs&#039;&#039;&#039; kosztuje 30 Kamienia, 20 Kryształów, &#039;&#039;10000g&#039;&#039;, a &#039;&#039;&#039;Ulepszone Dragon Cliffs&#039;&#039;&#039; 30 Kamienia, 20 Kryształów, &#039;&#039;20000g&#039;&#039;. Kamienia i Drewna raczej na mapach nie brakuje, więc na Całościowy Balans nie powinno to raczej wpłynąć (może gracz Dungeon będzie miał 250g więcej na Budowlę Czerwonych Smoków po sprzedaniu tych 5 Kamienia/Drewna na targowisku, XD)&lt;br /&gt;
* No w zasadzie... Dobra. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice! &#039;&#039;--[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
Jeszcze raz dzięki za twoją pracę nad patchowaniem H3. Nawet jeśli postuluję o dalsze działania, twoje już zaimplementowane zmiany o wiele polepszyły moją grę w Heroes&#039;y (wreszcie gram w HOTA i nie muszę się już męczyć z WOG/Era, jeśli nie chcę zbyt odbiegających, dalszych customizacji). Mam nadzieję, że moje sugestie polepszeń nie wydają się zbyt &#039;upierdliwe&#039; XD. Dzielę się nimi z własnej miłości dla Heroes III (i mając trochę bzika na punkcie statystyk i analizowania/balansowania różnych gier...).&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* No oczywiście, że mi nie przeszkadzają! Bardzo mi miło, że ktoś chce ze mną omawiać balans gier. Masz może jakiś inny komunikator poza tym czatem? Discord, acidcave.net, etc.?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Discorda w zasadzie mam, tylko raczej bardzo rzadko z niego korzystam. &#039;&#039;&#039;Założyłem konto na acidcave.net, i podesłałem wiadomość :)&#039;&#039;&#039; . Tutaj jeszcze odpisałem powyżej na dyskusję, ale jakby co to możemy już na Kwasowej pisać.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
== Interference and Water/Fire magic ==&lt;br /&gt;
&lt;br /&gt;
Would you be okay with Interference to give same values as the original Resistance? I feel like removing in completely on most magic heroes was not good idea.&lt;br /&gt;
&lt;br /&gt;
Also additionally some heroes originally have fire and water magic banned. In some ways this can be thought of as an advantage (these heroes can guarantee earth and air), but with the spell rebalance, it seems like unnecessary lacking.&lt;br /&gt;
&lt;br /&gt;
The only issue I can see with the changes would be breaking of the skill trees (same seed and same progression would result in different skills), but imo this already happens with the multiplayer maps if some skills are disallowed. And of course making some skills more viable to pick did already change that anyway.&lt;br /&gt;
&lt;br /&gt;
* Interference - From 1.3.7 interference will have 1 chance to roll and no longer be banned for all hero classes other than Wizards, Warlocks, Elementalists and Artificers; same with Resistance. Barbarians, Rangers etc will be able to learn all magic schools, with some schools being significantly favoured compared to others.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s there! Enjoy.&lt;br /&gt;
&lt;br /&gt;
== Bug report ==&lt;br /&gt;
&lt;br /&gt;
* Enabling Athe only makes Olenna disappear. No Athe is selectable in advanced options for random map.&lt;br /&gt;
* Disabling Archibald seems to only enable Jeddite. Archibald&#039;s ugly face is still there! (And he can appear in prisons).&lt;br /&gt;
* Pressing Reset does not get rid of Archibald or the pumpkin patch. How do I get rid of him/the patch?&lt;br /&gt;
* The patch also installs icons on my Linux desktop that do not work. :-)&lt;br /&gt;
* Hero Limit of 1 does not limit to a single hero. Prisons can still give you more (unlike with 8 max). Maybe one hero limit should be called disable hero hiring?&lt;br /&gt;
* It would seem that the map editor (h3maped.exe) crashes after installing this patch.&lt;br /&gt;
&lt;br /&gt;
And a selfish question: do you know how to modify skills changed by Hota? &lt;br /&gt;
I presume they are in the HotA DLL. Would like to have original Pathfinding and nerf the new Mysticism; 30%+ mana/day is too much.&lt;br /&gt;
(We have been playing heroes our way with LONG game on max maps for 20 years, and have no intention of start playing Jebus Cross. Managing mana was one of the big factors for us). - [[User:Tapani|Tapani]]&lt;br /&gt;
&lt;br /&gt;
== Request - Alt Version with DD/TP Nerfs reverted for single hero templates like duel ==&lt;br /&gt;
Hi there, loving the mod but am struggling to play and enjoy popular single hero templates like &amp;quot;duel 2.7&amp;quot; with the mana cost and movement cost nerfs to DD and TP. While the nerfs feel really good on standard multi-hero templates and open up more choices in building your hero, on single hero templates like duel they feel punishing and somewhat force you to pick a few specific heroes to offset the significant reduction in tempo from the changes. A lot of these templates are built around immediate access and use of these spells so the balance of the spells is less of an issue. The spell school change is interesting and seems good, although fire magic now feels really strong since it covers expert DD and expert TP, but since fly is still air the balance does not seem affected too strongly by this change.&lt;br /&gt;
Making a alternate version is hard enough let alone maintaining one so I fully understand if it is not something you want to do at this time.&lt;br /&gt;
* The feature you&#039;re describing is currently being prepared. Melkor and I are working on a hex-swapper project which will allow you to customize which Pumpkin patch changes you want to keep and which you want to get rid of, with the possibility of changing these in-between games. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=187967</id>
		<title>Talk:Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=187967"/>
		<updated>2025-11-03T17:35:55Z</updated>

		<summary type="html">&lt;p&gt;Tapani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A lot of this information is already available in a very well-written guide by btb2. For now I&#039;ve been trying to cover what he&#039;s missing. Should I add the tips he presents, mention them, or just leave the guide as an external source? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
BTBs guides are for editing the non-hota game, which is obsolete. At time of writing (2025 Nov) there is a shortage of resources for editing HotA. -[[User:Tapani|Tapani]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187966</id>
		<title>User talk:Csaros</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187966"/>
		<updated>2025-11-03T17:34:09Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Bug report */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pumpkin Patch - User Requests =&lt;br /&gt;
&lt;br /&gt;
== Monoliths ==&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I love the changes made to HOTA!&lt;br /&gt;
&lt;br /&gt;
Do you think it would be possible to add a function where if you click a gateway/monolith it shows you the opposite end?&lt;br /&gt;
&lt;br /&gt;
Kind regards&lt;br /&gt;
&lt;br /&gt;
* I&#039;m gonna say probably not. The best that could possibly be done is probably something similar to quest messages &amp;quot;The Grail may be found in the %s regions of the world.&amp;quot; or &amp;quot;The Grail may be found in the %s regions of the underworld.&amp;quot;. But I don&#039;t think this could work with more than 1 exit for a portal. I&#039;ll put it in the To-Do list, but I&#039;ll honestly say I don&#039;t think this can be done. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 17:38, 1 October 2024 (UTC)&lt;br /&gt;
* Update: Melkor showed me that ERA has a similar feature. I&#039;ll try to figure out how they did it. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 18:10, 6 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fix Faerie Dragon damage calculation ==&lt;br /&gt;
&lt;br /&gt;
Faerie Dragons don&#039;t increase damage based on spell damage artis for Lightning Bolt, Ice bolt and Magic Arrow. (as noted by Melkor).&lt;br /&gt;
&lt;br /&gt;
== Request - Mysticism Buff / Mana Regen Items Buff ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Changes Requested:&#039;&#039;&#039;&#039;&#039; Increased to 6/12/18 (Wouldn&#039;t even grant a &#039;&#039;Fly&#039;&#039;) - 10/20/30 (&#039;&#039;Fly&#039;&#039; + &#039;&#039;Lightning Bolt&#039;&#039;, or 1 &#039;&#039;Dimension Door&#039;&#039;) Mana per Day, or maybe 6/13/25 depending on how much viable you want the skill to be.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Reasoning:&#039;&#039;&#039;&#039;&#039; Even with HOTAs update to 5/10/15 and your buff of the Hero Mysticism Speciality, the skill still doesn&#039;t feel that great in play. There are just much better option like Intelligence or Magic Schools, or any kind of Combat skill for a Battle Focused Frontline Character &#039;&#039;&#039;considering that you can just regenerate Mana to &#039;&#039;Full&#039;&#039; while spending a day in Town or by drinking from a Magic Well&#039;&#039;&#039;. In WOG/ERA you could set Mysticism to regen a percentage of max mana (10%/20%/30%) instead, and it still didn&#039;t feel game breaking. &lt;br /&gt;
&lt;br /&gt;
I honestly believe that even making it 10/20/30 points per day wouldn&#039;t overbuff it - there are plentiful of better skill option - while it would lead to Mysticism being much more bearable/viable. Compared to a Mage with Intelligence, who with 10-15 Wisdom would have 150-225pt Mana (or &#039;&#039;considerably&#039;&#039; more in longer games on bigger maps), and could still regen it so much more quickly &#039;&#039;in one go&#039;&#039; even without the Mysticism skill. Point based reg. Mysticism focused to Expert in the early game would at least allow Mage Heroes to fling a few spells more frequently in exploration-encounter combat.&lt;br /&gt;
&lt;br /&gt;
Mysticism Hero Speciality could even become additonal 2/lvl regen, instead of 1pt, with those changes above, and &#039;&#039;maybe&#039;&#039; would be kinda ok/good in the late game. You can just regen Mana too easily with other options...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Mana Items:&#039;&#039;&#039;&#039;&#039; In relation to the above, mana reg. items are really weak except for the combined item &amp;quot;Wizard&#039;s Well&amp;quot;. Making the Charm/Talisman/Mystic Orb of Mana grant 2/4/6 or 3/6/9 reg. would be a really nice improvement.&lt;br /&gt;
&lt;br /&gt;
Hope my suggestions didn&#039;t sound overly &amp;quot;stiff/businesslike&amp;quot; :D&lt;br /&gt;
&lt;br /&gt;
I&#039;m greatly enjoying playing HOTA again, with your mod-patch on top. Thank you for all your hard work!&lt;br /&gt;
&lt;br /&gt;
Kind Regards, &lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
* Granted. You&#039;ll see it in 1.3.1. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
== Request - Various Spell Changes ==&lt;br /&gt;
&lt;br /&gt;
Seeing as you can edit Spell Schools:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Remove Obstacle -&#039;&#039;&#039; Making it an All Schools spell would be nice (You can even make its costs higher [5/3 or 6/4] in exchange). Doesn&#039;t really feel like it should belong only to Water, or any 1 Element. Making it so it could remove 2 natural obstacles at Expert would be great, even at a higher Mana cost, but I&#039;m unsure if that&#039;s even possible to edit in.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Force Field -&#039;&#039;&#039; Again as above, All Schools pls. It creates a swirling wall of blue energy, doesn&#039;t feel very &#039;Earthy&#039;. Mana Cost reduction to 11/8 or 10/7 + &#039;&#039;maybe&#039;&#039; an additional +1 Round Duration at Expert (if possible to edit in). Its a &#039;&#039;really situational&#039;&#039; 3rd LvL spell - it works against melee only field encounters, but fliers and ranged can easily ignore it, and enemy Heroes could dispel it with the updated Remove Obstacle or just nuke creatures hiding behind the wall with offensive spells.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Slayer -&#039;&#039;&#039; All Schools? It works well for what it does, but I usually forget that it even exists, as it needs Fire Magic to let it affect other 7th LvL Creature Types. It doesn&#039;t really feel like it would need to belong to Fire, and Fire School has already 5 other, quite powerful, 4th Tier spells, the most out of all 4 Elemental Schools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Magic Mirror -&#039;&#039;&#039; It&#039;s still the worst 5th LvL spell. 40 Mana is too high for a chance of &#039;&#039;MAYBE&#039;&#039; reflecting spells from 1 Unit Stack. Anti-Magic just gives you spells immunity at a much lower cost (and it removes already present negative effects), the only difference being that it is dispellable, for which an enemy would usually need to waste his 1 spell/round. And even if you cast Magic Mirror, enemies will just plainly choose different targets for their spells, that&#039;s all. Fix: Reduce cost to 15-20, Make it All Schools as well, change reflect % to 40/60/80/100 or 30/50/70/90 if you want for it to still have RNG at Expert. If a player wanted to make all his creature completely spell immune, he would need to spend 7 turns of casting Magic Mirror in exchange for buffing/debuffing/offense.&lt;br /&gt;
&lt;br /&gt;
Thank you for all your hard work! Can&#039;t wait for the Mysticism changes!&lt;br /&gt;
&lt;br /&gt;
Kind Regards,&lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
** Moving spells to all schools - the base game has very few (I believe 2) spells that belong to all schools of magic. I moved TP to all schools for balance, but I don&#039;t want to now put all sorts of spells into all schoos as well. &lt;br /&gt;
** Remove Obstacle - I don&#039;t think I can make it work on 2 separate obstacles. &lt;br /&gt;
** Force Field is actually a really good spell! Try it yourself (or see a youtube video): a 150 marksmen with forcefield and some meat can take down a dragon utopia!&lt;br /&gt;
** Slayer got buffed to work on all units and is now a reasonable pick for dealing with difficult level 7 fights. Why doesn&#039;t it work on all t7? No idea, but its not really a balance issue. I &#039;&#039;could&#039;&#039; move it to another school... but I think Fire fits it very well - first of all, it&#039;s sort of a mirror image of prayer (the way frost ring and fireball are), and secondly it&#039;s about that inner fire, the will to fight. &lt;br /&gt;
** Magic Mirror - yeah, you make a good point. I think the whole concept of the spell is problematic (remember why Hota deleted Resistance?) and I think I&#039;ll have to change this spell more. &lt;br /&gt;
** I&#039;m glad you like the pumpkin patch! Thanks for the feedback! - Csaros&lt;br /&gt;
&lt;br /&gt;
Np. I was just brainstorming that maybe having 1 combat spell per tier of magic could be fun. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Remove Obstacle&#039;&#039; - Yeah, thought it would be impossible to script it for 2 separate obstacles. And if Force Field stays in One School, making Remove Obstacles All Schools would be a huge nerf to it. But maybe switching Remove Obstacle to Earth - as it is quasi terraforming the terrain - and Force Field to Water could work?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Force Field&#039;&#039; - Saw the video of Dragon Utopia. Interesting play. Still doesn&#039;t really fit with Earth from the look of the barrier :D, maybe Water if you wanted to have it in One Elemental School (as Water usually represents &#039;Utility&#039;)? But I can understand why you would want to just let it be as-is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Slayer&#039;&#039; - True, I forgot about the Mass Cast on Expert now! And Fire does usually represent &#039;Offense&#039;. Just that Fire already has Frenzy and Berserk, and the buffed Mass Cast Fire Shield works well too. But again, isn&#039;t a huge issue if it stays in its current form. Its rather specific in what it does, and with Mass Cast on Fire Expert, it works ok.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Magic Mirror&#039;&#039; - It&#039;s a tough nut to crack. I did try to coax AI heroes to target it, even reloading a fight and casting it on units, it debuffed or bolted previously as a spell opener, but it just switches targets or buffs its own units like a human player would, once Mirror was cast. Other H3 players speculate that it was just made to make acquiring the &#039;good&#039; 5th Tier spells harder. If it was All Schools (or maybe Air+Water? But again, I feel like the coding only allows for a spell either belonging to One or All Schools, right?), with a lesser mana cost and a higher reflection percentage (maybe even only up to 75-85 on Expert), it could be a reasonable alternative to the Earth-based Anti-Magic. And if you could make it that it cleanses negative effects from targeted creatures like Anti-Magic does, Mirror would be quite good I think. On my recent playthroughs on L-H random maps whenever I got it in 5th Tier Mage Guilds, it was just such a disappointment, even if I had Air Magic on a Hero, and I did get it multiple times even in newly conquered towns, often times with heroes that had other Spell Schools mastered.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work! :) &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll see the Magic Mirror at much higher % values in the next patch. I&#039;ll consider the Remove Obstacle - Force Field Swap. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 09:00, 20 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Request - Small Town Changes ==&lt;br /&gt;
&#039;&#039;&#039;[Fortress]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It has some good 5-7 LvL units, but the first 1-2 LvL are rather boring. Maybe that&#039;s why you can build Wyvern Nest so early? I remember that WOG added some kind of Preemptive Strike to Gnolls, and Double Attack to Lizards at Upgade. Preemptive Gnoll Atk. would be probably weird to implement (or not? Gunslingers have some Preemptive Shot, right?), and it honestly isn&#039;t that necessary, but the &#039;&#039;only&#039;&#039; Fortress Archer deserves some love :D&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Lizard Warrior (the Upg. Archer) -&#039;&#039;&#039;&#039;&#039; Add &#039;&#039;Double Attack&#039;&#039; (like Marksman, Grand Elf), Nerf Dmg to 2-4 from 2-5, Def to 6-7 down from 8, Health to 14 from 15. &#039;&#039;Maybe&#039;&#039; increase cost by 20-40g per unit? &#039;&#039;// It&#039;s more fun when a town has at least One viable Shooter unit. Most 2nd LvL Shooters in other towns like Marksman, Storm Elementals (especially those), Magogs, are much more powerful and even Halflings, a 1st LvL unit, have some special abilities now. A mostly &#039;defensive&#039;/&#039;tanky&#039; 1-shot Archer is kinda dumb.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Glyphs of Fear -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Blood Obelisk -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Dungeon]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Scorpicore -&#039;&#039;&#039;&#039;&#039; Maybe a small Dmg boost from 14-20 to 15/16-21/22, +10-20 HP? And a -2 Sulfur &amp;amp; -2 Mercury cost reduction to Manticore (Base) Dwelling? - Base Manticores don&#039;t have Special Abilities like Paralyzing Venom, so the first building is a bit costly too. &#039;&#039;// They kinda suck stat-wise as an Upg. 6th lvl unit. Compared to other creatures at the same Tier, they&#039;re the weakest of them all, cost more than better equivalents, die very easily and don&#039;t do much Dmg on the frontline. Paralyze is good, but it has a lower chance of triggering than Wyvern Monarch Poison; Unicorns have much frontline stats, Blind AND Magic resistance, AND cost &#039;&#039;less&#039;&#039;; Cyclops can attack from a safe distance and Shoot walls; Cavaliers have Jousting; Efreeti have really solid stats, Fire Immunity and get Fire Shield at Upg., etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Dragon Cave (Base) -&#039;&#039;&#039;&#039;&#039; Wood cost reduced to 10 down from 15? Maybe stone down to 10 too? Potentially in exchange for making the Dwelling Upg. cost 20 Wood &amp;amp; Ore instead, up from 15?  &#039;&#039;// Wood and Ore usually aren&#039;t a problem but it would be a small boost to get Red Dragons earlier, and diversify building costs between Base and Upg. Dwelling. (Rampart Dragon Cliffs have a Gold Increase between Base/Upgrade costs, Inferno Palace lessens Wood/Ore but Increases Gold. Some Towns have the same cost for 7th Base &amp;amp; Upg. Dwellings, but I think it would fit Dungeon to have that small bit of upgrade cost variety as Rampart, with its Dragon equivalent, has it too.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably my last suggestions for a while :D&lt;br /&gt;
&lt;br /&gt;
Can&#039;t wait for the next patch!&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
** You&#039;ll see a different Lizard Warrior buff in 1.3.1. Don&#039;t wanna give away too much before the big day. &lt;br /&gt;
** Scorpicores were buffed - now paralyse hits 25% of the time. &lt;br /&gt;
** Glyphs of Fear and Blood Obelisk are rather weak. &lt;br /&gt;
** Dragon Cave - There is a cost reduction for unupgraded dragon dwelling (by reducing cost of Manticore lair as a proxy). But know that I am a capricious lover and I take back everything I give, sometimes twofold. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Glyph/Obelisk&#039;&#039;&#039; - Sure, OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticores/Scorpicores&#039;&#039;&#039; - Consider that they are still relatively weak, potentially the weakest, even with better Paralyse proc chance (and you did buff other 6th Tier and Lesser Creatures procs while boosting Paralyse, like Unicorn Blind, Death Knight Blow, Thunderbird, Basilisk, Medusa, ... - I do like it, but it doesn&#039;t equalize Scorpicores that much). Iirc WOG buffed Scorpicores to 18-22 Dmg like Wyvern Monarchs (and Poison is 30% on those, right?) and they still felt borderline underwhelming, and rather not worth the Sulfur and Gold Dwelling cost. &lt;br /&gt;
&lt;br /&gt;
Maybe if you don&#039;t want higher Dmg on them, what about making the Scorpicores Upgrade a bit hardier with +15-20 HP, so that they can survive more to try proc some Venom, and at least Cutting Sulfur and reducing the Gold Costs (-1000g so the Base gold costs would be similar to other Unupgraded 6th Tier Dwellings - &#039;&#039;Fire Lake, Unicorn Glade, Golden Pavilion, Nix Fort, Watchtower&#039;&#039;, all 4000g for much better 6th Tier Unit Dwellings) from the Base Manticore Dwelling so that players wouldn&#039;t be inclined to skip it in favor of hoarding Sulfur for Dragon Cave. Base Manticore is &#039;&#039;really&#039;&#039; similar to Wyverns, but you can find Wyverns by freeing them from Dragonfly Dens and &#039;&#039;Wyvern Nest&#039;&#039; Costs 3500g + 15 Wood, while &#039;&#039;Manticores Lair&#039;&#039; Costs 5000g + 5 Sulfur + 5 Mercury + 5 Wood + 5 Ore. The more valuable resources Sulfur and Mercury, and 1500 higher Gold are a rather steep price considering that Manticores don&#039;t have Venom or any kind of other special ability or passive yet. Wyvern Monarch Dwelling only adds valuable resources like 10 Mercury on top to the Upgrade Cost once the creatures learn Poison. Unicorns, Efreets, Naga, etc. All have Special Abilities at Base, and so their 1st Unupgraded Dwellings cost valuable/rarer resources like Gems, Sulfur, Mercury, Crystals. &lt;br /&gt;
&lt;br /&gt;
Cyclops Dwelling Costs only Ore+Gold at base, and they&#039;re Shooters, with &#039;&#039;Siege Walls&#039;&#039;, similar stats to Manticores, better Minimum Dmg [16-20 vs Manticore 14-20] and Cost &#039;&#039;Less&#039;&#039; [Cyclops 750g vs Manticore 850g]. Only Cavaliers and Black Knights have a 5000g/6000g 1st Dwelling Cost, and still no special resources at Base, only Wood/Ore, and both are &#039;&#039;much&#039;&#039; better 6th Tier Units than Manticore statwise. Base Cavalier even has the Jousting ability already. And there exist Base Dwellings that Cost even less than 4000g, like &#039;&#039;Altar of Thought&#039;&#039; 3000g, &#039;&#039;Cyclops Cave&#039;&#039; 3500g, both giving better Units.&lt;br /&gt;
&lt;br /&gt;
An Unupgraded Efreety packs more punch (16-24), has more Health (90) and some nice passive immunity, costing 900g/unit - stronger than 1050g Scorpicore. An Upg. Efreety Sultan costing 1100g (50g more than Scorpicore), has still better Dmg and HP stats, passive immunity and Fire Shield. Unicorns have Blind/Res at base, 18-22 Dmg, 90 HP, at the Cost of 850g, while War Unicorns have Blind/Res, same Dmg, 110 HP at the Cost of 950g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Np, I develop Tabletops in my free time, so I know how balancing likes to meander XD. Should be OK tho. And feel free to add those -5 Wood/Ore as +5 Wood/Ore &#039;&#039;Cost Increase&#039;&#039; to the Upgradable Black Dragon Cave - should balance it out (like Ramparts Dragon Cliff does, just with Gold instead of Resources, Base 10000g vs Upg. 20000g, same 30 Ore + 20 Crystals on Base and Upg. Costs).&lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t favor Dungeon/Scorpicore as my Town/Creature of Choice, even if it sounds like that XD &#039;&#039;(The Statistics speak for themselves!)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* Fair enough, I just checked the numbers and yeah Scorpicores are trash. They&#039;ll get a small number buff. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And&#039;&#039; the Manticore Lair (Base) -5 Sulfur, -1000g? To 4000g, 5 Mercury, 5 Wood, 5 Ore? &#039;&#039;*Nudge, Nudge*&#039;&#039; :D&lt;br /&gt;
&lt;br /&gt;
The Cost of Base Lair actually started bothering me more and more the deeper I went into comparing Manticores against other, &#039;&#039;proper&#039;&#039; Tier 6 Units and &#039;&#039;their&#039;&#039; usual Dwelling Costs.&lt;br /&gt;
&lt;br /&gt;
The (Upg.) Manticore Lair Costs can freely remain as they are.&lt;br /&gt;
&lt;br /&gt;
Manticores/Scorpicores really are rather Trashtier 6th lvls. You can always reverse the Cost/Stat Changes later, if it altogether becomes a too strong Buff to Dungeon. Although I honestly doubt that it will end up feeling that way. &lt;br /&gt;
&lt;br /&gt;
- Eldrin.&lt;br /&gt;
&lt;br /&gt;
* Hey Eldrin, check out 1.3.1! A lot of the stuff you&#039;ve asked for is here! - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
Zgaduję, że skoro planujesz zrobić własne polskie tłumaczenie, to pewnie komunikacja po polsku będzie łatwiejsza? (Skoryguj mnie jeśli angielski jest dla ciebie wygodniejszy!)&lt;br /&gt;
&lt;br /&gt;
Ogólnie, wszystkie zmiany są raczej krokiem w dobrym kierunku, chociaż może w niektórych przypadkach nie są one aż tak dotkliwe jak bym tego pragnął :D&lt;br /&gt;
&lt;br /&gt;
Tylko, że coś występuje kilka problemów w mojej wersji H3. Po skopiowaniu 1.3.1 wyskakuje mi błąd (ResourceManager::GetBitmap816 could not find &amp;quot;bitmap8&amp;quot; resource &amp;quot;HPS219Sh.PCX) i zniknął polepszony wgląd Bohaterów (szczegółowe info miast tylko wyświetlania Specjalności Bohaterów) - niestety nie mam uprawnień by dzielić się tutaj linkami do screenshotów ;/ . Błąd naprawiłem, gdy po porównaniu 1.3.1 z archiwum poprzedniej wersji zauważyłem, że pliki &#039;&#039;Hota.lod&#039;&#039; i &#039;&#039;Hota_lng.lod&#039;&#039;, mają iść do folderu &#039;&#039;Data&#039;&#039; (wtedy też zmiany zaczęły funkcjonować gdy odpaliłem jakąś mapę), ale wgląd Bohaterów nadal jest &#039;uproszczony&#039;, więc zgaduję, że coś jest jeszcze nie tak? Po pierszym skopiowaniu plików nie działało, zrobiłem świeżą instalkę, update HD moda i dopiero po tym zauważyłem to z plikami do &#039;&#039;Data&#039;&#039; - dzisiaj 21.10 HD mod też dostał jakąś łatkę, to może to coś sknociło? Bo jak skopiowałem Pumpkin 1.3.0 to też szczegółowego wglądu brakowało. Chyba, że jeszcze czegoś brakuje w folderze Data 1.3.1? (Mam Angielską wersję GOG)&lt;br /&gt;
&lt;br /&gt;
// Update: Yup, coś jest zdecydowanie nie tak, bo po restarcie gry, zmiany Pumpkin Patcha przestały funkcjonować.&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
Dla mnie polski, angielski, hiszpański - obojętnie. Spróbuj proszę pobrac ponownie 131 i przenieść Hota_lng.lod i Hota_lod do folderu Data. Czy teraz wszystko działa? Dzisiaj testowałem i było ok... Jak chodzi o szczegółowe info - co konkretnie nie działa? W jaki sposób? - Csaros&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gdy przytrzymywało się prawy przycisk myszki na obrazku Bohatera, podczas obierania Zamków, przed odpaleniem mapy, przy generowaniu Random Map, dawało to zwykle szczegółowy wgląd: jaki ten Bohater ma armię, staty, zdolności, itp. Teraz po patchu 1.3.1, prawy przycisk na bohaterze tylko wyświetla mi informacje jaką bohater ma specjalność. Jeśli dobrze kojarzę, to tę opcję z większymi szczegółami wprowadził pierwotnie HD mod. Gdy zrobiłem czystą instalację dla 1.3.1, i nacisnąłem &#039;Update&#039; na Launcherze HD moda, to zupdatował się do jakieś, niby dzisiejszej (21.10.2024) wersji 5.5 R9 ze zmianami:&lt;br /&gt;
&lt;br /&gt;
[ ] Library patcher_x86.dll updated to version 4.18 (bug fixed)&lt;br /&gt;
&lt;br /&gt;
[-] HotA 1.7.1: fixed bug with bank in factory.&lt;br /&gt;
&lt;br /&gt;
[ ] HotA: Some changes, fixes, optimizations in the online lobby.&lt;br /&gt;
&lt;br /&gt;
[ ] Some changes, fixes, optimizations.&lt;br /&gt;
&lt;br /&gt;
[!] SoD: HoMM3 HD libraries are now built with new development tools. Incompatibility with plugins that modify these libraries is possible. If you find an incompatibility with such a plugin, contact its author.&lt;br /&gt;
&lt;br /&gt;
[!] WoG/ERA HoMM3 HD libraries are now built with new development tools. Incompatibility with mods/plugins that modify these libraries is possible.&lt;br /&gt;
&lt;br /&gt;
Dlatego też myślałem, że może HD mod jakoś zdołał wyjść nowy czasowo tuż po twoim updacie do 1.3.1 i wyszły jakieś nieścisłości.&lt;br /&gt;
&lt;br /&gt;
Oprócz tego, gdy parę razy wyłączyłem i ponownie odpaliłem H3 od nowa, po czym wystartowałem nową grę na nowej mapie, ustawienia jak zmiany do &#039;&#039;Lizard Warriorów&#039;&#039;, czy &#039;&#039;Manticore Lair&#039;&#039; przestały funkcjonować, zwyczajnie staty/koszty przywróciły się do standard Hota - pomimo, że te zedytowane przez ciebie pliki były nadal na swoich odpowiednich miejscach w folderze H3. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ale ogólnie, zrobiłem teraz jeszcze raz &#039;&#039;kolejną&#039;&#039; świeżą instalację i szczegółowe statystki pod prawym przyciskiem myszki wróciły, i Pumpkin Patch nadal działa jak powinien po restarcie H3, więc może ta poprzednia instalacja się u mnie coś zchraniła. Albo też to, że poprzednio raz odpaliłem grę, zanim dodałem te brakujące pliki do folderu &#039;&#039;Data&#039;&#039;, i to mogło już coś uszkodzić, zanim je później dodałem. Jakby coś znowu zaczęło się psuć, to dam znać.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
== Krytyka i Sugestie Dalszych Zmian (Post 1.3.1) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Imps and Familiars&#039;&#039;&#039; - Nawet fajna zmiana. Dodałbym jeszcze info &#039;&#039;Flies&#039;&#039; w opisie jednostek.&lt;br /&gt;
* Jest chyba od 1.3.2. Teraz w 1.3.4 chyba wszystkie błędy naprawione z brakującym tekstem, etc. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - Spoko, jest to napewno coś innego niż pozostali 2-poziomowi Strzelcy, i działa całkiem w porządku za te koszta jednostki. Może zamieniłbyś też Atk.&amp;lt;-&amp;gt;Def. &#039;&#039;&#039;Podstawowych &#039;&#039;Lizardman&#039;ów&#039;&#039;&#039;&#039;&#039;, żeby miały trochę większy Atak miast Obrony? (Lizard Warrior dostaje jakąś zbroje skórzaną po ulepszeniu - to może być ten odpowiednik 1 Def. różnicy :D)&lt;br /&gt;
* Fair enough. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticore Lair&#039;&#039;&#039; - całościowo powiedziałbym, że nadal kosztuje zbyt dużo w porównaniu z tym jakie jednostki daje - większość 6-poziomowych jednostek jest nadal mocniejsza niż zwykła Mantykora [np. Cyclop, Gunslinger, Unicorn]. Zmniejszenie Bazowej Budowli o 1000g jest spoko, ale &#039;&#039;&#039;Podstawowy Manticore Lair&#039;&#039;&#039; nadal nie ma powodu by kosztować dodatkowe 5 Siarki i 5 Rtęci - jak już pisałem powyżej po angielsku, wszystkie 6-poziomowe budowle w innych zamkach, co wykorzystują &#039;&#039;rzadsze surowce niż Kamień/Drewno&#039;&#039;, produkują jednostki mające jakąś dodatkową zdolność pasywną bądź aktywną (przykładowo &#039;&#039;&#039;Unicorn Glade&#039;&#039;&#039;, 5 Drewna, 5 Kameni, 10 Klejnotów, 4000g (Bardzo zbliżone koszta Budowli do Manticore Lair, zamieniając Klejnoty na Rtęć i Siarkę) - Jednostki mające &#039;&#039;Blind + Magic Res.&#039;&#039; [Ulepszona Budowla tylko &#039;&#039;5 Klejnotów!&#039;&#039;, 3000g]; &#039;&#039;&#039;Wyvern Nest&#039;&#039;&#039;, 15 Drewna, 3500g - Najtańsza budowla 6-poziomowa, ale Wyverny nie mają żadnych dodatkowych zdolności i należą do słabszych 6-tek. Nieulepszone Wyverny można za to też &#039;uratować&#039; z Dragon Fly Hives co polepsza ich sytuację. Koszt &#039;specjalnych&#039; surowców dopiero jest dodawany, na &#039;&#039;&#039;Ulepszone Wyvern Nest&#039;&#039;&#039; - &#039;&#039;10 Rtęci&#039;&#039;, 10 Drewna, 3000g - gdy zyskują &#039;&#039;Poisonous&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Sugestia:&#039;&#039;&#039;&#039;&#039; Wyrzucenie &#039;&#039;5 Siarki&#039;&#039; [lub redukcja na &#039;&#039;3 Siarki + 3 Rtęci&#039;&#039; - choć z tym pragnąłbym jakiś mały buff jak 10-15% Venom już u samych Mantykor] z kosztów Podstawowej Budowli &#039;&#039;&amp;lt;- moja preferowana opcja&#039;&#039;, TUDZIEŻ dodanie Mantykorom 25% &#039;&#039;Paralyzing Venom&#039;&#039;. Pragnę też zaznaczyć, że po twoim przeniesieniu 1000g z &#039;&#039;&#039;&#039;&#039;Podstawowej&#039;&#039;&#039;&#039;&#039; na &#039;&#039;&#039;&#039;&#039;Ulepszoną&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;Manticore Lair&#039;&#039;&#039;, jest to teraz jedyna &#039;&#039;&#039;Ulepszona&#039;&#039;&#039; Budowla 6-poziomowa spośród wszystkich zamków, która kosztuje 4000g, wszystkie inne posiadają koszty złota wynoszące 3000g, nawet &#039;&#039;&#039;Ulepszona Hall of Darkness&#039;&#039;&#039;, produkująca najpotężniejsze 6-poziomowe jednostki. Prosiłbym więc o upuszczenie tych 1000g różnicy (Utrzymywanie równie wysokich kosztów budowli jakie były pierwotnie przed zmianami jest w przypadku Manticore Lair kompletnie niepotrzebne - nadal nie mają tak silnych istot, by gwarantować te koszta, pomimo [fajnego] polepszenie Scorpicor!). I po zmianach kosztów &#039;&#039;Mana Vortex&#039;&#039; oraz &#039;&#039;Portal of Summoning&#039;&#039;, Dungeon jest najdroższym miastem po Factory i Conflux pod względem Złota za Budowle. Te trochę zmian do &#039;&#039;Manticore Lair&#039;&#039; balansu gry nie zniszczy - &#039;&#039;a wręcz go poprawi!&#039;&#039; (Swoją drogę, pragnę zaznaczyć, że wcześniej &#039;&#039;mylnie&#039;&#039; myślałem o możliwości przeskoczenia Mantykor, by szybciej budować Smoki, ale &#039;&#039;Manticore Lair&#039;&#039; jest potrzebny by móc budować &#039;&#039;Dragon Cave&#039;&#039;, więc nawet przeskoczyć ich się nie da...)&lt;br /&gt;
* Chciałbym by Rtęć i Siarka pozostały wymaganiami, żeby budowanie Smoków było równie trudne. Ale masz rację - są strasznie drogie. Jestem gotowy zmienić koszt budynku podstawy na &#039;&#039;&#039;3&#039;&#039;&#039; rtęci, &#039;&#039;&#039;3&#039;&#039;&#039; siarki, 5 drewna, 5 kamieni, &#039;&#039;&#039;3&#039;&#039;&#039;000 złota, koszt ulepszenia cofnąć do oryginalnego. Dodawanie Venomu podstawie na innej szansie wymagałoby w zasadzie stworzenie nowej zdolności dla nich; dodawanie go w pełni na podstawie usunęłoby w ogóle potrzebę ulepszania do Skorpikor. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ok, Super. To już powinno być w porządku nawet bez Venom na Mantykorach. --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magic Mirror&#039;&#039;&#039; - Nadal jest raczej słabe, jak na 5-pz Czar. Zmieniłbym na &#039;&#039;All Schools&#039;&#039; (- naprawdę sądzę, że to by bardzo do tego Spella pasowało) i dał &#039;&#039;Additionally, it removes negative spell effects (e.g. curse) but not positive spell effects (e.g. bless)&#039;&#039; - tak jak posiada Anti-Magic (o ile da się to wkodować do innego Spella). Wtedy Czar byłby git. Mógłbyś też ewentualnie miast tego obniżyć poziom na 3/4th lvl, ale powiedziałbym, że większość czarów przynajmniej 4-poziomu jest od Mirror w stanie obecnym nadal o wiele lepsza. Mirror tylko byłby przesadnie zbuffowany, jeślibyś nagle zmienił go na All-Castem - to by było OP.&lt;br /&gt;
* Nie wiem jak dodać clearowanie jakiś konkretnych efektów spellem, który normalne niczego nie clearuje. Ten spell był błędem gdy powstał. Teraz daje tak wysokie szanse na odbicie, że żaden rozsądny gracz nie rzuci łańcucha piorunów ani innych spelli na kogoś obdarzonego tym czarem. Jakby go dać do all schools, to jeszcze bardziej osłabi Air magic a już słyszałem narzekanie, że Fire jest lepszy od Air teraz. Przesunięcie do 4-poziomu: nie jestem fanem; po pierwsze, wtedy trzeba by przenieść coś z 4 do 5 (by się liczba spelli zgadzała) a po drugie, wtedy Złote Smoki byłyby jeszcze gorsze (Magic Mirror to taki AntiMagic dla złotych smoków). Jedyny sposób w jaki mógłbym polepszyć ten spell to a) zmienić koszt b) zmienić szanse c) zrobić all-cast z mniejszą szansą (ale to byłoby kind of cancer jak chodzi o usuwanie wszystkich hirków z spellami z obrażeniami). - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Osobiście uważam, że Air jest nadal spoko - Dimension Door był spellem, który kompletnie trywializował poruszanie się po mapie, zmiana jego na Fire całkiem dobrze mi odpowiadała i pasowała tematycznie (portal &#039;wypalając&#039; wyrwę w czasoprzestrzeni + oczywiście Gate u Inferno) no i Air ma jeszcze czar &#039;podróżny&#039; w postaci Fly. Chain Lightning poniekąd da się wycelować, zajęłoby raczej 3-4 casty Mirror by kompletnie zniesmaczyć Chain Lightning i AOE Debuffy (i nadal miałby 30% szansę na nieodbice w stanie obecnym). Counterstrike, Fortune, Air Shield, Precision są wszystkie spoko. Fly niwelujący dodatkowe koszta terenu czasem bardziej się opłaca niż DD. Ale jak tak jeszcze raz rzuciłem okiem na Elementarne Szkoły potrafię zrozumieć dlaczego inni graczę mogliby argumentować, że za bardzo nerfisz Air, gdybyś dał Mirror na All Schools. &#039;&#039;&#039;To co powiesz na to:&#039;&#039;&#039; 50/75/100% (&amp;lt;- To by było chyba najlepsze, by Air School się bardziej opłacało brać) albo 60/80/100% na Mirror i zmniejszenie kosztów do tych samych co Anti-Magic. Wiem, że 100% może brzmieć na pierwszy rzut oka przesadnie, ale bez możliwości wkodowania &#039;oczyszczenia&#039; jednostek gdy się na nich rzuca Mirror, dużo zależy od tego czy masz pierwszy ruch w walce, by uchronić daną jednostkę przed Debuffem, trochę mniej ważne w częstszych situacjach przed 1-osobowym zmiażdżeniem jak Implozja, bo nie zawsze ktoś Implozję ma - oczyścić jej już za jednym zamachem z Debuffa nie oczyścisz, więc niech już Mirror ma przynajmniej to 100% na Expercie. W przeciwnym wypadku Anti-Magic+Earth Magic Skill wydaje się nadal silniejsze/bardziej opłacalne. Ochrona złotych smoków przeciw Implozji jest silna, ale to jest za bardzo sytuacyjne, i wydaje się raczej jak patchowanie niedociągłości jednej jednostki niż jak 5-pz spell jak Mirror powinien w rzeczywistości fungować.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mysticism&#039;&#039;&#039; - Początkowa regeneracja nadal mierna, i późniejsza mogłabybyć trochę wyższa - &#039;&#039;dałbym 5/13/25&#039;&#039; albo &#039;&#039;8/16/25&#039;&#039;. Na większych mapach (L+) wydaje się wciąż, że lepiej jest ignorować ten Skill i Bohaterów mających Mysticism od początku. (Gdy gram, balansując 3/2 - Power/Wisdom, mana prawie mi się nie kończy. Zawsze znajdzie się Miasto z Gildią, albo Magic Well w pobliżu - wystarczy tylko trochę patrzeć, gdzie się rusza Bohaterów. To po co miałbym w ogóle brać Mysticism? Wolałbym nawet mieć ten nowy Learning albo Eagle Eye XD)&lt;br /&gt;
* Miło mi słyszeć, że podoba ci się nowy Learning! Jak chodzi o Mistycyzm, moim zdaniem jest już całkiem dobry jak grasz na Impossible i chcesz wysoki Score zdobyć (by się nie wracać do zamku ciągle). Na stronie [[Mysticism]] wstawiłem porównanie z inteligencją - więc mój nowy ekspercki mistycyzm działa idealnie jesli używasz 60 many dziennie (DD, TP i &amp;quot;coś extra&amp;quot;). Poza tym, nie podoba mi się 5/13/25. Prędzej bym dał 6/11/21 (i przedstawić to jako 1+5/10/25) no może 10/20/30 (choć to chyba trochę za dużo). Co sądzisz? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
Edit: szczerze mówiąc 6/11/21 bardzo mi sie podoba i chyba tak dam. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ja bym szczerze gorąco polecał Ci wypróbować przynajmniej na kilku grach u siebie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; na jakiś Większych Random Mapach L/XL/H + Podziemia, jeśli jesteś bardziej do tego skory niż 5/13/25 - 8/16/25 i inne kombinację (może &#039;&#039;&#039;5/15/25&#039;&#039;&#039; XD?). Też się zgodzę, że pod względem estetyki 10/20/30 wygląda najładniej jako liczba. Teraz na 5/10/20, Basic/Advanced jest dosyć słabe, i Expert też nie jest aż tak mocny, chyba, że ma się szybko Artefakt(y) - &#039;Mystic Orb&#039; dający dodatkowe 7 Many/dzień albo te dwa mniejsze odpowiedniki, tudzież jest to postać z Specjalnością Mistycyzm mająca już dobrą garść lvli - i nadal to, w tych specyficznych kombinacjach gdy gram, nie wydaje się &#039;aż tak silne&#039;, tylko raczej takie &#039;jakość-tak-może-ok&#039;. Jak za pierwszym razem pisałem o Mistycyzmie, wspominałem o procentowym regenerowaniu jako opcja u WOGa (10/20/30 &amp;gt;%&amp;lt;) - tą opcję testowałem wielokrotnie, wydawała się dobra [i nawet wcale nie aż tak mocna, jak się nie miało włączone 10 miast 8 Secondary Skill, niżby się na pierwszy rzut oka wydawało], ale nie przesadna - więc nie sądzę żeby nawet 10/20/30, mając tylko 8 Skill-slotów do dyspozycji, zniszczyło balans, ale sprawiłoby by Bohaterowie-Czarodzieje biliby bardziej skłonni do brania Mana-Regena nawet jeśliby nie mieli Specjalności. 30% to 90% Max Many &#039;dopiero&#039; po 3 dniach, na 15 Wisdom to 135 Many, a na mapach L+ z Podziemiami, ma się często o &#039;wiele&#039; więcej, i Procentowy Regen balansu gry nie zniszczył. Intelligence nadal wydawał się dużo mocniejszy pomimo &#039;%&#039; Regena, bo grając agresywnie i podbijając Zamki / rozplanowując ruch bohatera po już kontrolowanych terytoriach do Magicznych Studni i Zamków (+ też rzadszy Magic Spring, o którym wspomniałeś w adnotacji na stronce o Mistycyzmie), nadal o wiele prościej dało się regenerować o wiele większy zasób Many i to w pełni(!), w ciągu tylko jednego dnia(!) niż czekać na działanie &#039;procentowego&#039; Mistycyzmu do Maxa (I nawet po nerfie HOTA do 50%, Intelligence w mojej opinii jest silniejsze). 10/20/30 &#039;Punktowego&#039; Regenerowania naprawdę nie powinno się okazać nazbyt silne, da co najwyżej parę spelli w pierwszych walkach z neutralnymi NPC blokującymi drogę na mapie. Może to zwyczajnie kwestia różnych Stylów-gry - tak jak pisałeś o średniej Manie zużywanej na dzień - i ostatecznie wezmę to co dasz na Mistycyzm (HOTA z Pumpkinem jest już bardzo w porządku, i nowe Factory bardziej mi się spodobało niż w pierwszej chwili sądziłem), ale jest powód dla którego apelowałem/-uję o przynajmniej podbicie jeszcze troszkę Advanced (12-16) i Expert (przynajmniej do 25), Basic niech sobie będzie tym przysłowiowym &#039;Basic&#039;iem&#039;. Jeśli nie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; to &#039;&#039;&#039;5/15/25&#039;&#039;&#039; brzmi chyba też całkiem nieźle ^^ ? --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dalsze pomysły:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Scholar&#039;&#039;&#039; - Przy testowaniu 1.3.1 zauważyłem, że &#039;&#039;&#039;Scholar&#039;&#039;&#039; uczy tylko 1-2/3/4-lvl max czarów. Czy zmiana na 1-3/4/5 byłaby zbyt potężna? Komponowałby się lepiej z nowym &#039;&#039;&#039;Eagle Eye&#039;&#039;&#039;.&lt;br /&gt;
* No zmiana na 3/4/5 trochę by zrujnowała cały koncept postaci Gwenneth. Byłaby dość potężna (obecnie główne ograniczenie hirków ze scholarem to wymaganie level-upu by dzielić silniejsze czary) no i tbh ja zawsze chcę mieć co najmniej jednego hirka ze scholarem tak czy siak. No i wyobraź sobie takiego Alamara, który na 2 poz. (czyli 1. tura z Battle Scholar Academy) może już uczyć wszystkich nowych hirków Wskrzeszenia... Myślę że Scholar jest okej. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Z tym się zgodzę, za szybkie dzielenie się 4th lvl Spellami, z którymi startują niektórzy Bohaterowie, na samym &#039;Advanced Scholar&#039;, mogłoby być za silne w Early-gamie. Scholar wydawał mi się już w stanie obecnym całkiem dobry, bo samo przenoszennie 4-pz Czarów jest całkiem spoko, ale wolałem podrzucić zapytanie. - korzystam raczej sporadycznie ze Scholara, jak się natrafi, na swoich Utility-Heroesach i póżniej rozsyłam by przenosiły Spelle dalej od Zamków/Głównego Bohatera, ale też nie zawsze. Tak jak teraz piszę, to ciekawe byłoby, gdyby istniał jakiś (Major?) Artefact, który by Scholar zwiększał o 1-lvl Spelli.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Ponownie proszę o przeniesie 5 Kamieni i 5 Drewna (:D) z kosztów Bazowych do Ulepszonych, by wyglądały: &#039;&#039;&#039;Podstawowe Dragon Cave&#039;&#039;&#039; (Czerwone Smoki) &#039;&#039;10 Drewna, 10 Kamienia&#039;&#039;, 20 Siarki, 15000g; &#039;&#039;&#039;Ulepszone Dragon Cave&#039;&#039;&#039; (Czarne Smoki) &#039;&#039;20 Drewna, 20 Kamienia&#039;&#039;, 20 Siarki, 15000g (&#039;&#039;Total costs for both dwellings remain the same.&#039;&#039;). Posiadanie takich samych kosztów Bazowych i Ulepszonych Budowli, jest dosyć &#039;nudne&#039;, a wiele innych zamków ma inaczej - szczególnie Rampart, które ma niemalże lustrzane odbicia Smoków Dungeon&#039;a (Tematycznie Dobre vs. Złe Smoki?). U Rampart &#039;&#039;&#039;Bazowe Dragon Cliffs&#039;&#039;&#039; kosztuje 30 Kamienia, 20 Kryształów, &#039;&#039;10000g&#039;&#039;, a &#039;&#039;&#039;Ulepszone Dragon Cliffs&#039;&#039;&#039; 30 Kamienia, 20 Kryształów, &#039;&#039;20000g&#039;&#039;. Kamienia i Drewna raczej na mapach nie brakuje, więc na Całościowy Balans nie powinno to raczej wpłynąć (może gracz Dungeon będzie miał 250g więcej na Budowlę Czerwonych Smoków po sprzedaniu tych 5 Kamienia/Drewna na targowisku, XD)&lt;br /&gt;
* No w zasadzie... Dobra. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice! &#039;&#039;--[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
Jeszcze raz dzięki za twoją pracę nad patchowaniem H3. Nawet jeśli postuluję o dalsze działania, twoje już zaimplementowane zmiany o wiele polepszyły moją grę w Heroes&#039;y (wreszcie gram w HOTA i nie muszę się już męczyć z WOG/Era, jeśli nie chcę zbyt odbiegających, dalszych customizacji). Mam nadzieję, że moje sugestie polepszeń nie wydają się zbyt &#039;upierdliwe&#039; XD. Dzielę się nimi z własnej miłości dla Heroes III (i mając trochę bzika na punkcie statystyk i analizowania/balansowania różnych gier...).&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* No oczywiście, że mi nie przeszkadzają! Bardzo mi miło, że ktoś chce ze mną omawiać balans gier. Masz może jakiś inny komunikator poza tym czatem? Discord, acidcave.net, etc.?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Discorda w zasadzie mam, tylko raczej bardzo rzadko z niego korzystam. &#039;&#039;&#039;Założyłem konto na acidcave.net, i podesłałem wiadomość :)&#039;&#039;&#039; . Tutaj jeszcze odpisałem powyżej na dyskusję, ale jakby co to możemy już na Kwasowej pisać.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
== Interference and Water/Fire magic ==&lt;br /&gt;
&lt;br /&gt;
Would you be okay with Interference to give same values as the original Resistance? I feel like removing in completely on most magic heroes was not good idea.&lt;br /&gt;
&lt;br /&gt;
Also additionally some heroes originally have fire and water magic banned. In some ways this can be thought of as an advantage (these heroes can guarantee earth and air), but with the spell rebalance, it seems like unnecessary lacking.&lt;br /&gt;
&lt;br /&gt;
The only issue I can see with the changes would be breaking of the skill trees (same seed and same progression would result in different skills), but imo this already happens with the multiplayer maps if some skills are disallowed. And of course making some skills more viable to pick did already change that anyway.&lt;br /&gt;
&lt;br /&gt;
* Interference - From 1.3.7 interference will have 1 chance to roll and no longer be banned for all hero classes other than Wizards, Warlocks, Elementalists and Artificers; same with Resistance. Barbarians, Rangers etc will be able to learn all magic schools, with some schools being significantly favoured compared to others.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s there! Enjoy.&lt;br /&gt;
&lt;br /&gt;
== Bug report ==&lt;br /&gt;
&lt;br /&gt;
* Enabling Athe only makes Olenna disappear. No Athe is selectable in advanced options for random map.&lt;br /&gt;
* Disabling Archibald seems to only enable Jeddite. Archibald&#039;s ugly face is still there! (And he can appear in prisons).&lt;br /&gt;
* Pressing Reset does not get rid of Archibald or the pumpkin patch. How do I get rid of him/the patch?&lt;br /&gt;
* The patch also installs icons on my Linux desktop that do not work. :-)&lt;br /&gt;
* Hero Limit of 1 does not limit to a single hero. Prisons can still give you more (unlike with 8 max). Maybe one hero limit should be called disable hero hiring?&lt;br /&gt;
* It would seem that the map editor (h3maped.exe) crashes after installing this patch.&lt;br /&gt;
&lt;br /&gt;
And a selfish question: do you know how to modify skills changed by Hota? &lt;br /&gt;
I presume they are in the HotA DLL. Would like to have original Pathfinding and nerf the new Mysticism; 30%+ mana/day is too much.&lt;br /&gt;
(We have been playing heroes our way with LONG game on max maps for 20 years, and have no intention of start playing Jebus Cross. Managing mana was one of the big factors for us).&lt;br /&gt;
&lt;br /&gt;
== Request - Alt Version with DD/TP Nerfs reverted for single hero templates like duel ==&lt;br /&gt;
Hi there, loving the mod but am struggling to play and enjoy popular single hero templates like &amp;quot;duel 2.7&amp;quot; with the mana cost and movement cost nerfs to DD and TP. While the nerfs feel really good on standard multi-hero templates and open up more choices in building your hero, on single hero templates like duel they feel punishing and somewhat force you to pick a few specific heroes to offset the significant reduction in tempo from the changes. A lot of these templates are built around immediate access and use of these spells so the balance of the spells is less of an issue. The spell school change is interesting and seems good, although fire magic now feels really strong since it covers expert DD and expert TP, but since fly is still air the balance does not seem affected too strongly by this change.&lt;br /&gt;
Making a alternate version is hard enough let alone maintaining one so I fully understand if it is not something you want to do at this time.&lt;br /&gt;
* The feature you&#039;re describing is currently being prepared. Melkor and I are working on a hex-swapper project which will allow you to customize which Pumpkin patch changes you want to keep and which you want to get rid of, with the possibility of changing these in-between games. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=187965</id>
		<title>Talk:Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Talk:Hex_Editing_-_Guide&amp;diff=187965"/>
		<updated>2025-11-03T17:31:02Z</updated>

		<summary type="html">&lt;p&gt;Tapani: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A lot of this information is already available in a very well-written guide by btb2. For now I&#039;ve been trying to cover what he&#039;s missing. Should I add the tips he presents, mention them, or just leave the guide as an external source? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
BTBs guides are for editing the non-hota game, which is obsolete. At time of writing (2025 Nov) there is a shortage of resources for editing HotA.&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=187964</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=187964"/>
		<updated>2025-11-03T17:12:37Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Clarify discrepancy between edited estates income and help text */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game secondary skills are only stored in the .exe, i.e. heroes3.exe. &lt;br /&gt;
In HotA the skills are both in the h3hota.exe and in HotA.dll, the former is typically used in single player games and the latter for multiplayer. When starting a multiplayer game the code in the DLL is injected over the code loaded by the .exe, in effect overriding it.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify secondary skills in hota.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
Also note that the message you get when you right click on Estates skill is separate from the actual money given. It will still say 250 per day, but you will get what you edited.&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=187963</id>
		<title>Hex Editing - Guide</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Hex_Editing_-_Guide&amp;diff=187963"/>
		<updated>2025-11-03T16:38:14Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Add how to edit estates in HotA MP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wip}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;float:right; margin-left:8px;&amp;quot;&amp;gt;__TOC__&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following article describes some basics of hex edition. Offsets (and code itself in some locations) may vary based on game version. &lt;br /&gt;
&lt;br /&gt;
Heroes of Might and Magic III is coded in Assembly x86. Each byte (a set of 2 hexadecimal characters) corresponds to either a function, or a value for an already determined function. The only exception is byte 0x90, which is non-coding and may be used to f.e. fill empty space. &lt;br /&gt;
&lt;br /&gt;
Upper majority of creature stats, abilities, etc. is coded within the *.exe. While it may not be readable or understandable to a layman, in short time one can comprehend a lot of the code and find reason and rhyme in it (or at least, parts of it). &lt;br /&gt;
&lt;br /&gt;
To open (and edit) the *.exe files, one needs a hex editor, f.e. [https://sourceforge.net/projects/frhed/ frhed] or another similar software. I recommend [https://github.com/WerWolv/ImHex ImHex], as it comes with a handy disassembler function built in, as well as a base converter, and similar useful tools.  &lt;br /&gt;
&lt;br /&gt;
Some data is located with the *.lod files. To open them, you need to use [[Tools#MMArchive|MMArchive]]. &lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
Majority of HotA {{wh}} additions are not directly in the h3hota.exe (or h3hota HD.exe), but instead in Hota.dat (and partly in HotA.dll). &lt;br /&gt;
&lt;br /&gt;
== Numbers ==&lt;br /&gt;
All (or almost all) numbers are written in Little Endian - the bytes are placed in reverse order. As an example, 0xA624C (0x before a number signifies it&#039;s hexadecimal) in Little Endian is written as 4C 62 0A 00. Note, that the system recognizes that a number is negative based on the fact that it&#039;s greater than half the number range: greater than 0x80 for a single byte, and greater than 0x80000000 for a 4-byte value. &lt;br /&gt;
&lt;br /&gt;
Some numbers use a IEE-754 coding. It is recommended to use a calculator for such values, such as the one available on [https://www.save-editor.com/tools/converter_ieee_754.html save-editor.com]. &lt;br /&gt;
&lt;br /&gt;
Keep in mind that most (but, surprisingly, not all) lists start at 0, not at 1, so the first element is element 0 and not element 1.&lt;br /&gt;
&lt;br /&gt;
QWORD and DWORD pointers are Little Endian representations of an address within the *.exe file, with 0x400000 added to them because of the way the game reads the code. Therefore if you want the DWORD pointer to find 0x27e484, you write it as 84 e4 27 00. DWORDs use IEE-754, while QWORDs use an 8-byte double-precision IEE-754 value. &lt;br /&gt;
&lt;br /&gt;
Values followed by zeroes in the same block are 4-byte numbers - this essentially increases their available number range from (in decimal) 0-127 to 0-2147483647. &lt;br /&gt;
&lt;br /&gt;
= Heroes =&lt;br /&gt;
Heroes are very easy to edit. Hero data is stored in two sets, one containing general hero data and the other containing only hero specialties. Heroes are generally ordered by their faction (Castle, Rampart, Tower, etc.) and then their class (might or magic). Following standard heroes, are all campaign heroes. &lt;br /&gt;
&lt;br /&gt;
== Hero Data ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x279DD0, End: 0x27D5DF, Bytes per hero: 0x5c = 92)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:lightgreen&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:brown&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 AS CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Editing HotA Heroes ===&lt;br /&gt;
Hota heroes are coded in the HotA.dat. Names written in quotes are coded in plain text. Note, that for editing text itself it&#039;s best to use programs such as [https://github.com/sake12/HotA-editor/releases HotA Editor], instead of a direct hex-editing. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 2406, End: 0x9886)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length1&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;hero&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length2&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Heroes\hero_&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;FACTION&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length3&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#large_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length4&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;#small_portrait_file_name.pcx&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length5&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty_Name&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length6&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;Specialty Bonus: Object&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span_stle=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;&amp;lt;Length7&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;{Full Object}&amp;quot;&amp;lt;/span&amp;gt; 0d 0a 0d 0a (number of 0a 0d repetitions may differ, and they correspond to line spacing in text) &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;&amp;quot;specialty_description&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length8&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;HeroName&amp;quot;&amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;Length9&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;Biography&amp;quot;&amp;lt;/span&amp;gt; 00 00 00 00 01 5C &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SB&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PS&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;PL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR AS C0 00&amp;lt;/span&amp;gt; 00000000 00000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;1M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;2M&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3m&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;3M&amp;lt;/span&amp;gt;000000 08000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;I8&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
{{HEXrow|c=blue    |Length1|  Length of the hero&amp;lt;ref_id&amp;gt;	string}}&lt;br /&gt;
{{HEXrow|c=orange    |hero&amp;lt;ref_id&amp;gt;| The hero&#039;s reference id in decimal, f.e. hero154}}&lt;br /&gt;
{{HEXrow|c=blue    |Length2|  Length of the Heroes\hero_&amp;lt;ref_id&amp;gt;.str.string}}&lt;br /&gt;
{{HEXrow|c=red       |Heroes\hero_&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |FACTION| Cove heroes: 09 000000 00000000 &amp;lt;br&amp;gt;Factory heroes: 09 000000 00000000 00000000 }}&lt;br /&gt;
{{HEXrow|c=blue    |Length3|  Length of the large hero portrait name (including the .pcx extension)&lt;br /&gt;
{{HEXrow|c=teal      |#large_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length4|  Length of the small hero portrait name (including the .pcx extension)}}&lt;br /&gt;
{{HEXrow|c=teal      #small_portrait_file_name.pcx| # and the appropriate file name, e.g. #HPLP06.pcx. Note that some heroes don&#039;t have the portraits specified in the hero data, and instead in the portrait sections, described below.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length5|  Length of the specialty name}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty_Name| e.g. &amp;quot;Sea Dogs&amp;quot; or &amp;quot;Nix&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=blue    |Length6|  Length of the specialty bonus}}&lt;br /&gt;
{{HEXrow|c=turquoise |Specialty Bonus: Object| Refers to the following types of text: &amp;quot;Spell Bonus: Air Shield&amp;quot;, &amp;quot;Creature Bonus: Sea Dogs&amp;quot;, etc.}}&lt;br /&gt;
{{HEXrow|c=blue    |Length7|  Length of the Full Object and specialty description strings, including the line-spacing coded using &amp;quot;0Dh 0Ah&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=turquoise |{Full Object}| Text in curly parentheses {} stating again the specialty, e.g. &amp;quot;{Estates}&amp;quot;, or &amp;quot;{Pirates, Corsairs and Sea Dogs}&amp;quot;.}}&lt;br /&gt;
{{HEXrow|c=turquoise |specialty_description| Text string describing the hero specialty.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length8| Hero&#039;s name&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |HeroName| Text string of the hero&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |Length9| Hero&#039;s biography&#039;s length.}}&lt;br /&gt;
{{HEXrow|c=orange      |Biography| Text string containing the hero&#039;s biography.}}&lt;br /&gt;
{{HEXrow|c=orange    |GG| Gender: 00: male, 01: female.}}&lt;br /&gt;
{{HEXrow|c=orange    |RR| [[Hero race|Race]]. These are listed alphabetically, from Demon to Vampire. This has no in-game effect or visibility and the extensions preferred to default everyone to human, except [[Gelu]] who gets to be an elf.}}&lt;br /&gt;
{{HEXrow|c=blue      |HH| [[Hero class|Class]]: Classes go in order of factions, and within a faction the might class is listed first. Therefore, 00: Knight, 01: Cleric, 02: Ranger, 03: Druid, etc. Note, that HotA classes essentially &amp;quot;follow&amp;quot; this encoding.}}&lt;br /&gt;
{{HEXrow|c=green     |SO| 1st [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]).}}&lt;br /&gt;
{{HEXrow|c=green     |OL| 1st [[Secondary skill]]&#039;s proficiency level (00: Basic, 01: Advanced, 02: Expert).}}&lt;br /&gt;
{{HEXrow|c=lightgreen|ST| 2nd [[Secondary skill]] ([[Reference IDs#Secondary Skill Reference IDs|ref. ID]]). If there is no second skill, instead, FFFFFFFF is used, replacing ST and the zeroes following it.}}&lt;br /&gt;
{{HEXrow|c=lightgreen|TL| 2nd [[Secondary skill]] level. If there is no second skill, 00 is used (Basic).}}&lt;br /&gt;
{{HEXrow|c=brown     |SB| Spell Book. 00: absent, 01: present.}}&lt;br /&gt;
{{HEXrow|c=brown     |SP| Starting [[Spell]] ([[Reference IDs#Spell Reference IDs|ref. ID]]). If no spell is present, FFFFFFFF is used instead.}}&lt;br /&gt;
{{HEXrow|c=gold      |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3| Starting [[creature]] reference IDs.}}&lt;br /&gt;
{{HEXrow|c=teal      |PS| Small Portrait DWORD pointer, which leads to plain text name of the portrait in the H3bitmap.lod.}}&lt;br /&gt;
{{HEXrow|c=teal      |PL| Large Portrait, same as above.}}&lt;br /&gt;
{{HEXrow|c=silver    |R0| Present by default in all RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |AS| Present by default in all non-RoE maps. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=silver    |CO| Campaign-only. 00: false, 01: true.}}&lt;br /&gt;
{{HEXrow|c=gold      |1m| minimum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |1M| maximum number of the first creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2m| minimum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |2M| maximum number of the second creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3m| minimum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=gold      |3M| maximum number of the third creature type in hero&#039;s starting army}}&lt;br /&gt;
{{HEXrow|c=orange    |I8| reference ID + 8 for heroes before ref ID 178 and reference ID + 7 for heroes after ref ID 178 (essentially, 0xb9 is skipped)}}&lt;br /&gt;
{{HEXrow|c=red       |TT| specialty type}&lt;br /&gt;
{{HEXrow|c=red       |ID| relevant ID (skill, spell, unit, resource, etc.)}&lt;br /&gt;
{{HEXrow|c=red       |AA| attack bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DD| defense bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |DM| damage bonus for static unit specialties}}&lt;br /&gt;
{{HEXrow|c=red       |U4| 2nd unit to be upgraded with the upgrade specialty type}}&lt;br /&gt;
{{HEXrow|c=red       |U5| unit obtained from the upgrade specialty}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hero Specialties ==&lt;br /&gt;
Hero specialties are written one by one in the same order as heroes appear in. Note: Many &amp;quot;possible&amp;quot; specialties don&#039;t exist and simply won&#039;t do anything; examples include Tactics specialty, Teleport specialty, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x00278420, End: 0x279C73, Bytes per hero: 0x28 = 40)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;ID&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;AA&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DD&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;DM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U5&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=turquoise |TT| Specialty type. Specialty types are described in greater detail in the sections below. The following specialty types exist: &lt;br /&gt;
* 00: Skill specialty (+5% skill effect per level)&lt;br /&gt;
* 01: Basic Unit specialty (+1 speed, +1 Attack and Defense every &amp;lt;unit level&amp;gt; levels)&lt;br /&gt;
* 02: Resource (+1 gems per day, etc.)&lt;br /&gt;
* 03: Spell (+3% efficiency per level for most spells, sometimes special bonuses instead)&lt;br /&gt;
* 04: Static Unit specialty (static bonus to attack, defense, damage, speed, or any combination of them), e.g. Xeron, Kalt, Haart Lich, etc. &lt;br /&gt;
* 05: Speed (Sir Mullich only)&lt;br /&gt;
* 06: Unit Upgrade specialty (Gelu, Dracon, Bidley, etc.)&lt;br /&gt;
* 07: Dragon Specialty (Mutare, Mutare Drake)&lt;br /&gt;
* 08: Frederick&#039;s Automaton Explosion specialty.&lt;br /&gt;
&lt;br /&gt;
Note: Setting the first byte (TT000000) to FFFFFFFF will ensure the hero has no specialty. This is only used for Adrienne (yes, she &#039;&#039;technically&#039;&#039; has no hero specialty).}}&lt;br /&gt;
{{HEXrow|c=orange    |ID| Reference ID of the specialized in Skill,  Unit, Resource or Spell. (Not needed for Dragon and Speed specialties, where it is 00 and an unnecessary, unused 02, respectively).}}&lt;br /&gt;
{{HEXrow|c=blue      |AA| Attack bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DD| Defense bonus for Static Unit specialists (and Mutare).}}&lt;br /&gt;
{{HEXrow|c=blue      |DM| Damage bonus for Static Unit specialists (and probably Mutare).}}&lt;br /&gt;
{{HEXrow|c=gold      |U4| Second unit (ref. ID) that can be upgraded (only used by Unit Upgrade specialists; otherwise left as 00. Note, that using the same unit twice for Unit Upgrade specialty essentially removes second unit from being upgradable; meanwhile using 00 sets the ID to Pikemen.&amp;lt;br&amp;gt;Note: When using a Unit Upgrade specialist, the reference ID of un-upgraded creatures ought to be used. e.g. Gelu references Archers and Wood Elves, but code naturally allows also for their upgrades to be improved with his specialty. This does not occur the other way around; specifying ID or U2 as an upgraded creature, will make the upgrade impossible for un-upgraded creatures. )}}&lt;br /&gt;
{{HEXrow|c=gold      |U5| Resulting unit ref. ID from the upgrade (only for Unit Upgrade specialists).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 00 - Skill Specialty ===&lt;br /&gt;
The code for skill specialties works as follows: &lt;br /&gt;
&amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; D805 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; D8 4D FC&lt;br /&gt;
where &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; is a DWORD pointer to a 5% value (in IEEE-754), &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; is a DWORD pointer to a value of 1 (again, in IEEE-754). &lt;br /&gt;
&lt;br /&gt;
==== How it works ====&lt;br /&gt;
The number of levels is multiplied by the &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;XXXXXXXX&amp;lt;/span&amp;gt; DWORD pointer, added to the &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;YYYYYYYY&amp;lt;/span&amp;gt; DWORD pointer and then the skill bonus is multiplied by it (D8 4D FC). &lt;br /&gt;
&lt;br /&gt;
If we want to change the % gain per level, we only need to change the XX value. If we want to instead make the bonus additive (say x% per level, regardless of how much skill itself adds), we can replace the D805YYYYYYYY with 909090909090 (NOP) and replace the D8 4D FC with D8 45 FC. &lt;br /&gt;
&lt;br /&gt;
Therefore it is possible to have a different bonus for one skill than another. &lt;br /&gt;
&lt;br /&gt;
==== Offsets ====&lt;br /&gt;
The offsets for each skill specialty bonus are as follows: &lt;br /&gt;
: Archery - 0x0E4420&lt;br /&gt;
: Armorer - 0x0E45C9&lt;br /&gt;
: Diplomacy - 0x0E483C&lt;br /&gt;
: Eagle Eye - 0x0E46E0&lt;br /&gt;
: Estates - 0x0E464F&lt;br /&gt;
: First Aid - 0x0E4BD9&lt;br /&gt;
: Intelligence - 0x0E4B69&lt;br /&gt;
: Leadership - 0x0E3C81&lt;br /&gt;
: Learning - 0x0E4AF9&lt;br /&gt;
: Logistics - 0x0E4F1E&lt;br /&gt;
: Luck - 0x0E3A2B&lt;br /&gt;
: Mysticism - 0x0E41FE&lt;br /&gt;
: Necromancy - 0x0E3F92&lt;br /&gt;
: Offense - 0x0E4569&lt;br /&gt;
: Resistance - 0x0E499C&lt;br /&gt;
: Scouting - 0x0E432E&lt;br /&gt;
: Sorcery - 0x0E5B61&lt;br /&gt;
&lt;br /&gt;
==== Exceptions ====&lt;br /&gt;
Specialties for integer-bonuses (Luck, Logistics, Scouting) only have their effect when a full integer is gained from their % bonus. &lt;br /&gt;
&lt;br /&gt;
Diplomacy specialty only affects surrender costs. &lt;br /&gt;
&lt;br /&gt;
Learning specialty is fully over-written by the Hota.dll. {{unk}}&lt;br /&gt;
&lt;br /&gt;
=== 01 - Unit Specialty ===&lt;br /&gt;
The scaling factor for a unit specialty is a DWORD pointing to a 5% value (in IEEE-754), located at 0x0e6548. Note that Hota.dll is hooked at this point, replacing the DWORD pointer with a unit level test followed by a different DWORD for level 1 than the one for level 2-7 units, all somewhere in HotA.dll. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. This is the cause for the Shadow of Death {{sod}} bugged Catherine and Roland specialties. &lt;br /&gt;
&lt;br /&gt;
Ballista and Cannon specialty are Unit specialties.&lt;br /&gt;
&lt;br /&gt;
=== 02 - Resource Specialty ===&lt;br /&gt;
The amount of resources obtained from a gold specialty is saved at 0x0E4681 (as 350). &lt;br /&gt;
&lt;br /&gt;
The code for other resource specialties is possible to edit, but it checks for each resource together and then adds 1 to their growth. Therefore, it is not possible to make a single type of resource be given in a different amount by a specific specialist, without significant changes to the code.&lt;br /&gt;
&lt;br /&gt;
=== 03 - Spell Specialists ===&lt;br /&gt;
==== Spell specialty types ====&lt;br /&gt;
Spell specialty type table starts at 0x0e6358 (with Fire Wall specialty). Each consecutive byte is then the next spell by spell ID (Firewall, Earthquake, Magic Arrow, etc.) up to Slayer. Each spell specialty can take 6 types: &lt;br /&gt;
: 00 - +25% damage (Luna)&lt;br /&gt;
: 01 - +50% damage (Ciele). &lt;br /&gt;
: 02 - Tier bonus A, such as Haste, Bloodlust or Stone skin specialties. Yes, all three of these types of specialties have the same bonus here; they are then overwritten in the Hota.dll. Their tables are relatively easy to find in said file, since they just include all bonuses listed one by one, for units level 1-7. &lt;br /&gt;
: 03 - Static bonus +10 (Aenain)&lt;br /&gt;
: 04 - This one is only used by Fortune (Daremyth, Melodia). In contrary to what BTB claims, it sets the value of the spell&#039;s effect to 3, regardless of the spell&#039;s level or the values in SPTRAITS.txt. It can be used to f.e. set the value of extra Counterstrikes from the [[Counterstrike]] spell to 3, or, should its value be increased, affect another value used by a spell. &lt;br /&gt;
: 05 - Tier bonus B (+20/+20/+16/+16/+12/+12/+8), only used by Coronius as far as I know. Specific value of the bonus is determined by a table in Hota.dll&lt;br /&gt;
: 06 - Scaling bonus (10% per level, overwritten for Astra and Uland to be 10% per 8-n, where n is the level, in the Hota.dll). &lt;br /&gt;
&lt;br /&gt;
HotA.dll changes almost all of these bonuses, meaning that while the specific spell&#039;s specialty type can be changed, an entire specialty type can&#039;t be edited without editing HotA.dll&lt;br /&gt;
&lt;br /&gt;
If a spell does not belong to the spell table, the scaling bonus is applied (for example this applies to the Hypnotize specialist, Astral). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what if we want to change the specialty type for a spell like Hypnotize?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We can extend the table by changing 0x0e6296 (equal to 0x2a by default) to a different value, which corresponds to the number of spells in the table -1. If we extend the table, the next specialties will be those for the next spells by spell ID. We have a total of 13 bytes of nop (90), so the last spell specialty we can code this way is Summon Air Elemental. Remember to update all specialties created this way! You shouldn&#039;t just leave the nops (90) in the middle of the table!&lt;br /&gt;
&lt;br /&gt;
&amp;quot;But what about Victoria, the Land Mine specialist?&amp;quot;, you may ask. Well, I&#039;m here to give answers: &lt;br /&gt;
&lt;br /&gt;
The command &#039;&#039;&#039;lea eax, [esi-0Dh]&#039;&#039;&#039; located at 0x0e6291 finds the spell ID of firewall (0d) and chooses it as the first spell on the list of specialties &#039;&#039;(remember? The one that starts at 0x0e6358?)&#039;&#039;. By changing it to &#039;&#039;&#039;lea eax, [esi-0Bh]&#039;&#039;&#039;, we can change the first spell ID to 0x0B, or Land Mine. &#039;&#039;Notice, that this reduces the last spell specialty to Summon Earth Elemental, but I doubt anyone will miss the Summon Water Elemental and Summon Air Elemental specialties.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Next, we have to increase the number of spells in the list by 2 (located at 0x0e6296), and then move the entire spell specialty table, 2 bytes each, because now it starts at 0x0e6358 with Land Mine (and still follows by spell ID). &lt;br /&gt;
&lt;br /&gt;
&amp;quot;And what about Eovacius? And Zilare?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Haven&#039;t looked at them yet but I believe they may be hard-coded.&lt;br /&gt;
&lt;br /&gt;
The specialty types can be changed by altering their commands. Each specialty type (00, 01, and so on) have a DWORD pointer to their appropriate code located in a 28-byte long table starting at 0x0e633c.&lt;br /&gt;
&lt;br /&gt;
==== Changing Tier bonuses ====&lt;br /&gt;
Let&#039;s say we want to make Olema&#039;s Weakness even stronger. The table for the bonus, defined at 0x23eaa8, is overwritten in Hota.dll, where each 4 bytes correspond to respective unit&#039;s level. &lt;br /&gt;
&lt;br /&gt;
A similar table for Coronius&#039; specialty type starts at 0x23eac4 (immediately afterwards) and works the same way (and is also overwritten by Hota.dll).&lt;br /&gt;
&lt;br /&gt;
==== Changing the static bonus ====&lt;br /&gt;
At 0x0e62e6 the value 0x02 determines the static bonus (such as the one Disrupting Ray specialists get). It is overwritten in Hota.dll&lt;br /&gt;
&lt;br /&gt;
==== Changing the scaling bonus ====&lt;br /&gt;
At 0x0e631f the DWORD pointer finds an IEEE-754 double precision value for 3% (base game). The value is overwritten in Hota.dll. &lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want the scaling specialties to divide their bonus by unit level, replace f7 f9 at 0xe630b with 90 90 (nop-ing out the division). &lt;br /&gt;
&lt;br /&gt;
==== Specialties that don&#039;t work ====&lt;br /&gt;
Several specialties don&#039;t work because no specialty type can increase their bonus: &lt;br /&gt;
* Curse&lt;br /&gt;
* Anti-Magic&lt;br /&gt;
* Dispel&lt;br /&gt;
* Slow {{unk}}, but it would probably be way too strong anyway;&lt;br /&gt;
* Berserk&lt;br /&gt;
* Blind {{unk}}&lt;br /&gt;
* Teleport&lt;br /&gt;
* Remove Obstacle.&lt;br /&gt;
&lt;br /&gt;
=== 04 - Unit (static) ===&lt;br /&gt;
Only Xeron is specified to add speed thanks to his static unit specialty. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty.&lt;br /&gt;
&lt;br /&gt;
=== 05 - Speed specialty ===&lt;br /&gt;
Sir Mullich&#039;s unit specialty amount (0x02) is located at 0x0E6669. &lt;br /&gt;
&lt;br /&gt;
=== 06 - Unit Upgrade specialty ===&lt;br /&gt;
These specialties calculate the upgrade cost automatically, with the same function that calculates upgrade costs in all other cases. If &amp;quot;unupgraded&amp;quot; unit is more expensive than the upgraded one, the message about necessary costs wil appear, but no cost will be stated and the conversion will be free. &lt;br /&gt;
&lt;br /&gt;
Setting the unit IDs to an upgraded unit will ensure only the upgraded units are affected by the specialty. &lt;br /&gt;
&lt;br /&gt;
=== 07 - Dragon specialty ===&lt;br /&gt;
I believe Mutare&#039;s bonus used to be specified within her specialty block, and now is overwritten by Hota.dll&lt;br /&gt;
&lt;br /&gt;
= Creatures =&lt;br /&gt;
== Editing HotA Creatures ==&lt;br /&gt;
While most statistics of base game creatures can be edited rather effortlessly (using MMArchive to unpack H3bitmap.lod or HotA_lng.lod), HotA creatures cannot be edited this way. Their data is stored at the beginning of HotA.dat. When using custom functions or editing original code, note that all HotA (as well as some SoD monsters) have reference ID above 80, and therefore cannot be checked for using a simple check command, such as 83 FA ID. Instead, you have to use a longer command that accepts a 4-byte value (for EDX that would be 81 FA ID000000).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | 08 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;monst&amp;lt;ref_id&amp;gt;&amp;quot;&amp;lt;/span&amp;gt; 17 000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;quot;Monsters\monster&amp;lt;ref_id&amp;gt;.str&amp;quot;&amp;lt;/span&amp;gt; 09 000000 00000000 04 000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&amp;quot;name_abbreviation&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;KK&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;&amp;quot;&amp;lt;animation_filename&amp;gt;.def&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster_name (singular)&amp;quot;&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;L2&amp;lt;/span&amp;gt;000000  &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;&amp;quot;Monster name (plural)&amp;quot;&amp;lt;/span&amp;gt; 00000000 00000000 00000000 00000000 01 74 0000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;TT&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;UL&amp;lt;/span&amp;gt; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;0c556700  00556700&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;F1 F2 F3 F4&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;80da9e03 60da9e03 30da9e03&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;WC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;MC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;OC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;SC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;CC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GeC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;GC&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;FV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;GV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;HP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;AT&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DF&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;DmgH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SN&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;OO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;mm&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:purple&amp;quot;&amp;gt;MM&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;VV&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;WW&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;XX&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;YY&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;ZZ&amp;lt;/span&amp;gt;000000 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |monst&amp;lt;ref_id&amp;gt;| The monster&#039;s reference id in decimal, f.e. monst154}}&lt;br /&gt;
{{HEXrow|c=red       |Monsters\monster&amp;lt;ref_id&amp;gt;.str| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=orange    |name_abbreviation| The 4 letter abbreviation of the monster name. Never appears anywhere ever again. Note that not all abbreviations are just beginning or consonants, f.e. Haspids are written as &amp;quot;aspi&amp;quot; and nix as &amp;quot;nixx&amp;quot;. This abbreviation doesn&#039;t seem to have to be unique, as Sea Serpent and Haspids have the same 4 letters here.  It is worth pointing out, that base game creatures also use 4-letter abbreviations in a similar table located in h3hota HD.exe around 0x275500}}&lt;br /&gt;
{{HEXrow|c=teal      |KK| The length of the animation_filename + 4 (and therefore the length of the entire &amp;quot;animation_filename.def&amp;quot;}}&lt;br /&gt;
{{HEXrow|c=teal      |&amp;lt;animation_filename&amp;gt;.def| The file name of the set of animations, saved as .def in HotA.lod or HotA.lod.}}&lt;br /&gt;
{{HEXrow|c=blue      |L1| The length of the monster name (singular)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (singular)| Text string of the singular monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=blue      |L2| The length of the monster name (plural)}}&lt;br /&gt;
{{HEXrow|c=blue      |Monster_name (plural)| Text string of the plural monster&#039;s name.}}&lt;br /&gt;
{{HEXrow|c=orange    |TT| The reference id of the town the monster belongs to. 0x09 for Cove, 0x0a for Factory, FFFFFFFF for Neutrals and I bet if HotA ever releases a new town, it will have 0x0b as its faction code.}}&lt;br /&gt;
{{HEXrow|c=green     |UL| The unit level -1 (sidenote: this is an example of numbers being used in a list with a zero-based numbering). FFFFFFFF for monsters with no level (f.e. Citadel / Castle Towers)}}&lt;br /&gt;
{{HEXrow|c=grey      |0c556700&amp;lt;br&amp;gt;(and 00556700)| These point to a similar table with creature sprite, text and other references in h3hota HD.exe and is probably used to insert the HotA.dat&#039;s creature table into this part of the exe.}}&lt;br /&gt;
{{HEXrow|c=turquoise |F1| The first creature ability flag&lt;br /&gt;
* 01: 2-hex unit&lt;br /&gt;
* 02: Flying&lt;br /&gt;
* 04: Ranged Attack&lt;br /&gt;
* 08: Fire breath&lt;br /&gt;
* 10: Living&lt;br /&gt;
* 20: Can attack city walls (cyclops, cannon)&lt;br /&gt;
* 40: War machine&lt;br /&gt;
* 80: Slayer (Basic)}}&lt;br /&gt;
{{HEXrow|c=turquoise |F2| The second creature ability flag&lt;br /&gt;
* 01: Slayer (advanced)&lt;br /&gt;
* 02: Slayer (expert)&lt;br /&gt;
* 04: Mind immunity&lt;br /&gt;
* 08: shoots beam (?)&lt;br /&gt;
* 10: No melee penalty&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: Fire immunity&lt;br /&gt;
* 80: Attacks twice}}&lt;br /&gt;
{{HEXrow|c=turquoise |F3| The third creature ability flag&lt;br /&gt;
* 01: No enemy retaliation&lt;br /&gt;
* 02: Morale has no effect&lt;br /&gt;
* 04: Undead&lt;br /&gt;
* 08: AOE melee attack (Hydra)&lt;br /&gt;
* 10: AOE ranged attack (Magog), AI flag only. &lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: {{unk}}}}&lt;br /&gt;
{{HEXrow|c=turquoise |F4| The fourth creature ability flag&lt;br /&gt;
* 01: {{unk}}&lt;br /&gt;
* 02: {{unk}}&lt;br /&gt;
* 04: {{unk}}&lt;br /&gt;
* 08: {{unk}}&lt;br /&gt;
* 10: {{unk}}&lt;br /&gt;
* 20: {{unk}}&lt;br /&gt;
* 40: {{unk}}&lt;br /&gt;
* 80: Dragon (for the sake of Mutare&#039;s specialty and vial of dragon blood)}}&lt;br /&gt;
{{HEXrow|c=red       |80da9e03&amp;lt;br&amp;gt;60da9e03&amp;lt;br&amp;gt;30da9e03|{{unk}}}}&lt;br /&gt;
{{HEXrow|c=gold      |WC| Wood Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |MC| Mercury Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |OC| Ore Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |SC| Sulfur Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |CC| Crystal Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GeC|Gem Cost to recruit the creature}}&lt;br /&gt;
{{HEXrow|c=gold      |GC| Gold Cost to recruit the creature. Note that all aforementioned cost values have 4 bytes to play with, so the maximum unit cost is 2147483647 gold (or of any resource).}}&lt;br /&gt;
{{HEXrow|c=green     |FV| Fight Value}}&lt;br /&gt;
{{HEXrow|c=green     |AV| AI Value}}&lt;br /&gt;
{{HEXrow|c=green     |GV| Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HG| Horde Growth}}&lt;br /&gt;
{{HEXrow|c=green     |HP| Hit Points}}&lt;br /&gt;
{{HEXrow|c=green     |SP| Speed}}&lt;br /&gt;
{{HEXrow|c=green     |AT| Attack}}&lt;br /&gt;
{{HEXrow|c=green     |DF| Defense}}&lt;br /&gt;
{{HEXrow|c=green     |DmgL| The low end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |DmgH| The high end of the damage range}}&lt;br /&gt;
{{HEXrow|c=green     |SH| Number of shots per battle}}&lt;br /&gt;
{{HEXrow|c=green     |SN| Number of spell casts per battle}}&lt;br /&gt;
{{HEXrow|c=red       |OO| {{unk}}}}&lt;br /&gt;
{{HEXrow|c=purple    |mm| Minimum number of units when randomly spawned by the map generator}}&lt;br /&gt;
{{HEXrow|c=purple    |MM| Maximum number of units when randomly spawned by the map generator.}}&lt;br /&gt;
{{HEXrow|c=red       |RR&amp;lt;br&amp;gt;VV&amp;lt;br&amp;gt;WW&amp;lt;br&amp;gt;XX&amp;lt;br&amp;gt;YY&amp;lt;br&amp;gt;ZZ| {{unk}}. Sometimes they take up 28 (!) bytes (such as for Ayssids), and sometimes don&#039;t appear at all. I suspect they reference some sort of abilities the creatures have, or their descriptions.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Editing Creature Abilities ==&lt;br /&gt;
=== Magic Channel ([[Familiars]]) ===&lt;br /&gt;
Magic channel&#039;s applicable unit ID is defined at 0x1a24f6. The game uses a frankly ridiculous method of dividing by 5 (let&#039;s just say that it purposefully calls and uses a value 1717986919 to calculate 20%). Btb2 analyzed it and found a way to alter the percentage to 50% or 100% (by ignoring the horrible function before it and simply taking the mana value or moving it by 1 byte). Replace: &lt;br /&gt;
&lt;br /&gt;
* 0x1A24B4  -&amp;gt;  8b 55 98 d1 ea    (for 50%, since d1 ea is a single bitwise shift to the right&lt;br /&gt;
* 0x1A24b4  -&amp;gt;  8b 55 98 90 90    (no division).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at the function. The following offset reads: &lt;br /&gt;
* 0x1A249F:  b8 *67666666* c7 45 1c 02000000 f7 e9 8b 4d 9c *d1 fa* 8b c2 c1 e8 1f 03 d0&lt;br /&gt;
&lt;br /&gt;
The b8 XXXXXXXX (bolded above) function calls a hexadecimal value (note that it&#039;s in Little Endian) and saves it. The code then uses &amp;quot;d1 fa&amp;quot; (emboldened above) to divide edx by 2 before it is further used. C1 E8 1F is simply a division by 2^31 of the value. Yes, that is why the rounding may be a bit off for Magic Channel. Now let&#039;s consider replacing: &lt;br /&gt;
* 67666666 with our custom value (for now let&#039;s imagine it&#039;s 56555555)&lt;br /&gt;
* d1 fa with 90 90 (two nop or non-coding functions, so we basically removed this part of the code)&lt;br /&gt;
&lt;br /&gt;
The result is... Division by 3. Now the Magic Channel grants 33% mana return. &lt;br /&gt;
&lt;br /&gt;
To obtain a different value, we need to replace XXXXXXXX with another number. This has to be (2^33 / D) +1, where D is our divisor (3 for 1/3, 5 for 1/5, etc.). The 2^33 is multiplied with the variable (mana cost), but is then divided by 2^31 and moves by two bits elsewhere to account for the differences. The number is greater than the quotient by 1, to avoid the rounding downwards removing 1 mana point incorrectly. Note, that XXXXXXXX cannot be equal to or greater than 00000080 (0x80000000), as then the value will be negative. &lt;br /&gt;
&lt;br /&gt;
The function also calls 0x1A2498 for the minimum mana value for which Magic Channel may apply. This is equal to the value of D (0x05 in base game, 0x03 in the example above). &lt;br /&gt;
&lt;br /&gt;
= Buildings =&lt;br /&gt;
Building names and descriptions (excluding HotA) are saved in BldgSpec.txt and BldgNeut.txt. Building requirements can be altered by changing their dependency tables. Address of each dependency table is located at: &lt;br /&gt;
* 0x0EB816 - Castle&lt;br /&gt;
* 0x0EB8B3 - Rampart&lt;br /&gt;
* 0x0EB971 - Tower&lt;br /&gt;
* 0x0EBA39 - Inferno&lt;br /&gt;
* 0x0EBA48 - Necropolis&lt;br /&gt;
* 0x0EBA5C - Dungeon&lt;br /&gt;
* 0x0EBA70 - Stronghold&lt;br /&gt;
* 0x0EBA84 - Fortress&lt;br /&gt;
* 0x0EBA98 - Conflux&lt;br /&gt;
&lt;br /&gt;
Note, that some building requirements are changed in HotA.dll. While it shouldn&#039;t be too difficult to determine their location in that file, (look for appropriate DWORDs in HotA.dll) for now these offsets are unknown. The requirement table for Cove and Factory may be coded differently and as far as I know, haven&#039;t been found yet. &lt;br /&gt;
&lt;br /&gt;
Building costs can be changed in Building.txt. &lt;br /&gt;
&lt;br /&gt;
== HotA buildings ==&lt;br /&gt;
Building names and descriptions for HotA are saved in HotA.dat and can be edited as a text edit using f.e. the aforementioned HotA Editor. &lt;br /&gt;
&lt;br /&gt;
Building costs for HotA are saved in HotA.dat. The building names appear before the building costs. Each building cost contains of 28 bytes, each 4 bytes representing a 4-byte little endian number of cost for each resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Note, that some buildings have text and description, but no written cost (either replaced with 0s or simply not having any space devoted to them). An example is Mana Generator. For now it is not known how to edit the cost of these buildings (and therefore the cost of the Mana Generator remains a mystery).  &lt;br /&gt;
&lt;br /&gt;
== Resource Silos ==&lt;br /&gt;
Resource Silo yield tables are located at 0x288F04. Each resource value is mentioned for each town, one by one, in 4-byte values (order of resources is Wood, Mercury, Ore, Sulphur, Crystal, Gems, Gold) with towns going in order. &lt;br /&gt;
&lt;br /&gt;
Cove&#039;s Resource Silo simply copies the one from the Dungeon, while Factory copies Rampart. &lt;br /&gt;
&lt;br /&gt;
The Resource Silo table is called for in exe a few times, but HotA.dll overwrites all (or most) of these calls at 0xd37ae and 0xd37ce.  As of 12:19, 19 September 2024 (UTC), it is not known how to alter the Resource Silo values for Cove and Factory. No specific offset or function have been identified.  {{unk}}. &lt;br /&gt;
&lt;br /&gt;
= Artifacts =&lt;br /&gt;
All stats given by artifacts are written into a table at 0x23e758, 4 bytes for each artifact (Attack, Defense, Power, Knowledge). &lt;br /&gt;
&lt;br /&gt;
The artifact traits are specified in artraits.txt, while artifact pick-up events are defined in artevent.txt (both in Hota_lng.lod). &lt;br /&gt;
&lt;br /&gt;
Interference amount of the Plate of the Dying Light is specified as a IEE-754 floating point value at 0x1d40c8 in Hota.dll &lt;br /&gt;
&lt;br /&gt;
== Combination Artifacts ==&lt;br /&gt;
Combination artifact&#039;s components are specified at a few functions, starting at 0x04c63d. For further reading see BTB2&#039;s guide (linked below, as External Link #3). Be aware! BTB2&#039;s guide is either wrong or outdated! His method of removing components seems to work correctly, however, most likely due to HotA putting their combination artifacts in HotA.dll to push them in between base game combination artifacts, or for another reason, &#039;&#039;his method of increasing the number of items does NOT work&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
However, not all is lost. There&#039;s 8 bytes of nop (90) commands starting at 0x4c8c8, and we can use them to add an extra item (to showcase it, I&#039;ll present a code for adding an extra item to the Ring of the Magi&#039;s requirements. This seems a safe method, since only a short push is used, and therefore I advise changes to 3-piece combination artifacts to simply copy this method and swap Ring of the Magi with their edited artifact). &lt;br /&gt;
:0x4c85b 6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID)  -&amp;gt; eb 6d (jump 109 bytes forward)&lt;br /&gt;
:0x4c8c8 90909090 90909090   -&amp;gt; eb 06..(skip following code)...6a &#039;&#039;&#039;XX&#039;&#039;&#039; (ref item ID) 6a &#039;&#039;&#039;YY&#039;&#039;&#039; (2nd ref item ID).....eb 8d (jump backwards 115 bytes)&lt;br /&gt;
&lt;br /&gt;
Replace emboldened text with your appropriate artifact IDs. Remember to also update the number of components (in this example at 0x04C861). &lt;br /&gt;
&lt;br /&gt;
Note, that the method described above only works for a jump of 125 bytes or less. Gladly, there&#039;s a few other empty spaces that can be used for adding extra components: &lt;br /&gt;
* 0x4c25c (11 bytes of nop)&lt;br /&gt;
* 0x4c2d6 (10 bytes)&lt;br /&gt;
* 0x4c347 (9 bytes)&lt;br /&gt;
* 0x4c3c7 (9 bytes)&lt;br /&gt;
* 0x4c622 (14 bytes)&lt;br /&gt;
* 0x4c8c8 (8 bytes)&lt;br /&gt;
* 0x4ca15 (11 bytes)&lt;br /&gt;
* 0x4d008 (8 bytes)&lt;br /&gt;
&lt;br /&gt;
Simply use the available space within 125 bytes of the definition of any of the original components. If this can&#039;t be done, swap your artifact with another, which can be edited. &lt;br /&gt;
&lt;br /&gt;
Note, that if you&#039;re using HotA, it&#039;s much safer to just edit appropriate artifact reference IDs and add other appropriate components (or replace the resulting artifact) by editing Hota.dat (see: [https://heroes.thelazy.net/index.php?title=Hex_Editing_-_Guide/artsinfo0|HotA Artifacts - artsinfo0]&lt;br /&gt;
&lt;br /&gt;
== Making new Combination Artifacts ==&lt;br /&gt;
&lt;br /&gt;
For now it is wholly unknown how to do it. HotA devs seem to know their way around it.{{unk}} See below. &lt;br /&gt;
&lt;br /&gt;
What might work is repeating a function identical to that of another artifact with different properties using some empty space. Requires further testing. &lt;br /&gt;
&lt;br /&gt;
== HotA Artifacts ==&lt;br /&gt;
Hota&#039;s new artifacts are coded in the Hota.dat. To edit their properties, you need to edit their text (or use hexadecimal values for ASCII to match their text in hex editing). Artifacts are coded as follows: &lt;br /&gt;
&lt;br /&gt;
=== artsinfo0 ===&lt;br /&gt;
This part of the file includes partial data on all HotA artifacts, written as follows: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;Artifact Name&lt;br /&gt;
:&amp;lt;ref_ID&amp;gt;&lt;br /&gt;
:X Y Z # Description:&lt;br /&gt;
:P Q R # Dif abl, S points&lt;br /&gt;
:-1&lt;br /&gt;
&lt;br /&gt;
Note, that the ref_ID above is written in decimal system. &lt;br /&gt;
&lt;br /&gt;
The X Y Z applies a buff to the artifact, seemingly by coding first the bonus type with X, amount with Y and optional specification with Z. &lt;br /&gt;
* 0 - Increase Attack / Defense&lt;br /&gt;
* 1 - Add Spell Power&lt;br /&gt;
* 2 - Add Knowledge&lt;br /&gt;
* 7 - Different Ability, Y = AI value {{unk}} (it&#039;s described as &amp;quot;points&amp;quot;)&lt;br /&gt;
* 8 - Movement artifact?&lt;br /&gt;
* 13 - Restrict spells; Y = 1 for Cloak of Silence, 4 for Ring of Oblivion&lt;br /&gt;
* 16 - Add daily resource growth, Y = amount, Z = resource type (0 = wood, 6 = gold)&lt;br /&gt;
* 24 - Enemy morale bonus&lt;br /&gt;
* 25 - Enemy luck bonus&lt;br /&gt;
&lt;br /&gt;
The P Q R are coded in the same way as above and refer to a second ability. &lt;br /&gt;
&lt;br /&gt;
However, the method above seems to suggest some artifacts have different bonuses than they actually possess: Ironfist of the Ogre doesn&#039;t increase either attack or defense; Trident of Dominion increases attack by 6, etc. &lt;br /&gt;
&lt;br /&gt;
This part of the file also includes definitions of all combo artifacts and their components. F.e. Diplomat&#039;s Cloak: &lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Diplomat&#039;s Cloak&lt;br /&gt;
:12 141 3 66 67 68&lt;br /&gt;
&lt;br /&gt;
* 12 is the number of the combination artifact (including SoD ones)&lt;br /&gt;
* 141 is the decimal reference ID of the Diplomat&#039;s Cloak&lt;br /&gt;
* 3 is the number of components&lt;br /&gt;
* 66 67 68 are the reference IDs of components (decimal)&lt;br /&gt;
&lt;br /&gt;
Note, that this can be used to effectively alter any base-game combination artifact! Simply add a line before these artifact definitions&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;# &amp;lt;/nowiki&amp;gt;Sample Text&lt;br /&gt;
:N RIF C R+ R++ R+++ R++++,&lt;br /&gt;
&lt;br /&gt;
where N is the number of combination artifact (counting the way they&#039;re placed in the .exe code), RIF is the reference ID of the final artifact, R+, R++ and so on are the additional components. To showcase adding an extra requirement to the Ring of the Magi (since a similar concept was used above) and replacing the Ring of the Magi with the AB blade and requiring a Sword of Hellfire:&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; Armageddon&#039;s Blade&lt;br /&gt;
:10 128 1 11&lt;br /&gt;
&lt;br /&gt;
(11 is the reference ID of the new item - Sword of Hellfire). &lt;br /&gt;
&lt;br /&gt;
Sadly, new combination artifacts can&#039;t simply be added this way.&lt;br /&gt;
&lt;br /&gt;
== art&amp;lt;ref_ID&amp;gt; ==&lt;br /&gt;
art&amp;lt;ref_ID&amp;gt; entries in HotA.dat (as visible in the Hota.editor.exe) can be used to alter an artifact&#039;s name, adventure map event text, description, slot type and rarity class (treasure, minor, major, relic). Here is also the true artifact bonus data coded. Note that the Reference ID is in decimal. &lt;br /&gt;
&lt;br /&gt;
:gold_price &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cost - (cost of 0 is used if an artifact cannot normally appear, f.e. if it&#039;s a Combination Artifact. &lt;br /&gt;
:slot &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; slot type (0 - none, 1 - head, 2 - shoulders, 3 - neck, 4 - right hand, 5 - left hand, 6 - torso, 7 - ring, 8 - feet, 9 - misc, 10 - ballista, 11 - ammo cart, 12 - first aid tent, 13 - catapult, 14 - spell book)&lt;br /&gt;
:class &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; type (1 - none, 2 - treasure, 4 - minor, 8 - major, 16 - relic)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; disabled as defaults (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; add new spells (0 - no, 1 - yes)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; attack bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defense bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; spell power bonus (_int8_)&lt;br /&gt;
:0 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; knowledge bonus (_int8_)&lt;br /&gt;
&lt;br /&gt;
= Creature Banks =&lt;br /&gt;
The order the banks appear in is as follows:&lt;br /&gt;
# Cyclops Stockpile&lt;br /&gt;
# Dwarven Treasury&lt;br /&gt;
# Griffin Conservatory&lt;br /&gt;
# Imp Cache&lt;br /&gt;
# Medusa Stores&lt;br /&gt;
# Naga Bank&lt;br /&gt;
# Dragon Fly Hive&lt;br /&gt;
# Shipwreck&lt;br /&gt;
# Derelict Ship&lt;br /&gt;
# Crypt&lt;br /&gt;
# Dragon Utopia&lt;br /&gt;
&lt;br /&gt;
Note, that after changing these values, you still have to edit the remaining bank data in CrBanks.txt. HotA banks, except for the Ancient Altar, are all defined within the Hota.dat file, as crbank21, 22, and so on.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: 0x2702A0, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;U4&amp;lt;/span&amp;gt;000000 ... FFFFFFFF 00000000 00000000 00000000&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=orange    |U1&amp;lt;br&amp;gt;U2&amp;lt;br&amp;gt;U3&amp;lt;br&amp;gt;U4...| Unit IDs for guards. U2-U4 etc. are optional. Note, that the 12 bytes of 00 do not appear after the last defined creature bank (Dragon Utopia).}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
After all of the creature banks have been defined, the reward creatures (and creatures only!) are defined as follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Hex String (Start: {{unk}}, End: {{unk}})&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=99 | FFFFFFFF &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;R3&amp;lt;/span&amp;gt;000000 ...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! colspan=99 | Description&lt;br /&gt;
&lt;br /&gt;
{{HEXrow|c=blue      |R1&amp;lt;br&amp;gt;R2&amp;lt;br&amp;gt;R3...| Unit IDs for reward creature for the first bank. R2-R3 etc. are the reward creatures for subsequent creature banks.}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The Pyramid ==&lt;br /&gt;
The pyramid is defined separately:&lt;br /&gt;
&lt;br /&gt;
: 0xa3fa2:6a &#039;&#039;&#039;02&#039;&#039;&#039; 6a &#039;&#039;&#039;14&#039;&#039;&#039; 6a &#039;&#039;&#039;7d&#039;&#039;&#039; (52 8d4508 53 50) 6a &#039;&#039;&#039;74&#039;&#039;&#039;; &lt;br /&gt;
: 0xa3fb6: &#039;&#039;&#039;28&#039;&#039;&#039; 00 00 00&lt;br /&gt;
&lt;br /&gt;
Where: &lt;br /&gt;
* 02 is the number of stacks of Diamond Golems&lt;br /&gt;
* 14 is the number of Diamond Golems (in total)&lt;br /&gt;
* 7d is the unit ID of Diamond Golems, &lt;br /&gt;
* 74 is the unit ID of Gold Golems and&lt;br /&gt;
* 28 is the number of Gold Golems. &lt;br /&gt;
&lt;br /&gt;
BTB2 suggested replacing Diamond Golems with Mummies - this however, requires using a creature ID above 80, and therefore a long push (6B 8D000000 for mummies). However, to do that we would need to use some empty space. He suggested removing the -2 Luck on empty Pyramid subroutine. I decided to instead use some empty space I got from a different change, keeping the -2 Luck penalty. The result is as follows: &lt;br /&gt;
&lt;br /&gt;
: 0x0A3FA6 → ebdf (jumps to overwrite -2 luck on empty Pyramid), &lt;br /&gt;
: 0x0A3F82 → e9 89c10100 (jump to free space 0xc0110) &lt;br /&gt;
::::: 68 8d000000 (Mummies) &lt;br /&gt;
:::::EB 1A 90 90 (jump back to A3FA8), &lt;br /&gt;
: 0xc0110 (Free) → 8a 87 1b 01 00 00 04 fe 88 87 1b 01 00 00 (displaced code: -2 Luck on empty Pyramid), &lt;br /&gt;
: 0xc011d (Free) → E9 6b3efeff(jump to 0x0A3F8F (end of F8E))&lt;br /&gt;
&lt;br /&gt;
Note, that this method assumes you have empty space at 0xc0110 (by forcing rumors to always show rumors defined by the mapmaker). If you have empty space elsewhere, simply move the function, altering the jumps appropriately. &lt;br /&gt;
&lt;br /&gt;
= Editing h3hota_maped =&lt;br /&gt;
&lt;br /&gt;
All heroes are defined one by one in the h3hota_maped starting from 0x186800. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;GG&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;RR&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;HH&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;SO&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:turquoise&amp;quot;&amp;gt;OL&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:teal&amp;quot;&amp;gt;ST&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;TL&amp;lt;/span&amp;gt;000000 &#039;&#039;SB&#039;&#039; 000000 &amp;lt;span style=&amp;quot;color:grey&amp;quot;&amp;gt;SP&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U1&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U2&amp;lt;/span&amp;gt;000000 &amp;lt;span style=&amp;quot;color:gold&amp;quot;&amp;gt;U3&amp;lt;/span&amp;gt;000000 PS000000 PL000000 &amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;R0 &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;AS &amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:silver&amp;quot;&amp;gt;CO&amp;lt;/span&amp;gt; 00&lt;br /&gt;
&lt;br /&gt;
Note, that some HotA heroes use some data from HotA.dat&lt;br /&gt;
&lt;br /&gt;
= Game Mechanics =&lt;br /&gt;
== Starting Resources ==&lt;br /&gt;
Table with the starting resources starts at 0x278170. Each 4 bytes are the next resource (Wood, Mercury, Ore, Sulfur, Crystal, Gems, Gold). Each 28 bytes is the next difficulty - Easy, Normal, Expert, etc. At 0x2781FC the AI resources start and follow the same order of resources and difficulties. The whole table thus takes 280 bytes. &lt;br /&gt;
&lt;br /&gt;
== Secondary skills ==&lt;br /&gt;
&lt;br /&gt;
In the basic game secondary skills are only stored in the .exe, i.e. heroes3.exe. &lt;br /&gt;
In HotA the skills are both in the h3hota.exe and in HotA.dll, the former is typically used in single player games and the latter for multiplayer. When starting a multiplayer game the code in the DLL is injected over the code loaded by the .exe, in effect overriding it.&lt;br /&gt;
&lt;br /&gt;
This section is intended to guide how to modify secondary skills in hota.&lt;br /&gt;
&lt;br /&gt;
=== Estates ===&lt;br /&gt;
&lt;br /&gt;
The daily gold awarded by estates in HotA multiplayer (as of 1.7.3) is in HotA.dll, offset 19A100 there is the byte sequence:&lt;br /&gt;
&lt;br /&gt;
63 00 &#039;&#039;&#039;FA 00 00 00&#039;&#039;&#039; C7 05 20 EA 63 00 &#039;&#039;&#039;F4 01 00 00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
C7 05 24 EA 63 00 &#039;&#039;&#039;E8 03 00 00&#039;&#039;&#039; D9 15 8C EA 63 00&lt;br /&gt;
&lt;br /&gt;
The highlighted values are the amounts in hexadecimal (FA == 250, F401 == 500 and C803 == 1000).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Starting Bonuses ==&lt;br /&gt;
=== Gold Bonus ===&lt;br /&gt;
The starting gold bonus chooses a random value between the value written at 0x0C0002 and the value at 0x0BFFFD, and then multiplies it by 100. To change the multiplication, simply edit 0x0C000B (multiplying by 25) and 0x0C0016 (moving the value by 2 bits, so multiplying it by 4). &lt;br /&gt;
&lt;br /&gt;
=== Resource Bonuses ===&lt;br /&gt;
The starting resource bonuses use DWORD pointers to find their appropriate code to run:&lt;br /&gt;
* Wood and Ore - AF FF 4B 00 &lt;br /&gt;
* Crystals - D6 FF 4B 00 &lt;br /&gt;
* Gems - E1 FF 4B 00 &lt;br /&gt;
* Mercury - EC FF 4B 00 &lt;br /&gt;
* Sulfur - F4 FF 4B 00 &lt;br /&gt;
&lt;br /&gt;
These DWORD pointers are located at the following addresses: &lt;br /&gt;
* Castle - 0x0C01B4 &lt;br /&gt;
* Rampart - 0x0C01B8 &lt;br /&gt;
* Tower - 0x0C01BC &lt;br /&gt;
* Inferno - 0x0C01C0 &lt;br /&gt;
* Necropolis - 0x0C01C4 &lt;br /&gt;
* Dungeon - 0x0C01C8 &lt;br /&gt;
* Stronghold - 0x0C01CC &lt;br /&gt;
* Fortress - 0x0C01D0 &lt;br /&gt;
* Conflux - 0x0C01D4 &lt;br /&gt;
&lt;br /&gt;
Note, that you need to edit ScnrStar.def to reflect any altered resources. &lt;br /&gt;
&lt;br /&gt;
The amount for each rare resource is most likely determined by the function at 0xc009e: {{unk}}&lt;br /&gt;
: minimum: c745f0 33333333 &#039;&#039;(mov [ebp-0x10], 0x33333333)&#039;&#039; c745f0 3333EB3F  &#039;&#039;(mov [ebp-0x1c], 0x3feb3333)&#039;&#039; &lt;br /&gt;
: break between the two: eb 0e &#039;&#039;(jmp 0x0e)&#039;&#039; &lt;br /&gt;
: maximum: c745f0 66666666 &#039;&#039;(mov [ebp-0x10], 0x66666666)&#039;&#039; c745f0 6666E63F  &#039;&#039;(mov [ebp-0x10], 0x3FE66666)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The amount of wood and ore are most likely specified at 0xbffaf: BA 0a000000 &#039;&#039;(mov edx, 0x0a)&#039;&#039; B9 05000000 &#039;&#039;(mov ecx, 0x05)&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
== Movement point reminder ==&lt;br /&gt;
The movement point reminder is located at 0x9c91. It checks if movement points are 0 (using a 2-byte &#039;&#039;test eax, eax&#039;&#039;) and then proceeds to different code if movement points are (or not) zero. If one wants to change it to a higher number (to avoid reminding of movement for heroes that can&#039;t actually move anymore), the following code can be used:&lt;br /&gt;
&lt;br /&gt;
:0x9c91: {{---}}{{---}}a1 c8876900 &#039;&#039;mov eax, [0x6987c8]&#039;&#039; e9 849d0d00 (jump to some arbitrary free space) 90909090&lt;br /&gt;
: free space: {{-}}3d XY000000 &#039;&#039;cmp eax, XY&#039;&#039; - compare movement points with value XY. &lt;br /&gt;
:::: {{---}}7F 0A &#039;&#039;jg 0x0a&#039;&#039; - jump 10 bytes if the value is greater. &lt;br /&gt;
:::: {{---}}A1 C4 5d 6A 00 - displaced code&lt;br /&gt;
:::: {{---}}e9 6f62f2ff - jump to 0x9c9f (or 49C9F)&lt;br /&gt;
:::: {{---}}e9 a462f2ff - jump to 0x9cd9 (or 49CD9).&lt;br /&gt;
&lt;br /&gt;
== Hex value tables ==&lt;br /&gt;
See [[Reference IDs]].&lt;br /&gt;
&lt;br /&gt;
= External links =&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=18817 heroescommunity.com - Editing heroes in memory] - Includes a large number of various Reference IDs&lt;br /&gt;
#  [http://heroescommunity.com/viewthread.php3?TID=42152&amp;amp;pagenumber=1 heroescommunity.com - How to edit Hota?] - Thread with majority of useful information, scrambled across 112 forum pages. &lt;br /&gt;
#  [http://btb2.free.fr/mods/h3/hacking.txt BTB2&#039;s hacking guide] - primarily detailing creation of his own mod, but including tips, explanations and some of the Reference IDs&lt;br /&gt;
# [https://handbookhmm.ru/forum/viewtopic.php?f=56&amp;amp;t=968 void_17&#039;s database] - this database describes most or all of the functions in the base game of heroes 3. &lt;br /&gt;
#* [https://drive.google.com/file/d/1MY28K8cVbAeBzAbBBBf5ZeK-0aLMfz_d/view void_17&#039;s database] (link 2). &lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187962</id>
		<title>User talk:Csaros</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=User_talk:Csaros&amp;diff=187962"/>
		<updated>2025-11-03T16:01:38Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Pumpkin Patch - User Requests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pumpkin Patch - User Requests =&lt;br /&gt;
&lt;br /&gt;
== Monoliths ==&lt;br /&gt;
Hello,&lt;br /&gt;
&lt;br /&gt;
I love the changes made to HOTA!&lt;br /&gt;
&lt;br /&gt;
Do you think it would be possible to add a function where if you click a gateway/monolith it shows you the opposite end?&lt;br /&gt;
&lt;br /&gt;
Kind regards&lt;br /&gt;
&lt;br /&gt;
* I&#039;m gonna say probably not. The best that could possibly be done is probably something similar to quest messages &amp;quot;The Grail may be found in the %s regions of the world.&amp;quot; or &amp;quot;The Grail may be found in the %s regions of the underworld.&amp;quot;. But I don&#039;t think this could work with more than 1 exit for a portal. I&#039;ll put it in the To-Do list, but I&#039;ll honestly say I don&#039;t think this can be done. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 17:38, 1 October 2024 (UTC)&lt;br /&gt;
* Update: Melkor showed me that ERA has a similar feature. I&#039;ll try to figure out how they did it. [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 18:10, 6 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fix Faerie Dragon damage calculation ==&lt;br /&gt;
&lt;br /&gt;
Faerie Dragons don&#039;t increase damage based on spell damage artis for Lightning Bolt, Ice bolt and Magic Arrow. (as noted by Melkor).&lt;br /&gt;
&lt;br /&gt;
== Request - Mysticism Buff / Mana Regen Items Buff ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Changes Requested:&#039;&#039;&#039;&#039;&#039; Increased to 6/12/18 (Wouldn&#039;t even grant a &#039;&#039;Fly&#039;&#039;) - 10/20/30 (&#039;&#039;Fly&#039;&#039; + &#039;&#039;Lightning Bolt&#039;&#039;, or 1 &#039;&#039;Dimension Door&#039;&#039;) Mana per Day, or maybe 6/13/25 depending on how much viable you want the skill to be.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Reasoning:&#039;&#039;&#039;&#039;&#039; Even with HOTAs update to 5/10/15 and your buff of the Hero Mysticism Speciality, the skill still doesn&#039;t feel that great in play. There are just much better option like Intelligence or Magic Schools, or any kind of Combat skill for a Battle Focused Frontline Character &#039;&#039;&#039;considering that you can just regenerate Mana to &#039;&#039;Full&#039;&#039; while spending a day in Town or by drinking from a Magic Well&#039;&#039;&#039;. In WOG/ERA you could set Mysticism to regen a percentage of max mana (10%/20%/30%) instead, and it still didn&#039;t feel game breaking. &lt;br /&gt;
&lt;br /&gt;
I honestly believe that even making it 10/20/30 points per day wouldn&#039;t overbuff it - there are plentiful of better skill option - while it would lead to Mysticism being much more bearable/viable. Compared to a Mage with Intelligence, who with 10-15 Wisdom would have 150-225pt Mana (or &#039;&#039;considerably&#039;&#039; more in longer games on bigger maps), and could still regen it so much more quickly &#039;&#039;in one go&#039;&#039; even without the Mysticism skill. Point based reg. Mysticism focused to Expert in the early game would at least allow Mage Heroes to fling a few spells more frequently in exploration-encounter combat.&lt;br /&gt;
&lt;br /&gt;
Mysticism Hero Speciality could even become additonal 2/lvl regen, instead of 1pt, with those changes above, and &#039;&#039;maybe&#039;&#039; would be kinda ok/good in the late game. You can just regen Mana too easily with other options...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Mana Items:&#039;&#039;&#039;&#039;&#039; In relation to the above, mana reg. items are really weak except for the combined item &amp;quot;Wizard&#039;s Well&amp;quot;. Making the Charm/Talisman/Mystic Orb of Mana grant 2/4/6 or 3/6/9 reg. would be a really nice improvement.&lt;br /&gt;
&lt;br /&gt;
Hope my suggestions didn&#039;t sound overly &amp;quot;stiff/businesslike&amp;quot; :D&lt;br /&gt;
&lt;br /&gt;
I&#039;m greatly enjoying playing HOTA again, with your mod-patch on top. Thank you for all your hard work!&lt;br /&gt;
&lt;br /&gt;
Kind Regards, &lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
* Granted. You&#039;ll see it in 1.3.1. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
== Request - Various Spell Changes ==&lt;br /&gt;
&lt;br /&gt;
Seeing as you can edit Spell Schools:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Remove Obstacle -&#039;&#039;&#039; Making it an All Schools spell would be nice (You can even make its costs higher [5/3 or 6/4] in exchange). Doesn&#039;t really feel like it should belong only to Water, or any 1 Element. Making it so it could remove 2 natural obstacles at Expert would be great, even at a higher Mana cost, but I&#039;m unsure if that&#039;s even possible to edit in.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Force Field -&#039;&#039;&#039; Again as above, All Schools pls. It creates a swirling wall of blue energy, doesn&#039;t feel very &#039;Earthy&#039;. Mana Cost reduction to 11/8 or 10/7 + &#039;&#039;maybe&#039;&#039; an additional +1 Round Duration at Expert (if possible to edit in). Its a &#039;&#039;really situational&#039;&#039; 3rd LvL spell - it works against melee only field encounters, but fliers and ranged can easily ignore it, and enemy Heroes could dispel it with the updated Remove Obstacle or just nuke creatures hiding behind the wall with offensive spells.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Slayer -&#039;&#039;&#039; All Schools? It works well for what it does, but I usually forget that it even exists, as it needs Fire Magic to let it affect other 7th LvL Creature Types. It doesn&#039;t really feel like it would need to belong to Fire, and Fire School has already 5 other, quite powerful, 4th Tier spells, the most out of all 4 Elemental Schools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Magic Mirror -&#039;&#039;&#039; It&#039;s still the worst 5th LvL spell. 40 Mana is too high for a chance of &#039;&#039;MAYBE&#039;&#039; reflecting spells from 1 Unit Stack. Anti-Magic just gives you spells immunity at a much lower cost (and it removes already present negative effects), the only difference being that it is dispellable, for which an enemy would usually need to waste his 1 spell/round. And even if you cast Magic Mirror, enemies will just plainly choose different targets for their spells, that&#039;s all. Fix: Reduce cost to 15-20, Make it All Schools as well, change reflect % to 40/60/80/100 or 30/50/70/90 if you want for it to still have RNG at Expert. If a player wanted to make all his creature completely spell immune, he would need to spend 7 turns of casting Magic Mirror in exchange for buffing/debuffing/offense.&lt;br /&gt;
&lt;br /&gt;
Thank you for all your hard work! Can&#039;t wait for the Mysticism changes!&lt;br /&gt;
&lt;br /&gt;
Kind Regards,&lt;br /&gt;
&lt;br /&gt;
Eldrin&lt;br /&gt;
&lt;br /&gt;
** Moving spells to all schools - the base game has very few (I believe 2) spells that belong to all schools of magic. I moved TP to all schools for balance, but I don&#039;t want to now put all sorts of spells into all schoos as well. &lt;br /&gt;
** Remove Obstacle - I don&#039;t think I can make it work on 2 separate obstacles. &lt;br /&gt;
** Force Field is actually a really good spell! Try it yourself (or see a youtube video): a 150 marksmen with forcefield and some meat can take down a dragon utopia!&lt;br /&gt;
** Slayer got buffed to work on all units and is now a reasonable pick for dealing with difficult level 7 fights. Why doesn&#039;t it work on all t7? No idea, but its not really a balance issue. I &#039;&#039;could&#039;&#039; move it to another school... but I think Fire fits it very well - first of all, it&#039;s sort of a mirror image of prayer (the way frost ring and fireball are), and secondly it&#039;s about that inner fire, the will to fight. &lt;br /&gt;
** Magic Mirror - yeah, you make a good point. I think the whole concept of the spell is problematic (remember why Hota deleted Resistance?) and I think I&#039;ll have to change this spell more. &lt;br /&gt;
** I&#039;m glad you like the pumpkin patch! Thanks for the feedback! - Csaros&lt;br /&gt;
&lt;br /&gt;
Np. I was just brainstorming that maybe having 1 combat spell per tier of magic could be fun. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Remove Obstacle&#039;&#039; - Yeah, thought it would be impossible to script it for 2 separate obstacles. And if Force Field stays in One School, making Remove Obstacles All Schools would be a huge nerf to it. But maybe switching Remove Obstacle to Earth - as it is quasi terraforming the terrain - and Force Field to Water could work?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Force Field&#039;&#039; - Saw the video of Dragon Utopia. Interesting play. Still doesn&#039;t really fit with Earth from the look of the barrier :D, maybe Water if you wanted to have it in One Elemental School (as Water usually represents &#039;Utility&#039;)? But I can understand why you would want to just let it be as-is.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Slayer&#039;&#039; - True, I forgot about the Mass Cast on Expert now! And Fire does usually represent &#039;Offense&#039;. Just that Fire already has Frenzy and Berserk, and the buffed Mass Cast Fire Shield works well too. But again, isn&#039;t a huge issue if it stays in its current form. Its rather specific in what it does, and with Mass Cast on Fire Expert, it works ok.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Magic Mirror&#039;&#039; - It&#039;s a tough nut to crack. I did try to coax AI heroes to target it, even reloading a fight and casting it on units, it debuffed or bolted previously as a spell opener, but it just switches targets or buffs its own units like a human player would, once Mirror was cast. Other H3 players speculate that it was just made to make acquiring the &#039;good&#039; 5th Tier spells harder. If it was All Schools (or maybe Air+Water? But again, I feel like the coding only allows for a spell either belonging to One or All Schools, right?), with a lesser mana cost and a higher reflection percentage (maybe even only up to 75-85 on Expert), it could be a reasonable alternative to the Earth-based Anti-Magic. And if you could make it that it cleanses negative effects from targeted creatures like Anti-Magic does, Mirror would be quite good I think. On my recent playthroughs on L-H random maps whenever I got it in 5th Tier Mage Guilds, it was just such a disappointment, even if I had Air Magic on a Hero, and I did get it multiple times even in newly conquered towns, often times with heroes that had other Spell Schools mastered.&lt;br /&gt;
&lt;br /&gt;
Keep up the good work! :) &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* You&#039;ll see the Magic Mirror at much higher % values in the next patch. I&#039;ll consider the Remove Obstacle - Force Field Swap. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]]) 09:00, 20 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Request - Small Town Changes ==&lt;br /&gt;
&#039;&#039;&#039;[Fortress]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
It has some good 5-7 LvL units, but the first 1-2 LvL are rather boring. Maybe that&#039;s why you can build Wyvern Nest so early? I remember that WOG added some kind of Preemptive Strike to Gnolls, and Double Attack to Lizards at Upgade. Preemptive Gnoll Atk. would be probably weird to implement (or not? Gunslingers have some Preemptive Shot, right?), and it honestly isn&#039;t that necessary, but the &#039;&#039;only&#039;&#039; Fortress Archer deserves some love :D&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Lizard Warrior (the Upg. Archer) -&#039;&#039;&#039;&#039;&#039; Add &#039;&#039;Double Attack&#039;&#039; (like Marksman, Grand Elf), Nerf Dmg to 2-4 from 2-5, Def to 6-7 down from 8, Health to 14 from 15. &#039;&#039;Maybe&#039;&#039; increase cost by 20-40g per unit? &#039;&#039;// It&#039;s more fun when a town has at least One viable Shooter unit. Most 2nd LvL Shooters in other towns like Marksman, Storm Elementals (especially those), Magogs, are much more powerful and even Halflings, a 1st LvL unit, have some special abilities now. A mostly &#039;defensive&#039;/&#039;tanky&#039; 1-shot Archer is kinda dumb.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Glyphs of Fear -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;-Blood Obelisk -&#039;&#039;&#039;&#039;&#039; Cost increase by 2-4 Ore? &#039;&#039;// As a slight nerf to offset buffing Upg. Lizards, and Siege Defense Buildings usually cost something more in addition to gold.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Dungeon]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Scorpicore -&#039;&#039;&#039;&#039;&#039; Maybe a small Dmg boost from 14-20 to 15/16-21/22, +10-20 HP? And a -2 Sulfur &amp;amp; -2 Mercury cost reduction to Manticore (Base) Dwelling? - Base Manticores don&#039;t have Special Abilities like Paralyzing Venom, so the first building is a bit costly too. &#039;&#039;// They kinda suck stat-wise as an Upg. 6th lvl unit. Compared to other creatures at the same Tier, they&#039;re the weakest of them all, cost more than better equivalents, die very easily and don&#039;t do much Dmg on the frontline. Paralyze is good, but it has a lower chance of triggering than Wyvern Monarch Poison; Unicorns have much frontline stats, Blind AND Magic resistance, AND cost &#039;&#039;less&#039;&#039;; Cyclops can attack from a safe distance and Shoot walls; Cavaliers have Jousting; Efreeti have really solid stats, Fire Immunity and get Fire Shield at Upg., etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;+Dragon Cave (Base) -&#039;&#039;&#039;&#039;&#039; Wood cost reduced to 10 down from 15? Maybe stone down to 10 too? Potentially in exchange for making the Dwelling Upg. cost 20 Wood &amp;amp; Ore instead, up from 15?  &#039;&#039;// Wood and Ore usually aren&#039;t a problem but it would be a small boost to get Red Dragons earlier, and diversify building costs between Base and Upg. Dwelling. (Rampart Dragon Cliffs have a Gold Increase between Base/Upgrade costs, Inferno Palace lessens Wood/Ore but Increases Gold. Some Towns have the same cost for 7th Base &amp;amp; Upg. Dwellings, but I think it would fit Dungeon to have that small bit of upgrade cost variety as Rampart, with its Dragon equivalent, has it too.)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Probably my last suggestions for a while :D&lt;br /&gt;
&lt;br /&gt;
Can&#039;t wait for the next patch!&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
** You&#039;ll see a different Lizard Warrior buff in 1.3.1. Don&#039;t wanna give away too much before the big day. &lt;br /&gt;
** Scorpicores were buffed - now paralyse hits 25% of the time. &lt;br /&gt;
** Glyphs of Fear and Blood Obelisk are rather weak. &lt;br /&gt;
** Dragon Cave - There is a cost reduction for unupgraded dragon dwelling (by reducing cost of Manticore lair as a proxy). But know that I am a capricious lover and I take back everything I give, sometimes twofold. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Glyph/Obelisk&#039;&#039;&#039; - Sure, OK.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticores/Scorpicores&#039;&#039;&#039; - Consider that they are still relatively weak, potentially the weakest, even with better Paralyse proc chance (and you did buff other 6th Tier and Lesser Creatures procs while boosting Paralyse, like Unicorn Blind, Death Knight Blow, Thunderbird, Basilisk, Medusa, ... - I do like it, but it doesn&#039;t equalize Scorpicores that much). Iirc WOG buffed Scorpicores to 18-22 Dmg like Wyvern Monarchs (and Poison is 30% on those, right?) and they still felt borderline underwhelming, and rather not worth the Sulfur and Gold Dwelling cost. &lt;br /&gt;
&lt;br /&gt;
Maybe if you don&#039;t want higher Dmg on them, what about making the Scorpicores Upgrade a bit hardier with +15-20 HP, so that they can survive more to try proc some Venom, and at least Cutting Sulfur and reducing the Gold Costs (-1000g so the Base gold costs would be similar to other Unupgraded 6th Tier Dwellings - &#039;&#039;Fire Lake, Unicorn Glade, Golden Pavilion, Nix Fort, Watchtower&#039;&#039;, all 4000g for much better 6th Tier Unit Dwellings) from the Base Manticore Dwelling so that players wouldn&#039;t be inclined to skip it in favor of hoarding Sulfur for Dragon Cave. Base Manticore is &#039;&#039;really&#039;&#039; similar to Wyverns, but you can find Wyverns by freeing them from Dragonfly Dens and &#039;&#039;Wyvern Nest&#039;&#039; Costs 3500g + 15 Wood, while &#039;&#039;Manticores Lair&#039;&#039; Costs 5000g + 5 Sulfur + 5 Mercury + 5 Wood + 5 Ore. The more valuable resources Sulfur and Mercury, and 1500 higher Gold are a rather steep price considering that Manticores don&#039;t have Venom or any kind of other special ability or passive yet. Wyvern Monarch Dwelling only adds valuable resources like 10 Mercury on top to the Upgrade Cost once the creatures learn Poison. Unicorns, Efreets, Naga, etc. All have Special Abilities at Base, and so their 1st Unupgraded Dwellings cost valuable/rarer resources like Gems, Sulfur, Mercury, Crystals. &lt;br /&gt;
&lt;br /&gt;
Cyclops Dwelling Costs only Ore+Gold at base, and they&#039;re Shooters, with &#039;&#039;Siege Walls&#039;&#039;, similar stats to Manticores, better Minimum Dmg [16-20 vs Manticore 14-20] and Cost &#039;&#039;Less&#039;&#039; [Cyclops 750g vs Manticore 850g]. Only Cavaliers and Black Knights have a 5000g/6000g 1st Dwelling Cost, and still no special resources at Base, only Wood/Ore, and both are &#039;&#039;much&#039;&#039; better 6th Tier Units than Manticore statwise. Base Cavalier even has the Jousting ability already. And there exist Base Dwellings that Cost even less than 4000g, like &#039;&#039;Altar of Thought&#039;&#039; 3000g, &#039;&#039;Cyclops Cave&#039;&#039; 3500g, both giving better Units.&lt;br /&gt;
&lt;br /&gt;
An Unupgraded Efreety packs more punch (16-24), has more Health (90) and some nice passive immunity, costing 900g/unit - stronger than 1050g Scorpicore. An Upg. Efreety Sultan costing 1100g (50g more than Scorpicore), has still better Dmg and HP stats, passive immunity and Fire Shield. Unicorns have Blind/Res at base, 18-22 Dmg, 90 HP, at the Cost of 850g, while War Unicorns have Blind/Res, same Dmg, 110 HP at the Cost of 950g.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Np, I develop Tabletops in my free time, so I know how balancing likes to meander XD. Should be OK tho. And feel free to add those -5 Wood/Ore as +5 Wood/Ore &#039;&#039;Cost Increase&#039;&#039; to the Upgradable Black Dragon Cave - should balance it out (like Ramparts Dragon Cliff does, just with Gold instead of Resources, Base 10000g vs Upg. 20000g, same 30 Ore + 20 Crystals on Base and Upg. Costs).&lt;br /&gt;
&lt;br /&gt;
And no, I don&#039;t favor Dungeon/Scorpicore as my Town/Creature of Choice, even if it sounds like that XD &#039;&#039;(The Statistics speak for themselves!)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* Fair enough, I just checked the numbers and yeah Scorpicores are trash. They&#039;ll get a small number buff. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;And&#039;&#039; the Manticore Lair (Base) -5 Sulfur, -1000g? To 4000g, 5 Mercury, 5 Wood, 5 Ore? &#039;&#039;*Nudge, Nudge*&#039;&#039; :D&lt;br /&gt;
&lt;br /&gt;
The Cost of Base Lair actually started bothering me more and more the deeper I went into comparing Manticores against other, &#039;&#039;proper&#039;&#039; Tier 6 Units and &#039;&#039;their&#039;&#039; usual Dwelling Costs.&lt;br /&gt;
&lt;br /&gt;
The (Upg.) Manticore Lair Costs can freely remain as they are.&lt;br /&gt;
&lt;br /&gt;
Manticores/Scorpicores really are rather Trashtier 6th lvls. You can always reverse the Cost/Stat Changes later, if it altogether becomes a too strong Buff to Dungeon. Although I honestly doubt that it will end up feeling that way. &lt;br /&gt;
&lt;br /&gt;
- Eldrin.&lt;br /&gt;
&lt;br /&gt;
* Hey Eldrin, check out 1.3.1! A lot of the stuff you&#039;ve asked for is here! - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
Zgaduję, że skoro planujesz zrobić własne polskie tłumaczenie, to pewnie komunikacja po polsku będzie łatwiejsza? (Skoryguj mnie jeśli angielski jest dla ciebie wygodniejszy!)&lt;br /&gt;
&lt;br /&gt;
Ogólnie, wszystkie zmiany są raczej krokiem w dobrym kierunku, chociaż może w niektórych przypadkach nie są one aż tak dotkliwe jak bym tego pragnął :D&lt;br /&gt;
&lt;br /&gt;
Tylko, że coś występuje kilka problemów w mojej wersji H3. Po skopiowaniu 1.3.1 wyskakuje mi błąd (ResourceManager::GetBitmap816 could not find &amp;quot;bitmap8&amp;quot; resource &amp;quot;HPS219Sh.PCX) i zniknął polepszony wgląd Bohaterów (szczegółowe info miast tylko wyświetlania Specjalności Bohaterów) - niestety nie mam uprawnień by dzielić się tutaj linkami do screenshotów ;/ . Błąd naprawiłem, gdy po porównaniu 1.3.1 z archiwum poprzedniej wersji zauważyłem, że pliki &#039;&#039;Hota.lod&#039;&#039; i &#039;&#039;Hota_lng.lod&#039;&#039;, mają iść do folderu &#039;&#039;Data&#039;&#039; (wtedy też zmiany zaczęły funkcjonować gdy odpaliłem jakąś mapę), ale wgląd Bohaterów nadal jest &#039;uproszczony&#039;, więc zgaduję, że coś jest jeszcze nie tak? Po pierszym skopiowaniu plików nie działało, zrobiłem świeżą instalkę, update HD moda i dopiero po tym zauważyłem to z plikami do &#039;&#039;Data&#039;&#039; - dzisiaj 21.10 HD mod też dostał jakąś łatkę, to może to coś sknociło? Bo jak skopiowałem Pumpkin 1.3.0 to też szczegółowego wglądu brakowało. Chyba, że jeszcze czegoś brakuje w folderze Data 1.3.1? (Mam Angielską wersję GOG)&lt;br /&gt;
&lt;br /&gt;
// Update: Yup, coś jest zdecydowanie nie tak, bo po restarcie gry, zmiany Pumpkin Patcha przestały funkcjonować.&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
Dla mnie polski, angielski, hiszpański - obojętnie. Spróbuj proszę pobrac ponownie 131 i przenieść Hota_lng.lod i Hota_lod do folderu Data. Czy teraz wszystko działa? Dzisiaj testowałem i było ok... Jak chodzi o szczegółowe info - co konkretnie nie działa? W jaki sposób? - Csaros&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Gdy przytrzymywało się prawy przycisk myszki na obrazku Bohatera, podczas obierania Zamków, przed odpaleniem mapy, przy generowaniu Random Map, dawało to zwykle szczegółowy wgląd: jaki ten Bohater ma armię, staty, zdolności, itp. Teraz po patchu 1.3.1, prawy przycisk na bohaterze tylko wyświetla mi informacje jaką bohater ma specjalność. Jeśli dobrze kojarzę, to tę opcję z większymi szczegółami wprowadził pierwotnie HD mod. Gdy zrobiłem czystą instalację dla 1.3.1, i nacisnąłem &#039;Update&#039; na Launcherze HD moda, to zupdatował się do jakieś, niby dzisiejszej (21.10.2024) wersji 5.5 R9 ze zmianami:&lt;br /&gt;
&lt;br /&gt;
[ ] Library patcher_x86.dll updated to version 4.18 (bug fixed)&lt;br /&gt;
&lt;br /&gt;
[-] HotA 1.7.1: fixed bug with bank in factory.&lt;br /&gt;
&lt;br /&gt;
[ ] HotA: Some changes, fixes, optimizations in the online lobby.&lt;br /&gt;
&lt;br /&gt;
[ ] Some changes, fixes, optimizations.&lt;br /&gt;
&lt;br /&gt;
[!] SoD: HoMM3 HD libraries are now built with new development tools. Incompatibility with plugins that modify these libraries is possible. If you find an incompatibility with such a plugin, contact its author.&lt;br /&gt;
&lt;br /&gt;
[!] WoG/ERA HoMM3 HD libraries are now built with new development tools. Incompatibility with mods/plugins that modify these libraries is possible.&lt;br /&gt;
&lt;br /&gt;
Dlatego też myślałem, że może HD mod jakoś zdołał wyjść nowy czasowo tuż po twoim updacie do 1.3.1 i wyszły jakieś nieścisłości.&lt;br /&gt;
&lt;br /&gt;
Oprócz tego, gdy parę razy wyłączyłem i ponownie odpaliłem H3 od nowa, po czym wystartowałem nową grę na nowej mapie, ustawienia jak zmiany do &#039;&#039;Lizard Warriorów&#039;&#039;, czy &#039;&#039;Manticore Lair&#039;&#039; przestały funkcjonować, zwyczajnie staty/koszty przywróciły się do standard Hota - pomimo, że te zedytowane przez ciebie pliki były nadal na swoich odpowiednich miejscach w folderze H3. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ale ogólnie, zrobiłem teraz jeszcze raz &#039;&#039;kolejną&#039;&#039; świeżą instalację i szczegółowe statystki pod prawym przyciskiem myszki wróciły, i Pumpkin Patch nadal działa jak powinien po restarcie H3, więc może ta poprzednia instalacja się u mnie coś zchraniła. Albo też to, że poprzednio raz odpaliłem grę, zanim dodałem te brakujące pliki do folderu &#039;&#039;Data&#039;&#039;, i to mogło już coś uszkodzić, zanim je później dodałem. Jakby coś znowu zaczęło się psuć, to dam znać.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
== Krytyka i Sugestie Dalszych Zmian (Post 1.3.1) ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Imps and Familiars&#039;&#039;&#039; - Nawet fajna zmiana. Dodałbym jeszcze info &#039;&#039;Flies&#039;&#039; w opisie jednostek.&lt;br /&gt;
* Jest chyba od 1.3.2. Teraz w 1.3.4 chyba wszystkie błędy naprawione z brakującym tekstem, etc. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lizard Warrior&#039;&#039;&#039; - Spoko, jest to napewno coś innego niż pozostali 2-poziomowi Strzelcy, i działa całkiem w porządku za te koszta jednostki. Może zamieniłbyś też Atk.&amp;lt;-&amp;gt;Def. &#039;&#039;&#039;Podstawowych &#039;&#039;Lizardman&#039;ów&#039;&#039;&#039;&#039;&#039;, żeby miały trochę większy Atak miast Obrony? (Lizard Warrior dostaje jakąś zbroje skórzaną po ulepszeniu - to może być ten odpowiednik 1 Def. różnicy :D)&lt;br /&gt;
* Fair enough. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manticore Lair&#039;&#039;&#039; - całościowo powiedziałbym, że nadal kosztuje zbyt dużo w porównaniu z tym jakie jednostki daje - większość 6-poziomowych jednostek jest nadal mocniejsza niż zwykła Mantykora [np. Cyclop, Gunslinger, Unicorn]. Zmniejszenie Bazowej Budowli o 1000g jest spoko, ale &#039;&#039;&#039;Podstawowy Manticore Lair&#039;&#039;&#039; nadal nie ma powodu by kosztować dodatkowe 5 Siarki i 5 Rtęci - jak już pisałem powyżej po angielsku, wszystkie 6-poziomowe budowle w innych zamkach, co wykorzystują &#039;&#039;rzadsze surowce niż Kamień/Drewno&#039;&#039;, produkują jednostki mające jakąś dodatkową zdolność pasywną bądź aktywną (przykładowo &#039;&#039;&#039;Unicorn Glade&#039;&#039;&#039;, 5 Drewna, 5 Kameni, 10 Klejnotów, 4000g (Bardzo zbliżone koszta Budowli do Manticore Lair, zamieniając Klejnoty na Rtęć i Siarkę) - Jednostki mające &#039;&#039;Blind + Magic Res.&#039;&#039; [Ulepszona Budowla tylko &#039;&#039;5 Klejnotów!&#039;&#039;, 3000g]; &#039;&#039;&#039;Wyvern Nest&#039;&#039;&#039;, 15 Drewna, 3500g - Najtańsza budowla 6-poziomowa, ale Wyverny nie mają żadnych dodatkowych zdolności i należą do słabszych 6-tek. Nieulepszone Wyverny można za to też &#039;uratować&#039; z Dragon Fly Hives co polepsza ich sytuację. Koszt &#039;specjalnych&#039; surowców dopiero jest dodawany, na &#039;&#039;&#039;Ulepszone Wyvern Nest&#039;&#039;&#039; - &#039;&#039;10 Rtęci&#039;&#039;, 10 Drewna, 3000g - gdy zyskują &#039;&#039;Poisonous&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Sugestia:&#039;&#039;&#039;&#039;&#039; Wyrzucenie &#039;&#039;5 Siarki&#039;&#039; [lub redukcja na &#039;&#039;3 Siarki + 3 Rtęci&#039;&#039; - choć z tym pragnąłbym jakiś mały buff jak 10-15% Venom już u samych Mantykor] z kosztów Podstawowej Budowli &#039;&#039;&amp;lt;- moja preferowana opcja&#039;&#039;, TUDZIEŻ dodanie Mantykorom 25% &#039;&#039;Paralyzing Venom&#039;&#039;. Pragnę też zaznaczyć, że po twoim przeniesieniu 1000g z &#039;&#039;&#039;&#039;&#039;Podstawowej&#039;&#039;&#039;&#039;&#039; na &#039;&#039;&#039;&#039;&#039;Ulepszoną&#039;&#039;&#039;&#039;&#039; &#039;&#039;&#039;Manticore Lair&#039;&#039;&#039;, jest to teraz jedyna &#039;&#039;&#039;Ulepszona&#039;&#039;&#039; Budowla 6-poziomowa spośród wszystkich zamków, która kosztuje 4000g, wszystkie inne posiadają koszty złota wynoszące 3000g, nawet &#039;&#039;&#039;Ulepszona Hall of Darkness&#039;&#039;&#039;, produkująca najpotężniejsze 6-poziomowe jednostki. Prosiłbym więc o upuszczenie tych 1000g różnicy (Utrzymywanie równie wysokich kosztów budowli jakie były pierwotnie przed zmianami jest w przypadku Manticore Lair kompletnie niepotrzebne - nadal nie mają tak silnych istot, by gwarantować te koszta, pomimo [fajnego] polepszenie Scorpicor!). I po zmianach kosztów &#039;&#039;Mana Vortex&#039;&#039; oraz &#039;&#039;Portal of Summoning&#039;&#039;, Dungeon jest najdroższym miastem po Factory i Conflux pod względem Złota za Budowle. Te trochę zmian do &#039;&#039;Manticore Lair&#039;&#039; balansu gry nie zniszczy - &#039;&#039;a wręcz go poprawi!&#039;&#039; (Swoją drogę, pragnę zaznaczyć, że wcześniej &#039;&#039;mylnie&#039;&#039; myślałem o możliwości przeskoczenia Mantykor, by szybciej budować Smoki, ale &#039;&#039;Manticore Lair&#039;&#039; jest potrzebny by móc budować &#039;&#039;Dragon Cave&#039;&#039;, więc nawet przeskoczyć ich się nie da...)&lt;br /&gt;
* Chciałbym by Rtęć i Siarka pozostały wymaganiami, żeby budowanie Smoków było równie trudne. Ale masz rację - są strasznie drogie. Jestem gotowy zmienić koszt budynku podstawy na &#039;&#039;&#039;3&#039;&#039;&#039; rtęci, &#039;&#039;&#039;3&#039;&#039;&#039; siarki, 5 drewna, 5 kamieni, &#039;&#039;&#039;3&#039;&#039;&#039;000 złota, koszt ulepszenia cofnąć do oryginalnego. Dodawanie Venomu podstawie na innej szansie wymagałoby w zasadzie stworzenie nowej zdolności dla nich; dodawanie go w pełni na podstawie usunęłoby w ogóle potrzebę ulepszania do Skorpikor. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ok, Super. To już powinno być w porządku nawet bez Venom na Mantykorach. --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magic Mirror&#039;&#039;&#039; - Nadal jest raczej słabe, jak na 5-pz Czar. Zmieniłbym na &#039;&#039;All Schools&#039;&#039; (- naprawdę sądzę, że to by bardzo do tego Spella pasowało) i dał &#039;&#039;Additionally, it removes negative spell effects (e.g. curse) but not positive spell effects (e.g. bless)&#039;&#039; - tak jak posiada Anti-Magic (o ile da się to wkodować do innego Spella). Wtedy Czar byłby git. Mógłbyś też ewentualnie miast tego obniżyć poziom na 3/4th lvl, ale powiedziałbym, że większość czarów przynajmniej 4-poziomu jest od Mirror w stanie obecnym nadal o wiele lepsza. Mirror tylko byłby przesadnie zbuffowany, jeślibyś nagle zmienił go na All-Castem - to by było OP.&lt;br /&gt;
* Nie wiem jak dodać clearowanie jakiś konkretnych efektów spellem, który normalne niczego nie clearuje. Ten spell był błędem gdy powstał. Teraz daje tak wysokie szanse na odbicie, że żaden rozsądny gracz nie rzuci łańcucha piorunów ani innych spelli na kogoś obdarzonego tym czarem. Jakby go dać do all schools, to jeszcze bardziej osłabi Air magic a już słyszałem narzekanie, że Fire jest lepszy od Air teraz. Przesunięcie do 4-poziomu: nie jestem fanem; po pierwsze, wtedy trzeba by przenieść coś z 4 do 5 (by się liczba spelli zgadzała) a po drugie, wtedy Złote Smoki byłyby jeszcze gorsze (Magic Mirror to taki AntiMagic dla złotych smoków). Jedyny sposób w jaki mógłbym polepszyć ten spell to a) zmienić koszt b) zmienić szanse c) zrobić all-cast z mniejszą szansą (ale to byłoby kind of cancer jak chodzi o usuwanie wszystkich hirków z spellami z obrażeniami). - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Osobiście uważam, że Air jest nadal spoko - Dimension Door był spellem, który kompletnie trywializował poruszanie się po mapie, zmiana jego na Fire całkiem dobrze mi odpowiadała i pasowała tematycznie (portal &#039;wypalając&#039; wyrwę w czasoprzestrzeni + oczywiście Gate u Inferno) no i Air ma jeszcze czar &#039;podróżny&#039; w postaci Fly. Chain Lightning poniekąd da się wycelować, zajęłoby raczej 3-4 casty Mirror by kompletnie zniesmaczyć Chain Lightning i AOE Debuffy (i nadal miałby 30% szansę na nieodbice w stanie obecnym). Counterstrike, Fortune, Air Shield, Precision są wszystkie spoko. Fly niwelujący dodatkowe koszta terenu czasem bardziej się opłaca niż DD. Ale jak tak jeszcze raz rzuciłem okiem na Elementarne Szkoły potrafię zrozumieć dlaczego inni graczę mogliby argumentować, że za bardzo nerfisz Air, gdybyś dał Mirror na All Schools. &#039;&#039;&#039;To co powiesz na to:&#039;&#039;&#039; 50/75/100% (&amp;lt;- To by było chyba najlepsze, by Air School się bardziej opłacało brać) albo 60/80/100% na Mirror i zmniejszenie kosztów do tych samych co Anti-Magic. Wiem, że 100% może brzmieć na pierwszy rzut oka przesadnie, ale bez możliwości wkodowania &#039;oczyszczenia&#039; jednostek gdy się na nich rzuca Mirror, dużo zależy od tego czy masz pierwszy ruch w walce, by uchronić daną jednostkę przed Debuffem, trochę mniej ważne w częstszych situacjach przed 1-osobowym zmiażdżeniem jak Implozja, bo nie zawsze ktoś Implozję ma - oczyścić jej już za jednym zamachem z Debuffa nie oczyścisz, więc niech już Mirror ma przynajmniej to 100% na Expercie. W przeciwnym wypadku Anti-Magic+Earth Magic Skill wydaje się nadal silniejsze/bardziej opłacalne. Ochrona złotych smoków przeciw Implozji jest silna, ale to jest za bardzo sytuacyjne, i wydaje się raczej jak patchowanie niedociągłości jednej jednostki niż jak 5-pz spell jak Mirror powinien w rzeczywistości fungować.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mysticism&#039;&#039;&#039; - Początkowa regeneracja nadal mierna, i późniejsza mogłabybyć trochę wyższa - &#039;&#039;dałbym 5/13/25&#039;&#039; albo &#039;&#039;8/16/25&#039;&#039;. Na większych mapach (L+) wydaje się wciąż, że lepiej jest ignorować ten Skill i Bohaterów mających Mysticism od początku. (Gdy gram, balansując 3/2 - Power/Wisdom, mana prawie mi się nie kończy. Zawsze znajdzie się Miasto z Gildią, albo Magic Well w pobliżu - wystarczy tylko trochę patrzeć, gdzie się rusza Bohaterów. To po co miałbym w ogóle brać Mysticism? Wolałbym nawet mieć ten nowy Learning albo Eagle Eye XD)&lt;br /&gt;
* Miło mi słyszeć, że podoba ci się nowy Learning! Jak chodzi o Mistycyzm, moim zdaniem jest już całkiem dobry jak grasz na Impossible i chcesz wysoki Score zdobyć (by się nie wracać do zamku ciągle). Na stronie [[Mysticism]] wstawiłem porównanie z inteligencją - więc mój nowy ekspercki mistycyzm działa idealnie jesli używasz 60 many dziennie (DD, TP i &amp;quot;coś extra&amp;quot;). Poza tym, nie podoba mi się 5/13/25. Prędzej bym dał 6/11/21 (i przedstawić to jako 1+5/10/25) no może 10/20/30 (choć to chyba trochę za dużo). Co sądzisz? - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;br /&gt;
Edit: szczerze mówiąc 6/11/21 bardzo mi sie podoba i chyba tak dam. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Ja bym szczerze gorąco polecał Ci wypróbować przynajmniej na kilku grach u siebie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; na jakiś Większych Random Mapach L/XL/H + Podziemia, jeśli jesteś bardziej do tego skory niż 5/13/25 - 8/16/25 i inne kombinację (może &#039;&#039;&#039;5/15/25&#039;&#039;&#039; XD?). Też się zgodzę, że pod względem estetyki 10/20/30 wygląda najładniej jako liczba. Teraz na 5/10/20, Basic/Advanced jest dosyć słabe, i Expert też nie jest aż tak mocny, chyba, że ma się szybko Artefakt(y) - &#039;Mystic Orb&#039; dający dodatkowe 7 Many/dzień albo te dwa mniejsze odpowiedniki, tudzież jest to postać z Specjalnością Mistycyzm mająca już dobrą garść lvli - i nadal to, w tych specyficznych kombinacjach gdy gram, nie wydaje się &#039;aż tak silne&#039;, tylko raczej takie &#039;jakość-tak-może-ok&#039;. Jak za pierwszym razem pisałem o Mistycyzmie, wspominałem o procentowym regenerowaniu jako opcja u WOGa (10/20/30 &amp;gt;%&amp;lt;) - tą opcję testowałem wielokrotnie, wydawała się dobra [i nawet wcale nie aż tak mocna, jak się nie miało włączone 10 miast 8 Secondary Skill, niżby się na pierwszy rzut oka wydawało], ale nie przesadna - więc nie sądzę żeby nawet 10/20/30, mając tylko 8 Skill-slotów do dyspozycji, zniszczyło balans, ale sprawiłoby by Bohaterowie-Czarodzieje biliby bardziej skłonni do brania Mana-Regena nawet jeśliby nie mieli Specjalności. 30% to 90% Max Many &#039;dopiero&#039; po 3 dniach, na 15 Wisdom to 135 Many, a na mapach L+ z Podziemiami, ma się często o &#039;wiele&#039; więcej, i Procentowy Regen balansu gry nie zniszczył. Intelligence nadal wydawał się dużo mocniejszy pomimo &#039;%&#039; Regena, bo grając agresywnie i podbijając Zamki / rozplanowując ruch bohatera po już kontrolowanych terytoriach do Magicznych Studni i Zamków (+ też rzadszy Magic Spring, o którym wspomniałeś w adnotacji na stronce o Mistycyzmie), nadal o wiele prościej dało się regenerować o wiele większy zasób Many i to w pełni(!), w ciągu tylko jednego dnia(!) niż czekać na działanie &#039;procentowego&#039; Mistycyzmu do Maxa (I nawet po nerfie HOTA do 50%, Intelligence w mojej opinii jest silniejsze). 10/20/30 &#039;Punktowego&#039; Regenerowania naprawdę nie powinno się okazać nazbyt silne, da co najwyżej parę spelli w pierwszych walkach z neutralnymi NPC blokującymi drogę na mapie. Może to zwyczajnie kwestia różnych Stylów-gry - tak jak pisałeś o średniej Manie zużywanej na dzień - i ostatecznie wezmę to co dasz na Mistycyzm (HOTA z Pumpkinem jest już bardzo w porządku, i nowe Factory bardziej mi się spodobało niż w pierwszej chwili sądziłem), ale jest powód dla którego apelowałem/-uję o przynajmniej podbicie jeszcze troszkę Advanced (12-16) i Expert (przynajmniej do 25), Basic niech sobie będzie tym przysłowiowym &#039;Basic&#039;iem&#039;. Jeśli nie &#039;&#039;&#039;10/20/30&#039;&#039;&#039; to &#039;&#039;&#039;5/15/25&#039;&#039;&#039; brzmi chyba też całkiem nieźle ^^ ? --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dalsze pomysły:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;+Scholar&#039;&#039;&#039; - Przy testowaniu 1.3.1 zauważyłem, że &#039;&#039;&#039;Scholar&#039;&#039;&#039; uczy tylko 1-2/3/4-lvl max czarów. Czy zmiana na 1-3/4/5 byłaby zbyt potężna? Komponowałby się lepiej z nowym &#039;&#039;&#039;Eagle Eye&#039;&#039;&#039;.&lt;br /&gt;
* No zmiana na 3/4/5 trochę by zrujnowała cały koncept postaci Gwenneth. Byłaby dość potężna (obecnie główne ograniczenie hirków ze scholarem to wymaganie level-upu by dzielić silniejsze czary) no i tbh ja zawsze chcę mieć co najmniej jednego hirka ze scholarem tak czy siak. No i wyobraź sobie takiego Alamara, który na 2 poz. (czyli 1. tura z Battle Scholar Academy) może już uczyć wszystkich nowych hirków Wskrzeszenia... Myślę że Scholar jest okej. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Z tym się zgodzę, za szybkie dzielenie się 4th lvl Spellami, z którymi startują niektórzy Bohaterowie, na samym &#039;Advanced Scholar&#039;, mogłoby być za silne w Early-gamie. Scholar wydawał mi się już w stanie obecnym całkiem dobry, bo samo przenoszennie 4-pz Czarów jest całkiem spoko, ale wolałem podrzucić zapytanie. - korzystam raczej sporadycznie ze Scholara, jak się natrafi, na swoich Utility-Heroesach i póżniej rozsyłam by przenosiły Spelle dalej od Zamków/Głównego Bohatera, ale też nie zawsze. Tak jak teraz piszę, to ciekawe byłoby, gdyby istniał jakiś (Major?) Artefact, który by Scholar zwiększał o 1-lvl Spelli.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dragon Cave&#039;&#039;&#039; - Ponownie proszę o przeniesie 5 Kamieni i 5 Drewna (:D) z kosztów Bazowych do Ulepszonych, by wyglądały: &#039;&#039;&#039;Podstawowe Dragon Cave&#039;&#039;&#039; (Czerwone Smoki) &#039;&#039;10 Drewna, 10 Kamienia&#039;&#039;, 20 Siarki, 15000g; &#039;&#039;&#039;Ulepszone Dragon Cave&#039;&#039;&#039; (Czarne Smoki) &#039;&#039;20 Drewna, 20 Kamienia&#039;&#039;, 20 Siarki, 15000g (&#039;&#039;Total costs for both dwellings remain the same.&#039;&#039;). Posiadanie takich samych kosztów Bazowych i Ulepszonych Budowli, jest dosyć &#039;nudne&#039;, a wiele innych zamków ma inaczej - szczególnie Rampart, które ma niemalże lustrzane odbicia Smoków Dungeon&#039;a (Tematycznie Dobre vs. Złe Smoki?). U Rampart &#039;&#039;&#039;Bazowe Dragon Cliffs&#039;&#039;&#039; kosztuje 30 Kamienia, 20 Kryształów, &#039;&#039;10000g&#039;&#039;, a &#039;&#039;&#039;Ulepszone Dragon Cliffs&#039;&#039;&#039; 30 Kamienia, 20 Kryształów, &#039;&#039;20000g&#039;&#039;. Kamienia i Drewna raczej na mapach nie brakuje, więc na Całościowy Balans nie powinno to raczej wpłynąć (może gracz Dungeon będzie miał 250g więcej na Budowlę Czerwonych Smoków po sprzedaniu tych 5 Kamienia/Drewna na targowisku, XD)&lt;br /&gt;
* No w zasadzie... Dobra. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Nice! &#039;&#039;--[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]]) &lt;br /&gt;
&lt;br /&gt;
Jeszcze raz dzięki za twoją pracę nad patchowaniem H3. Nawet jeśli postuluję o dalsze działania, twoje już zaimplementowane zmiany o wiele polepszyły moją grę w Heroes&#039;y (wreszcie gram w HOTA i nie muszę się już męczyć z WOG/Era, jeśli nie chcę zbyt odbiegających, dalszych customizacji). Mam nadzieję, że moje sugestie polepszeń nie wydają się zbyt &#039;upierdliwe&#039; XD. Dzielę się nimi z własnej miłości dla Heroes III (i mając trochę bzika na punkcie statystyk i analizowania/balansowania różnych gier...).&lt;br /&gt;
&lt;br /&gt;
- Eldrin&lt;br /&gt;
&lt;br /&gt;
* No oczywiście, że mi nie przeszkadzają! Bardzo mi miło, że ktoś chce ze mną omawiać balans gier. Masz może jakiś inny komunikator poza tym czatem? Discord, acidcave.net, etc.?&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;// Discorda w zasadzie mam, tylko raczej bardzo rzadko z niego korzystam. &#039;&#039;&#039;Założyłem konto na acidcave.net, i podesłałem wiadomość :)&#039;&#039;&#039; . Tutaj jeszcze odpisałem powyżej na dyskusję, ale jakby co to możemy już na Kwasowej pisać.&#039;&#039; --[[User:Eldrin|Eldrin]] ([[User talk:Eldrin|talk]])&lt;br /&gt;
&lt;br /&gt;
== Interference and Water/Fire magic ==&lt;br /&gt;
&lt;br /&gt;
Would you be okay with Interference to give same values as the original Resistance? I feel like removing in completely on most magic heroes was not good idea.&lt;br /&gt;
&lt;br /&gt;
Also additionally some heroes originally have fire and water magic banned. In some ways this can be thought of as an advantage (these heroes can guarantee earth and air), but with the spell rebalance, it seems like unnecessary lacking.&lt;br /&gt;
&lt;br /&gt;
The only issue I can see with the changes would be breaking of the skill trees (same seed and same progression would result in different skills), but imo this already happens with the multiplayer maps if some skills are disallowed. And of course making some skills more viable to pick did already change that anyway.&lt;br /&gt;
&lt;br /&gt;
* Interference - From 1.3.7 interference will have 1 chance to roll and no longer be banned for all hero classes other than Wizards, Warlocks, Elementalists and Artificers; same with Resistance. Barbarians, Rangers etc will be able to learn all magic schools, with some schools being significantly favoured compared to others.&lt;br /&gt;
&lt;br /&gt;
* It&#039;s there! Enjoy.&lt;br /&gt;
&lt;br /&gt;
== Bug report ==&lt;br /&gt;
&lt;br /&gt;
* Enabling Athe only makes Olenna disappear. No Athe is selectable in advanced options for random map.&lt;br /&gt;
* Disabling Archibald seems to only enable Jeddite. Archibald&#039;s ugly face is still there! (And he can appear in prisons).&lt;br /&gt;
* Pressing Reset does not get rid of Archibald or the pumpkin patch. How do I get rid of him/the patch?&lt;br /&gt;
* The patch also installs icons on my Linux desktop that do not work. :-)&lt;br /&gt;
* Hero Limit of 1 does not limit to a single hero. Prisons can still give you more (unlike with 8 max). Maybe one hero limit should be called disable hero hiring?&lt;br /&gt;
&lt;br /&gt;
And a selfish question: do you know how to modify skills changed by Hota? &lt;br /&gt;
I presume they are in the HotA DLL. Would like to have original Estates and Pathfinding, and nerf the new Mysticism, 30%+/day is too much.&lt;br /&gt;
(We have been playing heroes our way with LONG game on max maps for 20 years, and have no intention of start playing Jebus Cross. Managing mana was one of the big factors for us).&lt;br /&gt;
&lt;br /&gt;
== Request - Alt Version with DD/TP Nerfs reverted for single hero templates like duel ==&lt;br /&gt;
Hi there, loving the mod but am struggling to play and enjoy popular single hero templates like &amp;quot;duel 2.7&amp;quot; with the mana cost and movement cost nerfs to DD and TP. While the nerfs feel really good on standard multi-hero templates and open up more choices in building your hero, on single hero templates like duel they feel punishing and somewhat force you to pick a few specific heroes to offset the significant reduction in tempo from the changes. A lot of these templates are built around immediate access and use of these spells so the balance of the spells is less of an issue. The spell school change is interesting and seems good, although fire magic now feels really strong since it covers expert DD and expert TP, but since fly is still air the balance does not seem affected too strongly by this change.&lt;br /&gt;
Making a alternate version is hard enough let alone maintaining one so I fully understand if it is not something you want to do at this time.&lt;br /&gt;
* The feature you&#039;re describing is currently being prepared. Melkor and I are working on a hex-swapper project which will allow you to customize which Pumpkin patch changes you want to keep and which you want to get rid of, with the possibility of changing these in-between games. - [[User:Csaros|Csaros]] ([[User talk:Csaros|talk]])&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Earth_Magic&amp;diff=187961</id>
		<title>Earth Magic</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Earth_Magic&amp;diff=187961"/>
		<updated>2025-11-03T15:35:36Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Add table to user commentary for chances of being offered Earth Magic as first magic school */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{About|This article refers to the [[secondary skill]]. For the school of magic, see {{l|School of Earth Magic}}.}}&lt;br /&gt;
&lt;br /&gt;
{{Secondary skills}}&lt;br /&gt;
{{Secondary skill&lt;br /&gt;
| B_effect = allows your hero to cast earth spells at reduced cost.&lt;br /&gt;
| A_effect = allows your hero to cast earth spells at reduced cost and {{gt|increased effectiveness}}.&lt;br /&gt;
| E_effect = allows your hero to cast earth spells at reduced cost and {{gt|maximum}} effectiveness.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
There is a special rule in place that offers schools of magic more often as a choice when leveling up than the secondary skill learning percentages suggest: a new school of magic will be offered at least every 4 levels for Might heroes and every 3 levels for Magic heroes. For example: a Might hero was not offered a school of magic when reaching levels 2 and 3; the hero will then be guaranteed to be offered a magic school at level 4; at level 8, the hero will again be offered a new magic school if none were offered at levels 5, 6, or 7.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heroes with Earth Magic as a starting skill:&#039;&#039;&#039;&lt;br /&gt;
* {{H2|Labetha|Elementalist}}&lt;br /&gt;
* {{H2|Grindan|Elementalist}}&lt;br /&gt;
&lt;br /&gt;
== Chance to get ==&lt;br /&gt;
{{Secondary skill chance explanation}}&lt;br /&gt;
&lt;br /&gt;
{{ZET SEC SKILL CHANCE TABLE| 2 (lowest)| 3| 3| 4| 3| 3| 3| 4| 4| 8 (highest)| 3| 5| 3| 3| 3| 3| 3| 6| 4| 5| 3| 4}}&lt;br /&gt;
&lt;br /&gt;
== Gallery ==&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=&amp;quot;150px&amp;quot;&amp;gt;&lt;br /&gt;
Brian-kemper-earth.jpg| Art by [[Brian Kemper]]&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{user commentary|&lt;br /&gt;
Earth Magic is one of the most important secondary skills, as some of spells from the School of Earth Magic are really crucial. Expert [[Slow]] can make enemy&#039;s troops fully incompetitive (or disallow someone extremely fast, like [[Archangel|Archangels]] or [[Phoenix|Phoenixes]], to rush through the battlefield), [[Implosion]] may destroy a strong stack completely (even with Spell Power 10, Expert Implosion will do 1050 damage, which would kill e.g 10 [[Champion|Champions]]), troops risen by [[Resurrection]] cannot remain after the battle without Earth Magic skill, and [[Town Portal]] will get the hero without the skill only to the nearest town (while sometimes it&#039;s very important to visit a particular one, e.g. to defend it when a strong enemy comes close, to get troops, to learn spells, or to improve skills in buildings like [[Hall of Valhalla]] or [[Wall of Knowledge]]. Town Portal can allow a hero to travel between all his towns). Moreover, [[Animate Dead]] is also an Earth spell. These spells can make a game really easier. Other magic schools are useful, but Earth Magic rocks.&lt;br /&gt;
&lt;br /&gt;
There are several reasons to select Earth Magic, but one of the strongest motive is [[Town Portal]] spell, which is among the most powerful adventure map spells along with [[Fly]] and [[Dimension Door]]. Another excellent reason is the [[Resurrection]] spell (and [[Animate Dead]] for [[Undead]]), which permanently resurrects creatures at Advanced and Expert level (while on Basic level only for the duration of the battle). A hero with a lot of spell points, high [[power]] skill and Expert or Advanced Resurrection can win almost any battle without suffering losses (for example, by [[Blind|Blinding]] the last enemy stack and then resurrecting all of their own troops).&lt;br /&gt;
&lt;br /&gt;
Furthermore, with Expert Earth Magic, [[Shield]], [[Stone Skin]] and [[Slow]] become powerful [[mass spell|mass spells]] at Expert level. Slow as a mass [[hindering spell]] has especially devastating effects among enemy troops, as it reduces all enemy creatures&#039; [[speed]] by 50%, which may change the outcome of battles against overpowering opponents.&lt;br /&gt;
Earth magic also contains [[Meteor Shower]] which is a great multi hex damaging spell and [[Implosion]] which is the strongest [[single target spell]] in the game, capable of destroying or crippling a power stack at the beginning of the fight.&lt;br /&gt;
&lt;br /&gt;
To correctly assess the outlook for a hero obtaining Earth Magic, one also has to take into account that heroes are guaranteed to be offered a magic school (unless they already have one) when reaching levels 4,8,12,... (might heroes) or levels 3,6,9,... for magic heroes. In this situation the chance for being offered Earth Magic has to be weighed only against the probabilities for the other magic schools. Hence the chance of being offered Earth Magic as the first magic school are:&lt;br /&gt;
&lt;br /&gt;
{{ZET SEC SKILL CHANCE TABLE&lt;br /&gt;
| 20%| 23%| 43%| 36%| 30%| 21%| 30%| 29%| 40%| 50%| 50%| 36%| 38%| 21%| 50%| 25%| 30%| 25%| 36%| 23%| 33%| 29% }}&lt;br /&gt;
&lt;br /&gt;
If the player is not offered Earth Magic and declines the offered magic school, the same probabilities apply until one is chosen or the secondary skill slots are full.&lt;br /&gt;
&lt;br /&gt;
}}{{end of user commentary}}&lt;br /&gt;
&lt;br /&gt;
{{secondary skill &#039;see also&#039;}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Secondary skills]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
	<entry>
		<id>https://heroes.thelazy.net//index.php?title=Template_Editor&amp;diff=162883</id>
		<title>Template Editor</title>
		<link rel="alternate" type="text/html" href="https://heroes.thelazy.net//index.php?title=Template_Editor&amp;diff=162883"/>
		<updated>2025-07-02T09:19:06Z</updated>

		<summary type="html">&lt;p&gt;Tapani: /* Connection Types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inhota}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Random maps are not fully random. Behind every random map, there is a template that describes the structure and the main features of the map.&lt;br /&gt;
&lt;br /&gt;
[[Horn of the Abyss]] includes:&lt;br /&gt;
&lt;br /&gt;
* An editor to create custom templates;&lt;br /&gt;
* An extension to the original template format, allowing for deeper customization of random maps;&lt;br /&gt;
* Various bugfixes of the original random map generator (RMG).&lt;br /&gt;
&lt;br /&gt;
Templates are packed in text files called &amp;quot;template packs&amp;quot;. A pack can contain one or more templates. To create a random map, the random map generator takes a template pack as input. When you press &amp;quot;Begin&amp;quot; to start a game, RMG randomly picks from the pack a template that matches the game settings (map size, number of players, etc). Then the random map is generated based on this particular template.&lt;br /&gt;
&lt;br /&gt;
RMG template editor only creates template packs. But most of the time, for custom templates, a pack contains only a single template. So the notions of template pack and template are often mixed (including in game interface), and &amp;quot;template packs&amp;quot; are simply called &amp;quot;templates&amp;quot;. In this article, both concepts will be clearly separated.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclaimer: water maps&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Despite the fact that water objects are supported by RMG, and despite the fact this article frequently describes how certain options work with water maps, it should be kept in mind that the mechanism of water generation on random maps is imperfect and usually creates non-playable maps. At the moment, it is hardly possible to create a worth-playing template for water maps.&lt;br /&gt;
&lt;br /&gt;
== Template Pack Settings ==&lt;br /&gt;
&lt;br /&gt;
In addition to template pack name and description, this section contains some settings that may restrict the choice of starting options that is performed by player before the template is chosen from template pack.&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
&lt;br /&gt;
The name is the identifier of the templates pack, just like non-random maps have their own name. It is displayed in the description of the generated map, along with the name of the particular template selected for this map. However, in the future, the name of the template pack may be used more extensively in the template selection menu (unlike the name of the template, which is only needed to show which template was selected from the pack). If the template pack is added to the HoMM 3 HD selection list, it is recommended that the template pack name matches the template folder name. Currently, only the template folder name is displayed in the selection list in HD. If the template pack contains only one template, it is recommended that both the template and the pack have the same name.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
The template description is intended to play the same role as the map description does for non random maps. If it is non-empty, it is displayed in game on the place of the map description.&lt;br /&gt;
&lt;br /&gt;
=== Allowed Towns ===&lt;br /&gt;
&lt;br /&gt;
This setting allows you to restrict the towns that can be selected at the start of the game, before generating the map. It applies equally to all players.&lt;br /&gt;
&lt;br /&gt;
Note that it only restricts the starting towns that can be selected. All towns can still appear on the map, and all towns remain available as starting towns if the player selects &amp;quot;Random&amp;quot;. To completely ban a town from the template pack, you need to ban it from all zones of all templates of the pack.&lt;br /&gt;
&lt;br /&gt;
It is recommended to synchronize the list of banned towns of the pack with the list of banned towns of every starting zone of every template.&lt;br /&gt;
&lt;br /&gt;
If all towns are banned, [[Castle]] will automatically be allowed.&lt;br /&gt;
&lt;br /&gt;
=== Heroes ===&lt;br /&gt;
&lt;br /&gt;
This setting controls which heroes can:&lt;br /&gt;
&lt;br /&gt;
* Be selected (randomly or not) at the start of the game;&lt;br /&gt;
* Appear in taverns or prisons.&lt;br /&gt;
&lt;br /&gt;
By default, the following are banned:&lt;br /&gt;
&lt;br /&gt;
* Campaign heroes: [[Adrienne]], [[Catherine]], [[Dracon]], [[Gelu]], [[Kilgor]], [[Lord Haart#Lord Haart the Death Knight|Haart Lich]], [[Mutare]], [[Roland]], [[Mutare Drake]], [[Boragus]], [[Xeron]], [[Bidley]] and [[Tark]];&lt;br /&gt;
* [[Galthran]] and [[Sir Mullich]];&lt;br /&gt;
* [[Sylvia]], [[Voy]] and [[Elmore]] if a random map is generated with &amp;quot;Water content: No&amp;quot;;&lt;br /&gt;
* [[Beatrice]], [[Kinkeria]] and [[Derek]] if a random map is generated &amp;quot;Water content: Normal&amp;quot; or &amp;quot;Water content: Islands&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Any hero can be allowed or banned. Template pack settings always take precedence over default settings (regardless what the &amp;quot;water content&amp;quot; is). However, the choice of the starting hero will always be limited to a list of 16. If the heroes count is higher for a town, only the first 16 will be available for manual selection. The others will still available through random selection, though.&lt;br /&gt;
&lt;br /&gt;
You can ban any number of heroes, but if the total heroes count is not greater than 10 * (number of players) + 48 heroes, no Prisons will be generated. And if the total count is smaller, there may be a situation where you can hire only one hero from the Tavern, or where you just cannot hire any. If all heroes of a certain class are banned, heroes from other classes will be generated instead.&lt;br /&gt;
&lt;br /&gt;
If the hero [[Gem]] is allowed, her starting spell will be either [[Summon Boat]], if water content is &amp;quot;Normal&amp;quot; or &amp;quot;Islands&amp;quot;, or [[Bless]], if water content is &amp;quot;None&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Template Settings ==&lt;br /&gt;
&lt;br /&gt;
A template defines the structure and main features of a random map. One of them is randomly selected from the pack before map generation.&lt;br /&gt;
&lt;br /&gt;
=== Special Weeks ===&lt;br /&gt;
&lt;br /&gt;
This setting allows you to enable or disable the weeks and months of monsters (except when [[Deity of Fire]] is constructed), as well as the months of the plague. By default, special weeks are enabled.&lt;br /&gt;
&lt;br /&gt;
=== Spell Research ===&lt;br /&gt;
&lt;br /&gt;
This setting allows you to enable or disable spell research, which allows you to change spells in the Mage Guilds for a cost. It applies equally to all towns and players. By default, spell research is turned on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;rock_blocks&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rock Blocks ===&lt;br /&gt;
&lt;br /&gt;
By default, zones will always stretch to cover the entire non-underground area of the map. RMG proceeds in two steps. First, zones are laid out without forcing all the space to be occupied. At this stage, zones tend to have regular, circular shapes, and do not cover the whole map: there are usually unoccupied cells next to the border and at the corners of the map. In a second step, all unoccupied cells are claimed by the nearby zones. As a result, these zones may expand significantly, regardless their size setting. When &amp;quot;rock blocks radius&amp;quot; option is enabled, some of the unoccupied cells are filled with obstacles, so they do not contribute to extend the playable area of the nearby zones. It results in zones that are more uniform in size and shape. The &amp;quot;rock block radius&amp;quot; setting controls the relative radius of the playable zone. Default value is 1.0. The smaller the value, the more cells are filled with obstacles, resulting in smaller playable zones, but with more regular shape. However, if the value is too small, the option will be automatically disabled.&lt;br /&gt;
&lt;br /&gt;
For underground zones, a similar algorithm is always enabled, with a radius of 4.0. This value will be overwritten by &amp;quot;rock blocks radius&amp;quot; value, if enabled.&lt;br /&gt;
&lt;br /&gt;
For templates with water content, water will be generated instead of obstacles. Water zones are not affected by rock block radius option.&lt;br /&gt;
&lt;br /&gt;
Rock block radius can be tuned, by trial and error, to adjust zone sizes and/or zone size ratios. Note that a radius value will only be suitable for a given map size and a given template structure. If you change these, you may have to manually adjust the radius again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;zone_sparseness&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zone Sparseness ===&lt;br /&gt;
&lt;br /&gt;
When creating zones, RMG sets a reference square, and tries to ensure, as much as possible, that all zone shapes individually fit into it. Zone sparseness option allows to adjust the size of this reference square by a scaling factor. Default value is 1.0. If value is less than 1.0, zones will be constrained to individually fit into a smaller reference square, so they will tend to be more even and more circular and proportionally sized, but there will be less diversity in shapes and less randomness in placement. If value is more than 1.0, zone shapes will be less constrained, so there will be more randomness in shapes and placement, but zones will tend to be less circular and to have irregular sizes.&lt;br /&gt;
&lt;br /&gt;
Zones sparseness can be tuned, by trial and error, to adjust zone sizes and/or zone size ratios. Note that effect depends on template structure, map size, and water content. So if you change those, you may have to manually adjust zone sparseness again.&lt;br /&gt;
&lt;br /&gt;
=== Artifacts ===&lt;br /&gt;
&lt;br /&gt;
This setting controls which artifacts can, or cannot, appear during the game. Banned artifact will not appear on the map, nor in any situation, including: as random artifact on map, as starting artifact, in map objects and Artifact Merchants, and as [[Seer&#039;s Hut]] quest artifact. Special artifacts ([[Spell book]], [[Spell Scroll]]s, [[War Machine]]s and [[Grail]]) are not affected by this setting. By default, the following artifacts are prohibited:&lt;br /&gt;
&lt;br /&gt;
* All assembled artifacts (they can be assembled from component parts, but they can not be found on the map already assembled);&lt;br /&gt;
* [[Vial of Dragon Blood]], [[Armageddon&#039;s Blade (artifact)|Armageddon&#039;s Blade]] and the [[Horn of the Abyss (artifact)|Horn of the Abyss]];&lt;br /&gt;
* [[Recanter&#039;s Cloak]] and the [[Orb of Inhibition]];&lt;br /&gt;
* [[Sea Captain&#039;s Hat]], [[Necklace of Ocean Guidance]] and [[Boots of Levitation]], if the random map is generated with &amp;quot;water content: No&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Any artifact can be allowed or banned. Template settings always take precedence over default settings (regardless the water level). However, it should be noted that if spell [[Summon Boat]] or [[Scuttle Boat]] is banned, then the Captain&#039;s Hat is automatically banned. Also, [[Seer&#039;s Hut]] quest artifacts are automatically disabled on the map and exist only in a single copy.&lt;br /&gt;
&lt;br /&gt;
At least one artifact must be allowed. If all artifacts are banned, the [[Blackshard of the Dead Knight]] will automatically be allowed. If all artifacts of a certain class are banned, then artifacts of other classes will be generated instead (except for [[Seer&#039;s Hut]] quest artifacts, which can only belong to &amp;quot;treasure artifacts&amp;quot; class).&lt;br /&gt;
&lt;br /&gt;
Combination artifacts can also be banned. This prevents the assembly/disassembly of them on the template.&lt;br /&gt;
&lt;br /&gt;
=== Spells ===&lt;br /&gt;
&lt;br /&gt;
This setting controls which spells can or cannot appear. Banned spells will not appear in [[Mage Guild]]s, [[Shrine]]s, [[Pyramid]]s, [[Spell Scroll]]s, [[Pandora&#039;s Box]] and [[Scholar (Adventure Map)|Scholars]], and will not be granted by Tomes of Magic and [[Spellbinder&#039;s Hat]]. But they will still be available as hero starting spells. In particular, note that if the hero [[Gem]] is allowed, her starting spell will always be [[Summon Boat]] if water content setting is &amp;quot;Normal&amp;quot; or &amp;quot;Islands&amp;quot;, and [[Bless]] otherwise. Special spells ([[Titan&#039;s Lightning Bolt]] and creature abilities: Stone, Poison, Bind, Disease, Paralyze, Aging, Death Cloud, Lightning Strike ([[Thunderbird]]s), Dispel Good, Death Stare and Acid Breath) are not affected by this setting. By default, the following spells are disabled:&lt;br /&gt;
&lt;br /&gt;
* [[Summon Boat]], [[Scuttle Boat]] and [[Water Walk]] if a random card is generated with water content: &amp;quot;None&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Any spell can be allowed or banned. Template settings always take precedence over default settings (regardless the water level). If [[Summon Boat]] or [[Scuttle Boat]] are banned, the Sea Captain&#039;s Hat it automatically banned.&lt;br /&gt;
&lt;br /&gt;
At least least one spell of each level should always be allowed. If you ban all spells of a level, one of those will automatically be enabled:&lt;br /&gt;
&lt;br /&gt;
* Level 1: [[Magic Arrow]]&lt;br /&gt;
* Level 2: [[Lightning Bolt]]&lt;br /&gt;
* Level 3: [[Fireball]]&lt;br /&gt;
* Level 4: [[Chain Lightning]]&lt;br /&gt;
* Level 5: [[Implosion]]&lt;br /&gt;
&lt;br /&gt;
[[Pandora&#039;s Box]] and [[Spell Scroll]] types that contain only forbidden spells will be automatically banned.&lt;br /&gt;
&lt;br /&gt;
=== Secondary Skills ===&lt;br /&gt;
&lt;br /&gt;
This setting controls which secondary skills can be learned. Banned skills will not appear when a hero levels up, nor anywhere else on the map, including [[Witch Hut]]s, [[Universities]] and [[Scholar (Adventure Map)|Scholars]], but they will still be available as heroes starting skills. By default, the following skills are banned:&lt;br /&gt;
&lt;br /&gt;
* [[Navigation]] if a random map is generated with a water level of &amp;quot;None&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Any secondary skill can be allowed or banned. Template settings always take precedence over default settings (regardless the water level).&lt;br /&gt;
&lt;br /&gt;
At least four secondary skills should always be allowed. If less than four skills are allowed, the missing ones will automatically be taken from the beginning of the list.&lt;br /&gt;
&lt;br /&gt;
== Zone Settings ==&lt;br /&gt;
&lt;br /&gt;
Random maps are made of interconnected zones. Each zone is a self-coherent piece of land, containing a single terrain type. Zone settings control zone size, location, terrain, objects content, and much more.&lt;br /&gt;
&lt;br /&gt;
=== Size ===&lt;br /&gt;
&lt;br /&gt;
Controls the relative size of the zone. The actual size depends on additionnal factors such as:&lt;br /&gt;
&lt;br /&gt;
* Map size;&lt;br /&gt;
* Number of zones;&lt;br /&gt;
* Sizes of other zones;&lt;br /&gt;
* [[#zone_sparseness|Zone sparseness]] setting;&lt;br /&gt;
* [[#rock_blocks|Rock blocks]] setting. So zone size must be adjusted by trial and error until the right size is obtained. Adjusting [[#zone_sparseness|zone sparseness]] and [[#rock_blocks|rock blocks]] may also help to have better control over zone sizes.&lt;br /&gt;
&lt;br /&gt;
Note: Template generation works best when all zones are the same size. Size for Junction zone may differ and interfere with neighbour zones&#039; sizes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;zone_placement&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Placement ===&lt;br /&gt;
&lt;br /&gt;
This option allows you to specify on which level of the map (ground or underground) the zone must be generated. By default, zones can be generated on any level, except player&#039;s starting zones, that can be generated only on ground level for non-evil factions. When playing without underground, placement option is ignored. If placement is set to &amp;quot;ground only&amp;quot; or &amp;quot;underground only&amp;quot;, it takes precedence over default behavior, forcing zone to belong to the specified level.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;allow_non_coherent_roads&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Allow Non-Coherent Roads ===&lt;br /&gt;
&lt;br /&gt;
By default, all the roads passing through a zone are connected: all road tails, towns and shipyards can be accessed without leaving the road and without leaving the zone. Enabling the option &amp;quot;Allow non-coherent roads&amp;quot; will allow disconnected roads to coexist in the same zone. In most cases, all roads of the zone will still be connected, but if there are many zones with several towns in the template, zones with disconnected roads may appear frequently, making the entire road network of the template more unpredictable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;zone_repulsion&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zone Repulsion ===&lt;br /&gt;
&lt;br /&gt;
If Zone Repulsion is enabled, RMG will try to place this zone as far as possible (by summary travel distance) from all other zones where &amp;quot;Zone Repulsion&amp;quot; is also turned on. Note that zone location depends on many other factors, including connections with other zones. Of all these factors, Zone Repulsion is the one with the lowest priority. So if zone location is already very constrained, this option may have no tangible effect. See [[#advanced_zone_placement|advanced zone placement]] for more details about how the RMG prioritizes constraints.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;force_neutral_creatures&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Force Neutral Creatures ===&lt;br /&gt;
&lt;br /&gt;
This option is labeled as &amp;quot;Dwellings / creature rewards: only neutral&amp;quot; in template editor. When enabled, it sets the zone faction to be neutral:&lt;br /&gt;
&lt;br /&gt;
* only dwellings of neutral creatures can be generated&lt;br /&gt;
* only neutral creatures can be found in [[Pandora&#039;s Box]] that contain creatures&lt;br /&gt;
* if the prize for a quest artifact generated in this zone is creatures, they can only be neutral (note that the [[Seer&#039;s Hut]] for this artifact will be located in another zone, see [[#quest_artifact_for_seers_hut|here]] for more information about the quest artifact mechanism).&lt;br /&gt;
&lt;br /&gt;
In case this option is not activated, zone faction is determined by the [[#zone_faction|default rules]] and depends on main town type or terrain type.&lt;br /&gt;
&lt;br /&gt;
== Connection Settings ==&lt;br /&gt;
&lt;br /&gt;
Connections are ways to move from one zone to another. It includes direct land contact between zones, but also contact through underground gates or monoliths. On maps with water, it also includes contact through shipyards. However, this last type of connection often violates the structure of the map and will not be considered in detail in this article. The only possible connections between zones are the ones described in the template.&lt;br /&gt;
&lt;br /&gt;
=== Connection Types ===&lt;br /&gt;
&lt;br /&gt;
* Standard connections are typically guarded by monsters, whose strength depends on connection value. If the value is too low, monsters may not be generated. The template editor limits connection values to 200k, but higher values can be hand edited into the template files (but too large values, over 3M, also results in no guards). If the connection takes the form of a direct land contact between zones, there may be, depending on the length of the common boundary, several contact points, each of them being guarded by its own monster stack. If the connection takes the form of a monolith, there always will be a single monolith guarded from both sides (unless the template has very many zones and the game runs out of bidirectional monoliths - then connections can be materialized as pairs of one directional monoliths). Idem for underground gates.&lt;br /&gt;
* Wide connections are never guarded. If the connection takes the form of a direct land contact, and if both zones are located on ground level (as opposed to underground), then the passage between zones is wide, practically covering the entire common boundary. In any other case, the connection is similar to a standard connection without monsters.&lt;br /&gt;
* &amp;lt;span id=&amp;quot;border_guard_connection&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; Connections with Border Guard are blocked by two successive Border Guard objects, with different colors (instead of normal monsters guard). Both zones will have the [[Keymaster&#039;s Tent]] (without monster protection) that unlocks the Border Guard of the opposite side. So in order to pass through, one must first visit the [[Keymaster&#039;s Tent]] on the other side (as well as the local one). In the case of a direct land connection, more than two colors of Border Guard can be used. The number of Border Guard colors is limited. If there are no colors left, the remaining border guard connections will be generated as standard connections (you can set the value for these links). Note that each Border Guard color can only be dedicated to a single purpose, which is either guarding a connection or guarding Keymaster Tent treasure (see [[#keymasters_tent_the_object|here]]). In case there are not enough Border Guard colors available to fulfill the template needs, Border Guards dedicated to connections will take precedence over the ones dedicated to treasure. Using Border Guard connections is not recommended.&lt;br /&gt;
* Fictive connections, unlike regular connections, will not materialize into some way of traveling from one zone to another. However, like other connections, they will affect the placement of zones, increasing the chances for connected zones to be close to each other (given that they have adequate [[#zone_placement|zone placement]] settings, and compatible [[#connection_placement|connection placement]] settings).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;connection_placement&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Placement ===&lt;br /&gt;
&lt;br /&gt;
Placement setting affects the location of the connected zones. Note that in most cases, this setting only acts as a hint: there is no guarantee that zones will actually meet the requested placement (RMG may not always be able to fulfill your requests). However, RMG creates zones one after another, in ascending zone number, so [[#advanced_zone_placement|choosing adequate zone ID]] is often an efficient way to achieve the desired placement. For example, connected zones that have successive numbers are more likely to follow the placement request.&lt;br /&gt;
&lt;br /&gt;
Placement options are:&lt;br /&gt;
&lt;br /&gt;
* Free: This is the default setting. RMG tries to place connected zones either next to each other with direct land contact, or one on top of the other with underground gate contact. Monoliths are avoided as much as possible.&lt;br /&gt;
* Ground: RMG will try to place zones on the same level, next to each other so they can have direct land connection. If a zone has both &amp;quot;Ground&amp;quot; and &amp;quot;Free&amp;quot; connections, &amp;quot;Ground&amp;quot; setting takes precedence for zone placement.&lt;br /&gt;
* Underground: RMG will try to place connected zones one under the other so that they can be connected by an Underground Gate. If a zone has both &amp;quot;Underground&amp;quot; and &amp;quot;Free&amp;quot; connections, &amp;quot;Underground&amp;quot; setting takes precedence for zone placement. If the map has no underground level, this setting is automatically replaced by &amp;quot;Free&amp;quot;.&lt;br /&gt;
* Monolith: connection will not affect zone placement, and zones will always be connected via a monolith (even if they are close enough to be connected by direct land connection or Underground Gate).&lt;br /&gt;
* Random: connection will not affect zones placement. If zones end up being close enough, they will be connected by direct land contact or underground gates. Otherwise, they will be connected via a monolith.&lt;br /&gt;
&lt;br /&gt;
The more links with &amp;quot;Ground&amp;quot; or &amp;quot;Underground&amp;quot; option, the more difficult it will be for RMG to comply with all the placement hints, and the more difficult it will be to lay out zones tightly (as a result, zone sizes will fluctuate more). &amp;quot;Monolith&amp;quot; and &amp;quot;Random&amp;quot; options, on the contrary, simplify RMG&#039;s task, favoring the respect of other placement constraints, and allowing tight zone placement.&lt;br /&gt;
&lt;br /&gt;
=== Roads ===&lt;br /&gt;
&lt;br /&gt;
This setting allows to control the generation of roads from one zone to another.&lt;br /&gt;
&lt;br /&gt;
Roads options are:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Random&amp;quot; (default): the roads a generated under the default mechanism. The possibility of their presence depends on the template structure and includes a random element.&lt;br /&gt;
* &amp;quot;Yes&amp;quot; (obligatory road): if the connection is part of a simple path (without zone and connection reoccurrence) between two zones with towns, and all the connections along this path have their road option set to &amp;quot;Yes&amp;quot;, then a road will always go through this path. Otherwise this setting works like &amp;quot;Random&amp;quot;. Less formal, obligatory roads must always connect zones with towns (possibly through intermediate zones without towns), otherwise they are ignored.&lt;br /&gt;
* &amp;quot;No&amp;quot;: no roads will pass through this connection. This option is automatically turned on for connections through water (from shipyard to shipyard).&lt;br /&gt;
&lt;br /&gt;
RMG first creates obligatory roads. Then it connects resulting road networks with each other and with remaining towns and shipyards with the default algorithm (one that connects towns in the original game) using some of the connections with &amp;quot;Random&amp;quot; road setting.&lt;br /&gt;
&lt;br /&gt;
In case there are several parallel connections between two zones, they are considered one connection with the &amp;quot;maximum&amp;quot; road option (&amp;quot;Yes&amp;quot; &amp;amp;gt; &amp;quot;Random&amp;quot; &amp;amp;gt; &amp;quot;No&amp;quot;) from all gathered connections.&lt;br /&gt;
&lt;br /&gt;
For connections that take the form of a one-way monolith, a road will go to their enters.&lt;br /&gt;
&lt;br /&gt;
By default, all the roads passing through a single zone are connected: all road tails, towns and shipyards can be accessed without leaving the road and without leaving the zone. If the option [[#allow_non_coherent_roads|allow non-coherent roads]] in zone settings is turned on this rule can be not fulfilled. In this case obligatory roads connect the closest towns or shipyards of the zones, and all other towns and shipyards are connected to the road network with the default algorithm.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;advanced_zone_placement&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Zone Placement ==&lt;br /&gt;
&lt;br /&gt;
Controlling zones placement is one of the most difficult tasks when creating a template. By nature, zones are randomly laid out, based on template structure, and template format does not offer direct control over zone placement. However, several tricks can be used to control zone placement better, improving the playability of the map:&lt;br /&gt;
&lt;br /&gt;
* For any zone, you can specify whether it should be generated on the ground or underground. Unlike other placement options, this one always works. It is thus an efficient way to separate zones.&lt;br /&gt;
* You can ask the generator to place zones side by side by using standard or fictive connections together with placement hints &amp;quot;Default&amp;quot;, &amp;quot;Ground&amp;quot; or &amp;quot;Underground Gate&amp;quot;. Note that zone placement will be much more strongly affected by placement hints &amp;quot;Ground&amp;quot; and &amp;quot;Underground gate&amp;quot; than &amp;quot;Default&amp;quot;. Connections with placement hint &amp;quot;Ground&amp;quot; or &amp;quot;Underground gate&amp;quot; put strong placement constraints on the RMG, and should be used carefully: it should be always possible for RMG to fulfill these hints. Otherwise RMG may sacrifice other important layout constraints in order to meet those, which could lead to unreliable map generation.&lt;br /&gt;
* Zone numbering is important. RMG creates zones one after another, in ascending zone number order. Each zone is placed as best as possible considering its relationship with zones already in place. After laying down all zones, RMG randomly mixes them, but only if it helps to implement connection settings better. Thus, in a number of cases, it is possible to mentally picture zone layout process, and choose zone numbers so that each zone ends up in a well-known position, clearly identified by the connections.&lt;br /&gt;
* Zone locations are affected by [[#zone_sparseness|zone sparseness]] setting. If RMG finds several layouts that equally fulfill connection settings, the final layout is chosen either randomly (if there are few enough zones), or in such way that the largest zone dimension (height or width) is minimal. &amp;quot;Zone sparseness&amp;quot; setting affects the point from which zones will begin to be packed more tightly. If zone sparseness is small enough, the first two zones will always be placed diagonally from each other (since such configuration best fits into a square).&lt;br /&gt;
* Zones can have the [[#zone_repulsion|zone repulsion]] option. The RMG will try to place them as far as possible from each other. This option has the lowest priority: when laying a the zone, the generator first selects, among all possible locations, the ones that implement connection settings best. Then, it selects, among these locations, the ones where the zone best fits into the reference square controlled by [[#zone_sparseness|zone sparseness]]. Then only comes zone repulsion: the final location is the one that, among the remaining locations, has the largest sum of (travel) distances to other zones that also have zone repulsion turned on.&lt;br /&gt;
&lt;br /&gt;
Let us illustrate some of these mechanisms by an example. Let us assume that we want to create a map without underground, where a central zone is surrounded by peripheral zones laid out in a predetermined order.&lt;br /&gt;
&lt;br /&gt;
A first obvious way to achieve this is to create fictive connections between the central zone and peripheral zones, and between adjacent peripheral zones. However, this will not work as expected unless proper zone numbering is set. For example, if the central zone has the largest number, then peripheral zones will be laid out first, and map configuration will unlikely be exactly a central zone surrounded by a ring of peripheral zones. With a small &amp;quot;zone sparseness&amp;quot; settings, zones will be packed tightly together without large gaps, so the central zone will not fit in the middle: it will be put on the side. During zone shuffling process, RMG may manage to fix the layout - and is actually likely to succeed for simple configurations - but in our case there are too many constraints to fulfill them with the simple shuffling.&lt;br /&gt;
&lt;br /&gt;
So the right approach is to give central zone the smallest number. But the numbering of other zone matters, too. Lets us assume that the next two zones (by numbers) are peripheral zones that are not adjacent in the connection circle. After laying out the first two zones (the center and one peripheral zone), the third one can be placed anywhere around the center, including near the second zone. In fact, with a small zone sparseness setting, third zone will always be next to the second zone. In such case, it becomes impossible for zone 2 and 3 to have two neighbors each, so RMG will have to tear off some zones from the center, which will disrupt zones layout.&lt;br /&gt;
&lt;br /&gt;
In order to avoid that, peripheral zones must be numbered so that adjacent zones have consecutive numbers. This way, RMG will always place peripheral zones correctly in its first attempt. Every peripheral zone will have a common boundary with the previous one, as well as free boundary available to welcome the next zone.&lt;br /&gt;
&lt;br /&gt;
There is one more difficulty with such circular zone layout: to ensure that all zones are placed in a circle around the center and there are no gaps between them, you need to choose appropriate zone dimensions. In practice, due to the random factor, it is almost impossible to avoid a gap between zones. Thus, with the numbering approach described above, one of the fictive connections will not be implemented properly. To avoid this, you must first select a pair of adjacent peripheral zones and remove their fictive connection (or put the recommended location to &amp;quot;Random&amp;quot;, if the connection is not fictive). It will result in a gap between these two zones, and both will have an increased size, because they will spread over some of the cells of this gap. From this point, zone sizes can be adjusted in order to make the gap as small as possible, in such way that most cells from the gap are distributed to peripheral zones and not the center, without affecting the appearance of the map. But enough gap should be kept to eliminate the chance that peripheral zones will not fit around the central zone.&lt;br /&gt;
&lt;br /&gt;
This method works if there are at least 6 peripheral zones. If there are less, you have to make the central zone small enough, otherwise is will take the most of the cells of the gap between the peripheral zones.&lt;br /&gt;
&lt;br /&gt;
If you want to solve a similar problem for 4 peripheral zones around a central zone, you can use the option &amp;quot;Zone Repulsion&amp;quot;. Zone numbering should then be as follows: the first zone is the central one, the second one is any of the peripheral zones, and the third one is on the opposite side of the second one. All zones except the center must use the option &amp;quot;Zone Repulsion&amp;quot;. &amp;quot;Zone Sparseness&amp;quot; of the template must be large enough. Links between peripheral zones must either be removed or set to &amp;quot;Random&amp;quot; placement. Each peripheral zone must be connected to the center by a normal or fictive connection.&lt;br /&gt;
&lt;br /&gt;
With such zone numbering, RMG will first lay down the central zone and the first peripheral zone. Then, the second peripheral zone will be placed on the opposite side (due to zone repulsion option). The third peripheral zone will be put in between the first and second, and the fourth in the remaining spot.&lt;br /&gt;
&lt;br /&gt;
If you choose the appropriate zone dimensions and if you use a small enough [[#zone_sparseness|Zone Sparseness]], you can force peripheral zones to be located in the corners: the first peripheral zone will be placed diagonally from the center due to the small Zone Sparseness, and the second peripheral zone will be put in the adjacent corner, due to both Zone Sparseness and Zone Repulsion settings.&lt;br /&gt;
&lt;br /&gt;
== About Objects and Guards ==&lt;br /&gt;
&lt;br /&gt;
To effectively control how objects appear on a map, one must understand the general principles of object generation. They are described in this section.&lt;br /&gt;
&lt;br /&gt;
=== Object Options ===&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
Each object has the following set of parameters:&lt;br /&gt;
&lt;br /&gt;
* Value: it defines both the protection of the object and the treasure range required for a zone to be able to host the object. In essence, it usually represents how valuable the object is to the player.&lt;br /&gt;
* Frequency: determines the probability of an object to be selected over other objects of similar value.&lt;br /&gt;
* Maximum number on the map.&lt;br /&gt;
* Maximum number in the zone.&lt;br /&gt;
* Allowed terrain types: determines what type of terrain the object can appear on.&lt;br /&gt;
&lt;br /&gt;
Object settings can be defined either at template level (whole map) or at zone level (zone only). Rules defined at zone level prevail over rules defined at template level.&lt;br /&gt;
&lt;br /&gt;
Value and frequency can be customized for most objects. Maximum number per zone/map can be customized, but some objects have hard-coded count limitations that cannot be exceeded. Allowed terrains cannot be customized. Object-specific restrictions are listed below. Some objects are disabled by default: they will never appear on the map unless you explicitly enable them.&lt;br /&gt;
&lt;br /&gt;
The default object settings are listed below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;object_default_settings&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Object Types ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ordinary objects&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* [[Altar of Sacrifice]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Arena]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Black Market]]&lt;br /&gt;
** Value: 8000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Buoy]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Campfire]]&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 500.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Swan Pond]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, swamp.&lt;br /&gt;
* [[Cover of Darkness]] (disabled by default)&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Corpse]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: sand, rough.&lt;br /&gt;
* [[Derrick]]&lt;br /&gt;
** Value: 750.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum on the map: unlimited*.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: wasteland.&lt;br /&gt;
* [[Marletto Tower]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Eye of the Magi]] (disabled by default)&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Faerie Ring]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, swamp, highlands.&lt;br /&gt;
* [[Flotsam]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 1000.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Fountain of Fortune (adventure map)|Fountain of Fortune]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, swamp.&lt;br /&gt;
* [[Fountain of Youth]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, swamp, water.&lt;br /&gt;
* [[Garden of Revelation]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: dirt, grass, swamp, subterranean, highlands.&lt;br /&gt;
* [[Grave]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: wasteland.&lt;br /&gt;
* [[Hut of the Magi]] (disabled by default)&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Idol of Fortune]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Lean To]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: snow.&lt;br /&gt;
* [[Library of Enlightenment]]&lt;br /&gt;
** Value: 12000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[School of Magic]]&lt;br /&gt;
** Value: 1000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any (including water).&lt;br /&gt;
* [[Magic Spring]] (this object has several trigger cells, so it is never guarded even if value is increased, and it can not be part of an object group)&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: rough.&lt;br /&gt;
* [[Magic Well]]&lt;br /&gt;
** Value: 250.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Mercenary Camp]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Mermaids]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Mystical Garden]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: dirt, grass, swamp.&lt;br /&gt;
* [[Oasis]] (this object has several trigger cells, so it is never guarded even if value is increased, and it can not be part of an object group)&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: sand.&lt;br /&gt;
* [[Obelisk]]&lt;br /&gt;
** Value: 350.&lt;br /&gt;
** Frequency: 200.&lt;br /&gt;
** Maximum on the map: 48 (cannot be increased).&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Star Axis]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Prospector]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum on the map: unlimited*.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: wasteland.&lt;br /&gt;
* [[Pyramid]]&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: sand.&lt;br /&gt;
* [[Rally Flag]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* Random treasure artifact&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 150.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* Random minor artifact&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 150.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* Random major artifact&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 150.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* Random relic artifact&lt;br /&gt;
** Value: 20000.&lt;br /&gt;
** Frequency: 150.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* Random resource (at the start of the game, this object is randomly replaced by any specific resource, among wood, ore, mercury, crystal, sulfur, gem and gold. Objects for specific resources also exist, with other generation parameters)&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 2000.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Refugee Camp]]&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Sanctuary]] (disabled by default)&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Scholar (Adventure Map)|Scholar]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Sea Chest]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 500.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Shipwreck Survivor]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Shrine of Magic Incantation]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any (including water).&lt;br /&gt;
* [[Shrine of Magic Gesture]]&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any (including water).&lt;br /&gt;
* [[Shrine of Magic Thought]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any (including water).&lt;br /&gt;
* [[Shrine of Magic Mystery]]&lt;br /&gt;
** Value: 7000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: 32.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Sirens]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Stables]]&lt;br /&gt;
** Value: 200.&lt;br /&gt;
** Frequency: 40.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, rough.&lt;br /&gt;
* [[Tavern]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any (including water).&lt;br /&gt;
* [[Temple]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Den of Thieves]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Trading Post]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: dirt, grass, rough, highlands.&lt;br /&gt;
* [[Trailblazer]]&lt;br /&gt;
** Value: 200.&lt;br /&gt;
** Frequency: 40.&lt;br /&gt;
** Maximum on the map: unlimited*.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: wasteland.&lt;br /&gt;
* [[Learning Stone]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 200.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Treasure Chest]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 1000.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Tree of Knowledge]]&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: dirt, grass, snow.&lt;br /&gt;
* [[University]]&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Wagon]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: rough.&lt;br /&gt;
* [[School of War]]&lt;br /&gt;
** Value: 1000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Warlock&#039;s Lab]]&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited*.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: wasteland, snow.&lt;br /&gt;
* [[Warrior&#039;s Tomb]]&lt;br /&gt;
** Value: 6000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Water Wheel]]&lt;br /&gt;
** Value: 750.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: dirt, grass, snow, swamp.&lt;br /&gt;
* [[Watering Hole]] (this object has several trigger cells, so it is never guarded even if value is increased, and it can not be part of an object group)&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: rough.&lt;br /&gt;
* [[Windmill]]&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 90.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Witch Hut]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 80.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: 3 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Freelancer&#039;s Guild]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1 (cannot be increased).&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Temple of Loyalty]]&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Skeleton Transformer]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 15.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: subterranean.&lt;br /&gt;
* [[Colosseum of the Magi]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Watering Place]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: rough.&lt;br /&gt;
* [[Mineral Spring]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: highlands.&lt;br /&gt;
* [[Hermit&#039;s Shack]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 80.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: highlands.&lt;br /&gt;
* [[Gazebo]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: 32 (cannot be increased).&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: highlands.&lt;br /&gt;
* [[Junkman]]&lt;br /&gt;
** Value: 200.&lt;br /&gt;
** Frequency: 40.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: highlands.&lt;br /&gt;
* [[Ancient Lamp]] (disabled by default)&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 200.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Sea Barrel]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 400.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Jetsam]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 600.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Vial of Mana]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Seafaring Academy]]&lt;br /&gt;
** Value: 8000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: none (this object is temporarily not available: it will never be generated).&lt;br /&gt;
* [[Observatory]]&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Altar of Mana]] (this object has several trigger cells, so it is never guarded even if value is increased, and it can not be part of an object group)&lt;br /&gt;
** Value: 100.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Town Gate]]&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;pandoras_box&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &#039;&#039;&#039;[[Pandora&#039;s Box]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* Maximum on the map: 200 (common count for all kinds of content, can not be increased).&lt;br /&gt;
* Maximum per zone: unlimited.&lt;br /&gt;
* Terrain types: any except water.&lt;br /&gt;
&lt;br /&gt;
[[Pandora&#039;s Box]] with creatures. There is one kind of [[Pandora&#039;s Box]] object per creature type. The amount of creatures inside the box depends on the creature level and the creature AI Value. It is adjusted in such way that the stack of creatures has roughly the same total AI Value that depends on the creature level. [[Pandora&#039;s Box]] with creatures can only be generated in zones where [[#zone_faction|zone faction]] is the same as creatures&#039; faction. It is recommended to enable/disable entire levels of creatures, rather than individual creatures for this object.&lt;br /&gt;
&lt;br /&gt;
* Value cannot be changed, calculated as: (AI Value of the creature)*(Number of creatures)*(1 + n/N), where:&lt;br /&gt;
** N is the number of zones with at least one town or castle;&lt;br /&gt;
** n is the number of zones with the main town faction the same as dwelling&#039;s faction.&lt;br /&gt;
* Frequency: 3.&lt;br /&gt;
&lt;br /&gt;
[[Pandora&#039;s Box]] with experience.&lt;br /&gt;
&lt;br /&gt;
* 5000 experience&lt;br /&gt;
** Value: 6000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
* 10000 experience&lt;br /&gt;
** Value: 12000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
* 15000 experience&lt;br /&gt;
** Value: 18000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
* 20000 experience&lt;br /&gt;
** Value: 24000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
* You can also add [[Pandora&#039;s Box]] with custom experience amount, from 0 to 99999999, but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
[[Pandora&#039;s Box]] with gold.&lt;br /&gt;
&lt;br /&gt;
* 5000 gold&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 5.&lt;br /&gt;
* 10000 gold&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 5.&lt;br /&gt;
* 15000 gold&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 5.&lt;br /&gt;
* 20000 gold&lt;br /&gt;
** Value: 20000.&lt;br /&gt;
** Frequency: 5.&lt;br /&gt;
* You can also add [[Pandora&#039;s Box]] with custom amount of gold, from 0 to 99999, but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
[[Pandora&#039;s Box]] with spells.&lt;br /&gt;
&lt;br /&gt;
* All 1st level spells&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All 2nd level spells&lt;br /&gt;
** Value: 7500.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All 3rd level spells&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All 4th level spells&lt;br /&gt;
** Value: 12500.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All 5th level spells&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All Air spells&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All Water spells&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All Fire spells&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All Earth spells&lt;br /&gt;
** Value: 15000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* All spells&lt;br /&gt;
** Value: 30000.&lt;br /&gt;
** Frequency: 2.&lt;br /&gt;
* You can also add a [[Pandora&#039;s Box]] with a custom level range and a custom set of [[magic school]]s, but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
If all spells of some [[Pandora&#039;s Box]] are banned at template level, then that [[Pandora&#039;s Box]] is automatically banned too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;keymasters_tent_the_object&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &#039;&#039;&#039;[[Keymaster&#039;s Tent]]&#039;&#039;&#039; (disabled by default). When generating a [[Keymaster&#039;s Tent]] in a zone, a reward is created in another zone, behind a Border Guard that matches the color of the tent. The reward is a group of objects, with a value equal to 1.5 times the value of the [[Keymaster&#039;s Tent]] itself. Objects are generated according to the rules of the zone where the [[Keymaster&#039;s Tent]] is, without consideration for the terrain type, object rules, and treasure value ranges of the zone that hosts the objects. There can be only one tent of each color per map. There are no restrictions on the amount of tents per zone. Tents can be generated on any terrain except water. The frequency is 10 (all colors together). Default values of [[Keymaster&#039;s Tent]]s are:&lt;br /&gt;
&lt;br /&gt;
* 5000&lt;br /&gt;
* 7500&lt;br /&gt;
* 10000&lt;br /&gt;
* 15000&lt;br /&gt;
* 20000&lt;br /&gt;
* You can also use a custom value, but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
Using this object is not recommended.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Cartographer]]&#039;&#039;&#039; (disabled by default). The maximum amount per map is not limited. The maximum number per zone is 1 (cannot be increased).&lt;br /&gt;
&lt;br /&gt;
* Ground [[Cartographer]]&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Terrain types: any except subterranean and water.&lt;br /&gt;
* Underground [[Cartographer]]&lt;br /&gt;
** Value: 7500.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Terrain types: subterranean.&lt;br /&gt;
* Water [[Cartographer]]&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creature Banks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* [[Derelict Ship]]&lt;br /&gt;
** Value: 4000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Dragon Utopia]]&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Crypt]]&lt;br /&gt;
** Value: 1000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: dirt, sand, grass, snow, swamp.&lt;br /&gt;
* [[Shipwreck]]&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Cyclops Stockpile]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Dwarven Treasury]]&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Griffin Conservatory]]&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Imp Cache]]&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Medusa Stores]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except subterranean and water.&lt;br /&gt;
* [[Naga Bank]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Dragon Fly Hive]]&lt;br /&gt;
** Value: 9000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Beholders&#039; Sanctuary]]&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Temple of the Sea]]&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
* [[Pirate Cavern]] (disabled by default)&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: rough.&lt;br /&gt;
* [[Mansion]]&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Spit]] (disabled by default)&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: swamp.&lt;br /&gt;
* [[Red Tower]]&lt;br /&gt;
** Value: 4000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Black Tower]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Ivory Tower]] (disabled by default)&lt;br /&gt;
** Value: 7000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: sand, snow.&lt;br /&gt;
* [[Churchyard]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Experimental Shop]]&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
** Frequency: 80.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Wolf Raider Picket]]&lt;br /&gt;
** Value: 9500.&lt;br /&gt;
** Frequency: 70.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
* [[Ruins]]&lt;br /&gt;
** Value: 1000.&lt;br /&gt;
** Frequency: 100.&lt;br /&gt;
** Maximum on the map: unlimited.&lt;br /&gt;
** Maximum per zone: unlimited.&lt;br /&gt;
** Terrain types: highlands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;creature_dwellings&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &#039;&#039;&#039;Creature Dwellings&#039;&#039;&#039; (each dwelling is a separate object). The amount per map and per zone is not limited. Dwellings can be generated on any type of terrain (except water), but each zone can only host dwellings from a single faction, in accordance with its [[#zone_faction|zone faction]]. It is recommended to enable or disable entire levels of creatures, rather than individual dwellings.&lt;br /&gt;
&lt;br /&gt;
* Value cannot be changed, calculated as: (AI Value of the creature)*((Creature growth)*(1 + n/N) + n/2), where:&lt;br /&gt;
** N is the number of zones with at least one town or castle;&lt;br /&gt;
** n is the number of zones with the main town faction the same as dwelling&#039;s faction;&lt;br /&gt;
** total value is tripled for the [[Estate]] (Vampires&#039; dwelling) and the [[Hovel]] (Peasants&#039; dwelling).&lt;br /&gt;
* Frequency: 40.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Composite Creature Dwellings&#039;&#039;&#039; ([[Golem Factory]] and [[Elemental Conflux]]). The amount per map and per zone is not limited. Can be generated on any land except water. Can be generated only in zones that have the same [[#zone_faction|zone faction]] as (at least one of the) creatures.&lt;br /&gt;
&lt;br /&gt;
* Value: half-sum of the values of the dwelling creatures, each calculated same as [[#creature_dwellings|regular dwellings]]. It cannot be changed.&lt;br /&gt;
* Frequency: 20.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hill Fort&#039;&#039;&#039;. The maximal map count is not limited, the maximum count per zone is 1 and cannot be increased (there can be only one version of Hill Fort per zone).&lt;br /&gt;
&lt;br /&gt;
* [[Hill Fort|Old Hill Fort]] for 1-7 level creatures, with reduced cost for 1-4 level creatures (this object is disabled by default)&lt;br /&gt;
** Value: 7000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Terrain types: dirt, grass, snow.&lt;br /&gt;
* [[New Hill Fort]] for 1-5 level creatures, with double cost&lt;br /&gt;
** Value: 7000.&lt;br /&gt;
** Frequency: 20.&lt;br /&gt;
** Terrain types: any except water.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Observation towers&#039;&#039;&#039;. Value is 750. Frequency is 100. The amount on the map is not limited. Maximum per zone is 1 (cannot be increased).&lt;br /&gt;
&lt;br /&gt;
* [[Redwood Observatory]]&lt;br /&gt;
** Terrain types: any except subterranean and water.&lt;br /&gt;
* [[Pillar of Fire]]&lt;br /&gt;
** Terrain types: subterranean.&lt;br /&gt;
* [[Observation Tower]]&lt;br /&gt;
** Terrain types: water.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Prison]]&#039;&#039;&#039;. The amount per map is limited in such way that remaining free heroes count is at least 10*(number of players) + 48. The amount per zone is not limited. It can be generated on any terrain except water.&lt;br /&gt;
&lt;br /&gt;
* Hero of level 1 (0 experience)&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
* Hero of level 5 (5000 experience)&lt;br /&gt;
** Value: 5000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
* Hero of level 10 (15000 experience)&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
* Hero of level 20 (90000 experience)&lt;br /&gt;
** Value: 20000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
* Hero level 30 (500000 experience)&lt;br /&gt;
** Value: 30000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
* You can also add a [[Prison]] with a hero with any other amount of experience (0-99999999), but for this object there are no default settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Resource&#039;&#039;&#039;. The amount on map and per zone is not limited. It can be generated on any terrain except water.&lt;br /&gt;
&lt;br /&gt;
* Wood&lt;br /&gt;
** Value: 1400.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Mercury&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Ore&lt;br /&gt;
** Value: 1400.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Sulfur&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Crystal&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Gems&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
* Gold&lt;br /&gt;
** Value: 750.&lt;br /&gt;
** Frequency: 300.&lt;br /&gt;
&lt;br /&gt;
There is also a Random Resource object, with its own settings, which is replaced by a specific resource at the start of the game.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;quest_artifact_for_seers_hut&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &#039;&#039;&#039;[[Seer&#039;s Hut]] quest artifact&#039;&#039;&#039;. This object is a random artifact of level 1 (treasure artifact), which is not part of any compound artifact. This artifact is unique on the map. When this object is generated, an unguarded [[Seer&#039;s Hut]] is created in another zone on the map, looking for the artifact. Usually seer is placed in a neighbour zone or 2 zones away. This object is divided in several categories depending on the reward given by the [[Seer&#039;s Hut]].&lt;br /&gt;
&lt;br /&gt;
* Maximum on the map: unlimited.&lt;br /&gt;
* Maximum per zone: unlimited.&lt;br /&gt;
* Terrain types: any except water.&lt;br /&gt;
&lt;br /&gt;
[[Seer&#039;s Hut]] with creature reward (one object for each type of creature). The amount of creatures depends on the creature level and the creature AI Value. It is adjusted in such way that the stack of creatures has roughly the same total AI Value that depends on the creature level. [[Seer&#039;s Hut]]s with creature reward can only be generated in zones where [[#zone_faction|zone faction]] is the same as creature faction. It is recommended to enable/disable entire levels of creatures, rather than individual creatures for this object.&lt;br /&gt;
&lt;br /&gt;
* Value cannot be changed, calculated as: (2*(AI Value Creatures)*(Number of creatures)*(1 + n/N) - 4000) / 3, where:&lt;br /&gt;
** N is the number of zones with at least one town or castle;&lt;br /&gt;
** n is the number of zones with the main town faction the same as dwelling&#039;s faction.&lt;br /&gt;
* Frequency: 3.&lt;br /&gt;
&lt;br /&gt;
[[Seer&#039;s Hut]] with experience reward.&lt;br /&gt;
&lt;br /&gt;
* 5000 experience&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 10000 experience&lt;br /&gt;
** Value: 5333.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 15000 experience&lt;br /&gt;
** Value: 8666.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 20000 experience&lt;br /&gt;
** Value: 12000.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* You can also add an object with custom experience reward (from 0 to 99999999), but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
[[Seer&#039;s Hut]] with gold reward.&lt;br /&gt;
&lt;br /&gt;
* 5000 gold&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 10000 gold&lt;br /&gt;
** Value: 5333.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 15000 gold&lt;br /&gt;
** Value: 8666.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* 20000 gold&lt;br /&gt;
** Value: 12000.&lt;br /&gt;
** Frequency: 10.&lt;br /&gt;
* You can also add an object with custom gold reward (from 0 to 99999), but there are no default settings for such object.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Spell Scroll]]&#039;&#039;&#039;. The amount on the map / per zone is not limited. It can be generated on any terrain except water.&lt;br /&gt;
&lt;br /&gt;
* Level 1 spell&lt;br /&gt;
** Value: 500.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 6.&lt;br /&gt;
* Level 2 spell&lt;br /&gt;
** Value: 2000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 5.&lt;br /&gt;
* Level 3 spell&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 4.&lt;br /&gt;
* Level 4 spell (except [[Town Portal]] and [[Water Walk]])&lt;br /&gt;
** Value: 8000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 3.&lt;br /&gt;
* Level 5 spell (except for the [[Dimension Door]] and [[Fly]])&lt;br /&gt;
** Value: 10000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 2.&lt;br /&gt;
* [[Spell Scroll]] with [[Town Portal]], [[Water Walk]], [[Dimension Door]], or [[Fly]]&lt;br /&gt;
** Value: 20000.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
&lt;br /&gt;
If all spells of one of these categories are disabled, the [[spell scroll]] for this category is automatically disabled.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;War Machine Shops&#039;&#039;&#039;. The amount on the map is unlimited, the maximum per zone is 1 (there can be only one type of machine shop per zone). It can be generated on any terrain except water.&lt;br /&gt;
&lt;br /&gt;
* [[War Machine Factory]]&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
** Frequency: 50.&lt;br /&gt;
* [[Cannon Yard]]&lt;br /&gt;
** Value: 3000.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Warehouse]]s&#039;&#039;&#039;. The amount on the map is not limited. It can be generated on any terrain except water.&lt;br /&gt;
&lt;br /&gt;
* Wood&lt;br /&gt;
** Value: 2250.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Mercury&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Ore&lt;br /&gt;
** Value: 2250.&lt;br /&gt;
** Frequency: 30.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Sulfur&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Crystal&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Gems&lt;br /&gt;
** Value: 2500.&lt;br /&gt;
** Frequency: 25.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
* Gold&lt;br /&gt;
** Value: 6000.&lt;br /&gt;
** Frequency: 15.&lt;br /&gt;
** Maximum per zone: 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;mines&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &#039;&#039;&#039;[[Mine]]s&#039;&#039;&#039;. Mines are not part of the standard object settings system, and are configured separately. But each mine has a value that defines its protection, like for regular objects. Each mine can be surrounded by 1-3 resources of its own type. These resources are not guarded.&lt;br /&gt;
&lt;br /&gt;
* Sawmill&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
* Alchemist&#039;s Lab&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
* Ore Pit&lt;br /&gt;
** Value: 1500.&lt;br /&gt;
* Sulfur Dune&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
* Crystal Cavern&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
* Gem Pond&lt;br /&gt;
** Value: 3500.&lt;br /&gt;
* Gold Mine&lt;br /&gt;
** Value: 7000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;*&amp;quot;&amp;gt;* This is probably a bug. If you select unlimited in the settings of this object on the map, there will be no more than 32 of them.&lt;br /&gt;
&lt;br /&gt;
==== Creature Rewards ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creature count in [[Pandora&#039;s Box]] and [[Seer&#039;s Hut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The total AI Value of the awarded creature stack depends on creature level:&lt;br /&gt;
&lt;br /&gt;
* Level 1: 5000&lt;br /&gt;
* Level 2: 7000&lt;br /&gt;
* Level 3: 9000&lt;br /&gt;
* Level 4: 12000&lt;br /&gt;
* Level 5: 16000&lt;br /&gt;
* Level 6: 21000&lt;br /&gt;
* Level 7: 27000&lt;br /&gt;
&lt;br /&gt;
First, a preliminary creature count is calculated as (total AI Value) / (single creature AI Value). Result is rounded down, but is always at least 1.&lt;br /&gt;
&lt;br /&gt;
Then, creature count is rounded using the following rules:&lt;br /&gt;
&lt;br /&gt;
* 1-5: no extra rounding.&lt;br /&gt;
* 6-12: rounded up to the even number.&lt;br /&gt;
* 13-50: rounded to the nearest multiple of 5.&lt;br /&gt;
* More than 50: rounded to the nearest multiple of 10 (multiples of 5 are rounded to the larger nearest multiple of 10).&lt;br /&gt;
&lt;br /&gt;
If this count exceeds 150, the actual creature count will be reduced to 150, but the value of [[Pandora&#039;s Box]] will still be calculated based on the raw count.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;span id=&amp;quot;zone_faction&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Zone faction - conditions for the generation of dwellings and [[Pandora&#039;s Box]] and quest artifacts for the [[Seer&#039;s Hut]] with creatures&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Each zone has a town faction that determines:&lt;br /&gt;
&lt;br /&gt;
* Which [[#creature_dwellings|dwelling objects]] can be hosted.&lt;br /&gt;
* Which kind of creature can be found in [[#pandoras_box|Pandora&#039;s Box]].&lt;br /&gt;
* Which kind of creature reward can be obtained from [[#quest_artifact_for_seers_hut|quest artifacts]] generated in this zone (the reward is located in another zone).&lt;br /&gt;
&lt;br /&gt;
Zone faction is determined as follows:&lt;br /&gt;
&lt;br /&gt;
* If zone has towns/castles: faction is the same as the main town/castle (one that is located in zone center);&lt;br /&gt;
* If zone has no towns/castles, but some town types are allowed in zone settings: faction is chosen randomly among allowed town types;&lt;br /&gt;
* If zone has no towns/castles and there are no allowed town types:&lt;br /&gt;
** Zone faction has a 25% chance of being neutral;&lt;br /&gt;
** Zone faction has a 75% chance of being randomly chosen based on terrain:&lt;br /&gt;
*** [[Dirt]]: [[Castle]], [[Rampart]], [[Necropolis]].&lt;br /&gt;
*** [[Sand]]: [[Stronghold]], [[Cove]].&lt;br /&gt;
*** [[Snow]]: [[Tower]].&lt;br /&gt;
*** [[Grass]]: [[Castle]], [[Rampart]], [[Necropolis]].&lt;br /&gt;
*** [[Swamp]]: [[Fortress]], [[Necropolis]], [[Cove]].&lt;br /&gt;
*** [[Rough]]: [[Stronghold]].&lt;br /&gt;
*** [[Subterranean]]: [[Inferno]], [[Necropolis]], [[Dungeon]].&lt;br /&gt;
*** [[Lava]]: [[Inferno]].&lt;br /&gt;
*** [[Highlands]]: [[Conflux]].&lt;br /&gt;
* If [[#force_neutral_creatures|force neutral creatures]] is checked in zone settings, zone faction is always neutral, regardless the above criteria.&lt;br /&gt;
&lt;br /&gt;
Note that the value calculation of dwellings, [[Pandora&#039;s Box]] with creatures and [[Seer&#039;s Hut]] quest artifacts with creatures counts only zones with towns and the types of the main towns of the zones. Zone faction does not influence value, although it is usually the same as zone main town type.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;treasure_generation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Treasure Generation ===&lt;br /&gt;
&lt;br /&gt;
Zone treasures are generated as groups of objects. All objects of a group are adjacent, and share the same protection (if any). Each group falls into one of the three treasure categories that you can specify in zone settings. Each category is defined by a value range and a frequency. Value range control the value of the object group (defined as the sum of individual object values), and frequency controls the amount of object groups that will be generated (the amount of object groups is proportional to the frequency, but it also depends on zone size).&lt;br /&gt;
&lt;br /&gt;
Each group is generated as follows. A random number &#039;&#039;&#039;total_value&#039;&#039;&#039; is generated within the value range of the group&#039;s treasure category. Then, an object with a value between &#039;&#039;&#039;total_value / 4&#039;&#039;&#039; and &#039;&#039;&#039;total_value&#039;&#039;&#039; is randomly selected among valid objects for this zone. The probability for an object to be selected is proportional to its frequency.&lt;br /&gt;
&lt;br /&gt;
Then, as long as the value sum &#039;&#039;&#039;group_value&#039;&#039;&#039; of already generated objects meets one of the conditions &#039;&#039;&#039;total_value - group_value &amp;amp;gt;= 1500&#039;&#039;&#039; or &#039;&#039;&#039;group_value &amp;amp;lt; total_value / 2&#039;&#039;&#039;, another object with a value between &#039;&#039;&#039;0.25*(total_value - group_value)&#039;&#039;&#039; and &#039;&#039;&#039;1.25*(total_value - group_value)&#039;&#039;&#039; is randomly selected and added to the group. This process is repeated until none of the 2 conditions are met, or no valid object can be found within the requested value range. Object groups can be made of a single object.&lt;br /&gt;
&lt;br /&gt;
In HotA strength of treasure object guards that can block the road is configurable. The default is one third of zone maximum treasure value (possible bug - it looks like right now the default is rather ~42.25% instead of 33%. Also take into an account, that number of creatures will always be lower than final value, f.e. if max value in zone is 10000, then max road block is ~4225. However, 76 pixies * 55 = 4180 &amp;lt; 4225, so pixies will block the road).&lt;br /&gt;
&lt;br /&gt;
=== Objects and Connections Guards ===&lt;br /&gt;
&lt;br /&gt;
Objects and connections protection is calculated as follows.&lt;br /&gt;
&lt;br /&gt;
A protection index is calculated as &#039;&#039;&#039;protection_index = monsters_strength_zone + monsters_strength_map&#039;&#039;&#039;, where:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;monsters_strength_zone&#039;&#039;&#039; is &#039;&#039;&#039;0&#039;&#039;&#039; for connections, and depends on the &amp;quot;monsters strength&amp;quot; option of zone settings for objects:&lt;br /&gt;
** if weak, &#039;&#039;&#039;-1&#039;&#039;&#039;;&lt;br /&gt;
** if average, &#039;&#039;&#039;0&#039;&#039;&#039;;&lt;br /&gt;
** if strong, &#039;&#039;&#039;1&#039;&#039;&#039;;&lt;br /&gt;
* &#039;&#039;&#039;monsters_strength_map&#039;&#039;&#039; depends on the monsters strength set in game menu, before starting the game:&lt;br /&gt;
** if weak, &#039;&#039;&#039;2&#039;&#039;&#039;;&lt;br /&gt;
** if normal, &#039;&#039;&#039;3&#039;&#039;&#039;;&lt;br /&gt;
** if strong, &#039;&#039;&#039;4&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;protection_index&#039;&#039;&#039; varies from &#039;&#039;&#039;1&#039;&#039;&#039; to &#039;&#039;&#039;5&#039;&#039;&#039;, and fully determines monsters strength, regardless the terms it derives from.&lt;br /&gt;
&lt;br /&gt;
The monster stack is generated based on a total AI value, calculated as follows: &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = ( &#039;&#039;&#039;object_value&#039;&#039;&#039; - &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039;)* &#039;&#039;&#039;coefficient_1&#039;&#039;&#039; + ( &#039;&#039;&#039;object_value&#039;&#039;&#039; - &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039;)* &#039;&#039;&#039;coefficient_2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;object_value&#039;&#039;&#039; is the value of the protected object, group of objects, or connection.&lt;br /&gt;
&lt;br /&gt;
Minimal values and coefficients depends on the &#039;&#039;&#039;protection_index&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;minimal_value_1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1: 2500&lt;br /&gt;
* 2: 1500&lt;br /&gt;
* 3: 1000&lt;br /&gt;
* 4: 500&lt;br /&gt;
* 5: 0&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;coefficient_1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1: 0.5&lt;br /&gt;
* 2: 0.75&lt;br /&gt;
* 3: 1&lt;br /&gt;
* 4: 1.5&lt;br /&gt;
* 5: 1.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;minimal_value_2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1: 7500&lt;br /&gt;
* 2: 7500&lt;br /&gt;
* 3: 7500&lt;br /&gt;
* 4: 5000&lt;br /&gt;
* 5: 5000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;coefficient_2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 1: 0.5&lt;br /&gt;
* 2: 0.75&lt;br /&gt;
* 3: 1&lt;br /&gt;
* 4: 1&lt;br /&gt;
* 5: 1.5&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;object_value&#039;&#039;&#039; - &#039;&#039;&#039;minimal_value&#039;&#039;&#039; is nulled if negative.&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; is less than 2000, then no guard is generated. Otherwise, a random type of monster is selected, and an average monsters count is calculated as &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; / &#039;&#039;&#039;monster_AI_value&#039;&#039;&#039;. If the average number of monsters is less than (( &#039;&#039;&#039;minimal_random_monster_count&#039;&#039;&#039; + &#039;&#039;&#039;maximal_random_monster_count&#039;&#039;&#039;) / 2 rounded down) or greater than or equal to 100, then the monster type is invalid and another one is chosen. The minimum and maximum random monsters counts are monster-specific. They can be retrieved, for example, in map editor, by right clicking a monster in the monster selection panel.&lt;br /&gt;
&lt;br /&gt;
After the type of monster is selected, the actual monsters count is set as follows:&lt;br /&gt;
&lt;br /&gt;
* an &#039;&#039;&#039;Average_count&#039;&#039;&#039; is calculated as &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; / &#039;&#039;&#039;monster_AI_value&#039;&#039;&#039;, rounded to the nearest whole number (rounded up if equally close to upper and lower whole numbers).&lt;br /&gt;
* If &#039;&#039;&#039;Average_count&#039;&#039;&#039; &amp;amp;lt; 4, then the actual number of monsters is &#039;&#039;&#039;Average_count&#039;&#039;&#039;.&lt;br /&gt;
* Otherwise, the number of monsters is &#039;&#039;&#039;Average_count&#039;&#039;&#039; + &#039;&#039;&#039;random_number_1&#039;&#039;&#039; - &#039;&#039;&#039;random_number_2&#039;&#039;&#039;. Both random numbers are generated within the range from 0 to &#039;&#039;&#039;Average_count&#039;&#039;&#039; / 4 (rounded down). Thus, the actual monster count can be from 75% to 125% of the average, with a higher probability of being close to the average.&lt;br /&gt;
&lt;br /&gt;
Example 1.&lt;br /&gt;
&lt;br /&gt;
* Global monsters strength: Strong, Monsters strength in zone: Strong, Object: [[Serpent Fly Hive]] (value 9000).&lt;br /&gt;
* &#039;&#039;&#039;protection_index&#039;&#039;&#039; = 1 + 4 = 5.&lt;br /&gt;
* 9000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039; (0), 9000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039; (5000).&lt;br /&gt;
* &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = (9000 - 0)*1.5 + (9000 - 5000)*1.5 = 19500.&lt;br /&gt;
* 19500 &amp;amp;gt; 2000, so monsters are generated. For example, 26 [[Zealot]]s (single creature AI Value: 750).&lt;br /&gt;
&lt;br /&gt;
Example 2.&lt;br /&gt;
&lt;br /&gt;
* Global monsters strength: Weak, Monsters strength in zone: Weak, Object: [[Serpent Fly Hive]] (value 9000).&lt;br /&gt;
* &#039;&#039;&#039;protection_index&#039;&#039;&#039; = -1 + 2 = 1.&lt;br /&gt;
* 9000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039; (2500), 9000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039; (7500).&lt;br /&gt;
* &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = (9000 - 2500)*0.5 + (9000 - 7500)*0.5 = 4000.&lt;br /&gt;
* 4000 &amp;amp;gt; 2000, so monsters are generated. For example, 26 [[Harpies]] (single creature AI Value: 154).&lt;br /&gt;
&lt;br /&gt;
Example 3.&lt;br /&gt;
&lt;br /&gt;
* Global monsters strength: Normal, Monsters strength in zone: Average. Object: Gold mine (value 7000).&lt;br /&gt;
* &#039;&#039;&#039;protection_index&#039;&#039;&#039; = 0 + 3 = 3.&lt;br /&gt;
* 7000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039; (1000), 7000 &amp;amp;lt; &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039; (7500).&lt;br /&gt;
* &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = (7000 - 1000)*1 = 6000.&lt;br /&gt;
* 6000 &amp;amp;gt; 2000, so monsters are generated. For example, 24 [[Wight]]s (single creature AI Value: 252).&lt;br /&gt;
&lt;br /&gt;
Example 4.&lt;br /&gt;
&lt;br /&gt;
* Global monsters strength: Weak, Monsters strength in zone: Weak. Object: [[Prison]] with a level 5 hero (value 5000).&lt;br /&gt;
* &#039;&#039;&#039;protection_index&#039;&#039;&#039; = -1 + 2 = 1.&lt;br /&gt;
* 5000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039; (2500), 5000 &amp;amp;lt; &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039; (7500).&lt;br /&gt;
* &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = (5000 - 2500)*0.5 = 1250.&lt;br /&gt;
* 1250 &amp;amp;lt; 2000, so no protection is generated.&lt;br /&gt;
&lt;br /&gt;
Example 5&lt;br /&gt;
&lt;br /&gt;
* Global monsters strength: Strong. Connection with a value of 6000.&lt;br /&gt;
* &#039;&#039;&#039;protection_index&#039;&#039;&#039; = 4.&lt;br /&gt;
* 6000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_1&#039;&#039;&#039; (500), 6000 &amp;amp;gt; &#039;&#039;&#039;minimal_value_2&#039;&#039;&#039; (5000).&lt;br /&gt;
* &#039;&#039;&#039;total_AI_Value&#039;&#039;&#039; = (6000 - 500)*1.5 + (6000 - 5000)*1 = 9250.&lt;br /&gt;
* 9250 &amp;amp;gt; 2000, so monsters are generated. For example, 56 [[Stone Gargoyle]]s (single creature AI Value: 165).&lt;br /&gt;
&lt;br /&gt;
== Object Settings ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
The list of allowed objects can be customized, as well as object generation parameters. Object customization can be set at template level - settings will apply to the whole map - and/or at zone level. It takes the form of an ordered list of rules.&lt;br /&gt;
&lt;br /&gt;
RMG has an initial, default list of available objects, along with default parameters for objects. You can add custom rules to amend this list or/and these parameters. There are two types of rules you can add:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Disable&amp;quot; rules: remove an object (or a group of objects) from the list;&lt;br /&gt;
* &amp;quot;Enable / Edit&amp;quot; rules: add an object to the list and/or change the parameters for this object. Rules are applied in the order they are listed, each rule taking precedence over the previous ones. In some cases, rules order matters. For example, if you want to disable all objects except a few, you need to first add a &amp;quot;disable everything&amp;quot; rule, and then add rules to re-allow specific objects. Whereas if the &amp;quot;disable everything&amp;quot; rule is at the end of the list, all objects will be disabled regardless what the previous rules are.&lt;br /&gt;
&lt;br /&gt;
Rules defined at template level apply before rules defined at zone level. It means that zone-specific rules always override general rules.&lt;br /&gt;
&lt;br /&gt;
Rules of type &amp;quot;Disable&amp;quot; can target a single object, but also groups of objects of the same kind (for example, all [[Pandora&#039;s Box]], all Creature Banks, etc). You can also disable all objects at once.&lt;br /&gt;
&lt;br /&gt;
However, only objects that follow the [[#treasure_generation|regular generation process]] can be disabled. Object rules cannot be used to disable:&lt;br /&gt;
&lt;br /&gt;
* Towns/castles;&lt;br /&gt;
* Mines and [[#mines|the few resources that come with]] - those will not be affected even if the resource type is disabled;&lt;br /&gt;
* Unprotected [[Keymaster&#039;s Tent]]s [[#border_guard_connection|dedicated to zone connections]] - but [[Keymaster&#039;s Tent]]s [[#keymasters_tent_the_object|dedicated to protect valuable objects]] can be disabled. These objects are managed using other zone and connection settings. In addition, via zone settings it is not possible to preclude [[#quest_artifact_for_seers_hut|Seer&#039;s Huts]] and groups of objects that may appear due to the presence of [[#keymasters_tent_the_object|Keymaster&#039;s Tent]] located in another zone (unless, of course, by disabling [[Seer&#039;s Hut]] quest artifacts or [[Keymaster&#039;s Tent]] for the entire template).&lt;br /&gt;
&lt;br /&gt;
Rules of type &amp;quot;Allow / Edit&amp;quot; require to set object parameters: value, frequency, maximum count on the map and per zone (maximum count on the map can only be set at template level, and not at zone level). If the object is already part of the allowed objects list, then its parameters will be overridden by the custom ones. Otherwise, the object will be added to the list with the custom parameters.&lt;br /&gt;
&lt;br /&gt;
Parameters can be left unchanged by setting them to &amp;quot;default&amp;quot;. A parameter set to &amp;quot;default&amp;quot; will not be changed when the rule is applied. If the new object is added, &amp;quot;defaulted&amp;quot; parameters will have the values from the template settings (the list of objects that is created by adjusting only template level rules to default list). If there is no such object in this list, &amp;quot;defaulted&amp;quot; parameters will have the default, hard-coded value (see [[#object_default_settings|here]]). Thus, by setting all parameters to &amp;quot;default&amp;quot;, you can simply allow the object to be generated in a standard way.&lt;br /&gt;
&lt;br /&gt;
Dwellings, [[Pandora&#039;s Box]] with creature reward, and [[Seer&#039;s Hut]] quest artifacts with creature reward can be disabled, enabled, or customized individually (for each creature type), but also by entire level. If so, parameters defined for an entire creature level will be individually applied to each object, for each creature. It is recommended to use this mechanism instead of customizing individual objects, because each zone can only host objects with creatures from [[#zone_faction|a single faction]].&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
&lt;br /&gt;
Adding an object to the list of allowed objects does not guarantee that it will actually appear on the map / in the zone. Here are some of the limitations that should be considered when managing objects:&lt;br /&gt;
&lt;br /&gt;
* Many objects can only be generated on specific terrain types (see [[#object_default_settings|this section]]). This cannot be changed. However, it is possible to select appropriate terrain types in zone settings, in order to guarantee that a specific object can be hosted in a specific zone.&lt;br /&gt;
* Many objects have restrictions on the maximal count on the map and per zone. These cannot be changed.&lt;br /&gt;
* As stated in [[#treasure_generation|this previous section]], objects are always selected within a range of values. If an object has a value that exceeds all three treasure ranges of a zone, then the object cannot be selected when filling the zone. And even if object value exactly matches the maximum of the treasure range, the chances for the object to be selected for this range are very small, unless both minimum and maximum values of the treasure range are the same. If an object has a value lower than one quarter of the lowest treasure maximum, then the object cannot be generated as &amp;quot;first choice&amp;quot;, but only as a complement for an object group. If the minimum value of all ranges is greater than 500, then objects of value 100 are almost never generated, because they cannot be selected as &amp;quot;first choice&amp;quot;, and can hardly be selected as a complement for an object group, due to the generation rules described [[#treasure_generation|before]].&lt;br /&gt;
* When setting the list of objects in a zone, one must ensure that for any value in any treasure range, there is at least one object that fits between 25% and 100% of this value, and is not limited in number. Otherwise, RMG may not be able to create any object for a given random value, and after several failed attempts, zone filling will stop, even if more objects could eventually have been generated with other random values. To avoid such situation, it is recommended to always enable a sufficient number of objects of different values. It is also recommended to avoid very wide treasure ranges (like 100-30000), because it increases the chances of randomly picking a value that is not suitable for any object. Instead, try to use several shorter ranges that match the values of allowed objects.&lt;br /&gt;
* It is recommended to ensure that in each zone, there is a sufficient number of one-cell objects - that is, with a single trigger cell and without obstacle cells (for example, Resources, Artifacts, [[Pandora&#039;s Box]], [[Serpent Fly Hive]] and fit into treasure ranges. Otherwise, due to the amount of obstacles in the zone, RMG cannot place large objects properly, and may interrupt object generation, leaving some areas empty.&lt;br /&gt;
* For external dwellings, for [[Pandora&#039;s Box]] with creatures, and for [[Seer&#039;s Hut]] quest artifacts with creatures, value cannot be customized. It is calculated based on the number of zones with towns/castles of different factions. But you can adjust the treasure ranges of zones so they include required values.&lt;br /&gt;
* When maximal number per zone is defined for [[Pandora&#039;s Box]] with creatures and for [[Seer&#039;s Hut]] quest artifacts with creatures, it could be doubled if only level of unit is selected. F.e. if only 1 level 2 pandora is allowed, two will be created instead - one with archers and one with marksman (upgraded level 2). Similarly, selecting f.e. max of 1 quest artifact for level 5 may create 3 boxes on neutral zone - troll, gold golem and fangarm.&lt;br /&gt;
* External dwellings, [[Pandora&#039;s Box]] with creatures and [[Seer&#039;s Hut]] quest artifacts with creatures can be generated only in zones where [[#zone_faction|zone faction]] is the same as creature faction. But it is possible to [[#force_neutral_creatures|force zone faction to be neutral]].&lt;br /&gt;
* Sometimes an object is rarely generated due to its low frequency. Increasing object frequency increases the probability of generation.&lt;br /&gt;
* Entrance to a building will not be generated directly above another building entrance, at least 1 square will be left. F.e. shrine will not be placed directly on top of another shrine. This doesn&#039;t count pickable objects or terrain. [pending for tests]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Mirror Template]]&lt;/div&gt;</summary>
		<author><name>Tapani</name></author>
	</entry>
</feed>