<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.heroesofhammerwatch.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hootless</id>
	<title>Heroes of Hammerwatch wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.heroesofhammerwatch.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hootless"/>
	<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/Special:Contributions/Hootless"/>
	<updated>2026-08-09T10:19:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Actors_(Enemies)&amp;diff=1895</id>
		<title>Custom Actors (Enemies)</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Actors_(Enemies)&amp;diff=1895"/>
		<updated>2019-04-25T15:41:51Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Created the page, still needs an explanation of how to do the unit files properly&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It's currently only possible to add custom actors easily by using the Enemy SVal Loader mod[https://steamcommunity.com/sharedfiles/filedetails/?id=1722742864], available on the Steam Workshop. It's still possible to have your custom enemies spawn by editing the EnemyPlacement script manually to include your new enemies but is strongly not recommended, as this makes it impossible to have multiple enemy mods at once. This guide will assume you are using the mod to maintain compatibility with other mods. If you haven't yet, make sure you [[Mod base|create the base for the mod first]].&lt;br /&gt;
&lt;br /&gt;
== Making Actors ==&lt;br /&gt;
''Under Construction - Use existing actor .unit and .png as a base until this is written.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making Actors Spawn ==&lt;br /&gt;
In this example, we'll make ticks from the first act appear in the Battlements. Functionally the same principles can be used to spawn your own enemy wherever you like, I just wanted to show that you can move enemies around (a little bit at least, for now you can't actually stop them from spawning in their original areas completely).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your mod folder, create a folder called &amp;lt;code&amp;gt;actors&amp;lt;/code&amp;gt;. In there, you have to create a new sval file. You can for example call this &amp;lt;code&amp;gt;extra_act6_enemies.sval&amp;lt;/code&amp;gt;, or something else fitting. '''Keep in mind''': the assets between base and mods are shared! This means you should use a unique filename here that no other mod is going to use. (You could also put it in a separate (or different) folder if you want to be extra cautious.)&lt;br /&gt;
&lt;br /&gt;
Sval files is the main serializable data structure used throughout the engine, and sval files describe a single SValue object. Sval files however have a special property; you can specify a &amp;lt;code&amp;gt;loader&amp;lt;/code&amp;gt; tag to tell the engine which script function to load the sval with. These are called [[SValue Loaders]]. Using this loader, we can make the file load actor spawn definitions. For example, we can make an sval file containing this to add ticks to the battlements:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;loader&amp;gt;AddEnemyFile&amp;lt;/loader&amp;gt;&lt;br /&gt;
 &amp;lt;dict&amp;gt;&lt;br /&gt;
 	&amp;lt;dict name=&amp;quot;late_game_tick&amp;quot;&amp;gt;&lt;br /&gt;
 		&amp;lt;string name=&amp;quot;loc&amp;quot;&amp;gt;actors/tick_1.unit&amp;lt;/string&amp;gt;&lt;br /&gt;
 		&amp;lt;string name=&amp;quot;type&amp;quot;&amp;gt;act6_common&amp;lt;/string&amp;gt;&lt;br /&gt;
 		&amp;lt;string name=&amp;quot;class&amp;quot;&amp;gt;regular&amp;lt;/string&amp;gt;&lt;br /&gt;
 		&amp;lt;int name=&amp;quot;min-ng&amp;quot;&amp;gt;0&amp;lt;/int&amp;gt;&lt;br /&gt;
 		&amp;lt;int name=&amp;quot;max-ng&amp;quot;&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
 		&amp;lt;int name=&amp;quot;min-lev&amp;quot;&amp;gt;2&amp;lt;/int&amp;gt;&lt;br /&gt;
 	&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here's a breakdown of the information included here:&lt;br /&gt;
* &amp;lt;code&amp;gt;loc&amp;lt;/code&amp;gt;: This is the location of the unit file to be used. If you have your file in a folder called &amp;quot;my_super_cool_mod&amp;quot; for example, you would use &amp;lt;code&amp;gt;my_super_cool_mod/tick_1.unit&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
* &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;: This determines where the enemy can spawn. A list of all applicable tags and what they mean is below.&lt;br /&gt;
* &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;: What kind of enemy it is. Applicable tags are &amp;lt;code&amp;gt;regular&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;elite&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;miniboss&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;spawner&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;min-ng&amp;lt;/code&amp;gt;: [OPTIONAL] The minimum level of NG+ at which the spawning rule applies. If you set this to 5, your enemy will only spawn on NG+5 and beyond. If you don't add this line, it will default to NG+0 and above.&lt;br /&gt;
* &amp;lt;code&amp;gt;max-ng&amp;lt;/code&amp;gt;: [OPTIONAL] The maximum level of NG+ at which the spawning rule applies. If you set this to 5, your enemy will only spawn on NG+5 and below. If you don't add this line it defaults to 0, which tells the generator to not apply a limit. Adding the line and setting it to 0 manually will achieve the same affect.&lt;br /&gt;
* &amp;lt;code&amp;gt;min-lev&amp;lt;/code&amp;gt;: [OPTIONAL] The minimum level of an area at which the spawning rule applies. In the example above with the value of 2, the tick will only spawn on Battlements 2, and won't spawn at all on Battlements 1. If you don't add this line it defaults to 0, which allows the enemy to spawn on any level of the area.&lt;br /&gt;
* &amp;lt;code&amp;gt;spawnerAlt&amp;lt;/code&amp;gt;: [OPTIONAL] This line isn't included above because it's not a spawner. If you are adding a spawner, you have to include this line (it's a string, so copy the &amp;lt;code&amp;gt;loc&amp;lt;/code&amp;gt; line and change &amp;lt;code&amp;gt;loc&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;spawnerAlt&amp;lt;/code&amp;gt;). This is specified in exactly the same way as the &amp;lt;code&amp;gt;loc&amp;lt;/code&amp;gt; unit file, and is used to give the location of the destroyed version of the spawner. The destroyed spawner should have its own .unit file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Type Tags ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;act1_common&amp;lt;/code&amp;gt;: Mines, Prisons 1 (Ticks)&lt;br /&gt;
* &amp;lt;code&amp;gt;act1_uncommon&amp;lt;/code&amp;gt;: Mines, Prison 1+2 (Bats)&lt;br /&gt;
* &amp;lt;code&amp;gt;act1_rare&amp;lt;/code&amp;gt;: Mines, Prison 3 (Maggots)&lt;br /&gt;
* &amp;lt;code&amp;gt;act2_common&amp;lt;/code&amp;gt;: Prison, Armory 1 (Melee Skeletons)&lt;br /&gt;
* &amp;lt;code&amp;gt;act2_uncommon&amp;lt;/code&amp;gt;: Prison, Armory 1+2 (Ranged Skeletons)&lt;br /&gt;
* &amp;lt;code&amp;gt;act4_common&amp;lt;/code&amp;gt;: Archives (Eyes)&lt;br /&gt;
* &amp;lt;code&amp;gt;act4_uncommon&amp;lt;/code&amp;gt;: Archives (Wisps)&lt;br /&gt;
* &amp;lt;code&amp;gt;act4_rare&amp;lt;/code&amp;gt;: Archives (Ghosts)&lt;br /&gt;
* &amp;lt;code&amp;gt;act5_common&amp;lt;/code&amp;gt;: Chambers (Stronger Melee Skeletons)&lt;br /&gt;
* &amp;lt;code&amp;gt;act5_uncommon&amp;lt;/code&amp;gt;: Chambers (Stronger Ranged Skeletons)&lt;br /&gt;
* &amp;lt;code&amp;gt;act5_rare&amp;lt;/code&amp;gt;: Chambers (Liches, Battlemages)&lt;br /&gt;
* &amp;lt;code&amp;gt;act6_common&amp;lt;/code&amp;gt;: Battlements (Ice Troll Warriors)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act1_common&amp;lt;/code&amp;gt;: Desert (Scorpions)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act1_uncommon&amp;lt;/code&amp;gt;: Desert (Snakes)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act2_common&amp;lt;/code&amp;gt;: Lower Pyramid (Melee Mummies)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act2_uncommon&amp;lt;/code&amp;gt;: Lower Pyramid (Ranged Mummies)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act3_common&amp;lt;/code&amp;gt;: Upper Pyramid (Stronger Melee Mummies)&lt;br /&gt;
* &amp;lt;code&amp;gt;pop_act3_uncommon&amp;lt;/code&amp;gt;: Upper Pyramid (Stronger Ranged Mummies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no Act 3 tags currently because Act 3 only reuses Act 2 enemies (the ghosts from statues aren't handled by the same generator). This may be modified in a later version to make Act 3 unique enemies, though the goal is currently to have spawning from the framework be as close to vanilla as possible by default.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That's it! That's really all it takes to add custom enemies (barring of course the effort it takes to make the unit file and the sprite, but still)! If you've done it all right, you should be able to enable the mod in-game and see your new enemy spawning wherever you chose!  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Template:BaseNav}}&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Mod_support&amp;diff=1894</id>
		<title>Mod support</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Mod_support&amp;diff=1894"/>
		<updated>2019-04-25T14:44:08Z</updated>

		<summary type="html">&lt;p&gt;Hootless: /* How to add: */ Linked the Custom Items page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the modding page! This page is dedicated to offering a list of important information in a ladder to get around modding Heroes of Hammerwatch!&lt;br /&gt;
&lt;br /&gt;
=Modding resouces=&lt;br /&gt;
==Starting a mod==&lt;br /&gt;
* [[mod_base|How to start]]&lt;br /&gt;
* [[Info.xml|info.xml specification]]&lt;br /&gt;
* [[Unpack resources]]&lt;br /&gt;
&lt;br /&gt;
==Editor==&lt;br /&gt;
* [[Editor guide]]&lt;br /&gt;
&lt;br /&gt;
===How to use:===&lt;br /&gt;
*Assets&lt;br /&gt;
*Tilemaps&lt;br /&gt;
*Environment lighting&lt;br /&gt;
====.unit,.effect &amp;amp; .inc====&lt;br /&gt;
*Doodads&lt;br /&gt;
*Actors&lt;br /&gt;
*Items&lt;br /&gt;
*Link child unit to inc. (Like the act walls!)&lt;br /&gt;
====Worldscripts====&lt;br /&gt;
*Linking worldscripts&lt;br /&gt;
===How to put those into:===&lt;br /&gt;
*Levels&lt;br /&gt;
*Prefabs&lt;br /&gt;
====How to put Prefabs into:====&lt;br /&gt;
*Levels! lol&lt;br /&gt;
&lt;br /&gt;
==Custom assets page==&lt;br /&gt;
===How to add:===&lt;br /&gt;
*Tilemaps&lt;br /&gt;
*Doodads&lt;br /&gt;
*Actors&lt;br /&gt;
*[[Custom_items|Items]]&lt;br /&gt;
*Worldscripts&lt;br /&gt;
*[[Custom_Materials_(Dyes)|Materials]]&lt;br /&gt;
&lt;br /&gt;
==Scripting/GUI page?==&lt;br /&gt;
*GUI modification and creation&lt;br /&gt;
===Scripting modification and creation===&lt;br /&gt;
*GUI scripts&lt;br /&gt;
*Worldscript&lt;br /&gt;
*Gamemode scripts&lt;br /&gt;
&lt;br /&gt;
==Upload to workshop==&lt;br /&gt;
[[Uploading_to_the_workshop|How to upload to the workshop]] &lt;br /&gt;
&lt;br /&gt;
=List of common resources=&lt;br /&gt;
*[[Custom_items|Custom Items]]&lt;br /&gt;
*[[Script_Hooks|Script Hooks]]&lt;br /&gt;
*[[List_of_modifiers|List of modifiers]]&lt;br /&gt;
*[[SValue_Loaders|SValue loaders]]&lt;br /&gt;
&lt;br /&gt;
{{Template:BaseNav}}&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Blueprints&amp;diff=1893</id>
		<title>Blueprints</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Blueprints&amp;diff=1893"/>
		<updated>2019-04-25T14:37:04Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Redirected page to Magic Anvil&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Magic_Anvil]]&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Materials_(Dyes)&amp;diff=1855</id>
		<title>Custom Materials (Dyes)</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Materials_(Dyes)&amp;diff=1855"/>
		<updated>2019-04-17T19:14:20Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Added wiki navigator&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Materials (or dyes) alter the color of various parts of the players sprite. They can be added to the game fairly easily, requiring adding only a simple file. If you haven't yet, make sure you [[Mod base|create the base for the mod first]].&lt;br /&gt;
&lt;br /&gt;
== Making Materials ==&lt;br /&gt;
&lt;br /&gt;
In this example, we'll add a pink skin dye.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your mod folder, create a folder called &amp;lt;code&amp;gt;tweak&amp;lt;/code&amp;gt;. In there, you have to create a new sval file. You can for example call this &amp;lt;code&amp;gt;extra_dyes.sval&amp;lt;/code&amp;gt;, or something else. '''Keep in mind''': the assets between base and mods are shared! This means you should use a unique filename here that no other mod is going to use. (You could also put it in a separate (or different) folder if you want to be extra cautious.)&lt;br /&gt;
&lt;br /&gt;
Sval files is the main serializable data structure used throughout the engine, and sval files describe a single SValue object. Sval files however have a special property; you can specify a &amp;lt;code&amp;gt;loader&amp;lt;/code&amp;gt; tag to tell the engine which script function to load the sval with. These are called [[SValue Loaders]]. Using this loader, we can make the file load material definitions. For example, we can make an sval file containing this to add a new pink skin dye.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;loader&amp;gt;Materials::LoadDyes&amp;lt;/loader&amp;gt;&lt;br /&gt;
 &amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;array name=&amp;quot;skin&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dict&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;id&amp;quot;&amp;gt;pink&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;name&amp;quot;&amp;gt;Pink&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;array name=&amp;quot;shades&amp;quot;&amp;gt;&amp;lt;string&amp;gt;#350010&amp;lt;/string&amp;gt;&amp;lt;string&amp;gt;#e646c3&amp;lt;/string&amp;gt;&amp;lt;string&amp;gt;#ffa2fa&amp;lt;/string&amp;gt;&amp;lt;/array&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;quality&amp;quot;&amp;gt;rare&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;bool name=&amp;quot;default&amp;quot;&amp;gt;true&amp;lt;/bool&amp;gt;&lt;br /&gt;
       &amp;lt;/dict&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
 &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here's a breakdown of the information included here:&lt;br /&gt;
* &amp;lt;code&amp;gt;array name=&amp;quot;skin&amp;quot;&amp;lt;/code&amp;gt;: This is what the material applies to. Other options besides &amp;lt;code&amp;gt;skin&amp;lt;/code&amp;gt; are &amp;lt;code&amp;gt;hair&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cloth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;metal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;leather&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;wood&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;id&amp;quot;&amp;lt;/code&amp;gt;: This is the ID used to refer to the skin.&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;name&amp;quot;&amp;lt;/code&amp;gt;: The name displayed in-game.&lt;br /&gt;
* &amp;lt;code&amp;gt;array name=&amp;quot;shades&amp;quot;&amp;lt;/code&amp;gt;: The three values here correspond to the hex values for the three colors used in the material. Each can be anywhere from &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;quality&amp;quot;&amp;lt;/code&amp;gt;: The quality of the material, can be &amp;lt;code&amp;gt;common&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uncommon&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;rare&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;bool name=&amp;quot;default&amp;quot;&amp;lt;/code&amp;gt;: Determines whether you start with the material or have to find it like the other materials. Can be either &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you've done it all right, you should be able to enable the mod in-game and see your new material available in the tailor (if you have it set to default)! Unfortunately due to limits of the game engine it currently (as of writing this page) is not possible to have custom materials show up in the character creation screen. &lt;br /&gt;
&lt;br /&gt;
[[File:Pink_picture.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Template:BaseNav}}&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Template:BaseNav&amp;diff=1854</id>
		<title>Template:BaseNav</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Template:BaseNav&amp;diff=1854"/>
		<updated>2019-04-17T19:13:26Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Added a link to the Custom Materials tutorial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;rowcontainer&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;rowlarge&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;menu&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; text-align:center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|Wiki Navigator&lt;br /&gt;
|-&lt;br /&gt;
![[Classes]]&lt;br /&gt;
|[[Paladin]] • [[Priest]] • [[Ranger]] • [[Sorcerer]] • [[Thief]] • [[Warlock]] • [[Wizard]] • [[Gladiator]]&lt;br /&gt;
|- &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;|[[Town|The Outlook]]&lt;br /&gt;
|[[Apothecary]] • [[Bestiary]] • [[Blacksmith]] • [[Chapel]] • [[Fountain]] • [[Guild Hall]] • [[General Store]]&lt;br /&gt;
|- style=&amp;quot;border-top:hidden&amp;quot;&lt;br /&gt;
| |[[Magic Shop]] • [[Magic Anvil]] • [[Ore Trader]] • [[Town Hall]] • [[Tailor]] • [[Tavern]]&lt;br /&gt;
|-&lt;br /&gt;
![[File:PoP.png|22px|link=]][[City of Stone]]&lt;br /&gt;
| [[Pyramid of Prophecy]] • [[Arena]] • [[Tavern|The Refreshing Chisel]] • [[Retired Gladiator]] • [[Statues]]&lt;br /&gt;
|-&lt;br /&gt;
!|[[Mechanics]]&lt;br /&gt;
|[[Acts]] • [[Combat]] • [[Leveling Up]] • [[Money]] • [[New Game Plus]]&lt;br /&gt;
|-&lt;br /&gt;
![[Acts|Forsaken Tower]]&lt;br /&gt;
|[[Chests]] • [[Encounters]] • [[Items]] • [[puzzlesecrets|Puzzles &amp;amp; Secrets]]&lt;br /&gt;
|-&lt;br /&gt;
![[Enemies]]&lt;br /&gt;
|[[Enemies|Bosses]] • [[Aberrations]] • [[Beasts]] •  [[Constructs]] • [[Undead]] &lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;|[[mod_support|Mods &amp;amp; Misc]]&lt;br /&gt;
|[[Commands]] • [[custom_assets|Custom assets]] • [[custom_items|Custom Items]] • [[Custom_language_files|Custom language files]] • [[Custom_Materials_(Dyes)|Custom Materials (Dyes)]]&lt;br /&gt;
|-style=&amp;quot;border-top:hidden&amp;quot;&lt;br /&gt;
|[[editor_guide|Editor]] • [[patchNotes|Patch Notes]] • [[mod_base|Starting a mod]] • [[Uploading_to_the_workshop|Uploading to the workshop]] • [[Voice_lines|Voice Lines]] &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Mod_support&amp;diff=1853</id>
		<title>Mod support</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Mod_support&amp;diff=1853"/>
		<updated>2019-04-17T19:10:48Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Added a link to the Custom Materials tutorial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to the modding page! This page is dedicated to offering a list of important information in a ladder to get around modding Heroes of Hammerwatch!&lt;br /&gt;
&lt;br /&gt;
=Modding resouces=&lt;br /&gt;
==Starting a mod==&lt;br /&gt;
* [[mod_base|How to start]]&lt;br /&gt;
* [[Info.xml|info.xml specification]]&lt;br /&gt;
* [[Unpack resources]]&lt;br /&gt;
&lt;br /&gt;
==Editor==&lt;br /&gt;
* [[Editor guide]]&lt;br /&gt;
&lt;br /&gt;
===How to use:===&lt;br /&gt;
*Assets&lt;br /&gt;
*Tilemaps&lt;br /&gt;
*Environment lighting&lt;br /&gt;
====.unit,.effect &amp;amp; .inc====&lt;br /&gt;
*Doodads&lt;br /&gt;
*Actors&lt;br /&gt;
*Items&lt;br /&gt;
*Link child unit to inc. (Like the act walls!)&lt;br /&gt;
====Worldscripts====&lt;br /&gt;
*Linking worldscripts&lt;br /&gt;
===How to put those into:===&lt;br /&gt;
*Levels&lt;br /&gt;
*Prefabs&lt;br /&gt;
====How to put Prefabs into:====&lt;br /&gt;
*Levels! lol&lt;br /&gt;
&lt;br /&gt;
==Custom assets page==&lt;br /&gt;
===How to add:===&lt;br /&gt;
*Tilemaps&lt;br /&gt;
*Doodads&lt;br /&gt;
*Actors&lt;br /&gt;
*Items&lt;br /&gt;
*Worldscripts&lt;br /&gt;
*[[Custom_Materials_(Dyes)|Materials]]&lt;br /&gt;
&lt;br /&gt;
==Scripting/GUI page?==&lt;br /&gt;
*GUI modification and creation&lt;br /&gt;
===Scripting modification and creation===&lt;br /&gt;
*GUI scripts&lt;br /&gt;
*Worldscript&lt;br /&gt;
*Gamemode scripts&lt;br /&gt;
&lt;br /&gt;
==Upload to workshop==&lt;br /&gt;
[[Uploading_to_the_workshop|How to upload to the workshop]] &lt;br /&gt;
&lt;br /&gt;
=List of common resources=&lt;br /&gt;
*[[Custom_items|Custom Items]]&lt;br /&gt;
*[[Script_Hooks|Script Hooks]]&lt;br /&gt;
*[[List_of_modifiers|List of modifiers]]&lt;br /&gt;
*[[SValue_Loaders|SValue loaders]]&lt;br /&gt;
&lt;br /&gt;
{{Template:BaseNav}}&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Materials_(Dyes)&amp;diff=1852</id>
		<title>Custom Materials (Dyes)</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=Custom_Materials_(Dyes)&amp;diff=1852"/>
		<updated>2019-04-17T17:17:05Z</updated>

		<summary type="html">&lt;p&gt;Hootless: How to create custom materials/dyes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Materials (or dyes) alter the color of various parts of the players sprite. They can be added to the game fairly easily, requiring adding only a simple file. If you haven't yet, make sure you [[Mod base|create the base for the mod first]].&lt;br /&gt;
&lt;br /&gt;
== Making Materials ==&lt;br /&gt;
&lt;br /&gt;
In this example, we'll add a pink skin dye.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In your mod folder, create a folder called &amp;lt;code&amp;gt;tweak&amp;lt;/code&amp;gt;. In there, you have to create a new sval file. You can for example call this &amp;lt;code&amp;gt;extra_dyes.sval&amp;lt;/code&amp;gt;, or something else. '''Keep in mind''': the assets between base and mods are shared! This means you should use a unique filename here that no other mod is going to use. (You could also put it in a separate (or different) folder if you want to be extra cautious.)&lt;br /&gt;
&lt;br /&gt;
Sval files is the main serializable data structure used throughout the engine, and sval files describe a single SValue object. Sval files however have a special property; you can specify a &amp;lt;code&amp;gt;loader&amp;lt;/code&amp;gt; tag to tell the engine which script function to load the sval with. These are called [[SValue Loaders]]. Using this loader, we can make the file load material definitions. For example, we can make an sval file containing this to add a new pink skin dye.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;loader&amp;gt;Materials::LoadDyes&amp;lt;/loader&amp;gt;&lt;br /&gt;
 &amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;array name=&amp;quot;skin&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;dict&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;id&amp;quot;&amp;gt;pink&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;name&amp;quot;&amp;gt;Pink&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;array name=&amp;quot;shades&amp;quot;&amp;gt;&amp;lt;string&amp;gt;#350010&amp;lt;/string&amp;gt;&amp;lt;string&amp;gt;#e646c3&amp;lt;/string&amp;gt;&amp;lt;string&amp;gt;#ffa2fa&amp;lt;/string&amp;gt;&amp;lt;/array&amp;gt;&lt;br /&gt;
          &amp;lt;string name=&amp;quot;quality&amp;quot;&amp;gt;rare&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;bool name=&amp;quot;default&amp;quot;&amp;gt;true&amp;lt;/bool&amp;gt;&lt;br /&gt;
       &amp;lt;/dict&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
 &amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here's a breakdown of the information included here:&lt;br /&gt;
* &amp;lt;code&amp;gt;array name=&amp;quot;skin&amp;quot;&amp;lt;/code&amp;gt;: This is what the material applies to. Other options besides &amp;lt;code&amp;gt;skin&amp;lt;/code&amp;gt; are &amp;lt;code&amp;gt;hair&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cloth&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;metal&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;leather&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;wood&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;id&amp;quot;&amp;lt;/code&amp;gt;: This is the ID used to refer to the skin.&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;name&amp;quot;&amp;lt;/code&amp;gt;: The name displayed in-game.&lt;br /&gt;
* &amp;lt;code&amp;gt;array name=&amp;quot;shades&amp;quot;&amp;lt;/code&amp;gt;: The three values here correspond to the hex values for the three colors used in the material. Each can be anywhere from &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;string name=&amp;quot;quality&amp;quot;&amp;lt;/code&amp;gt;: The quality of the material, can be &amp;lt;code&amp;gt;common&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;uncommon&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;rare&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;bool name=&amp;quot;default&amp;quot;&amp;lt;/code&amp;gt;: Determines whether you start with the material or have to find it like the other materials. Can be either &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you've done it all right, you should be able to enable the mod in-game and see your new material available in the tailor (if you have it set to default)! Unfortunately due to limits of the game engine it currently (as of writing this page) is not possible to have custom materials show up in the character creation screen. &lt;br /&gt;
&lt;br /&gt;
[[File:Pink_picture.PNG]]&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
	<entry>
		<id>https://wiki.heroesofhammerwatch.com/index.php?title=File:Pink_picture.PNG&amp;diff=1851</id>
		<title>File:Pink picture.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.heroesofhammerwatch.com/index.php?title=File:Pink_picture.PNG&amp;diff=1851"/>
		<updated>2019-04-17T17:14:07Z</updated>

		<summary type="html">&lt;p&gt;Hootless: Custom material appearing in-game&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Custom material appearing in-game&lt;/div&gt;</summary>
		<author><name>Hootless</name></author>
	</entry>
</feed>