<?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=12021</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=12021"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/12021"/>
	<updated>2026-05-21T11:26:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Macros_and_keymaps&amp;diff=31793</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=31793"/>
		<updated>2009-06-22T03:20:19Z</updated>

		<summary type="html">&lt;p&gt;12021: &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;
== AutoHotKey Examples ==&lt;br /&gt;
&lt;br /&gt;
===Dumping===&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>12021</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Traffic&amp;diff=13598</id>
		<title>40d:Traffic</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Traffic&amp;diff=13598"/>
		<updated>2009-06-20T00:25:05Z</updated>

		<summary type="html">&lt;p&gt;12021: /* Setting Traffic Areas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Traffic''' designations determine what path a dwarf will take, not what their final destination is. If a dwarf's task takes them somewhere, only a hard barrier will prevent them from going there.  Since movement in narrow hallways is slowed by [[dwarves]] moving past each other, traffic may become an issue once a settlement begins to grow in size. &lt;br /&gt;
&lt;br /&gt;
Some traffic problems can be prevented by good [[Design strategies|fortress design]], such as making hallway which are likely to be high use double or more width and placing [[stockpile|stockpiles]] close to relevant [[workshop|workshops]]. Other difficulties may be reduced by designating traffic areas.&lt;br /&gt;
&lt;br /&gt;
Vegetation (saplings) will tend to die if repeatedly trampled upon, leaving dead [[sapling]]s or [[shrub]]s and quickly exposing bare [[soil]]. This may be desirable as [[tree]]s block dwarves' and [[caravan]]s' paths, but unchecked traffic may trample entire areas of [[forest]] regrowth.  &lt;br /&gt;
&lt;br /&gt;
==Setting Traffic Areas==&lt;br /&gt;
&lt;br /&gt;
The {{K|d}}{{K|o}} combination sets '''traffic areas''', which are zones used to manipulate the movements of dwarves. Traffic areas can be designated as high, normal, low, or restricted. When walking from one point to another, dwarves consider these designations in finding the shortest path. High level traffic costs the pathfinding AI 1 point per square, Normal (default, undesignated) costs 2 points per square, Low costs 5, and Restricted costs 25. You can change the default values in [[init.txt]], or per-fortress values with {{K|d}}{{K|o}}.&lt;br /&gt;
&lt;br /&gt;
* It is often a good idea to set any [[water]] source in a [[biome]] with seasonal freezing to a Restricted area so your dwarves will be less likely to be caught on it when it melts.&lt;br /&gt;
* Some dwarves get [[thought|disturbed]] if they walk through a [[butcher's shop]] and see an animal being slaughtered, so you may wish to designate the shop as Restricted.&lt;br /&gt;
* If an area occasionally gets [[flood]]ed, or is dangerous for some reason, routing dwarves around it could be lifesaving.&lt;br /&gt;
* Setting High traffic areas along [[road|roads]] outdoors prevents vegetation from being needlessly trampled.&lt;br /&gt;
* An important use of traffic designations is to restrict movement in the tile where a [[ballista]]'s firing arrow originates.  This will prevent tragic [[siege]] training accidents.  Note that [[Pet|pets]] can and will be killed by firing ballista even if movement is restricted.&lt;br /&gt;
&lt;br /&gt;
Setting Restricted does not forbid a [[dwarf]] from traveling over those squares, but rather makes them willing to walk around them &amp;amp;ndash; for the normal cost table, 12.5 times further, or up to 25 times longer if there is an alternative high-traffic path. If you have an area that absolutely must not be stepped on by dwarves, consider [[wall|walls]].&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
Traffic designations only affect path preferences when pathfinding.  Dwarves generally choose their jobs without weighing the pathfinding costs.  For example, one cannot use traffic designations to direct a dwarf to confine his digging to a specific area.  He will still take whatever path necessary to get to the job he has chosen to work.  &lt;br /&gt;
&lt;br /&gt;
Additionally, traffic designations cannot be used to restrict where a dwarf will stand when building/digging.  In other words, traffic designations will not prevent a dwarf from placing himself on the outside of the fort when the last tile of a [[moat]] or wall is completed.  In some cases, a workaround is to place a wall where you want the dwarf to avoid standing, and suspend it.  This prevents him from standing on that tile while building/digging.  When the job is finished, the suspended wall may be canceled.&lt;br /&gt;
&lt;br /&gt;
== Using Traffic Areas to Improve Framerate ==&lt;br /&gt;
&lt;br /&gt;
In cavernous rooms that handle large amounts of through traffic but have a small number of exits (a large central dining room, for example) designating a few high-traffic paths (&amp;quot;freeways&amp;quot;) between the doors can help reduce the pathfinding cost for dwarves who are just passing through.  There may also be benefits to adding low-traffic edges to these freeways to keep the search algorithm from looking for shortcuts.  Likewise, any large dead-end room that branches off a major hallway should have the area around its doorway marked low or restricted traffic to prevent dwarves from searching it for shortcuts.  As noted above in '''Limitations''', this should not affect the dwarves who have a legitimate reason to hang out in the dining hall or visit the storage room - they will path to their destination regardless.  Users may see up to a 10% increase in FPS by implementing these changes throughout their fortress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''See also:'''&lt;br /&gt;
&lt;br /&gt;
:* [[Path]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:designations]]&lt;/div&gt;</summary>
		<author><name>12021</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Reclaim_fortress_mode&amp;diff=19967</id>
		<title>40d:Reclaim fortress mode</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Reclaim_fortress_mode&amp;diff=19967"/>
		<updated>2009-06-20T00:23:59Z</updated>

		<summary type="html">&lt;p&gt;12021: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To '''reclaim a fortress''' you can hit {{key|R}} on the fortress location choice screen. This will let you return to a previously lost or abandoned fortress. The number of dwarves you reclaim with will depend on the nearby hostile monsters. These include both wild animals and megabeasts left behind, as well as newly spawned inhabitants. It is possible to embark on a fortress incredibly infested with creatures. Most likely, you are slaughtered immediately, and if you reclaim, can get up to 70 dwarves.(usually near special caves or chasms with multiple caves)&lt;br /&gt;
== Preparation ==&lt;br /&gt;
If you prepare for the journey, the [[Skill]]s screen is different from standard [[Dwarf_Fortress_mode|Fortress Mode]] but the Items screen is the same.&lt;br /&gt;
&lt;br /&gt;
The skills screen in reclaim mode shows a list of [[dwarves]] on the left and the list of skills on the right. The skill list shows the total number of dwarves with that skill, '''not''' the skill level of the selected dwarf. The skills of the selected dwarf are shown highlighted in green. Each of your starting dwarves is allowed one [[military]] skill and one domestic [[jobs|profession]]. If you do not like the randomly generated profession (highlighted in green) for the selected dwarf, you can move the selector right and pick a new profession with {{key|Enter}}. The equipment screen is the same as standard Fortress mode. Military skills are handled the same way as professions, though all start off as [[axeman|axedwarves]], [[marksdwarves]], and [[hammerdwarf|hammerdwarves]] and the military skill is highlighted in red{{ver|0.27.176.38c}}. They are organized in squads of seven.&lt;br /&gt;
&lt;br /&gt;
Choosing specific professions will result in the dwarf having (without addition of [[Attribute|attributes]]) the matching skill. General professions ([[Woodworker]], [[Stoneworker]], [[Ranger]], [[Metalsmith]], [[Jeweler]], [[Craftsdwarf]], [[Farmer]], [[Engineer]], [[Administrator]]) give novice skill level in each of the specialist skills in the same way as incoming [[immigrant|migrants]] have them in dwarf fortress mode. Additionally, if no dwarf is marked as a trader, whichever dwarf is trading at the depot the first time the [[Trading|trade]] menu is opened, even if no trade is made, will instantly become a competent [[appraiser]] (though not a better [[judge of intent]]){{ver|0.27.176.38c}}.&lt;br /&gt;
&lt;br /&gt;
As for items, your dwarves will start fully equipped with [[steel]] [[plate]] [[armor]] and [[weapons]] that match their military skill; it is therefore safe to not take extra [[axe]]s with you. If your fortress had one or more [[anvil]]s they will most likely also still be there, so you can ditch the anvil for, say, a horde of [[war dog]]s, lots of [[alcohol|booze]] or more [[bolt]]s.&lt;br /&gt;
&lt;br /&gt;
== Arrival ==&lt;br /&gt;
&lt;br /&gt;
Upon arrival, you will see the items you left behind randomly flung about, [[buildings]] will be either destroyed or unclaimed, and all objects will be aged according to how long the place has been abandoned, so [[food]] will mostly be rotten or gone and dead bodies too will be rotting, [[bone]]s or gone. All objects will also be [[forbidden]]. Forbidden is a good thing, at least if you're reclaiming a fortress that was conquered by beasties or invaders, as it keeps your [[dwarves]] from rushing off on hauling jobs to the middle of enemy infested nowhere.&lt;br /&gt;
&lt;br /&gt;
Your dwarves start in military mode. You will have to clear out the any invaders to make use of the fort, and then reclaim the items and buildings in the safe sections. Once you've got a usable section of the fortress, you can start releasing your dwarves from military duty {{key|m}} so that they can start getting back to regular fortress life. Also note that your dwarves will want to reclaim, stockpile, sort and entomb all the bones of the previous inhabitants, so a happy fortress may require a lot of [[coffin]]s, depending upon how far along the fortress was when it failed.&lt;br /&gt;
&lt;br /&gt;
== Reclaiming buildings ==&lt;br /&gt;
&lt;br /&gt;
In order to reclaim a building for your dwarves to use, say a [[Smelter]], you will need to reclaim all of the items the make up that [[workshop]]. You can do this two ways. First, you can hit  {{key|t}} and move the cursor over the building, which will show all of the items within the building. This includes the materials used to build it. Just hit  {{key|f}} on each one to reclaim those items. Alternatively, when you are reclaiming items via the Stock screen any items that are part of a building can be reclaimed there as well. However, you won't know which ones those are, so for specific workshops it's easiest if you claim each one separately.&lt;br /&gt;
&lt;br /&gt;
It is also possible to designate multiple items and workshops by using {{key|d}} &amp;gt; {{key|b}} (&amp;gt;{{key|c}} claim is defaulted). This makes it easier to clean up everything and reclaim undisturbed stockpiles.&lt;br /&gt;
&lt;br /&gt;
== Remaining living dwarves ==&lt;br /&gt;
&lt;br /&gt;
If you abandoned your fortress before all your dwarves died, you may see some of the previous occupants wandering around. Currently, that's exactly what they'll continue to do - wander aimlessly. If they die, they will go to your graveyard stockpile, but your dwarves don't care if they're entombed or left to rot. Mostly they just get in your way, but a few of them may be useful. They will not use your workshops, but [[fisherdwarf|fisherdwarves]] will fish, endlessly flinging their catch onto the ground for others to pick up. An exception to this is any insane dwarves that were left in your fortress when you abandoned it will remain hostile to the reclaiming forces as well.&lt;br /&gt;
&lt;br /&gt;
== Remaining monsters ==&lt;br /&gt;
&lt;br /&gt;
If you lost the fortress to a [[:Category:Megabeasts|megabeast]] or a [[goblin]] [[siege]], then the monsters will still be around, but hidden on the unit list.  When a monster is discovered, it will be announced with &amp;quot;an ambush, drive them out&amp;quot;.&lt;br /&gt;
A reclaim party is unlikely to need an anvil, so trading it for an army of [[dog]]s will help to keep numbers in your favour.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
In some versions, reclaiming a fortress located on a goblin outpost will calculate the size of your force based upon the wealth of the goblins, resulting in a huge reclamation army.&lt;br /&gt;
&lt;br /&gt;
== Differences from [[Fortress Mode]] ==&lt;br /&gt;
&lt;br /&gt;
All dwarves start as friends, so the death of one dwarf can lead into an endless spiral of [[fun]].&lt;/div&gt;</summary>
		<author><name>12021</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=40d:Reclaim_fortress_mode&amp;diff=19966</id>
		<title>40d:Reclaim fortress mode</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=40d:Reclaim_fortress_mode&amp;diff=19966"/>
		<updated>2009-06-20T00:17:45Z</updated>

		<summary type="html">&lt;p&gt;12021: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To '''reclaim a fortress''' you can hit {{key|R}} on the fortress location choice screen. This will let you return to a previously lost or abandoned fortress. The number of dwarves you reclaim with will depend on the nearby hostile monsters. These include both wild animals and megabeasts left behind, as well as newly spawned inhabitants. It is possible to embark on a fortress incredibly infested with creatures. Most likely, you are slaughtered immediately, and if you reclaim, can get up to 70 dwarves.(usually near special caves or chasms with multiple caves)&lt;br /&gt;
== Preparation ==&lt;br /&gt;
If you prepare for the journey, the [[Skill]]s screen is different from standard [[Dwarf_Fortress_mode|Fortress Mode]] but the Items screen is the same.&lt;br /&gt;
&lt;br /&gt;
The skills screen in reclaim mode shows a list of [[dwarves]] on the left and the list of skills on the right. The skill list shows the total number of dwarves with that skill, '''not''' the skill level of the selected dwarf. The skills of the selected dwarf are shown highlighted in green. Each of your starting dwarves is allowed one [[military]] skill and one domestic [[jobs|profession]]. If you do not like the randomly generated profession (highlighted in green) for the selected dwarf, you can move the selector right and pick a new profession with {{key|Enter}}. The equipment screen is the same as standard Fortress mode. Military skills are handled the same way as professions, though all start off as [[axeman|axedwarves]], [[marksdwarves]], and [[hammerdwarf|hammerdwarves]] and the military skill is highlighted in red{{ver|0.27.176.38c}}. They are organized in squads of seven.&lt;br /&gt;
&lt;br /&gt;
Choosing specific professions will result in the dwarf having (without addition of [[Attribute|attributes]]) the matching skill. General professions ([[Woodworker]], [[Stoneworker]], [[Ranger]], [[Metalsmith]], [[Jeweler]], [[Craftsdwarf]], [[Farmer]], [[Engineer]], [[Administrator]]) give novice skill level in each of the specialist skills in the same way as incoming [[immigrant|migrants]] have them in dwarf fortress mode. Additionally, if no dwarf is marked as a trader, whichever dwarf is trading at the depot the first time the [[Trading|trade]] menu is opened, even if no trade is made, will instantly become a competent [[appraiser]] (though not a better [[judge of intent]]){{ver|0.27.176.38c}}.&lt;br /&gt;
&lt;br /&gt;
As for items, your dwarves will start fully equipped with [[steel]] [[plate]] [[armor]] and [[weapons]] that match their military skill; it is therefore safe to not take extra [[axe]]s with you. If your fortress had one or more [[anvil]]s they will most likely also still be there, so you can ditch the anvil for, say, a horde of [[war dog]]s, lots of [[alcohol|booze]] or more [[bolt]]s.&lt;br /&gt;
&lt;br /&gt;
== Arrival ==&lt;br /&gt;
&lt;br /&gt;
Upon arrival, you will see the items you left behind randomly flung about, [[buildings]] will be either destroyed or unclaimed, and all objects will be aged according to how long the place has been abandoned, so [[food]] will mostly be rotten or gone and dead bodies too will be rotting, [[bone]]s or gone. All objects will also be [[forbidden]]. Forbidden is a good thing, at least if you're reclaiming a fortress that was conquered by beasties or invaders, as it keeps your [[dwarves]] from rushing off on hauling jobs to the middle of enemy infested nowhere.&lt;br /&gt;
&lt;br /&gt;
Your dwarves start in military mode. You will have to clear out the any invaders to make use of the fort, and then reclaim the items and buildings in the safe sections. Once you've got a usable section of the fortress, you can start releasing your dwarves from military duty {{key|m}} so that they can start getting back to regular fortress life. Also note that your dwarves will want to reclaim, stockpile, sort and entomb all the bones of the previous inhabitants, so a happy fortress may require a lot of [[coffin]]s, depending upon how far along the fortress was when it failed.&lt;br /&gt;
&lt;br /&gt;
== Reclaiming buildings ==&lt;br /&gt;
&lt;br /&gt;
In order to reclaim a building for your dwarves to use, say a [[Smelter]], you will need to reclaim all of the items the make up that [[workshop]]. You can do this two ways. First, you can hit  {{key|t}} and move the cursor over the building, which will show all of the items within the building. This includes the materials used to build it. Just hit  {{key|f}} on each one to reclaim those items. Alternatively, when you are reclaiming items via the Stock screen any items that are part of a building can be reclaimed there as well. However, you won't know which ones those are, so for specific workshops it's easiest if you claim each one separately.&lt;br /&gt;
&lt;br /&gt;
It is also possible to designate multiple items and workshops by using {{key|d}} &amp;gt; {{key|b}} (&amp;gt;{{key|c}} claim is defaulted). This makes it easier to clean up everything and reclaim undisturbed stockpiles.&lt;br /&gt;
&lt;br /&gt;
== Remaining living dwarves ==&lt;br /&gt;
&lt;br /&gt;
If you abandoned your fortress before all your dwarves died, you may see some of the previous occupants wandering around. Currently, that's exactly what they'll continue to do - wander aimlessly. If they die, they will go to your graveyard stockpile, but your dwarves don't care if they're entombed or left to rot. Mostly they just get in your way, but a few of them may be useful. They will not use your workshops, but [[fisherdwarf|fisherdwarves]] will fish, endlessly flinging their catch onto the ground for others to pick up. An exception to this is any insane dwarves that were left in your fortress when you abandoned it will remain hostile to the reclaiming forces as well.&lt;br /&gt;
&lt;br /&gt;
== Remaining monsters ==&lt;br /&gt;
&lt;br /&gt;
If you lost the fortress to a [[:Category:Megabeasts|megabeast]] or a [[goblin]] [[siege]], then the monsters will still be around, but hidden on the unit list.  When a monster is discovered, it will be announced with &amp;quot;an ambush, drive them out&amp;quot;.&lt;br /&gt;
A reclaim party is unlikely to need an anvil, so trading it for an army of [[dog]]s will help to keep numbers in your favour.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
In some versions, reclaiming a fortress located on a goblin outpost will calculate the size of your force based upon the wealth of the goblins, resulting in a huge reclamation army.&lt;/div&gt;</summary>
		<author><name>12021</name></author>
	</entry>
</feed>