As some of you probably know, the latest versions of the 40d# series of DF have macro capabilities.
I thought it might be interesting to share and discuss some of the macros folks have created.
A few notes before I start in on my current working set of Dwarf Mode Macros.
Macros are stored in the interface.txt file at the end. I tend to edit that file directly rather than building macro's in the game for two reasons. One is that the in game system for creating macro's is currently functional but that's about it. It is a lot faster and easier to just open up the text file and edit there. The other reason is that you can actually name the macro's in the text file.
Large or complex macro's can take forever to run at the default delay between commands (Set by the [MACRO_MS:150] option in the init.txt.) I personally run with the delay set to 10 instead of the default 150.
With that out of the way, here are my macros.
SurveyAlt + 1Marks out a one z level 48x48 grid (or one embark tile) of whatever your current designate selection is for exploratory mining.
Go to the upper left corner of the area you want to survey, select the appropriate designation,(Usually up/down stairs) and let'er rip.
[BIND:MACRO0]
[MACRO:SELECT:2]
[MACRO:CURSOR_RIGHT:3]
[BIND:MACRO1]
[MACRO:SELECT:2]
[MACRO:CURSOR_LEFT:3]
[BIND:MACRO2]
[MACRO:MACRO0:15]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN:3]
[MACRO:MACRO1:15]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN:3]
[BIND:MACRO3:Survey]
[SYM:Alt+1]
[MACRO:MACRO2:8]
HallAlt + 2Dig designates an empty hall square on one z level.
Just go into the designate menu and move the cursor to where you want the upper left corner.
[BIND:MACRO4:Hall]
[SYM:Alt+2]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:2]
[MACRO:CURSOR_UPLEFT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT:3]
[MACRO:DESIGNATE_UNDO:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT_FAST:1]
[MACRO:CURSOR_UPLEFT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT:3]
Hall BlockAlt + 3Dig designates an empty hall block that is 3 z levels high with connecting stairs.
This is the basic module I use when laying out my forts.
As with the above one, you pick the upper left corner with the designate cursor.
[BIND:MACRO5:Stair Marker]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_UPDOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_DOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_RIGHT_FAST:2]
[MACRO:CURSOR_LEFT:4]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:DESIGNATE_STAIR_UPDOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_FAST:2]
[MACRO:CURSOR_UP:4]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_UPDOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_DOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_LEFT_FAST:2]
[MACRO:CURSOR_RIGHT:4]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:DESIGNATE_STAIR_UPDOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_FAST:2]
[MACRO:CURSOR_DOWNLEFT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:DESIGNATE_DIG:1]
[BIND:MACRO6:Hall Block]
[SYM:Alt+3]
[MACRO:MACRO4:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO4:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO4:1]
[MACRO:MACRO5:1]
[MACRO:CURSOR_UP_Z:2]
Craft BlockAlt + 4Dig designates a crafting area with six 3x3 rooms for crafting and an 11x11 storage area above and below those rooms.
Move the designate cursor to the top left corner of the top level of a Hall Block and this will fill in the rooms inside the block.
[BIND:MACRO7:Craft Area]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT_FAST:1]
[MACRO:DESIGNATE_UNDO:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:4]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT:3]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:4]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:4]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:4]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPRIGHT:2]
[MACRO:CURSOR_RIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN_FAST:1]
[MACRO:CURSOR_DOWNRIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:CURSOR_UPRIGHT:1]
[MACRO:CURSOR_UPLEFT_FAST:1]
[BIND:MACRO8:Craft Block]
[SYM:Alt+4]
[MACRO:DESIGNATE_DIG:1]
[MACRO:CURSOR_DOWNRIGHT:4]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:CURSOR_UPLEFT_FAST:1]
[MACRO:MACRO7:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT:5]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_UPDOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_Z:1]
[MACRO:DESIGNATE_STAIR_DOWN:1]
[MACRO:SELECT:2]
[MACRO:DESIGNATE_DIG:1]
[MACRO:CURSOR_UPLEFT_FAST:1]
[MACRO:CURSOR_DOWNRIGHT:1]
Slum BlockAlt + 5Like the Craft Block except that it fills the whole area with 36 3x1 rooms.
[BIND:MACRO9:Slum Area]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:CURSOR_UPRIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:CURSOR_DOWNRIGHT:1]
[BIND:MACRO10:Slum Block]
[SYM:Alt+5]
[MACRO:CURSOR_DOWNRIGHT:4]
[MACRO:MACRO9:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO9:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO9:1]
[MACRO:CURSOR_UP_Z:2]
[MACRO:CURSOR_UPLEFT:4]
Housing BlockAlt + 6Like the Craft Block except that it fills the whole area with 24 2x3 rooms.
[BIND:MACRO11:Housing Area]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:CURSOR_UPRIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:CURSOR_DOWNRIGHT:1]
[BIND:MACRO12:Housing Block]
[SYM:Alt+6]
[MACRO:CURSOR_DOWNRIGHT:4]
[MACRO:MACRO11:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO11:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO11:1]
[MACRO:CURSOR_UP_Z:2]
[MACRO:CURSOR_UPLEFT:4]
Noble BlockAlt + 7Like the Craft Block except that it fills the whole area with 12 5x5 rooms.
[BIND:MACRO13:Noble Area]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT:5]
[MACRO:DESIGNATE_UNDO:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT:5]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:CURSOR_DOWNLEFT:1]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:CURSOR_RIGHT:2]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP:6]
[MACRO:SELECT:2]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:CURSOR_LEFT:2]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP:1]
[MACRO:CURSOR_UPRIGHT:1]
[BIND:MACRO14:Noble Block]
[SYM:Alt+7]
[MACRO:CURSOR_DOWNRIGHT:4]
[MACRO:MACRO13:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO13:1]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:MACRO13:1]
[MACRO:CURSOR_UP_Z:2]
Entrance BlockAlt + 8This block is a little special. It is intended to be on the top z level of the fort and has space for the Depot, a barracks below that, and some storage space at the boottom for trade goods.
I tend to avoid the trap-hall style entrances because I've found that with vanilla DF channeling invaders through the barracks leads to more Fun.
[BIND:MACRO15:Entrance Block]
[SYM:Alt+8]
[MACRO:CURSOR_DOWNRIGHT:5]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT_FAST:1]
[MACRO:CURSOR_UPLEFT:2]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT:4]
[MACRO:DESIGNATE_RAMP:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT:3]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPLEFT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:3]
[MACRO:DESIGNATE_RAMP:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:3]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:DESIGNATE_RAMP:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT:3]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:3]
[MACRO:DESIGNATE_RAMP:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:4]
[MACRO:DESIGNATE_STAIR_DOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNLEFT_FAST:1]
[MACRO:SELECT:1]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_FAST:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UPLEFT:5]
[MACRO:DESIGNATE_STAIR_DOWN:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_DOWN_Z:1]
[MACRO:CURSOR_DOWNLEFT:5]
[MACRO:DESIGNATE_DIG:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_UPRIGHT_FAST:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:3]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT_FAST:1]
[MACRO:CURSOR_LEFT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_RIGHT_FAST:1]
[MACRO:CURSOR_RIGHT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWNLEFT:5]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP_FAST:1]
[MACRO:CURSOR_UP:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_LEFT:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_DOWN_FAST:1]
[MACRO:CURSOR_DOWN:2]
[MACRO:SELECT:1]
[MACRO:CURSOR_UP:5]
[MACRO:CURSOR_UPRIGHT:1]
[MACRO:DESIGNATE_STAIR_UP:1]
[MACRO:SELECT:2]
[MACRO:CURSOR_UPLEFT_FAST:1]
[MACRO:CURSOR_DOWNRIGHT:1]
[MACRO:CURSOR_UP_Z:2]
[MACRO:DESIGNATE_DIG:1]