<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HebaruSan</id>
	<title>Dwarf Fortress Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=HebaruSan"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/HebaruSan"/>
	<updated>2026-06-23T15:51:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110938</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110938"/>
		<updated>2010-05-18T03:29:22Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;br /&gt;
&lt;br /&gt;
=== Learnings and observations ===&lt;br /&gt;
* &amp;lt;s&amp;gt;Only one of my hunters got free leather armor and a crossbow. So that's either a limit or a bug; either way, one skill point wasted.&amp;lt;/s&amp;gt;&lt;br /&gt;
** Nope, they both got everything, but their first actions were to drop it all on the ground when I turned off their Hunting labors, and only one of them had done that when I checked!&lt;br /&gt;
* {{k|N}}oble screen started with broker, bookkeeper, and manager vacant.&lt;br /&gt;
* {{k|D}}epot command displayed but disabled rather than hidden.&lt;br /&gt;
* My brewer and planter both show up as Farmer.&lt;br /&gt;
* Even with zero frames elapsed, saving took a '''very''' long time.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
[[File:Df031-viewport.png|thumb|right|Display shifted downward]]&lt;br /&gt;
* Tried the 800x600 font with 80x50 resolution; the display is shifted downward by somewhat less than half its height. Changing back to 80x25 fixes this.&lt;br /&gt;
* Yesterday I saw the issue where resizing the window blanks it. But now that's fine; I think the only thing I changed was to use the 800x600 font. This doesn't even have the above artifact with the black space at the top!&lt;br /&gt;
* If these flashing question marks and this &amp;quot;Pickup Equipment&amp;quot; action are any indication, designating with the mouse still causes a (partial?) tick of the world clock, similar to pressing {{k|.}}.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110928</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110928"/>
		<updated>2010-05-18T03:10:25Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;br /&gt;
&lt;br /&gt;
=== Learnings and observations ===&lt;br /&gt;
* Only one of my hunters got free leather armor and a crossbow. So that's either a limit or a bug; either way, one skill point wasted.&lt;br /&gt;
* {{k|N}}oble screen started with broker, bookkeeper, and manager vacant.&lt;br /&gt;
* {{k|D}}epot command displayed but disabled rather than hidden.&lt;br /&gt;
* My brewer and planter both show up as Farmer.&lt;br /&gt;
* Even with zero frames elapsed, saving took a '''very''' long time.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
[[File:Df031-viewport.png|thumb|right|Display shifted downward]]&lt;br /&gt;
* Tried the 800x600 font with 80x50 resolution; the display is shifted downward by somewhat less than half its height. Changing back to 80x25 fixes this.&lt;br /&gt;
* Yesterday I saw the issue where resizing the window blanks it. But now that's fine; I think the only thing I changed was to use the 800x600 font. This doesn't even have the above artifact with the black space at the top!&lt;br /&gt;
* If these flashing question marks and this &amp;quot;Pickup Equipment&amp;quot; action are any indication, designating with the mouse still causes a (partial?) tick of the world clock, similar to pressing {{k|.}}.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110927</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110927"/>
		<updated>2010-05-18T03:08:48Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;br /&gt;
&lt;br /&gt;
=== Learnings and observations ===&lt;br /&gt;
* Only one of my hunters got free leather armor and a crossbow. So that's either a limit or a bug; either way, one skill point wasted.&lt;br /&gt;
* {{k|N}}oble screen started with broker, bookkeeper, and manager vacant.&lt;br /&gt;
* {{k|D}}epot command displayed but disabled rather than hidden.&lt;br /&gt;
* My brewer and planter both show up as Farmer.&lt;br /&gt;
* Even with zero frames elapsed, saving took a '''very''' long time.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
[[File:Df031-viewport.png|thumb|right|Display shifted downward]]&lt;br /&gt;
* Tried the 800x600 font with 80x50 resolution; the display is shifted downward by somewhat less than half its height. Changing back to 80x25 fixes this.&lt;br /&gt;
* Yesterday I saw the issue where resizing the window blanks it. But now that's fine; I think the only thing I changed was to use the 800x600 font. This doesn't even have the above artifact with the black space at the top!&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110922</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110922"/>
		<updated>2010-05-18T03:02:37Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;br /&gt;
&lt;br /&gt;
=== Learnings and observations ===&lt;br /&gt;
* Only one of my hunters got free leather armor and a crossbow. So that's either a limit or a bug; either way, one skill point wasted.&lt;br /&gt;
* {{k|N}}oble screen started with broker, bookkeeper, and manager vacant.&lt;br /&gt;
* {{k|D}}epot command displayed but disabled rather than hidden.&lt;br /&gt;
* My brewer and planter both show up as Farmer.&lt;br /&gt;
* Even with zero frames elapsed, saving took a '''very''' long time.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
[[File:Df031-viewport.png|thumb|right|Display shifted downward]]&lt;br /&gt;
* Tried the 800x600 font with 80x50 resolution; the display is shifted downward by somewhat less than half its height.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File:Df031-viewport.png&amp;diff=110920</id>
		<title>File:Df031-viewport.png</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File:Df031-viewport.png&amp;diff=110920"/>
		<updated>2010-05-18T03:00:18Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: Looks like there's still a hard-coded assumption of 25 lines somewhere.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Looks like there's still a hard-coded assumption of 25 lines somewhere.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110919</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110919"/>
		<updated>2010-05-18T02:58:15Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;br /&gt;
&lt;br /&gt;
=== Learnings and observations ===&lt;br /&gt;
* Only one of my hunters got free leather armor and a crossbow. So that's either a limit or a bug; either way, one skill point wasted.&lt;br /&gt;
* {{k|N}}oble screen started with broker, bookkeeper, and manager vacant.&lt;br /&gt;
* {{k|D}}epot command displayed but disabled rather than hidden.&lt;br /&gt;
* My brewer and planter both show up as Farmer.&lt;br /&gt;
* Even with zero frames elapsed, saving took a '''very''' long time.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
* Tried the 800x600 font with 80x50 resolution; the display is shifted downward by somewhat less than half its height.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110917</id>
		<title>User:HebaruSan/2010 Notes</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/2010_Notes&amp;diff=110917"/>
		<updated>2010-05-18T02:14:02Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: Created page with 'Notes on my experiences with the 2010 releases.  == Razorclear == Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream r…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes on my experiences with the 2010 releases.&lt;br /&gt;
&lt;br /&gt;
== Razorclear ==&lt;br /&gt;
Since magma is allegedly no longer hard to come by, I selected a half-mountain, half-forest site with a stream running through the middle and no aquifer. I think there's some flux.&lt;br /&gt;
&lt;br /&gt;
=== Initial skills ===&lt;br /&gt;
I want to experiment with one-skill-per-dwarf, one-dwarf-per-skill for civilians, more to minimize task conflicts than as a challenge. Anyone leftover goes to the military.&lt;br /&gt;
&lt;br /&gt;
For the initial load-out, this means maxing out 7 skills important to the early game. For now I'll also violate my 1-per-1 rule by assigning each specialist a significantly less useful, thematically related minor (or a useful skill related to the same main task, as with trading).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Founders, &amp;quot;The Courageous Lance&amp;quot;&lt;br /&gt;
! Tulon Ginetreg&lt;br /&gt;
| Grower || Herbalist&lt;br /&gt;
|-&lt;br /&gt;
! Lor Eralbab&lt;br /&gt;
| Mechanic || Trapper&lt;br /&gt;
|-&lt;br /&gt;
! Reg Liruknish&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|-&lt;br /&gt;
! Iden Likoturrith&lt;br /&gt;
| Miner || Building Designer&lt;br /&gt;
|-&lt;br /&gt;
! Iton Kakdalsibrek&lt;br /&gt;
| Brewer || Milker&lt;br /&gt;
|-&lt;br /&gt;
! Zuglar Lilumolin&lt;br /&gt;
| Appraiser || Negotiator&lt;br /&gt;
|-&lt;br /&gt;
! Zulban Thimshurerith&lt;br /&gt;
| Fighter, Wrestler, Striker, Kicker, Dodger || Ambusher&lt;br /&gt;
|}&lt;br /&gt;
Things I'll be hoping for from (or assigning to) early immigrants:&lt;br /&gt;
* Carpenter&lt;br /&gt;
* Mason&lt;br /&gt;
* Woodcutter&lt;br /&gt;
* Cook&lt;br /&gt;
* Record Keeper&lt;br /&gt;
Later:&lt;br /&gt;
* Engraver&lt;br /&gt;
* Weaponsmith&lt;br /&gt;
* Armorsmith&lt;br /&gt;
* Physician&lt;br /&gt;
* Bowyer&lt;br /&gt;
&lt;br /&gt;
=== Gear ===&lt;br /&gt;
Conventional wagon-load of tools and rations; not looking for a challenge in this area.&lt;br /&gt;
* 1 each of many, many 2-point meats, to see if this brings a huge surplus of free barrels.&lt;br /&gt;
* 4 dogs, 3 female for parallelized pregnancies.&lt;br /&gt;
&lt;br /&gt;
=== Ambitions ===&lt;br /&gt;
* Heavy use of traffic designations to help processing speed&lt;br /&gt;
* Attempt to navigate the 0.31.x military screen&lt;br /&gt;
** Rest/train/patrol schedules&lt;br /&gt;
* Design a good alert/burrow scheme&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110916</id>
		<title>User:HebaruSan</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110916"/>
		<updated>2010-05-18T01:28:57Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Preferred Tileset&lt;br /&gt;
| [[Tileset_repository#Kein|Kein]] for its blend of tradition and innovation&lt;br /&gt;
|-&lt;br /&gt;
! Playing Version&lt;br /&gt;
| {{version|0.31.04}}&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
| Mac&lt;br /&gt;
|}&lt;br /&gt;
I'm a programmer (personally and professionally). I like roguelikes (ascended one barbarian in Nethack) and try to work on them, but don't have anything impressive to show you.&lt;br /&gt;
&lt;br /&gt;
== Reasons for Playing Dwarf Fortress ==&lt;br /&gt;
* Open-endedness&lt;br /&gt;
* Watching my designs play out&lt;br /&gt;
* Appreciating its complexity and intricacy&lt;br /&gt;
&lt;br /&gt;
== Future Goals and Aspirations ==&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
* Simulate social networking sites' &amp;quot;Like&amp;quot; buttons without spamming/vandalizing categories all over the place.&lt;br /&gt;
* Rewrite [[Dwarven physics]] in the in-character voice of a dwarven physicist explaining it to us backward humans, attributing the &amp;quot;discrepancies&amp;quot; not to differences in ''physics'', but to the advanced state of dwarven knowledge. Superior dwarven science has unlocked the secret of explosion-less item annihilation and perpetual motion machines (maybe they're related!).&lt;br /&gt;
* Animation template&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|%|÷}}{{anim|%|÷}}&amp;lt;/nowiki&amp;gt; for an active [[screw pump]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|*|☼}}&amp;lt;/nowiki&amp;gt; for an active [[gear assembly]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|o|○}}&amp;lt;/nowiki&amp;gt; for an active [[millstone]]&lt;br /&gt;
*: &amp;lt;span&amp;gt;&amp;lt;span id=&amp;quot;test_0&amp;quot; style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&amp;lt;span id=&amp;quot;test_1&amp;quot; style=&amp;quot;display:none;font-family:monospace;&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
Things that belong toward the top of [[Special:WantedPages|WantedPages]] (good content could live there) and will appear there by virtue of being linked here:&lt;br /&gt;
* [[World map]]&lt;br /&gt;
* [[Decoration Industry]]&lt;br /&gt;
* [[Arms Industry]]&lt;br /&gt;
* [[Keep]]&lt;br /&gt;
&lt;br /&gt;
=== In-game ===&lt;br /&gt;
There are several canonical Dwarf Fortress scenarios that I have yet to try or achieve.&lt;br /&gt;
* Find &amp;quot;[[Hidden Fun Stuff]]&amp;quot; and avoid spoilers until I do&lt;br /&gt;
* Kill, rather than capture, a [[megabeast]]&lt;br /&gt;
* Tame a [[Giant eagle]]&lt;br /&gt;
* Provoke war with the [[Elf|Elves]]&lt;br /&gt;
* Lose to invaders, then reclaim&lt;br /&gt;
* Abandon, then visit as adventurer&lt;br /&gt;
&lt;br /&gt;
==== Streamlined bait-based drowning chamber with looting tray ====&lt;br /&gt;
Inspired by [http://mkv25.net/dfma/movie-1093-drowningchamber3 Lumpy McUglyFace's drowning chamber] and [http://mkv25.net/dfma/movie-1782-automaticobsidianfactory Quietust's obsidian factory].&lt;br /&gt;
&lt;br /&gt;
Side view:&lt;br /&gt;
        _______&lt;br /&gt;
        ░.§D.¢░    [[Trap design#Bait animals|Bait animal]], [[hatch cover]] at stairs&lt;br /&gt;
     ___┼____&amp;lt;%%   [[Pressure plate]] (not shown), entrance [[door]], [[bridge]], [[stairs]] up, [[screw pump]] (right to left)&lt;br /&gt;
 .g.▲░░  _____%%≈░ [[Floor grate]]s, internal access, [[screw pump]] (left to right)&lt;br /&gt;
 ░░░░░ ▲░≈≈≈≈≈░░░░ River&lt;br /&gt;
When a goblin enters to attack the animal, a pressure plate sets the trap in motion.&lt;br /&gt;
# Entrance door sealed shut.&lt;br /&gt;
# Hatch cover to upper floor sealed shut.&lt;br /&gt;
# Pumps activate, water fills the chamber.&lt;br /&gt;
# Time passes.&lt;br /&gt;
# Pumps shut off.&lt;br /&gt;
# Bridge retracts.&lt;br /&gt;
## Water falls through grate to river.&lt;br /&gt;
## Corpses and loot land on top of grate.&lt;br /&gt;
# Bridge re-extends.&lt;br /&gt;
# Hatch cover opens.&lt;br /&gt;
# Door opens.&lt;br /&gt;
Advantages:&lt;br /&gt;
* Bait animal is safe and therefore doesn't need to be replaced.&lt;br /&gt;
* Looting tray allows safe retrieval of narrow giant cave spider silk items, at your haulers' leisure.&lt;br /&gt;
* No important items in the chamber means dwarves won't get in the way.&lt;br /&gt;
* No way for invaders to get into your fortress.&lt;br /&gt;
* No manual intervention required.&lt;br /&gt;
* Bridge over river affords quick and easy drainage.&lt;br /&gt;
Challenges and risks:&lt;br /&gt;
* Pressure plate placement; should go outside to allow entire interior to be bridge, but then the timing is very delicate.&lt;br /&gt;
** May need to put the plate just outside the door and add a delay.&lt;br /&gt;
* Automation is hard.&lt;br /&gt;
&lt;br /&gt;
== Ideas for [[Challenges]] ==&lt;br /&gt;
&lt;br /&gt;
=== Simulate 9/11 ===&lt;br /&gt;
Build a pair of very tall, identical towers, using supports, and collapse them both. Two variants:&lt;br /&gt;
# Make the links between the walls and the floors tenuous, and simulate &amp;quot;pancaking&amp;quot; as magma (&amp;quot;jet fuel&amp;quot;) causes them to weaken and give way.&lt;br /&gt;
# Controlled demolition with thermite.&lt;br /&gt;
* BONUS: Fill the towers with goblin cages and release them all just in time to be crushed.&lt;br /&gt;
&lt;br /&gt;
=== Megaplumbing ===&lt;br /&gt;
Sanitation is one of the primary concerns of city planners, yet most dwarves have no place to use the restroom. Yours will!&lt;br /&gt;
&lt;br /&gt;
Build a giant white stone toilet that flushes, including bowl, tank, handle, and seat. Deviate from realism as little as possible. Use it to dispose of hostile captives.&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-245-flushingtoilet GauHelldragon already did this]! Further suggestions:&lt;br /&gt;
* Don't flood the whole map.&lt;br /&gt;
* Emulate real toilets' mechanism for stopping flow and refilling the tank automatically.&lt;br /&gt;
&lt;br /&gt;
=== Turnover ===&lt;br /&gt;
A mysterious poltergeist in your region takes an unorthodox approach to avoiding overcrowding.&lt;br /&gt;
# Construct a large suicide chamber or many small ones, capable of liquidating a whole fortress's population.&lt;br /&gt;
# At the start of each migration wave, execute all of your residents and let the migrants take over a vacant fortress.&lt;br /&gt;
&lt;br /&gt;
* Since your population is always new, there is not enough time to build up high levels of skill.&lt;br /&gt;
* On the other hand, relationships would also remain relatively shallow.&lt;br /&gt;
* Special care must be taken to protect incoming migrants since wiping them out now causes the whole fortress to fail.&lt;br /&gt;
* Keeping the fortress secure while it's empty has to be balanced against allowing the migrants to enter. Bridges controlled by indoor and outdoor levers may be one approach.&lt;br /&gt;
&lt;br /&gt;
* BONUS: Try to time it well enough to reduce your population briefly to 1 incoming migrant!&lt;br /&gt;
&lt;br /&gt;
= Fortresses =&lt;br /&gt;
Recalling memories of fortresses is fun. Here are some of mine.&lt;br /&gt;
&lt;br /&gt;
== Region 1 (Name lost to the mists of time) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Population&lt;br /&gt;
| 7 [[dwarves]], probably; can't imagine this one getting [[immigrants]]&lt;br /&gt;
|}&lt;br /&gt;
I believe I [[Reclaim fortress mode|abandoned]] this fortress after getting a basic sense of how to play and an understanding of this fortress' non-viability, then started Region 2 in the same [[world]].&lt;br /&gt;
=== Noteworthy Occurrences ===&lt;br /&gt;
* Took a while to figure out how to get my dwarves to do things. They idled while I learned [[Controls|keystrokes]].&lt;br /&gt;
* [[Miner]] got stuck somehow after falling in a hole.&lt;br /&gt;
* Fortress layout was partly [[Light|outdoors]], partly wide-open non-defensible underground area.&lt;br /&gt;
* Ran out of [[trees]]. Then found a bunch more after discovering the existence of [[Z-axis|Z-levels]]!&lt;br /&gt;
{{:User:HebaruSan/Roughnessclasp}}&lt;br /&gt;
{{:User:HebaruSan/Perplexedrag}}&lt;br /&gt;
{{:User:HebaruSan/Machinehall}}&lt;br /&gt;
== Adventure ==&lt;br /&gt;
Sometime between Machinehall and Blockedbridge, I created a world in which to try [[Adventure Mode]]. The framerate was very slow and I was unable to find anything to do. I wandered through an [[Elf|Elven]] settlement talking to its residents, but none of them seemed to be the quest boss I wanted to meet, and I had no way to locate him. I decided that if I wanted a single-character questing experience, I could go play Nethack or Crawl instead, whereas [[Dwarf fortress mode]] is far more novel and interesting. Perma-saved.&lt;br /&gt;
{{:User:HebaruSan/Blockedbridge}}&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110915</id>
		<title>User:HebaruSan</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110915"/>
		<updated>2010-05-18T01:28:37Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Preferred Tileset&lt;br /&gt;
| [[Tileset_repository#Kein|Kein]] for its blend of tradition and innovation&lt;br /&gt;
|-&lt;br /&gt;
! Playing Version&lt;br /&gt;
| {{version|0.31.04}}&lt;br /&gt;
|-&lt;br /&gt;
! Platform&lt;br /&gt;
|&lt;br /&gt;
Mac&lt;br /&gt;
|}&lt;br /&gt;
I'm a programmer (personally and professionally). I like roguelikes (ascended one barbarian in Nethack) and try to work on them, but don't have anything impressive to show you.&lt;br /&gt;
&lt;br /&gt;
== Reasons for Playing Dwarf Fortress ==&lt;br /&gt;
* Open-endedness&lt;br /&gt;
* Watching my designs play out&lt;br /&gt;
* Appreciating its complexity and intricacy&lt;br /&gt;
&lt;br /&gt;
== Future Goals and Aspirations ==&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
* Simulate social networking sites' &amp;quot;Like&amp;quot; buttons without spamming/vandalizing categories all over the place.&lt;br /&gt;
* Rewrite [[Dwarven physics]] in the in-character voice of a dwarven physicist explaining it to us backward humans, attributing the &amp;quot;discrepancies&amp;quot; not to differences in ''physics'', but to the advanced state of dwarven knowledge. Superior dwarven science has unlocked the secret of explosion-less item annihilation and perpetual motion machines (maybe they're related!).&lt;br /&gt;
* Animation template&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|%|÷}}{{anim|%|÷}}&amp;lt;/nowiki&amp;gt; for an active [[screw pump]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|*|☼}}&amp;lt;/nowiki&amp;gt; for an active [[gear assembly]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|o|○}}&amp;lt;/nowiki&amp;gt; for an active [[millstone]]&lt;br /&gt;
*: &amp;lt;span&amp;gt;&amp;lt;span id=&amp;quot;test_0&amp;quot; style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&amp;lt;span id=&amp;quot;test_1&amp;quot; style=&amp;quot;display:none;font-family:monospace;&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
Things that belong toward the top of [[Special:WantedPages|WantedPages]] (good content could live there) and will appear there by virtue of being linked here:&lt;br /&gt;
* [[World map]]&lt;br /&gt;
* [[Decoration Industry]]&lt;br /&gt;
* [[Arms Industry]]&lt;br /&gt;
* [[Keep]]&lt;br /&gt;
&lt;br /&gt;
=== In-game ===&lt;br /&gt;
There are several canonical Dwarf Fortress scenarios that I have yet to try or achieve.&lt;br /&gt;
* Find &amp;quot;[[Hidden Fun Stuff]]&amp;quot; and avoid spoilers until I do&lt;br /&gt;
* Kill, rather than capture, a [[megabeast]]&lt;br /&gt;
* Tame a [[Giant eagle]]&lt;br /&gt;
* Provoke war with the [[Elf|Elves]]&lt;br /&gt;
* Lose to invaders, then reclaim&lt;br /&gt;
* Abandon, then visit as adventurer&lt;br /&gt;
&lt;br /&gt;
==== Streamlined bait-based drowning chamber with looting tray ====&lt;br /&gt;
Inspired by [http://mkv25.net/dfma/movie-1093-drowningchamber3 Lumpy McUglyFace's drowning chamber] and [http://mkv25.net/dfma/movie-1782-automaticobsidianfactory Quietust's obsidian factory].&lt;br /&gt;
&lt;br /&gt;
Side view:&lt;br /&gt;
        _______&lt;br /&gt;
        ░.§D.¢░    [[Trap design#Bait animals|Bait animal]], [[hatch cover]] at stairs&lt;br /&gt;
     ___┼____&amp;lt;%%   [[Pressure plate]] (not shown), entrance [[door]], [[bridge]], [[stairs]] up, [[screw pump]] (right to left)&lt;br /&gt;
 .g.▲░░  _____%%≈░ [[Floor grate]]s, internal access, [[screw pump]] (left to right)&lt;br /&gt;
 ░░░░░ ▲░≈≈≈≈≈░░░░ River&lt;br /&gt;
When a goblin enters to attack the animal, a pressure plate sets the trap in motion.&lt;br /&gt;
# Entrance door sealed shut.&lt;br /&gt;
# Hatch cover to upper floor sealed shut.&lt;br /&gt;
# Pumps activate, water fills the chamber.&lt;br /&gt;
# Time passes.&lt;br /&gt;
# Pumps shut off.&lt;br /&gt;
# Bridge retracts.&lt;br /&gt;
## Water falls through grate to river.&lt;br /&gt;
## Corpses and loot land on top of grate.&lt;br /&gt;
# Bridge re-extends.&lt;br /&gt;
# Hatch cover opens.&lt;br /&gt;
# Door opens.&lt;br /&gt;
Advantages:&lt;br /&gt;
* Bait animal is safe and therefore doesn't need to be replaced.&lt;br /&gt;
* Looting tray allows safe retrieval of narrow giant cave spider silk items, at your haulers' leisure.&lt;br /&gt;
* No important items in the chamber means dwarves won't get in the way.&lt;br /&gt;
* No way for invaders to get into your fortress.&lt;br /&gt;
* No manual intervention required.&lt;br /&gt;
* Bridge over river affords quick and easy drainage.&lt;br /&gt;
Challenges and risks:&lt;br /&gt;
* Pressure plate placement; should go outside to allow entire interior to be bridge, but then the timing is very delicate.&lt;br /&gt;
** May need to put the plate just outside the door and add a delay.&lt;br /&gt;
* Automation is hard.&lt;br /&gt;
&lt;br /&gt;
== Ideas for [[Challenges]] ==&lt;br /&gt;
&lt;br /&gt;
=== Simulate 9/11 ===&lt;br /&gt;
Build a pair of very tall, identical towers, using supports, and collapse them both. Two variants:&lt;br /&gt;
# Make the links between the walls and the floors tenuous, and simulate &amp;quot;pancaking&amp;quot; as magma (&amp;quot;jet fuel&amp;quot;) causes them to weaken and give way.&lt;br /&gt;
# Controlled demolition with thermite.&lt;br /&gt;
* BONUS: Fill the towers with goblin cages and release them all just in time to be crushed.&lt;br /&gt;
&lt;br /&gt;
=== Megaplumbing ===&lt;br /&gt;
Sanitation is one of the primary concerns of city planners, yet most dwarves have no place to use the restroom. Yours will!&lt;br /&gt;
&lt;br /&gt;
Build a giant white stone toilet that flushes, including bowl, tank, handle, and seat. Deviate from realism as little as possible. Use it to dispose of hostile captives.&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-245-flushingtoilet GauHelldragon already did this]! Further suggestions:&lt;br /&gt;
* Don't flood the whole map.&lt;br /&gt;
* Emulate real toilets' mechanism for stopping flow and refilling the tank automatically.&lt;br /&gt;
&lt;br /&gt;
=== Turnover ===&lt;br /&gt;
A mysterious poltergeist in your region takes an unorthodox approach to avoiding overcrowding.&lt;br /&gt;
# Construct a large suicide chamber or many small ones, capable of liquidating a whole fortress's population.&lt;br /&gt;
# At the start of each migration wave, execute all of your residents and let the migrants take over a vacant fortress.&lt;br /&gt;
&lt;br /&gt;
* Since your population is always new, there is not enough time to build up high levels of skill.&lt;br /&gt;
* On the other hand, relationships would also remain relatively shallow.&lt;br /&gt;
* Special care must be taken to protect incoming migrants since wiping them out now causes the whole fortress to fail.&lt;br /&gt;
* Keeping the fortress secure while it's empty has to be balanced against allowing the migrants to enter. Bridges controlled by indoor and outdoor levers may be one approach.&lt;br /&gt;
&lt;br /&gt;
* BONUS: Try to time it well enough to reduce your population briefly to 1 incoming migrant!&lt;br /&gt;
&lt;br /&gt;
= Fortresses =&lt;br /&gt;
Recalling memories of fortresses is fun. Here are some of mine.&lt;br /&gt;
&lt;br /&gt;
== Region 1 (Name lost to the mists of time) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Population&lt;br /&gt;
| 7 [[dwarves]], probably; can't imagine this one getting [[immigrants]]&lt;br /&gt;
|}&lt;br /&gt;
I believe I [[Reclaim fortress mode|abandoned]] this fortress after getting a basic sense of how to play and an understanding of this fortress' non-viability, then started Region 2 in the same [[world]].&lt;br /&gt;
=== Noteworthy Occurrences ===&lt;br /&gt;
* Took a while to figure out how to get my dwarves to do things. They idled while I learned [[Controls|keystrokes]].&lt;br /&gt;
* [[Miner]] got stuck somehow after falling in a hole.&lt;br /&gt;
* Fortress layout was partly [[Light|outdoors]], partly wide-open non-defensible underground area.&lt;br /&gt;
* Ran out of [[trees]]. Then found a bunch more after discovering the existence of [[Z-axis|Z-levels]]!&lt;br /&gt;
{{:User:HebaruSan/Roughnessclasp}}&lt;br /&gt;
{{:User:HebaruSan/Perplexedrag}}&lt;br /&gt;
{{:User:HebaruSan/Machinehall}}&lt;br /&gt;
== Adventure ==&lt;br /&gt;
Sometime between Machinehall and Blockedbridge, I created a world in which to try [[Adventure Mode]]. The framerate was very slow and I was unable to find anything to do. I wandered through an [[Elf|Elven]] settlement talking to its residents, but none of them seemed to be the quest boss I wanted to meet, and I had no way to locate him. I decided that if I wanted a single-character questing experience, I could go play Nethack or Crawl instead, whereas [[Dwarf fortress mode]] is far more novel and interesting. Perma-saved.&lt;br /&gt;
{{:User:HebaruSan/Blockedbridge}}&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110910</id>
		<title>User:HebaruSan</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan&amp;diff=110910"/>
		<updated>2010-05-18T01:07:22Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* In-game */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Preferred Tileset&lt;br /&gt;
| [[Tileset_repository#Kein|Kein]] for its blend of tradition and innovation&lt;br /&gt;
|-&lt;br /&gt;
! Playing Version&lt;br /&gt;
| {{version|0.28.181.40d16}}&lt;br /&gt;
|-&lt;br /&gt;
! Platforms&lt;br /&gt;
|&lt;br /&gt;
* Mac&lt;br /&gt;
* Windows&lt;br /&gt;
|}&lt;br /&gt;
I'm a programmer (personally and professionally). I like roguelikes (ascended one barbarian in Nethack) and try to work on them, but don't have anything impressive to show you.&lt;br /&gt;
&lt;br /&gt;
== Reasons for Playing Dwarf Fortress ==&lt;br /&gt;
* Open-endedness&lt;br /&gt;
* Watching my designs play out&lt;br /&gt;
* Appreciating its complexity and intricacy&lt;br /&gt;
&lt;br /&gt;
== Future Goals and Aspirations ==&lt;br /&gt;
=== Wiki ===&lt;br /&gt;
* Simulate social networking sites' &amp;quot;Like&amp;quot; buttons without spamming/vandalizing categories all over the place.&lt;br /&gt;
* Rewrite [[Dwarven physics]] in the in-character voice of a dwarven physicist explaining it to us backward humans, attributing the &amp;quot;discrepancies&amp;quot; not to differences in ''physics'', but to the advanced state of dwarven knowledge. Superior dwarven science has unlocked the secret of explosion-less item annihilation and perpetual motion machines (maybe they're related!).&lt;br /&gt;
* Animation template&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|%|÷}}{{anim|%|÷}}&amp;lt;/nowiki&amp;gt; for an active [[screw pump]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|*|☼}}&amp;lt;/nowiki&amp;gt; for an active [[gear assembly]]&lt;br /&gt;
** &amp;lt;nowiki&amp;gt;{{anim|o|○}}&amp;lt;/nowiki&amp;gt; for an active [[millstone]]&lt;br /&gt;
*: &amp;lt;span&amp;gt;&amp;lt;span id=&amp;quot;test_0&amp;quot; style=&amp;quot;font-family:monospace;&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&amp;lt;span id=&amp;quot;test_1&amp;quot; style=&amp;quot;display:none;font-family:monospace;&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
Things that belong toward the top of [[Special:WantedPages|WantedPages]] (good content could live there) and will appear there by virtue of being linked here:&lt;br /&gt;
* [[World map]]&lt;br /&gt;
* [[Decoration Industry]]&lt;br /&gt;
* [[Arms Industry]]&lt;br /&gt;
* [[Keep]]&lt;br /&gt;
&lt;br /&gt;
=== In-game ===&lt;br /&gt;
There are several canonical Dwarf Fortress scenarios that I have yet to try or achieve.&lt;br /&gt;
* Find &amp;quot;[[Hidden Fun Stuff]]&amp;quot; and avoid spoilers until I do&lt;br /&gt;
* Kill, rather than capture, a [[megabeast]]&lt;br /&gt;
* Tame a [[Giant eagle]]&lt;br /&gt;
* Provoke war with the [[Elf|Elves]]&lt;br /&gt;
* Lose to invaders, then reclaim&lt;br /&gt;
* Abandon, then visit as adventurer&lt;br /&gt;
&lt;br /&gt;
==== Streamlined bait-based drowning chamber with looting tray ====&lt;br /&gt;
Inspired by [http://mkv25.net/dfma/movie-1093-drowningchamber3 Lumpy McUglyFace's drowning chamber] and [http://mkv25.net/dfma/movie-1782-automaticobsidianfactory Quietust's obsidian factory].&lt;br /&gt;
&lt;br /&gt;
Side view:&lt;br /&gt;
        _______&lt;br /&gt;
        ░.§D.¢░    [[Trap design#Bait animals|Bait animal]], [[hatch cover]] at stairs&lt;br /&gt;
     ___┼____&amp;lt;%%   [[Pressure plate]] (not shown), entrance [[door]], [[bridge]], [[stairs]] up, [[screw pump]] (right to left)&lt;br /&gt;
 .g.▲░░  _____%%≈░ [[Floor grate]]s, internal access, [[screw pump]] (left to right)&lt;br /&gt;
 ░░░░░ ▲░≈≈≈≈≈░░░░ River&lt;br /&gt;
When a goblin enters to attack the animal, a pressure plate sets the trap in motion.&lt;br /&gt;
# Entrance door sealed shut.&lt;br /&gt;
# Hatch cover to upper floor sealed shut.&lt;br /&gt;
# Pumps activate, water fills the chamber.&lt;br /&gt;
# Time passes.&lt;br /&gt;
# Pumps shut off.&lt;br /&gt;
# Bridge retracts.&lt;br /&gt;
## Water falls through grate to river.&lt;br /&gt;
## Corpses and loot land on top of grate.&lt;br /&gt;
# Bridge re-extends.&lt;br /&gt;
# Hatch cover opens.&lt;br /&gt;
# Door opens.&lt;br /&gt;
Advantages:&lt;br /&gt;
* Bait animal is safe and therefore doesn't need to be replaced.&lt;br /&gt;
* Looting tray allows safe retrieval of narrow giant cave spider silk items, at your haulers' leisure.&lt;br /&gt;
* No important items in the chamber means dwarves won't get in the way.&lt;br /&gt;
* No way for invaders to get into your fortress.&lt;br /&gt;
* No manual intervention required.&lt;br /&gt;
* Bridge over river affords quick and easy drainage.&lt;br /&gt;
Challenges and risks:&lt;br /&gt;
* Pressure plate placement; should go outside to allow entire interior to be bridge, but then the timing is very delicate.&lt;br /&gt;
** May need to put the plate just outside the door and add a delay.&lt;br /&gt;
* Automation is hard.&lt;br /&gt;
&lt;br /&gt;
== Ideas for [[Challenges]] ==&lt;br /&gt;
&lt;br /&gt;
=== Simulate 9/11 ===&lt;br /&gt;
Build a pair of very tall, identical towers, using supports, and collapse them both. Two variants:&lt;br /&gt;
# Make the links between the walls and the floors tenuous, and simulate &amp;quot;pancaking&amp;quot; as magma (&amp;quot;jet fuel&amp;quot;) causes them to weaken and give way.&lt;br /&gt;
# Controlled demolition with thermite.&lt;br /&gt;
* BONUS: Fill the towers with goblin cages and release them all just in time to be crushed.&lt;br /&gt;
&lt;br /&gt;
=== Megaplumbing ===&lt;br /&gt;
Sanitation is one of the primary concerns of city planners, yet most dwarves have no place to use the restroom. Yours will!&lt;br /&gt;
&lt;br /&gt;
Build a giant white stone toilet that flushes, including bowl, tank, handle, and seat. Deviate from realism as little as possible. Use it to dispose of hostile captives.&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-245-flushingtoilet GauHelldragon already did this]! Further suggestions:&lt;br /&gt;
* Don't flood the whole map.&lt;br /&gt;
* Emulate real toilets' mechanism for stopping flow and refilling the tank automatically.&lt;br /&gt;
&lt;br /&gt;
=== Turnover ===&lt;br /&gt;
A mysterious poltergeist in your region takes an unorthodox approach to avoiding overcrowding.&lt;br /&gt;
# Construct a large suicide chamber or many small ones, capable of liquidating a whole fortress's population.&lt;br /&gt;
# At the start of each migration wave, execute all of your residents and let the migrants take over a vacant fortress.&lt;br /&gt;
&lt;br /&gt;
* Since your population is always new, there is not enough time to build up high levels of skill.&lt;br /&gt;
* On the other hand, relationships would also remain relatively shallow.&lt;br /&gt;
* Special care must be taken to protect incoming migrants since wiping them out now causes the whole fortress to fail.&lt;br /&gt;
* Keeping the fortress secure while it's empty has to be balanced against allowing the migrants to enter. Bridges controlled by indoor and outdoor levers may be one approach.&lt;br /&gt;
&lt;br /&gt;
* BONUS: Try to time it well enough to reduce your population briefly to 1 incoming migrant!&lt;br /&gt;
&lt;br /&gt;
= Fortresses =&lt;br /&gt;
Recalling memories of fortresses is fun. Here are some of mine.&lt;br /&gt;
&lt;br /&gt;
== Region 1 (Name lost to the mists of time) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Population&lt;br /&gt;
| 7 [[dwarves]], probably; can't imagine this one getting [[immigrants]]&lt;br /&gt;
|}&lt;br /&gt;
I believe I [[Reclaim fortress mode|abandoned]] this fortress after getting a basic sense of how to play and an understanding of this fortress' non-viability, then started Region 2 in the same [[world]].&lt;br /&gt;
=== Noteworthy Occurrences ===&lt;br /&gt;
* Took a while to figure out how to get my dwarves to do things. They idled while I learned [[Controls|keystrokes]].&lt;br /&gt;
* [[Miner]] got stuck somehow after falling in a hole.&lt;br /&gt;
* Fortress layout was partly [[Light|outdoors]], partly wide-open non-defensible underground area.&lt;br /&gt;
* Ran out of [[trees]]. Then found a bunch more after discovering the existence of [[Z-axis|Z-levels]]!&lt;br /&gt;
{{:User:HebaruSan/Roughnessclasp}}&lt;br /&gt;
{{:User:HebaruSan/Perplexedrag}}&lt;br /&gt;
{{:User:HebaruSan/Machinehall}}&lt;br /&gt;
== Adventure ==&lt;br /&gt;
Sometime between Machinehall and Blockedbridge, I created a world in which to try [[Adventure Mode]]. The framerate was very slow and I was unable to find anything to do. I wandered through an [[Elf|Elven]] settlement talking to its residents, but none of them seemed to be the quest boss I wanted to meet, and I had no way to locate him. I decided that if I wanted a single-character questing experience, I could go play Nethack or Crawl instead, whereas [[Dwarf fortress mode]] is far more novel and interesting. Perma-saved.&lt;br /&gt;
{{:User:HebaruSan/Blockedbridge}}&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Blockedbridge&amp;diff=110908</id>
		<title>User:HebaruSan/Blockedbridge</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Blockedbridge&amp;diff=110908"/>
		<updated>2010-05-18T01:05:51Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 5, Rifotsazir, &amp;quot;Blockedbridge&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| The Merchants of Closing&lt;br /&gt;
|-&lt;br /&gt;
! House Rules&lt;br /&gt;
| [[Dwarven Economy|[ZERO_RENT:YES] ]]&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|8,435,373}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 214 [[dwarves]]&lt;br /&gt;
126 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 5 dwarves&lt;br /&gt;
7 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
| &lt;br /&gt;
* Leather [[Clothes|thong]]&lt;br /&gt;
* Tower-cap [[armor stand]]&lt;br /&gt;
* 3 [[Trade good#Crafts|Scepters]]&lt;br /&gt;
* [[Mace]]&lt;br /&gt;
* [[Chain mail]]&lt;br /&gt;
* [[Trade good#Instruments|Flute]]&lt;br /&gt;
* Red flash opal [[table]]&lt;br /&gt;
* [[Trade good#Instruments|Harp]]&lt;br /&gt;
* [[Door]]&lt;br /&gt;
* [[Bracelet]]&lt;br /&gt;
* [[Coffer]]&lt;br /&gt;
* [[Weapon rack]]&lt;br /&gt;
* [[Earring]]&lt;br /&gt;
* [[Braies]]&lt;br /&gt;
* [[Chain]]&lt;br /&gt;
* [[Idol]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| &lt;br /&gt;
* [[Dungeon Master]] ([[underground river]])&lt;br /&gt;
* [[Duke/Duchess|Duchess]]&lt;br /&gt;
* [[Duke/Duchess Consort|Duke Consort]]&lt;br /&gt;
* [[Philosopher]]&lt;br /&gt;
* [[Tax Collector]]&lt;br /&gt;
* [[Hammerer]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
|&lt;br /&gt;
27 [[Champions]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Blockedbridge|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;I used the [[site finder]], with the only search parameter being the presence of a [[magma pipe]], then carved the bottom [[Z-axis|Z-level]] into 5x10 chunks without finding one. However, I did eventually notice some [[Frogman]] bones in my [[stocks]]. Sure enough, these had sunk to the bottom of an undiscovered [[underground river]].&lt;br /&gt;
&lt;br /&gt;
I also got tired of under-building squalid hovels for my gloriously wealthy tribesdwarves, so I turned off [[Dwarven economy|rent]]. My long-term plan is to build better and better housing, and as they move into it, knock out the walls between older rooms to upgrade them. I might try enabling rent again in future versions if it becomes possible to undercut rents with a housing supply glut.&lt;br /&gt;
&lt;br /&gt;
Much of the created wealth is due to micro-management of [[Strange mood]]s; virtually all artifacts were made from [[native platinum]], raw [[demantoid]], [[aluminum]] bars, [[platinum]] bars, giant cave spider [[silk]], sasquatch [[leather]], giant cave spider [[chitin]], [[Gem|star sapphires]], and [[Gem|clear diamonds]].&lt;br /&gt;
&lt;br /&gt;
When the [[Dungeon Master]] finally arrived, her hood was decorated with an image of Blockedbridge's prized legendary mace. Apparently she was a fan.&lt;br /&gt;
&lt;br /&gt;
=== [[Aquifer]] Prequel ===&lt;br /&gt;
My initial plan was to dig this fortress under a [[human]] town, so I selected a site with one. The [[site finder]] courteously warned me in the strongest possible terms that there was an [[aquifer]] at this location, which could seriously hinder my progress. This warning fully indemnified the [[site finder]] as far as I was concerned; however, I had never seen an aquifer before and succumbed to my curiosity.&lt;br /&gt;
&lt;br /&gt;
We arrived in the town and began digging at its center. Five levels of ramp and side-passages were designated in a fit of optimism. Two levels down, the dirt gave way to water, and the remaining designations became a cruel joke, taunting their creators. After a brief attempt to pump out enough liquid to allow further descent, we returned to the surface, re-packed the wagon, wished the [[human]] townsfolk well, and set off for the mountains, where dwarvenkind belongs.&lt;br /&gt;
&lt;br /&gt;
=== Stockpile [[Fun]] and Reclamation ===&lt;br /&gt;
Blockedbridge got off to a promising start, with the initial layout carved and all the industries ramping up. Then the [[brewer]] cancelled his task for lack of an empty [[barrel]]. There were plenty of barrels around, but they were all full of food. This seemed to be the result of a stockpiling error; there was a food-and-drink pile but no drinks-only pile, and so the [[kitchen]] outstripped the [[still]] and used up all the barrels. A plague of thirst swept the fortress, and as attempts were made to restart ale production, one of the fortress's most beloved legendary denizens perished. This was deemed an appropriate occasion for [[fun]]; all attempts at survival were forgotten, and Blockedbridge focused on leaving a good-looking corpse.&lt;br /&gt;
&lt;br /&gt;
The entrance was sealed, trapping a [[human]] trade delegation inside with the dwarves. Several new butcher shops were hastily erected to slaughter all the remaining animals. An engraver of legendary skill was sent to the tombs to chronicle the ongoing tragedy in stone. One by one, thirst overtook them all, in some cases while they were carrying another's remains to the cemetery.&lt;br /&gt;
&lt;br /&gt;
As soon as news of Blockedbridge's fall reached the mountainhomes, a band of dwarven warriors set out to revive it, confident that they could succeed where the previous crew had failed. They found an unoccupied, ransacked, but otherwise safe fortress and set to work restoring it. They were ''very'' careful to designate a substantial drinks-only stockpile. This group welcomed many emigres from elsewhere, and today Blockedbridge is a thriving dwarven metropolis.&lt;br /&gt;
&lt;br /&gt;
Of the trapped humans, some later died defending Blockedbridge, several rejoined their countrymen upon their next visit, and one remains to the present day.&lt;br /&gt;
&lt;br /&gt;
=== Notable Features ===&lt;br /&gt;
* No [[water]] until [[underground river]] was found&lt;br /&gt;
** Minor injuries became death sentences&lt;br /&gt;
* Wall around entire map makes the surface safe for dwarvenkind&lt;br /&gt;
** Exterior [[Soldier|patrolled]] by [[Champions]]&lt;br /&gt;
** [[Ramp]] under wall to tunnel for [[Wagon]]s&lt;br /&gt;
* Central [[ramp]] down to (previous) [[trade depot]] location&lt;br /&gt;
** 3-tile wide hallways going north/south/east/west from center&lt;br /&gt;
** Up/down [[stairs]] in hallways every 20 tiles&lt;br /&gt;
* Tower-cap farm&lt;br /&gt;
* 8-[[Siege engine|catapult]] training center feeds stoneworking shops&lt;br /&gt;
* Embassy Suites:&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Blockedbridge&amp;diff=110907</id>
		<title>User:HebaruSan/Blockedbridge</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Blockedbridge&amp;diff=110907"/>
		<updated>2010-05-18T01:05:27Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 5, Rifotsazir, &amp;quot;Blockedbridge&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| The Merchants of Closing&lt;br /&gt;
|-&lt;br /&gt;
! House Rules&lt;br /&gt;
| [[Dwarven Economy|[ZERO_RENT:YES] ]]&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|8,435,373}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 214 [[dwarves]]&lt;br /&gt;
126 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 5 dwarves&lt;br /&gt;
7 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
| &lt;br /&gt;
* Leather [[Clothes|thong]]&lt;br /&gt;
* Tower-cap [[armor stand]]&lt;br /&gt;
* 3 [[Trade good#Crafts|Scepters]]&lt;br /&gt;
* [[Mace]]&lt;br /&gt;
* [[Chain mail]]&lt;br /&gt;
* [[Trade good#Instruments|Flute]]&lt;br /&gt;
* Red flash opal [[table]]&lt;br /&gt;
* [[Trade good#Instruments|Harp]]&lt;br /&gt;
* [[Door]]&lt;br /&gt;
* [[Bracelet]]&lt;br /&gt;
* [[Coffer]]&lt;br /&gt;
* [[Weapon rack]]&lt;br /&gt;
* [[Earring]]&lt;br /&gt;
* [[Braies]]&lt;br /&gt;
* [[Chain]]&lt;br /&gt;
* [[Idol]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| &lt;br /&gt;
* [[Dungeon Master]] ([[underground river]])&lt;br /&gt;
* [[Duke/Duchess|Duchess]]&lt;br /&gt;
* [[Duke/Duchess Consort|Duke Consort]]&lt;br /&gt;
* [[Philosopher]]&lt;br /&gt;
* [[Tax Collector]]&lt;br /&gt;
* [[Hammerer]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
|&lt;br /&gt;
27 [[Champions]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Blockedbridge|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;I used the [[site finder]], with the only search parameter being the presence of a [[magma pipe]], then carved the bottom [[Z-axis|Z-level]] into 5x10 chunks without finding one. However, I did eventually notice some [[Frogman]] bones in my [[stocks]]. Sure enough, these had sunk to the bottom of an undiscovered [[underground river]].&lt;br /&gt;
&lt;br /&gt;
I also got tired of under-building squalid hovels for my gloriously wealthy tribesdwarves, so I turned off [[Dwarven economy|rent]]. My long-term plan is to build better and better housing, and as they move into it, knock out the walls between older rooms to upgrade them. I might try enabling rent again in future versions if it becomes possible to undercut rents with a housing supply glut.&lt;br /&gt;
&lt;br /&gt;
Much of the created wealth is due to micro-management of [[Strange mood]]s; virtually all artifacts were made from [[native platinum]], raw [[demantoid]], [[aluminum]] bars, [[platinum]] bars, giant cave spider [[silk]], sasquatch [[leather]], giant cave spider [[chitin]], [[Gem|star sapphires]], and [[Gem|clear diamonds]].&lt;br /&gt;
&lt;br /&gt;
When the [[Dungeon Master]] finally arrived, her hood was decorated with an image of Blockedbridge's prized legendary mace. Apparently she was a fan.&lt;br /&gt;
&lt;br /&gt;
=== [[Aquifer]] Prequel ===&lt;br /&gt;
My initial plan was to dig this fortress under a [[human]] town, so I selected a site with one. The [[site finder]] courteously warned me in the strongest possible terms that there was an [[aquifer]] at this location, which could seriously hinder my progress. This warning fully indemnified the [[site finder]] as far as I was concerned; however, I had never seen an aquifer before and succumbed to my curiosity.&lt;br /&gt;
&lt;br /&gt;
We arrived in the town and began digging at its center. Five levels of ramp and side-passages were designated in a fit of optimism. Two levels down, the dirt gave way to water, and the remaining designations became a cruel joke, taunting their creators. After a brief attempt to pump out enough liquid to allow further descent, we returned to the surface, re-packed the wagon, wished the [[human]] townsfolk well, and set off for the mountains, where dwarvenkind belongs.&lt;br /&gt;
&lt;br /&gt;
=== Stockpile [[Fun]] and Reclamation ===&lt;br /&gt;
Blockedbridge got off to a promising start, with the initial layout carved and all the industries ramping up. Then the [[brewer]] cancelled his task for lack of an empty [[barrel]]. There were plenty of barrels around, but they were all full of food. This seemed to be the result of a stockpiling error; there was a food-and-drink pile but no drinks-only pile, and so the [[kitchen]] outstripped the [[still]] and used up all the barrels. A plague of thirst swept the fortress, and as attempts were made to restart ale production, one of the fortress's most beloved legendary denizens perished. This was deemed an appropriate occasion for [[fun]]; all attempts at survival were forgotten, and Blockedbridge focused on leaving a good-looking corpse.&lt;br /&gt;
&lt;br /&gt;
The entrance was sealed, trapping a [[human]] trade delegation inside with the dwarves. Several new butcher shops were hastily erected to slaughter all the remaining animals. An engraver of legendary skill was sent to the tombs to chronicle the ongoing tragedy in stone. One by one, thirst overtook them all, in some cases while they were carrying another's remains to the cemetery.&lt;br /&gt;
&lt;br /&gt;
As soon as news of Blockedbridge's fall reached the mountainhomes, a band of dwarven warriors set out to revive it, confident that they could succeed where the previous crew had failed. They found an unoccupied, ransacked, but otherwise safe fortress and set to work restoring it. They were ''very'' careful to designate a substantial drinks-only stockpile. This group welcomed many emigres from elsewhere, and today Blockedbridge is a thriving dwarven metropolis.&lt;br /&gt;
&lt;br /&gt;
Of the trapped humans, some later died defending Blockedbridge, several rejoined their countrymen upon their next visit, and one remains to the present day.&lt;br /&gt;
&lt;br /&gt;
=== Notable Features ===&lt;br /&gt;
* No [[water]] until [[underground river]] was found&lt;br /&gt;
** Minor injuries became death sentences&lt;br /&gt;
* Wall around entire map makes the surface safe for dwarvenkind&lt;br /&gt;
** Exterior [[Soldier|patrolled]] by [[Champions]]&lt;br /&gt;
** [[Ramp]] under wall to tunnel for [[Wagon]]s&lt;br /&gt;
* Central [[ramp]] down to (previous) [[trade depot]] location&lt;br /&gt;
** 3-tile wide hallways going north/south/east/west from center&lt;br /&gt;
** Up/down [[stairs]] in hallways every 20 tiles&lt;br /&gt;
* Tower-cap farm&lt;br /&gt;
* 8-[[Siege engine|catapult]] training center feeds stoneworking shops&lt;br /&gt;
* Embassy Suites:&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
 ...║♫....║....Æ║&lt;br /&gt;
 ...┼..╤╥.┼..θ..║&lt;br /&gt;
 ...║√....║....π║&lt;br /&gt;
 ...╠═════╬═════╣&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Machinehall&amp;diff=110906</id>
		<title>User:HebaruSan/Machinehall</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Machinehall&amp;diff=110906"/>
		<updated>2010-05-18T01:04:13Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 4, Mountainhome Stâkudîton Zustashizkilgostaban Bëmbul, &amp;quot;Machinehall the Ancient Intricate Arch-Construct of Mechanisms&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| Truestrike the Courageous Loyal Rock-Band of Beards&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|3,359,388}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 170 [[dwarves]]&lt;br /&gt;
480 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 25 dwarves&lt;br /&gt;
32 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
| &lt;br /&gt;
* [[Trade good#Instruments|Piccolo]]&lt;br /&gt;
* 6 [[Trade good#Crafts|Bracelets]]&lt;br /&gt;
* 2 [[Mechanisms]]&lt;br /&gt;
* [[Trade good#Toys|Toy axe]]&lt;br /&gt;
* [[Blowgun]]&lt;br /&gt;
* Leather [[Clothes|shirt]]&lt;br /&gt;
* [[Trade good#Instruments|Harp]]&lt;br /&gt;
* Right [[gauntlet]]&lt;br /&gt;
* [[Animal trap]]&lt;br /&gt;
* [[Clothes|Trousers]]&lt;br /&gt;
* [[Crossbow]]&lt;br /&gt;
* [[Trade good#Crafts|Idol]]&lt;br /&gt;
* Leather [[Clothes|face veil]]&lt;br /&gt;
* [[Bed]]&lt;br /&gt;
* Left [[gauntlet]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| &lt;br /&gt;
* [[Dungeon Master]] ([[River#Surface Rivers|surface river]])&lt;br /&gt;
* [[Duke/Duchess]]&lt;br /&gt;
* [[Duke/Duchess Consort]]&lt;br /&gt;
* [[Philosopher]]&lt;br /&gt;
* [[Tax Collector]]&lt;br /&gt;
* [[Hammerer]]&lt;br /&gt;
* [[King Consort]]&lt;br /&gt;
* [[Queen]] (deceased)&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
|&lt;br /&gt;
* 2 [[Champions]]&lt;br /&gt;
* 14 [[Marksdwarves]] (3 Elite)&lt;br /&gt;
* 1 [[Speardwarf]]&lt;br /&gt;
* 1 [[Hammerdwarf]]&lt;br /&gt;
* 1 [[Axedwarf]]&lt;br /&gt;
* 1 [[Swordsdwarf]]&lt;br /&gt;
* 2 [[Macedwarf|Macedwarves]]&lt;br /&gt;
* 11 [[Fortress guard#The Royal Guards|Royal Guards]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Machinehall|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;I got ambitious and carefully customized the fortress and party [[Name]]s before [[embark]].&lt;br /&gt;
&lt;br /&gt;
Machinehall was built in two phases:&lt;br /&gt;
# Complex I: Single 32x32 room&lt;br /&gt;
#* [[Workshops]] along the walls&lt;br /&gt;
#* [[Stockpiles]] in the middle&lt;br /&gt;
#* [[Defense design#Goblin detour|Kinked entry passage]] with [[fortifications]] for [[marksdwarves]]&lt;br /&gt;
#* [[Well]] and [[waterfall]] in one corner&lt;br /&gt;
# Complex II: 17 15x15 levels, with a helix [[ramp]] in the center&lt;br /&gt;
#* Planned [[waterfall]] in the center of the ramp (never tested)&lt;br /&gt;
#* Each level dedicated to a specific [[industry]] or activity&lt;br /&gt;
Unfortunately, these complexes are not close together, and the transition is taking a very long time. Currently most dwarves in Machinehall can be found [[Traffic|walking in the long tunnel]] between them.&lt;br /&gt;
&lt;br /&gt;
=== Queen Saga ===&lt;br /&gt;
Eventually, Machinehall grew enough to attract the interest of royalty. After an artifact mechanism was used in a [[Road|drawbridge]], Queen Lorbam Äkiltosid arrived and proclaimed her [[Noble#Room Requirements|demands for the finest, most lavish accommodations]] imaginable. Plans for such were drawn up immediately, and work began. Not fast enough for Her Royal Highness, however; with each passing day, the [[Thought#Unhappy thoughts|indignity of her condition weighed upon the noble monarch]], until finally one day [[Insanity|it was all too much]].&lt;br /&gt;
&lt;br /&gt;
 Lorbam Äkiltosid, Queen has gone stark raving mad!&lt;br /&gt;
&lt;br /&gt;
She wandered aimlessly, overcome with despair. Where had she gone wrong? Surely road value is an excellent way to choose where to live! Eventually, the Queen threw herself into Machinehall Complex II's 17-level dry waterfall.&lt;br /&gt;
&lt;br /&gt;
 Lorbam Äkiltosid, Queen has died after colliding with an obstacle.&lt;br /&gt;
&lt;br /&gt;
And her subjects [[Tantrum|mourned]]. Or at least I assume they will; the loss of the Queen prompted me to save my game (and not come back to it yet).&lt;br /&gt;
&lt;br /&gt;
=== Other Events ===&lt;br /&gt;
* First [[Tax Collector]] [[Mandate]]d items made from unavailable [[materials]].&lt;br /&gt;
** Innocent craftdwarf was [[Justice|blamed, charged, and executed]]!&lt;br /&gt;
** Some time later, the Tax Collector was found starved to death in his [[Door#Door settings|locked]] quarters.&lt;br /&gt;
* First production of [[glass]] and [[soap]].&lt;br /&gt;
* Dug out most of bottom Z-level without finding [[magma pipe]].&lt;br /&gt;
&lt;br /&gt;
=== Celebrities ===&lt;br /&gt;
* Mayor Ïteb Zasurrïth&lt;br /&gt;
** Legendary Record Keeper&lt;br /&gt;
** Legendary Appraiser&lt;br /&gt;
** Legendary Organizer&lt;br /&gt;
** Undefeated in all [[Leader#Mayor|elections]] since founding&lt;br /&gt;
** Big fan of [[iron]] and [[doors]]&lt;br /&gt;
* First legendary mechanic, Bim Suvasbomrek&lt;br /&gt;
** Decided she was Machinehall's de facto matron&lt;br /&gt;
** Built her an office/dining/bedroom complex using her favorite materials&lt;br /&gt;
* First legendary stonecrafter, Ustuth Inethurol&lt;br /&gt;
** Creator of many excellent [[native gold]] [[mugs]]&lt;br /&gt;
* Legendary Bone Carver, Led Tizötdodók&lt;br /&gt;
** Creator of a continuous stream of [[Item quality#Masterpiece|masterpieces]]&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Champions [[Defense design#Defending the edge|patrolling edges of map]]&lt;br /&gt;
* Wall around roughly 100x100 area above ground for [[Wood cutter|safe forestry]]&lt;br /&gt;
* Museum containing [[artifacts]] and two [[Cage trap|captured]] [[Megabeast]]s&lt;br /&gt;
* 5-target archery practice hall with captive-release area near targets&lt;br /&gt;
* [[Dwarven economy|Low-income housing district]] in sandy area to handle Dwarven economy&lt;br /&gt;
* Spiral wall entrance, never tested&lt;br /&gt;
** Maximizes length of path per surface area occupied&lt;br /&gt;
** Overlooked by fortified marksdwarf tower&lt;br /&gt;
Level 0:&lt;br /&gt;
 ...........ggg..&lt;br /&gt;
 ═╦════════╦┼╦═╦═&lt;br /&gt;
 .║........║.║X║.&lt;br /&gt;
 .║.╔════╗.║.╠═╝.&lt;br /&gt;
 .║.║....║.║.║▲..&lt;br /&gt;
 .║.║.╔O.║.║.║...&lt;br /&gt;
 .║.║.║▲.║.║.║...&lt;br /&gt;
 .║.║.╚══╝.║.║...&lt;br /&gt;
 .║.║......║.║...&lt;br /&gt;
 .║.╚══════╝.║...&lt;br /&gt;
 .║..........║...&lt;br /&gt;
 .╚═════════┼╝...&lt;br /&gt;
 ................&lt;br /&gt;
Level 1:&lt;br /&gt;
 ················&lt;br /&gt;
 +++++++++++·╬╬╬+&lt;br /&gt;
 ·+········+·╬☻╬·&lt;br /&gt;
 ·+·++++++·+·╬╬╬·&lt;br /&gt;
 ·+·+····+·+·+▼··&lt;br /&gt;
 ·+·+·++·+·+·+···&lt;br /&gt;
 ·+·+·+▼·+·+·+···&lt;br /&gt;
 ·+·+·++++·+·+···&lt;br /&gt;
 ·+·+······+·+···&lt;br /&gt;
 ·+·++++++++·+···&lt;br /&gt;
 ·+··········+···&lt;br /&gt;
 ·++++++++++++···&lt;br /&gt;
 ················&lt;br /&gt;
* Pit under drawbridges, never tested&lt;br /&gt;
** 26 tiles long&lt;br /&gt;
** 9 Z-levels deep&lt;br /&gt;
* 'Bait' tunnels with war dogs, unsuccessful&lt;br /&gt;
* Exotic pet collection&lt;br /&gt;
** Rhesus macaques&lt;br /&gt;
** Groundhogs&lt;br /&gt;
** Jaguar&lt;br /&gt;
** Elk&lt;br /&gt;
** One-humped Camel&lt;br /&gt;
** Deer&lt;br /&gt;
* Housing in a [[Bedroom design|spiral pattern]]&lt;br /&gt;
** Please forgive resemblance to onerous historical symbols; goal was merely to maximize density and minimize distance from doors to center. If it's any consolation, I think theirs were clockwise instead.&lt;br /&gt;
 ║θ.║θ.║θ.║.┼..║..┼.┼..║..┼.&lt;br /&gt;
 ║..║..║..┼.╠══╬══╣.╠══╬══╣.&lt;br /&gt;
 ╩═┼╩═┼╩══╝.║.θ║θ.║.║.θ║θ.║.&lt;br /&gt;
 ...........┼..║..┼.┼..║..┼.&lt;br /&gt;
 ╦═┼╦═┼╦══╗.╠══╬══╣.╠══╬══╣.&lt;br /&gt;
 ║..║..║..║.║.θ║θ.║.║.θ║θ.║.&lt;br /&gt;
 ║θ.║θ.║θ.┼.┼..║..┼.┼..║..┼.&lt;br /&gt;
 ╬══╬══╬══╣.╠══╬══╣.╠══╬══╣.&lt;br /&gt;
 ║θ.║θ.║θ.║.║.θ║θ.║.║.θ║θ.║.&lt;br /&gt;
 ║..║..║..║.┼..║..║.║..║..║.&lt;br /&gt;
 ╩═┼╩═┼╩═┼╝.╚══╩┼═╝.╚┼═╩┼═╝.&lt;br /&gt;
 ..........X................&lt;br /&gt;
 ┼╗.╔═┼╦══╗.╔┼═╦┼═╦┼═╦┼═╦┼═╦&lt;br /&gt;
 .║.║..║..┼.║..║..║..║..║..║&lt;br /&gt;
 .║.║.θ║θ.║.║.θ║.θ║.θ║.θ║.θ║&lt;br /&gt;
 ═╣.╠══╬══╣.╠══╬══╬══╬══╬══╬&lt;br /&gt;
 .┼.┼..║..┼.┼.θ║.θ║.θ║.θ║.θ║&lt;br /&gt;
 .║.║.θ║θ.║.║..║..║..║..║..║&lt;br /&gt;
 ═╣.╠══╬══╣.╚══╩┼═╩┼═╩┼═╩┼═╩&lt;br /&gt;
 .┼.┼..║..┼.................&lt;br /&gt;
 .║.║.θ║θ.║.╔┼═╦┼═╦┼═╦┼═╦┼═╦&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Perplexedrag&amp;diff=110905</id>
		<title>User:HebaruSan/Perplexedrag</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Perplexedrag&amp;diff=110905"/>
		<updated>2010-05-18T01:02:59Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 3, Sherikunib, &amp;quot;Perplexedrag&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| The Scholarly Salves&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|318,379}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 71 [[dwarves]]&lt;br /&gt;
46 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 20 dwarves&lt;br /&gt;
7 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
| &lt;br /&gt;
* [[Mace]]&lt;br /&gt;
* [[Barrel]]&lt;br /&gt;
* [[Mug]]&lt;br /&gt;
* [[Floodgate]]&lt;br /&gt;
* [[Spear]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| [[Dungeon Master]] ([[River#Surface Rivers|surface river]])&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
| 8 [[Marksdwarves]]&lt;br /&gt;
1 [[Macedwarf]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Perplexedrag|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;=== Celebrities ===&lt;br /&gt;
* Bomrek Thobdolush, Macedwarf and [[Captain of the guard]]&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Thick forest, two aboveground rivers&lt;br /&gt;
* [[Design Strategies#3D Layout|Flat layout]], everything on 1 Z-level&lt;br /&gt;
* Very rigid grid of 7x7 rooms&lt;br /&gt;
** 3x3 workshops in each corner&lt;br /&gt;
** Attempted to site [[Workshop design|related shops and stockpiles]] near one another&lt;br /&gt;
 ╬═══┼═══╬═══┼═══╬═══┼═══╬&lt;br /&gt;
 ║WWW.SSS║SSS.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.SSS║SSS.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.SSS║SSS.WWW║WWW.WWW║&lt;br /&gt;
 ┼.......┼.......┼.......┼&lt;br /&gt;
 ║WWW.WWW║WWW.SSS║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.SSS║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.SSS║WWW.WWW║&lt;br /&gt;
 ╬═══┼═══╬═══┼═══╬═══┼═══╬&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ┼.......┼.......┼.......┼&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ║WWW.WWW║WWW.WWW║WWW.WWW║&lt;br /&gt;
 ╬═══┼═══╬═══┼═══╬═══┼═══╬&lt;br /&gt;
* First [[well]] with [[cistern]]&lt;br /&gt;
* Aboveground [[Defense guide#Walls|castle]]&lt;br /&gt;
** Archer platforms atop walls&lt;br /&gt;
** 3 [[Siege engine|ballistae]]&lt;br /&gt;
** 2 [[Siege engine|catapults]]&lt;br /&gt;
** 1 [[trade depot]]&lt;br /&gt;
** Enclosed [[farm]] field&lt;br /&gt;
** [[Drawbridge]] over channeled open-air [[refuse]] pit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Roughnessclasp&amp;diff=110904</id>
		<title>User:HebaruSan/Roughnessclasp</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Roughnessclasp&amp;diff=110904"/>
		<updated>2010-05-18T01:01:41Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! &amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 2, Dumatdodók, &amp;quot;Roughnessclasp&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| The Cloudy Salves&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|452,441}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 94 [[dwarves]]&lt;br /&gt;
156 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 18 dwarves&lt;br /&gt;
6 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
|&lt;br /&gt;
* [[Cabinet]]&lt;br /&gt;
* [[Throne]]&lt;br /&gt;
* Leather [[Clothing|vest]]&lt;br /&gt;
* [[Braies]]&lt;br /&gt;
* [[Ring]]&lt;br /&gt;
* [[Bracelet]]&lt;br /&gt;
* Leather [[Clothing|skirt]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| [[Dungeon Master]] ([[River#Surface Rivers|surface river]])&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
| 11 [[Marksdwarves]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Roughnessclasp|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;After running out of [[food]] due to not assigning [[crops]] to be grown, I set this fortress aside to start Region 3 rather than watch everyone chase rodents and [[Losing#Starvation|starve]]. Later returned to it with more expertise, got food from a [[caravan]], and managed a full recovery. Still have the in-progress save game, but stopped playing it after losing substantial progress (city walls) to a [[Init.txt#Seasonal autosave|crash]].&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Captive-[[Water|drowning chamber]], extensively used&lt;br /&gt;
* Elaborate [[Defense design#Flooded entrance|invader-drowning entrance]], never tested&lt;br /&gt;
* [[Design Strategies#3D Layout|Flat layout]] (most things on 2 Z-levels)&lt;br /&gt;
* [[Defense design#Simple 5x5 Archer's Tower|Marksdwarf towers]] with [[Archery target]]s and [[Bedroom|sleeping quarters]] underneath&lt;br /&gt;
* Passage dug under river&lt;br /&gt;
* Dug out and flooded an underground area with an above-ground river to allow underground [[fishing]] and to see if it counted as a tower-cap-enabling &amp;quot;[[underground river]]&amp;quot; (it doesn't)&lt;br /&gt;
=== Celebrities ===&lt;br /&gt;
* First legendary miner, Domas Dastotganad&lt;br /&gt;
* First legendary mason, Îton Momuzimik&lt;br /&gt;
* Pair of legendary bone carvers, Urist Inethnulral and Goden Sazirzatam&lt;br /&gt;
=== Noteworthy Occurrences ===&lt;br /&gt;
* Learned the wonders of [[cage traps]]&lt;br /&gt;
* [[Elf|Elven]] caravan stopped coming after one was lost to an [[ambush]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Roughnessclasp&amp;diff=110903</id>
		<title>User:HebaruSan/Roughnessclasp</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:HebaruSan/Roughnessclasp&amp;diff=110903"/>
		<updated>2010-05-18T00:59:32Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible collapsed&amp;quot;&lt;br /&gt;
! &amp;lt;/includeonly&amp;gt;&lt;br /&gt;
== Region 2, Dumatdodók, &amp;quot;Roughnessclasp&amp;quot; ==&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;float:right;margin-left:2em;&amp;quot; border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! Settled by&lt;br /&gt;
| The Cloudy Salves&lt;br /&gt;
|-&lt;br /&gt;
! Created [[wealth]]&lt;br /&gt;
| {{Money|452,441}}&lt;br /&gt;
|-&lt;br /&gt;
! Population&lt;br /&gt;
| 94 [[dwarves]]&lt;br /&gt;
156 [[animals]]&lt;br /&gt;
|-&lt;br /&gt;
! Deaths&lt;br /&gt;
| 18 dwarves&lt;br /&gt;
6 dogs&lt;br /&gt;
|-&lt;br /&gt;
! [[Artifacts]]&lt;br /&gt;
|&lt;br /&gt;
* [[Cabinet]]&lt;br /&gt;
* [[Throne]]&lt;br /&gt;
* Leather [[Clothing|vest]]&lt;br /&gt;
* [[Braies]]&lt;br /&gt;
* [[Ring]]&lt;br /&gt;
* [[Bracelet]]&lt;br /&gt;
* Leather [[Clothing|skirt]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Nobles]]&lt;br /&gt;
| [[Dungeon Master]] ([[River#Surface Rivers|surface river]])&lt;br /&gt;
|-&lt;br /&gt;
! [[Military]]&lt;br /&gt;
| 11 [[Marksdwarves]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
: ''([[User:HebaruSan/Roughnessclasp|main article]])''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;After running out of [[food]] due to not assigning [[crops]] to be grown, I set this fortress aside to start Region 3 rather than watch everyone chase rodents and [[Losing#Starvation|starve]]. Later returned to it with more expertise, got food from a [[caravan]], and managed a full recovery. Still have the in-progress save game, but stopped playing it after losing substantial progress (city walls) to a [[Init.txt#Seasonal autosave|crash]].&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Captive-[[Water|drowning chamber]], extensively used&lt;br /&gt;
* Elaborate [[Defense design#Flooded entrance|invader-drowning entrance]], never tested&lt;br /&gt;
* [[Design Strategies#3D Layout|Flat layout]] (most things on 2 Z-levels)&lt;br /&gt;
* [[Defense design#Simple 5x5 Archer's Tower|Marksdwarf towers]] with [[Archery target]]s and [[Bedroom|sleeping quarters]] underneath&lt;br /&gt;
* Passage dug under river&lt;br /&gt;
* Dug out and flooded an underground area with an above-ground river to allow underground [[fishing]] and to see if it counted as a tower-cap-enabling &amp;quot;[[underground river]]&amp;quot; (it doesn't)&lt;br /&gt;
=== Celebrities ===&lt;br /&gt;
* First legendary miner, Domas Dastotganad&lt;br /&gt;
* First legendary mason, Îton Momuzimik&lt;br /&gt;
* Pair of legendary bone carvers, Urist Inethnulral and Goden Sazirzatam&lt;br /&gt;
=== Noteworthy Occurrences ===&lt;br /&gt;
* Learned the wonders of [[cage traps]]&lt;br /&gt;
* [[Elf|Elven]] caravan stopped coming after one was lost to an [[ambush]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Water_pressure&amp;diff=58720</id>
		<title>40d Talk:Water pressure</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Water_pressure&amp;diff=58720"/>
		<updated>2009-11-27T04:30:29Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Fast aqueducts */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Verification of U-bend bug. [http://mkv25.net/dfma/movie-207-infinitewaternopumps] [[User:VengefulDonut|VengefulDonut]] 12:37, 7 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: Do you happen to have a save file so I can poke it a bit? --[[User:SL|SL]] 11:06, 15 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
::I don't, but it has been reliably reproducible. [[User:VengefulDonut|VengefulDonut]] 23:37, 15 January 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Deep water pressure bug? ==&lt;br /&gt;
&lt;br /&gt;
I just had an odd experience. I lucked into a map with a brook high up on a mountain slope, a deep ravine next to it with an extremely narrow mouth I could easily wall off, and goblin buildings down at the bottom of the slope. So I made a huge five-level-deep reservoir and dug a floodgate-controlled tunnel from the lowest level right into the basement of one of the goblin forts. The reservoir was filling slowly so I had the opportunity to test-fire the flood in some disposable save games while the reservoir was still only partly full; it gave the wonderful drowned-goblin corpse-fountain effect I was hoping for. But once the reservoir had finished filling up to 7 on the highest level, even with the brook that was feeding it, opening the floodgate produced only a disappointing unpressurized trickle. It wasn't until I dug a single channel square at the edge of the reservoir, introducing a single non-7 square to the uppermost water layer, that the torrent instantly let loose with all its pressurized might. A known issue? Some of this page is a bit too arcane for me to follow right now so I'm not sure if it's mentioned. [[User:Bryan Derksen|Bryan Derksen]] 01:59, 28 June 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:That's almost certainly because it's being treated as part of the brook, since brooks and rivers don't produce (and even neutralize) water pressure. --[[User:N9103|Edward]] 14:49, 28 June 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Ah, so if I closed the floodgates feeding the reservoir to sever the connection with the brook it'd pressurize? Interesting physics in DF world. :) [[User:Bryan Derksen|Bryan Derksen]] 03:09, 30 June 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Are aquifers treated the same way?  I have a pond fed by digging stairs up into an aquifer, and dug out the wrong tiles around my pump.  My entire fort should be submerged, but all I got was a pond at permanent 7/7.&lt;br /&gt;
::Aquifers don't generate water pressure, and don't fill z-levels higher than the one on which they were originally found. [[User:Aosher|Aosher]] 18:29, 12 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==To clear out==&lt;br /&gt;
 Water sources attempt to generate water in tiles adjacent to pressurized tiles. They will not generate water in tiles above&lt;br /&gt;
 pressurized tiles unless the water source has nowhere else to generate any water, and they will never generate water above &lt;br /&gt;
 the water source's z-level. &lt;br /&gt;
What exactly does this mean? If I understand right, then it's a lie--[[User:Dorten|Dorten]]&lt;br /&gt;
&lt;br /&gt;
:What do you think conflicts with the model? [[User:VengefulDonut|VengefulDonut]] 02:43, 9 February 2009 (EST)&lt;br /&gt;
::Things like this (side view)&lt;br /&gt;
&lt;br /&gt;
 ≈≈≈≈≈≈≈# &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;≈≈≈&amp;lt;/font&amp;gt;&lt;br /&gt;
 ≈≈≈≈≈≈≈#≈≈≈≈≈≈++&lt;br /&gt;
 ≈≈≈≈≈≈≈###≈#####&lt;br /&gt;
 ≈≈≈≈≈≈≈≈≈≈≈#&lt;br /&gt;
 ############&lt;br /&gt;
The blue water tiles should not be filled before the plus marked ones (empty). But this situation can easily be made ingame--[[User:Dorten|Dorten]] 07:07, 18 March 2009 (UTC)&lt;br /&gt;
==Water U - BUG==&lt;br /&gt;
http://mkv25.net/dfma/movie-1407-pressurebugwithfortification&lt;br /&gt;
&lt;br /&gt;
 W≈≈≈###  ## z  0&lt;br /&gt;
 ###≈###≈### z -1&lt;br /&gt;
 ###≈###≈### z -2&lt;br /&gt;
 ###≈≈≈≈≈### z -3&lt;br /&gt;
&lt;br /&gt;
 W - Water from a water source&lt;br /&gt;
 # - Solid wall&lt;br /&gt;
 ≈ - Water&lt;br /&gt;
&lt;br /&gt;
The water does not go up to the z-level it came from.&lt;br /&gt;
:Note that this will only happen if the water is able to drain on its source level (e.g. you tapped the side of a river) - if the water on the left side is unable to escape in any other direction (e.g. if you dam the river), the right side of the U-bend '''will''' fill up. --[[User:Quietust|Quietust]] 15:34, 9 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== U Bend Bug ==&lt;br /&gt;
&lt;br /&gt;
I found a quirky Pressure bug using a U-bend into my main reservoir. I have it tapped directly into the river with a floodgate (1) right at the river to control things. The surprise was when I went to irrigate my fields, I was pulling water out through (2) to fill a vault to irrigate my fields with since the main reservoir was way too large for this purpose. So I had left (1) open expecting it to naturally refill as quickly as I drained it. It did not. It instead pulled the water out filling my vault, emptied the main reservoir and sat there doing nothing. (1) is wide open still, so it SHOULD be refilling, but isn't. Toggling (1) closed and reopened seems to reset the pressure and allow the main reservoir to fill.&lt;br /&gt;
   &lt;br /&gt;
: ≈≈≈1≈######&lt;br /&gt;
: ####≈#≈≈≈##&lt;br /&gt;
: ####≈#≈≈≈##&lt;br /&gt;
: ####≈≈≈≈≈2≈&lt;br /&gt;
: ######≈≈≈##&lt;br /&gt;
: ###########&lt;br /&gt;
&lt;br /&gt;
It's a little unclear on why it behaves this way. It has something to do with multiple floodgates, when one opens, it doesn't seem to bother to check the state of other floodgates that might also affect pressure on this waterway. It may also be important that the top of my reservoir is lower than the river itself, so once it's done filling it may be shutting off the water flow logic since it's full now and doesn't need to waste CPU cycles, and then forgetting to check it again when I pull water away from that.[[User:Doctorzuber|Doctorzuber]] 09:12, 12 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== overflow behaviour ==&lt;br /&gt;
&amp;quot;to a z-level one level lower than the source.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
That is just plain contradicting the next sentence. Also, I have read the article at http://www.gamasutra.com/view/feature/3549/interview_the_making_of_dwarf_.php?page=10 , but, please, explain then:&lt;br /&gt;
&lt;br /&gt;
On level '1' I have a tunnel filled with water, steadily being refilled by a pump. It drops its content one level down ('0') through a channel tile, into a room that is open to level '1' via  a stairway. The room fills with water and when all tiles are at 7/7 water starts pouring out back to level '1' - lots of water. Of course this makes perfect sense. If there is another mechanism at work that has nothing to do with the pressure model (&amp;quot;Pumps do not create pressure&amp;quot;), then there should still be a warning, or a rewording because, seriously, how is that not &amp;quot;water pressure&amp;quot; --[[User:Birthright|Birthright]] 16:50, 12 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:By not creating it, it means that the water coming out is at zero pressure. By dropping the water, it can now gain pressure if any of the tiles above it are at 7/7. -[[User:N9103|Edward]] 19:25, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Oceans ==&lt;br /&gt;
&lt;br /&gt;
I'm torn on whether to add something specifically about oceans on here. I tunneld into an ocean three z-levels below the ocean's surface with a door which I figured would allow my miner to escape with minor flood beeing the only damage. When I breached the ocean, the room immediatly filled with water. I thought that was odd but I let my miner do his this, and as soon as he opened the door the game went to 0 FPS for about 2 minutes and suddenly my whole fortress below that points (a good 6 z-levels with some sizable rooms) was 7/7. instantly in game time. You can see why I'm tempted to add a warning. [[User:Planetofthedwarves|Planetofthedwarves]] 18:40, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Damn, you got romped.  Definetly add that warning!--[[User:CrazyMcfobo|CrazyMcfobo]] 18:56, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:That's no different than would happen with any other large body of water with several Z-levels above where you breached. Fill a giant (x&amp;amp;y, not Z) tower that reaches into the ground with water, and then breach it.. You'll get the same instant fill to a certain level. -[[User:N9103|Edward]] 19:24, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fast aqueducts ==&lt;br /&gt;
&lt;br /&gt;
I'm hoping to transport water a long distance quickly. Side view of initial layout:&lt;br /&gt;
 ▒ target ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒≈≈river≈≈▒&lt;br /&gt;
 ▒▒ area ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&lt;br /&gt;
The obvious naive approach is to dig a tunnel leading to the river:&lt;br /&gt;
          _____________________&lt;br /&gt;
 ▒ target                       ≈≈river≈≈▒&lt;br /&gt;
 ▒▒ area ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
&lt;br /&gt;
My overall impression from this page is that the water might move faster if a pump on a higher Z-level is involved:&lt;br /&gt;
          __________________▒ %%&lt;br /&gt;
 ▒ target                     ▒▒≈≈river≈≈▒&lt;br /&gt;
 ▒▒ area ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
Is that right? Does it help to add more pumps further down the tunnel to re-pressurize? And is there additional risk of flooding?&lt;br /&gt;
--[[User:HebaruSan|HebaruSan]] 04:30, 27 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:63.249.116.37&amp;diff=58696</id>
		<title>User talk:63.249.116.37</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:63.249.116.37&amp;diff=58696"/>
		<updated>2009-11-26T17:35:11Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: i thought the 'hi' template worked :(&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to this wiki! Dwarf Fortress rapidly becomes more complicated, and we're always glad to have new writers.&amp;lt;br&amp;gt;&lt;br /&gt;
Since you should try to follow wiki standards, and you probably don't know ours yet, we've made a list of basic guidelines. Note that this is a template, not a customized message for you.&lt;br /&gt;
* To tell us who you are when you talk, please sign your posts on discussion pages by typing &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;--~~~~&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; after your posts. This can also be inserted with the [[Image:Button sig756222.png]] button if JavaScript is enabled.&lt;br /&gt;
* Don't put a question mark in the title of a page. Question marks mess things up, and your page will be moved to a different name.&lt;br /&gt;
* When making comments on a talk page, use one more colon before each line in your comment than was used in the comment you reply to. In general, put exactly one empty line between comments by different users but do not use blank lines inside of a comment.&lt;br /&gt;
* Avoid making many small edits to a page. Instead, try to make one large edit. This makes the history of the page a lot easier to read.&lt;br /&gt;
* Don't edit the user page of another user. If you want to tell them something, add the comment to their talk page.&lt;br /&gt;
* If you put a comment at the bottom of a talk page with section headers, you've probably put it in a section. Putting things in the wrong sections is confusing. You can create a section!&lt;br /&gt;
* Generally, [[Dwarf_Fortress_Wiki:Community_Portal#We_are_doing_this.21_Let_us_do_it_right.|read and follow the rules.]] They're like a little constitution, except not boring! Really, read them.&lt;br /&gt;
&amp;lt;div align=center&amp;gt;&amp;lt;div style=&amp;quot;width: 28em; padding: 0.5em; margin-bottom: 0.5em; margin-top: 0.5em; border: 1px solid #ccc; background: #eee; text-align: center&amp;quot;&amp;gt;''&amp;quot;You have been processed! Go forth, now, and edit!&amp;quot; --[[User:Savok|Savok]]''&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Many or all of your edits have been reverted because they corrupted the pages by inserting this at random points:&lt;br /&gt;
 Proxy-Connection: keep-alive&lt;br /&gt;
 Cache-Control: max-age=0 &lt;br /&gt;
Please check your browser and proxy settings to see if you can fix this. Thanks!&lt;br /&gt;
--[[User:HebaruSan|HebaruSan]] 17:34, 26 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User_talk:63.249.116.37&amp;diff=58695</id>
		<title>User talk:63.249.116.37</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User_talk:63.249.116.37&amp;diff=58695"/>
		<updated>2009-11-26T17:34:40Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: please fix your broken proxy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Hi}}&lt;br /&gt;
&lt;br /&gt;
Many or all of your edits have been reverted because they corrupted the pages by inserting this at random points:&lt;br /&gt;
 Proxy-Connection: keep-alive&lt;br /&gt;
 Cache-Control: max-age=0 &lt;br /&gt;
Please check your browser and proxy settings to see if you can fix this. Thanks!&lt;br /&gt;
--[[User:HebaruSan|HebaruSan]] 17:34, 26 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Embark&amp;diff=58603</id>
		<title>40d:Embark</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Embark&amp;diff=58603"/>
		<updated>2009-11-24T02:26:11Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: organize by topic, factor out redundancies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Embark''' is the moment at the very beginning of the game, before actual game play begins, when you and your initial 7 dwarves:&lt;br /&gt;
# Choose a site, possibly using the [[site finder|site {{k|f}}inder]].&lt;br /&gt;
# Assign starting [[skill]]s to each dwarf.&lt;br /&gt;
# Select an initial load of [[supplies|supplies and equipment]].&lt;br /&gt;
# Arrive at the site with your wagon full of supplies.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Embark options&amp;quot; can refer to any of the first three steps.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Information at embark&amp;quot; can include:&lt;br /&gt;
* Viewing your [[region]] on the World and Regional maps.&lt;br /&gt;
* Viewing your Local map to:&lt;br /&gt;
** Confirm the presence of important features, such as [[magma]] vents or [[rivers]].&lt;br /&gt;
** Note these features' locations.&lt;br /&gt;
* Using the {{k|tab}} and {{k|F1}}, {{k|F2}}, {{k|F3}}, etc. keys to view your:&lt;br /&gt;
** Stone [[layer]]s&lt;br /&gt;
** [[Biome]]s and climate&lt;br /&gt;
** Starting dwarven civilization (and choose if more than one) &lt;br /&gt;
** Neighboring civilizations and relationships with them&lt;br /&gt;
&lt;br /&gt;
''(Need a quick list of Embark screen features, with links to full pages)''&lt;br /&gt;
&lt;br /&gt;
Example usages:&lt;br /&gt;
* &amp;quot;I made a big mistake '''at embark''' when I forgot...&amp;quot;&lt;br /&gt;
* &amp;quot;I knew I was in trouble when I got attacked '''on embark'''...&amp;quot;&lt;br /&gt;
* &amp;quot;This is one of the choices you need(ed) to make '''at embark''', before the game...&amp;quot;&lt;br /&gt;
* &amp;quot;'''After embark''' the first thing you want to do is...&amp;quot;&lt;br /&gt;
* &amp;quot;Once you've '''embarked''', that's when the [[fun]] starts...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Before you unpause ==&lt;br /&gt;
Before you start the game by unpausing, check the following things to make sure your young fortress runs smoothly and avoids becoming a tiny, tiny tomb. Particularly important in less hospitable [[biome]]s and other dangerous sites. &lt;br /&gt;
&lt;br /&gt;
* Figure out where you're gonna dig your fortress. Look around, get a feel for what is visible, and what the terrain can do for (or to) you. Think about it while you do the rest and come back to it as you need to.&lt;br /&gt;
* Press {{k|u}} to check for the presence of hostile wild [[animal]]s. (However, be aware that creatures can appear from off-map after the game has been going for a while.) &lt;br /&gt;
** Activate military if desired.&lt;br /&gt;
* Press {{k|c}} to check for the presence of other civilizations.&lt;br /&gt;
** In that same screen ({{k|u}}nits), {{k|c}}enter on a specific units and set their preferences, especially [[labor]] designations.  (You can also {{k|v}}iew them from the map screen.)  &lt;br /&gt;
*** Make sure at least one dwarf has the [[carpenter]] labor designated to break down the [[wagon]].&lt;br /&gt;
***Add any other unskilled labors you want active.&lt;br /&gt;
***If the environment is particularly dangerous, you may consider disabling the Hunting and/or Fishing labors at first to keep your dwarves from wandering too far afield.&lt;br /&gt;
** You can also give them custom titles or nicknames if you like.&lt;br /&gt;
* Press {{k|q}} and mark the [[wagon]] for removal.&lt;br /&gt;
* Press {{k|o}} for orders and options.  Toggle to suit your preferences.&lt;br /&gt;
** Consider {{k|r}}efuse orders&lt;br /&gt;
** Consider fishing/drinking {{k|z}}one options.&lt;br /&gt;
* Press {{k|i}} and designate a [[meeting area]] for animals and idle dwarves (or the wagon's location will be the default).&lt;br /&gt;
* Press {{k|n}} and reassign [[noble]] positions ''if desired''.&lt;br /&gt;
* Press {{k|z}} and forbid the kitchen from cooking alcohol and plump helmets if desired.&lt;br /&gt;
* Press {{k|d}} to designate areas for plant gathering, wood cutting, and/or stone smoothing if needed/desired.  (Stone smoothing is good for getting rid of boulders that impede outdoor farming.)&lt;br /&gt;
** Press {{k|d}}, then {{k|o}} to place traffic restrictions.  Things to watch for: saplings, wild plants, dangerous shortcuts (like near magma or cave creatures).  Consider encouraging your dwarves to traffic specific areas to minimize damage to subsequent growth.&lt;br /&gt;
* Press {{k|p}} to create [[stockpile]]s for wild plants, [[wood]], and/or [[refuse]].&lt;br /&gt;
* {{k|b}}uild any {{k|w}}orkshops you feel that you need immediately.&lt;br /&gt;
* {{k|d}}esignate where your miner(s) will dig in first. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Location]]&lt;br /&gt;
* [[Starting build]]&lt;br /&gt;
* [[What should I build first]]&lt;br /&gt;
* [[Defense guide]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Interface]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Embark&amp;diff=58599</id>
		<title>40d:Embark</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Embark&amp;diff=58599"/>
		<updated>2009-11-24T01:36:07Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: Undo revision 58598 by 63.249.116.37 (Talk) looks like someone's proxy doesn't like wikis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''&amp;quot;Embark&amp;quot;''' is a general term that refers to the very beginning of the game, during or immediately following site selection but before actual game play begins. It is used to refer to any choices during that period - site selection, equipment or [[skill]]s selected for your starting 7 dwarfs (or the &amp;quot;Play Now&amp;quot; option), and the actual &amp;quot;landing&amp;quot; on your new site, the 7 dwarfs and any animals around the wagon filled with supplies.&lt;br /&gt;
&lt;br /&gt;
Examples - &lt;br /&gt;
&lt;br /&gt;
:* &amp;quot;I made a big mistake at embark when I forgot...&amp;quot;&lt;br /&gt;
:* &amp;quot;I knew I was in trouble when I got attacked on embark...&amp;quot;&lt;br /&gt;
:* &amp;quot;This is one of the choices you need(ed) to make at embark, before the game...&amp;quot;&lt;br /&gt;
:* &amp;quot;After embark the first thing you want to do is...&amp;quot;&lt;br /&gt;
:* &amp;quot;Once you've embarked, that's when the [[fun]] starts...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Embark options&amp;quot; can refer to &lt;br /&gt;
:* choosing starting skills, equipment and supplies (aka [[Starting build]]),&lt;br /&gt;
:* site selection, possibly using the &amp;lt;f&amp;gt;ind function to help locate an acceptable site for your fortress.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Information at embark&amp;quot; can include:&lt;br /&gt;
* looking at the Wold and Regional map to view the general [[region]] you will be playing in&lt;br /&gt;
* looking at the Local map to confirm the presence of and note the location of important features of your game map, such as [[magma]] vents or [[rivers]].&lt;br /&gt;
* using the {{k|f}} key to &amp;quot;find&amp;quot; a site to your liking&lt;br /&gt;
* using the {{k|tab}} key to view your:&lt;br /&gt;
:* stone [[layer]]s, by using the various {{k|F1}}, {{k|F2}}, {{k|F3}}, &amp;amp; etc. keys &lt;br /&gt;
:* various [[biome]]s, using the same keys, to check for stone layers and climate&lt;br /&gt;
:* view and (if more than one) choose your starting dwarven civilization.&lt;br /&gt;
:* view neighboring civilizations and relationships with them&lt;br /&gt;
&lt;br /&gt;
''(Need a quick list of Embark screen features, with links to full pages)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Before you unpause===&lt;br /&gt;
&lt;br /&gt;
A checklist of what to do before you actually start the game by unpausing to help make sure your young fortress runs smoothly and avoids becoming a tiny, tiny tomb. Particularly important in less hospitable [[biome]]s and other dangerous sites. &lt;br /&gt;
&lt;br /&gt;
* First thing, figure out where you're gonna dig your fortress. Look around, get a feel for what is visible, and what the terrain can do for (or to) you. Think about it while you do the rest, come back to it as you need to...&lt;br /&gt;
* Press {{k|u}} to check for the presence of hostile wild [[animal]]s.  (However, be aware that creatures can appear from off-map after the game has been going for a while.) &lt;br /&gt;
:* Activate military if desired.&lt;br /&gt;
* Press {{k|c}} to check for the presence of other civilizations.&lt;br /&gt;
:* In that same screen ({{k|u}}nits), {{k|c}}enter on a specific units and set their preferences, especially [[labor]] designations.  (You can also {{k|v}}iew them from the map screen.)  &lt;br /&gt;
::* Make sure at least one dwarf has the [[carpenter]] labor designated to break down the [[wagon]].&lt;br /&gt;
::*Add any other unskilled labors you want active.&lt;br /&gt;
::*If the environment is particularly dangerous, you may consider disabling the Hunting and/or Fishing labors at first to keep your dwarves from wandering too far afield.&lt;br /&gt;
:* You can also give them custom titles or nicknames if you like.&lt;br /&gt;
* Press {{k|q}} and mark the [[wagon]] for removal.&lt;br /&gt;
* Press {{k|o}} for orders and options.  Toggle to suit your preferences.&lt;br /&gt;
:* Consider {{k|r}}efuse orders&lt;br /&gt;
:* Consider fishing/drinking {{k|z}}one options.&lt;br /&gt;
* Press {{k|i}} and designate a [[meeting area]] for animals and idle dwarves (or the wagon's location will be the default).&lt;br /&gt;
* Press {{k|n}} and reassign [[noble]] positions ''if desired''.&lt;br /&gt;
* Press {{k|z}} and forbid the kitchen from cooking alcohol and plump helmets if desired.&lt;br /&gt;
* Press {{k|d}} to designate areas for plant gathering, wood cutting, and/or stone smoothing if needed/desired.  (Stone smoothing is good for getting rid of boulders that impede outdoor farming.)&lt;br /&gt;
:* Press {{k|d}}, then {{k|o}} to place traffic restrictions.  Things to watch for: saplings, wild plants, dangerous shortcuts (like near magma or cave creatures).  Consider encouraging your dwarves to traffic specific areas to minimize damage to subsequent growth.&lt;br /&gt;
* Press {{k|p}} to create [[stockpile]]s for wild plants, [[wood]], and/or [[refuse]].&lt;br /&gt;
* {k|b}}uild any {{k|w}}orkshops you feel that you need immediately.&lt;br /&gt;
* {{k|d}}esignate where your miner(s) will dig in first. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''See also:''' &lt;br /&gt;
:* [[What_should_I_build_first]]&lt;br /&gt;
:* [[Defense guide]] (et al)&lt;br /&gt;
:* [[Starting build]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''See Also:'''&lt;br /&gt;
&lt;br /&gt;
:* [[location]]&lt;br /&gt;
:* [[starting build]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:How_do_I_construct_a_wall_from_a_particular_direction&amp;diff=58535</id>
		<title>40d:How do I construct a wall from a particular direction</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:How_do_I_construct_a_wall_from_a_particular_direction&amp;diff=58535"/>
		<updated>2009-11-22T05:10:56Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: add diagonal planning strategy, tried to guess which &amp;quot;earlier versions&amp;quot; were being referenced based on versions category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It often happens that you need to construct a wall, but your dwarf insists on standing on the wrong side of it during construction, trapping himself.&lt;br /&gt;
&lt;br /&gt;
== Diagonal method{{v|0.28.181.40d}} ==&lt;br /&gt;
Dwarves will only build walls from a non-diagonally adjacent square.&lt;br /&gt;
  @&lt;br /&gt;
 @░@ &amp;lt;-- to build this wall, a dwarf will only stand at one of the @ signs&lt;br /&gt;
  @&lt;br /&gt;
If you consider this when planning constructions, you can ensure that they are built in the right order:&lt;br /&gt;
# Designate the walls that you want constructed.&lt;br /&gt;
# Find places where the builder might be trapped.&lt;br /&gt;
# Plan a diagonal &amp;quot;escape route&amp;quot; from that area, and {{k|q}}→{{k|s}}uspend the tiles along that path.&lt;br /&gt;
# Wait for the non-suspended walls to be built.&lt;br /&gt;
# Un-suspend the suspended walls.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
Suppose you want to build a 3x3 ring of walls, enclosing a central square.&lt;br /&gt;
 ░░░&lt;br /&gt;
 ░+░&lt;br /&gt;
 ░░░&lt;br /&gt;
If you designate it all at once, it is possible for the first seven walls to be constructed this way:&lt;br /&gt;
 ░░░&lt;br /&gt;
 ░@+@&lt;br /&gt;
 ░░░&lt;br /&gt;
Your builder might stand at either @ sign to finish the last wall, and if he picks the one in the middle, he'll be trapped. If you're unlucky, your first sign that this has happened will be the alert about him starving to death.&lt;br /&gt;
&lt;br /&gt;
However, if you {{k|s}}uspend construction of the northeast corner, you'll end up with this:&lt;br /&gt;
   @&lt;br /&gt;
 ░░+@&lt;br /&gt;
 ░+░&lt;br /&gt;
 ░░░&lt;br /&gt;
This time, both of the places where your builder might stand to finish the last wall are outside of the ring, so you can be confident that he won't be trapped.&lt;br /&gt;
&lt;br /&gt;
== Suspended construction method{{v|0.27.176.38c}} ==&lt;br /&gt;
# Press {{k|b}}→{{k|C}}→{{k|w}}&lt;br /&gt;
# Designate a &amp;quot;temporary&amp;quot; wall to be built in the location where you do ''not'' want the dwarf to stand&lt;br /&gt;
# Open the Set Building Tasks/Prefs menu, {{k|q}}&lt;br /&gt;
# Move over the temporary wall&lt;br /&gt;
# {{k|s}}uspend its construction&lt;br /&gt;
# Build your other object (wall, floodgate, etc.) like normal&lt;br /&gt;
# Wait for this other object to be fully constructed&lt;br /&gt;
# Open the Set Building Tasks/Prefs menu again, {{k|q}}&lt;br /&gt;
# Move over the temporary wall&lt;br /&gt;
# Cancel its construction {{k|x}}&lt;br /&gt;
&lt;br /&gt;
This does not work in all situations; sometimes you cannot specify that you want a wall built in a certain location due to what is already built there.  Specifying other structures instead of a wall may work, if any of them are permitted. You could also place a [[statue]] in the location where the dwarf isn't supposed to stand.&lt;br /&gt;
&lt;br /&gt;
== Traffic restriction method{{v|0.27.169.33g}} ==&lt;br /&gt;
&lt;br /&gt;
# Open the Designate menu {{k|d}}&lt;br /&gt;
# Select Set Traffic Areas {{k|o}}&lt;br /&gt;
# Press {{k|r}} to select &amp;quot;Restricted Traffic Area&amp;quot;&lt;br /&gt;
# Designate the squares you '''don't''' want the dwarf to stand on.  &lt;br /&gt;
&lt;br /&gt;
Now, he won't stand there while building the wall.  You can optionally remove the designation after the wall is built.&lt;br /&gt;
&lt;br /&gt;
{{Buildings FAQ}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Floor&amp;diff=58534</id>
		<title>40d:Floor</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Floor&amp;diff=58534"/>
		<updated>2009-11-22T04:31:05Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: replace redundant keystrokes with link, some other clarifications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A '''floor''' is a [[map tile]] that creatures can walk on. A floor is formed:&lt;br /&gt;
# naturally, as the ground (typically [[grass]] or a type of [[soil]] or [[stone]]),&lt;br /&gt;
# by constructing walls (thus creating a floor on the level above), or &lt;br /&gt;
# by [[#Construction|constructing floors]].&lt;br /&gt;
&lt;br /&gt;
Floors enclose spaces making the tiles below them [[inside]].&lt;br /&gt;
&lt;br /&gt;
== Construction ==&lt;br /&gt;
Floors may be built using {{k|b}}→{{k|C}}→{{k|f}}, then {{k|u}}, {{k|k}}, {{k|m}} and {{k|h}} to designate a rectangular area.  Building the floor requires either the [[Masonry]] skill (for [[stone]] and [[glass]] floors), the [[Carpenter]] skill (for [[wood]] floors), or any of the [[metalsmith]] skills (for [[metal]] floors).&lt;br /&gt;
&lt;br /&gt;
Floors can be constructed on top of existing natural floors; this distinction is subtle but allows for 'paving' (not to be confused with building a [[road]]!). Note that designated constructions, such as stairs dug out of natural soil, can be floored over. Beware the possibility of sealing in your fort when paving your entry hall. &lt;br /&gt;
&lt;br /&gt;
Constructed floors:&lt;br /&gt;
* count as [[construction]]s and cannot have [[wall]]s built upon them.&lt;br /&gt;
* can have other types of buildings built upon them, such as workshops.&lt;br /&gt;
* can be [[irrigation|muddied]] and subsequently [[farming|farmed]].&lt;br /&gt;
* [[cave-in]] when unsupported, punching through any floor tile in their way.&lt;br /&gt;
* cannot be [[smooth]]ed or [[Engraving|engraved]].&lt;br /&gt;
&lt;br /&gt;
== Risk of clogging ==&lt;br /&gt;
Underground, muddied constructed floors can have [[tower-cap]] trees to grow on them if an [[underground river]] has been discovered, just like muddied natural floors. This can wreak havoc on reservoirs if a tree grows where a floodgate wants to close or blocks a narrow access hall.&lt;br /&gt;
&lt;br /&gt;
One method to prevent growth is to build a paved [[road]] over any muddy floors. This can be a good use for all that extra stone.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
*[[Digging]]&lt;br /&gt;
&lt;br /&gt;
{{Buildings}}&lt;br /&gt;
[[Category:Constructions]]&lt;br /&gt;
[[Category:Map tiles]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macros_and_keymaps&amp;diff=58516</id>
		<title>40d:Macros and keymaps</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macros_and_keymaps&amp;diff=58516"/>
		<updated>2009-11-21T18:04:27Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Dumping */ link to orphaned guidumper&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing.  Although the game has no internal macro/keymap system (except in alpha version 40d12), using an external program can save you a great deal of time when dumping, rewalling, designating, and so forth.&lt;br /&gt;
&lt;br /&gt;
#  Go to [[Utilities#AutoHotKey]] and download AutoHotKey.  Installation is simple and the program uses few system resources.&lt;br /&gt;
#  Write macro scripts (file type .ahk), which may contain any number of commands.  You activate scripts by double-clicking .ahk files and deactivate them by right-clicking the AutoHotKey icon on the task bar.  Both of these can be done at any time - even right in the middle of a game.  AutoHotKey also allows for automated activation of scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Scripts==&lt;br /&gt;
Users may experience some issues in getting scripts to work, particularly when using looping scripts when experiencing low frame-rates.&lt;br /&gt;
* If experiencing low frame-rates, try adding delays (&amp;quot;Sleep 100&amp;quot; to pause for 100 milliseconds for example) within loops to allow the interface to keep up. If there are nested loops, sometimes adding a pause at the end of an inner loop is all that is needed to flush the keyboard buffer&lt;br /&gt;
* Make sure that Dwarf Fortress maintains focus. IM windows are the enemy! Who needs friends anyhow? You've got Dwarf Fortress.&lt;br /&gt;
* This may go without saying, but most macros assume standard key-mappings. If you're using non-standard ones, you may have to edit the macro to get it to work.&lt;br /&gt;
* Visiting liaisons can bring up screens that eat keystrokes, throwing a long-looping script out-of-phase with where it expects the game to be.  Wait for the farewell screen before running a long script.&lt;br /&gt;
* The &amp;lt;B&amp;gt;SendPlay&amp;lt;/B&amp;gt; function supports keys that the &amp;lt;B&amp;gt;Send&amp;lt;/B&amp;gt; function does not, for example {{key|Shift-Enter}}.  According to the AutoHotKey documentation, &amp;lt;B&amp;gt;SendPlay&amp;lt;/B&amp;gt; may also be better at preventing dropped keystrokes.&lt;br /&gt;
&lt;br /&gt;
== [http://sun2design.com/quickfort/ Quickfort] ==&lt;br /&gt;
&lt;br /&gt;
Quickfort is an AutoHotkey-based utility for Dwarf Fortress that helps you build fortresses from &amp;quot;blueprint&amp;quot; .CSV files (comma separated values). These files are easily created and edited in an app like Excel. Most building-oriented DF commands are supported through the use of multiple .CSV files to describe the different phases of DF construction (designation, building, stockpiles, and making adjustments). Many of the examples below can be reproduced in Quickfort.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Built-in Macros ==&lt;br /&gt;
&lt;br /&gt;
With the release of df_28_181_40d13, Dwarf Fortress supports macros without any outside program. They can be created by hitting escape to access the options menu and choosing the Key Bindings section. Once in the Key Bindings menu hit Shift+Tab to open the macro screen. The macros you create here are saved in the file &amp;quot;\data\init\interface.txt&amp;quot;. Adding the following to the end of that file will create a macro that selects every item on the trade screen when you hit the tilde key (`).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[BIND:MACRO0]&lt;br /&gt;
[SYM:`]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:STANDARDSCROLL_DOWN:1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Performance can be increased by changing the macro pause, MACRO_MS, from the default 150ms per command to zero.  Most dig macros can be created using combinations of the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[MACRO:CURSOR_UP:1]&lt;br /&gt;
[MACRO:CURSOR_DOWN:1]&lt;br /&gt;
[MACRO:CURSOR_LEFT:1]&lt;br /&gt;
[MACRO:CURSOR_RIGHT:1]&lt;br /&gt;
[MACRO:SELECT:1]&lt;br /&gt;
[MACRO:DESIGNATE_DIG:1]&lt;br /&gt;
[MACRO:DESIGNATE_UNDO:1]&lt;br /&gt;
[MACRO:CURSOR_UP_FAST:1]&lt;br /&gt;
[MACRO:CURSOR_DOWN_FAST:1]&lt;br /&gt;
[MACRO:CURSOR_LEFT_FAST:1]&lt;br /&gt;
[MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
[MACRO:MACRO123:1]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Most of these should be self-explanatory. Each command is followed with a quantity.  To call other macros, use &amp;lt;pre&amp;gt;[MACRO:MACRO###:1]&amp;lt;/pre&amp;gt; Each new macro begins with a bind command, consisting of BIND, the macro number, and a description:&lt;br /&gt;
&amp;lt;pre&amp;gt;[BIND:MACRO11:dig_round_room]&amp;lt;/pre&amp;gt;  Spaces are not allowed in the description{{verify}}.  To bind this macro to a key, SYM is used.&amp;lt;pre&amp;gt;[SYM:Ctrl+Right]&amp;lt;/pre&amp;gt; Ctrl, Alt, and Shift combinations are allowed, but not chords with more than one{{verify}}, like Ctrl+Shift+Right.  Also, the windows, or meta key, does not appear to be supported{{verify}}. Macros appear to only be terminated by the start of a new macro (BIND command) or the end of the interface.txt file.&lt;br /&gt;
&lt;br /&gt;
Visit this [http://www.bay12games.com/forum/index.php?topic=40751.0 forum post] for additional macros, and discussion on macro creation.&lt;br /&gt;
&lt;br /&gt;
== AutoHotKey Examples ==&lt;br /&gt;
&lt;br /&gt;
===Dumping===&lt;br /&gt;
&lt;br /&gt;
====[[GuiDumper.ahk]]====&lt;br /&gt;
This script allows the user to specify a range of squares to dump.&lt;br /&gt;
&lt;br /&gt;
====Stock Screen Dump====&lt;br /&gt;
Taken from an old version of [[User:Jackard|Jackard's user page]].&lt;br /&gt;
&lt;br /&gt;
To use, first have your bookeeper do enough desk work so you can view individual items in the stocks listing.  Then bring it up and press del to quickly mark stuff.  To adjust the key repeat rate, edit the KEY_HOLD_MS value in \data\init\init.txt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
del::&lt;br /&gt;
IfWinActive Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
  send d{down}&lt;br /&gt;
  return&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  send {del}&lt;br /&gt;
  return&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Designation Dump====&lt;br /&gt;
A dumping script by [[User:Dukederek|Dukederek]]:&lt;br /&gt;
&lt;br /&gt;
This script uses a system similar the commands in the designations menu to mark most of the contents of a large area for dumping. [[User:Dukederek|My talk page]] has more detailed instruction.&lt;br /&gt;
&lt;br /&gt;
Essentially you need to create two text files with the following titles and content. When playing DF it is safe to have blockdumpinit running constantly as long as you dont plan on using the ctrl-d combination for something else.&lt;br /&gt;
&lt;br /&gt;
'''blockdumpinit.ahk'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
^d::&lt;br /&gt;
RunWait, &amp;quot;blockdumpmain.ahk&amp;quot;&lt;br /&gt;
Return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''blockdumpmain.ahk'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SetKeyDelay 25&lt;br /&gt;
return::&lt;br /&gt;
Send k&lt;br /&gt;
return&lt;br /&gt;
up::&lt;br /&gt;
Send w&lt;br /&gt;
return&lt;br /&gt;
left::&lt;br /&gt;
Send a&lt;br /&gt;
return&lt;br /&gt;
down::&lt;br /&gt;
Send s&lt;br /&gt;
return&lt;br /&gt;
right::&lt;br /&gt;
Send d&lt;br /&gt;
return&lt;br /&gt;
q::&lt;br /&gt;
ExitApp&lt;br /&gt;
return&lt;br /&gt;
shift::&lt;br /&gt;
x := 0&lt;br /&gt;
y := 1&lt;br /&gt;
Loop{&lt;br /&gt;
Input, keypress, B, {esc} , w,a,s,d,k,q&lt;br /&gt;
if keypress = w&lt;br /&gt;
{&lt;br /&gt;
y := --y&lt;br /&gt;
Send {up}&lt;br /&gt;
continue&lt;br /&gt;
}else if keypress = s&lt;br /&gt;
{&lt;br /&gt;
y := ++y&lt;br /&gt;
Send {down}&lt;br /&gt;
continue&lt;br /&gt;
}else if keypress = a&lt;br /&gt;
{&lt;br /&gt;
x := --x&lt;br /&gt;
Send {left}&lt;br /&gt;
continue&lt;br /&gt;
}else if keypress = d&lt;br /&gt;
{&lt;br /&gt;
x := ++x&lt;br /&gt;
Send {right}&lt;br /&gt;
continue&lt;br /&gt;
}else if keypress = k &lt;br /&gt;
{&lt;br /&gt;
break&lt;br /&gt;
}else if keypress = q&lt;br /&gt;
{&lt;br /&gt;
ExitApp&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
y := y / 2&lt;br /&gt;
z := y&lt;br /&gt;
z := Floor(z)&lt;br /&gt;
z := y/z&lt;br /&gt;
Send d{NumpadAdd}d&lt;br /&gt;
If z = 0&lt;br /&gt;
{	&lt;br /&gt;
If x = 0&lt;br /&gt;
ExitApp&lt;br /&gt;
Else{&lt;br /&gt;
Loop %x%{&lt;br /&gt;
Send {left}d&lt;br /&gt;
}ExitApp&lt;br /&gt;
}&lt;br /&gt;
}If z &amp;lt;&amp;gt; 1&lt;br /&gt;
{&lt;br /&gt;
Loop %y%{&lt;br /&gt;
Loop %x%{&lt;br /&gt;
Send {left}d{NumpadAdd}d&lt;br /&gt;
}Send {up}d&lt;br /&gt;
Loop %x%{&lt;br /&gt;
Send {right}d{NumpadAdd}d&lt;br /&gt;
}Send {up}d{NumpadAdd}d&lt;br /&gt;
}Loop %x%{&lt;br /&gt;
Send {left}d{NumpadAdd}d&lt;br /&gt;
}&lt;br /&gt;
}Else If z = 1&lt;br /&gt;
{&lt;br /&gt;
y := y + 0.5&lt;br /&gt;
Loop %y%{&lt;br /&gt;
Loop %x%{&lt;br /&gt;
Send {left}d{NumpadAdd}d&lt;br /&gt;
}Send {up}d&lt;br /&gt;
Loop %x%{&lt;br /&gt;
Send {right}d{NumpadAdd}d&lt;br /&gt;
}Send {up}d{NumpadAdd}d&lt;br /&gt;
}Send d{NumpadSub}d&lt;br /&gt;
}ExitApp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rewalling ===&lt;br /&gt;
Taken from [[User:Valdemar|Valdemar's user page]].&lt;br /&gt;
&lt;br /&gt;
This is a macro to aid with rewalling. To use, copy-paste the script into a new .ahk file and run the script with AutoHotkey. Then, in Dwarf Fortress, press b-C-w, move the cursor to where you want to start the wall, and hold Ctrl-Shift-Arrowkey, using the direction you want to rewall in. To build floors, press b-C-f instead, and use Ctrl-Alt-Arrowkey. To stop, just release the keys.&lt;br /&gt;
&lt;br /&gt;
The script will use the first material in the list. I suggest you create a stockpile near the construction site that only accepts the item you wish to build with and temporarily forbid any nearby materials you don't want to build with. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$^+Left:: ProcessEvent(&amp;quot;Left&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
$^+Right:: ProcessEvent(&amp;quot;Right&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
$^+Up:: ProcessEvent(&amp;quot;Up&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
$^+Down:: ProcessEvent(&amp;quot;Down&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$^!Left:: ProcessEvent(&amp;quot;Left&amp;quot;,&amp;quot;f&amp;quot;)&lt;br /&gt;
$^!Right:: ProcessEvent(&amp;quot;Right&amp;quot;,&amp;quot;f&amp;quot;)&lt;br /&gt;
$^!Up:: ProcessEvent(&amp;quot;Up&amp;quot;,&amp;quot;f&amp;quot;)&lt;br /&gt;
$^!Down:: ProcessEvent(&amp;quot;Down&amp;quot;,&amp;quot;f&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ProcessEvent(direction, type)&lt;br /&gt;
{   &lt;br /&gt;
    Send {Enter}&lt;br /&gt;
    Sleep 100&lt;br /&gt;
    Send {Enter}&lt;br /&gt;
    Sleep 100&lt;br /&gt;
    Send %type%&lt;br /&gt;
    Sleep 100&lt;br /&gt;
    Send {%direction%}&lt;br /&gt;
    Loop&lt;br /&gt;
    {&lt;br /&gt;
        if not GetKeyState(direction, &amp;quot;P&amp;quot;) &lt;br /&gt;
            break  &lt;br /&gt;
        Send {Enter}&lt;br /&gt;
        Sleep 100&lt;br /&gt;
        Send {Enter}&lt;br /&gt;
        Sleep 100&lt;br /&gt;
        Send %type%&lt;br /&gt;
        Sleep 100&lt;br /&gt;
        Send {%direction%}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Grid-by-grid designation===&lt;br /&gt;
For easier diagonal and fancy mining.  Assumes that DF is active.  &amp;quot;^!&amp;quot; means ctrl-alt-direction.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
^!NumpadEnd::&lt;br /&gt;
send {Enter}{Enter}{NumpadEnd}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadDown::&lt;br /&gt;
send {Enter}{Enter}{NumpadDown}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadPgDn::&lt;br /&gt;
send {Enter}{Enter}{NumpadPgDn}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadLeft::&lt;br /&gt;
send {Enter}{Enter}{NumpadLeft}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadRight::&lt;br /&gt;
send {Enter}{Enter}{NumpadRight}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadHome::&lt;br /&gt;
send {Enter}{Enter}{NumpadHome}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadUp::&lt;br /&gt;
send {Enter}{Enter}{NumpadUp}&lt;br /&gt;
return&lt;br /&gt;
^!NumpadPgUp::&lt;br /&gt;
send {Enter}{Enter}{NumpadPgUp}&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Embark Settings macros===&lt;br /&gt;
These macros are used to ease the setup of skills and supplies before you embark.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Improved Food/Alcohol buying macro====&lt;br /&gt;
This macro buys all the cost-2 food (that I have seen), as well as the four types of alcohol.  Just press ctrl+f on the Items screen.&lt;br /&gt;
It can deal with meat or drink that you already have, or is not currently featured.   By [[User:Redfenix|Redfenix]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
^f::&lt;br /&gt;
&lt;br /&gt;
send ndwarven{SPACE}ale{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ndwarven{SPACE}rum{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ndwarven{SPACE}beer{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ndwarven{SPACE}wine{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ndonkey{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nchimpanzee{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ngazelle{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nbonobo{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nmule{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ndeer{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nraccoon{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nfox{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nrhesus{SPACE}macaque{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nhorse{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ngroundhog{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nmountain{SPACE}goat{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nhoary{SPACE}marmot{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send ngorilla{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send norangutan{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nsiamang{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nbilou{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send npileated{SPACE}gibbon{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nmandrill{SPACE}meat{RIGHT}{ENTER}{F9}&lt;br /&gt;
send nturtle{RIGHT}{ENTER}{F9}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===='First Fortress' setup====&lt;br /&gt;
This macro works with the default setup of DF, and starts you with (almost) the setup suggested in the &amp;quot;Your first fortress&amp;quot; tutorial.  The amounts are adjustable with the variables at the top of the macro.&lt;br /&gt;
&amp;lt;pre&amp;gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
; materialplanner.ahk					  	;&lt;br /&gt;
; this is a ahk script to set up the embark settings roughly as	;&lt;br /&gt;
;suggested in the &amp;quot;your first fortress&amp;quot; tutorial.  Inventory	;&lt;br /&gt;
;can be customized slightly.					;&lt;br /&gt;
; use ctrl+shift+e to run				  	;&lt;br /&gt;
;							  	;&lt;br /&gt;
; NOTEs:						  	;&lt;br /&gt;
; change variables to suit your desires			 	;&lt;br /&gt;
; the fourth guy is a Stonecrafter instead of Herbalist		;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;&lt;br /&gt;
;;VARIABLES;;&lt;br /&gt;
;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
PICKS = 2	;number of picks to pack&lt;br /&gt;
AXES = 1 	;number of axes to pack&lt;br /&gt;
ANVILS = 0	;number of anvils to pack&lt;br /&gt;
MEATS = 7	;how much meat to take, each buys one of each cheap type (total number depends on locale)&lt;br /&gt;
DRINKS = 26	;how many drinks to take, each one buys 4 drinks, one of each type&lt;br /&gt;
SEEDS = 5	;each increment buys 5 plump helmet spawn, 2 pig tail, and 2 rock nuts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SetKeyDelay, 12	;Key delay, to keep Dwarf Fortress from being overwhelmed.&lt;br /&gt;
		;Set higher if you get weird results, or lower to get the&lt;br /&gt;
		;script to run faster&lt;br /&gt;
SLEEPTIME = 12	;same thing, only used in the repeated key press loops though&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;&lt;br /&gt;
;;The code;;&lt;br /&gt;
;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
^+e::&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			;remove all of the items&lt;br /&gt;
Send {Tab}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
loop 105{&lt;br /&gt;
	Send {NumpadSub}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Send {Tab}&lt;br /&gt;
&lt;br /&gt;
			;place the skills&lt;br /&gt;
			;first guy&lt;br /&gt;
			;Proficient Miner&lt;br /&gt;
Send {right}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;novice appraiser&lt;br /&gt;
Send {PgUp}&lt;br /&gt;
loop 7{&lt;br /&gt;
	Send {Up}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
			;novice Judge of Intent&lt;br /&gt;
Send {Up}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
			;competent gem setter&lt;br /&gt;
Send {PgUp}&lt;br /&gt;
Send {PgUp}&lt;br /&gt;
loop 7{&lt;br /&gt;
	Send {Up}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 3{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;second guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
Send {PgUp}&lt;br /&gt;
			;Proficient Miner&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Mason&lt;br /&gt;
loop 3{&lt;br /&gt;
	Send {Down}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;third guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
			;Proficient Carpenter&lt;br /&gt;
Send {UP}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Wood Cutter&lt;br /&gt;
Send {UP}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;fourth guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
			;Proficient Grower&lt;br /&gt;
Send {PgDn}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Down}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Stone Crafter&lt;br /&gt;
loop 9{&lt;br /&gt;
	Send {Up}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;fifth guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
			;Proficient Mechanic&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {Down}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Building Designer&lt;br /&gt;
Send {PgUp}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {Down}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;sixth guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
			;Proficient Weaponsmith&lt;br /&gt;
loop 1{&lt;br /&gt;
	Send {Down}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Armorsmith&lt;br /&gt;
loop 2{&lt;br /&gt;
	Send {Down}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;seventh guy&lt;br /&gt;
Send {Left}&lt;br /&gt;
Send {Down}&lt;br /&gt;
Send {Right}&lt;br /&gt;
			;Proficient Cook&lt;br /&gt;
Send {PgDn}&lt;br /&gt;
loop 2{&lt;br /&gt;
	Send {Up}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
			;Proficient Brewer&lt;br /&gt;
loop 1{&lt;br /&gt;
	Send {Up}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
loop 5{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
			;do the inventory&lt;br /&gt;
Send {Tab}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
			;Meat&lt;br /&gt;
&lt;br /&gt;
if MEATS &amp;gt; 0&lt;br /&gt;
{&lt;br /&gt;
tmp := MEATS - 1&lt;br /&gt;
send ndonkey{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nchimpanzee{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send ngazelle{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nbonobo{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nmule{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send ndeer{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nraccoon{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nfox{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nrhesus{SPACE}macaque{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nhorse{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send ngroundhog{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nmountain{SPACE}goat{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nhoary{SPACE}marmot{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send ngorilla{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send norangutan{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nsiamang{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nbilou{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send npileated{SPACE}gibbon{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nmandrill{SPACE}meat{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
send nturtle{RIGHT}{ENTER}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {F9}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
			;copper picks&lt;br /&gt;
if PICKS &amp;gt; 0&lt;br /&gt;
{&lt;br /&gt;
Send {n}copper picks{Right}{Enter}&lt;br /&gt;
tmp := PICKS - 1&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
			;Axes&lt;br /&gt;
if AXES &amp;gt; 0&lt;br /&gt;
{&lt;br /&gt;
Send {n}steel axes{Right}{Enter}&lt;br /&gt;
tmp := AXES - 1&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
			;Seeds&lt;br /&gt;
if SEEDS &amp;gt; 0&lt;br /&gt;
{&lt;br /&gt;
send {n}Rock nuts{Right}{Enter}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
send {n}plump helmet spawn{Right}{Enter}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
send {n}Pig tail Seeds{Right}{Enter}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
&lt;br /&gt;
tmp := SEEDS - 1&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {up}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {up}&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
			;Anvils&lt;br /&gt;
if ANVILS &amp;gt; 0&lt;br /&gt;
{&lt;br /&gt;
Send {n}iron anvils{Right}{Enter}&lt;br /&gt;
tmp := ANVILS - 1&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
	Send {NumpadAdd}&lt;br /&gt;
	Sleep %SLEEPTIME%&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
			;Drinks&lt;br /&gt;
if DRINKS &amp;gt; 0{&lt;br /&gt;
send {n}Dwarven ale{Right}{Enter}&lt;br /&gt;
send {n}Dwarven beer{Right}{Enter}&lt;br /&gt;
send {n}Dwarven wine{Right}{Enter}&lt;br /&gt;
send {n}Dwarven rum{Right}{Enter}&lt;br /&gt;
&lt;br /&gt;
tmp := DRINKS - 1&lt;br /&gt;
loop 4{&lt;br /&gt;
loop %tmp%{&lt;br /&gt;
Send {NumpadAdd}&lt;br /&gt;
}&lt;br /&gt;
Send {up}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===A more modular approach===&lt;br /&gt;
Hit WIN+G to go once you are on the empty item screen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#g::&lt;br /&gt;
;add an anvil&lt;br /&gt;
Additem(&amp;quot;iron anvils&amp;quot;,1)&lt;br /&gt;
;add 31 of the boozes (kind of iffy might end up with dwarven cheese or something if the civilization does not have 4 boozes)&lt;br /&gt;
Additem(&amp;quot;dw&amp;quot;,31)&lt;br /&gt;
Additem(&amp;quot;dw&amp;quot;,31)&lt;br /&gt;
Additem(&amp;quot;dw&amp;quot;,31)&lt;br /&gt;
Additem(&amp;quot;dw&amp;quot;,31)&lt;br /&gt;
;adds copper nuggets &lt;br /&gt;
Additem(&amp;quot;copper n&amp;quot;,5)&lt;br /&gt;
;adds cassiterite&lt;br /&gt;
Additem(&amp;quot;cass&amp;quot;,5)&lt;br /&gt;
;bitumous coal&lt;br /&gt;
Additem(&amp;quot;coal&amp;quot;,5)&lt;br /&gt;
;tower cap logs&lt;br /&gt;
Additem(&amp;quot;logs&amp;quot;,11)&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
IsCurrentItemThere()&lt;br /&gt;
{&lt;br /&gt;
	;color of text in the new item screen 0xFFFF00(selected) or 0x808000 (unselected)&lt;br /&gt;
	;location of text in the new item screen 305, 150&lt;br /&gt;
	PixelSearch, , , 305, 150, 315, 160, 0x808000, 3,&lt;br /&gt;
	return !ErrorLevel&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AddItem(name,amount)&lt;br /&gt;
{&lt;br /&gt;
	Sleep 100&lt;br /&gt;
	amount -= 1&lt;br /&gt;
	SetKeyDelay 150&lt;br /&gt;
	SendInput n&lt;br /&gt;
	SendInput %name%&lt;br /&gt;
	;MsgBox Name Check&lt;br /&gt;
	Sleep 200&lt;br /&gt;
	if IsCurrentItemThere() &lt;br /&gt;
	{&lt;br /&gt;
		Sleep 200&lt;br /&gt;
		SendInput {Right}&lt;br /&gt;
		SendInput {Enter}&lt;br /&gt;
		Sleep 200&lt;br /&gt;
		Loop&lt;br /&gt;
		{&lt;br /&gt;
			if amount &amp;lt;= 0 &lt;br /&gt;
			{&lt;br /&gt;
				break&lt;br /&gt;
			}&lt;br /&gt;
			SendInput {NumpadAdd}&lt;br /&gt;
			Sleep 10&lt;br /&gt;
			amount --&lt;br /&gt;
		}&lt;br /&gt;
		;MsgBox Done&lt;br /&gt;
	}&lt;br /&gt;
	else &lt;br /&gt;
	{&lt;br /&gt;
		SendInput {F9}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bed Assigning macro===&lt;br /&gt;
This will assign bedrooms to your dwarfs. Press F3 followed by a single digit indicating how many beds to assign. Can repeat the action, as the number of beds assigned is stored in a counter. Room size is default, but easily edited into the script. By [[User:Napsterbater|Napsterbater]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bedcounter = 0&lt;br /&gt;
F3::&lt;br /&gt;
  Input, counter, L1&lt;br /&gt;
  SetKeyDelay, 100&lt;br /&gt;
  loop  %counter% {&lt;br /&gt;
    loop %bedcounter%&lt;br /&gt;
      send {Down}&lt;br /&gt;
    loop % A_Index - 1&lt;br /&gt;
      send {Down}&lt;br /&gt;
    send {q}{r}{Enter}{a}&lt;br /&gt;
    loop %bedcounter%&lt;br /&gt;
      send {NumPadAdd}&lt;br /&gt;
    loop % A_Index - 1&lt;br /&gt;
      send {NumPadAdd}&lt;br /&gt;
    send {NumPadAdd}{Enter}&lt;br /&gt;
    send {space}{r}&lt;br /&gt;
  }&lt;br /&gt;
  bedcounter += counter&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Room-designation macros===&lt;br /&gt;
&lt;br /&gt;
====Valdemar's Designator Macro====&lt;br /&gt;
This macro can read a spreadsheet and designate rooms according to it. [http://www.bay12games.com/forum/index.php?topic=1428.0 Version 1]&lt;br /&gt;
&lt;br /&gt;
Version 2 of this macro apparently only works in versions up to and including 38c &amp;lt;sup&amp;gt;[[verify]]&amp;lt;/sup&amp;gt;, and can be found here: [http://www.bay12games.com/forum/index.php?topic=1890.0 Version 2]&lt;br /&gt;
&lt;br /&gt;
====Fedor's chambered circle====&lt;br /&gt;
A circular room with eight equal-sized chambers, suitable for everything from housing to workshops to a mausoleum.&amp;lt;br&amp;gt;&lt;br /&gt;
[http://mkv25.net/dfma/movie-216-room-designationmacro01 See this macro in action]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Macros_and_Keymaps_Examples#Room-designation Macro 01|Macro text]]&lt;br /&gt;
&lt;br /&gt;
====Valdemar's bedroom complex====&lt;br /&gt;
A large fractal bedroom/dining complex, with 56 bedrooms and room for 24 tables.&lt;br /&gt;
&lt;br /&gt;
You can press Alt-B to create a bedroom block, or Alt-C to create a full complex with 4 bedroom blocks and a dining block in the center.&lt;br /&gt;
&lt;br /&gt;
Note - the macro is much faster than the demo movie shows, it is done in under a minute.&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-252 Demo Movie]&lt;br /&gt;
&lt;br /&gt;
[http://www.pindi.us/files/fractalbr.zip Download]&lt;br /&gt;
&lt;br /&gt;
====Tulip's room macros====&lt;br /&gt;
Based on [[Bedroom_design|the bedroom designs.]]&lt;br /&gt;
&lt;br /&gt;
^g means alt+g, !g means ctrl+g, and so on.&lt;br /&gt;
Open up the designations window before using these:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
; This will make a basic 'x' pattern workshop/room layout&lt;br /&gt;
; and will 'land' back on the same tile it starts on each time,&lt;br /&gt;
; which happens to be the center.&lt;br /&gt;
; It is modified so that you will have 3 staircases, and an extra tile&lt;br /&gt;
; because many workshops do not have corner access.&lt;br /&gt;
!r::&lt;br /&gt;
Send di2{enter}88{enter}4d{enter}4{enter}67{enter}77{enter}66666666&lt;br /&gt;
Send {enter}11{enter}1{enter}6{enter}114{enter}4{enter}2{enter}11{enter}&lt;br /&gt;
Send 66666666{enter}77{enter}7{enter}6{enter}74&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
; This makes GnomeChomsky's Tessellated Apartments, bedrooms only.&lt;br /&gt;
; Your cursor will be over the left staircase.&lt;br /&gt;
!g::&lt;br /&gt;
Send i999866{enter}{enter}33332{enter}{enter}11114{enter}{enter}&lt;br /&gt;
Send d3{enter}22{enter}4{enter}{enter}&lt;br /&gt;
Send 78{enter}44{enter}8{enter}{enter}&lt;br /&gt;
Send 96{enter}88{enter}6{enter}{enter}	&lt;br /&gt;
Send 32{enter}66{enter}2{enter}{enter}&lt;br /&gt;
Send 96{enter}{enter}6{enter}88{enter}&lt;br /&gt;
Send 96{enter}{enter}8{enter}44{enter}&lt;br /&gt;
Send 1444{enter}{enter}2{enter}66{enter}&lt;br /&gt;
Send 88{enter}88{enter}6{enter}{enter}&lt;br /&gt;
Send 78{enter}{enter}8{enter}44{enter}&lt;br /&gt;
Send 78{enter}{enter}4{enter}22{enter}&lt;br /&gt;
Send 14{enter}{enter}2{enter}66{enter}&lt;br /&gt;
Send 66{enter}22{enter}4{enter}{enter}&lt;br /&gt;
Send 14{enter}{enter}8{enter}44{enter}&lt;br /&gt;
Send 78{enter}{enter}4{enter}22{enter}&lt;br /&gt;
Send 14{enter}{enter}2{enter}66{enter}&lt;br /&gt;
Send 32{enter}{enter}6{enter}88{enter}7i{enter}{enter}&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
; This makes GnomeChomsky's Tessellated Apartments, bedrooms plus dining.&lt;br /&gt;
; Everything above applies.&lt;br /&gt;
^g::&lt;br /&gt;
Send i{enter}{enter}999866{enter}{enter}33332{enter}{enter}11114{enter}{enter}d&lt;br /&gt;
Send 444{enter}{enter}2{enter}66{enter}&lt;br /&gt;
Send 32{enter}{enter}6{enter}88{enter}&lt;br /&gt;
Send 9966{enter}{enter}6{enter}88{enter}&lt;br /&gt;
Send 96{enter}{enter}8{enter}44{enter}&lt;br /&gt;
Send 7788{enter}{enter}8{enter}44{enter}&lt;br /&gt;
Send 78{enter}{enter}4{enter}22{enter}&lt;br /&gt;
Send 1144{enter}{enter}4{enter}22{enter}&lt;br /&gt;
Send 14{enter}{enter}2{enter}66{enter}&lt;br /&gt;
Send 36{enter}8886666666{enter}&lt;br /&gt;
Send 9{enter}4444444{enter}&lt;br /&gt;
Send 8{enter}6666{enter}744{enter}{enter}&lt;br /&gt;
Send 222222441{enter}6666666{enter}&lt;br /&gt;
Send {enter}22{enter}8{enter}4444{enter}&lt;br /&gt;
Send 7778&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; This makes THLawrence's Living Pods (the A is for Arabia).&lt;br /&gt;
; Put your cursor where you want the upper left staircase to be.&lt;br /&gt;
; Like my other scripts, it recenters on that tile.&lt;br /&gt;
; Also, thank you THLawrence, this one was really easy write!&lt;br /&gt;
!a::&lt;br /&gt;
Send i{enter}{enter}d7{enter}7{enter}666{enter}3{enter}22{enter}1{enter}44{enter}7{enter}&lt;br /&gt;
Send 96666666&lt;br /&gt;
Send i{enter}{enter}d7{enter}7{enter}666{enter}3{enter}22{enter}1{enter}44{enter}7{enter}&lt;br /&gt;
Send 33222&lt;br /&gt;
Send i{enter}{enter}d7{enter}7{enter}666{enter}3{enter}22{enter}1{enter}44{enter}7{enter}&lt;br /&gt;
Send 7444&lt;br /&gt;
Send i{enter}{enter}d7{enter}7{enter}666{enter}3{enter}22{enter}1{enter}44{enter}7{enter}&lt;br /&gt;
Send 9988888&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
; This makes the lobby for THLawrence's Living pods.&lt;br /&gt;
^a::&lt;br /&gt;
Send i{enter}{enter}d7{enter}7{enter}666{enter}3{enter}66{enter}9{enter}66{enter}3{enter}41i{enter}{enter}&lt;br /&gt;
Send 36d{enter}1444444{enter}&lt;br /&gt;
Send 74{enter}1{enter}22{enter}3{enter}3i{enter}{enter}d1{enter}1{enter}666{enter}9{enter}&lt;br /&gt;
Send 66{enter}3{enter}66{enter}9{enter}88{enter}7{enter}74{enter}1144{enter}&lt;br /&gt;
Send 36666i{enter}{enter}777777&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====LordGrunt's room macro====&lt;br /&gt;
Based on 1 of the fractal [[Bedroom_design| bedroom designs.]]&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-1226-fractalbedrooms Demo Movie]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
; Fractal Apts&lt;br /&gt;
; Start script while in 'dig' mode with cursor on desired position of left up staircase&lt;br /&gt;
;&lt;br /&gt;
; ALT+G to generate,&lt;br /&gt;
; CTRL+ALT+G to erase in case of failure&lt;br /&gt;
;&lt;br /&gt;
     &lt;br /&gt;
!g::&lt;br /&gt;
base_cross()&lt;br /&gt;
sleep 100&lt;br /&gt;
mid_sqr()&lt;br /&gt;
sleep 100&lt;br /&gt;
corridors()&lt;br /&gt;
sleep 100&lt;br /&gt;
all_rooms()&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
base_cross()&lt;br /&gt;
{&lt;br /&gt;
Send i{ENTER}3{ENTER}&lt;br /&gt;
Send d1{ENTER}6{SHIFT}+2{SHIFT}+2{SHIFT}+2{SHIFT}+28{ENTER}&lt;br /&gt;
Send d{SHIFT}+8{SHIFT}+8{SHIFT}+8{SHIFT}+888{ENTER}4{SHIFT}+8{SHIFT}+8{SHIFT}+8{SHIFT}+82{ENTER}&lt;br /&gt;
Send d{SHIFT}+2{SHIFT}+2{SHIFT}+2{SHIFT}+24{ENTER}2{SHIFT}+4{SHIFT}+4{SHIFT}+4{SHIFT}+46{ENTER}&lt;br /&gt;
Send d{SHIFT}+6{SHIFT}+6{SHIFT}+6{SHIFT}+666{ENTER}8{SHIFT}+6{SHIFT}+6{SHIFT}+6{SHIFT}+64{ENTER}&lt;br /&gt;
Send d{SHIFT}+4{SHIFT}+4{SHIFT}+4{SHIFT}+4474{SHIFT}+8{SHIFT}+888888{ENTER}66666{SHIFT}+2{SHIFT}+2{SHIFT}+2{SHIFT}+2{SHIFT}+2222{ENTER}8&lt;br /&gt;
Send d{SHIFT}+8{SHIFT}+88884488888{SHIFT}+6{SHIFT}+6666666{ENTER}22222{SHIFT}+4{SHIFT}+4{SHIFT}+4{SHIFT}+4{SHIFT}+4444{ENTER}6&lt;br /&gt;
}&lt;br /&gt;
mid_sqr()&lt;br /&gt;
{&lt;br /&gt;
Send d{SHIFT}+3666&lt;br /&gt;
send d{ENTER}{SHIFT}+9{SHIFT}+999999{ENTER}1{ENTER}9999{ENTER}9{ENTER}111{ENTER}&lt;br /&gt;
send d{SHIFT}+1{SHIFT}+1{SHIFT}+1{ENTER}999{ENTER}99{ENTER}1111{ENTER}99&lt;br /&gt;
send d{SHIFT}+8{SHIFT}+8{SHIFT}+8444{ENTER}333{ENTER}33{ENTER}7777{ENTER}&lt;br /&gt;
send d{SHIFT}+3{SHIFT}+3{SHIFT}+37{ENTER}333{ENTER}7{ENTER}7777{ENTER}&lt;br /&gt;
}&lt;br /&gt;
corridors()&lt;br /&gt;
{&lt;br /&gt;
send d{SHIFT}+7{SHIFT}+7{SHIFT}+7999{ENTER}{SHIFT}+6{SHIFT}+6{SHIFT}+66{ENTER}&lt;br /&gt;
send d333333{ENTER}{SHIFT}+2{SHIFT}+2{SHIFT}+22{ENTER}&lt;br /&gt;
send d111111{ENTER}{SHIFT}+4{SHIFT}+4{SHIFT}+44{ENTER}&lt;br /&gt;
send d777777{ENTER}{SHIFT}+8{SHIFT}+8{SHIFT}+88{ENTER}&lt;br /&gt;
sleep 100&lt;br /&gt;
send d3333222{ENTER}{SHIFT}+466{ENTER}&lt;br /&gt;
send d{SHIFT}+2{SHIFT}+2888{ENTER}{SHIFT}+644{ENTER}&lt;br /&gt;
send d{SHIFT}+9{SHIFT}+9{SHIFT}+6{SHIFT}+6333&lt;br /&gt;
send d{ENTER}{SHIFT}+466{ENTER}&lt;br /&gt;
send d{SHIFT}+2{SHIFT}+2888{ENTER}{SHIFT}+644{ENTER}&lt;br /&gt;
sleep 100&lt;br /&gt;
send d{SHIFT}+4{SHIFT}+1966&lt;br /&gt;
send d{ENTER}{SHIFT}+288{ENTER}&lt;br /&gt;
send d{SHIFT}+4{SHIFT}+4666{ENTER}{SHIFT}+822{ENTER}&lt;br /&gt;
sleep 100&lt;br /&gt;
send d{SHIFT}+9{SHIFT}+9{SHIFT}+8{SHIFT}+8777&lt;br /&gt;
send d{ENTER}{SHIFT}+288{ENTER}&lt;br /&gt;
send d{SHIFT}+4{SHIFT}+4666{ENTER}{SHIFT}+822{ENTER}&lt;br /&gt;
sleep 100&lt;br /&gt;
send d999988{ENTER}{SHIFT}+64{ENTER}&lt;br /&gt;
send d{SHIFT}+3{SHIFT}+3{SHIFT}+3777{ENTER}{SHIFT}+28{ENTER}&lt;br /&gt;
send d{SHIFT}+1{SHIFT}+1{SHIFT}+1999{ENTER}{SHIFT}+46{ENTER}&lt;br /&gt;
send d{SHIFT}+7{SHIFT}+7{SHIFT}+7333{ENTER}{SHIFT}+82{ENTER}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
rooms_up()&lt;br /&gt;
{&lt;br /&gt;
send d78{ENTER}96{ENTER}&lt;br /&gt;
send d223{ENTER}32{ENTER}&lt;br /&gt;
send d44444{ENTER}87{ENTER}&lt;br /&gt;
send d63{ENTER}{ENTER}98{ENTER}{ENTER}23{ENTER}{ENTER}7&lt;br /&gt;
}&lt;br /&gt;
rooms_down()&lt;br /&gt;
{&lt;br /&gt;
send d32{ENTER}14{ENTER}&lt;br /&gt;
send d887{ENTER}78{ENTER}&lt;br /&gt;
send d66666{ENTER}32{ENTER}&lt;br /&gt;
send d74{ENTER}{ENTER}21{ENTER}{ENTER}78{ENTER}{ENTER}3&lt;br /&gt;
}&lt;br /&gt;
rooms_left()&lt;br /&gt;
{&lt;br /&gt;
send d14{ENTER}87{ENTER}&lt;br /&gt;
send d996{ENTER}63{ENTER}&lt;br /&gt;
send d2222{ENTER}41{ENTER}&lt;br /&gt;
send d98{ENTER}{ENTER}47{ENTER}{ENTER}96{ENTER}{ENTER}1&lt;br /&gt;
}&lt;br /&gt;
rooms_right()&lt;br /&gt;
{&lt;br /&gt;
send d96{ENTER}32{ENTER}&lt;br /&gt;
send d114{ENTER}47{ENTER}&lt;br /&gt;
send d8888{ENTER}96{ENTER}&lt;br /&gt;
send d21{ENTER}{ENTER}63{ENTER}{ENTER}14{ENTER}{ENTER}9&lt;br /&gt;
}&lt;br /&gt;
;======= WIDE&lt;br /&gt;
rooms_upw()&lt;br /&gt;
{&lt;br /&gt;
send d78{ENTER}966{ENTER}&lt;br /&gt;
send d223{ENTER}32{ENTER}&lt;br /&gt;
send d444444{ENTER}87{ENTER}&lt;br /&gt;
send d63{ENTER}{ENTER}98{ENTER}6{ENTER}23{ENTER}{ENTER}74&lt;br /&gt;
}&lt;br /&gt;
rooms_downw()&lt;br /&gt;
{&lt;br /&gt;
send d32{ENTER}144{ENTER}&lt;br /&gt;
send d887{ENTER}78{ENTER}&lt;br /&gt;
send d666666{ENTER}32{ENTER}&lt;br /&gt;
send d74{ENTER}{ENTER}21{ENTER}4{ENTER}78{ENTER}{ENTER}36&lt;br /&gt;
}&lt;br /&gt;
rooms_leftw()&lt;br /&gt;
{&lt;br /&gt;
send d14{ENTER}887{ENTER}&lt;br /&gt;
send d996{ENTER}63{ENTER}&lt;br /&gt;
send d22222{ENTER}41{ENTER}&lt;br /&gt;
send d98{ENTER}{ENTER}47{ENTER}8{ENTER}96{ENTER}{ENTER}12&lt;br /&gt;
}&lt;br /&gt;
rooms_rightw()&lt;br /&gt;
{&lt;br /&gt;
send d96{ENTER}322{ENTER}&lt;br /&gt;
send d114{ENTER}47{ENTER}&lt;br /&gt;
send d88888{ENTER}96{ENTER}&lt;br /&gt;
send d21{ENTER}{ENTER}63{ENTER}2{ENTER}14{ENTER}{ENTER}98&lt;br /&gt;
}&lt;br /&gt;
;============&lt;br /&gt;
rooms3up()&lt;br /&gt;
{&lt;br /&gt;
send d8888888&lt;br /&gt;
rooms_up()&lt;br /&gt;
send d1111222&lt;br /&gt;
rooms_left()&lt;br /&gt;
send d66666666&lt;br /&gt;
rooms_right()&lt;br /&gt;
send d4444&lt;br /&gt;
}&lt;br /&gt;
rooms3down()&lt;br /&gt;
{&lt;br /&gt;
send d2222222&lt;br /&gt;
rooms_down()&lt;br /&gt;
send d7777888&lt;br /&gt;
rooms_left()&lt;br /&gt;
send d66666666&lt;br /&gt;
rooms_right()&lt;br /&gt;
send d4444&lt;br /&gt;
}&lt;br /&gt;
rooms3left()&lt;br /&gt;
{&lt;br /&gt;
send d4444444&lt;br /&gt;
rooms_left()&lt;br /&gt;
send d9999666&lt;br /&gt;
rooms_up()&lt;br /&gt;
send d22222222&lt;br /&gt;
rooms_down()&lt;br /&gt;
send d8888&lt;br /&gt;
}&lt;br /&gt;
rooms3right()&lt;br /&gt;
{&lt;br /&gt;
send d6666666&lt;br /&gt;
rooms_right()&lt;br /&gt;
send d7777444&lt;br /&gt;
rooms_up()&lt;br /&gt;
send d22222222&lt;br /&gt;
rooms_down()&lt;br /&gt;
send d8888&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
;==========&lt;br /&gt;
all_rooms()&lt;br /&gt;
{&lt;br /&gt;
;left wide:&lt;br /&gt;
rooms_up()&lt;br /&gt;
send d222222222&lt;br /&gt;
rooms_down()&lt;br /&gt;
send d7777444&lt;br /&gt;
rooms_leftw()&lt;br /&gt;
;bottom wide:&lt;br /&gt;
send d{SHIFT}+3{SHIFT}+3{SHIFT}+3{SHIFT}+378&lt;br /&gt;
rooms_downw()&lt;br /&gt;
send d9999888&lt;br /&gt;
rooms_right()&lt;br /&gt;
send d444444444&lt;br /&gt;
rooms_left()&lt;br /&gt;
;right wide:&lt;br /&gt;
send d{SHIFT}+9{SHIFT}+9{SHIFT}+999{SHIFT}+66&lt;br /&gt;
rooms_rightw()&lt;br /&gt;
send d7777444&lt;br /&gt;
rooms_up()&lt;br /&gt;
send d222222222&lt;br /&gt;
rooms_down()&lt;br /&gt;
;top wide&lt;br /&gt;
send d{SHIFT}+7{SHIFT}+7{SHIFT}+777{SHIFT}+88&lt;br /&gt;
rooms_upw()&lt;br /&gt;
send d1111222&lt;br /&gt;
rooms_left()&lt;br /&gt;
send d666666666&lt;br /&gt;
rooms_right()&lt;br /&gt;
;remainin 9-room chambers&lt;br /&gt;
send d{SHIFT}+26666&lt;br /&gt;
rooms3right()&lt;br /&gt;
send d{SHIFT}+4{SHIFT}+4666&lt;br /&gt;
rooms3left()&lt;br /&gt;
send d{SHIFT}+1111&lt;br /&gt;
rooms3up()&lt;br /&gt;
send d{SHIFT}+2{SHIFT}+2888&lt;br /&gt;
rooms3down()&lt;br /&gt;
send d{SHIFT}+3333&lt;br /&gt;
rooms3left()&lt;br /&gt;
send d{SHIFT}+6{SHIFT}+6444&lt;br /&gt;
rooms3right()&lt;br /&gt;
send d{SHIFT}+9999&lt;br /&gt;
rooms3down()&lt;br /&gt;
send d{SHIFT}+8{SHIFT}+8222&lt;br /&gt;
rooms3up()&lt;br /&gt;
;send d{SHIFT}+7777&lt;br /&gt;
;rooms3right()&lt;br /&gt;
;send d{SHIFT}+2{SHIFT}+4666&lt;br /&gt;
;rooms3left()&lt;br /&gt;
send d1111144499{ENTER}{SHIFT}+1{SHIFT}+4{SHIFT}+41{ENTER}&lt;br /&gt;
send d77444444444{ENTER}8888888{SHIFT}+6{SHIFT}+6{SHIFT}+6{SHIFT}+6{SHIFT}+6666{ENTER}&lt;br /&gt;
send d{SHIFT}+7{SHIFT}+487{ENTER}{SHIFT}+1{SHIFT}+2{SHIFT}+21{ENTER}&lt;br /&gt;
send d33222222222{ENTER}6666666{SHIFT}+8{SHIFT}+8{SHIFT}+8{SHIFT}+8{SHIFT}+8888{ENTER}&lt;br /&gt;
send d{SHIFT}+2{SHIFT}+2221111&lt;br /&gt;
send i{ENTER}3{ENTER}7&lt;br /&gt;
deco()&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
deco()&lt;br /&gt;
{&lt;br /&gt;
send x77774{ENTER}{ENTER}9{ENTER}{ENTER}6669{ENTER}6{ENTER}3666{ENTER}{ENTER}3{ENTER}{ENTER}&lt;br /&gt;
send x2223{ENTER}2{ENTER}1222{ENTER}{ENTER}1{ENTER}{ENTER}1444{ENTER}4{ENTER}4447&lt;br /&gt;
send x{ENTER}{ENTER}7{ENTER}{ENTER}7888{ENTER}8{ENTER}666666&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
; CTRL+ALT+G to erase all&lt;br /&gt;
!^g::&lt;br /&gt;
send x{SHIFT}+1{SHIFT}+1{SHIFT}+1{SHIFT}+1{SHIFT}+1{ENTER}{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{SHIFT}+9{ENTER}{SHIFT}+1{SHIFT}+1{SHIFT}+1{SHIFT}+1{SHIFT}+1&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pyrofyr's room macro====&lt;br /&gt;
Based on Palin88's Apartment design based on Raynard's Fractal Design.&lt;br /&gt;
&lt;br /&gt;
[[File:Pyrofor_room_macro.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Macro by Pyrofyr for Room Design -- Cleaned up by 0x517A5D&lt;br /&gt;
 * Enter (d)esignate mode, position the cursor where you want the&lt;br /&gt;
 * middle of the design to be, then press Ctrl+Alt+D to start the Macro.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
;Attn Pyrofor: for slash-star style comments, the ending star-slash must&lt;br /&gt;
;be the first thing on its line.  Otherwise the comment isn't terminated.&lt;br /&gt;
&lt;br /&gt;
#SingleInstance Force&lt;br /&gt;
#IfWinActive, Dwarf Fortress&lt;br /&gt;
SetKeyDelay 0,, Play&lt;br /&gt;
&lt;br /&gt;
; Ctrl+Alt+D&lt;br /&gt;
^!d::&lt;br /&gt;
send d{NumPadUp 18}{NumPadLeft 18}&lt;br /&gt;
;Attn Pyrofor: note how repeated keystrokes are done in AHK.&lt;br /&gt;
;no need for tehLoop().&lt;br /&gt;
directions()&lt;br /&gt;
send {NumPadRight 18}&lt;br /&gt;
directions()&lt;br /&gt;
send {NumPadLeft 18}&lt;br /&gt;
send {NumPadDown 18}&lt;br /&gt;
directions()&lt;br /&gt;
send {NumPadRight 18}&lt;br /&gt;
directions()&lt;br /&gt;
middle()&lt;br /&gt;
stairs()&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
directions()&lt;br /&gt;
{&lt;br /&gt;
    ;hallway box&lt;br /&gt;
    send {Enter}{NumPadRight 18}{Enter}&lt;br /&gt;
    send {Enter}{NumPadDown 18}{Enter}&lt;br /&gt;
    send {Enter}{NumPadLeft 18}{Enter}&lt;br /&gt;
    send {Enter}{NumPadUp 18}{Enter}&lt;br /&gt;
    ;indentations on box&lt;br /&gt;
    send {Enter}{NumPadRight 1}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadDown 6}{Enter}{NumPadDown 2}{NumPadRight 1}{Enter}&lt;br /&gt;
    send {NumPadLeft 1}{NumPadDown 6}{Enter}{NumPadDown 1}{Enter}&lt;br /&gt;
    send {NumPadRight 6}{Enter}{NumPadRight 4}{Enter}&lt;br /&gt;
    send {NumPadRight 6}{Enter}{NumPadUp 1}{Enter}&lt;br /&gt;
    send {NumPadUp 6}{Enter}{NumPadUp 2}{NumPadLeft 1}{Enter}&lt;br /&gt;
    send {NumPadRight 1}{NumPadUp 6}{Enter}{NumPadUp 1}{Enter}&lt;br /&gt;
    send {NumPadLeft 6}{Enter}{NumPadLeft 4}{Enter}&lt;br /&gt;
    ; middle hallways&lt;br /&gt;
    send {NumPadRight 2}{Enter}{NumPadDown 6}{Enter}&lt;br /&gt;
    send {NumPadRight 1}{Enter}{NumPadDown 4}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadRight 1}{Enter}{NumPadDown 6}{Enter}&lt;br /&gt;
    send {NumPadUp 8}{NumPadLeft 6}{Enter}{NumPadRight 14}{Enter}&lt;br /&gt;
    ; cross apartments, horizontal segments&lt;br /&gt;
    send {NumPadDown 4}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadDown 1}{NumPadLeft 3}{Enter}{NumPadLeft 6}{Enter}&lt;br /&gt;
    send {NumPadUp 1}{NumPadLeft 3}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadDown 3}{NumPadRight 2}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    send {NumPadRight 8}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    send {NumPadUp 5}{NumPadLeft 1}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadLeft 6}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadUp 4}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    send {NumPadRight 6}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    send {NumPadRight 3}{NumPadUp 2}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadUp 1}{NumPadLeft 3}{Enter}{NumPadLeft 6}{Enter}&lt;br /&gt;
    send {NumPadDown 1}{NumPadLeft 3}{Enter}{NumPadLeft 2}{Enter}&lt;br /&gt;
    send {NumPadUp 3}{NumPadRight 2}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    send {NumPadRight 8}{Enter}{NumPadRight 2}{Enter}&lt;br /&gt;
    ; cross apartments, vertical segments&lt;br /&gt;
    send {NumPadRight 1}{NumPadDown 2}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadDown 6}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadDown 3}{NumPadLeft 2}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadLeft 1}{NumPadUp 3}{Enter}{NumPadUp 6}{Enter}&lt;br /&gt;
    send {NumPadRight 1}{NumPadUp 3}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadLeft 3}{NumPadDown 2}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadDown 8}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadLeft 4}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadUp 8}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadUp 2}{NumPadLeft 3}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadRight 1}{NumPadDown 3}{Enter}{NumPadDown 6}{Enter}&lt;br /&gt;
    send {NumPadLeft 1}{NumPadDown 3}{Enter}{NumPadDown 2}{Enter}&lt;br /&gt;
    send {NumPadLeft 2}{NumPadUp 3}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadUp 6}{Enter}{NumPadUp 2}{Enter}&lt;br /&gt;
    send {NumPadUp 4}{NumPadLeft 2}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
middle()&lt;br /&gt;
{&lt;br /&gt;
    send {NumPadUp 10}{NumPadLeft 2}{Enter}{NumPadRight 4}{NumPadDown 20}{Enter}&lt;br /&gt;
    send {NumPadUp 5}{NumPadRight 1}{Enter}{NumPadUp 10}{NumPadLeft 6}{Enter}&lt;br /&gt;
    send {NumPadLeft 1}{NumPadDown 1}{Enter}{NumPadDown 8}{NumPadRight 8}{Enter}&lt;br /&gt;
    send {NumPadUp 2}{NumPadRight 1}{Enter}{NumPadUp 4}{NumPadLeft 10}{Enter}&lt;br /&gt;
    send {NumPadDown 1}{NumPadLeft 6}{Enter}{NumPadDown 2}{NumPadRight 22}{Enter}&lt;br /&gt;
    send {NumPadUp 1}{NumPadLeft 11}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stairs()&lt;br /&gt;
{&lt;br /&gt;
    send i{NumPadUp 18}{NumPadLeft 9}{Enter 2}&lt;br /&gt;
    send {NumPadRight 18}{Enter 2}&lt;br /&gt;
    send {NumPadRight 9}{NumPadDown 9}{Enter 2}&lt;br /&gt;
    send {NumPadLeft 18}{Enter 2}&lt;br /&gt;
    send {NumPadLeft 18}{Enter 2}&lt;br /&gt;
    send {NumPadRight 9}{NumPadDown 9}{Enter 2}&lt;br /&gt;
    send {NumPadRight 18}{Enter 2}&lt;br /&gt;
    send {NumPadRight 9}{NumPadDown 9}{Enter 2}&lt;br /&gt;
    send {NumPadLeft 18}{Enter 2}&lt;br /&gt;
    send {NumPadLeft 18}{Enter 2}&lt;br /&gt;
    send {NumPadDown 9}{NumPadRight 9}{Enter 2}&lt;br /&gt;
    send {NumPadRight 18}{Enter 2}&lt;br /&gt;
    send {NumPadLeft 9}{NumPadUp 18}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Easy Exploration Mining in 2 steps===&lt;br /&gt;
This macro will make a 5 row, 11 column UP/DOWN stairway grid (2 empty spaces between each row/column).&amp;lt;br&amp;gt;&lt;br /&gt;
Starting point as indicated (row 3, column 11)&amp;lt;br&amp;gt;&lt;br /&gt;
'''MUST BE IN DESIGNATION MODE WITH CURSOR AT THE ''&amp;lt;-- START HERE'' LOCATION'''&amp;lt;br&amp;gt;&lt;br /&gt;
Link is &amp;lt;ctrl&amp;gt; &amp;lt;windowskey&amp;gt; `&amp;lt;br&amp;gt;&lt;br /&gt;
Dive is &amp;lt;ctrl&amp;gt; &amp;lt;alt&amp;gt; `&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Link&lt;br /&gt;
X--X--X--X--X--X--X--X--X--X--X&lt;br /&gt;
|              |              |&lt;br /&gt;
|              |              |&lt;br /&gt;
X--X--X--X--X--X--X--X--X--X--X&lt;br /&gt;
|              |              |&lt;br /&gt;
|              |              |&lt;br /&gt;
X--X--X--X--X--X--X--X--X--X--X &amp;lt;-- start here&lt;br /&gt;
|              |              |&lt;br /&gt;
|              |              |&lt;br /&gt;
X--X--X--X--X--X--X--X--X--X--X&lt;br /&gt;
|              |              |&lt;br /&gt;
|              |              |&lt;br /&gt;
X--X--X--X--X--X--X--X--X--X--X&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Filename is ExploreMine-Link.ahk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;Link&lt;br /&gt;
^#`::&lt;br /&gt;
&lt;br /&gt;
send d&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadLeft}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(6,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(12,&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadLeft}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(9,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(6,&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadLeft}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(15,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(12,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
send {Enter}&lt;br /&gt;
tehLoop(15,&amp;quot;{NumPadLeft}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send i&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(6,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tehLoop(tehTimes,tehDir)&lt;br /&gt;
{&lt;br /&gt;
	loop&lt;br /&gt;
	{&lt;br /&gt;
		if tehTimes &amp;lt;= 0&lt;br /&gt;
		{&lt;br /&gt;
			break&lt;br /&gt;
		}&lt;br /&gt;
		send %tehDir%&lt;br /&gt;
		tehTimes--&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tehOtherLoop(tehOtherDir)&lt;br /&gt;
{&lt;br /&gt;
	loop 4&lt;br /&gt;
	{		&lt;br /&gt;
		tehLoop(3,tehOtherDir)		&lt;br /&gt;
		send {Enter}{Enter}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Dive&lt;br /&gt;
X  X  X  X  X  X  X  X  X  X  X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
X  X  X  X  X  X  X  X  X  X  X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
X  X  X  X  X  X  X  X  X  X  X &amp;lt;-- start here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
X  X  X  X  X  X  X  X  X  X  X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
X  X  X  X  X  X  X  X  X  X  X&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Filename is ExploreMine-Dive.ahk&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;Dive&lt;br /&gt;
^!`::&lt;br /&gt;
tehLoop(30,&amp;quot;{NumPadLeft}&amp;quot;)&lt;br /&gt;
tehLoop(6,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send i&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
tehLoop(3,&amp;quot;{NumPadRight}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
send {Enter}{Enter}&lt;br /&gt;
tehOtherLoop(&amp;quot;{NumPadDown}&amp;quot;)&lt;br /&gt;
tehLoop(6,&amp;quot;{NumPadUp}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tehLoop(tehTimes,tehDir)&lt;br /&gt;
{&lt;br /&gt;
	loop&lt;br /&gt;
	{&lt;br /&gt;
		if tehTimes &amp;lt;= 0&lt;br /&gt;
		{&lt;br /&gt;
			break&lt;br /&gt;
		}&lt;br /&gt;
		send %tehDir%&lt;br /&gt;
		tehTimes--&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tehOtherLoop(tehOtherDir)&lt;br /&gt;
{&lt;br /&gt;
	loop 4&lt;br /&gt;
	{		&lt;br /&gt;
		tehLoop(3,tehOtherDir)		&lt;br /&gt;
		send {Enter}{Enter}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fancy Exploration Mining===&lt;br /&gt;
This script digs a connected series of mine shafts, as in [[Mineshaft Stitching]]. Start this script in the upper-left corner of the area you want to explore. Set the spacing to a value greater than 1 if you want to look for large clusters. Note that this pattern creates a very long walkway back to the start of the mineshafts. If you do not excavate routinely, consider connecting the top-level paths of areas you have already explored.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; stitching.ahk					   ;&lt;br /&gt;
 ; this is an ahk script to place exploratory mine shafts. ;&lt;br /&gt;
 ; press d and place the cursor				   ;&lt;br /&gt;
 ; in the top left corner of the area to be explored	   ;&lt;br /&gt;
 ; then use ctrl+shift+s to run				   ;&lt;br /&gt;
 ; to change parameters, use ctrl+shift+c		   ; &lt;br /&gt;
 ; Increasing spacing will increase some shafts		   ;&lt;br /&gt;
 ; This version resets it's state so that it can be re-run ;&lt;br /&gt;
 ; without having to reload the script			   ;&lt;br /&gt;
 ;							   ;&lt;br /&gt;
 ; NOTE:					           ;&lt;br /&gt;
 ; Author: Corey Amend					   ;&lt;br /&gt;
 ; Based on a script by Seth Fogarty,		           ;&lt;br /&gt;
 ; Which was based on a script by StrawberryBunny	   ;&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
x = 4&lt;br /&gt;
y = 4&lt;br /&gt;
depth = 3&lt;br /&gt;
wait =  100&lt;br /&gt;
spacing = 1&lt;br /&gt;
vdir = +.&lt;br /&gt;
&lt;br /&gt;
DropShaft(vertdir, depth, wait)&lt;br /&gt;
{&lt;br /&gt;
	Send i&lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Loop %depth%&lt;br /&gt;
	{&lt;br /&gt;
		Send %vertdir%&lt;br /&gt;
		Send {Enter}&lt;br /&gt;
		Send {Enter}&lt;br /&gt;
		Sleep %wait%&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 ^+c::&lt;br /&gt;
inputbox x, Input Length, Vertical pattern length: x-axis&lt;br /&gt;
inputbox y, Input Width, Horizontal pattern width: y-axis&lt;br /&gt;
inputbox depth, Input Depth, Mineshaft depth: z-axis&lt;br /&gt;
inputbox spacing, Input Spacing, Spacing multiplier (1 for complete visiblity)&lt;br /&gt;
inputbox wait, Input Delay, Delay in miliseconds (100 recommended)&lt;br /&gt;
return &lt;br /&gt;
&lt;br /&gt;
 ^+s::&lt;br /&gt;
shafts := (x * y) -1&lt;br /&gt;
i := x-1&lt;br /&gt;
hdir = {Down}&lt;br /&gt;
next = {Up} &lt;br /&gt;
&lt;br /&gt;
Loop %shafts%&lt;br /&gt;
{&lt;br /&gt;
	DropShaft(vdir, depth, wait)&lt;br /&gt;
        if (vdir = &amp;quot;+.&amp;quot;) &lt;br /&gt;
	{&lt;br /&gt;
		vdir = +,&lt;br /&gt;
	}	&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		vdir = +.&lt;br /&gt;
	}&lt;br /&gt;
	Send d&lt;br /&gt;
	k := spacing-1&lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Loop %k%&lt;br /&gt;
	{&lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Send {Enter}&lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Send {Enter}&lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Sleep %wait%&lt;br /&gt;
	}&lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Sleep %wait%&lt;br /&gt;
	i--&lt;br /&gt;
	if (i = 0)&lt;br /&gt;
	{&lt;br /&gt;
		if (hdir = &amp;quot;{Down}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = {Right}&lt;br /&gt;
			next = {Up}&lt;br /&gt;
			i=1&lt;br /&gt;
		}&lt;br /&gt;
		else if (hdir = &amp;quot;{Right}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = %next%&lt;br /&gt;
			i := x-1&lt;br /&gt;
		}&lt;br /&gt;
		else if (hdir = &amp;quot;{Up}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = {Right}&lt;br /&gt;
			next = {Down}&lt;br /&gt;
			i=1&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
DropShaft(vdir, depth, wait)&lt;br /&gt;
if (vdir = &amp;quot;+.&amp;quot;) &lt;br /&gt;
{&lt;br /&gt;
	Loop %depth%&lt;br /&gt;
	{&lt;br /&gt;
		Send +,&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
	vdir = +.&lt;br /&gt;
}	&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Upstairs Mineshaft Finisher===&lt;br /&gt;
This script is used to create a series of up staircases in a pattern for use with mineshaft scripts (like the mineshaft stitching above). Most mineshaft scripts use up/down staircases all the way to the bottom, but the lowest z-level will not allow up/down staircases so you mineshafts will be unfinished. This script allows you to correct this problem and place up stairs where the up/down stairs would be.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; Upstair stitching.ahk				   ;&lt;br /&gt;
 ; this is an ahk script to place up stairs at regular	   ;&lt;br /&gt;
 ; intervals (useful for completing mine shafts).	   ;&lt;br /&gt;
 ; press d and place the cursor				   ;&lt;br /&gt;
 ; in the top left corner of the area to be explored	   ;&lt;br /&gt;
 ; then use ctrl+shift+u to run				   ;&lt;br /&gt;
 ; to change parameters, use ctrl+shift+p		   ; &lt;br /&gt;
 ; Increasing spacing will increase some shafts		   ;&lt;br /&gt;
 ;							   ;&lt;br /&gt;
 ; NOTE:					           ;&lt;br /&gt;
 ; Author: Corey Amend					   ;&lt;br /&gt;
 ; Based on a script by Seth Fogarty,		           ;&lt;br /&gt;
 ; Which was based on a script by StrawberryBunny	   ;&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
x = 4&lt;br /&gt;
y = 4&lt;br /&gt;
wait =  100&lt;br /&gt;
spacing = 1&lt;br /&gt;
vdir = +.&lt;br /&gt;
&lt;br /&gt;
 ^+p::&lt;br /&gt;
inputbox x, Input Length, Vertical pattern length: x-axis&lt;br /&gt;
inputbox y, Input Width, Horizontal pattern width: y-axis&lt;br /&gt;
inputbox spacing, Input Spacing, Spacing multiplier (1 for complete visiblity)&lt;br /&gt;
inputbox wait, Input Delay, Delay in miliseconds (100 recommended)&lt;br /&gt;
return &lt;br /&gt;
&lt;br /&gt;
 ^+u::&lt;br /&gt;
shafts := (x * y) -1&lt;br /&gt;
i := x-1&lt;br /&gt;
hdir = {Down}&lt;br /&gt;
next = {Up} &lt;br /&gt;
&lt;br /&gt;
Loop %shafts%&lt;br /&gt;
{&lt;br /&gt;
	Send u&lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Send {Enter}&lt;br /&gt;
	Sleep %wait%&lt;br /&gt;
&lt;br /&gt;
	k := spacing-1&lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Loop %k%&lt;br /&gt;
	{&lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Send %hdir% &lt;br /&gt;
		Sleep %wait%&lt;br /&gt;
	}&lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Send %hdir% &lt;br /&gt;
	Sleep %wait%&lt;br /&gt;
	i--&lt;br /&gt;
	if (i = 0)&lt;br /&gt;
	{&lt;br /&gt;
		if (hdir = &amp;quot;{Down}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = {Right}&lt;br /&gt;
			next = {Up}&lt;br /&gt;
			i=1&lt;br /&gt;
		}&lt;br /&gt;
		else if (hdir = &amp;quot;{Right}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = %next%&lt;br /&gt;
			i := x-1&lt;br /&gt;
		}&lt;br /&gt;
		else if (hdir = &amp;quot;{Up}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			hdir = {Right}&lt;br /&gt;
			next = {Down}&lt;br /&gt;
			i=1&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
Send u&lt;br /&gt;
Send {Enter}&lt;br /&gt;
Send {Enter}&lt;br /&gt;
Sleep %wait%&lt;br /&gt;
&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Interface Enhancement Scripts===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====The MOUSE control====&lt;br /&gt;
For unrivaled mouse control in DF try [http://www.dwarffortresswiki.net/index.php/User:Digger this DF Mouse script]&lt;br /&gt;
&lt;br /&gt;
====Tile Counter or Scrolling Accelerator====&lt;br /&gt;
Lack of reference plus slow scroll speed make planning digging area frustrating,so here is the script that shows coordinate and speed scrolling up.&lt;br /&gt;
[http://www.dwarffortresswiki.net/index.php/User:Daedalusai ShowXY]&lt;br /&gt;
&lt;br /&gt;
===4-Pour Water Creation script===&lt;br /&gt;
For Automating creation of water using Gibbeds Tweak.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
;	4-pour.ahk&lt;br /&gt;
;	Dwarf fortress water creation script.&lt;br /&gt;
;&lt;br /&gt;
;Use this script in conjunction with Gibbeds Dwarf Fortress Tweak to create endless amounts of water.;&lt;br /&gt;
;&lt;br /&gt;
;Directions&lt;br /&gt;
;&lt;br /&gt;
;1. Have DF running and position the screen such that when you press &amp;quot;K&amp;quot; the X will appear where you &lt;br /&gt;
&lt;br /&gt;
;want the water to appear.&lt;br /&gt;
;2. Have Gbbed's Dwarf Fortress tweak running in the background (with the proper process selected)&lt;br /&gt;
;3. run the 4-pour script&lt;br /&gt;
;4. press alt-p to get Pouring&lt;br /&gt;
;&lt;br /&gt;
;The script will then begin a cycle that moves the cursor around in a little 2x2 square editing each &lt;br /&gt;
&lt;br /&gt;
;tile to have 7/7 of water, it then pauses for a half a seond to let the water flow a bit, and repeats. &lt;br /&gt;
&lt;br /&gt;
;It does this until you..&lt;br /&gt;
;&lt;br /&gt;
;5. press and hold &amp;lt;shift&amp;gt; to stop&lt;br /&gt;
;&lt;br /&gt;
;As always, save before you experiment with this&lt;br /&gt;
;I hold no responsibility for what this script ends up doing to your dwarves/fortress/computer/carpet&lt;br /&gt;
;Feel free to clean it up, make it more usable, whatever&lt;br /&gt;
;&lt;br /&gt;
;&lt;br /&gt;
&lt;br /&gt;
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.&lt;br /&gt;
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.&lt;br /&gt;
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.&lt;br /&gt;
&lt;br /&gt;
!p::&lt;br /&gt;
loop &lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
GetKeyState, state, Shift&lt;br /&gt;
if state = D&lt;br /&gt;
    Break&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IfWinActive Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
send k&lt;br /&gt;
sleep 100&lt;br /&gt;
  send {NumpadRight}&lt;br /&gt;
&lt;br /&gt;
IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0]&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
click 38, 184, 2&lt;br /&gt;
sleep 100&lt;br /&gt;
&lt;br /&gt;
IfWinExist Tile Edit&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
click 63, 448&lt;br /&gt;
sleep 100&lt;br /&gt;
click 106, 70&lt;br /&gt;
sleep 100&lt;br /&gt;
click 207, 255&lt;br /&gt;
sleep 100&lt;br /&gt;
send {backspace}&lt;br /&gt;
sleep 100&lt;br /&gt;
send 7&lt;br /&gt;
sleep 100&lt;br /&gt;
click 348, 449&lt;br /&gt;
sleep 100&lt;br /&gt;
IfWinExist Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
  send {NumpadDown}&lt;br /&gt;
&lt;br /&gt;
IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0]&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
click 38, 184, 2&lt;br /&gt;
sleep 100&lt;br /&gt;
&lt;br /&gt;
IfWinExist Tile Edit&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
click 63, 448&lt;br /&gt;
sleep 100&lt;br /&gt;
click 106, 70&lt;br /&gt;
sleep 100&lt;br /&gt;
click 207, 255&lt;br /&gt;
sleep 100&lt;br /&gt;
send {backspace}&lt;br /&gt;
sleep 100&lt;br /&gt;
send 7&lt;br /&gt;
sleep 100&lt;br /&gt;
click 348, 449&lt;br /&gt;
sleep 100&lt;br /&gt;
IfWinExist Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
  send {NumpadLeft}&lt;br /&gt;
&lt;br /&gt;
IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0]&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
click 38, 184, 2&lt;br /&gt;
sleep 100&lt;br /&gt;
&lt;br /&gt;
IfWinExist Tile Edit&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
click 63, 448&lt;br /&gt;
sleep 100&lt;br /&gt;
click 106, 70&lt;br /&gt;
sleep 100&lt;br /&gt;
click 207, 255&lt;br /&gt;
sleep 100&lt;br /&gt;
send {backspace}&lt;br /&gt;
sleep 100&lt;br /&gt;
send 7&lt;br /&gt;
sleep 100&lt;br /&gt;
click 348, 449&lt;br /&gt;
sleep 100&lt;br /&gt;
IfWinExist Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
  send {NumpadUp}&lt;br /&gt;
&lt;br /&gt;
IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0]&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
click 38, 184, 2&lt;br /&gt;
sleep 100&lt;br /&gt;
&lt;br /&gt;
IfWinExist Tile Edit&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
sleep 100&lt;br /&gt;
click 63, 448&lt;br /&gt;
sleep 100&lt;br /&gt;
click 106, 70&lt;br /&gt;
sleep 100&lt;br /&gt;
click 207, 255&lt;br /&gt;
sleep 100&lt;br /&gt;
send {backspace}&lt;br /&gt;
sleep 100&lt;br /&gt;
send 7&lt;br /&gt;
sleep 100&lt;br /&gt;
click 348, 449&lt;br /&gt;
sleep 100&lt;br /&gt;
IfWinExist Dwarf Fortress&lt;br /&gt;
{&lt;br /&gt;
    WinActivate&lt;br /&gt;
}&lt;br /&gt;
send {space}&lt;br /&gt;
sleep 800&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tesselated Apartments Builder===&lt;br /&gt;
&lt;br /&gt;
This one is another tesselated apartments script, with some larger areas added. Credit for layout to GnomeChomsky.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
;&lt;br /&gt;
; TessApts.ahk&lt;br /&gt;
; Start script while in 'dig' mode with cursor on desired position of leftmost staircase&lt;br /&gt;
;&lt;br /&gt;
; CTRL+G       : Central room, 8 apartments (necessary on at least one z-level)&lt;br /&gt;
; ALT+G        : No central room, 16 apartments&lt;br /&gt;
; CTRL+ALT+G   : Four &amp;quot;central room&amp;quot; layouts connected in center (28 apartments)&lt;br /&gt;
; CTRL+SHIFT+G : Four &amp;quot;16 apartment&amp;quot; layouts, unconnected in center&lt;br /&gt;
;&lt;br /&gt;
!g::&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}114444444&lt;br /&gt;
return&lt;br /&gt;
^g::&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}&lt;br /&gt;
Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}&lt;br /&gt;
return&lt;br /&gt;
!^g::&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}&lt;br /&gt;
Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}88899999999&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}&lt;br /&gt;
Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}3333332&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}&lt;br /&gt;
Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}111114444444&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}&lt;br /&gt;
Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}&lt;br /&gt;
Send 9988888888{ENTER}999{ENTER}+444444&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
+^g::&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}888889&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+221&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+1+46&lt;br /&gt;
Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER}&lt;br /&gt;
Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}&lt;br /&gt;
Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}&lt;br /&gt;
Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+71144444&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===File pattern builder===&lt;br /&gt;
&lt;br /&gt;
This is a script to create a macro out of any building pattern you like. If you like tesselated, this script will do it. If you like blocky, this script can do that, too. Just create a text file that contains the pattern you want to use and this macro will create it like nobody's business.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
 ; File Pattern.ahk				   	   ;&lt;br /&gt;
 ; this is an ahk script to read a text file and use	   ;&lt;br /&gt;
 ; the pattern contained inside as a blueprint for digging ;&lt;br /&gt;
 ; press d and place the cursor				   ;&lt;br /&gt;
 ; in a corner of the area to be explored		   ;&lt;br /&gt;
 ; then use ctrl+shift+d to run				   ;&lt;br /&gt;
 ; to change parameters, use ctrl+shift+f		   ; &lt;br /&gt;
 ;							   ;&lt;br /&gt;
 ; NOTE:					           ;&lt;br /&gt;
 ; Author: Corey Amend					   ;&lt;br /&gt;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;br /&gt;
&lt;br /&gt;
filename = C:\pattern.txt&lt;br /&gt;
loc = ul&lt;br /&gt;
wait = 100&lt;br /&gt;
&lt;br /&gt;
wallsymbol = 1&lt;br /&gt;
floorsymbol = 0&lt;br /&gt;
updownsymbol = 2&lt;br /&gt;
downsymbol = 3&lt;br /&gt;
upsymbol = 4&lt;br /&gt;
rampsymbol = 5&lt;br /&gt;
channelsymbol = 6&lt;br /&gt;
&lt;br /&gt;
digcommand = d&lt;br /&gt;
upcommand = u&lt;br /&gt;
downcommand = j&lt;br /&gt;
updowncommand = i&lt;br /&gt;
rampcommand = r&lt;br /&gt;
channelcommand = h&lt;br /&gt;
&lt;br /&gt;
hdir = {Right}&lt;br /&gt;
vdir = {Down}&lt;br /&gt;
&lt;br /&gt;
upperleft = ul&lt;br /&gt;
upperright = ur&lt;br /&gt;
lowerleft = ll&lt;br /&gt;
lowerright = lr&lt;br /&gt;
&lt;br /&gt;
inrun = 0&lt;br /&gt;
&lt;br /&gt;
 ^+f::&lt;br /&gt;
inputbox filename, Enter Path, Enter the full path to the file that contains the pattern to use&lt;br /&gt;
inputbox loc, Enter Cursor Location, Enter the location of the cursor within the pattern (Upper Left = ul`, Lower Right = lr...etc.)&lt;br /&gt;
inputbox wait, Enter Delay, Enter the delay to use (default is 100)&lt;br /&gt;
return&lt;br /&gt;
&lt;br /&gt;
 ^+d::&lt;br /&gt;
&lt;br /&gt;
IfExist,  %filename%&lt;br /&gt;
{&lt;br /&gt;
	FileRead, contents, %filename%&lt;br /&gt;
	StringSplit Array, contents, `r, `n&lt;br /&gt;
&lt;br /&gt;
	if (loc = upperleft)&lt;br /&gt;
	{&lt;br /&gt;
		hdir = {Right}&lt;br /&gt;
		vdir = {Down}&lt;br /&gt;
	}&lt;br /&gt;
	else if (loc = upperright)&lt;br /&gt;
	{&lt;br /&gt;
		hdir = {Left}&lt;br /&gt;
		vdir = {Down}&lt;br /&gt;
	}&lt;br /&gt;
	else if (loc = lowerleft)&lt;br /&gt;
	{&lt;br /&gt;
		hdir = {Right}&lt;br /&gt;
		vdir = {Up}&lt;br /&gt;
	}&lt;br /&gt;
	else if (loc = lowerright)&lt;br /&gt;
	{&lt;br /&gt;
		hdir = {Left}&lt;br /&gt;
		vdir = {Up}&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		MsgBox, Invalid cursor location!&lt;br /&gt;
		return&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	Loop %Array0%&lt;br /&gt;
	{&lt;br /&gt;
		if (loc = upperleft || loc = upperright)&lt;br /&gt;
		{&lt;br /&gt;
			current_line = %a_index%&lt;br /&gt;
		}&lt;br /&gt;
		else if (loc = lowerleft || loc = lowerright)&lt;br /&gt;
		{&lt;br /&gt;
			current_line := (Array0 - a_index + 1)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		current_value := Array%current_line%&lt;br /&gt;
		&lt;br /&gt;
		len := StrLen(current_value)&lt;br /&gt;
&lt;br /&gt;
		if (hdir = &amp;quot;{Left}&amp;quot;)&lt;br /&gt;
		{&lt;br /&gt;
			new_value =&lt;br /&gt;
&lt;br /&gt;
			Loop %len%&lt;br /&gt;
			{&lt;br /&gt;
				new_value := new_value . SubStr(current_value, (len - a_index) + 1, 1)&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			current_value := new_value&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		Loop %len%&lt;br /&gt;
		{&lt;br /&gt;
			current_char := SubStr(current_value, a_index, 1)&lt;br /&gt;
&lt;br /&gt;
			if (current_char != wallsymbol)&lt;br /&gt;
			{				&lt;br /&gt;
				if (!inrun)&lt;br /&gt;
				{&lt;br /&gt;
					if (current_char = floorsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %digcommand%&lt;br /&gt;
					}&lt;br /&gt;
					else if (current_char = updownsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %updowncommand%&lt;br /&gt;
					}&lt;br /&gt;
					else if (current_char = downsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %downcommand%&lt;br /&gt;
					}&lt;br /&gt;
					else if (current_char = upsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %upcommand%&lt;br /&gt;
					}&lt;br /&gt;
					else if (current_char = rampsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %rampcommand%&lt;br /&gt;
					}&lt;br /&gt;
					else if (current_char = channelsymbol)&lt;br /&gt;
					{&lt;br /&gt;
						Send %channelcommand%&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					Send {Enter}&lt;br /&gt;
					inrun = 1&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				;;If we're at the end of a line or the next char is different, then end the run&lt;br /&gt;
				if ((a_index &amp;gt;= len) || (current_char != SubStr(current_value, a_index + 1, 1)))&lt;br /&gt;
				{&lt;br /&gt;
					Send {Enter}&lt;br /&gt;
					inrun = 0&lt;br /&gt;
					Sleep %wait%&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if (a_index &amp;lt; len)&lt;br /&gt;
			{&lt;br /&gt;
				Send %hdir%&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if (a_index &amp;lt; Array0)&lt;br /&gt;
		{&lt;br /&gt;
			Send %vdir%&lt;br /&gt;
&lt;br /&gt;
			if (hdir = &amp;quot;{Right}&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				hdir = {Left}&lt;br /&gt;
			}&lt;br /&gt;
			else if (hdir = &amp;quot;{Left}&amp;quot;)&lt;br /&gt;
			{&lt;br /&gt;
				hdir = {Right}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
	MsgBox File not found&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample file to show how this all works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
111111&lt;br /&gt;
100001&lt;br /&gt;
100201&lt;br /&gt;
103001&lt;br /&gt;
100401&lt;br /&gt;
105001&lt;br /&gt;
100601&lt;br /&gt;
100001&lt;br /&gt;
111111&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This creates a room filled with up/down stairs, a ramp, and a channel.&lt;br /&gt;
&lt;br /&gt;
And finally, here's a sample pattern based on the decentralized workshop:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1111111111111111111111111111111111111&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000000000000000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000111101111111110111111111011110001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000000000000010000000100000000000001&lt;br /&gt;
1000111101111000100010001111011110001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1101100010001000100010001000100011011&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000111101111111100011111111011110001&lt;br /&gt;
1000100000000000030400000000000010001&lt;br /&gt;
1010000000000000030400000000000000101&lt;br /&gt;
1000100000000000030400000000000010001&lt;br /&gt;
1000111101111111100011111111011110001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1101100010001000100010001000100011011&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000111101111000100010001111011110001&lt;br /&gt;
1000000000000010000000100000000000001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000100000001000100010001000000010001&lt;br /&gt;
1000111101111111110111111111011110001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000000000000000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1000000000000001000001000000000000001&lt;br /&gt;
1111111111111111111111111111111111111&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Game_Interface FAQ}}&lt;br /&gt;
[[Category:ahk scripts]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=58515</id>
		<title>40d:Utilities</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Utilities&amp;diff=58515"/>
		<updated>2009-11-21T17:59:36Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* 3D Visualizers */ stonesense has a wiki page, so link to it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are third party applications developed for Dwarf Fortress.&lt;br /&gt;
__TOC__&lt;br /&gt;
== [http://dffd.wimbli.com/ Dwarf Fortress File Depot] ==&lt;br /&gt;
The Dwarf Fortress File Upload Service - an excellent place to store mods, community games, tilesets and other files. Courtesy of [[User:Janus|Janus]]; for files related to Dwarf Fortress only.&lt;br /&gt;
&lt;br /&gt;
== 3D Visualizers ==&lt;br /&gt;
&lt;br /&gt;
=== [[Stonesense (visualizer)|Stonesense]] by Jonask, Solifuge and Kaypy ===&lt;br /&gt;
[[File:stonesense.jpg|208px|thumb|right|Stonesense Screenshot]]&lt;br /&gt;
&lt;br /&gt;
Stonesense is a third party visualizer that lets you view your Dwarf Fortress world in a classic isometric perspective.&lt;br /&gt;
&lt;br /&gt;
More information is available in [http://www.bay12games.com/forum/index.php?topic=43260.0 this forum thread].&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=39541.0 Visual Fortress] by Baboonanza ===&lt;br /&gt;
&lt;br /&gt;
This is Baboonanza's 3D visualisation application. It's focused on displaying mega-projects and landscapes accurately and hopefully beautifully. Basically like 3Dwarf, but more advanced.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=608.0 3Dwarf Visualizer] ===&lt;br /&gt;
&lt;br /&gt;
This is NOT real time! Dwarvis has the ability to be real time, though 3Dwarf is much more recommended. What this does is read the map out of your computer's memory when Dwarf Fortress is running and save it to a file it can read. It can then open that file and show you your fort in glorious 3D. Still in beta, obviously.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=34633.0 Khazad] ===&lt;br /&gt;
&lt;br /&gt;
A related fortress viewing engine utilizing memory extraction and saving similar to 3Dwarf, Khazad uses an Isometric perspective reminiscent of SimCity200 &amp;amp; Transport Tycoon while also allowing very free form camera control in a full 3D environment.  Khazad is compatible with 40d and 40d11 and entirely open source being licensed under the GPL, source and binary packages are available at [http://sourceforge.net/projects/khazad/ SourceForge].  Development is active and participation is welcome.&lt;br /&gt;
&lt;br /&gt;
=== [http://code.google.com/p/dwarvis/ Dwarvis/MapExtract] (Outdated) ===&lt;br /&gt;
&lt;br /&gt;
This project is meant as a 3rd party utility for the cult-game dwarf fortress. Its purpose is to eventually provide 3-dimensional visualization of static snapshots of the ingame world of a given fortress.&lt;br /&gt;
&lt;br /&gt;
== Movies, Screenshots, Map Files ==&lt;br /&gt;
&lt;br /&gt;
=== DF Map Compressor / DF Map Archive ===&lt;br /&gt;
&lt;br /&gt;
*[http://shadowlord13.googlepages.com/dfmap-index.html SL's DF Map Compressor - Website]&lt;br /&gt;
*[http://mkv25.net/dfma/ Dwarf Fortress Map Archive]&lt;br /&gt;
&lt;br /&gt;
The DF Map Compressor encodes multiple bitmaps exported from Dwarf Fortress into a single, very compressed, .fdf-map file. The fdf-map file can then be shared with your friends by uploading to the DF Map Archive that features an online viewer (written in Flash).&lt;br /&gt;
&lt;br /&gt;
The map compressor was created by Shadowlord in May 2007. Extract from the website :&lt;br /&gt;
:&amp;quot;The '''DF Map Compressor''' is a program I made to encode Dwarf Fortress fortress or world map images into a much smaller format than is possible with normal image formats. Here's a quick summary of how it works: It determines the size of your tiles from your DF font file (or asks you), splits the map up into tiles, identifies duplicate tiles, writes out every unique tile image, and then writes out a list of ID#s for each tile position which points to the tile image for that tile. What it outputs is piped through the LZMA compressor (the one used in 7-zip), to compress it further. The .df-map file which it writes out is usually less than 100 KB in size. (By comparison, a PNG of the same map can exceed 2 megabytes, depending on how well you compress it, whether you change the color depth, and whether you are using a graphical tileset or detailed font).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Read more about the [[User:Markavian/DF_Map_Archive|DF Map Archive]] on Markavian's User page.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.geocities.com/jifodus/CMVPlayer.zip CMVPlayer] === &lt;br /&gt;
&lt;br /&gt;
First released by Jifodus in April 2007. This application enables playback of the DF movies (.cmv) without starting DF. It also provides some more functionalities, such as :&lt;br /&gt;
* Rewind&lt;br /&gt;
* Pause&lt;br /&gt;
* Play frame per frame&lt;br /&gt;
&lt;br /&gt;
To use, simply unzip the file, and drop and drag the movie on CMVPlayer.exe.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=389 DwarfHeightmap] ===&lt;br /&gt;
&lt;br /&gt;
A utility that imports 24bit greyscale bitmaps into world_gen.txt for use in DF's map generator.&lt;br /&gt;
&lt;br /&gt;
=== Terrain Visualizer ===&lt;br /&gt;
&lt;br /&gt;
View worldmaps in 3D! This utilizes version 0.28.181.39d's built in Legends Mode map exporter and a generic HeightMap terrain visualizer.  Nothing super fancy, but neat to look at.&lt;br /&gt;
Get the [http://www.alpix.com/3d/TerrainViewer/ 3D Terrain Viewer] here, follow the instructions in the [http://www.bay12games.com/forum/index.php?topic=21468 Bay12Forums Thread] if you need help getting set up.&lt;br /&gt;
&lt;br /&gt;
Or if you want super pretty maps, [http://www.bay12games.com/forum/index.php?topic=21469.0 see this topic], and get [http://www.planetside.co.uk/terragen/download.shtml Terragen]!&lt;br /&gt;
&lt;br /&gt;
==Major Utilities==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Bartavelle/DwarfCompanion|Dwarf Companion]] ===&lt;br /&gt;
&lt;br /&gt;
Created by [[User:Bartavelle|Bartavelle]], the Dwarf Companion is a graphical helper utility for dwarf fortress that aims to fill the gaps in the user interface. It allows for some nefarious cheating. For example, you can now mark your nobles as butcherable, and change possessed dwarves to fey moods.&lt;br /&gt;
&lt;br /&gt;
=== [http://dwarfmanager.sourceforge.net/ Dwarf Manager] ===&lt;br /&gt;
&lt;br /&gt;
Dwarf Manager is inspired by Dwarf Foreman (below) and has a similar overall layout, but improved features. You can not only assign jobs to profession groups but also to individual dwarves; you can view their current skill for a given job displayed handily in the job grid; and you can also change their personal and profession names straight from the interface. The program handles social and military skills as well.&lt;br /&gt;
In addition the program can be customized and updated by editing the included .xml files.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.pavlovian.net/foreman/ Dwarf Foreman] ===&lt;br /&gt;
&lt;br /&gt;
Makes switching jobs on and off for large numbers of dwarves simple. Dwarves are grouped by their profession, or custom profession if they have one. By clicking on the graph you can enable any job for all dwarves with that profession. Still in alpha for this version of DF, if it doesn't recognize one of the new professions, check the file '''debug.txt''' in the directory you run foreman from.&lt;br /&gt;
&lt;br /&gt;
Though prone to crashing currently, saving and exiting DF, starting foreman and then starting DF again will usually get it working again. Zorba would also appreciate it if you'd email him the crash log located in the Dwarf Foreman directory when this happens (zorba-foremancrash@pavlovian.net).&lt;br /&gt;
&lt;br /&gt;
Dwarf Foreman currently allows you to change the jobs of visiting merchants, outpost liaisons, children, and any other dwarves that aren't normally controllable. It is unsupported but occasionally hilarious, and allows you to finally put those lazy dwarven children to work.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
To make Foreman compatible with '''v0.28.181.40d''', update config file as shown below. Use the [[Talk:Utilities#Dwarf Foreman|talk page]] for previous versions of DF.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
check=032e4b67&lt;br /&gt;
critter_start=01583224&lt;br /&gt;
dwarfidpos=0138f690&lt;br /&gt;
profession_start=0474&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' A Dwarf Foreman-like utility, with an expanded feature set, is also available. See Dwarf Manager below.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=695 Mac Foreman] ===&lt;br /&gt;
&lt;br /&gt;
This is a MacOSX 10.5 port of Dwarf Foreman.&lt;br /&gt;
&lt;br /&gt;
Source code is available.&lt;br /&gt;
&lt;br /&gt;
Dwarf Fortress version: '''v0.28.181.40d'''&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=39229.0 Dwarf Therapist] ===&lt;br /&gt;
&lt;br /&gt;
Reported to be an improvement over Dwarf Manager.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Rick/Tweak|Gibbed's Dwarf Fortress Tweak]] ===&lt;br /&gt;
&lt;br /&gt;
A toolset with many modules for tweaking / editing Dwarf Fortress memory.&lt;br /&gt;
&lt;br /&gt;
=== [http://sun2design.com/quickfort/ Quickfort] ===&lt;br /&gt;
&lt;br /&gt;
Quickfort is an AutoHotkey-based utility for Dwarf Fortress that helps you build fortresses from &amp;quot;blueprint&amp;quot; .CSV files (comma separated values). These files are easily created and edited in an app like Excel. Most building-oriented DF commands are supported through the use of multiple .CSV files to describe the different phases of DF construction (designation, building, stockpiles, and making adjustments).&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=18623.0 Modbase] ===&lt;br /&gt;
&lt;br /&gt;
Modbase is a great tool made by Sean Mirrsen which allows you to freely swap mods and tweak game settings. For version 0.38c.&lt;br /&gt;
&lt;br /&gt;
=== DF Raw Editor ===&lt;br /&gt;
&lt;br /&gt;
DF Raw Editor is a brand new tool created to help edit the raw files.&lt;br /&gt;
It is available [http://www.bay12games.com/forum/index.php?topic=40413.0 here].&lt;br /&gt;
For version 0.40d&lt;br /&gt;
&lt;br /&gt;
== Minor Utilities ==&lt;br /&gt;
&lt;br /&gt;
=== DF Log Parser ===&lt;br /&gt;
&lt;br /&gt;
A perl script written by Mephansteras that parses through the logs to show what civs owned what sites, what their overall populations were, and what the overall population levels of cave critters were. The output file makes it pretty easy to see how the various races are doing.&lt;br /&gt;
&lt;br /&gt;
You will see:&lt;br /&gt;
Each Civilization, with overall ruler. Each site in that civ, with the local ruler. A summary of every entity in that civ.&lt;br /&gt;
A summary of every civ, by race&lt;br /&gt;
A listing of every Ruin&lt;br /&gt;
A listing of the total populations of cave critters&lt;br /&gt;
A listing of the total populations of civilized creatures&lt;br /&gt;
&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=299 Raw perl script] - requires perl&lt;br /&gt;
[http://dffd.wimbli.com/file.php?id=311 Executable version] - does not require perl&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=278 DF World Generator] ===&lt;br /&gt;
&lt;br /&gt;
Swiftly written supplement to the command line world generator. Written in Python, so you have to have Python installed to use this. It must be run from the command line and be in the DF Directory to work. Running the program with no parameters will provoke a short help-me dialog which will explain how to run it properly.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=949.0 Dtil] ===&lt;br /&gt;
&lt;br /&gt;
Dtil is a general purpose tool host that supplies a dynamically generated SDK for plugin authors.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21351.0 Embark Anywhere] ===&lt;br /&gt;
&lt;br /&gt;
Code based on 0x517A5D's Regional Prospector (above), allows you to embark ANYWHERE, how well that works depends on where you decide to go. Pure water areas are a suggested no as you can't do anything.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=443 Enable Magma Buildings] ===&lt;br /&gt;
&lt;br /&gt;
You need this utility in the case that you used the reveal utility before discovering any subsurface magma, or if you have reclaimed a fortress whose magma source has already been discovered.{{version|0.28.181.40d}} (If the hide utility is ever updated, you could also hide a few magma tiles and then dig them out.  That worked in the old version.) Because there is no actual flag that controls whether magma has been seen (the game searches a list, probably a list of notable events), I had to patch the game's code.  This means you need to run the utility every time you start dwarfort.exe and you want to build a new magma-using workshop.&lt;br /&gt;
&lt;br /&gt;
This utility has been made version-independent. It is expected to work with future releases of Dwarf Fortress.&lt;br /&gt;
&lt;br /&gt;
=== [http://75.127.91.201/~jifodus/df/justdigitout.zip Just dig it out!] ===&lt;br /&gt;
&lt;br /&gt;
A utility by Jifodus. Disables warning messages about damp stone and hot stone. [http://www.bay12games.com/forum/index.php?topic=21892.0 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=21601.0 Nano Fortress] ===&lt;br /&gt;
&lt;br /&gt;
A utility that will allow embarks to 1x1 locations.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/teleport22.zip Teleport] ===&lt;br /&gt;
&lt;br /&gt;
Teleport dwarves and other creatures. Version 2.2 is independent of the DF version. (33c)&lt;br /&gt;
&lt;br /&gt;
Note:  This utility may not work on versions of DF 40d and later.  If it doesn't work for you, try Dwarf Companion.&lt;br /&gt;
&lt;br /&gt;
Caveat: The teleport utility does not correctly set the occupancy flag for map squares.  As a results, dwarves will permanently crawl through the square that you teleported them out of.  In addition, you cannot build structures in those squares.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=645 Reveal] ===&lt;br /&gt;
&lt;br /&gt;
Reveal (or Reveal.exe as it is commonly referred to) is a program that runs alongside Dwarf Fortress and shows all &amp;quot;unexplored&amp;quot; or &amp;quot;undug&amp;quot; tiles of the map (in fortress mode).  To reveal entire map designate the entire bottom level to be mined and then remove designation before running reveal.   Playing on revealed map might ''(read &amp;quot;will&amp;quot;)'' cause some bugs (like not being able to build magma buildings or a tower-cap farm, losing all plants/trees on the map, and a lot more).  '''Using Reveal has been known to corrupt saved game folders.''' and, as such, it is highly recommended to only use Reveal to preview a biome's layout and then restart without running Reveal.&lt;br /&gt;
&lt;br /&gt;
There are two versions of Reveal, one for Vista and newer, one for XP and older.&lt;br /&gt;
&lt;br /&gt;
The new version of Reveal.exe (Reveal2) is in public beta, you can find it here [http://dffd.wimbli.com/file.php?id=1044 Reveal2].  Please report problems in [[User_talk:0x517A5D|0x517A5D's Talk page]].&lt;br /&gt;
&lt;br /&gt;
The Old version of Reveal.exe does not require you install anything (if you are using 0.28.181.40d and the updated memory.ini file), just unzip both files and run reveal.exe while DF is running.&lt;br /&gt;
&lt;br /&gt;
If using [http://www.bay12games.com/forum/index.php?topic=40349.0 the OpenGL accelerated version] of DF (40d16) under XP SP3, the newer version of Reveal is required as the older version can't find it. Reveal2.exe works correctly with this setup.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=1165 UltraFinder] ===&lt;br /&gt;
&lt;br /&gt;
This AHK script generates worlds until it finds one with the desired features as defined in the init file.&lt;br /&gt;
&lt;br /&gt;
This is not an advanced application, it is simply meant to take the task of repeated genning out of your hands.&lt;br /&gt;
&lt;br /&gt;
The concept is that you set the parameters as you see fit, and leave it running while you go about your other business.&lt;br /&gt;
&lt;br /&gt;
READ ALL WARNINGS IN THE INIT FILE!&lt;br /&gt;
&lt;br /&gt;
The readme exists for a reason.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
These utilities were never designed with Dwarf Fortress in mind, but have been adapted to its use.&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jackard/Accent_Removal|Accent Removal]] ===&lt;br /&gt;
&lt;br /&gt;
Certain tilesets leave a bunch of funky icons in the names of your dwarves! Replacing accented letters with normal ones in the raws fixes this problem.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.autohotkey.com/ AutoHotKey] ===&lt;br /&gt;
&lt;br /&gt;
AHK lets you define global hotkeys to send a sequence of keystrokes. For example, you can have {{key|alt}}+{{key|w}} replace {{key|b}}-{{key|C}}-{{key|w}}-{{key|Enter}}-{{key|Enter}} to make wall building much easier.  See [[Macros and Keymaps]] for a how-to and some example scripts. See [[:Category:ahk scripts]] for a list of user submitted scripts.&lt;br /&gt;
&lt;br /&gt;
=== [http://winmerge.org/ Winmerge] ===&lt;br /&gt;
&lt;br /&gt;
This utility allows you to compare folders or files. It highlights anything that does not fit in with the other file, so that you can see if you want to merge them into one file or not..&lt;br /&gt;
&lt;br /&gt;
== Outdated Utilities ==&lt;br /&gt;
&lt;br /&gt;
These programs are for previous versions of Dwarf Fortress, and have been left untouched for some time.&lt;br /&gt;
&lt;br /&gt;
=== [http://dffd.wimbli.com/file.php?id=108 DFWall] ===&lt;br /&gt;
&lt;br /&gt;
An utility for automation of mass constructions. Features three modes:&lt;br /&gt;
&lt;br /&gt;
1. Rectangle rewalling - quickly build a rectangle of walls/floors using:&lt;br /&gt;
a) the same saved material every time ([http://mkv25.net/dfma/movie-495-dfwalldemo DEMO])&lt;br /&gt;
b) any material with at least 1/10/99 units&lt;br /&gt;
&lt;br /&gt;
2. Quick reselect (for ANY single unit construction) - save that green glass box and never again have to look for it between all the bags!&lt;br /&gt;
&lt;br /&gt;
3. Pattern construction - make a pattern file and have stuff constructed according to it ([http://mkv25.net/dfma/movie-520-dfwalldemo2 DEMO]).&lt;br /&gt;
&lt;br /&gt;
For more details look here: [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=2&amp;amp;t=001847 Thread]&lt;br /&gt;
&lt;br /&gt;
=== [http://www.yourfilehost.com/media.php?cat=other&amp;amp;file=latitudes.zip Latitudes] ===&lt;br /&gt;
&lt;br /&gt;
Latitudes is a utility that, when on the embark map screen, shows the X/Y coordinates of the current region.   Until Toady adds [http://www.bay12games.com/cgi-local/ultimatebb.cgi?ubb=get_topic&amp;amp;f=5&amp;amp;t=002191 proper support], this will do the trick.  Works in .32a through at least .33g.  Technical notes: uses memory injection, so it may be flagged as a suspicious file by anti-virus programs.&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/lavasquare.exe Lavasquare] ===&lt;br /&gt;
&lt;br /&gt;
Another quick hack to make a 7/7 unit of lava on the currently selected square.  Ignore the random text it spams, as it was quickly adapted from a map query tool, and I didn't bother removing the print statements. Only works with version 33e. To hack this executable for a later version of dwarf fortress see the [[Talk:Utilities#Lavasquare|talk page]].&lt;br /&gt;
&lt;br /&gt;
33g version plus autohotkey script: http://www.sendspace.com/file/xsl6gs&lt;br /&gt;
&lt;br /&gt;
=== [http://www.bay12games.com/forum/index.php?topic=1447.0 StartProfile] ===&lt;br /&gt;
&lt;br /&gt;
Jifodus wrote a little utility that lets you maintain profiles of your starting dwarves.&lt;br /&gt;
&lt;br /&gt;
Check the thread on the forums for the latest download link. (Aug 01, 2008)&lt;br /&gt;
&lt;br /&gt;
Incidentally, if you try this utility, please report success/failure in [[Talk:Utilities#StartProfile|the utilities talk page]].&lt;br /&gt;
&lt;br /&gt;
=== [http://angband.org/~erasmus/df/water.exe Water] ===&lt;br /&gt;
&lt;br /&gt;
Quick hack to refill ponds.  Run this while your fortress is up, and it'll restore any &amp;quot;murky pool&amp;quot; tiles (i.e. the floor of ponds and lakes) to 7/7 water.  If you've tunneled into a pond, it'll still refill but will flow out normally. Only works with version 33e due to its &amp;quot;quick hack&amp;quot; status. Note: If there is lava in a murky pool, it will be raised to depth 7/7.&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilities| ]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=58514</id>
		<title>Utility:Stonesense</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=58514"/>
		<updated>2009-11-21T17:57:14Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: categorize&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:stonesense.jpg|thumb|right|Stonesense Screenshot]]&lt;br /&gt;
''(disambiguation) If you are searching for &amp;quot;Stone Sense&amp;quot;, the excellent reveal tool by 0x517A5D, see [http://dffd.wimbli.com/file.php?id=836]''&lt;br /&gt;
&lt;br /&gt;
==Stonesense==&lt;br /&gt;
Stonesense is a third party visualizer that lets you view your Dwarf Fortress world in a classic isometric perspective.&lt;br /&gt;
&lt;br /&gt;
The official thread for feedback, questions, requests or bug reports is located at http://www.bay12games.com/forum/index.php?topic=43260.0&lt;br /&gt;
&lt;br /&gt;
==Project Homepage / Source code==&lt;br /&gt;
The project homepage and Source code repository (subversion) can be found at: http://code.google.com/p/stonesense/&lt;br /&gt;
&lt;br /&gt;
==Sprites preview and todo list==&lt;br /&gt;
All sprite related stuff can be found at http://stonesense.wikia.com/wiki/Stonesense_Wiki&lt;br /&gt;
Please use that wiki for submitting sprites, 'claiming' sprites, etc. and not here or on the google code one.&lt;br /&gt;
&lt;br /&gt;
==Credits==&lt;br /&gt;
* Stonesense was written by Jonask, peterix, and kaypy.&lt;br /&gt;
* Dfhack library was written by peterix.&lt;br /&gt;
* Initial graphics were provided by Solifuge.&lt;br /&gt;
* Additional Graphics were contributed by many people, including:&lt;br /&gt;
* Kaypy, 7centNickel, &amp;lt;many more&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Utilities]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Defense_design&amp;diff=58487</id>
		<title>40d:Defense design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Defense_design&amp;diff=58487"/>
		<updated>2009-11-20T15:29:44Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: a loophole is a way to avoid something, so it makes sense for taxes but not stimulus; but if this hurt some R's feewings I guess it can be made non-partisan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is one of several inter-related articles on the broader topic of defending your fortress and your dwarves.  This page will focus on the physical layout and architecture of a fortress - specific suggestions, examples, diagrams and discussions of combining walls, fortifications, tunnels, channels, bridges, and terrain  into a defensible whole.  &lt;br /&gt;
&lt;br /&gt;
See the [[Defense guide|Defense Guide]] for a general overview of threats and considerations for fortress defense.&lt;br /&gt;
&lt;br /&gt;
For suggestions on training, organizing and deploying soldiers and militia, see [[Military design]].&lt;br /&gt;
&lt;br /&gt;
Many defenses rely on complex traps as a central part, that are, essentially, the defense themselves.  For complex traps that are '''not''' a minor/optional part of a larger defensive plan, (but might be adapted or plugged into one) see [[Trap design|Trap Design]].  &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:'''''Editors &amp;amp; Contributors''' - Please see top of [[Talk:Defense design|discussion page]] before posting.''&lt;br /&gt;
&lt;br /&gt;
==Standard key==&lt;br /&gt;
&lt;br /&gt;
   '''Key:'''&lt;br /&gt;
 '''symbol  tile'''&lt;br /&gt;
  ·   -  Empty space&lt;br /&gt;
  +   -  Constructed floor, or top of wall section from lower level&lt;br /&gt;
  '''0'''   -  Isolated wall section&lt;br /&gt;
 ╔╦═╗&lt;br /&gt;
 ╠╬═╣ -  Connected wall &lt;br /&gt;
 ║║ ║&lt;br /&gt;
 ╚╩═╝&lt;br /&gt;
  ╬   -  Fortifications&lt;br /&gt;
  X   -  Up/down [[stairs]]&lt;br /&gt;
  &amp;lt;   -  Up stair&lt;br /&gt;
  &amp;gt;   -  Down stair&lt;br /&gt;
  ▲   -  Up ramp/slope&lt;br /&gt;
  ▼   -  Down ramp/slope&lt;br /&gt;
  ,   -  natural ground&lt;br /&gt;
  ☺   -  dwarf&lt;br /&gt;
&lt;br /&gt;
==General suggestions==&lt;br /&gt;
General designs should include suggestions that can be &amp;quot;plugged in&amp;quot; to a part of any typical fortress, and/or can be modified to suit a number of purposes.&lt;br /&gt;
&lt;br /&gt;
Any fortress defenses need to be able to protect your dwarves while outside, whether that's military or civilians.  On the truly labor intensive end, you can fully enclose areas of wilderness you wish to utilize in walls or behind moats with the only access being from within your base.  Hostile creatures, even 'invisible' ones like ambushers, start at map edges and travel across the map - they will only spawn in regions where they can path to a dwarf.  By controlling which areas have access to paths to dwarves, you can force all hostile forces to appear in predictable and limited killing zones and battlefields that you control.  &lt;br /&gt;
&lt;br /&gt;
===Meeting area as defense===&lt;br /&gt;
&lt;br /&gt;
Especially in the very early game, you can use a [[Zone#Meeting_Area|meeting zone]] to attract animals and idle dwarves to a given area. This makes a pretty poor defense in general, but it's not a bad way to create an alarm system against minor threats such as [[thieves]] near your stockpiles, at least until you have something better (which won't be hard).  Remove the zone later, or it attracts idle dwarves and children.  Note that until you designate something else, the site of your wagon (even once deconstructed) is a default meeting area.&lt;br /&gt;
&lt;br /&gt;
===Guard Animals===&lt;br /&gt;
&lt;br /&gt;
Both [[thieves]] and [[ambush]]es are invisible until something bumps into them - a dwarf, a [[caravan]], a wild creature, a [[domestic animal]], anything.  Once this happens (even if it was triggered by a wild [[groundhog]] on the far edge of the map), the game will pause with the appropriate [[announcement]], forcing your attention to the situation - which is nice.  Therefore, it's a common practice to use animals to act as alarm systems, by [[restrain]]ing them in entryways.&lt;br /&gt;
&lt;br /&gt;
There are some considerations to good placement of such animals.  If you have a 1- or 2-wide hall, one animal is enough.  If you have a 3-wide hallway (wide enough for a [[caravan]]), you need to restrain two animals, one at each side of the hall.  &lt;br /&gt;
&lt;br /&gt;
 ══════════     R = restraint&lt;br /&gt;
 +++1R1++++     1 = area of animal 1&lt;br /&gt;
 +++bbb++++     2 = area of animal 2&lt;br /&gt;
 +++2R2++++     b = area of both&lt;br /&gt;
 ══════════&lt;br /&gt;
&lt;br /&gt;
This pair creates a thief-proof barrier against unannounced intrusion, as there is no combination of locations where an invisible enemy can sneak by without bumping into one or both. Caravans can pass over [[restraint]]s and restrained creatures without problem.&lt;br /&gt;
&lt;br /&gt;
Unless you're happy losing these animals on a regular basis, you should try to keep them alive...&lt;br /&gt;
:* Put them around a corner or behind a U-bend, so archers cannot fire at them from a distance.&lt;br /&gt;
:* Don't have them as your &amp;quot;first line of defense&amp;quot; - put them deeper in the entry, behind some traps&lt;br /&gt;
:* Put them inside, so flying creatures have to come down to their level to attack them.&lt;br /&gt;
:* Consider using a [[pressure plate]] at the extreme entrance to seal off the hall further down and keep your guard animal(s) safe.  Thieves won't trigger them, but the animals can deal with those - ambushes ''will'' trigger them, and you don't want them getting to your guard animals.&lt;br /&gt;
&lt;br /&gt;
Remember that anything short of a [[megabeast]] is not a good match for an armoured opponent. While watching your tame [[grizzly bear]] or [[alligator]] tear a thief apart has an amusement value, watching the goblin maceman send them flying across the map, mangled and dying, has less.&lt;br /&gt;
&lt;br /&gt;
===Defending the edge===&lt;br /&gt;
You're not allowed to wall within five squares of the edge of the map... but this rule has more loopholes than the US federal income tax code.  Until more versatile attackers emerge, it is not clear where effective play ends and exploit begins.  ''(Note: we disclaim any responsibility for damage involving [[harpy|harpies]] and skeletal [[giant eagle]]s)''&lt;br /&gt;
&lt;br /&gt;
* To start with, you can channel the '''''second''''' square from the edge.  This blocks entry of trade caravans or their movement along the edge of the map.  If barriers are used to prevent a Trade Depot near the edge of the map from being accessed from any other direction, caravans will be forced to appear in the un-channeled or bridged section of the edge, even if it is only three tiles wide.  Your depot can be ready with stockpiles of favored trade goods, offset behind a wall to protect from archers a few squares away.  &lt;br /&gt;
&lt;br /&gt;
Train up diggers in soft soil and you can surround most of the map with a moat by the time the first migrants arrive.  Be very, very wary of cave-ins, especially on highly sloped diagonal terrain - note that a downward ramp does not support adjacent floor tiles, and no tiles are supported diagonally.&lt;br /&gt;
&lt;br /&gt;
Diplomats have a strange habit of appearing well inside the moat, but need to be allowed out when finished.  ''[Note: On one 6x7 map [[horse]]s and other animals were also found to appear one embark unit (48 squares) left and up from the lower right corner, inside or atop the walls of a 5x5 doorless enclosure.  Defend all leaks...]''&lt;br /&gt;
&lt;br /&gt;
==== Design considerations ====&lt;br /&gt;
&lt;br /&gt;
* The moat should be designed to prevent entry except by falling and entry except by climbing, from both sides.  (Otherwise inside and outside forces might be tempted to shake hands from adjacent squares, with much annoyance)  Despite an abundance of giant corkscrews, grates, ballista bolts, etc., no one has ever invented the ladder, so this keeps anyone from entering or leaving the rest of the map.&lt;br /&gt;
* The moat should be dry, because sooner or later you will be tempted to let someone visit the edge to loot goblins or hunt varmints, and next thing you know your Legendary Weaponcrafter who outpaces all your smelters will be whiling away his time carrying a leather thong to a stockpile when he runs into a groundhog and decides to react by jumping into the moat and holding his breath beneath the shallow waters until he drowns.  (As always, the notice that he has drowned is the first you'll hear of it)&lt;br /&gt;
* The moat doesn't actually ''need'' to be adjacent to the edge of the map except when conserving valuable surface terrain (such as [[tree]]s on a map that is mostly rock).  It is easier to free trapped miners when they can dig further outward, and placing the moat on the sixth or further square in from the edge allows further modification with floodgates, walls, and doors.  Any [[channeling]] permanently changes the dug-out tile to &amp;quot;Light Above Ground&amp;quot;, which restricts these features from tiles near the edge even if floors are later constructed to close the space.&lt;br /&gt;
* Because migrants might turn up near wild animals or be followed closely by [[goblin]]s, it is nice to wall off the last square in shorter segments.  Each one or two segments are served by a separate lever bridge.  This can be done by:&lt;br /&gt;
** natural barriers.  The map edge is mostly continuous ramp, but occasionally a break appears on an uneven surface, by a river channel, etc.&lt;br /&gt;
** trees.  If left intact they separate any fertile patches into many small segments.&lt;br /&gt;
** floors.  Although you can't directly Remove Stairs/Ramps at the edge, building a single square of floor on an up-ramp at the edge will destroy that up-ramp (and the down-ramp above it) and block movement around the edge.  Building a square of floor on a down-ramp and then removing it creates a [[one-way]] path.&lt;br /&gt;
** You can build drawbridges *along* the edge and raise them.  Combined with a channel right next to the drawbridge, this can completely obstruct passage of anything which can't destroy the bridge.&lt;br /&gt;
** You can build up ramps at the edge, which may disrupt passage?&amp;lt;sup&amp;gt;Needs testing&amp;lt;/sup&amp;gt;&lt;br /&gt;
** Fortifications carved into the outer edge rock the next layer down?  It may be possible to carve fortifications all the way around the edge of a rocky map, allowing entrance only onto designated bridges surrounded by moat and with a steep drop beneath, with some sized appropriately to admit siegers only and one other sized for a trade wagon.  In this way combat can be reduced to a simple thumbs up/thumbs down decision at the lever.&amp;lt;sup&amp;gt;Probably not.&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Migrants, thieves, and sieges turn up all around the map, and can be allowed in by remote controlled bridges.  (Doors will not hold back [[building destroyer]]s, and remote [[lever]] control is needed because other gates can be &amp;quot;taken by invaders&amp;quot; and become unlockable) Invaders can be allowed in by small groups and fought if desired, or preferably admitted into underground zigzags with a door waiting to be locked at the far end once they get close to it.  If most of the invaders can be trapped inside such spaces, the remainder will stand and be wiped out completely without retreating.&lt;br /&gt;
&lt;br /&gt;
===Simple 5x5 Archer's Tower===&lt;br /&gt;
&lt;br /&gt;
Build a [[tower]] specifically to post archers on, possibly away from your main defenses. This lets you open fire before the enemy approaches your gates. A pillbox can be attached to your walls, or separate, so that the only access is from tunnels below. Thse tunnels can stretch across the map, and only need be 1-tile big if no regular traffic is expected. Construct [[fortification]]s on the second or third floor, so your dwarves can fire out.  For extra usefulness, build a [[barracks]], [[archery target]], [[food]] [[stockpile]], [[well]] and [[dining room]] in or near the tower. Add a door or hatch to lock them in.&lt;br /&gt;
&lt;br /&gt;
As discussed step-by-step in the article on [[mega construction]], this particular design is about as basic as it gets.  As shown, it assumes entry from an underground tunnel, but a door or drawbridge (with moat!?) could easily be added, or even access via a protected sky-bridge. &lt;br /&gt;
&lt;br /&gt;
When placing multiple towers, know that crossbows have a range of 20 tiles, so, depending on whether you want overlapping fire or not (and how intense/accurate), anywhere from maybe 15 to 38 tiles between the edge of the towers is recommended.  Crossbows actually have their range ''reduced'' by extra height in DF, so all you need is 1 level up to keep enemy archers from using your fortifications against you, and you're set.  (Channeling a defensive moat further out will also work, moving potential enemy archers even further away, but also moving non-missile targets that far as well.)&lt;br /&gt;
&lt;br /&gt;
 Side                Below         Ground       Archer       Roof&lt;br /&gt;
  view:               ground:       Level:       Level:       Level:&lt;br /&gt;
                                    ╔═══╗        ╬╬╬╬╬        ·····&lt;br /&gt;
     X__                X           ║X,,║        ╬X++╬        ·X++·&lt;br /&gt;
    ╬X__╬                           ║,,,║        ╬+++╬        ·+++·&lt;br /&gt;
 ___║X__║___                        ║,,,║        ╬+++╬        ·+++·&lt;br /&gt;
     X                              ╚═══╝        ╬╬╬╬╬        ·····&lt;br /&gt;
 &lt;br /&gt;
 _ = floor, natural             , = ground tile&lt;br /&gt;
       or constructed&lt;br /&gt;
&lt;br /&gt;
This can hold 3 archers/side, and has the potential to be as many &amp;quot;archer levels&amp;quot; tall as you wish.  A top-level &amp;quot;down stair&amp;quot; is necessary to build the &amp;quot;roof&amp;quot; - might as well build an up/down stair instead, no real reason not to.  Remember to use the &amp;quot;corners first&amp;quot; technique when necessary. (See [[Tower]].)&lt;br /&gt;
&lt;br /&gt;
All told, for a simple 1 archer-level tower, this takes just over 50 stones or blocks (plus 25/extra archer level).&lt;br /&gt;
&lt;br /&gt;
Larger towers (or this with larger floors on higher levels) could house barracks, practice ranges, and other facilities.  Just expand to preferred size with floors, and then attach walls to those to act as a base for the next level of building.  Add more stairs (adjacent to each other is always better) if high traffic is anticipated.&lt;br /&gt;
&lt;br /&gt;
====Siege engine turrets====&lt;br /&gt;
If it's big enough, build a [[siege engine]] inside a pillbox. Since siege engines cannot fire at targets higher or lower than them, the device needs to be on the same [[z-level]] as any targets, but this could be across a large gap to a nearby plateau. Only a single tile of fortifications is needed to fire through the wall.  Position the tower to fire where invaders tend to congregate. Since [[siege operator]]s are civilians, the &amp;quot;dwarves stay underground&amp;quot; order must be off unless this is built as an open room under a natural ceiling.&lt;br /&gt;
&lt;br /&gt;
You will want to guarantee that enemies do not approach the position and scare the civilian operators - this distance has been reported to be up to 20 tiles or so.  Dig a moat, have some intervening valley or build some secondary fortifications to keep enemies at a distance. Unlike walls, fortifications on the same z-level do not block siege engine missiles, at any range.  Unfortunately, if an enemy can walk up to them, fortifications will protect enemies from your archery fire (but not siege engine fire.)&lt;br /&gt;
&lt;br /&gt;
===Control Room===&lt;br /&gt;
Have one (large?) room (or several stacked on top of each other) for all defense-related levers, and central to idle dwarves - near your [[meeting area]]s and [[noble]]s quarters, with one or more halls or stairs leading to it for quick access. Connect a lever to all those doors and hatches as the first lever to be pulled in an emergency, and the respondent will lock themselves in for you, guaranteeing that they will then have nothing else to do but stay there and pull levers.&lt;br /&gt;
&lt;br /&gt;
It may also be an idea to have a second lever to at least one door, for emergency access.  And possibly to add a stockpile of booze and food or a well for longer sieges.&lt;br /&gt;
&lt;br /&gt;
===AI abuse===&lt;br /&gt;
Taking advantage of the game's Artificial Intelligence and [[path]]finding  is a whole article in itself.  Try leaving a door un-forbidden during an attack.  When the bad guys approach the door, forbid it, and the enemy will wander off.  Unlock it again, and they turn around and head back towards the door again.  You can get enemies to march back and forth over a set of traps this way, or lure them deep into a complex trap. This could be automated via [[pressure plate]]s. This might count as an [[exploit]], or not - that's up to you, and what you consider fun and challenging.&lt;br /&gt;
&lt;br /&gt;
===Bait animal===&lt;br /&gt;
[[Restrain]]ing a sacrificial animal just outside your walls, but within range of your marksdwarves and/or siege engines, can lure an enemy into attacking that while you cut them down.  Make sure to place a pattern of some walls (or statues, see below) so enemy archers cannot simply shoot the creature from a safe distance.&lt;br /&gt;
&lt;br /&gt;
=====Fortifications=====&lt;br /&gt;
Adding a ring of fortifications to help defend the animal against missile fire will keep melee troops away, but invite archers to come adjacent to the fortifications - and under your walls and crossbows.  If you allow any path, the melee troops will try to follow it to the animal - be creative with that fact. &lt;br /&gt;
&lt;br /&gt;
=====Traps=====&lt;br /&gt;
Surround the animal with traps to kill or capture approaching goblins.&lt;br /&gt;
&lt;br /&gt;
=====U chumps=====&lt;br /&gt;
Surround the far side of the animal with a U shaped 3-sided wall, open facing your defenders, so the enemy has to come closer to attack the animal, and you gun them down.&lt;br /&gt;
&lt;br /&gt;
=====Distractions=====&lt;br /&gt;
Releasing a [[cage]] full of surplus animals will keep the enemy archers very busy. They may even be out of ammo when your wrestlers show up.&lt;br /&gt;
&lt;br /&gt;
=====Vanishing act=====&lt;br /&gt;
Having a linked drawbridge that can open/shut (perhaps on both a lever to open and a nearby pressure plate to close), to lure the enemy in under your guns and then protect the animal when they get too close (for multiple uses.)&lt;br /&gt;
&lt;br /&gt;
=====Roach motel=====&lt;br /&gt;
Build a long, narrow, and twisty passage, accessible from the outside, but unconnected to your fortress. Build as many simple traps as you like. Place a bait animal inside. Enemy attackers walk right in, and get torn apart by the traps. If any manage to make it to the end, and kill the useless animal, they're surrounded by traps, and no closer to your fortress. &lt;br /&gt;
&lt;br /&gt;
If the roach motel is deep enough underground, you can build a tunnel above it, channel down, and mark the channel a [[Activity_zone#Pit.2FPond|pit]]/pond. That way, you can &amp;quot;reload&amp;quot; a new bait animal.&lt;br /&gt;
&lt;br /&gt;
=====vs. building destroyers=====&lt;br /&gt;
For [[building destroyers]], spare statues can serve the same purpose as bait animals.&lt;br /&gt;
&lt;br /&gt;
=====Pathing slowdowns=====&lt;br /&gt;
If you're playing on a low-powered machine and you close up all entrances to your fortress during a siege, your game may grind to a halt and/or crash as the siegers continuously fail at pathfinding into your fortress. Bait animals may alleviate this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
UNDER CONSTRUCTION&lt;br /&gt;
&lt;br /&gt;
===Expanding a simple square fortress wall===&lt;br /&gt;
&lt;br /&gt;
The simplest and most economical wall is a square one, for the most area protected with the least stone and effort.  Once built, they are easy to expand and improve.&lt;br /&gt;
&lt;br /&gt;
There are many approaches to a defenses for a wall around a compound or flanking an entrance. Marksdwarfs open fire at about 20 tiles distant (with better accuracy at shorter ranges), so if two areas are to support each other with overlapping fire this should be kept in mind.  &lt;br /&gt;
&lt;br /&gt;
This will show some basic examples of the infinitely possible variations.&lt;br /&gt;
&lt;br /&gt;
     +═══+     ╔  ═  ╗&lt;br /&gt;
&lt;br /&gt;
     ║X ║      ╔ ╝ ╚ ╗&lt;br /&gt;
&lt;br /&gt;
     ║   ║     ║     ║    &lt;br /&gt;
&lt;br /&gt;
       ║   ║   ╚ ╗ ╔ ╝      &lt;br /&gt;
                 &lt;br /&gt;
               ╚ ═══ ╝  &lt;br /&gt;
     ╬╬╬╬╬ ╬╬╬ ╬&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Entrance designs==&lt;br /&gt;
&lt;br /&gt;
===Airlock defenses/buffer zone===&lt;br /&gt;
Build two walls, each with a drawbridge. Build the trade depot in the buffer zone between them. Keep the outer bridge open, and the inner one closed. When the merchants appear, put crossbows on the walls to guard their approach. Once all the merchants are safely inside, close the outer bridge. Once there's no enemies left in the buffer zone, open the inner bridge so your civilians can start loading up the depot. &lt;br /&gt;
&lt;br /&gt;
The airlock pattern can be useful even without putting the depot there. Let a few siegers in at a time, and crush them. Reset the traps, Rest up the soldiers, and repeat.&lt;br /&gt;
&lt;br /&gt;
===Siege Engines===&lt;br /&gt;
One effective way to have [[Siege engine]]s (help) defend your fortress is:&lt;br /&gt;
&lt;br /&gt;
'''One ballista vs 3-wide hallway'''&lt;br /&gt;
 ══════════════════════════╦═════&lt;br /&gt;
 Entrance++++++++++++▼·····║▐▀\&lt;br /&gt;
 Entrance++++++++++++▼·····╬◄═«&lt;br /&gt;
 Entrance++++++++++++▼·····║▐▄/&lt;br /&gt;
 ══════════════════════════╩═════&lt;br /&gt;
&lt;br /&gt;
Using this design you can cripple an army using a well timed volley.  The hallway can be much longer than shown if you wish, as ballistae have extended ranges well over 100 tiles.  The channeled area is necessary, as civilians (siege operators are &amp;quot;civilians&amp;quot;) will run when enemies get within about 5-10 tiles of them, regardless of the actual path to that threat.&lt;br /&gt;
&lt;br /&gt;
====Ballista battery====&lt;br /&gt;
3 (or more!) ballistae can be put into a &amp;quot;battery&amp;quot; if overlapped - one per tile-width of the hallway, with each ballista aiming down their row of tiles.  &lt;br /&gt;
&lt;br /&gt;
                                 ╔═══&lt;br /&gt;
 ══════════════════════════╦══╦══╝▐▀\&lt;br /&gt;
 Entrance++++++++++++▼·····╬  ╬▐▀\◄═«  (~ammo~)&lt;br /&gt;
 Entrance++++++++++++▼·····╬▐▀\◄═«▐▄/&lt;br /&gt;
 Entrance++++++++++++▼·····╬◄═«▐▄/ (~ammo~)&lt;br /&gt;
 ══════════════════════════╣▐▄/ (~ammo~)&lt;br /&gt;
                           ╚═════════&lt;br /&gt;
&lt;br /&gt;
Be sure to use fortifications to prevent dwarfs from wandering in front of the ballista to their deaths. If desired (and you have the &amp;lt;s&amp;gt;man&amp;lt;/s&amp;gt;dwarfpower to spare), catapults may be put behind those, as they shoot safely ''over'' workers in front of them.  Altho' less effective than ballistae, it's a little more firepower - and that can't be a bad thing.&lt;br /&gt;
&lt;br /&gt;
For added flavour, channel out one or more tiles down the length of the 3-wide hallway and install retractable bridges.  When invaders attack, retract the bridges, forcing them into paths that are only 1-tile wide.&lt;br /&gt;
&lt;br /&gt;
Adding additional channels on either side of the hall will allow stray ammo to be recovered at a later time.  Make sure to add locked doors, to prevent siege operators from walking down below enemy archers during a battle.&lt;br /&gt;
&lt;br /&gt;
===Flooded entrance===&lt;br /&gt;
Using a chamber as your entrance alongside a chamber full of water and some machinery you can flood or drain the entrance at will.&lt;br /&gt;
&lt;br /&gt;
The basic premise requires two levers, two [[screw pump]]s and two [[Gear assembly|gear assemblies]]. The amount of power required and the number of additional components needed to get the power to the screw pumps varies depending on distance/setup. One pump is placed to draw from chamber 1 and dump into chamber 2. The other is set in reverse. A gear assembly is placed next to each pump and connected to the main power system. Each gear is linked to a lever. Now at the flip of a switch you can submerge your entrance with [[water]] or [[magma]] for easy, secure defense against creatures that aren't amphibious or magma-dwelling, depending.&lt;br /&gt;
&lt;br /&gt;
[[Image:Entflood.jpg]]&lt;br /&gt;
&lt;br /&gt;
The picture above shows the design in action. The green pump is currently on while the red has been disconnected through the grey marked axle. The yellow X is just to mark that there is a channel under the axle. &lt;br /&gt;
&lt;br /&gt;
=== The &amp;quot;Reverse Battlement&amp;quot; design ===&lt;br /&gt;
&lt;br /&gt;
Level Z+0 (ground):&lt;br /&gt;
   ,,,,,,,,,,,,,,,&lt;br /&gt;
 F ═══════════════&lt;br /&gt;
 O ,≥,g≥,,,g,,,,,,&lt;br /&gt;
 R ,,≤,,,,,,g,,,,,&lt;br /&gt;
 T ,,,g≤,,g,,,,,,, &amp;lt;-- enemies enter here&lt;br /&gt;
 R ,,≥,,,,,,g,,,,,&lt;br /&gt;
 E ,g,≤,,,,,,,,,g,&lt;br /&gt;
 S ═══════════════&lt;br /&gt;
 S ,,,,,,,,,,,,,,,&lt;br /&gt;
&lt;br /&gt;
Level Z+1 (bridge):&lt;br /&gt;
&lt;br /&gt;
 E ·····║+++║·····&lt;br /&gt;
 N +++++║+++║+++++&lt;br /&gt;
 T ·····╬☺++║·····&lt;br /&gt;
 R ·····╬☺++║·····&lt;br /&gt;
 A ·····╬☺++║····· &amp;lt;-- archers shoot them from up above&lt;br /&gt;
 N ·····╬☺++║·····&lt;br /&gt;
 C ·····╬☺++║·····&lt;br /&gt;
 E +++++║+++║+++++&lt;br /&gt;
   ·····║+++║·····&lt;br /&gt;
&lt;br /&gt;
Note that in this diagram, the fortress interior is to the West, and the enemy forces come from the East. The marksdwarves on the bridge with the [[fortification]]s are one level above the [[goblin]]s (or other attackers), who will pass under the bridge and charge on toward the west. As the first clear from under the bridge, they are targeted from behind (which is one level above), as the marksdwarves wait in ambush. This allows the marksdwarves to face far fewer enemies at any one time, at least to begin with, and any enemy archers must clear the bridge, take their lumps, and then return fire back the other way before the marksdwarves are ever under attack.&lt;br /&gt;
&lt;br /&gt;
For extra safety, hollow this tunnel out from under a ledge of the mountain (so it counts as &amp;quot;surface&amp;quot; and Dwarfs can &amp;quot;stay inside&amp;quot;). The bridge part can then be made out of construction, as soldiers can be ordered to go outside anyway.&lt;br /&gt;
&lt;br /&gt;
If you're feeling especially nasty, make the tunnel really long into the mountain and add a ballista battery (see above). In my current version of the fortress, the goblins have to cross a long series of drawbridges to even get inside the mountain, so the ballista dwarf gets a lot of shots, and I can launch any escaping troops into the air.&lt;br /&gt;
&lt;br /&gt;
''(Adding ammo stockpiles, of your best quality bolts, to these stations will speed up reloading for longer sieges/battles.  Even adding small, convenient food and alcohol stockpiles is not unheard of.  Some designers place access to/from archery ranges very close to these stations, for faster deployment.)''&lt;br /&gt;
&lt;br /&gt;
==Scenic route==&lt;br /&gt;
&lt;br /&gt;
[[Image:defense_3bridges.png|thumb|right]]&lt;br /&gt;
An example of some advanced defensive construction tactics to deal with vile forces of ''any'' size. (See picture).&lt;br /&gt;
&lt;br /&gt;
*'''Bridge 1''' seals off the entire base&lt;br /&gt;
*'''Bridge 2''' forces everyone to take the long, winding, heavily trapped/defended path of death.&lt;br /&gt;
*'''Bridge 3''' seals the inside of the fortress&lt;br /&gt;
&lt;br /&gt;
Clever triggering of the bridges allows you to break the hostile forces into smaller chunks to be trapped in the courtyard while being caught in traps and a crossfire of arrows from the fortifications around.&lt;br /&gt;
&lt;br /&gt;
===Goblin detour===&lt;br /&gt;
&lt;br /&gt;
This particular design works well with plenty of archers, siege engines, and other ranged weaponry.&lt;br /&gt;
&lt;br /&gt;
 ++++++++++++++++++ENTRANCE+&lt;br /&gt;
 ══╦════════════════O╞═╡O╦══  &amp;lt;-- Bridge 1&lt;br /&gt;
 +☺╬·+++++++++++++++++++·╬☺+&lt;br /&gt;
 ++╬·+···············╞═╡·╬++  &amp;lt;-- Bridge 2&lt;br /&gt;
 ++╬·+··+···+···+···++++·╬++&lt;br /&gt;
 +☺╬·+·+·+·+·+·+·+·+·+++·╬☺+&lt;br /&gt;
 ++╬·+·+·+·+·+·+·+·+·+++·╬++&lt;br /&gt;
 ++╬·+·+·+·+·+·+·+·+·+++·╬++&lt;br /&gt;
 +☺╬··+···+···+···+··+++·╬☺+&lt;br /&gt;
 ++╬·················+++·╬++&lt;br /&gt;
 ++╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╗·+++·╬++&lt;br /&gt;
 ++☺++☺++☺++☺++☺++☺╬·+++·╬☺+&lt;br /&gt;
 ++++++++++++++++++╬·+++·╬++&lt;br /&gt;
 ++++++++++++++++++╬·+++·╬++&lt;br /&gt;
 ══════════════╗++☺╬·+++·╬☺+&lt;br /&gt;
               ║+++╬·+++·╬++&lt;br /&gt;
               ║+++╬·+++·╬++&lt;br /&gt;
               ║++☺╬·╞═╡·╬☺+  &amp;lt;-- Bridge 3&lt;br /&gt;
&lt;br /&gt;
The 3 tile wide lane is for traders, so if your [[trade depot]] is located before this set-up, cut it down to a 1 tile lane to slow down invaders more.&lt;br /&gt;
&lt;br /&gt;
===Twisty maze===&lt;br /&gt;
A maze of turns and blindspots patrolled by quality military can be a very formidable defense.  Wide enough for wagons to pass though, but with no clear shots for any ranged weapons.  Missile weapons do have a minimum range, so if a target is closer than that range, they will instead just charge to melee - and meet a dwarf with a much better melee skill. Downside to this is that you'd be mixing it up in melee all the time, but so long as you have at least 10 dwarves greeting the goblins as one coherent mass, you should win.&lt;br /&gt;
&lt;br /&gt;
Variations on the twisty maze include:&lt;br /&gt;
&lt;br /&gt;
*A wagon-wide twisty maze, and a not-so-twisty 1-tile wide hall o'traps, with a drawbridge that can force one or the other as the only [[path]] into your fortress.&lt;br /&gt;
&lt;br /&gt;
*Making the side of the maze into fortifications, with a channel separating the fortifications from the actual floor of the maze, and having your archery targets on the other side of the fortifications so your marksdwarves can practice.  When the goblins round the corner, they charge through a hail of crossbow bolts, and drop dead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Fortress defense| ]]&lt;br /&gt;
[[Category:World]]&lt;br /&gt;
[[Category:Design]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Billon&amp;diff=58474</id>
		<title>40d Talk:Billon</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Billon&amp;diff=58474"/>
		<updated>2009-11-20T03:20:22Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Coins? ==&lt;br /&gt;
The page says: &amp;quot;Historically, this was used to mint coins, and that is also one of its uses in this game.&amp;quot; I was under the impression that only gold, silver and copper can be used as currency? Can somebody clarify if billon coins can be used as currency? If yes or no, this should be clarified! --[[Special:Contributions/200.105.223.91|200.105.223.91]] 01:06, 6 October 2009 (UTC)&lt;br /&gt;
:sorry that was me--[[User:Overspeculated|Overspeculated]] 01:08, 6 October 2009 (UTC)&lt;br /&gt;
::They cannot be used as currency, only as collector's coins for other dwarves to purchase, unless you were to edit raw/objects/entity_default.txt and add [CURRENCY:BILLON:3] to the dwarf entry. --[[User:Quietust|Quietust]] 01:21, 6 October 2009 (UTC)&lt;br /&gt;
----&lt;br /&gt;
I was under the impression that it was called billion, not billon.  What gives?--[[User:Zchris13|Zchris13]] 17:44, 19 November 2009 (UTC)&lt;br /&gt;
:Are you maybe thinking of bullion? [http://en.wikipedia.org/wiki/Billon Wikipedia seems to confirm &amp;quot;billon&amp;quot;]. --[[User:HebaruSan|HebaruSan]] 03:20, 20 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File:Oceanside-202-05.jpg&amp;diff=58436</id>
		<title>File:Oceanside-202-05.jpg</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File:Oceanside-202-05.jpg&amp;diff=58436"/>
		<updated>2009-11-18T20:01:02Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: add caption&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oceanside sleeping quarters.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Template:Sg/caption&amp;diff=58435</id>
		<title>Template:Sg/caption</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Template:Sg/caption&amp;diff=58435"/>
		<updated>2009-11-18T19:54:45Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: add caption for addition engine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{choose|c={{{1|default}}}|default=No caption? Add one!&lt;br /&gt;
|1=Preparing a ballista.&lt;br /&gt;
|2=A well-placed door holds back disaster...&lt;br /&gt;
|3=Belal's 16x16 tileset&lt;br /&gt;
|4=Use utilities like 3Dwarf to render your fortresses&lt;br /&gt;
|5=Communal living: who needs walls?&lt;br /&gt;
|6=The burdens of being mayor are great, you barely get enough time for arena combat with a bunch of goblins every now and then. And then its back to conducting meetings.&lt;br /&gt;
|7=The dwarves hang around in the ale storage area to get some alone time with their alchohol.&lt;br /&gt;
|8=A baby crawling through the aftermath of a human siege at Ringfissures&lt;br /&gt;
|9=The dwarves have found a way to paint thier walls. It's a shame they ran out of paint when they were half-way done.&lt;br /&gt;
|10=With friends like these...&lt;br /&gt;
|11=Some fish are better left alone.&lt;br /&gt;
|12=No matter what your orders may be, your dwarves know the real matters of importance.&lt;br /&gt;
|13=Maybe Little Miss Muffet was a dwarf?&lt;br /&gt;
|14=All the comforts of home.&lt;br /&gt;
|15=Fires are very dangerous, and dwarves are not cautious. Ensure your dwarves stay away.&lt;br /&gt;
|16=GODS DANGIT MELBUL AND YOUR WATERFALLS! &lt;br /&gt;
|17=Ah... the great outdoors.&lt;br /&gt;
|18=You heard the man, Gimli. Your cot's in the barracks.&lt;br /&gt;
|19=A colossus makes short work of captured goblins in an arena.&lt;br /&gt;
|20=Is that a euphemism?&lt;br /&gt;
|21=Pain and hardship starts at a young age in dwarven culture.&lt;br /&gt;
|22=The vanity of dwarven engravers is not to be underestimated.&lt;br /&gt;
|23=Goblins have a very fickle relationship with their body parts. A skilled Axedwarf can quickly have them calling for a divorce.&lt;br /&gt;
|24=The King is dead. Long live the King!&lt;br /&gt;
|25=A mechanical binary addition engine.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Personality_facet&amp;diff=58380</id>
		<title>40d:Personality facet</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Personality_facet&amp;diff=58380"/>
		<updated>2009-11-17T02:23:58Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''(If looking for a &amp;quot;Profile&amp;quot; for a workshop, see [[Workshop]])''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A dwarf's '''personality traits''' can be seen in that dwarf's '''profile''', which can be viewed by selecting that dwarf on the map with {{k|v}}iew, {{k|p}}, {{k|z}}, {{k|Enter}} ), or from the {{k|u}}nit menu with {{k|v}}iew, {{k|Enter}}.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The profile shows (from top to bottom) a dwarf's:&lt;br /&gt;
:* recent good/bad [[thoughts]]&lt;br /&gt;
:* religious preferences &amp;amp; [[deity|deities]]&lt;br /&gt;
:* citizenship &amp;amp; group memberships &lt;br /&gt;
:* their [[preference]]s&lt;br /&gt;
:* their '''personality traits'''&lt;br /&gt;
- see each of those articles for a more complete discussion of them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The personality traits of a dwarf are rated from 1 (lowest) to 100 (highest), but are categorized as below. A personality value between 40 and 60 is simply not noted in the profile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
:'''List of personality traits:'''&lt;br /&gt;
{| {{prettytable}}&lt;br /&gt;
|- style=&amp;quot;background:#ddd&amp;quot;&lt;br /&gt;
! Token&lt;br /&gt;
! Value&lt;br /&gt;
! Description&lt;br /&gt;
! Gameplay effects&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ACTIVITY_LEVEL &lt;br /&gt;
| style=&amp;quot;width:4em&amp;quot; | 91 - 100&lt;br /&gt;
| colspan=2 | Is constantly active and energetic.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is very energetic and active.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is very active.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is relaxed.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Lives life at a leisurely pace.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Can't be bothered with frantic, fast-paced living.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ADVENTUROUSNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Lives for risk and excitement.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is a risk-taker and a thrill-seeker.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Loves a good thrill.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is not a risk-taker.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Doesn't need thrills or risks in life.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is entirely adverse to risk and excitement.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ALTRUISM &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is truly fulfilled by assisting those in need.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Finds helping others very rewarding.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Finds helping others rewarding.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=1 | Does not go out of its/his/her way to help others.&lt;br /&gt;
| rowspan=3 valign=top | Helping a [[injury|wounded]] dwarf&amp;lt;br&amp;gt;is a bad thought&amp;lt;br&amp;gt;at these levels.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=1 | Dislikes helping others.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=1 | Views helping others as an imposition on  own needs to get along with others.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ANGER &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is in a constant state of internal rage.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is very quick to anger.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is quick to anger.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is slow to anger.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is very slow to anger.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Never becomes angry.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ANXIETY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is a nervous wreck.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is always tense and jittery.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is often nervous.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Has a calm demeanor.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Has a very calm demeanor.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Has an incredibly calm demeanor.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ARTISTIC_INTEREST &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Can easily become absorbed in art and the beauty of the natural world.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Greatly appreciates art and natural beauty.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Appreciates art and natural beauty.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Does not have a great aesthetic sensitivity.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is not interested in art.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is completely uninterested in art.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ASSERTIVENESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Loves to take charge and direct activities.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is very assertive.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is assertive.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=1 | Is unassertive.&lt;br /&gt;
| rowspan=3 | An unassertive dwarf (under&amp;lt;br&amp;gt;40) never gains experience&amp;lt;br&amp;gt;in the [[Persuader]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=1 | Prefers that others handle the leadership roles.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=1 | Never speaks out or attempts to direct activities.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | CHEERFULNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Often feels filled with joy.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Can be very happy and optimistic.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is often cheerful.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is rarely happy or enthusiastic.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is a pessimist.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is never optimistic or enthusiastic about anything.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | COOPERATION &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=1 | Sacrifices its/his/her own needs to get along with others.&lt;br /&gt;
| rowspan=3 | A cooperative dwarf (over 60)&amp;lt;br&amp;gt;never gains experience&amp;lt;br&amp;gt;in the [[Intimidator]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=1 | Dislikes confrontations.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=1 | Is willing to compromise with others.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=1 | Doesn't like to compromise with others.&lt;br /&gt;
| rowspan=3 | An uncooperative dwarf (under 40)&amp;lt;br&amp;gt;never gains experience&amp;lt;br&amp;gt;in the [[Pacifier]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=1 | Would rather intimidate others than compromise with them.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=1 | Would never deny its/his/her own needs just to compromise with somebody else.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | DEPRESSION &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is frequently depressed.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is often sad and dejected.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Often feels discouraged.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Rarely feels discouraged.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Almost never feels discouraged.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Never feels discouraged.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | DUTIFULNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Has a profound sense of duty and obligation.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Has a strong sense of duty.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Has a sense of duty.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Finds rules confining.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Dislikes contracts and regulations.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Hates rules, contracts and other confining elements in its/his/her life.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | EXCITEMENT_SEEKING &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=1 | Is highly adventurous and loves fresh experiences.&lt;br /&gt;
| rowspan=3 | Beings with this trait are &amp;lt;br&amp;gt;more likely to join you&amp;lt;br&amp;gt; in adventure mode.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=1 | Is eager for new experiences.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=1 | Likes to try new things.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Prefers familiar routines.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is uncomfortable with change.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is resistant to change.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | FRIENDLINESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Truly treasures the company of others.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Enjoys being in crowds.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Enjoys the company of others.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Tends to avoid crowds.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Prefers to be alone.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Considers spending time alone much more important than associating with others.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | IMAGINATION &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is bored by reality and has a wonderful imagination.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is incredibly creative.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Has a fertile imagination.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Isn't given to flights of fancy.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is grounded in reality.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is interested only in facts and the real world.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | IMMODERATION &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is ruled by irresistible cravings and urges.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Feels strong urges and seeks short-term rewards.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Occassionally overindulges.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Doesn't often experience strong cravings or urges.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Only rarely feels strong cravings or urges.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Never feels tempted to overindulge in anything.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | INTELLECTUAL_CURIOSITY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is entranced by riddles and puzzles and loves to debate issues and ideas.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Loves new and fresh ideas.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is open-minded to new ideas.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Dislikes intellectual discussions.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Regards intellectual exercises as a waste of energy.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is completely uninterested in ideas and debates over intellectual issues.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | MODESTY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Would never claim to be better than somebody else.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Finds immodesty distasteful.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is modest.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is immodest.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is very willing to compare itself/himself/herself favorably with others.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Would never shy away from an opportunity to say it/he/she is better than somebody else.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | LIBERALISM &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Revels in chaos and disorder.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Loves to defy convention.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is put off by authority and tradition.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Admires tradition.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Prefers stability and security to ambiguity and disorder.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is an ardent believer in convention and traditional society.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ORDERLINESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Loves to make lists and keep schedules.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Tries to live a well-organized life.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is organized.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is disorganized.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is very disorganized.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is completely disorganized.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | SELF_CONSCIOUSNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=1 | Is socially crippled by thoughts that everyone is watching and judging it/him/her.&lt;br /&gt;
| rowspan=2 valign=top | A very self-conscious dwarf (over 75)&amp;lt;br&amp;gt;never gains experience&amp;lt;br&amp;gt;in the [[Comedian]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=1 | Is concerned about rejection and ridicule.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is self-conscious.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is comfortable in social situations.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is very comfortable in social situations.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is absolutely unfazed by the opinions of others.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | SELF_DISCIPLINE &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Will persist in the face of any difficulty until the task is complete.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Possesses great willpower.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is self-disciplined.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is occasionally given to procrastination.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Has very little self-discipline.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Rarely completes tasks and is often overcome by distractions.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | STRAIGHTFORWARDNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=1 | Is incredibly frank and candid in dealings with others.&lt;br /&gt;
| rowspan=3 | A straightforward dwarf (over 60)&amp;lt;br&amp;gt;never gains experience&amp;lt;br&amp;gt;in the [[Flatterer]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=1 | Is very straightforward with others.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=1 | Is candid and sincere in dealings with others.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=1 | Is guarded in [[relationships]] with others.&lt;br /&gt;
| rowspan=3 | Guarded dwarves (under 40) never&amp;lt;br&amp;gt;gain experience in the [[Consoler]] &amp;lt;br&amp;gt;skill, and are the only ones to&amp;lt;br&amp;gt;gain experience in the [[Liar]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=1 | Is not straightforward when dealing with others.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=1 | Believes that some deception is necessary in relationships with others.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | GREGARIOUSNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Genuinely likes others and openly expresses positive feelings toward them.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Makes friends quickly.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is very friendly.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=1 | Is somewhat reserved.&lt;br /&gt;
| rowspan=3 | A reserved dwarf (under 40)&amp;lt;br&amp;gt;never gains experience in&amp;lt;br&amp;gt;the [[Conversationalist]] skill.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=1 | Is very distant and reserved.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=1 | Does not actively seek friendships and is incredibly distant and reserved.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | TRUST &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is naturally trustful of everybody.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is very trusting.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is trusting.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is slow to trust others.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Does not trust others.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Sees others as selfish and conniving.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | VULNERABILITY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Becomes completely helpless in stressful situations.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Cracks easily under pressure.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Doesn't handle stress well.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Can handle stress.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is confident under pressure.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Is impervious to the effects of stress.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | ACHIEVEMENT_STRIVING &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Constantly strives for perfection.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Thinks it is incredibly important to strive for excellence.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Strives for excellence.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Doesn't go out of its/his/her way to do more work than necessary.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Very rarely does more work than necessary.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Does the bare minimum necessary to accomplish the task at hand.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | EMOTIONALITY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Has a profound understanding of its/his/her own emotions.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Has a great awareness of its/his/her own emotions.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Has a good awareness of its/his/her own emotions.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Tends not to openly express emotions.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is mostly unaware of its/his/her own emotions and rarely expresses them.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Does not display its/his/her own emotions and has no awareness of them.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | SYMPATHY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | Is incredibly compassionate and feels the pain of others.&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | Is easily moved to pity.&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | Is compassionate.&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | Is not easily moved to pity.&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | Is not affected by the suffering of others.&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | Would never let an objective judgement be tempered by mercy or pity.&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | SELF_EFFICACY &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | is incredibly confident&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | is very confident&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | is confident&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | lacks confidence&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | does not feel effective in life&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | always feels as if it/he/she is not in control of its/his/her life&lt;br /&gt;
|- style=&amp;quot;border-top: 3px solid #aaa&amp;quot;&lt;br /&gt;
| rowspan=6 | CAUTIOUSNESS &lt;br /&gt;
| 91 - 100&lt;br /&gt;
| colspan=2 | thinks through every alternatives and their consequences before acting&lt;br /&gt;
|-&lt;br /&gt;
| 76 - 90&lt;br /&gt;
| colspan=2 | is extremely cautious&lt;br /&gt;
|-&lt;br /&gt;
| 61 - 75&lt;br /&gt;
| colspan=2 | takes time when making decisions&lt;br /&gt;
|-&lt;br /&gt;
| 25 - 39&lt;br /&gt;
| colspan=2 | often does the first thing that comes to mind&lt;br /&gt;
|-&lt;br /&gt;
| 10 - 24&lt;br /&gt;
| colspan=2 | acts impulsively&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 9&lt;br /&gt;
| colspan=2 | always acts without considering alternatives or thinking through possibilities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: Races without the tags for a certain field have a full range of values, presumably with an average value of 50.&lt;br /&gt;
&lt;br /&gt;
Personality traits determine the psychological profile of each race. Currently, the file format for personality traits is:&lt;br /&gt;
&lt;br /&gt;
:[PERSONALITY:name:min:avg:max]&lt;br /&gt;
&lt;br /&gt;
:: &amp;quot;name&amp;quot; is the personality trait&lt;br /&gt;
:: &amp;quot;min&amp;quot; is the minimum value for an individual&lt;br /&gt;
:: &amp;quot;avg&amp;quot; is the average for a race&lt;br /&gt;
:: &amp;quot;max&amp;quot; is the maximum value for an individual. &lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Liaison&amp;diff=58327</id>
		<title>40d Talk:Liaison</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Liaison&amp;diff=58327"/>
		<updated>2009-11-15T18:42:37Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Late arrivals */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any idea how to keep them from staying till they go insane. Every winter my dwarves live in fear of the bruce lee of liaisons going into a martial trance. &lt;br /&gt;
&lt;br /&gt;
At first I thought they'd stay if they didn't get to talk with my broker but having a meeting doesn't help get them out. --[[User:Lucid|Lucid]] 17:44, 1 November 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Make sure you have your broker free long enough to make your demands and to views theirs, it take about 4 meetings between your broker and the liaison. At least that is how I get him to leave --[[User:Shades|Shades]] 18:08, 1 November 2007 (EDT)&lt;br /&gt;
&lt;br /&gt;
so THAT'S how you do it, good thing I turned off my expo leader from hunting, the damned liason kept on scaring off the deer [the leader, and broker] was chasing :\&lt;br /&gt;
&lt;br /&gt;
== Broker, not Leader? ==&lt;br /&gt;
&lt;br /&gt;
So it's the broker, not the mayor, that meets with these guys?  That changes some things.  (I'm trying to keep the Liasons outside of my fortess so they don't know where the traps are, if they ever siege.)&lt;br /&gt;
&lt;br /&gt;
No, its the leader/mayor. --[[User:Koltom|Koltom]] 11:33, 20 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
:i have my leader and broker separate(not by choice) in my current fort, and noticed that while the dwarf liaison meets with the leader, the human rep most definately meets with the broker, not the leader. --[[User:Chariot|Chariot]] 06:57, 9 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Ditto, my broker keeps meeting with the Liasons (all of them, i think, certainly the human one) despite not having been mayor for something like 5 years (military dwarves always seem to get elected mayor...).  In fact, I just annoyed a human liason because my broker (not mayor) entered a strange mood just as the liason entered my fortress (thus promptly leaving).&lt;br /&gt;
::Now, Diplomats meet with the highest ranking leading noble you have (mayor/baron+/etc...), and I don't know why Diplomat redirects to Liason as humans and elves occasionally send a diplomat to make demands or merely comment 'this is a nice place you've carved out for yourself'.&lt;br /&gt;
::--[[User:Squirrelloid|Squirrelloid]] 06:54, 17 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
Ok, I changed this so that it correctly says the human liason meets with your broker.  I left the dwarven liason as Mayor but I'm not certain that's true - my one still existent game which is suitably set up to check this otherwise is now the mountainhome, so I'm unable to verify at present. --[[User:Squirrelloid|Squirrelloid]] 21:07, 17 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Anecdotal evidence of dwarven liason using Mayor/Exp Leader - I got an initial set of dwarves where they made someone expedition leader who didn't have the broker skills, so exp leader and broker were different dwarves.  Dwarven Liason met with Exp Leader. --[[User:Squirrelloid|Squirrelloid]] 15:55, 18 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
Confirming it's the expedition leader, i currently only have on dwarf (hermit challenge) and he's the expedition leader, and the dwarven liason meets with him. (Sorta lame really, let him live, sheesh)&lt;br /&gt;
&lt;br /&gt;
== really set off traps? ==&lt;br /&gt;
I have both liaisons walk through a maze of traps every time they visit, never got hurt. Maybe a 38a/b/c bug? What kind of traps were they triggering?--[[User:Koltom|Koltom]] 23:56, 27 February 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
:I'm running DF 38a and every year when the caravans arrive I get a new human corpse to loot.  My liasons ''never'' make it past my traps (weapon[disc] and stonefall).  I wish they would, I'd like to adjust what they bring. [[User:Ripheus|Ripheus]] 21:00, 3 March 2008 (EST)&lt;br /&gt;
::well known bug for 38a, it was fixed in 38b -[[User:Chariot|Chariot]] 21:54, 3 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
Mine just set off a Trap too. Died. Running verson 40c for mac. --[[User:OmegaX|OmegaX]] 09:19, 20 September 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Can't assign new leader; wiki article is incorrect ==&lt;br /&gt;
&lt;br /&gt;
Leaders are elected and can't be manually chosen. --[[User:GreyMario|GreyMario]] 23:34, 8 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I may be remembering wrong, but I recall my liasons wanting to meet my Broker, who is manually chosen.  [[User:Ripheus|Ripheus]] 01:52, 9 March 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Diplomat ==&lt;br /&gt;
&lt;br /&gt;
I have an elven diplomat telling my duchess not to cut down more than 55 trees (and calling her short.. a member of Elves for the Ethical Treatment of Trees?). Is this kind of diplomat separate from the trade liaison? The page [[Diplomat]] redirects here.. [[User:Anydwarf|Anydwarf]] 13:18, 28 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:Yes and no. We should maybe move this page to &amp;quot;diplomat&amp;quot; as both the human and dwarven one (and the elven one? never had one of those although im trying hard *grin*) are called diplomat in the unit list. On the other hand the elves never send a trade diplomat(?) so, yes he is somewhat different, but should be included then... --[[User:Koltom|Koltom]] 22:37, 28 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== weird trigger for liaison screens ==&lt;br /&gt;
it seems once the meeting has started the usual delay between the screens can be avoided by marking tiles for digging with the mouse - this will cause the screens to pop up during marking (just be careful with pressing space bar) --[[User:Koltom|Koltom]] 14:29, 29 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== odd behaviour out of season/character ==&lt;br /&gt;
My siege engineer has just spend a while wandering around my fortress with the job &amp;quot;Attend Meeting&amp;quot; even though a) he is not the broker or mayor, b) there are no merchants or liasons on the map. He would go to one place and just stand there doing nothing then walk to another place and repeat. This went on for a while then he just went back to normal. There were other jobs he could have been doing at the time. Most odd. Is this a bug should I report it? [[User:Yvain|Yvain]] 19:19, 29 March 2008 (EDT)&lt;br /&gt;
:To clear up a point of confusion the job &amp;quot;Conduct Meeting&amp;quot; is the job assigned to the Mayor,Broker, or Baron/Count. After dwarven economy is running a dwarf might get the job &amp;quot;Attend Meeting&amp;quot;.  That dwarf seeks a meeting with the Mayor.  If the Mayor is busy he will continue to follow the Mayor around until he is free.  The solution I found is to switch off the Mayor's labors so he's free to conduct the meeting.  The meeting is usually quick and then you'll get the other dwarf working again.--[[User:Angus|Angus]] 20:52, 29 March 2008 (EDT)&lt;br /&gt;
::Some claim that this is a bug.  If the person seeking the meeting gets his meeting, but then the Leader gets distracted, the &amp;quot;Attending Meeting&amp;quot; status will never go away.  The [[Meeting|solution suggested]] is to Activate them into the military then deactivate them. [[User:3lB33|3lB33]] 00:55, 4 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== verified some embarrassment factors ==&lt;br /&gt;
From dwarfort.exe &lt;br /&gt;
(Name) was embarrassed to have to conduct an official meeting in a dining room.&lt;br /&gt;
(Name) was very embarrassed to have to conduct an official meeting in a bedroom.&lt;br /&gt;
[[User:Yvain|Yvain]] 19:58, 29 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
: I would be happier if someone could verify that it is actually _used_ in game, but, well. You see, my palace office never triggered any thought. --[[User:Koltom|Koltom]] 21:13, 29 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
::Try giving them a dining room and no office, koltom. [[User:VengefulDonut|VengefulDonut]] 14:26, 30 March 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::I got these unhappy thoughts from meetings conducted in public dining halls that were also designated as meeting halls. (I do not know whether they also happen from nobles' personal dining rooms designated from private tables.) They seem to be very minor unhappy thoughts, so I'm not going out of my way to avoid such designations to keep my idlers from going to hang out by the wagon in the fortresses' early stages. --[[User:Brent Not Broken|Brent Not Broken]] 12:31, 17 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Liaisons, zoo material? ==&lt;br /&gt;
&lt;br /&gt;
I want to know whether or not to trap the liaisons before they leave and have them in cages. Should I do this or not?--[[User:CrazyMcfobo|CrazyMcfobo]] 19:17, 12 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
:hm..&lt;br /&gt;
: *You can't trap them (unless you mean locking them in a room)&lt;br /&gt;
: *You can't assign them to cages&lt;br /&gt;
: If u don't let them leave they will go crazy and your requests for trade items will most likely be ignored&lt;br /&gt;
: why do you want to trap them? (okay, they are annoying, but also useful) --[[User:Koltom|Koltom]] 08:41, 17 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Human Diplomat==&lt;br /&gt;
Added information about the human diplomat, whom i've seen meeting with my Baron/Count/Duke often enough (4 different games, multiple times in each). They don't seem to do much at present - though I haven't tried to incur a human siege of my fortress to see if they sue for peace if you beat them.  I imagine they could theoretically make demands like the elven diplomat does, except they aren't picky about things like cutting down trees. --[[User:Squirrelloid|Squirrelloid]] 21:07, 17 April 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Meeting With Elves ==&lt;br /&gt;
&lt;br /&gt;
What happens if you choose different option instead of saying yes to whatever they say? The number of trees keep going lower...57....43...37...well they aren't the exact numbers but close to them. I might want to try to fight them once. I've got some ore to melt and I need a good amount of charcoal... They appear every year after cutting too much trees?--[[User:Seaneat|Seaneat]] 23:36, 9 July 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
New meeting with elves craziness - i've seriously cut down like 10 cacti total, and that was over 5 years ago.  Wood imports have been more than sufficient since then.  The elf diplomat shows up for the first time and tells me I've been disrespecting the trees.  Does the diplomat always say the same thing?  Because he's making no sense whatsoever.  In addition to their being absolutely no trees on my map (Yay Saguaros?), I haven't even chopped any in ages.  I've bought 20x the amount I ever chopped from the elven caravans.  How have I been disrespecting the 'trees'? --[[User:Squirrelloid|Squirrelloid]] 02:28, 9 December 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
I have a fortress where I didn't cut a single tree (there is none) and the elf was happy with me... So no, not always the same, but it seems that the disrespect starts at the very first log. [[User:Matakuka|Matakuka]] 12:37, 29 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== liaison - dead and gone? (death of a salesman) ==&lt;br /&gt;
When in the first summer the dwarven caravan arrived with the outpost liaison at my latest fortress, the liason made it savely past the traps but seems to have died just in front of the depot - no blood to be seen, no message in the announcement, just as he had died a natural death.&lt;br /&gt;
Strange enough, but after I provided him a coffin, in the next year the dwarves came without another liaison. So I disposed the treacherous coffin and bones in my crush-o-mat. But that didn't have any effect either: There didn't come any liaison anymore.&lt;br /&gt;
In the first place I wonder why he died, and also why he isn't succeeded?!--[[User:Doub|Doub]]&lt;br /&gt;
&lt;br /&gt;
== Left Unhappily? ==&lt;br /&gt;
&lt;br /&gt;
I just got a message&lt;br /&gt;
&amp;quot;Diplomacy Stymied. A diplomat has left unhappy.&amp;quot;&lt;br /&gt;
The last part of the meeting never occured, and my mayor was unable to meet him, due to seige. Was the dwarven diplomat. --[[User:OmegaX|OmegaX]] 17:59, 16 September 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Person to meet set when liaison arrives? ==&lt;br /&gt;
&lt;br /&gt;
When the human liaison arrived this year, I had &amp;quot;Trader Joe&amp;quot; Stukosshed as my Broker. Shortly after, the goblins sieged and Joe got hit by a stray arrow while evacuating. His arm is mangled, so he's resting. I assigned a new broker, but it looks like the Human liaison is holding vigil beside Joe's bed, waiting for him to wake up to run the meeting. -[[User:Fuzzy|Fuzzy]] 16:32, 19 September 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
==Liaison dead??==&lt;br /&gt;
&lt;br /&gt;
The human guild representative was walking around my fort; he seemed all fine, did not set off any traps. Suddenly, a few (real-life) minutes later, I see a human corpse in my refuse stockpile. He also didn't even have a meeting (note: he died about 2 months after the caravan left). Should I expect a human siege?&lt;br /&gt;
&lt;br /&gt;
: Probably, yes. [[User:Timst|Timst]] 13:12, 30 October 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
== 404 meeting not found ==&lt;br /&gt;
&lt;br /&gt;
Issue resolved. The problem was that my mayor wanted to update stockpile records instead of take the damn meeting. --[[User:GreyMario|GreyMaria]] 23:50, 16 January 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
==No Liaison?==&lt;br /&gt;
First year, rather rough terrain, dwarf caravan arrived just fine though but... no liaison?  At all? I kind of wanted to request bauxite... I guess I'm glad I brought some with me... Has anyone else had this happen?  What's going on? --[[User:Squirrelloid|Squirrelloid]] 14:15, 21 November 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
:I have a similar problem in my current game, for the simple reason that I have embarked as part of a tiny civilisation - one which apparently has no king. No king means no liaison. This happened because of my parameters, but I'm sure that it can happen coincidentally in the unaltered game as well. [[User:Aosher|Aosher]] 12:47, 19 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I had a similar incident a while back, where the liaison never showed up, not even in the first year. I didn't think to check whether or not my civ had a king/queen, but I was on a terrifying glacier so I had just assumed he had froze to death or something before reaching my site.--[[User:Mjo625|Mjo625]] 13:46, 19 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::Hmm... I have the same thing happening to me.  I checked my civilization on the civilization menu and it just says: &amp;quot;Ruler/King&amp;quot; for the head of the civilization.  Doesn't this mean I have a king?  If not, how do you know if you have a king?--[[User:Jpwrunyan|Jpwrunyan]] 09:00, 22 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Liaison dead?, help==&lt;br /&gt;
My liaison died to a goblin ambush a few years back on his way out.. midwinter. Do I never get a new one or the chance to request stuff again?--[[User:Cultiststeve|cultiststeve]] 11:00, 11 January 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
==Insane Liason==&lt;br /&gt;
How long does it take to drive a dwarven liason insane from being ingored? They guy's getting on my nerves, lurking outside the door and not letting poor Elfcrusher leave.&lt;br /&gt;
&lt;br /&gt;
:The timer only seems to start if he's met/seen the dwarf he wants to talk to.  I've had a Liaison wander around for 3 years because he couldn't get anywhere near my mayor/broker - enough time he should have gone insane otherwise.  --[[User:Squirrelloid|Squirrelloid]] 11:57, 31 January 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
::Then I'm lucky the wolves decided to vist. Cheers anyway. --[[User:Simmura McCrea|Simmura McCrea]] 14:22, 31 January 2009 (EST)&lt;br /&gt;
&lt;br /&gt;
== Elven diplomat, ...what? ==&lt;br /&gt;
&lt;br /&gt;
So, today an elven diplomat came to me and said I had carved a nice place out for myself. Then he left, which left me quite confused. Earlier an elven caravan arrived but was ambushed and brutally killed, is that why the diplomat came? If so, why didn't he say anything? [[User:Tardface|Tardface]] 12:42, 19 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Your baroness / countess / duchess will get liaisons from friendly civilisations occasionally. They often just say that you have carved out a lovely place, then leave. Did you get a new noble recently? [[User:Aosher|Aosher]] 12:46, 19 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:That's sound like what the human diplomat tends to say.  Are you sure the elf was from an elf civilization, or was it an elf working for the humans? --[[User:LegacyCWAL|LegacyCWAL]] 20:00, 19 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I got an elven diplo who just moped about too many trees cut and how he didn't expect any better from us. No quota. Is that new? Is that bad? Or kinda a prestage? --[[User:Höhlenschreck|Höhlenschreck]] 21:52, 17 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Dwarven Liaison becomes Advisor? ==&lt;br /&gt;
&lt;br /&gt;
In my last fortress (which got a standard King), the [[Advisor]] turned out to be the outpost liaison for my civilization. Coincidence, or does this always happen? --[[User:Quietust|Quietust]] 13:14, 3 September 2009 (UTC)&lt;br /&gt;
*I should note that my current fortress also had my liaison arrive as the Advisor. --[[User:Quietust|Quietust]] 21:21, 26 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== humans observing traps ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
The human page says that any traps a human noble observes will not trigger for sieging humans.  That should probably be mentioned here, plus which of the human liasons (all?) have this ability, plus tips to prevent trap observation from happening.  It would also be nice to see whether or not deconstructing a trap and then building an identical one in the same place is enough to counter it (I suspect it is).  [[User:Arrkhal|Arrkhal]] 22:01, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Cross-racial liasons ==&lt;br /&gt;
&lt;br /&gt;
(No, not *those* kind.) I just had my first dwarf caravan arrive in the fall of my first year, and they seem to have brought an elven outpost liason. Who's missing his left arm below the elbow and keeps passing out on the way to my fort. I know my parent civilization has seen better days (they only have one Mountainhome left after a series of wars), but you're telling me there was nobody better to send than a one-armed treehugger?&lt;br /&gt;
&lt;br /&gt;
So apparently civs can provide liasons from assimilated members of other races. And the game doesn't check for injuries until it puts them in-game (like a lot of guards in adventure mode).&lt;br /&gt;
:My current fort's Human neighbors have an Elf Guild Representative, and my own Dwarven civilization has an Elf Diplomat (though a Dwarf Liaison), so it doesn't seem to be all that uncommon. Hell, my civilization even has a Goblin &amp;quot;High Priest/Goblin Drunk&amp;quot;, so it would appear that the sky's the limit. --[[User:Quietust|Quietust]] 18:09, 14 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Late arrivals ==&lt;br /&gt;
&lt;br /&gt;
I let a winter siege continue through late spring, which kept the elven caravan away. Now in early summer, I got these two events in a row:&lt;br /&gt;
&lt;br /&gt;
[[File:Blockedbridge-diplomats.png]]&lt;br /&gt;
&lt;br /&gt;
Before this, I assumed that the diplomat always arrived with the caravan from that same civilization. Has anybody seen a diplomat postpone their trip like this?&lt;br /&gt;
&lt;br /&gt;
--[[User:HebaruSan|HebaruSan]] 18:42, 15 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File:Blockedbridge-diplomats.png&amp;diff=58326</id>
		<title>File:Blockedbridge-diplomats.png</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File:Blockedbridge-diplomats.png&amp;diff=58326"/>
		<updated>2009-11-15T18:33:55Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: Elven diplomat arriving shortly before human diplomat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Elven diplomat arriving shortly before human diplomat&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki_talk:Community_Portal&amp;diff=58285</id>
		<title>Dwarf Fortress Wiki talk:Community Portal</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki_talk:Community_Portal&amp;diff=58285"/>
		<updated>2009-11-14T02:30:22Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Proposal: Category:Best of DF Wiki */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Use this discussion page to talk about any issues or ideas you have about the direction of this wiki. The community portal is a hub for directing our conciousness. Read the rules carefully, take them to heart, post here if you have any questions or you think the rules can be improved.&lt;br /&gt;
{{Archive|&lt;br /&gt;
#[[Dwarf_Fortress_Wiki_talk:Community_Portal/archive1|Archive 1]]&lt;br /&gt;
}}&lt;br /&gt;
== Thoughts on {{rule|i}} - Diagrams ==&lt;br /&gt;
&lt;br /&gt;
Isn't [[Template:RT]] really more complexity than we need? How about this?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font:bold 20px/1 'Courier New';color:#ccc;background:black;width:auto;padding:0;float:left&amp;quot;&amp;gt;&lt;br /&gt;
╔═══╗&lt;br /&gt;
║+++║&lt;br /&gt;
║+++┼&lt;br /&gt;
║+++║&lt;br /&gt;
╚═══╝&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{-}}&lt;br /&gt;
&lt;br /&gt;
Save the complex templates for when you actually need color&lt;br /&gt;
&lt;br /&gt;
You can even drop the complexity further for a nice typewriter character set&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font:bold 20px/1 'Courier New';color:#ccc;background:black;width:auto;padding:0;float:left&amp;quot;&amp;gt;&lt;br /&gt;
#####&lt;br /&gt;
#...#&lt;br /&gt;
#...+&lt;br /&gt;
#...#&lt;br /&gt;
#####&lt;br /&gt;
&amp;lt;/pre&amp;gt;{{-}}&lt;br /&gt;
&lt;br /&gt;
(I picked this particular size because it makes &amp;lt;span style=&amp;quot;font:bold 20px/1 'Courier New'&amp;quot;&amp;gt;░░░▒▒▒▓▓▓&amp;lt;/span&amp;gt; look right in them, which makes it seem that it's the size the font is designed for. I picked this _font_ because it provides all of the CP437 characters. The actual style tag you see above could be moved to a template so it would look like &amp;lt;code&amp;gt;&amp;amp;lt;pre &amp;lt;nowiki&amp;gt;{{TD}}&amp;lt;/nowiki&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
[[User:Random832|Random832]] 20:28, 30 December 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
== Mod content in regular articles ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;All mod content, it has been stated, should not appear in the regular articles.&amp;quot; --[[User:Zchris13]], at [[Talk:Sand]]&amp;lt;br&amp;gt;&lt;br /&gt;
If I recall correctly, one guy stated that yesterday. Personally, I find it rather counter-DF:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;In Dwarf Fortress, modding almost ''is'' vanilla.&amp;quot; --[[User:Savok]], at the [http://www.bay12games.com/forum/index.php forums]&amp;lt;br&amp;gt;&lt;br /&gt;
Opinions? Beliefs? Comments? Thoughts? Please, answer this, The Community! --[[User:Savok|Savok]] 11:24, 8 March 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
:I'm probably the one who you're thinking of who stated it ;)&lt;br /&gt;
:#I don't think that modding is ''ever'' vanilla, no matter what the game, how mod-friendly the game is, or how many mods exist.  Saying that it's incredibly common does not change the definition of the term &amp;quot;unmodded&amp;quot;.&lt;br /&gt;
:#I think that modding information would be better served by putting it in one place.  It's easier to figure out modding and/or find the information you need if it's all on one page (or a small number of pages).  And if the information is there, why would you ''also'' put it on ''every single other article in the wiki''?&lt;br /&gt;
:#Whenever the ways something can be modded changes, every single article about that something would have to be changed.  If a new way to mod metals, for example, was added, then every single metal article would have to be changed to reflect this.&lt;br /&gt;
:#tl;dr version: I think it would be horrifically redundant even by typical wiki standards and would never be maintained anyways (seriously, there are still pages that haven't been updated since the 2D version).  And that's even before you think about whether it ''should'' be done at all.&lt;br /&gt;
:--[[User:LegacyCWAL|LegacyCWAL]] 13:10, 8 March 2009 (EDT)&amp;lt;!-- reformatted by Savok to use a numbered list instead of a manually created numbered list. This note may be removed by Legacy now or by anyone after a few months--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::Sorry, couldn't find it in all of yesterday's edits.&lt;br /&gt;
::#Yeah, I shouldn't go changing my definitions of words. What I mean is &amp;quot;modding is normal.&amp;quot;&lt;br /&gt;
::#I agree partially, but, since light modding is normal and mainstream, it should go in normal and mainstream articles.&lt;br /&gt;
::#No, every article that mentioned metal-modding. And I don't think that there are too many non-modding articles that do.&lt;br /&gt;
::#TL/DR: I think that a little mentioning of modding (for example, stating in [[Sand]] that you can mod any soil into sand (although that's a bit obvious)) is fine, although I fully agree that all possible topic-related modding should not be mentioned.&lt;br /&gt;
::--[[User:Savok|Savok]] 18:45, 8 March 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
:::I think I can live with that ;).  Also, I appreciate the reformatting: I couldn't find the instructions on how to make such a list, though odds are it's right in front of me =( --[[User:LegacyCWAL|LegacyCWAL]] 19:41, 8 March 2009 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Heading gripe ==&lt;br /&gt;
&lt;br /&gt;
I'd like to add to H that one shouldn't use heading sections of one = because it results in bad html coding and a title the size of the page name. It's also general practice on [http://en.wikipedia.org/wiki/Help:Section#Creation_and_numbering_of_sections wikipedia]. Anyways, I thought I'd post something here before I go ahead and change it so I can at least pretend to have discussed it before hand. --[[User:Mikaka|Mikaka]] 05:39, 4 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Modding content ==&lt;br /&gt;
Is this, [[New_Plants]], really how we do it? Frankly, i found it a bit confusing at first. At least it should get a better header. --[[User:Confused|Confused]] 00:37, 8 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== JavaScript seems disabled ==&lt;br /&gt;
&lt;br /&gt;
The collapsible box doesn't seems collapsible anymore. I don't see the [show]/[hide] anymore either, since the wiki broke. Am I the only one with this trouble ? --[[User:Karl|Karl]] 01:02, 22 August 2009 (UTC)&lt;br /&gt;
:Apparently it's fixed now, at least for me. I have found that my browser cache can screw with these things on other wikis so no reason why it wouldn't happen here. Javascript becomes disabled on client web browsers far more often than it does on web hosts/sites which previously allowed it. (Possibly belatedly I know.)&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:43, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Do we detail pointlessly? ==&lt;br /&gt;
&lt;br /&gt;
As everyone knows, the wiki spoils everything about Dwarf Fortress. We have a spoiler-warning system, but it's quite disused. I think one guy said that it's pointless, because we need to put it on every page, because every page is a spoiler. We have a tendency to detail everything, much of which isn't helpful to newbies but ruins a little the delight a newbie can take in DF that no longer exists for us veterans.&lt;br /&gt;
&lt;br /&gt;
For example, to quote the page [[woodcutter]], &amp;quot;Woodcutters are working outdoors where they are in constant danger of being [[ambush]]ed by invaders or attacked by wild animals (unless, of course, you are the proud owner of an [[Tower-cap#Underground_tree_farm|underground tree farm]]), but they are also one of the few civilian professions which carry [[weapons]] with them. Thus, it can be helpful to teach them how to use their axes to defend themselves (and others) properly by making them spend a few months as [[axedwarf]]s in your [[military]].&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Here, all that really should be noted is that woodcutting skill does not help in combat. Yes, another problem with the wiki as it is is that we often assume that newbies know a lot of stuff they don't, making even DFwiki have a steep learning curve - a bit ironic. Regardless, pointless detail such as in the above article not only does not help but hurts, making the wiki dry and boring.&lt;br /&gt;
&lt;br /&gt;
I propose that we write into our little [[Dwarf Fortress Wiki:Community Portal|constitution]] a guideline to avoid such detail in addition to removing large amounts from the wiki, fixing the pages. Of course, this is a major undertaking, not to just be done. What do y'all think? Agree? Argue? Please do comment. --[[User:Savok|Savok]] 02:36, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Wikis attract wikignomes who like to tinker and add information to articles until they are &amp;quot;complete&amp;quot;. Attempting to define how much information can be added before an article is &amp;quot;over-complete&amp;quot; is pretty difficult.&lt;br /&gt;
:Is there a policy that this wiki must not spoil the game for new players?&lt;br /&gt;
:There are a lot of different reasons people read this wiki - it isn't just a hosted version of the wonderful instruction manual that is included with the game. Would [[computing]] be possible without collaboration (between players), which is nothing but spoiling?&lt;br /&gt;
:The answers would lie in either seperate articles, or some kind of template which hides information regarded as a spoiler. &lt;br /&gt;
:There is this option:&lt;br /&gt;
{| class=&amp;quot;collapsible collapsed&amp;quot; style=&amp;quot;width: 100%; background-color: lightblue;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;| Basic intrduction&lt;br /&gt;
|-&lt;br /&gt;
|Woodcutters cut down trees.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;collapsible collapsed&amp;quot; style=&amp;quot;width: 100%; background-color: lightblue;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;| Minor spoiler&lt;br /&gt;
|-&lt;br /&gt;
| They are one of a few civilian trades which involves carrying a weapon. In hostile areas you might want to consider training woodcutters as Axedwarves.&lt;br /&gt;
|-&lt;br /&gt;
{| class=&amp;quot;collapsible&amp;quot; style=&amp;quot;width: 100%; background-color: lightblue;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;| Major spoiler&lt;br /&gt;
|-&lt;br /&gt;
|Another option on some maps is establishing an underground tree farm.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:However that requires some knowledge of either wikimarkup or html - tbh I just cookbooked it and it took me a fair bit of messing around before I got it right the first time.&lt;br /&gt;
:Another option is, linked articles, where you go from [[Woodcutter (base)]] to [[Woodcutter (minor spoiler)]] to [[Woodcutter (major spoiler)]] - it would be easy enough to include (base) in (minor spoiler) and (minor spoiler) in (major spoiler).&lt;br /&gt;
&lt;br /&gt;
:I think &amp;quot;enough&amp;quot; readers ''want'' the major spoilers that taking them out would &amp;quot;degrade&amp;quot; this wiki.&lt;br /&gt;
:&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:36, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::I just re-read [[woodcutter]] in full. IMO the article builds nicely from the basic &amp;quot;how to cut trees&amp;quot; to more advanced gameplay strategy, such as &amp;quot;enable woodcutting on every outdoor worker so they all carry weapons&amp;quot;. Personally I don't see that as being a good value strategy, for the work involved in equipping that many dwarves with axes you could have a fairly useful (specialised) millitary - but it isn't the first thing a spoiler-adverse reader stumbles over. If it was the first thing in the article it would be a far greater problem.&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:41, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I'm going to agree with Garrie on this. Counting me, there's at least one person who would not have stuck with DF if he hadn't had access to a thorough DF reference library such as this. When a new player comes to this wiki, odds are they're looking to have ''something'' spoiled.&lt;br /&gt;
:One vote for 'Not Too Spoiled' --[[User:Njero|Njero]] 03:45, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Sorry to have apparently been totally unclear... I don't want to take spoilers out! I think that there are a lot of things, like the example from woodcutter, that a player can figure out on his &amp;lt;s&amp;gt;on&amp;lt;/s&amp;gt;own, which can be a lot more fun than being told all the fine details of fortress 1337. I do think it would be good to separate the spoilers more in some cases, but that's a totally different topic.&lt;br /&gt;
:For another example, I think we can agree that it is pointless to have a page telling how to dig a 1-tile channel pit and designate it as a Quantum Dump, given that you know how a Quantum Dump works. We used to have (still have? not sure) one of those. --[[User:Savok|Savok]] 03:59, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::I think your quantum dump page has been reincarnated at [[dwarven physics]]?&lt;br /&gt;
::OK I think I see these points: &lt;br /&gt;
::# there is no clear guideline how much spoiling &amp;quot;is alowed&amp;quot;&lt;br /&gt;
::# there is no clear guideline on how specific an article can get (scope vs depth)&lt;br /&gt;
::# there is no clear guideline on when a &amp;quot;spoiler alert&amp;quot; should be given.&lt;br /&gt;
::I think that guidelines are good, in general. The rules are a bit flexible as most of us expect given this is a game-wiki not an encyclopedia. I know you do a lot more admin-editing than anyone else put together so you (Savok) probably have a better 1,000 ft view of the size of this problem than everyone else. Having said that... I would err greatly on allowing pages which are &amp;quot;game-world correct&amp;quot; to remain, allowing pages which don't have (dreadful) spoilers in the lead section to not have &amp;quot;ugly&amp;quot; spoiler warnings, and if we can have articles on [[computing]] and [[Glowing pit]] then pretty much there is no aspect of the game which is off-limits to being exposed by spoilers.&lt;br /&gt;
::I'm also agreeing with Njero, that if I hadn't found this wiki as quickly as I did, with detailed (and spoilerific) content of things from &amp;quot;how to dig&amp;quot; to &amp;quot;how to fight&amp;quot; and &amp;quot;what's hard to fight&amp;quot;... I would probably have deleted the game within 2 days of downloading it. Some of us don't find the forum that helpful!&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 05:51, 10 September 2009 (UTC)&lt;br /&gt;
:::+1 what GI said. I read the wiki before starting - I, personally, hate the whole &amp;quot;trial and errour&amp;quot; thing from scratch, especially in a game where the wrong little mistake can mean GAME OVER.  I'm average-bright, and I still found that a lot of the &amp;quot;detail&amp;quot; was lost on me, at least until I had experienced it (or nearly so.)  HFS? Still haven't breached one yet (slow computer, and in no rush) - so I can parrot a lot about that, but really have no personal feel for it and still look forward to that experience (even if now I won't walk in blind to that particular practical joke).  If I'd wanted a surprise, I'd have not read those articles (and would be someone else).  &lt;br /&gt;
&lt;br /&gt;
:::That said, I '''''do''''' find that many mid-experience and advanced articles do repeat basic concepts too much - the &amp;quot;how to dig a channel&amp;quot; for a quantum dump example, above. And over-link, etc.  However, if a newb were to stumble on that page, altho' they aren't ready for the advanced stuff, they may wonder what the basic stuff is - and follow those links.  So... I don't think it's over-detailed for anyone except those who know the game (i.e. &amp;quot;us&amp;quot;).  For the newb, stumbling about on the wiki, they either ''want'' to read about it, or ''need'' to, or both.  Less detail is fewer links, and less overall usefulness to the (self-filtering) target audience.--[[User:Albedo|Albedo]] 19:53, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:We do not detail pointlessly. More spoiler warnings? Why not. The collapsibles might be a nice solution in many places. But no limits to the completeness of the wiki please. It's hard to figure out quite a bit of the more complex, and interesting, stuff like machinery on your own and quite a bit is counterintuitive too, like how levers work. It may be really neat if you think up using channels as moats yourself, but it still took me several tries to get a nice and working setup. Oh and bridges.. I still made so many mistakes ''after'' reading up on things. And as far as strategy goes, I have my own opinion on quite a few things said in the wiki, as do others, and often it's just those views that are put in the articles. Like I think its's fine to have your woodcutter ''not'' trained because an axe as such is a fine defense already. And knowing that, on some maps, with some effort, you can have an UG tree farm improves the fun (no, not [[fun]], '''fun'''). It's still hard and rewarding to actually ''do'' it.&lt;br /&gt;
&lt;br /&gt;
:Information may be a bit (over-!)redundant here and there, yes, but I am confident this will clear out on itself by and by when articles are better organized to be read &amp;quot;in a row&amp;quot;. Lastly, what we write here, especially the strategy bits, will be found just as readily in the forums.  --[[User:Birthright|Birthright]] 19:22, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Woodcutters are working outdoors where they are in constant danger of being ambushed by invaders or attacked by wild animals&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You want to delete that? Savok, You are a cruel man.&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;(unless, of course, you are the proud owner of an underground tree farm),&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I'd really like to know how the first player figured tower caps out on his own. Mayor kudos to him, if, but i rather suspect toady dropped a hint. So do we.&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;but they are also one of the few civilian professions which carry weapons with them.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Well, it should be obvious that the axe still works as weapon, too...hm...but it isn't. So we say it.&lt;br /&gt;
&lt;br /&gt;
 Thus, it can be helpful to teach them how to use their axes to defend themselves (and others)&amp;lt;br&amp;gt; properly by making them spend a few months as axedwarfs in your military.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Okay this part could be reworded like you suggest: Woodcutting does not improve goblincutting. But wouldn't the information be the same? --[[User:Höhlenschreck|Höhlenschreck]] 21:07, 12 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I know I'm a little late to this discussion; but as an honest to goodness newbie I've found the wiki invaluable as is.  I've been playing DF for probably 3 weeks now.  I attempted to dive right in and just play without reading the wiki or anything, just the actual in-game help.  What a mistake that was!  I couldn't even figure out how to turn down the volume on the in game music at first!  (partly because on a lap top without a num-pad the numbers for up-down selection were less then intuitive).  So far I've found most articles have just about the right amount of depth; although some could use some clarification).  With the help of the wiki I discovered how many mistakes I really made on my first embark and how lucky I am to still have that fort nearly 7 dwarf years later.  I almost had a lot of [[fun]] with lava; but a quick trip to the wiki made me realize all I needed was a constructed wall or door.  That really saved my bacon.  --[[User:Kelsa|Kelsa]] 05:38, 11 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== A for Anonymity? ==&lt;br /&gt;
&lt;br /&gt;
On at least [[Talk:Fortress_defense#Use_of_User_Names_in_Defense_Designs|one page]], the concept of &amp;quot;non-ownership&amp;quot; of wiki contributions has been agreed upon, that designs should not have User's names attached, and phrases like ''&amp;quot;I like to...&amp;quot;'' be changed to ''&amp;quot;Some users like to...&amp;quot;'' .  Currently, the letter &amp;quot;[[Dwarf_Fortress_Wiki:Community_Portal#A|A&amp;quot;]] is for &amp;quot;Alphabet&amp;quot; - hardly enlightening.  I wouldn't mind seeing this slot used for a more formalized policy in this direction, to avoid repeating [[Talk:Bedroom_design#Personalisation?|this discussion]]. (Or is the alphabet thing now sacrosanct as is?)&amp;lt;br /&amp;gt;&lt;br /&gt;
The applications of such &amp;quot;catch-all&amp;quot; pages are endless, especially as mod's become more and more prevalent both in-game and on this site.--[[User:Albedo|Albedo]] 19:42, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:Eh. For some things, we obviously want to give credit - [[tilesets]], for example. Personally, I would say that [[:File:Housing by Marble Dice.png|this bedroom design]] probably should be credited to Marble Dice. I don't think a policy that putting data here automatically makes ownership of it go to the wiki (and the wiki will make it anonymous) is a very useful one... --[[User:Savok|Savok]] 20:34, 10 September 2009 (UTC)&lt;br /&gt;
::Not so much ownership - ''certainly'' not a release of rights to intellectual property in ''any'' legal sense - but more a de-emphasis of personal credit over contribution for contribution's sake.  My name would be all over these pages, as would many others' - that would get old fast, and (possibly) encourage competition and possessiveness, rather than collaboration and contribution. But, as you say... eh.  Just thought I'd ask.--[[User:Albedo|Albedo]] 21:15, 10 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:The thing that strikes me here is, it looks to me as though some of the designs (the fractals etc) have not been put here by the person who designed them. They were designed, discussed on a forum, then someone else thought they looked good and put them here.&lt;br /&gt;
:Even if that isn't right - the rest of the [[bedroom]] article reads as though that is how it happened. Until you get to the final entry - which in the original form looked very &amp;quot;owned&amp;quot;.&lt;br /&gt;
:If you want to own something put it in user space. If you put it in article space expect it to get edited.&lt;br /&gt;
:I think that is the rule that needs to exist &amp;quot;somewhere&amp;quot;, by nature wiki contributions aren't anonymous. &amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 00:08, 11 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Category titles (capitalization) ==&lt;br /&gt;
&lt;br /&gt;
Reviving [http://dwarf.lendemaindeveille.com/index.php/Dwarf_Fortress_Wiki_talk:Community_Portal/archive1#Category_tags this] section from the archive, you'll see that our [[Special:Categories|categories]] page (also, Category:Templates) has so many capitalization inconsistencies it'll make your head spin.  I propose Category:Formatting Templates as preferable to Category:Formatting templates though the existence of both shows that this needs to be addressed.&amp;lt;BR&amp;gt;&lt;br /&gt;
Also, how do you wikilink to those catagory pages?  Is it possible?--[[User:Rowenlemmings|Rowenlemmings]] 21:01, 13 September 2009 (UTC)&lt;br /&gt;
:First I agree there should be a rule for naming categories, and as per &amp;quot;the&amp;quot; wiki, it should be &amp;quot;first letter of first word only capitalised unless there's a really good reason&amp;quot; (eg: &amp;lt;nowiki&amp;gt;[[Category:Toady One]]&amp;lt;/nowiki&amp;gt; where the name of the category is a proper noun / &amp;quot;real name&amp;quot; ).&lt;br /&gt;
:&amp;lt;s&amp;gt;Secondly - Categories are &amp;quot;just&amp;quot; normal article pages with some magic behind them, link to them the same as any article. &amp;lt;/s&amp;gt; oops I'm wrong let me check that.&lt;br /&gt;
:&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:26, 19 September 2009 (UTC)&lt;br /&gt;
::To link to a category page put a colon ''':'''in front of the word Category in the &amp;lt;nowiki&amp;gt;[[ ]]&amp;lt;/nowiki&amp;gt; eg &amp;lt;nowiki&amp;gt;[[:Category:Wiki]]&amp;lt;/nowiki&amp;gt; -&amp;gt; [[:Category:Wiki]]&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:34, 19 September 2009 (UTC)&lt;br /&gt;
:::Ah hah, mystery solved.--[[User:Rowenlemmings|''Rowen'']]&amp;lt;sup&amp;gt;[[User Talk:Rowenlemmings|(talk)]]&amp;lt;/sup&amp;gt; 02:00, 22 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::While this is all well and good for new categories, renaming existing categories is much more difficult than renaming pages. With a page we can simply redirect, but to rename a category we need to go through each page in it and change the tag. This is a lot of work for relatively little gain. [[User:VengefulDonut|VengefulDonut]] 13:44, 22 September 2009 (UTC)&lt;br /&gt;
:::Is there anyone around that can &amp;quot;borrow&amp;quot; a bot from &amp;quot;the other wiki&amp;quot; to do this kind of stuff? From my understanding a bot that&lt;br /&gt;
:::#scrapes [[:Bad Category Name]] for the list of articles&lt;br /&gt;
:::#scrapes [[:Bad Category Name]] for any actual content&lt;br /&gt;
:::#loads each article in turn&lt;br /&gt;
::::#searches for [[:Bad Category Name]]&lt;br /&gt;
::::#replaces [[:Bad Category Name]] with [[:Good category name]]&lt;br /&gt;
::::#saves the article&lt;br /&gt;
:::#Writes the content from [[:Bad Category Name]] to [[:Good category name]]&lt;br /&gt;
:::is relatively straight forward (as bots go).&lt;br /&gt;
:::I don't know anything about actually using bots but I know what they can do.&lt;br /&gt;
:::How big is this wiki without the media part anyway? I thought the other thing about wikis is it is &amp;quot;relatively easy&amp;quot; to d/l the whole thing as a flat file, make this kind of edit with a text editor, and write it back up. After checking to see if anyone has edited any of the pages of course ;) &amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 13:43, 26 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Bottom or Top==&lt;br /&gt;
Not a big thing, but it seems we should have a rule whether new edits/sections in any non-article space should go at top or bottom of the page. Might also be added to the newbie welcome template. --[[User:Höhlenschreck|Höhlenschreck]] 21:49, 18 September 2009 (UTC)&lt;br /&gt;
:Dunno if a rule is needed, most ppl quickly work out that the default action of the &amp;quot;+&amp;quot; magic button is to add a new section &amp;lt;b&amp;gt;at the bottom of the page&amp;lt;/b&amp;gt; so this is how you &amp;quot;should&amp;quot; do it manually.&amp;lt;font face=&amp;quot;FixedSys&amp;quot; color=&amp;quot;#00FFFF&amp;quot;&amp;gt;[[User:GarrieIrons|Gar]]&amp;lt;/font&amp;gt;[[User Talk:GarrieIrons|rie]] 03:22, 19 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Proposal: [[:Category:Best of DF Wiki]] ==&lt;br /&gt;
&lt;br /&gt;
[[User:BaronW|BaronW's dwarven calculator]] blew my mind and made me crave some way of recognizing and celebrating it. I propose the creation of a wiki category that would consist entirely of abnormally excellent material to wow the reader and shock the house. This category would be managed by way of nomination and [[:Category talk:Best of DF Wiki|discussion]] rather than ad hoc addition, and a link to it would be added to the [[Main Page]] to encourage newbies to visit and marvel (I guess under &amp;quot;Wiki articles by category&amp;quot;). Think of it as a collective favorites list.&lt;br /&gt;
&lt;br /&gt;
My nominations for initial inclusion:&lt;br /&gt;
* [[User:BaronW|BaronW]]'s calculator, of course&lt;br /&gt;
* [[:File:DF_Cheese.jpg]]&lt;br /&gt;
* [[:File:SquirrSurvCathedralAir1.PNG]]&lt;br /&gt;
* [[User:Vattic/Orcsicle maker Explained|Vattic/Orcsicle maker Explained]]&lt;br /&gt;
* [[Morul]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Feedback on the general concept?&lt;br /&gt;
# Comments on these nominations?&lt;br /&gt;
# Your own nominations?&lt;br /&gt;
--[[User:HebaruSan|HebaruSan]] 02:30, 14 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58249</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58249"/>
		<updated>2009-11-13T16:29:20Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: improvements negotiated on talk page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Fast movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor jumps ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have [[#Edge collision|side effects]] however and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
=== Diagonal movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Final cursor placement ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's initial position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now backs up in the space the first &amp;quot;_FAST&amp;quot; command had already traveled. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Interface]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Macro_design&amp;diff=58248</id>
		<title>40d Talk:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Macro_design&amp;diff=58248"/>
		<updated>2009-11-13T16:25:14Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Updates to my work in progress ==&lt;br /&gt;
&lt;br /&gt;
Wow thats a lot of updates to a page I was building, that had no links to, with no discussion page entries.., and I had to go to bed. &lt;br /&gt;
&lt;br /&gt;
I like most of what has been done except for the following&lt;br /&gt;
*Changing a &amp;quot;Step to Far&amp;quot; to Off-by-one Errors&lt;br /&gt;
**This is the exact opposite of the common off-by-one error of arrays and for loops, while it is an error of just 1, this is misleading I think. Also &amp;quot;off-by-one&amp;quot; is really just a CS term.&lt;br /&gt;
* The Change (labeled &amp;quot; Off-by-one&amp;quot;) to make &amp;quot;current&amp;quot; into &amp;quot;initial&amp;quot;&lt;br /&gt;
**This is wrong, as it can occur anywhere in the script not on just the initial movement.&lt;br /&gt;
* In Fast Movement&lt;br /&gt;
** The Concept of the cursor jumping was removed and replaced with &amp;quot; the cursor moves ten squares instead of one&amp;quot;. The old Term of &amp;quot;Jumping&amp;quot; gets across the idea of skipping/is-faster than ten squares of movement&lt;br /&gt;
* What was wrong with &amp;quot;(nearly half)&amp;quot;&lt;br /&gt;
* &amp;quot;Troubleshooting&amp;quot;&lt;br /&gt;
** this is a &amp;quot;design&amp;quot; page, not a how to code page. the Original &amp;quot;Problems to avoid&amp;quot; term is more toward the concept of &amp;quot;read this section first and have it in your head while coding&amp;quot;. Not to figure out what when wrong after the fact. Hopefully if they design it right the first time, it will work perfectly with no debugging.&lt;br /&gt;
* I think the Second Edge Collision paragraph read a lot better the way it was.&lt;br /&gt;
* &amp;quot;applies to a command&amp;quot; isn't correct. &lt;br /&gt;
**Original didn't have that issue&lt;br /&gt;
&lt;br /&gt;
Over all I'm glad for the help (especially in the conversion to a 3rd person), I just didn't expect it until the page was actively linked some where. I'll make the above changes if I don't see a justification not-to comments.  [[User:Larek|Larek]] 22:37, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Heh, yeah, every edit you make shows up in [[Special:RecentChanges]], and there are several people who watch that page. In general, as soon as you click save, people will see your change and look at it, and if it's in the main namespace, they will probably make changes, too. If you want to keep exclusive ownership over something, you can make a user page like [[User:Larek/Macro design]]. We'll still see it, but it's considered bad form to ''edit'' someone else's personal pages.&lt;br /&gt;
:* Why do you say it's the opposite of an off by one error? The programming term is used to describe confusion in loop conditions when iterating over an array. It seems quite analogous to me; maybe you can elaborate.&lt;br /&gt;
:* Re: current vs initial, my thought was that it's the starting point for a given series of movement commands. Personally I think that's clear from the context, but I'm open to other ideas.&lt;br /&gt;
:* Would you be happy with &amp;quot;the cursor '''jumps''' ten squares instead of one&amp;quot;? I wouldn't have a problem with that.&lt;br /&gt;
:* I thought &amp;quot;(nearly half)&amp;quot; would be obvious to anyone reading the numbers. In general, if text is unnecessary, then removing it means you get to the next necessary idea faster.&lt;br /&gt;
:* You say it's not about debugging, but the first clause was already &amp;quot;When your script doesn't run as planned&amp;quot; before I edited. That sounds like debugging to me. Personally I don't think debugging is inappropriate on a design page; people following along are likely to need debugging strategies unless they somehow do everything perfectly the first time.&lt;br /&gt;
:* I thought the edge collision section was missing some key concepts, specifically the possible disparity between changed-area and traversed-area which is the root cause of the problem in the first place. What advantages do you see in its original phrasing?&lt;br /&gt;
:* Admittedly, &amp;quot;applies to&amp;quot; is metaphorical. I was trying to express that now instead of (normal jump)(backpedal jump) you have (backpedal jump)(normal jump), since the &amp;quot;backward&amp;quot; movement takes place earlier. I'll try to think of a better phrasing, but please feel free to come up with something yourself.&lt;br /&gt;
: But welcome to the wiki, and thank you for contributing!&lt;br /&gt;
: --[[User:HebaruSan|HebaruSan]] 00:05, 13 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Wow, So we have hawks, perched, looking for fresh meat. :)&lt;br /&gt;
::No it wasn't a personal page, It was a initial work in progress that I hadn't gotten to a first release state yet. I had not Idea that you could do sub-user pages. The heavy editing with no comments through me off a bit too. Water under the bridge.&lt;br /&gt;
::*&amp;quot;the opposite of an off by one error&amp;quot;, off-by-one is a CS term and I'll use your diagram to hopefully show what I mean.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the 'normal' world people count like this&lt;br /&gt;
&lt;br /&gt;
 1 2 3 4 5 6 7...&lt;br /&gt;
 # # # # # # #...&lt;br /&gt;
&lt;br /&gt;
 They teach that in Kindergarten I think.&lt;br /&gt;
&lt;br /&gt;
However in the World of Bits, CS (arrays, integers, loops etc) count like this&lt;br /&gt;
&lt;br /&gt;
 0 1 2 3 4 5 6...&lt;br /&gt;
 # # # # # # #...&lt;br /&gt;
&lt;br /&gt;
   There starting value is 0, so their first(1) operation is dealing with item zero(0).&lt;br /&gt;
   Since CS People originally lived in a non bit world, they tend to revert back creating&lt;br /&gt;
   and off by one.&lt;br /&gt;
&lt;br /&gt;
In DF macros we don't count, we transition  like this&lt;br /&gt;
&lt;br /&gt;
  1 2 3 4 5 6 ...&lt;br /&gt;
 #&amp;gt;#&amp;gt;#&amp;gt;#&amp;gt;#&amp;gt;#&amp;gt;#...&lt;br /&gt;
&lt;br /&gt;
  So at the end of the first(1) operation we are dealing with item Two(2), thus the &lt;br /&gt;
  opposite size of '1' than the CS notion is from the Kindergarten method.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
::* The other place I see programmers use off-by-one is that, a lot of loop and data structures (like ques)have initial-case and/or final-case conditions that differ from the main content of the loop or structure. When their code doesn't run right, instead of trying to recalculate the loop variables, they first test to see if they're off by one (in both directions), and see if it works. &lt;br /&gt;
::** This is like DF macros, But in the DF case it should be always one to high, hence the name &amp;quot;a step to far&amp;quot;. Where in this second use if off-by-one its multi directional. I'm not set on the old name, but I think that implying a direction and not implying guess-and-check is good.&lt;br /&gt;
&lt;br /&gt;
::*I thought current was easier it to understand, instead of a whole bunch of moves each with an initial position. I guess it's more of a flowing concept than a start, stop, start, stop...    Doesn't matter too much, it's just a wording opinion.&lt;br /&gt;
&lt;br /&gt;
::*Yes I think the term jump, helps the concept greatly&lt;br /&gt;
&lt;br /&gt;
::*True the text should short and sweet, but we could also write a page that says &amp;quot;do good coding&amp;quot; and thats it.  People tend to get &amp;quot;glossy eyed&amp;quot; when you throw a lot of numbers at them. which this article does. I thought reiterating the the count went  from 38-&amp;gt;11 is god but taking that to 11-&amp;gt;6 its Really good too. Sure it's easily notice that they lost 27 steps in the first optimization, and that saving 5 steps isn't bad. But I wanted ''nearly half'' in there, to draw attention to the second optimization, That it is saving 45.5% ~= 50% which is big, or at least sounds bigger than just 5. &lt;br /&gt;
&lt;br /&gt;
::* Cool you caught me on my own language. Hey it was a work in progress. Yes I do expect them to do a some debugging, but not debugging the design but mistakes when typing in the code.&lt;br /&gt;
::** I think however that the design-not-debug is still a good idea. The Back Peddling part shouldn't be a debug anyway since, if script runs correctly once, most people will stop and call it good. (and not see an issue with their Back Peddling) Its a thing that needs to be thought of during the design. And the Travel length should be &amp;quot;in the designers mind&amp;quot; too.&lt;br /&gt;
&lt;br /&gt;
::*The first way, I thought, was easier to read. You made the long middle sentence even longer with more &amp;quot;big' words. And the original seemed to have a lighter tone.&lt;br /&gt;
&lt;br /&gt;
::*OK Lets see,&lt;br /&gt;
::** Original&lt;br /&gt;
::*** &amp;quot;travels over the same area the previous &amp;quot;_FAST&amp;quot; command covered.&amp;quot;&lt;br /&gt;
::** Current&lt;br /&gt;
::*** &amp;quot;now applies to the first &amp;quot;_FAST&amp;quot; command&amp;quot;&lt;br /&gt;
::** If the Original is no good how about&lt;br /&gt;
::*** &amp;quot;now backs up in the space the first &amp;quot;_FAST&amp;quot; command had already traveled.&amp;quot;&lt;br /&gt;
::** Or something else..&lt;br /&gt;
::[[User:Larek|Larek]] 14:55, 13 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::: Take a look at [http://en.wikipedia.org/wiki/Off-by-one_error#Fencepost_error Wikipedia's graphic for &amp;quot;Fencepost&amp;quot; errors], a kind of off-by-one error. It's practically identical to what we're discussing here. Just like you can cover N-1 sections with N posts, you only need to move N-1 times to designate N tiles. If you think the phrase is too technical or obscure, that's one thing, but I don't think there's any question that it's applicable.&lt;br /&gt;
::: I like your &amp;quot;now backs up in the space...&amp;quot;. I'll add that now, along with &amp;quot;jump&amp;quot;.&lt;br /&gt;
::: --[[User:HebaruSan|HebaruSan]] 16:25, 13 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=58247</id>
		<title>Utility:Stonesense</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Utility:Stonesense&amp;diff=58247"/>
		<updated>2009-11-13T15:35:55Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are searching for &amp;quot;Stone Sense&amp;quot;, the excellent reveal tool by 0x517A5D, see [http://dffd.wimbli.com/file.php?id=836]&lt;br /&gt;
&lt;br /&gt;
This is a temporary placeholder for the Stonesense visualizer by Jonask, Solifuge, peterix (author of dfhack) and others.&lt;br /&gt;
&lt;br /&gt;
==Stonesense==&lt;br /&gt;
Stonesense is a third party visualizer that lets you view your Dwarf Fortress world in a classic isometric perspective.&lt;br /&gt;
&lt;br /&gt;
The official thread for feedback, questions, requests or bug reports is located at [http://www.bay12games.com/forum/index.php?topic=43260.0]&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
Project homepage:&lt;br /&gt;
http://code.google.com/p/stonesense/&lt;br /&gt;
&lt;br /&gt;
==Sprites preview and todo list==&lt;br /&gt;
write me!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
Stonesense was written by Jonask, peterix, and kaypy.&lt;br /&gt;
Initial graphics were provided by Solifuge.&lt;br /&gt;
Additional Graphics were contributed by:&lt;br /&gt;
(fill me in)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Flood&amp;diff=58235</id>
		<title>40d:Flood</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Flood&amp;diff=58235"/>
		<updated>2009-11-13T05:21:22Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* How to flood a fortress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flooding generally refers to water getting loose and spreading out over an area, usually in an unregulated fashion.  While this can be useful in creating plots of muddy ground for [[farming]], deliberately setting any amount of water loose in an area is risky at best, and at worst, will result in lots of [[fun#Flooding_accidents|fun]].&lt;br /&gt;
&lt;br /&gt;
As in real life, water will seek to spread out given open space.  In Dwarf Fortress, this means that water will spread until all tiles achieve a depth of 1/7, or it fills the space it is enclosed in. Water at a depth of 1/7 will eventually evaporate, leaving behind a muddy floor.  Because of this, it would be nearly impossible to ruin a fortress with water from finite sources such as a [[murky pool|murky pool]]. Note, however, that [[river]]s, [[brook]]s, and [[ocean]]s are considered to have offscreen water sources;  their supply has been observed to be infinite, as has that of [[aquifers]]. Tapping into one of these without some means of regulating the flow is almost certain to result in [[fun#Flooding_accidents|fun]].&lt;br /&gt;
&lt;br /&gt;
Water movement is a major source of lag in the game.&lt;br /&gt;
&lt;br /&gt;
Flood speed is counterintuitive.  For example, if you build a ramp beneath the bottom of an [[underground pool]] connected to a large drainage shaft leading to a chasm, all the water in the upper levels of the pool will drain down into the drainage shaft leading all the way out into the chasm, filling it all nearly instantly 7/7 with water and submerging your hapless dorfs however far away in the shaft they may be.  But once the space is filled, the flood slows down to the glacial pace at which water usually moves down tunnels, giving them plenty of time to drown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to flood a fortress ==&lt;br /&gt;
{{D for Dwarf}}&lt;br /&gt;
So all your friends on the forums are recounting tales of the fortresses they've flooded, and you're feeling left out. Fret no more! In a few simple steps, you too can join the ranks of the hydrologically challenged.&lt;br /&gt;
&lt;br /&gt;
The key is to tap into a renewable source of water, such as a river, and use its water [[pressure]] to overcome obstacles like distance or altitude. Remember that water always &amp;quot;wants&amp;quot; to rise back up to the same [[Z-axis|Z-level]] from which it originated!&lt;br /&gt;
&lt;br /&gt;
Side view:&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒   channel   ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
In this design, water will travel from the river through the channel, then '''up''' through the well and across and down into the rest of the fortress. For convenience, the vertical openings don't even need to be completely hollow chambers--ramps and stairs will work just as well!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If some of the levels that you need to flood are higher than the surface of the river, you can use [[screw pump]]s to compensate.&lt;br /&gt;
                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 pumps--&amp;gt;  %%_  ▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
         ▒_%% ▒ ▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
           %% ▒ channel ▒▒▒ your fortress &lt;br /&gt;
 ▒≈≈river≈≈▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
Ordinarily, this above-river fortress would have been unfloodable, but with judicious application of pumps, the water can flow from a higher level than its original source, allowing it to engulf all of your precious bedrooms, workshops, and stockpiles.&lt;br /&gt;
&lt;br /&gt;
=== Common pitfalls ===&lt;br /&gt;
Building the well above the level of the river:&lt;br /&gt;
                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
                ▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒  channel    ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
In this failed flooding attempt, the water moves through the channel but only rises to the level immediately ''below'' the well. This means that the well will be usable and the fortress remains safe and dry. Better luck next time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-pressurization with pumps:&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ %% &amp;lt;--pump  ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒               ▒&lt;br /&gt;
Here the reckless placement of a pump blocks water from flowing directly through; instead, the water level is again &amp;quot;reset&amp;quot; to the same level as the pump, and the well will be safe to use. Our condolences to this fort's pathetically dry dwarves.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ - Water]][[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Flood&amp;diff=58234</id>
		<title>40d:Flood</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Flood&amp;diff=58234"/>
		<updated>2009-11-13T05:10:36Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: cautionary diagrams disguised as the opposite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Flooding generally refers to water getting loose and spreading out over an area, usually in an unregulated fashion.  While this can be useful in creating plots of muddy ground for [[farming]], deliberately setting any amount of water loose in an area is risky at best, and at worst, will result in lots of [[fun#Flooding_accidents|fun]].&lt;br /&gt;
&lt;br /&gt;
As in real life, water will seek to spread out given open space.  In Dwarf Fortress, this means that water will spread until all tiles achieve a depth of 1/7, or it fills the space it is enclosed in. Water at a depth of 1/7 will eventually evaporate, leaving behind a muddy floor.  Because of this, it would be nearly impossible to ruin a fortress with water from finite sources such as a [[murky pool|murky pool]]. Note, however, that [[river]]s, [[brook]]s, and [[ocean]]s are considered to have offscreen water sources;  their supply has been observed to be infinite, as has that of [[aquifers]]. Tapping into one of these without some means of regulating the flow is almost certain to result in [[fun#Flooding_accidents|fun]].&lt;br /&gt;
&lt;br /&gt;
Water movement is a major source of lag in the game.&lt;br /&gt;
&lt;br /&gt;
Flood speed is counterintuitive.  For example, if you build a ramp beneath the bottom of an [[underground pool]] connected to a large drainage shaft leading to a chasm, all the water in the upper levels of the pool will drain down into the drainage shaft leading all the way out into the chasm, filling it all nearly instantly 7/7 with water and submerging your hapless dorfs however far away in the shaft they may be.  But once the space is filled, the flood slows down to the glacial pace at which water usually moves down tunnels, giving them plenty of time to drown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to flood a fortress ==&lt;br /&gt;
{{D for Dwarf}}&lt;br /&gt;
So all your friends on the forums are recounting tales of the fortresses they've flooded, and you're feeling left out. Fret no more! In a few simple steps, you too can join the ranks of the hydrologically challenged.&lt;br /&gt;
&lt;br /&gt;
The key is to tap into a renewable source of water, such as a river, and use its water [[pressure]] to overcome obstacles like distance or altitude. Remember that water always &amp;quot;wants&amp;quot; to rise back up to the same [[Z-axis|Z-level]] from which it originated!&lt;br /&gt;
&lt;br /&gt;
Side view:&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒   channel   ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
In this design, water will travel from the river through the channel, then '''up''' through the well and across and down into the rest of the fortress. For convenience, the vertical openings don't even need to be completely hollow chambers--ramps and stairs will work just as well!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If some of the levels that you need to flood are higher than the surface of the river, you can use [[screw pump]]s to compensate.&lt;br /&gt;
                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 pumps--&amp;gt;  %%_  ▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
         ▒_%% ▒ ▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
           %% ▒ channel ▒▒▒ your fortress &lt;br /&gt;
 ≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
Ordinarily, this above-river fortress would have been unfloodable, but with judicious application of pumps, the water can flow from a higher level than its original source, allowing it to engulf all of your precious bedrooms, workshops, and stockpiles.&lt;br /&gt;
&lt;br /&gt;
=== Common pitfalls ===&lt;br /&gt;
Building the well above the level of the river:&lt;br /&gt;
                  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
                ▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒  channel    ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
In this failed flooding attempt, the water moves through the channel but only rises to the level immediately ''below'' the well. This means that the well will be usable and the fortress remains safe and dry. Better luck next time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Re-pressurization with pumps:&lt;br /&gt;
 ▒≈≈river≈≈ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒o &amp;lt;--well ▒▒▒▒▒▒▒▒▒▒ (well is optional)&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ %% &amp;lt;--pump  ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ your fortress ▒&lt;br /&gt;
 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒               ▒&lt;br /&gt;
Here the reckless placement of a pump blocks water from flowing directly through; instead, the water level is again &amp;quot;reset&amp;quot; to the same level as the pump, and the well will be safe to use. Our condolences to this fort's pathetically dry dwarves.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ - Water]][[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File_talk:Typical_Humie_Caravan.png&amp;diff=58226</id>
		<title>File talk:Typical Humie Caravan.png</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File_talk:Typical_Humie_Caravan.png&amp;diff=58226"/>
		<updated>2009-11-13T02:18:39Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: Created page with 'When you unpause, do they get out and exchange insurance information, or perhaps have a fist fight depending on personality traits? --~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you unpause, do they get out and exchange insurance information, or perhaps have a fist fight depending on personality traits? --[[User:HebaruSan|HebaruSan]] 02:18, 13 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d_Talk:Macro_design&amp;diff=58210</id>
		<title>40d Talk:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d_Talk:Macro_design&amp;diff=58210"/>
		<updated>2009-11-13T00:05:19Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Updates to my work in progress ==&lt;br /&gt;
&lt;br /&gt;
Wow thats a lot of updates to a page I was building, that had no links to, with no discussion page entires.., and I had to go to bed. &lt;br /&gt;
&lt;br /&gt;
I like most of what has been done except for the following&lt;br /&gt;
*Changing a &amp;quot;Step to Far&amp;quot; to Off-by-one Errors&lt;br /&gt;
**This is the exact oppiste of the common off-by-one error of arrays and for loops, while it is an error of just 1, this is missleading I think. Also &amp;quot;off-by-one&amp;quot; is really just a CS term.&lt;br /&gt;
* The Change (labled &amp;quot; Off-by-one&amp;quot;) to make &amp;quot;current&amp;quot; into &amp;quot;initial&amp;quot;&lt;br /&gt;
**This is wrong, as it can occure anywhere in the script not on just the inital movement.&lt;br /&gt;
* In Fast Movement&lt;br /&gt;
** The Concept of the cursor jumping was removed and repalced with &amp;quot; the cursor moves ten squares instead of one&amp;quot;. The old Term of &amp;quot;Jumping&amp;quot; gets across the idea of skipping/is-faster than ten squares of movement&lt;br /&gt;
* What was wrong with &amp;quot;(nearly half)&amp;quot;&lt;br /&gt;
* &amp;quot;Troubleshooting&amp;quot;&lt;br /&gt;
** this is a &amp;quot;design&amp;quot; page, not a how to code page. thge Orginal &amp;quot;Problems to avoid&amp;quot; term is more toward the concept of &amp;quot;read this section first and have it in your head while coding&amp;quot;. Not to figure out what when wrong after the fact. Hopefully if they design it right the first time, it will work perfectly with no debugging.&lt;br /&gt;
* I think the Second Edge Collion paragraph read a lot better the way it was.&lt;br /&gt;
* &amp;quot;applies to a comand&amp;quot; isn't correct. &lt;br /&gt;
**Original didn't have that issue&lt;br /&gt;
&lt;br /&gt;
Over all I'm glad for the help (espescally in the conversion to a 3rd person), I just didn't expect it until the page was activly linked some where. I'll make the above changes if I don't see a justifaction not-to comments.  [[User:Larek|Larek]] 22:37, 12 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Heh, yeah, every edit you make shows up in [[Special:RecentChanges]], and there are several people who watch that page. In general, as soon as you click save, people will see your change and look at it, and if it's in the main namespace, they will probably make changes, too. If you want to keep exclusive ownership over something, you can make a user page like [[User:Larek/Macro design]]. We'll still see it, but it's considered bad form to ''edit'' someone else's personal pages.&lt;br /&gt;
:* Why do you say it's the opposite of an off by one error? The programming term is used to describe confusion in loop conditions when iterating over an array. It seems quite analogous to me; maybe you can elaborate.&lt;br /&gt;
:* Re: current vs initial, my thought was that it's the starting point for a given series of movement commands. Personally I think that's clear from the context, but I'm open to other ideas.&lt;br /&gt;
:* Would you be happy with &amp;quot;the cursor '''jumps''' ten squares instead of one&amp;quot;? I wouldn't have a problem with that.&lt;br /&gt;
:* I thought &amp;quot;(nearly half)&amp;quot; would be obvious to anyone reading the numbers. In general, if text is unnecessary, then removing it means you get to the next necessary idea faster.&lt;br /&gt;
:* You say it's not about debugging, but the first clause was already &amp;quot;When your script doesn't run as planned&amp;quot; before I edited. That sounds like debugging to me. Personally I don't think debugging is inappropriate on a design page; people following along are likely to need debugging strategies unless they somehow do everything perfectly the first time.&lt;br /&gt;
:* I thought the edge collision section was missing some key concepts, specifically the possible disparity between changed-area and traversed-area which is the root cause of the problem in the first place. What advantages do you see in its original phrasing?&lt;br /&gt;
:* Admittedly, &amp;quot;applies to&amp;quot; is metaphorical. I was trying to express that now instead of (normal jump)(backpedal jump) you have (backpedal jump)(normal jump), since the &amp;quot;backward&amp;quot; movement takes place earlier. I'll try to think of a better phrasing, but please feel free to come up with something yourself.&lt;br /&gt;
: But welcome to the wiki, and thank you for contributing!&lt;br /&gt;
: --[[User:HebaruSan|HebaruSan]] 00:05, 13 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58167</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58167"/>
		<updated>2009-11-12T17:56:26Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Off-by-one errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Fast movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have [[#Edge collision|side effects]] however and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
=== Diagonal movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Final cursor placement ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's initial position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now applies to the first &amp;quot;_FAST&amp;quot; command, rather than the second. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Interface]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58166</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58166"/>
		<updated>2009-11-12T17:55:24Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Fast movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have [[#Edge collision|side effects]] however and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
=== Diagonal movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Final cursor placement ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's current position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now applies to the first &amp;quot;_FAST&amp;quot; command, rather than the second. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:Interface]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58165</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58165"/>
		<updated>2009-11-12T17:55:08Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: categorize&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Fast movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have [[#Edge collision|side effects]] however and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
=== Diagonal movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Final cursor placement ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's current position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now applies to the first &amp;quot;_FAST&amp;quot; command, rather than the second. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;br /&gt;
&lt;br /&gt;
[[Category:Guide]]&lt;br /&gt;
[[Category:Interface]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58164</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58164"/>
		<updated>2009-11-12T17:48:18Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Fast movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have [[#Edge collision|side effects]] however and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
=== Diagonal movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Final cursor placement ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's current position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now applies to the first &amp;quot;_FAST&amp;quot; command, rather than the second. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58161</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58161"/>
		<updated>2009-11-12T17:46:01Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: /* Problems to avoid */ second pass of clean-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro Delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Standard Movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have side effects however (covered below) and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Diagonal Movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Cursor Return ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Off-by-one errors ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. This can happen if you confuse the number of squares ''designated'' with the number of squares ''moved''.&lt;br /&gt;
&lt;br /&gt;
For example, to make a '''5x5''' box, use 4's instead of 5's:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:'''4''']   &lt;br /&gt;
 [MACRO:CURSOR_UP:'''4''']&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
The cursor's current position always counts as 1 &amp;quot;extra&amp;quot; square, since you're defining movement, not a size.&lt;br /&gt;
&lt;br /&gt;
 #     1 square ''designated'', '''0''' squares ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ##    2 squares ''designated'', '''1''' square ''moved''&lt;br /&gt;
 &lt;br /&gt;
 ###   3 squares ''designated'', '''2''' squares ''moved''&lt;br /&gt;
&lt;br /&gt;
== Edge collision ==&lt;br /&gt;
When the cursor hits an edge of the map, it stops there, no matter how far your script wants to travel that way. This is per command, and if you're not expecting to hit an edge, this will corrupt that execution of the script. To avoid this, the script-runner must ensure that the script has enough room to run when it is started. The script-designer can help by clearly documenting how much space is needed.&lt;br /&gt;
&lt;br /&gt;
Scripts can also run into trouble with [[#Backpedaling|backpedaling optimizations]]. Backpedaling can extend your script's running area beyond the area where it is making changes. If the script-runner only leaves enough space for the changes themselves, there is a risk that any _FAST jumps outside that area will be shortened by hitting an edge, and any subsequent backpedaling operations will then start from the wrong position. Therefore, it is recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
For example, if your script operates inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
will place the cursor incorrectly if an edge is 19 squares away.&lt;br /&gt;
&lt;br /&gt;
For script areas of 6, 7, 8, or 9, it may be wise to avoid backpedaling entirely, since any _FAST operation would move the cursor outside that range. But with a script area that small, speed probably isn't as much of an issue.&lt;br /&gt;
&lt;br /&gt;
For areas larger than 10 spaces, reordering the commands can keep the cursor in-range while still using backpedaling optimizations. The above example is equivalent to this:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
Which we can reorder to:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. The backpedaling &amp;quot;LEFT:3&amp;quot; command now applies to the first &amp;quot;_FAST&amp;quot; command, rather than the second. (Note that if it had been placed ''first'', the cursor would have backpedaled out the other side.)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Macro_Design&amp;diff=58156</id>
		<title>Macro Design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Macro_Design&amp;diff=58156"/>
		<updated>2009-11-12T17:09:52Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: moved Macro Design to Macro design:&amp;amp;#32;same upper/lower case as Trap design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Macro design]]&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58155</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58155"/>
		<updated>2009-11-12T17:09:51Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: moved Macro Design to Macro design:&amp;amp;#32;same upper/lower case as Trap design&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro Delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Standard Movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have side effects however (covered below) and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Diagonal Movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Cursor Return ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problems to avoid =&lt;br /&gt;
&lt;br /&gt;
== A step to far ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. To make a 5x5 box the code is&lt;br /&gt;
&lt;br /&gt;
 //written for ease of reading&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:4]   &lt;br /&gt;
 [MACRO:CURSOR_UP:4]&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
Those are 4's not 5's. The cursors current position is always 1, since it's really movement your defining not a size. Its an easy concept but also easy to forget/mess up.&lt;br /&gt;
&lt;br /&gt;
==Edge Collision==&lt;br /&gt;
Edge Collision can be helpful in several situations. When you hit a edge you stop there, no matter how far your script wants to travel that way. This is per command and if your not expecting to hit a wall, it will corrupt that exeicution of the script. There is no way to avoid this. And in most cases, it's the script-runner's fault not the script-designer's.&lt;br /&gt;
&lt;br /&gt;
However as a designer you can run into trouble with backpedaling optimizations as mentioned above. Backpedaling can jump you out of the working area of your script and then return, as long as there is enough extra space around your script area to do so. If an edge happens to be there, instant problem.&lt;br /&gt;
&lt;br /&gt;
:If your script is made inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
is fine, as long as an edge wasn't 19 squares away.&lt;br /&gt;
&lt;br /&gt;
It's recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
With backpedaling movements, that are larger than 10 spaces, a simple change of order of operations can fix this issue. Here is the above example, with an order changes&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
is really just&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
so we can reorder it to&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. &lt;br /&gt;
:For script areas of 6, 7, 8, or 9 your just out of luck and I would suggest not backpedaling, but with a script area so small, speed isn't that much of an issue.&lt;br /&gt;
&lt;br /&gt;
:The backpedaling &amp;quot;LEFT:3&amp;quot; command, travels over the same area the previous &amp;quot;_FAST&amp;quot; command had covered. If it had been placed first, the cursor would have backpedaled out the other side.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58154</id>
		<title>40d:Macro design</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Macro_design&amp;diff=58154"/>
		<updated>2009-11-12T16:52:01Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: first pass of clean-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Playing Dwarf Fortress means lots of typing. Macros can reduce this typing, but they must be planned and designed carefully. This page discusses how to design a macro and avoid common problems. The specific operation or structure for which you are creating a macro is beyond the scope of this page.&lt;br /&gt;
&lt;br /&gt;
== Macro Delay ==&lt;br /&gt;
Forum and wiki participants have observed that some macros can take hours to run. This happens because there is a built-in delay between each macro command; since the game as shipped includes no preset macros, this delay is set to a value that allows the human player to see each move and debug any mistakes.&lt;br /&gt;
&lt;br /&gt;
The solution is to change MACRO_MS in [[init.txt]] from 150 to 0. Most macros on any system commonly run better with some delay between commands{{verify}}; a MACRO_MS:1 seems to be a good run-time setting.&lt;br /&gt;
&lt;br /&gt;
== Planning ==&lt;br /&gt;
There are thousands of ways to do anything, but we would like to pick the best or near-best solution. In the case of DF's macros we want to see our macro run in the fewest steps possible, getting the most out of each command. &lt;br /&gt;
&lt;br /&gt;
Start by planning out your design as a series of steps to create the final result. Then code each step individually, while taking note of the before and after steps. Like the complete macro, each step has many possible different coding solutions. Try to pick one that is simple (short) but also goes best with the step before it, and will end somewhere that's advantageous for the next step. Try to keep a step to a single type of operation; this will save the time of continuously switching between modes.&lt;br /&gt;
&lt;br /&gt;
:Example: Fields (boxes or area-selections) have four corners. Your code traverses from one corner to the opposite corner to define the field. It doesn't matter which corner you start at. So pick a start and stop point of your field that's convenient for the next and previous steps. This saves a lot of time spent walking the cursor around.&lt;br /&gt;
&lt;br /&gt;
== Repeats ==&lt;br /&gt;
The macro syntax allows commands to be repeated using a numeric parameter. The following scripts take the same time to execute.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
 [MACRO:CURSOR_UP:1]&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:'''20''']&lt;br /&gt;
&lt;br /&gt;
The condensed version is more readable, but these work the same way.&lt;br /&gt;
&lt;br /&gt;
== Movement ==&lt;br /&gt;
Most of the time a macro takes to run is spent moving the cursor around. This can be sped up through the use of the &amp;quot;_FAST&amp;quot; versions of the move commands and by moving diagonally.&lt;br /&gt;
&lt;br /&gt;
=== Standard Movement ===&lt;br /&gt;
When you hold the {{key|Shift}} key in the game UI and press an arrow key, the cursor moves ten squares instead of one. Similarly, each cursor command has a &amp;quot;_FAST&amp;quot; version that jumps ten squares in the same time a normal movement command takes to travel on square.&lt;br /&gt;
&lt;br /&gt;
The following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:33]&lt;br /&gt;
&lt;br /&gt;
is the same as 33 moving commands however,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:3]&lt;br /&gt;
&lt;br /&gt;
is the exact same action in only 4 commands.&lt;br /&gt;
&lt;br /&gt;
=== Backpedaling ===&lt;br /&gt;
When the 1's digit is higher than 5, backing the cursor up can achieve faster run times.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:38]&lt;br /&gt;
&lt;br /&gt;
Can be sped up with _FAST commands:&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:3]&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
&lt;br /&gt;
This brings 38 commands down to just 11. However this can be better optimized by moving ''past'' the intended destination and backing up.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP_FAST:4]&lt;br /&gt;
 [MACRO:CURSOR_Down:2]&lt;br /&gt;
&lt;br /&gt;
Is the exact same cursor position change but in only 6 moves. This can have side effects however (covered below) and must be done carefully.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Diagonal Movement ===&lt;br /&gt;
Most people using modern keyboards are familiar with the T-shaped arrow key block. The numeric keypad has arrows too, and on some keyboards the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys have arrows as well. Regardless of whether your numeric keypad has arrows on it, you can move with the {{key|1}} {{key|3}} {{key|7}} {{key|9}} keys. Diagonal movement is also possible in macros, and it can be used to reduce the number of commands required.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:8]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:8]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:8]&lt;br /&gt;
&lt;br /&gt;
This dropped the command count from 16 to 8. It also works for non-squares too.&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UP:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:16]&lt;br /&gt;
&lt;br /&gt;
can be replaced by&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:12]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
This saved us 12 unneeded commands.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;_FAST&amp;quot; works in the game and in your scripts on diagonals too. Further bringing down the the previous example command count to just,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_UPRIGHT:2]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT:4]&lt;br /&gt;
&lt;br /&gt;
So from 38 commands to just 7, with a little planning.&lt;br /&gt;
&lt;br /&gt;
Diagonal movement commands are written as '''vertical''' then '''horizontal''' with no separating &amp;quot;_&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Cursor Return ===&lt;br /&gt;
When designing scripts, it's a good idea to plan where to leave off. The two common ideas are:&lt;br /&gt;
* Back where the script started, which is less disorienting to the user. This is best for macros that are intended to be used once.&lt;br /&gt;
* In position for an instant repeat of the macro, for macros that are likely to be used several times in a row.&lt;br /&gt;
If your macro makes a 3 square wide section of hallway to the left, then put the cursor in a position that allows for a repeat call of the macro to add a second section.&lt;br /&gt;
&lt;br /&gt;
Both are better than just stopping the cursor wherever it happens to be.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Problems to avoid =&lt;br /&gt;
&lt;br /&gt;
== A step to far ==&lt;br /&gt;
When your script doesn't run as planned, check if you went too far on a movement action. To make a 5x5 box the code is&lt;br /&gt;
&lt;br /&gt;
 //written for ease of reading&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:4]   &lt;br /&gt;
 [MACRO:CURSOR_UP:4]&lt;br /&gt;
 [MACRO:SELECT:1]&lt;br /&gt;
&lt;br /&gt;
Those are 4's not 5's. The cursors current position is always 1, since it's really movement your defining not a size. Its an easy concept but also easy to forget/mess up.&lt;br /&gt;
&lt;br /&gt;
==Edge Collision==&lt;br /&gt;
Edge Collision can be helpful in several situations. When you hit a edge you stop there, no matter how far your script wants to travel that way. This is per command and if your not expecting to hit a wall, it will corrupt that exeicution of the script. There is no way to avoid this. And in most cases, it's the script-runner's fault not the script-designer's.&lt;br /&gt;
&lt;br /&gt;
However as a designer you can run into trouble with backpedaling optimizations as mentioned above. Backpedaling can jump you out of the working area of your script and then return, as long as there is enough extra space around your script area to do so. If an edge happens to be there, instant problem.&lt;br /&gt;
&lt;br /&gt;
:If your script is made inside a 17x4 rectangle, getting across it with the following code,&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
is fine, as long as an edge wasn't 19 squares away.&lt;br /&gt;
&lt;br /&gt;
It's recommend to only use backpedaling that does not go outside of your script's work area.&lt;br /&gt;
&lt;br /&gt;
With backpedaling movements, that are larger than 10 spaces, a simple change of order of operations can fix this issue. Here is the above example, with an order changes&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:2]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
is really just&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
&lt;br /&gt;
so we can reorder it to&lt;br /&gt;
&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
 [MACRO:CURSOR_LEFT:3]&lt;br /&gt;
 [MACRO:CURSOR_RIGHT_FAST:1]&lt;br /&gt;
&lt;br /&gt;
This is the same run time and number of commands, yet the cursor says inside the script area. &lt;br /&gt;
:For script areas of 6, 7, 8, or 9 your just out of luck and I would suggest not backpedaling, but with a script area so small, speed isn't that much of an issue.&lt;br /&gt;
&lt;br /&gt;
:The backpedaling &amp;quot;LEFT:3&amp;quot; command, travels over the same area the previous &amp;quot;_FAST&amp;quot; command had covered. If it had been placed first, the cursor would have backpedaled out the other side.&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File_talk:DF_Cheese.jpg&amp;diff=58095</id>
		<title>File talk:DF Cheese.jpg</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File_talk:DF_Cheese.jpg&amp;diff=58095"/>
		<updated>2009-11-11T23:55:46Z</updated>

		<summary type="html">&lt;p&gt;HebaruSan: yes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BISHIEDORF [[User:KoboldInDisguise|KoboldInDisguise]] 12:21, 13 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Whoever made this, I adore you. [[User:Pariah|Pariah]] 22:00, 11 November 2009 (UTC)&lt;br /&gt;
: Seconded. This is amazing. --[[User:HebaruSan|HebaruSan]] 23:55, 11 November 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;The limp blueness of ... clapping&amp;quot;? Am I reading that right?--[[User:Albedo|Albedo]] 22:24, 11 November 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>HebaruSan</name></author>
	</entry>
</feed>