2561 lines
118 KiB
HTML
2561 lines
118 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
|
|
<title></title>
|
|
<style type="text/css">
|
|
|
|
/*
|
|
:Author: David Goodger (goodger@python.org)
|
|
:Id: $Id: html4css1.css 7056 2011-06-17 10:50:48Z milde $
|
|
:Copyright: This stylesheet has been placed in the public domain.
|
|
|
|
Default cascading style sheet for the HTML output of Docutils.
|
|
|
|
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
|
customize this style sheet.
|
|
*/
|
|
|
|
/* used to remove borders from tables and images */
|
|
.borderless, table.borderless td, table.borderless th {
|
|
border: 0 }
|
|
|
|
table.borderless td, table.borderless th {
|
|
/* Override padding for "table.docutils td" with "! important".
|
|
The right padding separates the table cells. */
|
|
padding: 0 0.5em 0 0 ! important }
|
|
|
|
.first {
|
|
/* Override more specific margin styles with "! important". */
|
|
margin-top: 0 ! important }
|
|
|
|
.last, .with-subtitle {
|
|
margin-bottom: 0 ! important }
|
|
|
|
.hidden {
|
|
display: none }
|
|
|
|
a.toc-backref {
|
|
text-decoration: none ;
|
|
color: black }
|
|
|
|
blockquote.epigraph {
|
|
margin: 2em 5em ; }
|
|
|
|
dl.docutils dd {
|
|
margin-bottom: 0.5em }
|
|
|
|
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
|
dl.docutils dt {
|
|
font-weight: bold }
|
|
*/
|
|
|
|
div.abstract {
|
|
margin: 2em 5em }
|
|
|
|
div.abstract p.topic-title {
|
|
font-weight: bold ;
|
|
text-align: center }
|
|
|
|
div.admonition, div.attention, div.caution, div.danger, div.error,
|
|
div.hint, div.important, div.note, div.tip, div.warning {
|
|
margin: 2em ;
|
|
border: medium outset ;
|
|
padding: 1em }
|
|
|
|
div.admonition p.admonition-title, div.hint p.admonition-title,
|
|
div.important p.admonition-title, div.note p.admonition-title,
|
|
div.tip p.admonition-title {
|
|
font-weight: bold ;
|
|
font-family: sans-serif }
|
|
|
|
div.attention p.admonition-title, div.caution p.admonition-title,
|
|
div.danger p.admonition-title, div.error p.admonition-title,
|
|
div.warning p.admonition-title {
|
|
color: red ;
|
|
font-weight: bold ;
|
|
font-family: sans-serif }
|
|
|
|
/* Uncomment (and remove this text!) to get reduced vertical space in
|
|
compound paragraphs.
|
|
div.compound .compound-first, div.compound .compound-middle {
|
|
margin-bottom: 0.5em }
|
|
|
|
div.compound .compound-last, div.compound .compound-middle {
|
|
margin-top: 0.5em }
|
|
*/
|
|
|
|
div.dedication {
|
|
margin: 2em 5em ;
|
|
text-align: center ;
|
|
font-style: italic }
|
|
|
|
div.dedication p.topic-title {
|
|
font-weight: bold ;
|
|
font-style: normal }
|
|
|
|
div.figure {
|
|
margin-left: 2em ;
|
|
margin-right: 2em }
|
|
|
|
div.footer, div.header {
|
|
clear: both;
|
|
font-size: smaller }
|
|
|
|
div.line-block {
|
|
display: block ;
|
|
margin-top: 1em ;
|
|
margin-bottom: 1em }
|
|
|
|
div.line-block div.line-block {
|
|
margin-top: 0 ;
|
|
margin-bottom: 0 ;
|
|
margin-left: 1.5em }
|
|
|
|
div.sidebar {
|
|
margin: 0 0 0.5em 1em ;
|
|
border: medium outset ;
|
|
padding: 1em ;
|
|
background-color: #ffffee ;
|
|
width: 40% ;
|
|
float: right ;
|
|
clear: right }
|
|
|
|
div.sidebar p.rubric {
|
|
font-family: sans-serif ;
|
|
font-size: medium }
|
|
|
|
div.system-messages {
|
|
margin: 5em }
|
|
|
|
div.system-messages h1 {
|
|
color: red }
|
|
|
|
div.system-message {
|
|
border: medium outset ;
|
|
padding: 1em }
|
|
|
|
div.system-message p.system-message-title {
|
|
color: red ;
|
|
font-weight: bold }
|
|
|
|
div.topic {
|
|
margin: 2em }
|
|
|
|
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
|
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
|
margin-top: 0.4em }
|
|
|
|
h1.title {
|
|
text-align: center }
|
|
|
|
h2.subtitle {
|
|
text-align: center }
|
|
|
|
hr.docutils {
|
|
width: 75% }
|
|
|
|
img.align-left, .figure.align-left, object.align-left {
|
|
clear: left ;
|
|
float: left ;
|
|
margin-right: 1em }
|
|
|
|
img.align-right, .figure.align-right, object.align-right {
|
|
clear: right ;
|
|
float: right ;
|
|
margin-left: 1em }
|
|
|
|
img.align-center, .figure.align-center, object.align-center {
|
|
display: block;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.align-left {
|
|
text-align: left }
|
|
|
|
.align-center {
|
|
clear: both ;
|
|
text-align: center }
|
|
|
|
.align-right {
|
|
text-align: right }
|
|
|
|
/* reset inner alignment in figures */
|
|
div.align-right {
|
|
text-align: inherit }
|
|
|
|
/* div.align-center * { */
|
|
/* text-align: left } */
|
|
|
|
ol.simple, ul.simple {
|
|
margin-bottom: 1em }
|
|
|
|
ol.arabic {
|
|
list-style: decimal }
|
|
|
|
ol.loweralpha {
|
|
list-style: lower-alpha }
|
|
|
|
ol.upperalpha {
|
|
list-style: upper-alpha }
|
|
|
|
ol.lowerroman {
|
|
list-style: lower-roman }
|
|
|
|
ol.upperroman {
|
|
list-style: upper-roman }
|
|
|
|
p.attribution {
|
|
text-align: right ;
|
|
margin-left: 50% }
|
|
|
|
p.caption {
|
|
font-style: italic }
|
|
|
|
p.credits {
|
|
font-style: italic ;
|
|
font-size: smaller }
|
|
|
|
p.label {
|
|
white-space: nowrap }
|
|
|
|
p.rubric {
|
|
font-weight: bold ;
|
|
font-size: larger ;
|
|
color: maroon ;
|
|
text-align: center }
|
|
|
|
p.sidebar-title {
|
|
font-family: sans-serif ;
|
|
font-weight: bold ;
|
|
font-size: larger }
|
|
|
|
p.sidebar-subtitle {
|
|
font-family: sans-serif ;
|
|
font-weight: bold }
|
|
|
|
p.topic-title {
|
|
font-weight: bold }
|
|
|
|
pre.address {
|
|
margin-bottom: 0 ;
|
|
margin-top: 0 ;
|
|
font: inherit }
|
|
|
|
pre.literal-block, pre.doctest-block, pre.math {
|
|
margin-left: 2em ;
|
|
margin-right: 2em }
|
|
|
|
span.classifier {
|
|
font-family: sans-serif ;
|
|
font-style: oblique }
|
|
|
|
span.classifier-delimiter {
|
|
font-family: sans-serif ;
|
|
font-weight: bold }
|
|
|
|
span.interpreted {
|
|
font-family: sans-serif }
|
|
|
|
span.option {
|
|
white-space: nowrap }
|
|
|
|
span.pre {
|
|
white-space: pre }
|
|
|
|
span.problematic {
|
|
color: red }
|
|
|
|
span.section-subtitle {
|
|
/* font-size relative to parent (h1..h6 element) */
|
|
font-size: 80% }
|
|
|
|
table.citation {
|
|
border-left: solid 1px gray;
|
|
margin-left: 1px }
|
|
|
|
table.docinfo {
|
|
margin: 2em 4em }
|
|
|
|
table.docutils {
|
|
margin-top: 0.5em ;
|
|
margin-bottom: 0.5em }
|
|
|
|
table.footnote {
|
|
border-left: solid 1px black;
|
|
margin-left: 1px }
|
|
|
|
table.docutils td, table.docutils th,
|
|
table.docinfo td, table.docinfo th {
|
|
padding-left: 0.5em ;
|
|
padding-right: 0.5em ;
|
|
vertical-align: top }
|
|
|
|
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
|
font-weight: bold ;
|
|
text-align: left ;
|
|
white-space: nowrap ;
|
|
padding-left: 0 }
|
|
|
|
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
|
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
|
font-size: 100% }
|
|
|
|
ul.auto-toc {
|
|
list-style-type: none }
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="document">
|
|
|
|
|
|
<div class="section" id="introduction">
|
|
<h1><a class="toc-backref" href="#id36">Introduction</a></h1>
|
|
<p>DFHack is a Dwarf Fortress memory access library and a set of basic
|
|
tools that use it. Tools come in the form of plugins or (not yet)
|
|
external tools. It is an attempt to unite the various ways tools
|
|
access DF memory and allow for easier development of new tools.</p>
|
|
<div class="contents topic" id="contents">
|
|
<p class="topic-title first">Contents</p>
|
|
<ul class="simple">
|
|
<li><a class="reference internal" href="#introduction" id="id36">Introduction</a></li>
|
|
<li><a class="reference internal" href="#getting-dfhack" id="id37">Getting DFHack</a></li>
|
|
<li><a class="reference internal" href="#compatibility" id="id38">Compatibility</a></li>
|
|
<li><a class="reference internal" href="#installation-removal" id="id39">Installation/Removal</a></li>
|
|
<li><a class="reference internal" href="#using-dfhack" id="id40">Using DFHack</a></li>
|
|
<li><a class="reference internal" href="#something-doesn-t-work-help" id="id41">Something doesn't work, help!</a></li>
|
|
<li><a class="reference internal" href="#the-init-file" id="id42">The init file</a></li>
|
|
<li><a class="reference internal" href="#commands" id="id43">Commands</a><ul>
|
|
<li><a class="reference internal" href="#adv-bodyswap" id="id44">adv-bodyswap</a><ul>
|
|
<li><a class="reference internal" href="#usage" id="id45">Usage</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#advtools" id="id46">advtools</a><ul>
|
|
<li><a class="reference internal" href="#id1" id="id47">Usage</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#changelayer" id="id48">changelayer</a><ul>
|
|
<li><a class="reference internal" href="#options" id="id49">Options</a></li>
|
|
<li><a class="reference internal" href="#examples" id="id50">Examples:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#changevein" id="id51">changevein</a><ul>
|
|
<li><a class="reference internal" href="#example" id="id52">Example:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#changeitem" id="id53">changeitem</a><ul>
|
|
<li><a class="reference internal" href="#id2" id="id54">Options</a></li>
|
|
<li><a class="reference internal" href="#id3" id="id55">Examples:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#cursecheck" id="id56">cursecheck</a><ul>
|
|
<li><a class="reference internal" href="#id4" id="id57">Options</a></li>
|
|
<li><a class="reference internal" href="#id5" id="id58">Examples:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#follow" id="id59">follow</a></li>
|
|
<li><a class="reference internal" href="#forcepause" id="id60">forcepause</a></li>
|
|
<li><a class="reference internal" href="#nopause" id="id61">nopause</a></li>
|
|
<li><a class="reference internal" href="#die" id="id62">die</a></li>
|
|
<li><a class="reference internal" href="#autodump" id="id63">autodump</a><ul>
|
|
<li><a class="reference internal" href="#id6" id="id64">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#autodump-destroy-here" id="id65">autodump-destroy-here</a></li>
|
|
<li><a class="reference internal" href="#autodump-destroy-item" id="id66">autodump-destroy-item</a></li>
|
|
<li><a class="reference internal" href="#burrow" id="id67">burrow</a><ul>
|
|
<li><a class="reference internal" href="#id7" id="id68">Options</a></li>
|
|
<li><a class="reference internal" href="#features" id="id69">Features</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#catsplosion" id="id70">catsplosion</a></li>
|
|
<li><a class="reference internal" href="#clean" id="id71">clean</a><ul>
|
|
<li><a class="reference internal" href="#id8" id="id72">Options</a></li>
|
|
<li><a class="reference internal" href="#extra-options-for-map" id="id73">Extra options for 'map'</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#spotclean" id="id74">spotclean</a></li>
|
|
<li><a class="reference internal" href="#cleanowned" id="id75">cleanowned</a><ul>
|
|
<li><a class="reference internal" href="#id9" id="id76">Options</a></li>
|
|
<li><a class="reference internal" href="#id10" id="id77">Example:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#colonies" id="id78">colonies</a><ul>
|
|
<li><a class="reference internal" href="#id11" id="id79">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#deramp-by-zilpin" id="id80">deramp (by zilpin)</a></li>
|
|
<li><a class="reference internal" href="#dfusion" id="id81">dfusion</a><ul>
|
|
<li><a class="reference internal" href="#confirmed-working-dfusion-plugins" id="id82">Confirmed working DFusion plugins:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#drybuckets" id="id83">drybuckets</a></li>
|
|
<li><a class="reference internal" href="#fastdwarf" id="id84">fastdwarf</a></li>
|
|
<li><a class="reference internal" href="#feature" id="id85">feature</a><ul>
|
|
<li><a class="reference internal" href="#id12" id="id86">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#filltraffic" id="id87">filltraffic</a><ul>
|
|
<li><a class="reference internal" href="#traffic-type-codes" id="id88">Traffic Type Codes:</a></li>
|
|
<li><a class="reference internal" href="#other-options" id="id89">Other Options:</a></li>
|
|
<li><a class="reference internal" href="#id13" id="id90">Example:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#alltraffic" id="id91">alltraffic</a><ul>
|
|
<li><a class="reference internal" href="#id14" id="id92">Traffic Type Codes:</a></li>
|
|
<li><a class="reference internal" href="#id15" id="id93">Example:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#fixdiplomats" id="id94">fixdiplomats</a></li>
|
|
<li><a class="reference internal" href="#fixmerchants" id="id95">fixmerchants</a></li>
|
|
<li><a class="reference internal" href="#fixveins" id="id96">fixveins</a></li>
|
|
<li><a class="reference internal" href="#flows" id="id97">flows</a></li>
|
|
<li><a class="reference internal" href="#getplants" id="id98">getplants</a><ul>
|
|
<li><a class="reference internal" href="#id16" id="id99">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#tidlers" id="id100">tidlers</a></li>
|
|
<li><a class="reference internal" href="#twaterlvl" id="id101">twaterlvl</a></li>
|
|
<li><a class="reference internal" href="#job" id="id102">job</a></li>
|
|
<li><a class="reference internal" href="#job-material" id="id103">job-material</a></li>
|
|
<li><a class="reference internal" href="#job-duplicate" id="id104">job-duplicate</a></li>
|
|
<li><a class="reference internal" href="#keybinding" id="id105">keybinding</a><ul>
|
|
<li><a class="reference internal" href="#id17" id="id106">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#liquids" id="id107">liquids</a></li>
|
|
<li><a class="reference internal" href="#liquids-here" id="id108">liquids-here</a></li>
|
|
<li><a class="reference internal" href="#mode" id="id109">mode</a></li>
|
|
<li><a class="reference internal" href="#extirpate" id="id110">extirpate</a><ul>
|
|
<li><a class="reference internal" href="#id18" id="id111">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#grow" id="id112">grow</a></li>
|
|
<li><a class="reference internal" href="#immolate" id="id113">immolate</a></li>
|
|
<li><a class="reference internal" href="#probe" id="id114">probe</a></li>
|
|
<li><a class="reference internal" href="#prospect" id="id115">prospect</a><ul>
|
|
<li><a class="reference internal" href="#id19" id="id116">Options</a></li>
|
|
<li><a class="reference internal" href="#pre-embark-estimate" id="id117">Pre-embark estimate</a></li>
|
|
<li><a class="reference internal" href="#id20" id="id118">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#regrass" id="id119">regrass</a></li>
|
|
<li><a class="reference internal" href="#rename" id="id120">rename</a><ul>
|
|
<li><a class="reference internal" href="#id21" id="id121">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#reveal" id="id122">reveal</a></li>
|
|
<li><a class="reference internal" href="#unreveal" id="id123">unreveal</a></li>
|
|
<li><a class="reference internal" href="#revtoggle" id="id124">revtoggle</a></li>
|
|
<li><a class="reference internal" href="#revflood" id="id125">revflood</a></li>
|
|
<li><a class="reference internal" href="#revforget" id="id126">revforget</a></li>
|
|
<li><a class="reference internal" href="#lair" id="id127">lair</a><ul>
|
|
<li><a class="reference internal" href="#id22" id="id128">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#seedwatch" id="id129">seedwatch</a></li>
|
|
<li><a class="reference internal" href="#showmood" id="id130">showmood</a></li>
|
|
<li><a class="reference internal" href="#copystock" id="id131">copystock</a></li>
|
|
<li><a class="reference internal" href="#ssense-stonesense" id="id132">ssense / stonesense</a></li>
|
|
<li><a class="reference internal" href="#tiletypes" id="id133">tiletypes</a></li>
|
|
<li><a class="reference internal" href="#tiletypes-commands" id="id134">tiletypes-commands</a></li>
|
|
<li><a class="reference internal" href="#tiletypes-here" id="id135">tiletypes-here</a></li>
|
|
<li><a class="reference internal" href="#tiletypes-here-point" id="id136">tiletypes-here-point</a></li>
|
|
<li><a class="reference internal" href="#tweak" id="id137">tweak</a><ul>
|
|
<li><a class="reference internal" href="#id23" id="id138">Options</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#tubefill" id="id139">tubefill</a></li>
|
|
<li><a class="reference internal" href="#digv" id="id140">digv</a></li>
|
|
<li><a class="reference internal" href="#digvx" id="id141">digvx</a></li>
|
|
<li><a class="reference internal" href="#digl" id="id142">digl</a></li>
|
|
<li><a class="reference internal" href="#diglx" id="id143">diglx</a></li>
|
|
<li><a class="reference internal" href="#digexp" id="id144">digexp</a><ul>
|
|
<li><a class="reference internal" href="#patterns" id="id145">Patterns:</a></li>
|
|
<li><a class="reference internal" href="#filters" id="id146">Filters:</a></li>
|
|
<li><a class="reference internal" href="#id24" id="id147">Examples:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#digcircle" id="id148">digcircle</a><ul>
|
|
<li><a class="reference internal" href="#shape" id="id149">Shape:</a></li>
|
|
<li><a class="reference internal" href="#action" id="id150">Action:</a></li>
|
|
<li><a class="reference internal" href="#designation-types" id="id151">Designation types:</a></li>
|
|
<li><a class="reference internal" href="#id25" id="id152">Examples:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#weather" id="id153">weather</a><ul>
|
|
<li><a class="reference internal" href="#id26" id="id154">Options:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#workflow" id="id155">workflow</a><ul>
|
|
<li><a class="reference internal" href="#id27" id="id156">Usage</a></li>
|
|
<li><a class="reference internal" href="#function" id="id157">Function</a></li>
|
|
<li><a class="reference internal" href="#constraint-examples" id="id158">Constraint examples</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#mapexport" id="id159">mapexport</a></li>
|
|
<li><a class="reference internal" href="#dwarfexport" id="id160">dwarfexport</a></li>
|
|
<li><a class="reference internal" href="#zone" id="id161">zone</a><ul>
|
|
<li><a class="reference internal" href="#id28" id="id162">Options:</a></li>
|
|
<li><a class="reference internal" href="#id29" id="id163">Filters:</a></li>
|
|
<li><a class="reference internal" href="#usage-with-single-units" id="id164">Usage with single units</a></li>
|
|
<li><a class="reference internal" href="#usage-with-filters" id="id165">Usage with filters</a></li>
|
|
<li><a class="reference internal" href="#mass-renaming" id="id166">Mass-renaming</a></li>
|
|
<li><a class="reference internal" href="#cage-zones" id="id167">Cage zones</a></li>
|
|
<li><a class="reference internal" href="#id30" id="id168">Examples</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#autonestbox" id="id169">autonestbox</a><ul>
|
|
<li><a class="reference internal" href="#id31" id="id170">Options:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#autobutcher" id="id171">autobutcher</a><ul>
|
|
<li><a class="reference internal" href="#id32" id="id172">Options:</a></li>
|
|
<li><a class="reference internal" href="#id33" id="id173">Examples:</a></li>
|
|
<li><a class="reference internal" href="#note" id="id174">Note:</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#autolabor" id="id175">autolabor</a></li>
|
|
<li><a class="reference internal" href="#growcrops" id="id176">growcrops</a></li>
|
|
<li><a class="reference internal" href="#removebadthoughts" id="id177">removebadthoughts</a></li>
|
|
<li><a class="reference internal" href="#slayrace" id="id178">slayrace</a></li>
|
|
<li><a class="reference internal" href="#magmasource" id="id179">magmasource</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#in-game-interface-tools" id="id180">In-game interface tools</a><ul>
|
|
<li><a class="reference internal" href="#dwarf-manipulator" id="id181">Dwarf Manipulator</a></li>
|
|
<li><a class="reference internal" href="#id34" id="id182">Liquids</a></li>
|
|
<li><a class="reference internal" href="#mechanisms" id="id183">Mechanisms</a></li>
|
|
<li><a class="reference internal" href="#power-meter" id="id184">Power Meter</a></li>
|
|
<li><a class="reference internal" href="#id35" id="id185">Rename</a></li>
|
|
<li><a class="reference internal" href="#room-list" id="id186">Room List</a></li>
|
|
<li><a class="reference internal" href="#siege-engine" id="id187">Siege Engine</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#raw-hacks" id="id188">RAW hacks</a><ul>
|
|
<li><a class="reference internal" href="#steam-engine" id="id189">Steam Engine</a><ul>
|
|
<li><a class="reference internal" href="#rationale" id="id190">Rationale</a></li>
|
|
<li><a class="reference internal" href="#construction" id="id191">Construction</a></li>
|
|
<li><a class="reference internal" href="#operation" id="id192">Operation</a></li>
|
|
<li><a class="reference internal" href="#explosions" id="id193">Explosions</a></li>
|
|
<li><a class="reference internal" href="#save-files" id="id194">Save files</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#add-spatter" id="id195">Add Spatter</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="getting-dfhack">
|
|
<h1><a class="toc-backref" href="#id37">Getting DFHack</a></h1>
|
|
<p>The project is currently hosted on <a class="reference external" href="http://www.github.com/">github</a>, for both source and
|
|
binaries at <a class="reference external" href="http://github.com/peterix/dfhack">http://github.com/peterix/dfhack</a></p>
|
|
<p>Releases can be downloaded from here: <a class="reference external" href="https://github.com/peterix/dfhack/downloads">https://github.com/peterix/dfhack/downloads</a></p>
|
|
<p>All new releases are announced in the bay12 thread: <a class="reference external" href="http://tinyurl.com/dfhack-ng">http://tinyurl.com/dfhack-ng</a></p>
|
|
</div>
|
|
<div class="section" id="compatibility">
|
|
<h1><a class="toc-backref" href="#id38">Compatibility</a></h1>
|
|
<p>DFHack works on Windows XP, Vista, 7 or any modern Linux distribution.
|
|
OSX is not supported due to lack of developers with a Mac.</p>
|
|
<p>Currently, versions 0.34.08 - 0.34.11 are supported. If you need DFHack
|
|
for older versions, look for older releases.</p>
|
|
<p>On Windows, you have to use the SDL version of DF.</p>
|
|
<p>It is possible to use the Windows DFHack under wine/OSX.</p>
|
|
</div>
|
|
<div class="section" id="installation-removal">
|
|
<h1><a class="toc-backref" href="#id39">Installation/Removal</a></h1>
|
|
<p>Installing DFhack involves copying files into your DF folder.
|
|
Copy the files from a release archive so that:</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>On Windows, SDL.dll is replaced</li>
|
|
<li>On Linux, the 'dfhack' script is placed in the same folder as the 'df' script</li>
|
|
</ul>
|
|
</blockquote>
|
|
<p>Uninstalling is basically the same, in reverse:</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>On Windows, first delete SDL.dll and rename SDLreal.dll to SDL.dll. Then
|
|
remove the other DFHack files</li>
|
|
<li>On Linux, Remove the DFHack files.</li>
|
|
</ul>
|
|
</blockquote>
|
|
<p>The stonesense plugin might require some additional libraries on Linux.</p>
|
|
<p>If any of the plugins or dfhack itself refuses to load, check the stderr.log
|
|
file created in your DF folder.</p>
|
|
</div>
|
|
<div class="section" id="using-dfhack">
|
|
<h1><a class="toc-backref" href="#id40">Using DFHack</a></h1>
|
|
<p>DFHack basically extends what DF can do with something similar to the drop-down
|
|
console found in Quake engine games. On Windows, this is a separate command line
|
|
window. On linux, the terminal used to launch the dfhack script is taken over
|
|
(so, make sure you start from a terminal). Basic interaction with dfhack
|
|
involves entering commands into the console. For some basic instroduction,
|
|
use the 'help' command. To list all possible commands, use the 'ls' command.
|
|
Many commands have their own help or detailed description. You can use
|
|
'command help' or 'command ?' to show that.</p>
|
|
<p>The command line has some nice line editing capabilities, including history
|
|
that's preserved between different runs of DF (use up/down keys to go through
|
|
the history).</p>
|
|
<p>The second way to interact with DFHack is to bind the available commands
|
|
to in-game hotkeys. The old way to do this is via the hotkey/zoom menu (normally
|
|
opened with the 'h' key). Binding the commands is done by assigning a command as
|
|
a hotkey name (with 'n').</p>
|
|
<p>A new and more flexible way is the keybinding command in the dfhack console.
|
|
However, bindings created this way are not automatically remembered between runs
|
|
of the game, so it becomes necessary to use the dfhack.init file to ensure that
|
|
they are re-created every time it is loaded.</p>
|
|
<p>Interactive commands like 'liquids' cannot be used as hotkeys.</p>
|
|
<p>Most of the commands come from plugins. Those reside in 'hack/plugins/'.</p>
|
|
</div>
|
|
<div class="section" id="something-doesn-t-work-help">
|
|
<h1><a class="toc-backref" href="#id41">Something doesn't work, help!</a></h1>
|
|
<p>First, don't panic :) Second, dfhack keeps a few log files in DF's folder
|
|
- stderr.log and stdout.log. You can look at those and possibly find out what's
|
|
happening.
|
|
If you found a bug, you can either report it in the bay12 DFHack thread,
|
|
the issues tracker on github, contact me (<a class="reference external" href="mailto:peterix@gmail.com">peterix@gmail.com</a>) or visit the
|
|
#dfhack IRC channel on freenode.</p>
|
|
</div>
|
|
<div class="section" id="the-init-file">
|
|
<h1><a class="toc-backref" href="#id42">The init file</a></h1>
|
|
<p>If your DF folder contains a file named dfhack.init, its contents will be run
|
|
every time you start DF. This allows setting up keybindings. An example file
|
|
is provided as dfhack.init-example - you can tweak it and rename to dfhack.init
|
|
if you want to use this functionality.</p>
|
|
</div>
|
|
<div class="section" id="commands">
|
|
<h1><a class="toc-backref" href="#id43">Commands</a></h1>
|
|
<p>Almost all the commands support using the 'help <command-name>' built-in command
|
|
to retrieve further help without having to look at this document. Alternatively,
|
|
some accept a 'help'/'?' option on their command line.</p>
|
|
<div class="section" id="adv-bodyswap">
|
|
<h2><a class="toc-backref" href="#id44">adv-bodyswap</a></h2>
|
|
<p>This allows taking control over your followers and other creatures in adventure
|
|
mode. For example, you can make them pick up new arms and armor and equip them
|
|
properly.</p>
|
|
<div class="section" id="usage">
|
|
<h3><a class="toc-backref" href="#id45">Usage</a></h3>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>When viewing unit details, body-swaps into that unit.</li>
|
|
<li>In the main adventure mode screen, reverts transient swap.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="advtools">
|
|
<h2><a class="toc-backref" href="#id46">advtools</a></h2>
|
|
<p>A package of different adventure mode tools (currently just one)</p>
|
|
<div class="section" id="id1">
|
|
<h3><a class="toc-backref" href="#id47">Usage</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name" colspan="2">list-equipped [all]:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">List armor and weapons equipped by your companions.
|
|
If all is specified, also lists non-metal clothing.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">metal-detector [all-types] [non-trader]:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Reveal metal armor and weapons in
|
|
shops. The options disable the checks
|
|
on item type and being in shop.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="changelayer">
|
|
<h2><a class="toc-backref" href="#id48">changelayer</a></h2>
|
|
<p>Changes material of the geology layer under cursor to the specified inorganic
|
|
RAW material. Can have impact on all surrounding regions, not only your embark!
|
|
By default changing stone to soil and vice versa is not allowed. By default
|
|
changes only the layer at the cursor position. Note that one layer can stretch
|
|
across lots of z levels. By default changes only the geology which is linked
|
|
to the biome under the cursor. That geology might be linked to other biomes
|
|
as well, though. Mineral veins and gem clusters will stay on the map. Use
|
|
'changevein' for them.</p>
|
|
<p>tl;dr: You will end up with changing quite big areas in one go, especially if
|
|
you use it in lower z levels. Use with care.</p>
|
|
<div class="section" id="options">
|
|
<h3><a class="toc-backref" href="#id49">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all_biomes:</th><td class="field-body">Change selected layer for all biomes on your map.
|
|
Result may be undesirable since the same layer can AND WILL
|
|
be on different z-levels for different biomes. Use the tool
|
|
'probe' to get an idea how layers and biomes are distributed
|
|
on your map.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">all_layers:</th><td class="field-body">Change all layers on your map (only for the selected biome
|
|
unless 'all_biomes' is added).
|
|
Candy mountain, anyone? Will make your map quite boring,
|
|
but tidy.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">force:</th><td class="field-body">Allow changing stone to soil and vice versa. !!THIS CAN HAVE
|
|
WEIRD EFFECTS, USE WITH CARE!!
|
|
Note that soil will not be magically replaced with stone.
|
|
You will, however, get a stone floor after digging so it
|
|
will allow the floor to be engraved.
|
|
Note that stone will not be magically replaced with soil.
|
|
You will, however, get a soil floor after digging so it
|
|
could be helpful for creating farm plots on maps with no
|
|
soil.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">verbose:</th><td class="field-body">Give some details about what is being changed.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">trouble:</th><td class="field-body">Give some advice about known problems.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="examples">
|
|
<h3><a class="toc-backref" href="#id50">Examples:</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">changelayer GRANITE</tt></dt>
|
|
<dd>Convert layer at cursor position into granite.</dd>
|
|
<dt><tt class="docutils literal">changelayer SILTY_CLAY force</tt></dt>
|
|
<dd>Convert layer at cursor position into clay even if it's stone.</dd>
|
|
<dt><tt class="docutils literal">changelayer MARBLE all_biomes all_layers</tt></dt>
|
|
<dd>Convert all layers of all biomes which are not soil into marble.</dd>
|
|
</dl>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ul class="last simple">
|
|
<li>If you use changelayer and nothing happens, try to pause/unpause the game
|
|
for a while and try to move the cursor to another tile. Then try again.
|
|
If that doesn't help try temporarily changing some other layer, undo your
|
|
changes and try again for the layer you want to change. Saving
|
|
and reloading your map might also help.</li>
|
|
<li>You should be fine if you only change single layers without the use
|
|
of 'force'. Still it's advisable to save your game before messing with
|
|
the map.</li>
|
|
<li>When you force changelayer to convert soil to stone you might experience
|
|
weird stuff (flashing tiles, tiles changed all over place etc).
|
|
Try reverting the changes manually or even better use an older savegame.
|
|
You did save your game, right?</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="changevein">
|
|
<h2><a class="toc-backref" href="#id51">changevein</a></h2>
|
|
<p>Changes material of the vein under cursor to the specified inorganic RAW
|
|
material. Only affects tiles within the current 16x16 block - for veins and
|
|
large clusters, you will need to use this command multiple times.</p>
|
|
<div class="section" id="example">
|
|
<h3><a class="toc-backref" href="#id52">Example:</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">changevein NATIVE_PLATINUM</tt></dt>
|
|
<dd>Convert vein at cursor position into platinum ore.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="changeitem">
|
|
<h2><a class="toc-backref" href="#id53">changeitem</a></h2>
|
|
<p>Allows changing item material and base quality. By default the item currently
|
|
selected in the UI will be changed (you can select items in the 'k' list
|
|
or inside containers/inventory). By default change is only allowed if materials
|
|
is of the same subtype (for example wood<->wood, stone<->stone etc). But since
|
|
some transformations work pretty well and may be desired you can override this
|
|
with 'force'. Note that some attributes will not be touched, possibly resulting
|
|
in weirdness. To get an idea how the RAW id should look like, check some items
|
|
with 'info'. Using 'force' might create items which are not touched by
|
|
crafters/haulers.</p>
|
|
<div class="section" id="id2">
|
|
<h3><a class="toc-backref" href="#id54">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">info:</th><td class="field-body">Don't change anything, print some info instead.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">here:</th><td class="field-body">Change all items at the cursor position. Requires in-game cursor.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">material, m:</th><td class="field-body">Change material. Must be followed by valid material RAW id.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">quality, q:</th><td class="field-body">Change base quality. Must be followed by number (0-5).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">force:</th><td class="field-body">Ignore subtypes, force change to new material.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id3">
|
|
<h3><a class="toc-backref" href="#id55">Examples:</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">changeitem m INORGANIC:GRANITE here</tt></dt>
|
|
<dd>Change material of all items under the cursor to granite.</dd>
|
|
<dt><tt class="docutils literal">changeitem q 5</tt></dt>
|
|
<dd>Change currently selected item to masterpiece quality.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="cursecheck">
|
|
<h2><a class="toc-backref" href="#id56">cursecheck</a></h2>
|
|
<p>Checks a single map tile or the whole map/world for cursed creatures (ghosts,
|
|
vampires, necromancers, werebeasts, zombies).</p>
|
|
<p>With an active in-game cursor only the selected tile will be observed.
|
|
Without a cursor the whole map will be checked.</p>
|
|
<p>By default cursed creatures will be only counted in case you just want to find
|
|
out if you have any of them running around in your fort. Dead and passive
|
|
creatures (ghosts who were put to rest, killed vampires, ...) are ignored.
|
|
Undead skeletons, corpses, bodyparts and the like are all thrown into the curse
|
|
category "zombie". Anonymous zombies and resurrected body parts will show
|
|
as "unnamed creature".</p>
|
|
<div class="section" id="id4">
|
|
<h3><a class="toc-backref" href="#id57">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">detail:</th><td class="field-body">Print full name, date of birth, date of curse and some status
|
|
info (some vampires might use fake identities in-game, though).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">nick:</th><td class="field-body">Set the type of curse as nickname (does not always show up
|
|
in-game, some vamps don't like nicknames).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">Include dead and passive cursed creatures (can result in a quite
|
|
long list after having FUN with necromancers).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">verbose:</th><td class="field-body">Print all curse tags (if you really want to know it all).</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id5">
|
|
<h3><a class="toc-backref" href="#id58">Examples:</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">cursecheck detail all</tt></dt>
|
|
<dd>Give detailed info about all cursed creatures including deceased ones (no
|
|
in-game cursor).</dd>
|
|
<dt><tt class="docutils literal">cursecheck nick</tt></dt>
|
|
<dd>Give a nickname all living/active cursed creatures on the map(no in-game
|
|
cursor).</dd>
|
|
</dl>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ul class="last simple">
|
|
<li>If you do a full search (with the option "all") former ghosts will show up
|
|
with the cursetype "unknown" because their ghostly flag is not set
|
|
anymore. But if you happen to find a living/active creature with cursetype
|
|
"unknown" please report that in the dfhack thread on the modding forum or
|
|
per irc. This is likely to happen with mods which introduce new types
|
|
of curses, for example.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="follow">
|
|
<h2><a class="toc-backref" href="#id59">follow</a></h2>
|
|
<p>Makes the game view follow the currently highlighted unit after you exit from
|
|
current menu/cursor mode. Handy for watching dwarves running around. Deactivated
|
|
by moving the view manually.</p>
|
|
</div>
|
|
<div class="section" id="forcepause">
|
|
<h2><a class="toc-backref" href="#id60">forcepause</a></h2>
|
|
<p>Forces DF to pause. This is useful when your FPS drops below 1 and you lose
|
|
control of the game.</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>Activate with 'forcepause 1'</li>
|
|
<li>Deactivate with 'forcepause 0'</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
<div class="section" id="nopause">
|
|
<h2><a class="toc-backref" href="#id61">nopause</a></h2>
|
|
<p>Disables pausing (both manual and automatic) with the exception of pause forced
|
|
by 'reveal hell'. This is nice for digging under rivers.</p>
|
|
</div>
|
|
<div class="section" id="die">
|
|
<h2><a class="toc-backref" href="#id62">die</a></h2>
|
|
<p>Instantly kills DF without saving.</p>
|
|
</div>
|
|
<div class="section" id="autodump">
|
|
<h2><a class="toc-backref" href="#id63">autodump</a></h2>
|
|
<p>This utility lets you quickly move all items designated to be dumped.
|
|
Items are instantly moved to the cursor position, the dump flag is unset,
|
|
and the forbid flag is set, as if it had been dumped normally.
|
|
Be aware that any active dump item tasks still point at the item.</p>
|
|
<p>Cursor must be placed on a floor tile so the items can be dumped there.</p>
|
|
<div class="section" id="id6">
|
|
<h3><a class="toc-backref" href="#id64">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">destroy:</th><td class="field-body">Destroy instead of dumping. Doesn't require a cursor.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">destroy-here:</th><td class="field-body">Destroy items only under the cursor.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">visible:</th><td class="field-body">Only process items that are not hidden.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">hidden:</th><td class="field-body">Only process hidden items.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">forbidden:</th><td class="field-body">Only process forbidden items (default: only unforbidden).</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="autodump-destroy-here">
|
|
<h2><a class="toc-backref" href="#id65">autodump-destroy-here</a></h2>
|
|
<p>Destroy items marked for dumping under cursor. Identical to autodump
|
|
destroy-here, but intended for use as keybinding.</p>
|
|
</div>
|
|
<div class="section" id="autodump-destroy-item">
|
|
<h2><a class="toc-backref" href="#id66">autodump-destroy-item</a></h2>
|
|
<p>Destroy the selected item. The item may be selected in the 'k' list, or inside
|
|
a container. If called again before the game is resumed, cancels destroy.</p>
|
|
</div>
|
|
<div class="section" id="burrow">
|
|
<h2><a class="toc-backref" href="#id67">burrow</a></h2>
|
|
<p>Miscellaneous burrow control. Allows manipulating burrows and automated burrow
|
|
expansion while digging.</p>
|
|
<div class="section" id="id7">
|
|
<h3><a class="toc-backref" href="#id68">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name" colspan="2">enable feature ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">disable feature ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Enable or Disable features of the plugin.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">clear-unit burrow burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">clear-tiles burrow burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Removes all units or tiles from the burrows.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">set-units target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">add-units target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">remove-units target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Adds or removes units in source
|
|
burrows to/from the target burrow. Set is equivalent to clear and add.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">set-tiles target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">add-tiles target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body"></td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">remove-tiles target-burrow src-burrow ...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Adds or removes tiles in source
|
|
burrows to/from the target burrow. In place of a source burrow it is
|
|
possible to use one of the following keywords: ABOVE_GROUND,
|
|
SUBTERRANEAN, INSIDE, OUTSIDE, LIGHT, DARK, HIDDEN, REVEALED</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="features">
|
|
<h3><a class="toc-backref" href="#id69">Features</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">auto-grow:</th><td class="field-body">When a wall inside a burrow with a name ending in '+' is dug
|
|
out, the burrow is extended to newly-revealed adjacent walls.
|
|
This final '+' may be omitted in burrow name args of commands above.
|
|
Digging 1-wide corridors with the miner inside the burrow is SLOW.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="catsplosion">
|
|
<h2><a class="toc-backref" href="#id70">catsplosion</a></h2>
|
|
<p>Makes cats just <em>multiply</em>. It is not a good idea to run this more than once or
|
|
twice.</p>
|
|
</div>
|
|
<div class="section" id="clean">
|
|
<h2><a class="toc-backref" href="#id71">clean</a></h2>
|
|
<p>Cleans all the splatter that get scattered all over the map, items and
|
|
creatures. In an old fortress, this can significantly reduce FPS lag. It can
|
|
also spoil your !!FUN!!, so think before you use it.</p>
|
|
<div class="section" id="id8">
|
|
<h3><a class="toc-backref" href="#id72">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">map:</th><td class="field-body">Clean the map tiles. By default, it leaves mud and snow alone.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">units:</th><td class="field-body">Clean the creatures. Will also clean hostiles.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">items:</th><td class="field-body">Clean all the items. Even a poisoned blade.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="extra-options-for-map">
|
|
<h3><a class="toc-backref" href="#id73">Extra options for 'map'</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">mud:</th><td class="field-body">Remove mud in addition to the normal stuff.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">snow:</th><td class="field-body">Also remove snow coverings.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="spotclean">
|
|
<h2><a class="toc-backref" href="#id74">spotclean</a></h2>
|
|
<p>Works like 'clean map snow mud', but only for the tile under the cursor. Ideal
|
|
if you want to keep that bloody entrance 'clean map' would clean up.</p>
|
|
</div>
|
|
<div class="section" id="cleanowned">
|
|
<h2><a class="toc-backref" href="#id75">cleanowned</a></h2>
|
|
<p>Confiscates items owned by dwarfs. By default, owned food on the floor
|
|
and rotten items are confistacted and dumped.</p>
|
|
<div class="section" id="id9">
|
|
<h3><a class="toc-backref" href="#id76">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">confiscate all owned items</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">scattered:</th><td class="field-body">confiscated and dump all items scattered on the floor</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">x:</th><td class="field-body">confiscate/dump items with wear level 'x' and more</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">X:</th><td class="field-body">confiscate/dump items with wear level 'X' and more</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">dryrun:</th><td class="field-body">a dry run. combine with other options to see what will happen
|
|
without it actually happening.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id10">
|
|
<h3><a class="toc-backref" href="#id77">Example:</a></h3>
|
|
<p><tt class="docutils literal">cleanowned scattered X</tt> : This will confiscate rotten and dropped food, garbage on the floors and any worn items with 'X' damage and above.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="colonies">
|
|
<h2><a class="toc-backref" href="#id78">colonies</a></h2>
|
|
<p>Allows listing all the vermin colonies on the map and optionally turning them into honey bee colonies.</p>
|
|
<div class="section" id="id11">
|
|
<h3><a class="toc-backref" href="#id79">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">bees:</th><td class="field-body">turn colonies into honey bee colonies</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="deramp-by-zilpin">
|
|
<h2><a class="toc-backref" href="#id80">deramp (by zilpin)</a></h2>
|
|
<p>Removes all ramps designated for removal from the map. This is useful for replicating the old channel digging designation.
|
|
It also removes any and all 'down ramps' that can remain after a cave-in (you don't have to designate anything for that to happen).</p>
|
|
</div>
|
|
<div class="section" id="dfusion">
|
|
<h2><a class="toc-backref" href="#id81">dfusion</a></h2>
|
|
<p>This is the DFusion lua plugin system by warmist/darius, running as a DFHack plugin.</p>
|
|
<p>See the bay12 thread for details: <a class="reference external" href="http://www.bay12forums.com/smf/index.php?topic=69682.15">http://www.bay12forums.com/smf/index.php?topic=69682.15</a></p>
|
|
<div class="section" id="confirmed-working-dfusion-plugins">
|
|
<h3><a class="toc-backref" href="#id82">Confirmed working DFusion plugins:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">simple_embark:</th><td class="field-body">allows changing the number of dwarves available on embark.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ul class="last simple">
|
|
<li>Some of the DFusion plugins aren't completely ported yet. This can lead to crashes.</li>
|
|
<li>This is currently working only on Windows.</li>
|
|
<li>The game will be suspended while you're using dfusion. Don't panic when it doen't respond.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="drybuckets">
|
|
<h2><a class="toc-backref" href="#id83">drybuckets</a></h2>
|
|
<p>This utility removes water from all buckets in your fortress, allowing them to be safely used for making lye.</p>
|
|
</div>
|
|
<div class="section" id="fastdwarf">
|
|
<h2><a class="toc-backref" href="#id84">fastdwarf</a></h2>
|
|
<p>Makes your minions move at ludicrous speeds.</p>
|
|
<blockquote>
|
|
<ul class="simple">
|
|
<li>Activate with 'fastdwarf 1'</li>
|
|
<li>Deactivate with 'fastdwarf 0'</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
<div class="section" id="feature">
|
|
<h2><a class="toc-backref" href="#id85">feature</a></h2>
|
|
<p>Enables management of map features.</p>
|
|
<ul class="simple">
|
|
<li>Discovering a magma feature (magma pool, volcano, magma sea, or curious
|
|
underground structure) permits magma workshops and furnaces to be built.</li>
|
|
<li>Discovering a cavern layer causes plants (trees, shrubs, and grass) from
|
|
that cavern to grow within your fortress.</li>
|
|
</ul>
|
|
<div class="section" id="id12">
|
|
<h3><a class="toc-backref" href="#id86">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">list:</th><td class="field-body">Lists all map features in your current embark by index.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">show X:</th><td class="field-body">Marks the selected map feature as discovered.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">hide X:</th><td class="field-body">Marks the selected map feature as undiscovered.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="filltraffic">
|
|
<h2><a class="toc-backref" href="#id87">filltraffic</a></h2>
|
|
<p>Set traffic designations using flood-fill starting at the cursor.</p>
|
|
<div class="section" id="traffic-type-codes">
|
|
<h3><a class="toc-backref" href="#id88">Traffic Type Codes:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">H:</th><td class="field-body">High Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">N:</th><td class="field-body">Normal Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">L:</th><td class="field-body">Low Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">R:</th><td class="field-body">Restricted Traffic</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="other-options">
|
|
<h3><a class="toc-backref" href="#id89">Other Options:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">X:</th><td class="field-body">Fill accross z-levels.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">B:</th><td class="field-body">Include buildings and stockpiles.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">P:</th><td class="field-body">Include empty space.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id13">
|
|
<h3><a class="toc-backref" href="#id90">Example:</a></h3>
|
|
<p>'filltraffic H' - When used in a room with doors, it will set traffic to HIGH in just that room.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="alltraffic">
|
|
<h2><a class="toc-backref" href="#id91">alltraffic</a></h2>
|
|
<p>Set traffic designations for every single tile of the map (useful for resetting traffic designations).</p>
|
|
<div class="section" id="id14">
|
|
<h3><a class="toc-backref" href="#id92">Traffic Type Codes:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">H:</th><td class="field-body">High Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">N:</th><td class="field-body">Normal Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">L:</th><td class="field-body">Low Traffic</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">R:</th><td class="field-body">Restricted Traffic</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id15">
|
|
<h3><a class="toc-backref" href="#id93">Example:</a></h3>
|
|
<p>'alltraffic N' - Set traffic to 'normal' for all tiles.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="fixdiplomats">
|
|
<h2><a class="toc-backref" href="#id94">fixdiplomats</a></h2>
|
|
<p>Up to version 0.31.12, Elves only sent Diplomats to your fortress to propose
|
|
tree cutting quotas due to a bug; once that bug was fixed, Elves stopped caring
|
|
about excess tree cutting. This command adds a Diplomat position to all Elven
|
|
civilizations, allowing them to negotiate tree cutting quotas (and allowing you
|
|
to violate them and potentially start wars) in case you haven't already modified
|
|
your raws accordingly.</p>
|
|
</div>
|
|
<div class="section" id="fixmerchants">
|
|
<h2><a class="toc-backref" href="#id95">fixmerchants</a></h2>
|
|
<p>This command adds the Guild Representative position to all Human civilizations,
|
|
allowing them to make trade agreements (just as they did back in 0.28.181.40d
|
|
and earlier) in case you haven't already modified your raws accordingly.</p>
|
|
</div>
|
|
<div class="section" id="fixveins">
|
|
<h2><a class="toc-backref" href="#id96">fixveins</a></h2>
|
|
<p>Removes invalid references to mineral inclusions and restores missing ones.
|
|
Use this if you broke your embark with tools like tiletypes, or if you
|
|
accidentally placed a construction on top of a valuable mineral floor.</p>
|
|
</div>
|
|
<div class="section" id="flows">
|
|
<h2><a class="toc-backref" href="#id97">flows</a></h2>
|
|
<p>A tool for checking how many tiles contain flowing liquids. If you suspect that
|
|
your magma sea leaks into HFS, you can use this tool to be sure without
|
|
revealing the map.</p>
|
|
</div>
|
|
<div class="section" id="getplants">
|
|
<h2><a class="toc-backref" href="#id98">getplants</a></h2>
|
|
<p>This tool allows plant gathering and tree cutting by RAW ID. Specify the types
|
|
of trees to cut down and/or shrubs to gather by their plant names, separated
|
|
by spaces.</p>
|
|
<div class="section" id="id16">
|
|
<h3><a class="toc-backref" href="#id99">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">-t:</th><td class="field-body">Select trees only (exclude shrubs)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">-s:</th><td class="field-body">Select shrubs only (exclude trees)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">-c:</th><td class="field-body">Clear designations instead of setting them</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">-x:</th><td class="field-body">Apply selected action to all plants except those specified (invert
|
|
selection)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Specifying both -t and -s will have no effect. If no plant IDs are specified,
|
|
all valid plant IDs will be listed.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="tidlers">
|
|
<h2><a class="toc-backref" href="#id100">tidlers</a></h2>
|
|
<p>Toggle between all possible positions where the idlers count can be placed.</p>
|
|
</div>
|
|
<div class="section" id="twaterlvl">
|
|
<h2><a class="toc-backref" href="#id101">twaterlvl</a></h2>
|
|
<p>Toggle between displaying/not displaying liquid depth as numbers.</p>
|
|
</div>
|
|
<div class="section" id="job">
|
|
<h2><a class="toc-backref" href="#id102">job</a></h2>
|
|
<p>Command for general job query and manipulation.</p>
|
|
<dl class="docutils">
|
|
<dt>Options:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>no extra options - Print details of the current job. The job can be selected
|
|
in a workshop, or the unit/jobs screen.</li>
|
|
<li>list - Print details of all jobs in the selected workshop.</li>
|
|
<li>item-material <item-idx> <material[:subtoken]> - Replace the exact material
|
|
id in the job item.</li>
|
|
<li>item-type <item-idx> <type[:subtype]> - Replace the exact item type id in
|
|
the job item.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="job-material">
|
|
<h2><a class="toc-backref" href="#id103">job-material</a></h2>
|
|
<p>Alter the material of the selected job.</p>
|
|
<p>Invoked as: job-material <inorganic-token></p>
|
|
<dl class="docutils">
|
|
<dt>Intended to be used as a keybinding:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>In 'q' mode, when a job is highlighted within a workshop or furnace,
|
|
changes the material of the job. Only inorganic materials can be used
|
|
in this mode.</li>
|
|
<li>In 'b' mode, during selection of building components positions the cursor
|
|
over the first available choice with the matching material.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="job-duplicate">
|
|
<h2><a class="toc-backref" href="#id104">job-duplicate</a></h2>
|
|
<dl class="docutils">
|
|
<dt>Duplicate the selected job in a workshop:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>In 'q' mode, when a job is highlighted within a workshop or furnace building,
|
|
instantly duplicates the job.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="keybinding">
|
|
<h2><a class="toc-backref" href="#id105">keybinding</a></h2>
|
|
<p>Manages DFHack keybindings.</p>
|
|
<p>Currently it supports any combination of Ctrl/Alt/Shift with F1-F9, or A-Z.</p>
|
|
<div class="section" id="id17">
|
|
<h3><a class="toc-backref" href="#id106">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name" colspan="2">keybinding list <key>:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">List bindings active for the key combination.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">keybinding clear <key> <key>...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Remove bindings for the specified keys.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">keybinding add <key> "cmdline" "cmdline"...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Add bindings for the specified
|
|
key.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">keybinding set <key> "cmdline" "cmdline"...:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Clear, and then add bindings for
|
|
the specified key.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>When multiple commands are bound to the same key combination, DFHack selects
|
|
the first applicable one. Later 'add' commands, and earlier entries within one
|
|
'add' command have priority. Commands that are not specifically intended for use
|
|
as a hotkey are always considered applicable.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="liquids">
|
|
<h2><a class="toc-backref" href="#id107">liquids</a></h2>
|
|
<p>Allows adding magma, water and obsidian to the game. It replaces the normal
|
|
dfhack command line and can't be used from a hotkey. Settings will be remembered
|
|
as long as dfhack runs. Intended for use in combination with the command
|
|
liquids-here (which can be bound to a hotkey).</p>
|
|
<p>For more information, refer to the command's internal help.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Spawning and deleting liquids can F up pathing data and
|
|
temperatures (creating heat traps). You've been warned.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="liquids-here">
|
|
<h2><a class="toc-backref" href="#id108">liquids-here</a></h2>
|
|
<p>Run the liquid spawner with the current/last settings made in liquids (if no
|
|
settings in liquids were made it paints a point of 7/7 magma by default).</p>
|
|
<p>Intended to be used as keybinding. Requires an active in-game cursor.</p>
|
|
</div>
|
|
<div class="section" id="mode">
|
|
<h2><a class="toc-backref" href="#id109">mode</a></h2>
|
|
<p>This command lets you see and change the game mode directly.
|
|
Not all combinations are good for every situation and most of them will
|
|
produce undesirable results. There are a few good ones though.</p>
|
|
<div class="admonition-example admonition">
|
|
<p class="first admonition-title">Example</p>
|
|
<p class="last">You are in fort game mode, managing your fortress and paused.
|
|
You switch to the arena game mode, <em>assume control of a creature</em> and then
|
|
switch to adventure game mode(1).
|
|
You just lost a fortress and gained an adventurer.
|
|
You could also do this.
|
|
You are in fort game mode, managing your fortress and paused at the esc menu.
|
|
You switch to the adventure game mode, then use Dfusion to <em>assume control of a creature</em> and then
|
|
save or retire.
|
|
You just created a returnable mountain home and gained an adventurer.</p>
|
|
</div>
|
|
<p>I take no responsibility of anything that happens as a result of using this tool</p>
|
|
</div>
|
|
<div class="section" id="extirpate">
|
|
<h2><a class="toc-backref" href="#id110">extirpate</a></h2>
|
|
<p>A tool for getting rid of trees and shrubs. By default, it only kills
|
|
a tree/shrub under the cursor. The plants are turned into ashes instantly.</p>
|
|
<div class="section" id="id18">
|
|
<h3><a class="toc-backref" href="#id111">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">shrubs:</th><td class="field-body">affect all shrubs on the map</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">trees:</th><td class="field-body">affect all trees on the map</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">affect every plant!</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="grow">
|
|
<h2><a class="toc-backref" href="#id112">grow</a></h2>
|
|
<p>Makes all saplings present on the map grow into trees (almost) instantly.</p>
|
|
</div>
|
|
<div class="section" id="immolate">
|
|
<h2><a class="toc-backref" href="#id113">immolate</a></h2>
|
|
<p>Very similar to extirpate, but additionally sets the plants on fire. The fires
|
|
can and <em>will</em> spread ;)</p>
|
|
</div>
|
|
<div class="section" id="probe">
|
|
<h2><a class="toc-backref" href="#id114">probe</a></h2>
|
|
<p>Can be used to determine tile properties like temperature.</p>
|
|
</div>
|
|
<div class="section" id="prospect">
|
|
<h2><a class="toc-backref" href="#id115">prospect</a></h2>
|
|
<p>Prints a big list of all the present minerals and plants. By default, only
|
|
the visible part of the map is scanned.</p>
|
|
<div class="section" id="id19">
|
|
<h3><a class="toc-backref" href="#id116">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">Scan the whole map, as if it was revealed.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">value:</th><td class="field-body">Show material value in the output. Most useful for gems.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">hell:</th><td class="field-body">Show the Z range of HFS tubes. Implies 'all'.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="pre-embark-estimate">
|
|
<h3><a class="toc-backref" href="#id117">Pre-embark estimate</a></h3>
|
|
<p>If called during the embark selection screen, displays an estimate of layer
|
|
stone availability. If the 'all' option is specified, also estimates veins.
|
|
The estimate is computed either for 1 embark tile of the blinking biome, or
|
|
for all tiles of the embark rectangle.</p>
|
|
</div>
|
|
<div class="section" id="id20">
|
|
<h3><a class="toc-backref" href="#id118">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">processes all tiles, even hidden ones.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="regrass">
|
|
<h2><a class="toc-backref" href="#id119">regrass</a></h2>
|
|
<p>Regrows grass. Not much to it ;)</p>
|
|
</div>
|
|
<div class="section" id="rename">
|
|
<h2><a class="toc-backref" href="#id120">rename</a></h2>
|
|
<p>Allows renaming various things.</p>
|
|
<div class="section" id="id21">
|
|
<h3><a class="toc-backref" href="#id121">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name" colspan="2">rename squad <index> "name":</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Rename squad by index to 'name'.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">rename hotkey <index> "name":</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Rename hotkey by index. This allows assigning
|
|
longer commands to the DF hotkeys.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">rename unit "nickname":</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Rename a unit/creature highlighted in the DF user
|
|
interface.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">rename unit-profession "custom profession":</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Change proffession name of the
|
|
highlighted unit/creature.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">rename building "name":</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Set a custom name for the selected building.
|
|
The building must be one of stockpile, workshop, furnace, trap,
|
|
siege engine or an activity zone.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="reveal">
|
|
<h2><a class="toc-backref" href="#id122">reveal</a></h2>
|
|
<p>This reveals the map. By default, HFS will remain hidden so that the demons
|
|
don't spawn. You can use 'reveal hell' to reveal everything. With hell revealed,
|
|
you won't be able to unpause until you hide the map again. If you really want
|
|
to unpause with hell revealed, use 'reveal demons'.</p>
|
|
<p>Reveal also works in adventure mode, but any of its effects are negated once
|
|
you move. When you use it this way, you don't need to run 'unreveal'.</p>
|
|
</div>
|
|
<div class="section" id="unreveal">
|
|
<h2><a class="toc-backref" href="#id123">unreveal</a></h2>
|
|
<p>Reverts the effects of 'reveal'.</p>
|
|
</div>
|
|
<div class="section" id="revtoggle">
|
|
<h2><a class="toc-backref" href="#id124">revtoggle</a></h2>
|
|
<p>Switches between 'reveal' and 'unreveal'.</p>
|
|
</div>
|
|
<div class="section" id="revflood">
|
|
<h2><a class="toc-backref" href="#id125">revflood</a></h2>
|
|
<p>This command will hide the whole map and then reveal all the tiles that have
|
|
a path to the in-game cursor.</p>
|
|
</div>
|
|
<div class="section" id="revforget">
|
|
<h2><a class="toc-backref" href="#id126">revforget</a></h2>
|
|
<p>When you use reveal, it saves information about what was/wasn't visible before
|
|
revealing everything. Unreveal uses this information to hide things again.
|
|
This command throws away the information. For example, use in cases where
|
|
you abandoned with the fort revealed and no longer want the data.</p>
|
|
</div>
|
|
<div class="section" id="lair">
|
|
<h2><a class="toc-backref" href="#id127">lair</a></h2>
|
|
<p>This command allows you to mark the map as 'monster lair', preventing item
|
|
scatter on abandon. When invoked as 'lair reset', it does the opposite.</p>
|
|
<p>Unlike reveal, this command doesn't save the information about tiles - you
|
|
won't be able to restore state of real monster lairs using 'lair reset'.</p>
|
|
<div class="section" id="id22">
|
|
<h3><a class="toc-backref" href="#id128">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">lair:</th><td class="field-body">Mark the map as monster lair</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">lair reset:</th><td class="field-body">Mark the map as ordinary (not lair)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="seedwatch">
|
|
<h2><a class="toc-backref" href="#id129">seedwatch</a></h2>
|
|
<p>Tool for turning cooking of seeds and plants on/off depending on how much you
|
|
have of them.</p>
|
|
<p>See 'seedwatch help' for detailed description.</p>
|
|
</div>
|
|
<div class="section" id="showmood">
|
|
<h2><a class="toc-backref" href="#id130">showmood</a></h2>
|
|
<p>Shows all items needed for the currently active strange mood.</p>
|
|
</div>
|
|
<div class="section" id="copystock">
|
|
<h2><a class="toc-backref" href="#id131">copystock</a></h2>
|
|
<p>Copies the parameters of the currently highlighted stockpile to the custom
|
|
stockpile settings and switches to custom stockpile placement mode, effectively
|
|
allowing you to copy/paste stockpiles easily.</p>
|
|
</div>
|
|
<div class="section" id="ssense-stonesense">
|
|
<h2><a class="toc-backref" href="#id132">ssense / stonesense</a></h2>
|
|
<p>An isometric visualizer that runs in a second window. This requires working
|
|
graphics acceleration and at least a dual core CPU (otherwise it will slow
|
|
down DF).</p>
|
|
<p>All the data resides in the 'stonesense' directory. For detailed instructions,
|
|
see stonesense/README.txt</p>
|
|
<p>Compatible with Windows > XP SP3 and most modern Linux distributions.</p>
|
|
<p>Older versions, support and extra graphics can be found in the bay12 forum
|
|
thread: <a class="reference external" href="http://www.bay12forums.com/smf/index.php?topic=43260.0">http://www.bay12forums.com/smf/index.php?topic=43260.0</a></p>
|
|
<p>Some additional resources:
|
|
<a class="reference external" href="http://df.magmawiki.com/index.php/Utility:Stonesense/Content_repository">http://df.magmawiki.com/index.php/Utility:Stonesense/Content_repository</a></p>
|
|
</div>
|
|
<div class="section" id="tiletypes">
|
|
<h2><a class="toc-backref" href="#id133">tiletypes</a></h2>
|
|
<p>Can be used for painting map tiles and is an interactive command, much like
|
|
liquids.</p>
|
|
<p>The tool works with two set of options and a brush. The brush determines which
|
|
tiles will be processed. First set of options is the filter, which can exclude
|
|
some of the tiles from the brush by looking at the tile properties. The second
|
|
set of options is the paint - this determines how the selected tiles are
|
|
changed.</p>
|
|
<p>Both paint and filter can have many different properties including things like
|
|
general shape (WALL, FLOOR, etc.), general material (SOIL, STONE, MINERAL,
|
|
etc.), state of 'designated', 'hidden' and 'light' flags.</p>
|
|
<p>The properties of filter and paint can be partially defined. This means that
|
|
you can for example do something like this:</p>
|
|
<pre class="literal-block">
|
|
filter material STONE
|
|
filter shape FORTIFICATION
|
|
paint shape FLOOR
|
|
</pre>
|
|
<p>This will turn all stone fortifications into floors, preserving the material.</p>
|
|
<p>Or this:</p>
|
|
<pre class="literal-block">
|
|
filter shape FLOOR
|
|
filter material MINERAL
|
|
paint shape WALL
|
|
</pre>
|
|
<p>Turning mineral vein floors back into walls.</p>
|
|
<p>The tool also allows tweaking some tile flags:</p>
|
|
<p>Or this:</p>
|
|
<pre class="literal-block">
|
|
paint hidden 1
|
|
paint hidden 0
|
|
</pre>
|
|
<p>This will hide previously revealed tiles (or show hidden with the 0 option).</p>
|
|
<p>Any paint or filter option (or the entire paint or filter) can be disabled entirely by using the ANY keyword:</p>
|
|
<pre class="literal-block">
|
|
paint hidden ANY
|
|
paint shape ANY
|
|
filter material any
|
|
filter shape any
|
|
filter any
|
|
</pre>
|
|
<dl class="docutils">
|
|
<dt>You can use several different brushes for painting tiles:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>Point. (point)</li>
|
|
<li>Rectangular range. (range)</li>
|
|
<li>A column ranging from current cursor to the first solid tile above. (column)</li>
|
|
<li>DF map block - 16x16 tiles, in a regular grid. (block)</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p>Example:</p>
|
|
<pre class="literal-block">
|
|
range 10 10 1
|
|
</pre>
|
|
<p>This will change the brush to a rectangle spanning 10x10 tiles on one z-level.
|
|
The range starts at the position of the cursor and goes to the east, south and
|
|
up.</p>
|
|
<p>For more details, see the 'help' command while using this.</p>
|
|
</div>
|
|
<div class="section" id="tiletypes-commands">
|
|
<h2><a class="toc-backref" href="#id134">tiletypes-commands</a></h2>
|
|
<p>Runs tiletypes commands, separated by ;. This makes it possible to change
|
|
tiletypes modes from a hotkey.</p>
|
|
</div>
|
|
<div class="section" id="tiletypes-here">
|
|
<h2><a class="toc-backref" href="#id135">tiletypes-here</a></h2>
|
|
<p>Apply the current tiletypes options at the in-game cursor position, including
|
|
the brush. Can be used from a hotkey.</p>
|
|
</div>
|
|
<div class="section" id="tiletypes-here-point">
|
|
<h2><a class="toc-backref" href="#id136">tiletypes-here-point</a></h2>
|
|
<p>Apply the current tiletypes options at the in-game cursor position to a single
|
|
tile. Can be used from a hotkey.</p>
|
|
</div>
|
|
<div class="section" id="tweak">
|
|
<h2><a class="toc-backref" href="#id137">tweak</a></h2>
|
|
<p>Contains various tweaks for minor bugs (currently just one).</p>
|
|
<div class="section" id="id23">
|
|
<h3><a class="toc-backref" href="#id138">Options</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">clear-missing:</th><td class="field-body">Remove the missing status from the selected unit.
|
|
This allows engraving slabs for ghostly, but not yet
|
|
found, creatures.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">clear-ghostly:</th><td class="field-body">Remove the ghostly status from the selected unit and mark
|
|
it as dead. This allows getting rid of bugged ghosts
|
|
which do not show up in the engraving slab menu at all,
|
|
even after using clear-missing. It works, but is
|
|
potentially very dangerous - so use with care. Probably
|
|
(almost certainly) it does not have the same effects like
|
|
a proper burial. You've been warned.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">fixmigrant:</th><td class="field-body">Remove the resident/merchant flag from the selected unit.
|
|
Intended to fix bugged migrants/traders who stay at the
|
|
map edge and don't enter your fort. Only works for
|
|
dwarves (or generally the player's race in modded games).
|
|
Do NOT abuse this for 'real' caravan merchants (if you
|
|
really want to kidnap them, use 'tweak makeown' instead,
|
|
otherwise they will have their clothes set to forbidden etc).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">makeown:</th><td class="field-body">Force selected unit to become a member of your fort.
|
|
Can be abused to grab caravan merchants and escorts, even if
|
|
they don't belong to the player's race. Foreign sentients
|
|
(humans, elves) can be put to work, but you can't assign rooms
|
|
to them and they don't show up in DwarfTherapist because the
|
|
game treats them like pets. Grabbing draft animals from
|
|
a caravan can result in weirdness (animals go insane or berserk
|
|
and are not flagged as tame), but you are allowed to mark them
|
|
for slaughter. Grabbing wagons results in some funny spam, then
|
|
they are scuttled.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">stable-cursor:</th><td class="field-body">Saves the exact cursor position between t/q/k/d/etc menus of dwarfmode.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">patrol-duty:</th><td class="field-body">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).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">readable-build-plate:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Fixes rendering of creature weight limits in pressure plate build menu.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">stable-temp:</th><td class="field-body">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%</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">fast-heat:</th><td class="field-body">Further improves temperature update performance by ensuring that 1 degree
|
|
of item temperature is crossed in no more than specified number of frames
|
|
when updating from the environment temperature. This reduces the time it
|
|
takes for stable-temp to stop updates again when equilibrium is disturbed.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">fix-dimensions:</th><td class="field-body">Fixes subtracting small amount of thread/cloth/liquid from a stack
|
|
by splitting the stack and subtracting from the remaining single item.
|
|
This is a necessary addition to the binary patch in bug 808.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">advmode-contained:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Works around bug 6202, i.e. custom reactions with container inputs
|
|
in advmode. The issue is that the screen tries to force you to select
|
|
the contents separately from the container. This forcefully skips child
|
|
reagents.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="tubefill">
|
|
<h2><a class="toc-backref" href="#id139">tubefill</a></h2>
|
|
<p>Fills all the adamantine veins again. Veins that were empty will be filled in
|
|
too, but might still trigger a demon invasion (this is a known bug).</p>
|
|
</div>
|
|
<div class="section" id="digv">
|
|
<h2><a class="toc-backref" href="#id140">digv</a></h2>
|
|
<p>Designates a whole vein for digging. Requires an active in-game cursor placed
|
|
over a vein tile. With the 'x' option, it will traverse z-levels (putting stairs
|
|
between the same-material tiles).</p>
|
|
</div>
|
|
<div class="section" id="digvx">
|
|
<h2><a class="toc-backref" href="#id141">digvx</a></h2>
|
|
<p>A permanent alias for 'digv x'.</p>
|
|
</div>
|
|
<div class="section" id="digl">
|
|
<h2><a class="toc-backref" href="#id142">digl</a></h2>
|
|
<p>Designates layer stone for digging. Requires an active in-game cursor placed
|
|
over a layer stone tile. With the 'x' option, it will traverse z-levels
|
|
(putting stairs between the same-material tiles). With the 'undo' option it
|
|
will remove the dig designation instead (if you realize that digging out a 50
|
|
z-level deep layer was not such a good idea after all).</p>
|
|
</div>
|
|
<div class="section" id="diglx">
|
|
<h2><a class="toc-backref" href="#id143">diglx</a></h2>
|
|
<p>A permanent alias for 'digl x'.</p>
|
|
</div>
|
|
<div class="section" id="digexp">
|
|
<h2><a class="toc-backref" href="#id144">digexp</a></h2>
|
|
<p>This command can be used for exploratory mining.</p>
|
|
<p>See: <a class="reference external" href="http://df.magmawiki.com/index.php/DF2010:Exploratory_mining">http://df.magmawiki.com/index.php/DF2010:Exploratory_mining</a></p>
|
|
<p>There are two variables that can be set: pattern and filter.</p>
|
|
<div class="section" id="patterns">
|
|
<h3><a class="toc-backref" href="#id145">Patterns:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">diag5:</th><td class="field-body">diagonals separated by 5 tiles</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">diag5r:</th><td class="field-body">diag5 rotated 90 degrees</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">ladder:</th><td class="field-body">A 'ladder' pattern</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">ladderr:</th><td class="field-body">ladder rotated 90 degrees</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">clear:</th><td class="field-body">Just remove all dig designations</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">cross:</th><td class="field-body">A cross, exactly in the middle of the map.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="filters">
|
|
<h3><a class="toc-backref" href="#id146">Filters:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">designate whole z-level</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">hidden:</th><td class="field-body">designate only hidden tiles of z-level (default)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">designated:</th><td class="field-body">Take current designation and apply pattern to it.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>After you have a pattern set, you can use 'expdig' to apply it again.</p>
|
|
</div>
|
|
<div class="section" id="id24">
|
|
<h3><a class="toc-backref" href="#id147">Examples:</a></h3>
|
|
<dl class="docutils">
|
|
<dt>designate the diagonal 5 patter over all hidden tiles:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>expdig diag5 hidden</li>
|
|
</ul>
|
|
</dd>
|
|
<dt>apply last used pattern and filter:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>expdig</li>
|
|
</ul>
|
|
</dd>
|
|
<dt>Take current designations and replace them with the ladder pattern:</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>expdig ladder designated</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="digcircle">
|
|
<h2><a class="toc-backref" href="#id148">digcircle</a></h2>
|
|
<p>A command for easy designation of filled and hollow circles.
|
|
It has several types of options.</p>
|
|
<div class="section" id="shape">
|
|
<h3><a class="toc-backref" href="#id149">Shape:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">hollow:</th><td class="field-body">Set the circle to hollow (default)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">filled:</th><td class="field-body">Set the circle to filled</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">#:</th><td class="field-body">Diameter in tiles (default = 0, does nothing)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="action">
|
|
<h3><a class="toc-backref" href="#id150">Action:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">set:</th><td class="field-body">Set designation (default)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">unset:</th><td class="field-body">Unset current designation</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">invert:</th><td class="field-body">Invert designations already present</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="designation-types">
|
|
<h3><a class="toc-backref" href="#id151">Designation types:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">dig:</th><td class="field-body">Normal digging designation (default)</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">ramp:</th><td class="field-body">Ramp digging</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">ustair:</th><td class="field-body">Staircase up</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">dstair:</th><td class="field-body">Staircase down</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">xstair:</th><td class="field-body">Staircase up/down</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">chan:</th><td class="field-body">Dig channel</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>After you have set the options, the command called with no options
|
|
repeats with the last selected parameters.</p>
|
|
</div>
|
|
<div class="section" id="id25">
|
|
<h3><a class="toc-backref" href="#id152">Examples:</a></h3>
|
|
<ul class="simple">
|
|
<li>'digcircle filled 3' = Dig a filled circle with radius = 3.</li>
|
|
<li>'digcircle' = Do it again.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="weather">
|
|
<h2><a class="toc-backref" href="#id153">weather</a></h2>
|
|
<p>Prints the current weather map by default.</p>
|
|
<p>Also lets you change the current weather to 'clear sky', 'rainy' or 'snowing'.</p>
|
|
<div class="section" id="id26">
|
|
<h3><a class="toc-backref" href="#id154">Options:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">snow:</th><td class="field-body">make it snow everywhere.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">rain:</th><td class="field-body">make it rain.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">clear:</th><td class="field-body">clear the sky.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="workflow">
|
|
<h2><a class="toc-backref" href="#id155">workflow</a></h2>
|
|
<p>Manage control of repeat jobs.</p>
|
|
<div class="section" id="id27">
|
|
<h3><a class="toc-backref" href="#id156">Usage</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">workflow enable <span class="pre">[option...],</span> workflow disable <span class="pre">[option...]</span></tt></dt>
|
|
<dd><p class="first">If no options are specified, enables or disables the plugin.
|
|
Otherwise, enables or disables any of the following options:</p>
|
|
<ul class="last simple">
|
|
<li>drybuckets: Automatically empty abandoned water buckets.</li>
|
|
<li>auto-melt: Resume melt jobs when there are objects to melt.</li>
|
|
</ul>
|
|
</dd>
|
|
<dt><tt class="docutils literal">workflow jobs</tt></dt>
|
|
<dd>List workflow-controlled jobs (if in a workshop, filtered by it).</dd>
|
|
<dt><tt class="docutils literal">workflow list</tt></dt>
|
|
<dd>List active constraints, and their job counts.</dd>
|
|
<dt><tt class="docutils literal">workflow count <span class="pre"><constraint-spec></span> <span class="pre"><cnt-limit></span> <span class="pre">[cnt-gap],</span> workflow amount <span class="pre"><constraint-spec></span> <span class="pre"><cnt-limit></span> <span class="pre">[cnt-gap]</span></tt></dt>
|
|
<dd>Set a constraint. The first form counts each stack as only 1 item.</dd>
|
|
<dt><tt class="docutils literal">workflow unlimit <span class="pre"><constraint-spec></span></tt></dt>
|
|
<dd>Delete a constraint.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="function">
|
|
<h3><a class="toc-backref" href="#id157">Function</a></h3>
|
|
<p>When the plugin is enabled, it protects all repeat jobs from removal.
|
|
If they do disappear due to any cause, they are immediately re-added to their
|
|
workshop and suspended.</p>
|
|
<p>In addition, when any constraints on item amounts are set, repeat jobs that
|
|
produce that kind of item are automatically suspended and resumed as the item
|
|
amount goes above or below the limit. The gap specifies how much below the limit
|
|
the amount has to drop before jobs are resumed; this is intended to reduce
|
|
the frequency of jobs being toggled.</p>
|
|
</div>
|
|
<div class="section" id="constraint-examples">
|
|
<h3><a class="toc-backref" href="#id158">Constraint examples</a></h3>
|
|
<p>Keep metal bolts within 900-1000, and wood/bone within 150-200.</p>
|
|
<pre class="literal-block">
|
|
workflow amount AMMO:ITEM_AMMO_BOLTS/METAL 1000 100
|
|
workflow amount AMMO:ITEM_AMMO_BOLTS/WOOD,BONE 200 50
|
|
</pre>
|
|
<p>Keep the number of prepared food & drink stacks between 90 and 120</p>
|
|
<pre class="literal-block">
|
|
workflow count FOOD 120 30
|
|
workflow count DRINK 120 30
|
|
</pre>
|
|
<p>Make sure there are always 25-30 empty bins/barrels/bags.</p>
|
|
<pre class="literal-block">
|
|
workflow count BIN 30
|
|
workflow count BARREL 30
|
|
workflow count BOX/CLOTH,SILK,YARN 30
|
|
</pre>
|
|
<p>Make sure there are always 15-20 coal and 25-30 copper bars.</p>
|
|
<pre class="literal-block">
|
|
workflow count BAR//COAL 20
|
|
workflow count BAR//COPPER 30
|
|
</pre>
|
|
<p>Collect 15-20 sand bags and clay boulders.</p>
|
|
<pre class="literal-block">
|
|
workflow count POWDER_MISC/SAND 20
|
|
workflow count BOULDER/CLAY 20
|
|
</pre>
|
|
<p>Make sure there are always 80-100 units of dimple dye.</p>
|
|
<pre class="literal-block">
|
|
workflow amount POWDER_MISC//MUSHROOM_CUP_DIMPLE:MILL 100 20
|
|
|
|
In order for this to work, you have to set the material of the PLANT input
|
|
on the Mill Plants job to MUSHROOM_CUP_DIMPLE using the 'job item-material'
|
|
command.
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="mapexport">
|
|
<h2><a class="toc-backref" href="#id159">mapexport</a></h2>
|
|
<p>Export the current loaded map as a file. This will be eventually usable
|
|
with visualizers.</p>
|
|
</div>
|
|
<div class="section" id="dwarfexport">
|
|
<h2><a class="toc-backref" href="#id160">dwarfexport</a></h2>
|
|
<p>Export dwarves to RuneSmith-compatible XML.</p>
|
|
</div>
|
|
<div class="section" id="zone">
|
|
<h2><a class="toc-backref" href="#id161">zone</a></h2>
|
|
<p>Helps a bit with managing activity zones (pens, pastures and pits) and cages.</p>
|
|
<div class="section" id="id28">
|
|
<h3><a class="toc-backref" href="#id162">Options:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">set:</th><td class="field-body">Set zone or cage under cursor as default for future assigns.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">assign:</th><td class="field-body">Assign unit(s) to the pen or pit marked with the 'set' command.
|
|
If no filters are set a unit must be selected in the in-game ui.
|
|
Can also be followed by a valid zone id which will be set
|
|
instead.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">unassign:</th><td class="field-body">Unassign selected creature from it's zone.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">nick:</th><td class="field-body">Mass-assign nicknames, must be followed by the name you want
|
|
to set.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">remnick:</th><td class="field-body">Mass-remove nicknames.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">tocages:</th><td class="field-body">Assign unit(s) to cages inside a pasture.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">uinfo:</th><td class="field-body">Print info about unit(s). If no filters are set a unit must
|
|
be selected in the in-game ui.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">zinfo:</th><td class="field-body">Print info about zone(s). If no filters are set zones under
|
|
the cursor are listed.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">verbose:</th><td class="field-body">Print some more info.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">filters:</th><td class="field-body">Print list of valid filter options.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">examples:</th><td class="field-body">Print some usage examples.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">not:</th><td class="field-body">Negates the next filter keyword.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id29">
|
|
<h3><a class="toc-backref" href="#id163">Filters:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">all:</th><td class="field-body">Process all units (to be used with additional filters).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">count:</th><td class="field-body">Must be followed by a number. Process only n units (to be used
|
|
with additional filters).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">unassigned:</th><td class="field-body">Not assigned to zone, chain or built cage.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">minage:</th><td class="field-body">Minimum age. Must be followed by number.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">maxage:</th><td class="field-body">Maximum age. Must be followed by number.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">race:</th><td class="field-body">Must be followed by a race RAW ID (e.g. BIRD_TURKEY, ALPACA,
|
|
etc). Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">caged:</th><td class="field-body">In a built cage. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">own:</th><td class="field-body">From own civilization. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">merchant:</th><td class="field-body">Is a merchant / belongs to a merchant. Should only be used for
|
|
pitting, not for stealing animals (slaughter should work).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">war:</th><td class="field-body">Trained war creature. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">hunting:</th><td class="field-body">Trained hunting creature. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">tamed:</th><td class="field-body">Creature is tame. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">trained:</th><td class="field-body">Creature is trained. Finds war/hunting creatures as well as
|
|
creatures who have a training level greater than 'domesticated'.
|
|
If you want to specifically search for war/hunting creatures use
|
|
'war' or 'hunting' Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">trainablewar:</th><td class="field-body">Creature can be trained for war (and is not already trained for
|
|
war/hunt). Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">trainablehunt:</th><td class="field-body">Creature can be trained for hunting (and is not already trained
|
|
for war/hunt). Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">male:</th><td class="field-body">Creature is male. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">female:</th><td class="field-body">Creature is female. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">egglayer:</th><td class="field-body">Race lays eggs. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">grazer:</th><td class="field-body">Race is a grazer. Negatable.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">milkable:</th><td class="field-body">Race is milkable. Negatable.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="usage-with-single-units">
|
|
<h3><a class="toc-backref" href="#id164">Usage with single units</a></h3>
|
|
<p>One convenient way to use the zone tool is to bind the command 'zone assign' to
|
|
a hotkey, maybe also the command 'zone set'. Place the in-game cursor over
|
|
a pen/pasture or pit, use 'zone set' to mark it. Then you can select units
|
|
on the map (in 'v' or 'k' mode), in the unit list or from inside cages
|
|
and use 'zone assign' to assign them to their new home. Allows pitting your
|
|
own dwarves, by the way.</p>
|
|
</div>
|
|
<div class="section" id="usage-with-filters">
|
|
<h3><a class="toc-backref" href="#id165">Usage with filters</a></h3>
|
|
<p>All filters can be used together with the 'assign' command.</p>
|
|
<p>Restrictions: It's not possible to assign units who are inside built cages
|
|
or chained because in most cases that won't be desirable anyways.
|
|
It's not possible to cage owned pets because in that case the owner
|
|
uncages them after a while which results in infinite hauling back and forth.</p>
|
|
<p>Usually you should always use the filter 'own' (which implies tame) unless you
|
|
want to use the zone tool for pitting hostiles. 'own' ignores own dwarves unless
|
|
you specify 'race DWARF' (so it's safe to use 'assign all own' to one big
|
|
pasture if you want to have all your animals at the same place). 'egglayer' and
|
|
'milkable' should be used together with 'female' unless you have a mod with
|
|
egg-laying male elves who give milk or whatever. Merchants and their animals are
|
|
ignored unless you specify 'merchant' (pitting them should be no problem,
|
|
but stealing and pasturing their animals is not a good idea since currently they
|
|
are not properly added to your own stocks; slaughtering them should work).</p>
|
|
<p>Most filters can be negated (e.g. 'not grazer' -> race is not a grazer).</p>
|
|
</div>
|
|
<div class="section" id="mass-renaming">
|
|
<h3><a class="toc-backref" href="#id166">Mass-renaming</a></h3>
|
|
<p>Using the 'nick' command you can set the same nickname for multiple units.
|
|
If used without 'assign', 'all' or 'count' it will rename all units in the
|
|
current default target zone. Combined with 'assign', 'all' or 'count' (and
|
|
further optional filters) it will rename units matching the filter conditions.</p>
|
|
</div>
|
|
<div class="section" id="cage-zones">
|
|
<h3><a class="toc-backref" href="#id167">Cage zones</a></h3>
|
|
<p>Using the 'tocages' command you can assign units to a set of cages, for example
|
|
a room next to your butcher shop(s). They will be spread evenly among available
|
|
cages to optimize hauling to and butchering from them. For this to work you need
|
|
to build cages and then place one pen/pasture activity zone above them, covering
|
|
all cages you want to use. Then use 'zone set' (like with 'assign') and use
|
|
'zone tocages filter1 filter2 ...'. 'tocages' overwrites 'assign' because it
|
|
would make no sense, but can be used together with 'nick' or 'remnick' and all
|
|
the usual filters.</p>
|
|
</div>
|
|
<div class="section" id="id30">
|
|
<h3><a class="toc-backref" href="#id168">Examples</a></h3>
|
|
<dl class="docutils">
|
|
<dt><tt class="docutils literal">zone assign all own ALPACA minage 3 maxage 10</tt></dt>
|
|
<dd>Assign all own alpacas who are between 3 and 10 years old to the selected
|
|
pasture.</dd>
|
|
<dt><tt class="docutils literal">zone assign all own caged grazer nick ineedgrass</tt></dt>
|
|
<dd>Assign all own grazers who are sitting in cages on stockpiles (e.g. after
|
|
buying them from merchants) to the selected pasture and give them
|
|
the nickname 'ineedgrass'.</dd>
|
|
<dt><tt class="docutils literal">zone assign all own not grazer not race CAT</tt></dt>
|
|
<dd>Assign all own animals who are not grazers, excluding cats.</dd>
|
|
<dt><tt class="docutils literal">zone assign count 5 own female milkable</tt></dt>
|
|
<dd>Assign up to 5 own female milkable creatures to the selected pasture.</dd>
|
|
<dt><tt class="docutils literal">zone assign all own race DWARF maxage 2</tt></dt>
|
|
<dd>Throw all useless kids into a pit :)</dd>
|
|
<dt><tt class="docutils literal">zone nick donttouchme</tt></dt>
|
|
<dd>Nicknames all units in the current default zone or cage to 'donttouchme'.
|
|
Mostly intended to be used for special pastures or cages which are not marked
|
|
as rooms you want to protect from autobutcher.</dd>
|
|
<dt><tt class="docutils literal">zone tocages count 50 own tame male not grazer</tt></dt>
|
|
<dd>Stuff up to 50 owned tame male animals who are not grazers into cages built
|
|
on the current default zone.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="autonestbox">
|
|
<h2><a class="toc-backref" href="#id169">autonestbox</a></h2>
|
|
<p>Assigns unpastured female egg-layers to nestbox zones. Requires that you create
|
|
pen/pasture zones above nestboxes. If the pen is bigger than 1x1 the nestbox
|
|
must be in the top left corner. Only 1 unit will be assigned per pen, regardless
|
|
of the size. The age of the units is currently not checked, most birds grow up
|
|
quite fast. Egglayers who are also grazers will be ignored, since confining them
|
|
to a 1x1 pasture is not a good idea. Only tame and domesticated own units are
|
|
processed since pasturing half-trained wild egglayers could destroy your neat
|
|
nestbox zones when they revert to wild. When called without options autonestbox
|
|
will instantly run once.</p>
|
|
<div class="section" id="id31">
|
|
<h3><a class="toc-backref" href="#id170">Options:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">start:</th><td class="field-body">Start running every X frames (df simulation ticks).
|
|
Default: X=6000, which would be every 60 seconds at 100fps.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">stop:</th><td class="field-body">Stop running automatically.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">sleep:</th><td class="field-body">Must be followed by number X. Changes the timer to sleep X
|
|
frames between runs.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="autobutcher">
|
|
<h2><a class="toc-backref" href="#id171">autobutcher</a></h2>
|
|
<p>Assigns lifestock for slaughter once it reaches a specific count. Requires that
|
|
you add the target race(s) to a watch list. Only tame units will be processed.</p>
|
|
<p>Named units will be completely ignored (to protect specific animals from
|
|
autobutcher you can give them nicknames with the tool 'rename unit' for single
|
|
units or with 'zone nick' to mass-rename units in pastures and cages).</p>
|
|
<p>Creatures trained for war or hunting will be ignored as well.</p>
|
|
<p>Creatures assigned to cages will be ignored if the cage is defined as a room
|
|
(to avoid butchering unnamed zoo animals).</p>
|
|
<p>Once you have too much adults, the oldest will be butchered first.
|
|
Once you have too much kids, the youngest will be butchered first.
|
|
If you don't set any target count the following default will be used:
|
|
1 male kid, 5 female kids, 1 male adult, 5 female adults.</p>
|
|
<div class="section" id="id32">
|
|
<h3><a class="toc-backref" href="#id172">Options:</a></h3>
|
|
<table class="docutils field-list" frame="void" rules="none">
|
|
<col class="field-name" />
|
|
<col class="field-body" />
|
|
<tbody valign="top">
|
|
<tr class="field"><th class="field-name">start:</th><td class="field-body">Start running every X frames (df simulation ticks).
|
|
Default: X=6000, which would be every 60 seconds at 100fps.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">stop:</th><td class="field-body">Stop running automatically.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">sleep:</th><td class="field-body">Must be followed by number X. Changes the timer to sleep
|
|
X frames between runs.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">watch R:</th><td class="field-body">Start watching a race. R can be a valid race RAW id (ALPACA,
|
|
BIRD_TURKEY, etc) or a list of ids seperated by spaces or
|
|
the keyword 'all' which affects all races on your current
|
|
watchlist.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">unwatch R:</th><td class="field-body">Stop watching race(s). The current target settings will be
|
|
remembered. R can be a list of ids or the keyword 'all'.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">forget R:</th><td class="field-body">Stop watching race(s) and forget it's/their target settings.
|
|
R can be a list of ids or the keyword 'all'.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">autowatch:</th><td class="field-body">Automatically adds all new races (animals you buy from merchants,
|
|
tame yourself or get from migrants) to the watch list using
|
|
default target count.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">noautowatch:</th><td class="field-body">Stop auto-adding new races to the watchlist.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">list:</th><td class="field-body">Print the current status and watchlist.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">list_export:</th><td class="field-body">Print status and watchlist in a format which can be used
|
|
to import them to another savegame (see notes).</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name" colspan="2">target fk mk fa ma R:</th></tr>
|
|
<tr class="field"><td> </td><td class="field-body">Set target count for specified race(s).
|
|
fk = number of female kids,
|
|
mk = number of male kids,
|
|
fa = number of female adults,
|
|
ma = number of female adults.
|
|
R can be a list of ids or the keyword 'all' or 'new'.
|
|
R = 'all': change target count for all races on watchlist
|
|
and set the new default for the future. R = 'new': don't touch
|
|
current settings on the watchlist, only set the new default
|
|
for future entries.</td>
|
|
</tr>
|
|
<tr class="field"><th class="field-name">example:</th><td class="field-body">Print some usage examples.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="id33">
|
|
<h3><a class="toc-backref" href="#id173">Examples:</a></h3>
|
|
<p>You want to keep max 7 kids (4 female, 3 male) and max 3 adults (2 female,
|
|
1 male) of the race alpaca. Once the kids grow up the oldest adults will get
|
|
slaughtered. Excess kids will get slaughtered starting with the youngest
|
|
to allow that the older ones grow into adults. Any unnamed cats will
|
|
be slaughtered as soon as possible.</p>
|
|
<pre class="literal-block">
|
|
autobutcher target 4 3 2 1 ALPACA BIRD_TURKEY
|
|
autobutcher target 0 0 0 0 CAT
|
|
autobutcher watch ALPACA BIRD_TURKEY CAT
|
|
autobutcher start
|
|
</pre>
|
|
<p>Automatically put all new races onto the watchlist and mark unnamed tame units
|
|
for slaughter as soon as they arrive in your fort. Settings already made
|
|
for specific races will be left untouched.</p>
|
|
<pre class="literal-block">
|
|
autobutcher target 0 0 0 0 new
|
|
autobutcher autowatch
|
|
autobutcher start
|
|
</pre>
|
|
<p>Stop watching the races alpaca and cat, but remember the target count
|
|
settings so that you can use 'unwatch' without the need to enter the
|
|
values again. Note: 'autobutcher unwatch all' works, but only makes sense
|
|
if you want to keep the plugin running with the 'autowatch' feature or manually
|
|
add some new races with 'watch'. If you simply want to stop it completely use
|
|
'autobutcher stop' instead.</p>
|
|
<pre class="literal-block">
|
|
autobutcher unwatch ALPACA CAT
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="note">
|
|
<h3><a class="toc-backref" href="#id174">Note:</a></h3>
|
|
<p>Settings and watchlist are stored in the savegame, so that you can have
|
|
different settings for each world. If you want to copy your watchlist to
|
|
another savegame you can use the command list_export:</p>
|
|
<pre class="literal-block">
|
|
Load savegame where you made the settings.
|
|
Start a CMD shell and navigate to the df directory. Type the following into the shell:
|
|
dfhack-run autobutcher list_export > autobutcher.bat
|
|
Load the savegame where you want to copy the settings to, run the batch file (from the shell):
|
|
autobutcher.bat
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="autolabor">
|
|
<h2><a class="toc-backref" href="#id175">autolabor</a></h2>
|
|
<p>Automatically manage dwarf labors.</p>
|
|
<p>When enabled, autolabor periodically checks your dwarves and enables or
|
|
disables labors. It tries to keep as many dwarves as possible busy but
|
|
also tries to have dwarves specialize in specific skills.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Warning: autolabor will override any manual changes you make to labors
|
|
while it is enabled.</p>
|
|
</div>
|
|
<p>For detailed usage information, see 'help autolabor'.</p>
|
|
</div>
|
|
<div class="section" id="growcrops">
|
|
<h2><a class="toc-backref" href="#id176">growcrops</a></h2>
|
|
<p>Instantly grow seeds inside farming plots.</p>
|
|
<p>With no argument, this command list the various seed types currently in
|
|
use in your farming plots.
|
|
With a seed type, the script will grow 100 of these seeds, ready to be
|
|
harvested. You can change the number with a 2nd argument.</p>
|
|
<p>For exemple, to grow 40 plump helmet spawn:</p>
|
|
<pre class="literal-block">
|
|
growcrops plump 40
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="removebadthoughts">
|
|
<h2><a class="toc-backref" href="#id177">removebadthoughts</a></h2>
|
|
<p>This script remove negative thoughts from your dwarves. Very useful against
|
|
tantrum spirals.</p>
|
|
<p>With a selected unit in 'v' mode, will clear this unit's mind, otherwise
|
|
clear all your fort's units minds.</p>
|
|
<p>Individual dwarf happiness may not increase right after this command is run,
|
|
but in the short term your dwarves will get much more joyful.
|
|
The thoughts are set to be very old, and the game will remove them soon when
|
|
you unpause.</p>
|
|
<p>With the optional <tt class="docutils literal"><span class="pre">-v</span></tt> parameter, the script will dump the negative thoughts
|
|
it removed.</p>
|
|
</div>
|
|
<div class="section" id="slayrace">
|
|
<h2><a class="toc-backref" href="#id178">slayrace</a></h2>
|
|
<p>Kills any unit of a given race.</p>
|
|
<p>With no argument, lists the available races.</p>
|
|
<p>With the special argument 'him', targets only the selected creature.</p>
|
|
<p>Any non-dead non-caged unit of the specified race gets its <tt class="docutils literal">blood_count</tt>
|
|
set to 0, which means immediate death at the next game tick. For creatures
|
|
such as vampires, also set animal.vanish_countdown to 2.</p>
|
|
<p>An alternate mode is selected by adding a 2nd argument to the command,
|
|
<tt class="docutils literal">magma</tt>. In this case, a column of 7/7 magma is generated on top of the
|
|
targets until they die (Warning: do not call on magma-safe creatures. Also,
|
|
using this mode for birds is not recommanded.)</p>
|
|
<p>Will target any unit on a revealed tile of the map, including ambushers.</p>
|
|
<p>Ex:</p>
|
|
<pre class="literal-block">
|
|
slayrace gob
|
|
</pre>
|
|
<p>To kill a single creature, select the unit with the 'v' cursor and:</p>
|
|
<pre class="literal-block">
|
|
slayrace him
|
|
</pre>
|
|
<p>To purify all elves on the map with fire (may have side-effects):</p>
|
|
<pre class="literal-block">
|
|
slayrace elve magma
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="magmasource">
|
|
<h2><a class="toc-backref" href="#id179">magmasource</a></h2>
|
|
<p>Create an infinite magma source on a tile.</p>
|
|
<p>This script registers a map tile as a magma source, and every 12 game ticks
|
|
that tile receives 1 new unit of flowing magma.</p>
|
|
<p>Place the game cursor where you want to create the source (must be a
|
|
flow-passable tile, and not too high in the sky) and call:</p>
|
|
<pre class="literal-block">
|
|
magmasource here
|
|
</pre>
|
|
<p>To add more than 1 unit everytime, call the command again.</p>
|
|
<p>To delete one source, place the cursor over its tile and use <tt class="docutils literal"><span class="pre">delete-here</span></tt>.
|
|
To remove all placed sources, call <tt class="docutils literal">magmasource stop</tt>.</p>
|
|
<p>With no argument, this command shows an help message and list existing sources.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="in-game-interface-tools">
|
|
<h1><a class="toc-backref" href="#id180">In-game interface tools</a></h1>
|
|
<p>These tools work by displaying dialogs or overlays in the game window, and
|
|
are mostly implemented by lua scripts.</p>
|
|
<div class="section" id="dwarf-manipulator">
|
|
<h2><a class="toc-backref" href="#id181">Dwarf Manipulator</a></h2>
|
|
<p>Implemented by the manipulator plugin. To activate, open the unit screen and
|
|
press 'l'.</p>
|
|
<p>This tool implements a Dwarf Therapist-like interface within the game UI. The
|
|
far left column displays the unit's Happiness (color-coded based on its
|
|
value), and the right half of the screen displays each dwarf's labor settings
|
|
and skill levels (0-9 for Dabbling thru Professional, A-E for Great thru Grand
|
|
Master, and U-Z for Legendary thru Legendary+5). Cells with red backgrounds
|
|
denote skills not controlled by labors.</p>
|
|
<p>Use the arrow keys or number pad to move the cursor around, holding Shift to
|
|
move 10 tiles at a time.</p>
|
|
<p>Press the Z-Up (<) and Z-Down (>) keys to move quickly between labor/skill
|
|
categories.</p>
|
|
<p>Press Enter to toggle the selected labor for the selected unit, or Shift+Enter
|
|
to toggle all labors within the selected category.</p>
|
|
<p>Press the <tt class="docutils literal">+-</tt> keys to sort the unit list according to the currently selected
|
|
skill/labor, and press the <tt class="docutils literal">*/</tt> keys to sort the unit list by Name, Profession,
|
|
or Happiness (using Tab to select which sort method to use here).</p>
|
|
<p>With a unit selected, you can press the "v" key to view its properties (and
|
|
possibly set a custom nickname or profession) or the "c" key to exit
|
|
Manipulator and zoom to its position within your fortress.</p>
|
|
<p>The following mouse shortcuts are also available:</p>
|
|
<ul class="simple">
|
|
<li>Click on a column header to sort the unit list. Left-click to sort it in one
|
|
direction (descending for happiness or labors/skills, ascending for name or
|
|
profession) and right-click to sort it in the opposite direction.</li>
|
|
<li>Left-click on a labor cell to toggle that labor. Right-click to move the
|
|
cursor onto that cell instead of toggling it.</li>
|
|
<li>Left-click on a unit's name or profession to view its properties.</li>
|
|
<li>Right-click on a unit's name or profession to zoom to it.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="id34">
|
|
<h2><a class="toc-backref" href="#id182">Liquids</a></h2>
|
|
<p>Implemented by the gui/liquids script. To use, bind to a key and activate in the 'k' mode.</p>
|
|
<p>While active, use the suggested keys to switch the usual liquids parameters, and Enter
|
|
to select the target area and apply changes.</p>
|
|
</div>
|
|
<div class="section" id="mechanisms">
|
|
<h2><a class="toc-backref" href="#id183">Mechanisms</a></h2>
|
|
<p>Implemented by the gui/mechanims script. To use, bind to a key and activate in the 'q' mode.</p>
|
|
<p>Lists mechanisms connected to the building, and their links. Navigating the list centers
|
|
the view on the relevant linked buildings.</p>
|
|
<p>To exit, press ESC or Enter; ESC recenters on the original building, while Enter leaves
|
|
focus on the current one. Shift-Enter has an effect equivalent to pressing Enter, and then
|
|
re-entering the mechanisms ui.</p>
|
|
</div>
|
|
<div class="section" id="power-meter">
|
|
<h2><a class="toc-backref" href="#id184">Power Meter</a></h2>
|
|
<p>Front-end to the power-meter plugin implemented by the gui/power-meter script. Bind to a
|
|
key and activate after selecting Pressure Plate in the build menu.</p>
|
|
<p>The script follows the general look and feel of the regular pressure plate build
|
|
configuration page, but configures parameters relevant to the modded power meter building.</p>
|
|
</div>
|
|
<div class="section" id="id35">
|
|
<h2><a class="toc-backref" href="#id185">Rename</a></h2>
|
|
<p>Backed by the rename plugin, the gui/rename script allows entering the desired name
|
|
via a simple dialog in the game ui.</p>
|
|
<ul>
|
|
<li><p class="first"><tt class="docutils literal">gui/rename [building]</tt> in 'q' mode changes the name of a building.</p>
|
|
<p>The selected building must be one of stockpile, workshop, furnace, trap, or siege engine.
|
|
It is also possible to rename zones from the 'i' menu.</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">gui/rename [unit]</tt> with a unit selected changes the nickname.</p>
|
|
</li>
|
|
<li><p class="first"><tt class="docutils literal">gui/rename <span class="pre">unit-profession</span></tt> changes the selected unit's custom profession name.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The <tt class="docutils literal">building</tt> or <tt class="docutils literal">unit</tt> are automatically assumed when in relevant ui state.</p>
|
|
</div>
|
|
<div class="section" id="room-list">
|
|
<h2><a class="toc-backref" href="#id186">Room List</a></h2>
|
|
<p>Implemented by the gui/room-list script. To use, bind to a key and activate in the 'q' mode,
|
|
either immediately or after opening the assign owner page.</p>
|
|
<p>The script lists other rooms owned by the same owner, or by the unit selected in the assign
|
|
list, and allows unassigning them.</p>
|
|
</div>
|
|
<div class="section" id="siege-engine">
|
|
<h2><a class="toc-backref" href="#id187">Siege Engine</a></h2>
|
|
<p>Front-end to the siege-engine plugin implemented by the gui/siege-engine script. Bind to a
|
|
key and activate after selecting a siege engine in 'q' mode.</p>
|
|
<p>The main mode displays the current target, selected ammo item type, linked stockpiles and
|
|
the allowed operator skill range. The map tile color is changed to signify if it can be
|
|
hit by the selected engine: green for fully reachable, blue for out of range, red for blocked,
|
|
yellow for partially blocked.</p>
|
|
<p>Pressing 'r' changes into the target selection mode, which works by highlighting two points
|
|
with Enter like all designations. When a target area is set, the engine projectiles are
|
|
aimed at that area, or units within it, instead of the vanilla four directions.</p>
|
|
<p>After setting the target in this way for one engine, you can 'paste' the same area into others
|
|
just by pressing 'p' in the main page of this script. The area to paste is kept until you quit
|
|
DF, or select another area manually.</p>
|
|
<p>Pressing 't' switches to a mode for selecting a stockpile to take ammo from.</p>
|
|
<p>Exiting from the siege engine script via ESC reverts the view to the state prior to starting
|
|
the script. Shift-ESC retains the current viewport, and also exits from the 'q' mode to main
|
|
menu.</p>
|
|
<p><strong>DISCLAIMER</strong>: Siege engines are a very interesting feature, but currently nearly useless
|
|
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,
|
|
e.g. like making siegers bring their own, are something only Toady can do.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="raw-hacks">
|
|
<h1><a class="toc-backref" href="#id188">RAW hacks</a></h1>
|
|
<p>These plugins detect certain structures in RAWs, and enhance them in various ways.</p>
|
|
<div class="section" id="steam-engine">
|
|
<h2><a class="toc-backref" href="#id189">Steam Engine</a></h2>
|
|
<p>The steam-engine plugin detects custom workshops with STEAM_ENGINE in
|
|
their token, and turns them into real steam engines.</p>
|
|
<div class="section" id="rationale">
|
|
<h3><a class="toc-backref" href="#id190">Rationale</a></h3>
|
|
<p>The vanilla game contains only water wheels and windmills as sources of
|
|
power, but windmills give relatively little power, and water wheels require
|
|
flowing water, which must either be a real river and thus immovable and
|
|
limited in supply, or actually flowing and thus laggy.</p>
|
|
<p>Steam engines are an alternative to water reactors that actually makes
|
|
sense, and hopefully doesn't lag. Also, unlike e.g. animal treadmills,
|
|
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>
|
|
</div>
|
|
<div class="section" id="construction">
|
|
<h3><a class="toc-backref" href="#id191">Construction</a></h3>
|
|
<p>The workshop needs water as its input, which it takes via a
|
|
passable floor tile below it, like usual magma workshops do.
|
|
The magma version also needs magma.</p>
|
|
<p><strong>ISSUE</strong>: Since this building is a machine, and machine collapse
|
|
code cannot be modified, it would collapse over true open space.
|
|
As a loophole, down stair provides support to machines, while
|
|
being passable, so use them.</p>
|
|
<p>After constructing the building itself, machines can be connected
|
|
to the edge tiles that look like gear boxes. Their exact position
|
|
is extracted from the workshop raws.</p>
|
|
<p><strong>ISSUE</strong>: Like with collapse above, part of the code involved in
|
|
machine connection cannot be modified. As a result, the workshop
|
|
can only immediately connect to machine components built AFTER it.
|
|
This also means that engines cannot be chained without intermediate
|
|
short axles that can be built later than both of the engines.</p>
|
|
</div>
|
|
<div class="section" id="operation">
|
|
<h3><a class="toc-backref" href="#id192">Operation</a></h3>
|
|
<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,
|
|
and perform it. As a result, a "boiling water" item will appear
|
|
in the 't' view of the workshop.</p>
|
|
<p><strong>NOTE</strong>: The completion of the job will actually consume one unit
|
|
of the appropriate liquids from below the workshop.</p>
|
|
<p>Every such item gives 100 power, up to a limit of 300 for coal,
|
|
and 500 for a magma engine. The building can host twice that
|
|
amount of items to provide longer autonomous running. When the
|
|
boiler gets filled to capacity, all queued jobs are suspended;
|
|
once it drops back to 3+1 or 5+1 items, they are re-enabled.</p>
|
|
<p>While the engine is providing power, steam is being consumed.
|
|
The consumption speed includes a fixed 10% waste rate, and
|
|
the remaining 90% are applied proportionally to the actual
|
|
load in the machine. With the engine at nominal 300 power with
|
|
150 load in the system, it will consume steam for actual
|
|
300*(10% + 90%*150/300) = 165 power.</p>
|
|
<p>Masterpiece mechanism and chain will decrease the mechanical
|
|
power drawn by the engine itself from 10 to 5. Masterpiece
|
|
barrel decreases waste rate by 4%. Masterpiece piston and pipe
|
|
decrease it by further 4%, and also decrease the whole steam
|
|
use rate by 10%.</p>
|
|
</div>
|
|
<div class="section" id="explosions">
|
|
<h3><a class="toc-backref" href="#id193">Explosions</a></h3>
|
|
<p>The engine must be constructed using barrel, pipe and piston
|
|
from fire-safe, or in the magma version magma-safe metals.</p>
|
|
<p>During operation weak parts get gradually worn out, and
|
|
eventually the engine explodes. It should also explode if
|
|
toppled during operation by a building destroyer, or a
|
|
tantruming dwarf.</p>
|
|
</div>
|
|
<div class="section" id="save-files">
|
|
<h3><a class="toc-backref" href="#id194">Save files</a></h3>
|
|
<p>It should be safe to load and view engine-using fortresses
|
|
from a DF version without DFHack installed, except that in such
|
|
case the engines won't work. However actually making modifications
|
|
to them, or machines they connect to (including by pulling levers),
|
|
can easily result in inconsistent state once this plugin is
|
|
available again. The effects may be as weird as negative power
|
|
being generated.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="add-spatter">
|
|
<h2><a class="toc-backref" href="#id195">Add Spatter</a></h2>
|
|
<p>This plugin makes reactions with names starting with <tt class="docutils literal">SPATTER_ADD_</tt>
|
|
produce contaminants on the items instead of improvements.</p>
|
|
<p>Intended to give some use to all those poisons that can be bought from caravans.</p>
|
|
<p>To be really useful this needs patches from bug 808, <tt class="docutils literal">tweak <span class="pre">fix-dimensions</span></tt>
|
|
and <tt class="docutils literal">tweak <span class="pre">advmode-contained</span></tt>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|