@ -517,71 +517,73 @@ access DF memory and allow for easier development of new tools.</p>
< li > < a class = "reference internal" href = "#catsplosion" id = "id124" > catsplosion< / a > < / li >
< li > < a class = "reference internal" href = "#catsplosion" id = "id124" > catsplosion< / a > < / li >
< li > < a class = "reference internal" href = "#dfusion" id = "id125" > dfusion< / a > < / li >
< li > < a class = "reference internal" href = "#dfusion" id = "id125" > dfusion< / a > < / li >
< li > < a class = "reference internal" href = "#misery" id = "id126" > misery< / a > < / li >
< li > < a class = "reference internal" href = "#misery" id = "id126" > misery< / a > < / li >
< li > < a class = "reference internal" href = "#strangemood" id = "id127" > strangemood< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#scripts" id = "id127" > Scripts< / a > < ul >
< li > < a class = "reference internal" href = "#scripts" id = "id128" > Scripts< / a > < ul >
< li > < a class = "reference internal" href = "#fix" id = "id128" > fix/*< / a > < / li >
< li > < a class = "reference internal" href = "#fix" id = "id129" > fix/*< / a > < / li >
< li > < a class = "reference internal" href = "#gui" id = "id129" > gui/*< / a > < / li >
< li > < a class = "reference internal" href = "#gui" id = "id130" > gui/*< / a > < / li >
< li > < a class = "reference internal" href = "#binpatch" id = "id130" > binpatch< / a > < / li >
< li > < a class = "reference internal" href = "#binpatch" id = "id131" > binpatch< / a > < / li >
< li > < a class = "reference internal" href = "#quicksave" id = "id131" > quicksave< / a > < / li >
< li > < a class = "reference internal" href = "#quicksave" id = "id132" > quicksave< / a > < / li >
< li > < a class = "reference internal" href = "#setfps" id = "id132" > setfps< / a > < / li >
< li > < a class = "reference internal" href = "#setfps" id = "id133" > setfps< / a > < / li >
< li > < a class = "reference internal" href = "#siren" id = "id133" > siren< / a > < / li >
< li > < a class = "reference internal" href = "#siren" id = "id134" > siren< / a > < / li >
< li > < a class = "reference internal" href = "#growcrops" id = "id134" > growcrops< / a > < / li >
< li > < a class = "reference internal" href = "#growcrops" id = "id135" > growcrops< / a > < / li >
< li > < a class = "reference internal" href = "#removebadthoughts" id = "id135" > removebadthoughts< / a > < / li >
< li > < a class = "reference internal" href = "#removebadthoughts" id = "id136" > removebadthoughts< / a > < / li >
< li > < a class = "reference internal" href = "#exterminate" id = "id136" > exterminate< / a > < / li >
< li > < a class = "reference internal" href = "#exterminate" id = "id137" > exterminate< / a > < / li >
< li > < a class = "reference internal" href = "#source" id = "id137" > source< / a > < / li >
< li > < a class = "reference internal" href = "#source" id = "id138" > source< / a > < / li >
< li > < a class = "reference internal" href = "#masspit" id = "id138" > masspit< / a > < / li >
< li > < a class = "reference internal" href = "#masspit" id = "id139" > masspit< / a > < / li >
< li > < a class = "reference internal" href = "#digfort" id = "id139" > digfort< / a > < / li >
< li > < a class = "reference internal" href = "#digfort" id = "id140" > digfort< / a > < / li >
< li > < a class = "reference internal" href = "#invasion-now" id = "id140" > invasion-now< / a > < / li >
< li > < a class = "reference internal" href = "#invasion-now" id = "id141" > invasion-now< / a > < / li >
< li > < a class = "reference internal" href = "#superdwarf" id = "id141" > superdwarf< / a > < / li >
< li > < a class = "reference internal" href = "#digmat" id = "id142" > digmat< / a > < / li >
< li > < a class = "reference internal" href = "#drainaquifer" id = "id142" > drainaquifer< / a > < / li >
< li > < a class = "reference internal" href = "#superdwarf" id = "id143" > superdwarf< / a > < / li >
< li > < a class = "reference internal" href = "#deathcause" id = "id143" > deathcause< / a > < / li >
< li > < a class = "reference internal" href = "#drainaquifer" id = "id144" > drainaquifer< / a > < / li >
< li > < a class = "reference internal" href = "#lua" id = "id144" > lua< / a > < / li >
< li > < a class = "reference internal" href = "#deathcause" id = "id145" > deathcause< / a > < / li >
< li > < a class = "reference internal" href = "#embark" id = "id145" > embark< / a > < / li >
< li > < a class = "reference internal" href = "#lua" id = "id146" > lua< / a > < / li >
< li > < a class = "reference internal" href = "#lever" id = "id146" > lever< / a > < / li >
< li > < a class = "reference internal" href = "#embark" id = "id147" > embark< / a > < / li >
< li > < a class = "reference internal" href = "#stripcaged" id = "id147" > stripcaged< / a > < / li >
< li > < a class = "reference internal" href = "#lever" id = "id148" > lever< / a > < / li >
< li > < a class = "reference internal" href = "#create-items" id = "id148" > create-items< / a > < / li >
< li > < a class = "reference internal" href = "#stripcaged" id = "id149" > stripcaged< / a > < / li >
< li > < a class = "reference internal" href = "#locate-ore" id = "id149" > locate-ore< / a > < / li >
< li > < a class = "reference internal" href = "#create-items" id = "id150" > create-items< / a > < / li >
< li > < a class = "reference internal" href = "#soundsense-season" id = "id150" > soundsense-season< / a > < / li >
< li > < a class = "reference internal" href = "#locate-ore" id = "id151" > locate-ore< / a > < / li >
< li > < a class = "reference internal" href = "#multicmd" id = "id151" > multicmd< / a > < / li >
< li > < a class = "reference internal" href = "#soundsense-season" id = "id152" > soundsense-season< / a > < / li >
< li > < a class = "reference internal" href = "#multicmd" id = "id153" > multicmd< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#in-game-interface-tools" id = "id15 2 "> In-game interface tools< / a > < ul >
< li > < a class = "reference internal" href = "#in-game-interface-tools" id = "id15 4 "> In-game interface tools< / a > < ul >
< li > < a class = "reference internal" href = "#dwarf-manipulator" id = "id15 3 "> Dwarf Manipulator< / a > < / li >
< li > < a class = "reference internal" href = "#dwarf-manipulator" id = "id15 5 "> Dwarf Manipulator< / a > < / li >
< li > < a class = "reference internal" href = "#search" id = "id15 4 "> Search< / a > < / li >
< li > < a class = "reference internal" href = "#search" id = "id15 6 "> Search< / a > < / li >
< li > < a class = "reference internal" href = "#automaterial" id = "id15 5 "> AutoMaterial< / a > < / li >
< li > < a class = "reference internal" href = "#automaterial" id = "id15 7 "> AutoMaterial< / a > < / li >
< li > < a class = "reference internal" href = "#gui-liquids" id = "id15 6 "> gui/liquids< / a > < / li >
< li > < a class = "reference internal" href = "#gui-liquids" id = "id15 8 "> gui/liquids< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mechanisms" id = "id15 7 "> gui/mechanisms< / a > < / li >
< li > < a class = "reference internal" href = "#gui-mechanisms" id = "id15 9 "> gui/mechanisms< / a > < / li >
< li > < a class = "reference internal" href = "#gui-rename" id = "id1 58 "> gui/rename< / a > < / li >
< li > < a class = "reference internal" href = "#gui-rename" id = "id1 60 "> gui/rename< / a > < / li >
< li > < a class = "reference internal" href = "#gui-room-list" id = "id1 59 "> gui/room-list< / a > < / li >
< li > < a class = "reference internal" href = "#gui-room-list" id = "id1 61 "> gui/room-list< / a > < / li >
< li > < a class = "reference internal" href = "#gui-choose-weapons" id = "id16 0 "> gui/choose-weapons< / a > < / li >
< li > < a class = "reference internal" href = "#gui-choose-weapons" id = "id16 2 "> gui/choose-weapons< / a > < / li >
< li > < a class = "reference internal" href = "#gui-guide-path" id = "id16 1 "> gui/guide-path< / a > < / li >
< li > < a class = "reference internal" href = "#gui-guide-path" id = "id16 3 "> gui/guide-path< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workshop-job" id = "id16 2 "> gui/workshop-job< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workshop-job" id = "id16 4 "> gui/workshop-job< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workflow" id = "id16 3 "> gui/workflow< / a > < / li >
< li > < a class = "reference internal" href = "#gui-workflow" id = "id16 5 "> gui/workflow< / a > < / li >
< li > < a class = "reference internal" href = "#gui-assign-rack" id = "id16 4 "> gui/assign-rack< / a > < / li >
< li > < a class = "reference internal" href = "#gui-assign-rack" id = "id16 6 "> gui/assign-rack< / a > < / li >
< li > < a class = "reference internal" href = "#gui-advfort" id = "id16 5 "> gui/advfort< / a > < / li >
< li > < a class = "reference internal" href = "#gui-advfort" id = "id16 7 "> gui/advfort< / a > < / li >
< li > < a class = "reference internal" href = "#gui-companion-order" id = "id16 6 "> gui/companion-order< / a > < / li >
< li > < a class = "reference internal" href = "#gui-companion-order" id = "id16 8 "> gui/companion-order< / a > < / li >
< li > < a class = "reference internal" href = "#gui-gm-editor" id = "id16 7 "> gui/gm-editor< / a > < / li >
< li > < a class = "reference internal" href = "#gui-gm-editor" id = "id16 9 "> gui/gm-editor< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#behavior-mods" id = "id1 68 "> Behavior Mods< / a > < ul >
< li > < a class = "reference internal" href = "#behavior-mods" id = "id1 70 "> Behavior Mods< / a > < ul >
< li > < a class = "reference internal" href = "#siege-engine" id = "id1 69 "> Siege Engine< / a > < ul >
< li > < a class = "reference internal" href = "#siege-engine" id = "id1 71 "> Siege Engine< / a > < ul >
< li > < a class = "reference internal" href = "#rationale" id = "id17 0 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#rationale" id = "id17 2 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#configuration-ui" id = "id17 1 "> Configuration UI< / a > < / li >
< li > < a class = "reference internal" href = "#configuration-ui" id = "id17 3 "> Configuration UI< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#power-meter" id = "id17 2 "> Power Meter< / a > < / li >
< li > < a class = "reference internal" href = "#power-meter" id = "id17 4 "> Power Meter< / a > < / li >
< li > < a class = "reference internal" href = "#steam-engine" id = "id17 3 "> Steam Engine< / a > < ul >
< li > < a class = "reference internal" href = "#steam-engine" id = "id17 5 "> Steam Engine< / a > < ul >
< li > < a class = "reference internal" href = "#id1" id = "id17 4 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#id1" id = "id17 6 "> Rationale< / a > < / li >
< li > < a class = "reference internal" href = "#construction" id = "id17 5 "> Construction< / a > < / li >
< li > < a class = "reference internal" href = "#construction" id = "id17 7 "> Construction< / a > < / li >
< li > < a class = "reference internal" href = "#operation" id = "id17 6 "> Operation< / a > < / li >
< li > < a class = "reference internal" href = "#operation" id = "id17 8 "> Operation< / a > < / li >
< li > < a class = "reference internal" href = "#explosions" id = "id17 7 "> Explosions< / a > < / li >
< li > < a class = "reference internal" href = "#explosions" id = "id17 9 "> Explosions< / a > < / li >
< li > < a class = "reference internal" href = "#save-files" id = "id1 7 8"> Save files< / a > < / li >
< li > < a class = "reference internal" href = "#save-files" id = "id1 80 "> Save files< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< li > < a class = "reference internal" href = "#add-spatter" id = "id1 79 "> Add Spatter< / a > < / li >
< li > < a class = "reference internal" href = "#add-spatter" id = "id1 81 "> Add Spatter< / a > < / li >
< / ul >
< / ul >
< / li >
< / li >
< / ul >
< / ul >
@ -1097,7 +1099,7 @@ crafters/haulers.</p>
< div class = "section" id = "createitem" >
< div class = "section" id = "createitem" >
< h3 > < a class = "toc-backref" href = "#id35" > createitem< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id35" > createitem< / a > < / h3 >
< p > Allows creating new items of arbitrary types and made of arbitrary materials.
< p > Allows creating new items of arbitrary types and made of arbitrary materials.
Any items created are spawned at the feet of the selected unit.< / p >
By default, items created are spawned at the feet of the selected unit.< / p >
< p > Specify the item and material information as you would indicate them in custom reaction raws, with the following differences:
< p > Specify the item and material information as you would indicate them in custom reaction raws, with the following differences:
* Separate the item and material with a space rather than a colon
* Separate the item and material with a space rather than a colon
* If the item has no subtype, omit the :NONE
* If the item has no subtype, omit the :NONE
@ -1115,6 +1117,23 @@ Any items created are spawned at the feet of the selected unit.</p>
< / dl >
< / dl >
< / dd >
< / dd >
< / dl >
< / dl >
< p > To change where new items are placed, first run the command with a destination type while an appropriate destination is selected.< / p >
< dl class = "docutils" >
< dt > Options:< / dt >
< dd > < table class = "first last 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" > floor:< / th > < td class = "field-body" > Subsequent items will be placed on the floor beneath the selected unit's feet.< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > item:< / th > < td class = "field-body" > Subsequent items will be stored inside the currently selected item.< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > building:< / th > < td class = "field-body" > Subsequent items will become part of the currently selected building. Best used for loading traps; do not use with workshops, or you will need to deconstruct the building to use the item.< / td >
< / tr >
< / tbody >
< / table >
< / dd >
< / dl >
< / div >
< / div >
< div class = "section" id = "deramp-by-zilpin" >
< div class = "section" id = "deramp-by-zilpin" >
< h3 > < a class = "toc-backref" href = "#id36" > deramp (by zilpin)< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id36" > deramp (by zilpin)< / a > < / h3 >
@ -1288,7 +1307,8 @@ alone.</p>
< / table >
< / table >
< / dd >
< / dd >
< / dl >
< / dl >
< p > Beware that filling in hollow veins may trigger a demon invasion< / p >
< p > Beware that filling in hollow veins will trigger a demon invasion on top of
your miner when you dig into the region that used to be hollow.< / p >
< / div >
< / div >
< div class = "section" id = "extirpate" >
< div class = "section" id = "extirpate" >
< h3 > < a class = "toc-backref" href = "#id46" > extirpate< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id46" > extirpate< / a > < / h3 >
@ -2822,10 +2842,34 @@ twice.</p>
< / tbody >
< / tbody >
< / table >
< / table >
< / div >
< / div >
< div class = "section" id = "strangemood" >
< h3 > < a class = "toc-backref" href = "#id127" > strangemood< / a > < / h3 >
< p > Creates a strange mood job the same way the game itself normally does it.< / p >
< p > Options:< / p >
< blockquote >
< 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" > -force:< / th > < td class = "field-body" > Ignore normal strange mood preconditions (no recent mood, minimum moodable population, artifact limit not reached).< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > -unit:< / th > < td class = "field-body" > Make the strange mood strike the selected unit instead of picking one randomly. Unit eligibility is still enforced.< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > -type T:< / th > < td class = "field-body" > Force the mood to be of a particular type instead of choosing randomly based on happiness.
Valid values are " fey" , " secretive" , " possessed" , " fell" , and " macabre" .< / td >
< / tr >
< tr class = "field" > < th class = "field-name" > -skill S:< / th > < td class = "field-body" > Force the mood to use a specific skill instead of choosing the highest moodable skill.
Valid values are " miner" , " carpenter" , " engraver" , " mason" , " tanner" , " weaver" , " clothier" , " weaponsmith" , " armorsmith" , " metalsmith" , " gemcutter" , " gemsetter" , " woodcrafter" , " stonecrafter" , " metalcrafter" , " glassmaker" , " leatherworker" , " bonecarver" , " bowyer" , and " mechanic" .< / td >
< / tr >
< / tbody >
< / table >
< / blockquote >
< p > Known limitations: if the selected unit is currently performing a job, the mood will not be started.< / p >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "scripts" >
< div class = "section" id = "scripts" >
< h1 > < a class = "toc-backref" href = "#id127" > Scripts< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id12 8 "> Scripts< / a > < / h1 >
< p > Lua or ruby scripts placed in the hack/scripts/ directory are considered for
< p > Lua or ruby scripts placed in the hack/scripts/ directory are considered for
execution as if they were native DFHack commands. They are listed at the end
execution as if they were native DFHack commands. They are listed at the end
of the 'ls' command output.< / p >
of the 'ls' command output.< / p >
@ -2834,7 +2878,7 @@ only be listed by ls if called as 'ls -a'. This is intended as a way to hide
scripts that are obscure, developer-oriented, or should be used as keybindings.< / p >
scripts that are obscure, developer-oriented, or should be used as keybindings.< / p >
< p > Some notable scripts:< / p >
< p > Some notable scripts:< / p >
< div class = "section" id = "fix" >
< div class = "section" id = "fix" >
< h2 > < a class = "toc-backref" href = "#id12 8 "> fix/*< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id12 9 "> fix/*< / a > < / h2 >
< p > Scripts in this subdirectory fix various bugs and issues, some of them obscure.< / p >
< p > Scripts in this subdirectory fix various bugs and issues, some of them obscure.< / p >
< ul >
< ul >
< li > < p class = "first" > fix/dead-units< / p >
< li > < p class = "first" > fix/dead-units< / p >
@ -2866,12 +2910,12 @@ in <tt class="docutils literal">dfhack.init</tt> makes it run automatically.</p>
< / ul >
< / ul >
< / div >
< / div >
< div class = "section" id = "gui" >
< div class = "section" id = "gui" >
< h2 > < a class = "toc-backref" href = "#id1 29 "> gui/*< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 30 "> gui/*< / a > < / h2 >
< p > Scripts that implement dialogs inserted into the main game window are put in this
< p > Scripts that implement dialogs inserted into the main game window are put in this
directory.< / p >
directory.< / p >
< / div >
< / div >
< div class = "section" id = "binpatch" >
< div class = "section" id = "binpatch" >
< h2 > < a class = "toc-backref" href = "#id13 0 "> binpatch< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 1 "> binpatch< / a > < / h2 >
< p > Checks, applies or removes binary patches directly in memory at runtime:< / p >
< p > Checks, applies or removes binary patches directly in memory at runtime:< / p >
< pre class = "literal-block" >
< pre class = "literal-block" >
binpatch check/apply/remove < patchname>
binpatch check/apply/remove < patchname>
@ -2881,17 +2925,17 @@ script uses <tt class="docutils literal"><span class="pre">hack/patches/<df-v
the version appropriate for the currently loaded executable.< / p >
the version appropriate for the currently loaded executable.< / p >
< / div >
< / div >
< div class = "section" id = "quicksave" >
< div class = "section" id = "quicksave" >
< h2 > < a class = "toc-backref" href = "#id13 1 "> quicksave< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 2 "> quicksave< / a > < / h2 >
< p > If called in dwarf mode, makes DF immediately auto-save the game by setting a flag
< p > If called in dwarf mode, makes DF immediately auto-save the game by setting a flag
normally used in seasonal auto-save.< / p >
normally used in seasonal auto-save.< / p >
< / div >
< / div >
< div class = "section" id = "setfps" >
< div class = "section" id = "setfps" >
< h2 > < a class = "toc-backref" href = "#id13 2 "> setfps< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 3 "> setfps< / a > < / h2 >
< p > Run < tt class = "docutils literal" > setfps < number> < / tt > to set the FPS cap at runtime, in case you want to watch
< p > Run < tt class = "docutils literal" > setfps < number> < / tt > to set the FPS cap at runtime, in case you want to watch
combat in slow motion or something :)< / p >
combat in slow motion or something :)< / p >
< / div >
< / div >
< div class = "section" id = "siren" >
< div class = "section" id = "siren" >
< h2 > < a class = "toc-backref" href = "#id13 3 "> siren< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 4 "> siren< / a > < / h2 >
< p > Wakes up sleeping units, cancels breaks and stops parties either everywhere,
< p > Wakes up sleeping units, cancels breaks and stops parties either everywhere,
or in the burrows given as arguments. In return, adds bad thoughts about
or in the burrows given as arguments. In return, adds bad thoughts about
noise, tiredness and lack of protection. Also, the units with interrupted
noise, tiredness and lack of protection. Also, the units with interrupted
@ -2899,7 +2943,7 @@ breaks will go on break again a lot sooner. The script is intended for
emergencies, e.g. when a siege appears, and all your military is partying.< / p >
emergencies, e.g. when a siege appears, and all your military is partying.< / p >
< / div >
< / div >
< div class = "section" id = "growcrops" >
< div class = "section" id = "growcrops" >
< h2 > < a class = "toc-backref" href = "#id13 4 "> growcrops< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 5 "> growcrops< / a > < / h2 >
< p > Instantly grow seeds inside farming plots.< / p >
< p > Instantly grow seeds inside farming plots.< / p >
< p > With no argument, this command list the various seed types currently in
< p > With no argument, this command list the various seed types currently in
use in your farming plots.
use in your farming plots.
@ -2911,7 +2955,7 @@ growcrops plump 40
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "removebadthoughts" >
< div class = "section" id = "removebadthoughts" >
< h2 > < a class = "toc-backref" href = "#id13 5 "> removebadthoughts< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 6 "> removebadthoughts< / a > < / h2 >
< p > This script remove negative thoughts from your dwarves. Very useful against
< p > This script remove negative thoughts from your dwarves. Very useful against
tantrum spirals.< / p >
tantrum spirals.< / p >
< p > The script can target a single creature, when used with the < tt class = "docutils literal" > him< / tt > argument,
< p > The script can target a single creature, when used with the < tt class = "docutils literal" > him< / tt > argument,
@ -2925,7 +2969,7 @@ but in the short term your dwarves will get much more joyful.</p>
quickly after you unpause.< / p >
quickly after you unpause.< / p >
< / div >
< / div >
< div class = "section" id = "exterminate" >
< div class = "section" id = "exterminate" >
< h2 > < a class = "toc-backref" href = "#id13 6 "> exterminate< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 7 "> exterminate< / a > < / h2 >
< p > Kills any unit of a given race.< / p >
< p > Kills any unit of a given race.< / p >
< p > With no argument, lists the available races and count eligible targets.< / p >
< p > With no argument, lists the available races and count eligible targets.< / p >
< p > With the special argument < tt class = "docutils literal" > him< / tt > , targets only the selected creature.< / p >
< p > With the special argument < tt class = "docutils literal" > him< / tt > , targets only the selected creature.< / p >
@ -2954,7 +2998,7 @@ exterminate elve magma
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "source" >
< div class = "section" id = "source" >
< h2 > < a class = "toc-backref" href = "#id13 7 "> source< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 8 "> source< / a > < / h2 >
< p > Create an infinite magma or water source or drain on a tile.< / p >
< p > Create an infinite magma or water source or drain on a tile.< / p >
< p > This script registers a map tile as a liquid source, and every 12 game ticks
< p > This script registers a map tile as a liquid source, and every 12 game ticks
that tile receives or remove 1 new unit of flow based on the configuration.< / p >
that tile receives or remove 1 new unit of flow based on the configuration.< / p >
@ -2976,14 +3020,14 @@ source add water 0 - water drain
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "masspit" >
< div class = "section" id = "masspit" >
< h2 > < a class = "toc-backref" href = "#id13 8 "> masspit< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id13 9 "> masspit< / a > < / h2 >
< p > Designate all creatures in cages on top of a pit/pond activity zone for pitting.
< p > Designate all creatures in cages on top of a pit/pond activity zone for pitting.
Works best with an animal stockpile on top of the zone.< / p >
Works best with an animal stockpile on top of the zone.< / p >
< p > Works with a zone number as argument (eg < tt class = "docutils literal" > Activity Zone #6< / tt > -> < tt class = "docutils literal" > masspit 6< / tt > )
< p > Works with a zone number as argument (eg < tt class = "docutils literal" > Activity Zone #6< / tt > -> < tt class = "docutils literal" > masspit 6< / tt > )
or with the game cursor on top of the area.< / p >
or with the game cursor on top of the area.< / p >
< / div >
< / div >
< div class = "section" id = "digfort" >
< div class = "section" id = "digfort" >
< h2 > < a class = "toc-backref" href = "#id1 39 "> digfort< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 40 "> digfort< / a > < / h2 >
< p > A script to designate an area for digging according to a plan in csv format.< / p >
< p > A script to designate an area for digging according to a plan in csv format.< / p >
< p > This script, inspired from quickfort, can designate an area for digging.
< p > This script, inspired from quickfort, can designate an area for digging.
Your plan should be stored in a .csv file like this:< / p >
Your plan should be stored in a .csv file like this:< / p >
@ -3005,15 +3049,16 @@ as an offset for the pattern: instead of starting at the cursor, it will start
Dwarf Fortress.exe is found).< / p >
Dwarf Fortress.exe is found).< / p >
< / div >
< / div >
< div class = "section" id = "invasion-now" >
< div class = "section" id = "invasion-now" >
< h2 > < a class = "toc-backref" href = "#id14 0 "> invasion-now< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 1 "> invasion-now< / a > < / h2 >
< p > Triggers an invasion, or several in the near future.< / p >
< p > Triggers an invasion, or several in the near future.< / p >
< p > < cite > invasion-now civName< / cite > trigger an invasion from the civilization with the id civName, starting in about ten ticks< / p >
< p > < cite > invasion-now civName< / cite > trigger an invasion from the civilization with the id civName, starting in about ten ticks< / p >
< p > < cite > invasion-now civName start< / cite > trigger an invasion from civName in a number of ticks between 10*start and 11*start-1 (inclusive)< / p >
< p > < cite > invasion-now civName start< / cite > trigger an invasion from civName in a number of ticks between 10*start and 11*start-1 (inclusive)< / p >
< p > < cite > invasion-now civName start end< / cite > trigger an invasion from civName in about 10*start ticks, and continue triggering invasions every ten ticks afterward until about 10*end ticks have passed< / p >
< p > < cite > invasion-now civName start end< / cite > trigger an invasion from civName in about 10*start ticks, and continue triggering invasions every ten ticks afterward until about 10*end ticks have passed< / p >
< p > Probably fails if the start time of a triggered invasion is later than the start of the next year.
< p > Probably fails if the start time of a triggered invasion is later than the start of the next year.< / p >
digmat
< / div >
======
< div class = "section" id = "digmat" >
Designates a tile for digging. Monitors the tile, and when it is dug out, add
< h2 > < a class = "toc-backref" href = "#id142" > digmat< / a > < / h2 >
< p > Designates a tile for digging. Monitors the tile, and when it is dug out, add
surrounding discovered tiles of the same material for digging. Similar to 'digv',
surrounding discovered tiles of the same material for digging. Similar to 'digv',
but less cheaty. Works for stone layers, soil layers, veins, etc.< / p >
but less cheaty. Works for stone layers, soil layers, veins, etc.< / p >
< p > If the tile you call the script on already has a digging designation, reuse the
< p > If the tile you call the script on already has a digging designation, reuse the
@ -3021,7 +3066,7 @@ same designation for future digging (eg dig up/downstairs). When digging stairs,
also designate tiles on z-1 and z+1 when they are discovered.< / p >
also designate tiles on z-1 and z+1 when they are discovered.< / p >
< / div >
< / div >
< div class = "section" id = "superdwarf" >
< div class = "section" id = "superdwarf" >
< h2 > < a class = "toc-backref" href = "#id14 1 "> superdwarf< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 3 "> superdwarf< / a > < / h2 >
< p > Similar to fastdwarf, per-creature.< / p >
< p > Similar to fastdwarf, per-creature.< / p >
< p > To make any creature superfast, target it ingame using 'v' and:< / p >
< p > To make any creature superfast, target it ingame using 'v' and:< / p >
< pre class = "literal-block" >
< pre class = "literal-block" >
@ -3031,17 +3076,17 @@ superdwarf add
< p > This plugin also shortens the 'sleeping' and 'on break' periods of targets.< / p >
< p > This plugin also shortens the 'sleeping' and 'on break' periods of targets.< / p >
< / div >
< / div >
< div class = "section" id = "drainaquifer" >
< div class = "section" id = "drainaquifer" >
< h2 > < a class = "toc-backref" href = "#id14 2 "> drainaquifer< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 4 "> drainaquifer< / a > < / h2 >
< p > Remove all 'aquifer' tag from the map blocks. Irreversible.< / p >
< p > Remove all 'aquifer' tag from the map blocks. Irreversible.< / p >
< / div >
< / div >
< div class = "section" id = "deathcause" >
< div class = "section" id = "deathcause" >
< h2 > < a class = "toc-backref" href = "#id14 3 "> deathcause< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 5 "> deathcause< / a > < / h2 >
< p > Focus a body part ingame, and this script will display the cause of death of
< p > Focus a body part ingame, and this script will display the cause of death of
the creature.
the creature.
Also works when selecting units from the 'u'nitlist viewscreen.< / p >
Also works when selecting units from the 'u'nitlist viewscreen.< / p >
< / div >
< / div >
< div class = "section" id = "lua" >
< div class = "section" id = "lua" >
< h2 > < a class = "toc-backref" href = "#id14 4 "> lua< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 6 "> lua< / a > < / h2 >
< p > There are the following ways to invoke this command:< / p >
< p > There are the following ways to invoke this command:< / p >
< ol class = "arabic" >
< ol class = "arabic" >
< li > < p class = "first" > < tt class = "docutils literal" > lua< / tt > (without any parameters)< / p >
< li > < p class = "first" > < tt class = "docutils literal" > lua< / tt > (without any parameters)< / p >
@ -3060,11 +3105,11 @@ directory. If the filename is not supplied, it loads "dfhack.lua".</p>
< / ol >
< / ol >
< / div >
< / div >
< div class = "section" id = "embark" >
< div class = "section" id = "embark" >
< h2 > < a class = "toc-backref" href = "#id14 5 "> embark< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 7 "> embark< / a > < / h2 >
< p > Allows to embark anywhere. Currently windows only.< / p >
< p > Allows to embark anywhere. Currently windows only.< / p >
< / div >
< / div >
< div class = "section" id = "lever" >
< div class = "section" id = "lever" >
< h2 > < a class = "toc-backref" href = "#id14 6 "> lever< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 8 "> lever< / a > < / h2 >
< p > Allow manipulation of in-game levers from the dfhack console.< / p >
< p > Allow manipulation of in-game levers from the dfhack console.< / p >
< p > Can list levers, including state and links, with:< / p >
< p > Can list levers, including state and links, with:< / p >
< pre class = "literal-block" >
< pre class = "literal-block" >
@ -3078,7 +3123,7 @@ lever pull 42 --now
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "stripcaged" >
< div class = "section" id = "stripcaged" >
< h2 > < a class = "toc-backref" href = "#id14 7 "> stripcaged< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id14 9 "> stripcaged< / a > < / h2 >
< p > For dumping items inside cages. Will mark selected items for dumping, then
< p > For dumping items inside cages. Will mark selected items for dumping, then
a dwarf may come and actually dump it. See also < tt class = "docutils literal" > autodump< / tt > .< / p >
a dwarf may come and actually dump it. See also < tt class = "docutils literal" > autodump< / tt > .< / p >
< p > With the < tt class = "docutils literal" > items< / tt > argument, only dumps items laying in the cage, excluding
< p > With the < tt class = "docutils literal" > items< / tt > argument, only dumps items laying in the cage, excluding
@ -3096,7 +3141,7 @@ stripcaged weapons 25321 34228
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "create-items" >
< div class = "section" id = "create-items" >
< h2 > < a class = "toc-backref" href = "#id1 48 "> create-items< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 50 "> create-items< / a > < / h2 >
< p > Spawn arbitrary items under the cursor.< / p >
< p > Spawn arbitrary items under the cursor.< / p >
< p > The first argument gives the item category, the second gives the material,
< p > The first argument gives the item category, the second gives the material,
and the optionnal third gives the number of items to create (defaults to 20).< / p >
and the optionnal third gives the number of items to create (defaults to 20).< / p >
@ -3118,7 +3163,7 @@ create-items bar adamantine
< / pre >
< / pre >
< / div >
< / div >
< div class = "section" id = "locate-ore" >
< div class = "section" id = "locate-ore" >
< h2 > < a class = "toc-backref" href = "#id1 49 "> locate-ore< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 51 "> locate-ore< / a > < / h2 >
< p > Scan the map for metal ores.< / p >
< p > Scan the map for metal ores.< / p >
< p > Finds and designate for digging one tile of a specific metal ore.
< p > Finds and designate for digging one tile of a specific metal ore.
Only works for native metal ores, does not handle reaction stuff (eg STEEL).< / p >
Only works for native metal ores, does not handle reaction stuff (eg STEEL).< / p >
@ -3131,7 +3176,7 @@ locate-ore iron</dd>
< / dl >
< / dl >
< / div >
< / div >
< div class = "section" id = "soundsense-season" >
< div class = "section" id = "soundsense-season" >
< h2 > < a class = "toc-backref" href = "#id15 0 "> soundsense-season< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 2 "> soundsense-season< / a > < / h2 >
< p > It is a well known issue that Soundsense cannot detect the correct
< p > It is a well known issue that Soundsense cannot detect the correct
current season when a savegame is loaded and has to play random
current season when a savegame is loaded and has to play random
season music until a season switch occurs.< / p >
season music until a season switch occurs.< / p >
@ -3140,7 +3185,7 @@ to gamelog.txt on every map load to fix this. For best results
call the script from < tt class = "docutils literal" > dfhack.init< / tt > .< / p >
call the script from < tt class = "docutils literal" > dfhack.init< / tt > .< / p >
< / div >
< / div >
< div class = "section" id = "multicmd" >
< div class = "section" id = "multicmd" >
< h2 > < a class = "toc-backref" href = "#id15 1 "> multicmd< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 3 "> multicmd< / a > < / h2 >
< p > Run multiple dfhack commands. The argument is split around the
< p > Run multiple dfhack commands. The argument is split around the
character ; and all parts are run sequencially as independent
character ; and all parts are run sequencially as independent
dfhack commands. Useful for hotkeys.< / p >
dfhack commands. Useful for hotkeys.< / p >
@ -3151,7 +3196,7 @@ dfhack commands. Useful for hotkeys.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "in-game-interface-tools" >
< div class = "section" id = "in-game-interface-tools" >
< h1 > < a class = "toc-backref" href = "#id15 2 "> In-game interface tools< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id15 4 "> In-game interface tools< / a > < / h1 >
< p > These tools work by displaying dialogs or overlays in the game window, and
< p > These tools work by displaying dialogs or overlays in the game window, and
are mostly implemented by lua scripts.< / p >
are mostly implemented by lua scripts.< / p >
< div class = "note" >
< div class = "note" >
@ -3160,13 +3205,15 @@ are mostly implemented by lua scripts.</p>
display the word " DFHack" on the screen somewhere while active.< / p >
display the word " DFHack" on the screen somewhere while active.< / p >
< p > When that is not appropriate because they merely add keybinding hints to
< p > When that is not appropriate because they merely add keybinding hints to
existing DF screens, they deliberately use red instead of green for the key.< / p >
existing DF screens, they deliberately use red instead of green for the key.< / p >
< p class = "last" > As an exception, the tweak plugin described above does not follow this
< p > As an exception, the tweak plugin described above does not follow this
guideline because it arguably just fixes small usability bugs in the game UI.< / p >
guideline because it arguably just fixes small usability bugs in the game UI.< / p >
< p class = "last" > All of these tools are disabled by default - in order to make them available,
you must enable the plugins which provide them.< / p >
< / div >
< / div >
< div class = "section" id = "dwarf-manipulator" >
< div class = "section" id = "dwarf-manipulator" >
< h2 > < a class = "toc-backref" href = "#id15 3 "> Dwarf Manipulator< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 5 "> Dwarf Manipulator< / a > < / h2 >
< p > Implemented by the manipulator plugin. To activate, open the unit screen and
< p > Implemented by the 'manipulator' plugin.< / p >
press 'l'.< / p >
< p > To activate, open the unit screen and press 'l'.< / p >
< img alt = "images/manipulator.png" src = "images/manipulator.png" / >
< img alt = "images/manipulator.png" src = "images/manipulator.png" / >
< p > This tool implements a Dwarf Therapist-like interface within the game UI. The
< 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
far left column displays the unit's Happiness (color-coded based on its
@ -3203,7 +3250,8 @@ cursor onto that cell instead of toggling it.</li>
directly to the main dwarf mode screen.< / p >
directly to the main dwarf mode screen.< / p >
< / div >
< / div >
< div class = "section" id = "search" >
< div class = "section" id = "search" >
< h2 > < a class = "toc-backref" href = "#id154" > Search< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id156" > Search< / a > < / h2 >
< p > Implemented by the 'search' plugin.< / p >
< p > The search plugin adds search to the Stocks, Animals, Trading, Stockpile,
< p > The search plugin adds search to the Stocks, Animals, Trading, Stockpile,
Noble (assignment candidates), Military (position candidates), Burrows
Noble (assignment candidates), Military (position candidates), Burrows
(unit list), Rooms, Announcements, Job List and Unit List screens.< / p >
(unit list), Rooms, Announcements, Job List and Unit List screens.< / p >
@ -3233,10 +3281,11 @@ only fat or tallow by forbidding fats, then searching for fat/tallow, and
using Permit Fats again while the list is filtered.< / p >
using Permit Fats again while the list is filtered.< / p >
< / div >
< / div >
< div class = "section" id = "automaterial" >
< div class = "section" id = "automaterial" >
< h2 > < a class = "toc-backref" href = "#id155" > AutoMaterial< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id157" > AutoMaterial< / a > < / h2 >
< p > The automaterial plugin makes building constructions (walls, floors, fortifications,
< p > Implemented by the 'automaterial' plugin.< / p >
etc) a little bit easier by saving you from having to trawl through long lists of
< p > This makes building constructions (walls, floors, fortifications, etc) a little bit
materials each time you place one.< / p >
easier by saving you from having to trawl through long lists of materials each time
you place one.< / p >
< p > Firstly, it moves the last used material for a given construction type to the top of
< p > Firstly, it moves the last used material for a given construction type to the top of
the list, if there are any left. So if you build a wall with chalk blocks, the next
the list, if there are any left. So if you build a wall with chalk blocks, the next
time you place a wall the chalk blocks will be at the top of the list, regardless of
time you place a wall the chalk blocks will be at the top of the list, regardless of
@ -3260,7 +3309,7 @@ materials, it returns you back to this screen. If you use this along with severa
enabled materials, you should be able to place complex constructions more conveniently.< / p >
enabled materials, you should be able to place complex constructions more conveniently.< / p >
< / div >
< / div >
< div class = "section" id = "gui-liquids" >
< div class = "section" id = "gui-liquids" >
< h2 > < a class = "toc-backref" href = "#id15 6 "> gui/liquids< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 8 "> gui/liquids< / a > < / h2 >
< p > To use, bind to a key (the example config uses Alt-L) and activate in the 'k' mode.< / p >
< p > To use, bind to a key (the example config uses Alt-L) and activate in the 'k' mode.< / p >
< img alt = "images/liquids.png" src = "images/liquids.png" / >
< img alt = "images/liquids.png" src = "images/liquids.png" / >
< p > This script is a gui front-end to the liquids plugin and works similar to it,
< p > This script is a gui front-end to the liquids plugin and works similar to it,
@ -3280,7 +3329,7 @@ rivers power water wheels even when full and technically not flowing.</p>
< p > After setting up the desired operations using the described keys, use < tt class = "docutils literal" > Enter< / tt > to apply them.< / p >
< p > After setting up the desired operations using the described keys, use < tt class = "docutils literal" > Enter< / tt > to apply them.< / p >
< / div >
< / div >
< div class = "section" id = "gui-mechanisms" >
< div class = "section" id = "gui-mechanisms" >
< h2 > < a class = "toc-backref" href = "#id15 7 "> gui/mechanisms< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id15 9 "> gui/mechanisms< / a > < / h2 >
< p > To use, bind to a key (the example config uses Ctrl-M) and activate in the 'q' mode.< / p >
< p > To use, bind to a key (the example config uses Ctrl-M) and activate in the 'q' mode.< / p >
< img alt = "images/mechanisms.png" src = "images/mechanisms.png" / >
< img alt = "images/mechanisms.png" src = "images/mechanisms.png" / >
< p > Lists mechanisms connected to the building, and their links. Navigating the list centers
< p > Lists mechanisms connected to the building, and their links. Navigating the list centers
@ -3290,7 +3339,7 @@ focus on the current one. Shift-Enter has an effect equivalent to pressing Enter
re-entering the mechanisms ui.< / p >
re-entering the mechanisms ui.< / p >
< / div >
< / div >
< div class = "section" id = "gui-rename" >
< div class = "section" id = "gui-rename" >
< h2 > < a class = "toc-backref" href = "#id1 58 "> gui/rename< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 60 "> gui/rename< / a > < / h2 >
< p > Backed by the rename plugin, this script allows entering the desired name
< p > Backed by the rename plugin, this script allows entering the desired name
via a simple dialog in the game ui.< / p >
via a simple dialog in the game ui.< / p >
< ul >
< ul >
@ -3313,7 +3362,7 @@ their species string.</p>
unit profession change to Ctrl-Shift-T.< / p >
unit profession change to Ctrl-Shift-T.< / p >
< / div >
< / div >
< div class = "section" id = "gui-room-list" >
< div class = "section" id = "gui-room-list" >
< h2 > < a class = "toc-backref" href = "#id1 59 "> gui/room-list< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 61 "> gui/room-list< / a > < / h2 >
< p > To use, bind to a key (the example config uses Alt-R) and activate in the 'q' mode,
< p > To use, bind to a key (the example config uses Alt-R) and activate in the 'q' mode,
either immediately or after opening the assign owner page.< / p >
either immediately or after opening the assign owner page.< / p >
< img alt = "images/room-list.png" src = "images/room-list.png" / >
< img alt = "images/room-list.png" src = "images/room-list.png" / >
@ -3321,7 +3370,7 @@ either immediately or after opening the assign owner page.</p>
list, and allows unassigning them.< / p >
list, and allows unassigning them.< / p >
< / div >
< / div >
< div class = "section" id = "gui-choose-weapons" >
< div class = "section" id = "gui-choose-weapons" >
< h2 > < a class = "toc-backref" href = "#id16 0 "> gui/choose-weapons< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 2 "> gui/choose-weapons< / a > < / h2 >
< p > Bind to a key (the example config uses Ctrl-W), and activate in the Equip-> View/Customize
< p > Bind to a key (the example config uses Ctrl-W), and activate in the Equip-> View/Customize
page of the military screen.< / p >
page of the military screen.< / p >
< p > Depending on the cursor location, it rewrites all 'individual choice weapon' entries
< p > Depending on the cursor location, it rewrites all 'individual choice weapon' entries
@ -3332,7 +3381,7 @@ only that entry, and does it even if it is not 'individual choice'.</p>
and may lead to inappropriate weapons being selected.< / p >
and may lead to inappropriate weapons being selected.< / p >
< / div >
< / div >
< div class = "section" id = "gui-guide-path" >
< div class = "section" id = "gui-guide-path" >
< h2 > < a class = "toc-backref" href = "#id16 1 "> gui/guide-path< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 3 "> gui/guide-path< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-P), and activate in the Hauling menu with
< p > Bind to a key (the example config uses Alt-P), and activate in the Hauling menu with
the cursor over a Guide order.< / p >
the cursor over a Guide order.< / p >
< img alt = "images/guide-path.png" src = "images/guide-path.png" / >
< img alt = "images/guide-path.png" src = "images/guide-path.png" / >
@ -3340,7 +3389,7 @@ the cursor over a Guide order.</p>
computes it when the order is executed for the first time.< / p >
computes it when the order is executed for the first time.< / p >
< / div >
< / div >
< div class = "section" id = "gui-workshop-job" >
< div class = "section" id = "gui-workshop-job" >
< h2 > < a class = "toc-backref" href = "#id16 2 "> gui/workshop-job< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 4 "> gui/workshop-job< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-A), and activate with a job selected in
< p > Bind to a key (the example config uses Alt-A), and activate with a job selected in
a workshop in the 'q' mode.< / p >
a workshop in the 'q' mode.< / p >
< img alt = "images/workshop-job.png" src = "images/workshop-job.png" / >
< img alt = "images/workshop-job.png" src = "images/workshop-job.png" / >
@ -3376,7 +3425,7 @@ and then try to change the input item type, now it won't let you select <em>plan
you have to unset the material first.< / p >
you have to unset the material first.< / p >
< / div >
< / div >
< div class = "section" id = "gui-workflow" >
< div class = "section" id = "gui-workflow" >
< h2 > < a class = "toc-backref" href = "#id16 3 "> gui/workflow< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 5 "> gui/workflow< / a > < / h2 >
< p > Bind to a key (the example config uses Alt-W), and activate with a job selected
< p > Bind to a key (the example config uses Alt-W), and activate with a job selected
in a workshop in the 'q' mode.< / p >
in a workshop in the 'q' mode.< / p >
< img alt = "images/workflow.png" src = "images/workflow.png" / >
< img alt = "images/workflow.png" src = "images/workflow.png" / >
@ -3423,7 +3472,7 @@ the current stock value. The bright green dashed line is the target
limit (maximum) and the dark green line is that minus the gap (minimum).< / p >
limit (maximum) and the dark green line is that minus the gap (minimum).< / p >
< / div >
< / div >
< div class = "section" id = "gui-assign-rack" >
< div class = "section" id = "gui-assign-rack" >
< h2 > < a class = "toc-backref" href = "#id16 4 "> gui/assign-rack< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 6 "> gui/assign-rack< / a > < / h2 >
< p > Bind to a key (the example config uses P), and activate when viewing a weapon
< p > Bind to a key (the example config uses P), and activate when viewing a weapon
rack in the 'q' mode.< / p >
rack in the 'q' mode.< / p >
< img alt = "images/assign-rack.png" src = "images/assign-rack.png" / >
< img alt = "images/assign-rack.png" src = "images/assign-rack.png" / >
@ -3447,7 +3496,7 @@ the intended user. In order to aid in the choice, it shows the number
of currently assigned racks for every valid squad.< / p >
of currently assigned racks for every valid squad.< / p >
< / div >
< / div >
< div class = "section" id = "gui-advfort" >
< div class = "section" id = "gui-advfort" >
< h2 > < a class = "toc-backref" href = "#id16 5 "> gui/advfort< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 7 "> gui/advfort< / a > < / h2 >
< p > This script allows to perform jobs in adventure mode. For more complete help
< p > This script allows to perform jobs in adventure mode. For more complete help
press '?' while script is running. It's most confortable to use this as a
press '?' while script is running. It's most confortable to use this as a
keybinding. (e.g. keybinding set Ctrl-T gui/advfort). Possible arguments:< / p >
keybinding. (e.g. keybinding set Ctrl-T gui/advfort). Possible arguments:< / p >
@ -3460,7 +3509,7 @@ implies -a</li>
< / ul >
< / ul >
< / div >
< / div >
< div class = "section" id = "gui-companion-order" >
< div class = "section" id = "gui-companion-order" >
< h2 > < a class = "toc-backref" href = "#id16 6 "> gui/companion-order< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 8 "> gui/companion-order< / a > < / h2 >
< p > A script to issue orders for companions. Select companions with lower case chars, issue orders with upper
< p > A script to issue orders for companions. Select companions with lower case chars, issue orders with upper
case. Must be in look or talk mode to issue command on tile.< / p >
case. Must be in look or talk mode to issue command on tile.< / p >
< ul class = "simple" >
< ul class = "simple" >
@ -3469,19 +3518,19 @@ case. Must be in look or talk mode to issue command on tile.</p>
< li > pick-up - try to take items into hand (also wield)< / li >
< li > pick-up - try to take items into hand (also wield)< / li >
< li > unequip - remove and drop equipment< / li >
< li > unequip - remove and drop equipment< / li >
< li > unwield - drop held items< / li >
< li > unwield - drop held items< / li >
< li > wait - temporare ly remove from party< / li >
< li > wait - temporari ly remove from party< / li >
< li > follow - rejoin the party after " wait" < / li >
< li > follow - rejoin the party after " wait" < / li >
< li > leave - remove from party (can be rejoined by talking)< / li >
< li > leave - remove from party (can be rejoined by talking)< / li >
< / ul >
< / ul >
< / div >
< / div >
< div class = "section" id = "gui-gm-editor" >
< div class = "section" id = "gui-gm-editor" >
< h2 > < a class = "toc-backref" href = "#id16 7 "> gui/gm-editor< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id16 9 "> gui/gm-editor< / a > < / h2 >
< p > There are three ways to open this editor:< / p >
< p > There are three ways to open this editor:< / p >
< ul class = "simple" >
< ul class = "simple" >
< li > using gui/gm-editor command/keybinding - opens editor on what is selected
< li > using gui/gm-editor command/keybinding - opens editor on what is selected
or viewed (e.g. unit/item description screen)< / li >
or viewed (e.g. unit/item description screen)< / li >
< li > using gui/gm-editor < lua command> - executes lua command and opens editor on
< li > using gui/gm-editor < lua command> - executes lua command and opens editor on
it' s results (e.g. gui/gm-editor " df.global.world.items.all" shows all items)< / li >
its results (e.g. gui/gm-editor " df.global.world.items.all" shows all items)< / li >
< li > using gui/gm-editor dialog - shows an in game dialog to input lua command. Works
< li > using gui/gm-editor dialog - shows an in game dialog to input lua command. Works
the same as version above.< / li >
the same as version above.< / li >
< / ul >
< / ul >
@ -3490,7 +3539,7 @@ in-game help.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "behavior-mods" >
< div class = "section" id = "behavior-mods" >
< h1 > < a class = "toc-backref" href = "#id1 68 "> Behavior Mods< / a > < / h1 >
< h1 > < a class = "toc-backref" href = "#id1 70 "> Behavior Mods< / a > < / h1 >
< p > These plugins, when activated via configuration UI or by detecting certain
< p > These plugins, when activated via configuration UI or by detecting certain
structures in RAWs, modify the game engine behavior concerning the target
structures in RAWs, modify the game engine behavior concerning the target
objects to add features not otherwise present.< / p >
objects to add features not otherwise present.< / p >
@ -3501,20 +3550,20 @@ technical challenge, and do not represent any long-term plans to produce more
similar modifications of the game.< / p >
similar modifications of the game.< / p >
< / div >
< / div >
< div class = "section" id = "siege-engine" >
< div class = "section" id = "siege-engine" >
< h2 > < a class = "toc-backref" href = "#id1 69 "> Siege Engine< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 71 "> Siege Engine< / a > < / h2 >
< p > The siege-engine plugin enables siege engines to be linked to stockpiles, and
< p > The siege-engine plugin enables siege engines to be linked to stockpiles, and
aimed at an arbitrary rectangular area across Z levels, instead of the original
aimed at an arbitrary rectangular area across Z levels, instead of the original
four directions. Also, catapults can be ordered to load arbitrary objects, not
four directions. Also, catapults can be ordered to load arbitrary objects, not
just stones.< / p >
just stones.< / p >
< div class = "section" id = "rationale" >
< div class = "section" id = "rationale" >
< h3 > < a class = "toc-backref" href = "#id17 0 "> Rationale< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 2 "> Rationale< / a > < / h3 >
< p > Siege engines are a very interesting feature, but sadly almost useless in the current state
< p > Siege engines are a very interesting feature, but sadly almost useless in the current state
because they haven't been updated since 2D and can only aim in four directions. This is an
because they haven't been updated since 2D and can only aim in four directions. This is an
attempt to bring them more up to date until Toady has time to work on it. Actual improvements,
attempt to bring them more up to date until Toady has time to work on it. Actual improvements,
e.g. like making siegers bring their own, are something only Toady can do.< / p >
e.g. like making siegers bring their own, are something only Toady can do.< / p >
< / div >
< / div >
< div class = "section" id = "configuration-ui" >
< div class = "section" id = "configuration-ui" >
< h3 > < a class = "toc-backref" href = "#id17 1 "> Configuration UI< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 3 "> Configuration UI< / a > < / h3 >
< p > The configuration front-end to the plugin is implemented by the gui/siege-engine
< p > The configuration front-end to the plugin is implemented by the gui/siege-engine
script. Bind it to a key (the example config uses Alt-A) and activate after selecting
script. Bind it to a key (the example config uses Alt-A) and activate after selecting
a siege engine in 'q' mode.< / p >
a siege engine in 'q' mode.< / p >
@ -3537,7 +3586,7 @@ menu.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "power-meter" >
< div class = "section" id = "power-meter" >
< h2 > < a class = "toc-backref" href = "#id17 2 "> Power Meter< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 4 "> Power Meter< / a > < / h2 >
< p > The power-meter plugin implements a modified pressure plate that detects power being
< p > The power-meter plugin implements a modified pressure plate that detects power being
supplied to gear boxes built in the four adjacent N/S/W/E tiles.< / p >
supplied to gear boxes built in the four adjacent N/S/W/E tiles.< / p >
< p > The configuration front-end is implemented by the gui/power-meter script. Bind it to a
< p > The configuration front-end is implemented by the gui/power-meter script. Bind it to a
@ -3548,11 +3597,11 @@ in the build menu.</p>
configuration page, but configures parameters relevant to the modded power meter building.< / p >
configuration page, but configures parameters relevant to the modded power meter building.< / p >
< / div >
< / div >
< div class = "section" id = "steam-engine" >
< div class = "section" id = "steam-engine" >
< h2 > < a class = "toc-backref" href = "#id17 3 "> Steam Engine< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id17 5 "> Steam Engine< / a > < / h2 >
< p > The steam-engine plugin detects custom workshops with STEAM_ENGINE in
< p > The steam-engine plugin detects custom workshops with STEAM_ENGINE in
their token, and turns them into real steam engines.< / p >
their token, and turns them into real steam engines.< / p >
< div class = "section" id = "id1" >
< div class = "section" id = "id1" >
< h3 > < a class = "toc-backref" href = "#id17 4 "> Rationale< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 6 "> Rationale< / a > < / h3 >
< p > The vanilla game contains only water wheels and windmills as sources of
< p > The vanilla game contains only water wheels and windmills as sources of
power, but windmills give relatively little power, and water wheels require
power, but windmills give relatively little power, and water wheels require
flowing water, which must either be a real river and thus immovable and
flowing water, which must either be a real river and thus immovable and
@ -3563,7 +3612,7 @@ it can be done just by combining existing features of the game engine
in a new way with some glue code and a bit of custom logic.< / p >
in a new way with some glue code and a bit of custom logic.< / p >
< / div >
< / div >
< div class = "section" id = "construction" >
< div class = "section" id = "construction" >
< h3 > < a class = "toc-backref" href = "#id17 5 "> Construction< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 7 "> Construction< / a > < / h3 >
< p > The workshop needs water as its input, which it takes via a
< p > The workshop needs water as its input, which it takes via a
passable floor tile below it, like usual magma workshops do.
passable floor tile below it, like usual magma workshops do.
The magma version also needs magma.< / p >
The magma version also needs magma.< / p >
@ -3587,7 +3636,7 @@ short axles that can be built later than both of the engines.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "operation" >
< div class = "section" id = "operation" >
< h3 > < a class = "toc-backref" href = "#id17 6 "> Operation< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 8 "> Operation< / a > < / h3 >
< p > In order to operate the engine, queue the Stoke Boiler job (optionally
< p > In order to operate the engine, queue the Stoke Boiler job (optionally
on repeat). A furnace operator will come, possibly bringing a bar of fuel,
on repeat). A furnace operator will come, possibly bringing a bar of fuel,
and perform it. As a result, a " boiling water" item will appear
and perform it. As a result, a " boiling water" item will appear
@ -3618,7 +3667,7 @@ decrease it by further 4%, and also decrease the whole steam
use rate by 10%.< / p >
use rate by 10%.< / p >
< / div >
< / div >
< div class = "section" id = "explosions" >
< div class = "section" id = "explosions" >
< h3 > < a class = "toc-backref" href = "#id17 7 "> Explosions< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id17 9 "> Explosions< / a > < / h3 >
< p > The engine must be constructed using barrel, pipe and piston
< p > The engine must be constructed using barrel, pipe and piston
from fire-safe, or in the magma version magma-safe metals.< / p >
from fire-safe, or in the magma version magma-safe metals.< / p >
< p > During operation weak parts get gradually worn out, and
< p > During operation weak parts get gradually worn out, and
@ -3627,7 +3676,7 @@ toppled during operation by a building destroyer, or a
tantruming dwarf.< / p >
tantruming dwarf.< / p >
< / div >
< / div >
< div class = "section" id = "save-files" >
< div class = "section" id = "save-files" >
< h3 > < a class = "toc-backref" href = "#id1 7 8"> Save files< / a > < / h3 >
< h3 > < a class = "toc-backref" href = "#id1 80 "> Save files< / a > < / h3 >
< p > It should be safe to load and view engine-using fortresses
< p > It should be safe to load and view engine-using fortresses
from a DF version without DFHack installed, except that in such
from a DF version without DFHack installed, except that in such
case the engines won't work. However actually making modifications
case the engines won't work. However actually making modifications
@ -3638,7 +3687,7 @@ being generated.</p>
< / div >
< / div >
< / div >
< / div >
< div class = "section" id = "add-spatter" >
< div class = "section" id = "add-spatter" >
< h2 > < a class = "toc-backref" href = "#id1 79 "> Add Spatter< / a > < / h2 >
< h2 > < a class = "toc-backref" href = "#id1 81 "> Add Spatter< / a > < / h2 >
< p > This plugin makes reactions with names starting with < tt class = "docutils literal" > SPATTER_ADD_< / tt >
< p > This plugin makes reactions with names starting with < tt class = "docutils literal" > SPATTER_ADD_< / tt >
produce contaminants on the items instead of improvements. The produced
produce contaminants on the items instead of improvements. The produced
contaminants are immune to being washed away by water or destroyed by
contaminants are immune to being washed away by water or destroyed by