@ -3,13 +3,13 @@
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >
< html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en" lang = "en" >
< head >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< meta name = "generator" content = "Docutils 0. 8. 1: http://docutils.sourceforge.net/" / >
< meta name = "generator" content = "Docutils 0. 1 1: http://docutils.sourceforge.net/" / >
< title > DFHack Readme< / title >
< title > DFHack Readme< / title >
< style type = "text/css" >
< style type = "text/css" >
/*
/*
:Author: David Goodger (goodger@python.org)
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7056 2011-06-17 10:50:48 Z milde $
:Id: $Id: html4css1.css 7614 2013-02-21 15:55:51 Z milde $
:Copyright: This stylesheet has been placed in the public domain.
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Default cascading style sheet for the HTML output of Docutils.
@ -77,7 +77,7 @@ div.tip p.admonition-title {
div.attention p.admonition-title, div.caution p.admonition-title,
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
div.warning p.admonition-title, .code .error {
color: red ;
color: red ;
font-weight: bold ;
font-weight: bold ;
font-family: sans-serif }
font-family: sans-serif }
@ -249,10 +249,19 @@ pre.address {
margin-top: 0 ;
margin-top: 0 ;
font: inherit }
font: inherit }
pre.literal-block, pre.doctest-block, pre.math {
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-left: 2em ;
margin-right: 2em }
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
span.classifier {
font-family: sans-serif ;
font-family: sans-serif ;
font-style: oblique }
font-style: oblique }
@ -304,6 +313,21 @@ table.docutils th.field-name, table.docinfo th.docinfo-name {
white-space: nowrap ;
white-space: nowrap ;
padding-left: 0 }
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
font-size: 100% }
@ -520,48 +544,49 @@ access DF memory and allow for easier development of new tools.</p>
< li > < a class = "reference internal" href = "#source" id = "id151" > source< / a > < / li >
< li > < a class = "reference internal" href = "#source" id = "id151" > source< / a > < / li >
< li > < a class = "reference internal" href = "#superdwarf" id = "id152" > superdwarf< / a > < / li >
< li > < a class = "reference internal" href = "#superdwarf" id = "id152" > superdwarf< / a > < / li >
< li > < a class = "reference internal" href = "#stripcaged" id = "id153" > stripcaged< / a > < / li >
< li > < a class = "reference internal" href = "#stripcaged" id = "id153" > stripcaged< / a > < / li >
< li > < a class = "reference internal" href = "#undump-buildings" id = "id154" > undump-buildings< / a > < / li >
< li > < a class = "reference internal" href = "#teleport" id = "id154" > teleport< / a > < / li >
< li > < a class = "reference internal" href = "#undump-buildings" id = "id155" > undump-buildings< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#modtools" id = "id15 5 "> modtools< / a > < / li >
< li > < a class = "reference internal" href = "#modtools" id = "id15 6 "> modtools< / a > < / li >
< li > < a class = "reference internal" href = "#in-game-interface-tools" id = "id15 6 "> In-game interface tools< / a > < ul >
< li > < a class = "reference internal" href = "#in-game-interface-tools" id = "id15 7 "> In-game interface tools< / a > < ul >
< li > < a class = "reference internal" href = "#dwarf-manipulator" id = "id15 7 "> Dwarf Manipulator< / a > < / li >
< li > < a class = "reference internal" href = "#dwarf-manipulator" id = "id15 8 "> Dwarf Manipulator< / a > < / li >
< li > < a class = "reference internal" href = "#search" id = "id15 8 "> Search< / a > < / li >
< li > < a class = "reference internal" href = "#search" id = "id15 9 "> Search< / a > < / li >
< li > < a class = "reference internal" href = "#automaterial" id = "id1 59 "> AutoMaterial< / a > < / li >
< li > < a class = "reference internal" href = "#automaterial" id = "id1 60 "> AutoMaterial< / a > < / li >
< li > < a class = "reference internal" href = "#stockpile-automation" id = "id automelt "> Stockpile Automation< / a > < / li >
< li > < a class = "reference internal" href = "#stockpile-automation" id = "id 161 "> Stockpile Automation< / a > < / li >
< li > < a class = "reference internal" href = "#gui-advfort" id = "id16 0 "> gui/advfort< / a > < / li >
< li > < a class = "reference internal" href = "#gui-advfort" id = "id16 2 "> gui/advfort< / a > < / li >
< li > < a class = "reference internal" href = "#gui-assign-rack" id = "id16 1 "> gui/assign-rack< / a > < / li >
< li > < a class = "reference internal" href = "#gui-assign-rack" id = "id16 3 "> gui/assign-rack< / a > < / li >
< li > < a class = "reference internal" href = "#gui-choose-weapons" id = "id16 2 "> gui/choose-weapons< / a > < / li >
< li > < a class = "reference internal" href = "#gui-choose-weapons" id = "id16 4 "> gui/choose-weapons< / a > < / li >
< li > < a class = "reference internal" href = "#gui-clone-uniform" id = "id16 3 "> gui/clone-uniform< / a > < / li >
< li > < a class = "reference internal" href = "#gui-clone-uniform" id = "id16 5 "> gui/clone-uniform< / a > < / li >
< li > < a class = "reference internal" href = "#gui-companion-order" id = "id16 4 "> gui/companion-order< / a > < / li >
< li > < a class = "reference internal" href = "#gui-companion-order" id = "id16 6 "> gui/companion-order< / a > < / li >
< li > < a class = "reference internal" href = "#gui-gm-editor" id = "id16 5 "> gui/gm-editor< / a > < / li >
< li > < a class = "reference internal" href = "#gui-gm-editor" id = "id16 7 "> gui/gm-editor< / a > < / li >
< li > < a class = "reference internal" href = "#hotkeys" id = "id hotkeys "> Hotkeys< / a > < / li >
< li > < a class = "reference internal" href = "#hotkeys" id = "id 168 "> Hotkeys< / a > < / li >
< li > < a class = "reference internal" href = "#gui-liquids" id = "id16 6 "> gui/liquids< / a > < / li >
< li > < a class = "reference internal" href = "#gui-liquids" id = "id16 9 "> gui/liquids< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mechanisms" id = "id1 6 7"> gui/mechanisms< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mechanisms" id = "id1 70 "> gui/mechanisms< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mod-manager" id = "id1 68 "> gui/mod-manager< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mod-manager" id = "id1 71 "> gui/mod-manager< / a > < / li >
< li > < a class = "reference internal" href = "#gui-rename" id = "id1 69 "> gui/rename< / a > < / li >
< li > < a class = "reference internal" href = "#gui-rename" id = "id1 72 "> gui/rename< / a > < / li >
< li > < a class = "reference internal" href = "#gui-room-list" id = "id17 0 "> gui/room-list< / a > < / li >
< li > < a class = "reference internal" href = "#gui-room-list" id = "id17 3 "> gui/room-list< / a > < / li >
< li > < a class = "reference internal" href = "#gui-guide-path" id = "id17 1 "> gui/guide-path< / a > < / li >
< li > < a class = "reference internal" href = "#gui-guide-path" id = "id17 4 "> gui/guide-path< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workflow" id = "id17 2 "> gui/workflow< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workflow" id = "id17 5 "> gui/workflow< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workshop-job" id = "id17 3 "> gui/workshop-job< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workshop-job" id = "id17 6 "> gui/workshop-job< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#behavior-mods" id = "id17 4 "> Behavior Mods< / a > < ul >
< li > < a class = "reference internal" href = "#behavior-mods" id = "id17 7 "> Behavior Mods< / a > < ul >
< li > < a class = "reference internal" href = "#siege-engine" id = "id17 5 "> Siege Engine< / a > < ul >
< li > < a class = "reference internal" href = "#siege-engine" id = "id17 8 "> Siege Engine< / a > < ul >
< li > < a class = "reference internal" href = "#rationale" id = "id17 6 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#rationale" id = "id17 9 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#configuration-ui" id = "id1 77 "> Configuration UI< / a > < / li >
< li > < a class = "reference internal" href = "#configuration-ui" id = "id1 80 "> Configuration UI< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#power-meter" id = "id1 7 8"> Power Meter< / a > < / li >
< li > < a class = "reference internal" href = "#power-meter" id = "id1 81 "> Power Meter< / a > < / li >
< li > < a class = "reference internal" href = "#steam-engine" id = "id1 79 "> Steam Engine< / a > < ul >
< li > < a class = "reference internal" href = "#steam-engine" id = "id1 82 "> Steam Engine< / a > < ul >
< li > < a class = "reference internal" href = "#id1" id = "id18 0 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#id1" id = "id18 3 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#construction" id = "id18 1 "> Construction< / a > < / li >
< li > < a class = "reference internal" href = "#construction" id = "id18 4 "> Construction< / a > < / li >
< li > < a class = "reference internal" href = "#operation" id = "id18 2 "> Operation< / a > < / li >
< li > < a class = "reference internal" href = "#operation" id = "id18 5 "> Operation< / a > < / li >
< li > < a class = "reference internal" href = "#explosions" id = "id18 3 "> Explosions< / a > < / li >
< li > < a class = "reference internal" href = "#explosions" id = "id18 6 "> Explosions< / a > < / li >
< li > < a class = "reference internal" href = "#save-files" id = "id18 4 "> Save files< / a > < / li >
< li > < a class = "reference internal" href = "#save-files" id = "id18 7 "> Save files< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#add-spatter" id = "id18 5 "> Add Spatter< / a > < / li >
< li > < a class = "reference internal" href = "#add-spatter" id = "id18 8 "> Add Spatter< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< / ul >
< / ul >
@ -1930,14 +1955,6 @@ they are scuttled.</td>
< tr class = "field" > < th class = "field-name" > stable-cursor:< / th > < td class = "field-body" > < p class = "first" > Saves the exact cursor position between t/q/k/d/etc menus of dwarfmode.< / p >
< tr class = "field" > < th class = "field-name" > stable-cursor:< / th > < td class = "field-body" > < p class = "first" > Saves the exact cursor position between t/q/k/d/etc menus of dwarfmode.< / p >
< / td >
< / td >
< / tr >
< / tr >
< tr class = "field" > < th class = "field-name" > patrol-duty:< / th > < td class = "field-body" > < p class = "first" > Makes Train orders not count as patrol duty to stop unhappy thoughts.
Does NOT fix the problem when soldiers go off-duty (i.e. civilian).< / p >
< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > stable-temp:< / th > < td class = "field-body" > < p class = "first" > Fixes performance bug 6012 by squashing jitter in temperature updates.
In very item-heavy forts with big stockpiles this can improve FPS by 50-100%< / p >
< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > fast-heat:< / th > < td class = "field-body" > < p class = "first" > Further improves temperature update performance by ensuring that 1 degree
< tr class = "field" > < th class = "field-name" > fast-heat:< / th > < td class = "field-body" > < p class = "first" > Further improves temperature update performance by ensuring that 1 degree
of item temperature is crossed in no more than specified number of frames
of item temperature is crossed in no more than specified number of frames
when updating from the environment temperature. This reduces the time it
when updating from the environment temperature. This reduces the time it
@ -1975,7 +1992,17 @@ With this tweak, items made from cloth and leather will gain a level of wear eve
< tr class = "field" > < td > < / td > < td class = "field-body" > < p class = "first" > Prevents adamantine clothing from wearing out while being worn (bug 6481).< / p >
< tr class = "field" > < td > < / td > < td class = "field-body" > < p class = "first" > Prevents adamantine clothing from wearing out while being worn (bug 6481).< / p >
< / td >
< / td >
< / tr >
< / tr >
< tr class = "field" > < th class = "field-name" > confirm-embark:< / th > < td class = "field-body" > < p class = "first last" > Adds a prompt before embarking (on the " prepare carefully" screen).< / p >
< tr class = "field" > < th class = "field-name" colspan = "2" > farm-plot-select:< / th > < / tr >
< tr class = "field" > < td > < / td > < td class = "field-body" > < p class = "first" > Adds " Select all" and " Deselect all" options to farm plot menus< / p >
< / td >
< / tr >
< tr class = "field" > < th class = "field-name" colspan = "2" > import-priority-category:< / th > < / tr >
< tr class = "field" > < td > < / td > < td class = "field-body" > < p class = "first" > Allows changing the priority of all goods in a
category when discussing an import agreement with the liaison< / p >
< / td >
< / tr >
< tr class = "field" > < th class = "field-name" colspan = "2" > manager-quantity:< / th > < / tr >
< tr class = "field" > < td > < / td > < td class = "field-body" > < p class = "first last" > Removes the limit of 30 jobs per manager order< / p >
< / td >
< / td >
< / tr >
< / tr >
< / tbody >
< / tbody >
@ -2107,7 +2134,7 @@ with visualizers.</p>
< col class = "field-name" / >
< col class = "field-name" / >
< col class = "field-body" / >
< col class = "field-body" / >
< tbody valign = "top" >
< tbody valign = "top" >
< tr class = "field" > < th class = "field-name" > maps:< / th > < td class = "field-body" > Exports all fif teen detailed maps< / td >
< tr class = "field" > < th class = "field-name" > maps:< / th > < td class = "field-body" > Exports all seven teen detailed maps< / td >
< / tr >
< / tr >
< tr class = "field" > < th class = "field-name" > all:< / th > < td class = "field-body" > first exports the world/gen info, then the XML, then all detailed maps< / td >
< tr class = "field" > < th class = "field-name" > all:< / th > < td class = "field-body" > first exports the world/gen info, then the XML, then all detailed maps< / td >
< / tr >
< / tr >
@ -3089,13 +3116,25 @@ alternatively pass cage IDs as arguments:</p>
stripcaged weapons 25321 34228
stripcaged weapons 25321 34228
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "teleport" >
< h2 > < a class = "toc-backref" href = "#id154" > teleport< / a > < / h2 >
< p > Teleports a unit to given coordinates.< / p >
< p > Examples:< / p >
< pre class = "literal-block" >
teleport showunitid - prints unitid beneath cursor
teleport showpos - prints coordinates beneath cursor
teleport unit 1234 x 56 y 115 z 26 - teleports unit 1234 to 56,115,26
< / pre >
< p > One or both of < tt class = "docutils literal" > unit< / tt > and < tt class = "docutils literal" > x< / tt > /< tt class = "docutils literal" > y< / tt > /< tt class = "docutils literal" > z< / tt > coordinate positions must be
specified. If one is omitted, the unit or position beneath the cursor is used.< / p >
< / div >
< div class = "section" id = "undump-buildings" >
< div class = "section" id = "undump-buildings" >
< h2 > < a class = "toc-backref" href = "#id154" > undump-buildings< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 5 "> undump-buildings< / a > < / h2 >
< p > Undesignates building base materials for dumping.< / p >
< p > Undesignates building base materials for dumping.< / p >
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "modtools" >
< div class = "section" id = "modtools" >
< h1 > < a class = "toc-backref" href = "#id155" > modtools< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id15 6 "> modtools< / a > < / h1 >
< p > These scripts are mostly useful for raw modders and scripters. They all have standard arguments: arguments are of the form < tt class = "docutils literal" > tool < span class = "pre" > -argName1< / span > argVal1 < span class = "pre" > -argName2< / span > argVal2< / tt > . This is equivalent to < tt class = "docutils literal" > tool < span class = "pre" > -argName2< / span > argVal2 < span class = "pre" > -argName1< / span > argVal1< / tt > . It is not necessary to provide a value to an argument name: < tt class = "docutils literal" > tool < span class = "pre" > -argName3< / span > < / tt > is fine. Supplying the same argument name multiple times will result in an error. Argument names are preceded with a dash. The < tt class = "docutils literal" > < span class = "pre" > -help< / span > < / tt > argument will print a descriptive usage string describing the nature of the arguments. For multiple word argument values, brackets must be used: < tt class = "docutils literal" > tool < span class = "pre" > -argName4< / span > [ sadf1 sadf2 sadf3 ]< / tt > . In order to allow passing literal braces as part of the argument, backslashes are used: < tt class = "docutils literal" > tool < span class = "pre" > -argName4< / span > [ \] asdf \foo ]< / tt > sets < tt class = "docutils literal" > argName4< / tt > to < tt class = "docutils literal" > \] asdf foo< / tt > . The < tt class = "docutils literal" > < span class = "pre" > *-trigger< / span > < / tt > scripts have a similar policy with backslashes.< / p >
< p > These scripts are mostly useful for raw modders and scripters. They all have standard arguments: arguments are of the form < tt class = "docutils literal" > tool < span class = "pre" > -argName1< / span > argVal1 < span class = "pre" > -argName2< / span > argVal2< / tt > . This is equivalent to < tt class = "docutils literal" > tool < span class = "pre" > -argName2< / span > argVal2 < span class = "pre" > -argName1< / span > argVal1< / tt > . It is not necessary to provide a value to an argument name: < tt class = "docutils literal" > tool < span class = "pre" > -argName3< / span > < / tt > is fine. Supplying the same argument name multiple times will result in an error. Argument names are preceded with a dash. The < tt class = "docutils literal" > < span class = "pre" > -help< / span > < / tt > argument will print a descriptive usage string describing the nature of the arguments. For multiple word argument values, brackets must be used: < tt class = "docutils literal" > tool < span class = "pre" > -argName4< / span > [ sadf1 sadf2 sadf3 ]< / tt > . In order to allow passing literal braces as part of the argument, backslashes are used: < tt class = "docutils literal" > tool < span class = "pre" > -argName4< / span > [ \] asdf \foo ]< / tt > sets < tt class = "docutils literal" > argName4< / tt > to < tt class = "docutils literal" > \] asdf foo< / tt > . The < tt class = "docutils literal" > < span class = "pre" > *-trigger< / span > < / tt > scripts have a similar policy with backslashes.< / p >
< ul >
< ul >
< li > < p class = "first" > add-syndrome< / p >
< li > < p class = "first" > add-syndrome< / p >
@ -3152,7 +3191,7 @@ stripcaged weapons 25321 34228
< / ul >
< / ul >
< / div >
< / div >
< div class = "section" id = "in-game-interface-tools" >
< div class = "section" id = "in-game-interface-tools" >
< h1 > < a class = "toc-backref" href = "#id15 6 "> In-game interface tools< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id15 7 "> In-game interface tools< / a > < / h1 >
< p > These tools work by displaying dialogs or overlays in the game window, and
< p > These tools work by displaying dialogs or overlays in the game window, and
are mostly implemented by lua scripts.< / p >
are mostly implemented by lua scripts.< / p >
< div class = "note" >
< div class = "note" >
@ -3167,7 +3206,7 @@ guideline because it arguably just fixes small usability bugs in the game UI.</p
you must enable the plugins which provide them.< / p >
you must enable the plugins which provide them.< / p >
< / div >
< / div >
< div class = "section" id = "dwarf-manipulator" >
< div class = "section" id = "dwarf-manipulator" >
< h2 > < a class = "toc-backref" href = "#id15 7 "> Dwarf Manipulator< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 8 "> Dwarf Manipulator< / a > < / h2 >
< p > Implemented by the 'manipulator' plugin.< / p >
< p > Implemented by the 'manipulator' plugin.< / p >
< p > To activate, open the unit screen and press 'l'.< / p >
< p > To activate, open the unit screen and press 'l'.< / p >
< img alt = "images/manipulator.png" src = "images/manipulator.png" / >
< img alt = "images/manipulator.png" src = "images/manipulator.png" / >
@ -3208,7 +3247,7 @@ cursor onto that cell instead of toggling it.</li>
directly to the main dwarf mode screen.< / p >
directly to the main dwarf mode screen.< / p >
< / div >
< / div >
< div class = "section" id = "search" >
< div class = "section" id = "search" >
< h2 > < a class = "toc-backref" href = "#id15 8 "> Search< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 9 "> Search< / a > < / h2 >
< p > Implemented by the 'search' plugin.< / p >
< p > Implemented by the 'search' plugin.< / p >
< p > The search plugin adds search to the Stocks, Animals, Trading, Stockpile,
< p > The search plugin adds search to the Stocks, Animals, Trading, Stockpile,
Noble (assignment candidates), Military (position candidates), Burrows
Noble (assignment candidates), Military (position candidates), Burrows
@ -3239,7 +3278,7 @@ only fat or tallow by forbidding fats, then searching for fat/tallow, and
using Permit Fats again while the list is filtered.< / p >
using Permit Fats again while the list is filtered.< / p >
< / div >
< / div >
< div class = "section" id = "automaterial" >
< div class = "section" id = "automaterial" >
< h2 > < a class = "toc-backref" href = "#id1 59 "> AutoMaterial< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 60 "> AutoMaterial< / a > < / h2 >
< p > Implemented by the 'automaterial' plugin.< / p >
< p > Implemented by the 'automaterial' plugin.< / p >
< p > This makes building constructions (walls, floors, fortifications, etc) a little bit
< p > This makes building constructions (walls, floors, fortifications, etc) a little bit
easier by saving you from having to trawl through long lists of materials each time
easier by saving you from having to trawl through long lists of materials each time
@ -3267,7 +3306,7 @@ materials, it returns you back to this screen. If you use this along with severa
enabled materials, you should be able to place complex constructions more conveniently.< / p >
enabled materials, you should be able to place complex constructions more conveniently.< / p >
< / div >
< / div >
< div class = "section" id = "stockpile-automation" >
< div class = "section" id = "stockpile-automation" >
< h2 > < a class = "toc-backref" href = "#id automelt "> Stockpile Automation< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id 161 "> Stockpile Automation< / a > < / h2 >
< p > Enable the automelt plugin in your dfhack.init with:< / p >
< p > Enable the automelt plugin in your dfhack.init with:< / p >
< pre class = "literal-block" >
< pre class = "literal-block" >
enable automelt
enable automelt
@ -3276,7 +3315,7 @@ enable automelt
Any items placed in this stockpile will be designated to be melted.< / p >
Any items placed in this stockpile will be designated to be melted.< / p >
< / div >
< / div >
< div class = "section" id = "gui-advfort" >
< div class = "section" id = "gui-advfort" >
< h2 > < a class = "toc-backref" href = "#id16 0 "> gui/advfort< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 2 "> gui/advfort< / a > < / h2 >
< p > This script allows to perform jobs in adventure mode. For more complete help
< p > This script allows to perform jobs in adventure mode. For more complete help
press '?' while script is running. It's most confortable to use this as a
press '?' while script is running. It's most confortable to use this as a
keybinding. (e.g. keybinding set Ctrl-T gui/advfort). Possible arguments:< / p >
keybinding. (e.g. keybinding set Ctrl-T gui/advfort). Possible arguments:< / p >
@ -3295,7 +3334,7 @@ implies -a</li>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "gui-assign-rack" >
< div class = "section" id = "gui-assign-rack" >
< h2 > < a class = "toc-backref" href = "#id16 1 "> gui/assign-rack< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 3 "> gui/assign-rack< / a > < / h2 >
< p > Bind to a key (the example config uses P), and activate when viewing a weapon
< p > Bind to a key (the example config uses P), and activate when viewing a weapon
rack in the 'q' mode.< / p >
rack in the 'q' mode.< / p >
< img alt = "images/assign-rack.png" src = "images/assign-rack.png" / >
< img alt = "images/assign-rack.png" src = "images/assign-rack.png" / >
@ -3319,7 +3358,7 @@ the intended user. In order to aid in the choice, it shows the number
of currently assigned racks for every valid squad.< / p >
of currently assigned racks for every valid squad.< / p >
< / div >
< / div >
< div class = "section" id = "gui-choose-weapons" >
< div class = "section" id = "gui-choose-weapons" >
< h2 > < a class = "toc-backref" href = "#id16 2 "> gui/choose-weapons< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 4 "> gui/choose-weapons< / a > < / h2 >
< p > Bind to a key (the example config uses Ctrl-W), and activate in the Equip-> View/Customize
< p > Bind to a key (the example config uses Ctrl-W), and activate in the Equip-> View/Customize
page of the military screen.< / p >
page of the military screen.< / p >
< p > Depending on the cursor location, it rewrites all 'individual choice weapon' entries
< p > Depending on the cursor location, it rewrites all 'individual choice weapon' entries
@ -3330,14 +3369,14 @@ only that entry, and does it even if it is not 'individual choice'.</p>
and may lead to inappropriate weapons being selected.< / p >
and may lead to inappropriate weapons being selected.< / p >
< / div >
< / div >
< div class = "section" id = "gui-clone-uniform" >
< div class = "section" id = "gui-clone-uniform" >
< h2 > < a class = "toc-backref" href = "#id16 3 "> gui/clone-uniform< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 5 "> gui/clone-uniform< / a > < / h2 >
< p > Bind to a key (the example config uses Ctrl-C), and activate in the Uniforms
< p > Bind to a key (the example config uses Ctrl-C), and activate in the Uniforms
page of the military screen with the cursor in the leftmost list.< / p >
page of the military screen with the cursor in the leftmost list.< / p >
< p > When invoked, the script duplicates the currently selected uniform template,
< p > When invoked, the script duplicates the currently selected uniform template,
and selects the newly created copy.< / p >
and selects the newly created copy.< / p >
< / div >
< / div >
< div class = "section" id = "gui-companion-order" >
< div class = "section" id = "gui-companion-order" >
< h2 > < a class = "toc-backref" href = "#id16 4 "> gui/companion-order< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 6 "> gui/companion-order< / a > < / h2 >
< p > A script to issue orders for companions. Select companions with lower case chars, issue orders with upper
< p > A script to issue orders for companions. Select companions with lower case chars, issue orders with upper
case. Must be in look or talk mode to issue command on tile.< / p >
case. Must be in look or talk mode to issue command on tile.< / p >
< img alt = "images/companion-order.png" src = "images/companion-order.png" / >
< img alt = "images/companion-order.png" src = "images/companion-order.png" / >
@ -3353,7 +3392,7 @@ case. Must be in look or talk mode to issue command on tile.</p>
< / ul >
< / ul >
< / div >
< / div >
< div class = "section" id = "gui-gm-editor" >
< div class = "section" id = "gui-gm-editor" >
< h2 > < a class = "toc-backref" href = "#id16 5 "> gui/gm-editor< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 7 "> gui/gm-editor< / a > < / h2 >
< p > There are three ways to open this editor:< / p >
< p > There are three ways to open this editor:< / p >
< ul class = "simple" >
< ul class = "simple" >
< li > using gui/gm-editor command/keybinding - opens editor on what is selected
< li > using gui/gm-editor command/keybinding - opens editor on what is selected
@ -3368,7 +3407,7 @@ the same as version above.</li>
in-game help.< / p >
in-game help.< / p >
< / div >
< / div >
< div class = "section" id = "hotkeys" >
< div class = "section" id = "hotkeys" >
< h2 > < a class = "toc-backref" href = "#id hotkeys "> Hotkeys< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id 168 "> Hotkeys< / a > < / h2 >
< p > Opens an in-game screen showing DFHack keybindings that are valid in the current mode.< / p >
< p > Opens an in-game screen showing DFHack keybindings that are valid in the current mode.< / p >
< img alt = "images/hotkeys.png" src = "images/hotkeys.png" / >
< img alt = "images/hotkeys.png" src = "images/hotkeys.png" / >
< p > Type < tt class = "docutils literal" > hotkeys< / tt > into the DFHack console to open the screen, or bind the command to a
< p > Type < tt class = "docutils literal" > hotkeys< / tt > into the DFHack console to open the screen, or bind the command to a
@ -3378,7 +3417,7 @@ keybinding add Ctrl-F1 hotkeys
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "gui-liquids" >
< div class = "section" id = "gui-liquids" >
< h2 > < a class = "toc-backref" href = "#id16 6 "> gui/liquids< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 9 "> gui/liquids< / a > < / h2 >
< p > To use, bind to a key (the example config uses Alt-L) and activate in the 'k' mode.< / p >
< p > To use, bind to a key (the example config uses Alt-L) and activate in the 'k' mode.< / p >
< img alt = "images/liquids.png" src = "images/liquids.png" / >
< img alt = "images/liquids.png" src = "images/liquids.png" / >
< p > This script is a gui front-end to the liquids plugin and works similar to it,
< p > This script is a gui front-end to the liquids plugin and works similar to it,
@ -3398,7 +3437,7 @@ rivers power water wheels even when full and technically not flowing.</p>
< p > After setting up the desired operations using the described keys, use < tt class = "docutils literal" > Enter< / tt > to apply them.< / p >
< p > After setting up the desired operations using the described keys, use < tt class = "docutils literal" > Enter< / tt > to apply them.< / p >
< / div >
< / div >
< div class = "section" id = "gui-mechanisms" >
< div class = "section" id = "gui-mechanisms" >
< h2 > < a class = "toc-backref" href = "#id1 6 7"> gui/mechanisms< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 70 "> gui/mechanisms< / a > < / h2 >
< p > To use, bind to a key (the example config uses Ctrl-M) and activate in the 'q' mode.< / p >
< p > To use, bind to a key (the example config uses Ctrl-M) and activate in the 'q' mode.< / p >
< img alt = "images/mechanisms.png" src = "images/mechanisms.png" / >
< img alt = "images/mechanisms.png" src = "images/mechanisms.png" / >
< p > Lists mechanisms connected to the building, and their links. Navigating the list centers
< p > Lists mechanisms connected to the building, and their links. Navigating the list centers
@ -3408,13 +3447,13 @@ focus on the current one. Shift-Enter has an effect equivalent to pressing Enter
re-entering the mechanisms ui.< / p >
re-entering the mechanisms ui.< / p >
< / div >
< / div >
< div class = "section" id = "gui-mod-manager" >
< div class = "section" id = "gui-mod-manager" >
< h2 > < a class = "toc-backref" href = "#id1 68 "> gui/mod-manager< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 71 "> gui/mod-manager< / a > < / h2 >
< p > A way to simply install and remove small mods. It looks for specially formatted mods in
< p > A way to simply install and remove small mods. It looks for specially formatted mods in
df subfolder 'mods'. Mods are not included, for example mods see: < a class = "reference external" href = "https://github.com/warmist/df-mini-mods" > github mini mod repository< / a > < / p >
df subfolder 'mods'. Mods are not included, for example mods see: < a class = "reference external" href = "https://github.com/warmist/df-mini-mods" > github mini mod repository< / a > < / p >
< img alt = "images/mod-manager.png" src = "images/mod-manager.png" / >
< img alt = "images/mod-manager.png" src = "images/mod-manager.png" / >
< / div >
< / div >
< div class = "section" id = "gui-rename" >
< div class = "section" id = "gui-rename" >
< h2 > < a class = "toc-backref" href = "#id1 69 "> gui/rename< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 72 "> gui/rename< / a > < / h2 >
< p > Backed by the rename plugin, this script allows entering the desired name
< p > Backed by the rename plugin, this script allows entering the desired name
via a simple dialog in the game ui.< / p >
via a simple dialog in the game ui.< / p >
< ul >
< ul >
@ -3437,7 +3476,7 @@ their species string.</p>
unit profession change to Ctrl-Shift-T.< / p >
unit profession change to Ctrl-Shift-T.< / p >
< / div >
< / div >
< div class = "section" id = "gui-room-list" >
< div class = "section" id = "gui-room-list" >
< h2 > < a class = "toc-backref" href = "#id17 0 "> gui/room-list< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 3 "> gui/room-list< / a > < / h2 >
< p > To use, bind to a key (the example config uses Alt-R) and activate in the 'q' mode,
< p > To use, bind to a key (the example config uses Alt-R) and activate in the 'q' mode,
either immediately or after opening the assign owner page.< / p >
either immediately or after opening the assign owner page.< / p >
< img alt = "images/room-list.png" src = "images/room-list.png" / >
< img alt = "images/room-list.png" src = "images/room-list.png" / >
@ -3445,7 +3484,7 @@ either immediately or after opening the assign owner page.</p>
list, and allows unassigning them.< / p >
list, and allows unassigning them.< / p >
< / div >
< / div >
< div class = "section" id = "gui-guide-path" >
< div class = "section" id = "gui-guide-path" >
< h2 > < a class = "toc-backref" href = "#id17 1 "> gui/guide-path< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 4 "> gui/guide-path< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-P), and activate in the Hauling menu with
< p > Bind to a key (the example config uses Alt-P), and activate in the Hauling menu with
the cursor over a Guide order.< / p >
the cursor over a Guide order.< / p >
< img alt = "images/guide-path.png" src = "images/guide-path.png" / >
< img alt = "images/guide-path.png" src = "images/guide-path.png" / >
@ -3453,7 +3492,7 @@ the cursor over a Guide order.</p>
computes it when the order is executed for the first time.< / p >
computes it when the order is executed for the first time.< / p >
< / div >
< / div >
< div class = "section" id = "gui-workflow" >
< div class = "section" id = "gui-workflow" >
< h2 > < a class = "toc-backref" href = "#id17 2 "> gui/workflow< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 5 "> gui/workflow< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-W), and activate with a job selected
< p > Bind to a key (the example config uses Alt-W), and activate with a job selected
in a workshop in the 'q' mode.< / p >
in a workshop in the 'q' mode.< / p >
< img alt = "images/workflow.png" src = "images/workflow.png" / >
< img alt = "images/workflow.png" src = "images/workflow.png" / >
@ -3500,7 +3539,7 @@ the current stock value. The bright green dashed line is the target
limit (maximum) and the dark green line is that minus the gap (minimum).< / p >
limit (maximum) and the dark green line is that minus the gap (minimum).< / p >
< / div >
< / div >
< div class = "section" id = "gui-workshop-job" >
< div class = "section" id = "gui-workshop-job" >
< h2 > < a class = "toc-backref" href = "#id17 3 "> gui/workshop-job< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 6 "> gui/workshop-job< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-A), and activate with a job selected in
< p > Bind to a key (the example config uses Alt-A), and activate with a job selected in
a workshop in the 'q' mode.< / p >
a workshop in the 'q' mode.< / p >
< img alt = "images/workshop-job.png" src = "images/workshop-job.png" / >
< img alt = "images/workshop-job.png" src = "images/workshop-job.png" / >
@ -3537,7 +3576,7 @@ you have to unset the material first.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "behavior-mods" >
< div class = "section" id = "behavior-mods" >
< h1 > < a class = "toc-backref" href = "#id17 4 "> Behavior Mods< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id17 7 "> Behavior Mods< / a > < / h1 >
< p > These plugins, when activated via configuration UI or by detecting certain
< p > These plugins, when activated via configuration UI or by detecting certain
structures in RAWs, modify the game engine behavior concerning the target
structures in RAWs, modify the game engine behavior concerning the target
objects to add features not otherwise present.< / p >
objects to add features not otherwise present.< / p >
@ -3548,20 +3587,20 @@ technical challenge, and do not represent any long-term plans to produce more
similar modifications of the game.< / p >
similar modifications of the game.< / p >
< / div >
< / div >
< div class = "section" id = "siege-engine" >
< div class = "section" id = "siege-engine" >
< h2 > < a class = "toc-backref" href = "#id17 5 "> Siege Engine< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 8 "> Siege Engine< / a > < / h2 >
< p > The siege-engine plugin enables siege engines to be linked to stockpiles, and
< p > The siege-engine plugin enables siege engines to be linked to stockpiles, and
aimed at an arbitrary rectangular area across Z levels, instead of the original
aimed at an arbitrary rectangular area across Z levels, instead of the original
four directions. Also, catapults can be ordered to load arbitrary objects, not
four directions. Also, catapults can be ordered to load arbitrary objects, not
just stones.< / p >
just stones.< / p >
< div class = "section" id = "rationale" >
< div class = "section" id = "rationale" >
< h3 > < a class = "toc-backref" href = "#id17 6 "> Rationale< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 9 "> Rationale< / a > < / h3 >
< p > Siege engines are a very interesting feature, but sadly almost useless in the current state
< p > Siege engines are a very interesting feature, but sadly almost useless in the current state
because they haven't been updated since 2D and can only aim in four directions. This is an
because they haven't been updated since 2D and can only aim in four directions. This is an
attempt to bring them more up to date until Toady has time to work on it. Actual improvements,
attempt to bring them more up to date until Toady has time to work on it. Actual improvements,
e.g. like making siegers bring their own, are something only Toady can do.< / p >
e.g. like making siegers bring their own, are something only Toady can do.< / p >
< / div >
< / div >
< div class = "section" id = "configuration-ui" >
< div class = "section" id = "configuration-ui" >
< h3 > < a class = "toc-backref" href = "#id1 77 "> Configuration UI< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id1 80 "> Configuration UI< / a > < / h3 >
< p > The configuration front-end to the plugin is implemented by the gui/siege-engine
< p > The configuration front-end to the plugin is implemented by the gui/siege-engine
script. Bind it to a key (the example config uses Alt-A) and activate after selecting
script. Bind it to a key (the example config uses Alt-A) and activate after selecting
a siege engine in 'q' mode.< / p >
a siege engine in 'q' mode.< / p >
@ -3584,7 +3623,7 @@ menu.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "power-meter" >
< div class = "section" id = "power-meter" >
< h2 > < a class = "toc-backref" href = "#id1 7 8"> Power Meter< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 81 "> Power Meter< / a > < / h2 >
< p > The power-meter plugin implements a modified pressure plate that detects power being
< p > The power-meter plugin implements a modified pressure plate that detects power being
supplied to gear boxes built in the four adjacent N/S/W/E tiles.< / p >
supplied to gear boxes built in the four adjacent N/S/W/E tiles.< / p >
< p > The configuration front-end is implemented by the gui/power-meter script. Bind it to a
< p > The configuration front-end is implemented by the gui/power-meter script. Bind it to a
@ -3595,11 +3634,11 @@ in the build menu.</p>
configuration page, but configures parameters relevant to the modded power meter building.< / p >
configuration page, but configures parameters relevant to the modded power meter building.< / p >
< / div >
< / div >
< div class = "section" id = "steam-engine" >
< div class = "section" id = "steam-engine" >
< h2 > < a class = "toc-backref" href = "#id1 79 "> Steam Engine< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 82 "> Steam Engine< / a > < / h2 >
< p > The steam-engine plugin detects custom workshops with STEAM_ENGINE in
< p > The steam-engine plugin detects custom workshops with STEAM_ENGINE in
their token, and turns them into real steam engines.< / p >
their token, and turns them into real steam engines.< / p >
< div class = "section" id = "id1" >
< div class = "section" id = "id1" >
< h3 > < a class = "toc-backref" href = "#id18 0 "> Rationale< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id18 3 "> Rationale< / a > < / h3 >
< p > The vanilla game contains only water wheels and windmills as sources of
< p > The vanilla game contains only water wheels and windmills as sources of
power, but windmills give relatively little power, and water wheels require
power, but windmills give relatively little power, and water wheels require
flowing water, which must either be a real river and thus immovable and
flowing water, which must either be a real river and thus immovable and
@ -3610,7 +3649,7 @@ it can be done just by combining existing features of the game engine
in a new way with some glue code and a bit of custom logic.< / p >
in a new way with some glue code and a bit of custom logic.< / p >
< / div >
< / div >
< div class = "section" id = "construction" >
< div class = "section" id = "construction" >
< h3 > < a class = "toc-backref" href = "#id18 1 "> Construction< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id18 4 "> Construction< / a > < / h3 >
< p > The workshop needs water as its input, which it takes via a
< p > The workshop needs water as its input, which it takes via a
passable floor tile below it, like usual magma workshops do.
passable floor tile below it, like usual magma workshops do.
The magma version also needs magma.< / p >
The magma version also needs magma.< / p >
@ -3634,7 +3673,7 @@ short axles that can be built later than both of the engines.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "operation" >
< div class = "section" id = "operation" >
< h3 > < a class = "toc-backref" href = "#id18 2 "> Operation< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id18 5 "> Operation< / a > < / h3 >
< p > In order to operate the engine, queue the Stoke Boiler job (optionally
< p > In order to operate the engine, queue the Stoke Boiler job (optionally
on repeat). A furnace operator will come, possibly bringing a bar of fuel,
on repeat). A furnace operator will come, possibly bringing a bar of fuel,
and perform it. As a result, a " boiling water" item will appear
and perform it. As a result, a " boiling water" item will appear
@ -3665,7 +3704,7 @@ decrease it by further 4%, and also decrease the whole steam
use rate by 10%.< / p >
use rate by 10%.< / p >
< / div >
< / div >
< div class = "section" id = "explosions" >
< div class = "section" id = "explosions" >
< h3 > < a class = "toc-backref" href = "#id18 3 "> Explosions< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id18 6 "> Explosions< / a > < / h3 >
< p > The engine must be constructed using barrel, pipe and piston
< p > The engine must be constructed using barrel, pipe and piston
from fire-safe, or in the magma version magma-safe metals.< / p >
from fire-safe, or in the magma version magma-safe metals.< / p >
< p > During operation weak parts get gradually worn out, and
< p > During operation weak parts get gradually worn out, and
@ -3674,7 +3713,7 @@ toppled during operation by a building destroyer, or a
tantruming dwarf.< / p >
tantruming dwarf.< / p >
< / div >
< / div >
< div class = "section" id = "save-files" >
< div class = "section" id = "save-files" >
< h3 > < a class = "toc-backref" href = "#id18 4 "> Save files< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id18 7 "> Save files< / a > < / h3 >
< p > It should be safe to load and view engine-using fortresses
< p > It should be safe to load and view engine-using fortresses
from a DF version without DFHack installed, except that in such
from a DF version without DFHack installed, except that in such
case the engines won't work. However actually making modifications
case the engines won't work. However actually making modifications
@ -3685,7 +3724,7 @@ being generated.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "add-spatter" >
< div class = "section" id = "add-spatter" >
< h2 > < a class = "toc-backref" href = "#id18 5 "> Add Spatter< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id18 8 "> Add Spatter< / a > < / h2 >
< p > This plugin makes reactions with names starting with < tt class = "docutils literal" > SPATTER_ADD_< / tt >
< p > This plugin makes reactions with names starting with < tt class = "docutils literal" > SPATTER_ADD_< / tt >
produce contaminants on the items instead of improvements. The produced
produce contaminants on the items instead of improvements. The produced
contaminants are immune to being washed away by water or destroyed by
contaminants are immune to being washed away by water or destroyed by