<p>Gets called when someone picks up an item, puts one down, or changes the way they are holding it. If an item is picked up, old_equip will be null. If an item is dropped, new_equip will be null. If an item is re-equipped in a new way, then neither will be null. You absolutely must NOT alter either old_equip or new_equip or you might break other plugins.</p>
<p>Gets called when someone picks up an item, puts one down, or changes the way they are holding it. If an item is picked up, old_equip will be null. If an item is dropped, new_equip will be null. If an item is re-equipped in a new way, then neither will be null. You absolutely must NOT alter either old_equip or new_equip or you might break other plugins.</p>
To change where new items are placed, first run the command with a destination type while an appropriate destination is selected.
To change where new items are placed, first run the command with a destination type while an appropriate destination is selected.
Options:
Options:
:floor:Subsequent items will be placed on the floor beneath the selected unit's feet.
:floor:Subsequent items will be placed on the floor beneath the selected unit's feet.
:item:Subsequent items will be stored inside the currently selected item.
:item:Subsequent items will be stored inside the currently selected item.
:building: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.
:building: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.
@ -569,6 +583,7 @@ infiniteSky
Automatically allocates new z-levels of sky at the top of the map as you build up, or on request allocates many levels all at once.
Automatically allocates new z-levels of sky at the top of the map as you build up, or on request allocates many levels all at once.
Examples:
Examples:
``infiniteSky n``
``infiniteSky n``
Raise the sky by n z-levels.
Raise the sky by n z-levels.
``infiniteSky enable/disable``
``infiniteSky enable/disable``
@ -614,9 +629,7 @@ general shape (WALL, FLOOR, etc.), general material (SOIL, STONE, MINERAL,
etc.), state of 'designated', 'hidden' and 'light' flags.
etc.), state of 'designated', 'hidden' and 'light' flags.
The properties of filter and paint can be partially defined. This means that
The properties of filter and paint can be partially defined. This means that
you can for example do something like this:
you can for example do something like this::
::
filter material STONE
filter material STONE
filter shape FORTIFICATION
filter shape FORTIFICATION
@ -624,8 +637,7 @@ you can for example do something like this:
This will turn all stone fortifications into floors, preserving the material.
This will turn all stone fortifications into floors, preserving the material.
Or this:
Or this::
::
filter shape FLOOR
filter shape FLOOR
filter material MINERAL
filter material MINERAL
@ -635,9 +647,7 @@ Turning mineral vein floors back into walls.
The tool also allows tweaking some tile flags:
The tool also allows tweaking some tile flags:
Or this:
Or this::
::
paint hidden 1
paint hidden 1
paint hidden 0
paint hidden 0
@ -647,23 +657,17 @@ This will hide previously revealed tiles (or show hidden with the 0 option).
More recently, the tool supports changing the base material of the tile to
More recently, the tool supports changing the base material of the tile to
an arbitrary stone from the raws, by creating new veins as required. Note
an arbitrary stone from the raws, by creating new veins as required. Note
that this mode paints under ice and constructions, instead of overwriting
that this mode paints under ice and constructions, instead of overwriting
them. To enable, use:
them. To enable, use::
::
paint stone MICROCLINE
paint stone MICROCLINE
This mode is incompatible with the regular ``material`` setting, so changing
This mode is incompatible with the regular ``material`` setting, so changing
it cancels the specific stone selection:
it cancels the specific stone selection::
::
paint material ANY
paint material ANY
Since different vein types have different drop rates, it is possible to choose
Since different vein types have different drop rates, it is possible to choose
which one to use in painting:
which one to use in painting::
::
paint veintype CLUSTER_SMALL
paint veintype CLUSTER_SMALL
@ -671,9 +675,7 @@ When the chosen type is ``CLUSTER`` (the default), the tool may automatically
choose to use layer stone or lava stone instead of veins if its material matches
choose to use layer stone or lava stone instead of veins if its material matches
the desired one.
the desired one.
Any paint or filter option (or the entire paint or filter) can be disabled entirely by using the ANY keyword:
Any paint or filter option (or the entire paint or filter) can be disabled entirely by using the ANY keyword::
::
paint hidden ANY
paint hidden ANY
paint shape ANY
paint shape ANY
@ -682,14 +684,13 @@ Any paint or filter option (or the entire paint or filter) can be disabled entir
filter any
filter any
You can use several different brushes for painting tiles:
You can use several different brushes for painting tiles:
* Point. (point)
* Point. (point)
* Rectangular range. (range)
* Rectangular range. (range)
* A column ranging from current cursor to the first solid tile above. (column)
* A column ranging from current cursor to the first solid tile above. (column)
* DF map block - 16x16 tiles, in a regular grid. (block)
* DF map block - 16x16 tiles, in a regular grid. (block)
Example:
Example::
::
range 10 10 1
range 10 10 1
@ -720,6 +721,7 @@ Fills all the adamantine veins again. Veins that were hollow will be left
alone.
alone.
Options:
Options:
:hollow:fill in naturally hollow veins too
:hollow:fill in naturally hollow veins too
Beware that filling in hollow veins will trigger a demon invasion on top of
Beware that filling in hollow veins will trigger a demon invasion on top of
@ -730,6 +732,7 @@ plant
A tool for creating shrubs, growing, or getting rid of them.
A tool for creating shrubs, growing, or getting rid of them.
Subcommands:
Subcommands:
:create:Create a new shrub/sapling.
:create:Create a new shrub/sapling.
:grow:Make saplings grow into trees.
:grow:Make saplings grow into trees.
:extirpate:Kills trees and shrubs, turning them into ashes instantly.
:extirpate:Kills trees and shrubs, turning them into ashes instantly.
@ -745,6 +748,7 @@ Works on all shrubs of the map if the cursor is hidden.
``extirpate`` and ``immolate`` work only on the plant under the cursor.
``extirpate`` and ``immolate`` work only on the plant under the cursor.
For mass effects, use one of the additional options:
For mass effects, use one of the additional options:
:shrubs:affect all shrubs on the map
:shrubs:affect all shrubs on the map
:trees:affect all trees on the map
:trees:affect all trees on the map
:all:affect every plant!
:all:affect every plant!
@ -976,12 +980,12 @@ After you have a pattern set, you can use 'expdig' to apply it again.
Examples:
Examples:
designate the diagonal 5 patter over all hidden tiles:
``expdig diag5 hidden``
* expdig diag5 hidden
Designate the diagonal 5 patter over all hidden tiles
apply last used pattern and filter:
``expdig``
* expdig
Apply last used pattern and filter
Take current designations and replace them with the ladder pattern:
``expdig ladder designated``
* expdig ladder designated
Take current designations and replace them with the ladder pattern
digcircle
digcircle
---------
---------
@ -1070,7 +1074,8 @@ Other Options:
Example:
Example:
'filltraffic H' - When used in a room with doors, it will set traffic to HIGH in just that room.
``filltraffic H``
When used in a room with doors, it will set traffic to HIGH in just that room.
alltraffic
alltraffic
----------
----------
@ -1085,7 +1090,8 @@ Traffic Type Codes:
Example:
Example:
'alltraffic N' - Set traffic to 'normal' for all tiles.
``alltraffic N``
Set traffic to 'normal' for all tiles.
restrictliquid
restrictliquid
--------------
--------------
@ -1254,9 +1260,6 @@ Subcommands that persist until disabled or DF quit:
:stable-cursor:Saves the exact cursor position between t/q/k/d/etc menus of dwarfmode.
:stable-cursor:Saves the exact cursor position between t/q/k/d/etc menus of dwarfmode.
:patrol-duty:Makes Train orders not count as patrol duty to stop unhappy thoughts.
:patrol-duty: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).
Does NOT fix the problem when soldiers go off-duty (i.e. civilian).
:readable-build-plate:Fixes rendering of creature weight limits in pressure plate build menu.
..image:: images/tweak-plate.png
:stable-temp:Fixes performance bug 6012 by squashing jitter in temperature updates.
:stable-temp: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%
In very item-heavy forts with big stockpiles this can improve FPS by 50-100%
@ -1264,9 +1267,6 @@ Subcommands that persist until disabled or DF quit:
of item temperature is crossed in no more than specified number of frames
of item temperature is crossed in no more than specified number of frames
when updating from the environment temperature. This reduces the time it
when updating from the environment temperature. This reduces the time it
takes for stable-temp to stop updates again when equilibrium is disturbed.
takes for stable-temp to stop updates again when equilibrium is disturbed.
:fix-dimensions: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.
:advmode-contained:Works around bug 6202, i.e. custom reactions with container inputs
:advmode-contained: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
in advmode. The issue is that the screen tries to force you to select
the contents separately from the container. This forcefully skips child
the contents separately from the container. This forcefully skips child
@ -1281,14 +1281,6 @@ Subcommands that persist until disabled or DF quit:
..image:: images/tweak-mil-color.png
..image:: images/tweak-mil-color.png
:military-training:Speeds up melee squad training by removing an almost certainly
unintended inverse dependency of training speed on unit count
(i.e. the more units you have, the slower it becomes), and making
the units spar more.
:hive-crash:The hive code crashes if there are ungathered products in a hive without bees (bug 6368).
This tweak prevents it by auto-gathering the products if this happens.
:craft-age-wear:Fixes the behavior of crafted items wearing out over time (bug 6003).
:craft-age-wear:Fixes the behavior of crafted items wearing out over time (bug 6003).
With this tweak, items made from cloth and leather will gain a level of wear every 20 years.
With this tweak, items made from cloth and leather will gain a level of wear every 20 years.
@ -1444,6 +1436,7 @@ job
Command for general job query and manipulation.
Command for general job query and manipulation.
Options:
Options:
*no extra options*
*no extra options*
Print details of the current job. The job can be selected
Print details of the current job. The job can be selected
in a workshop, or the unit/jobs screen.
in a workshop, or the unit/jobs screen.
@ -1473,6 +1466,7 @@ Intended to be used as a keybinding:
job-duplicate
job-duplicate
-------------
-------------
Duplicate the selected job in a workshop:
Duplicate the selected job in a workshop:
* In 'q' mode, when a job is highlighted within a workshop or furnace building,
* In 'q' mode, when a job is highlighted within a workshop or furnace building,
instantly duplicates the job.
instantly duplicates the job.
@ -1583,44 +1577,37 @@ The subsequent parts are optional:
Constraint examples
Constraint examples
...................
...................
Keep metal bolts within 900-1000, and wood/bone within 150-200.
Keep metal bolts within 900-1000, and wood/bone within 150-200::
@ -1630,8 +1617,7 @@ Make sure there are always 80-100 units of dimple dye.
on the Mill Plants job to MUSHROOM_CUP_DIMPLE using the 'job item-material'
on the Mill Plants job to MUSHROOM_CUP_DIMPLE using the 'job item-material'
command. Otherwise the plugin won't be able to deduce the output material.
command. Otherwise the plugin won't be able to deduce the output material.
Maintain 10-100 locally-made crafts of exceptional quality.
Maintain 10-100 locally-made crafts of exceptional quality::
::
workflow count CRAFTS///LOCAL,EXCEPTIONAL 100 90
workflow count CRAFTS///LOCAL,EXCEPTIONAL 100 90
@ -1902,8 +1888,7 @@ autochop
Automatically manage tree cutting designation to keep available logs withing given
Automatically manage tree cutting designation to keep available logs withing given
quotas.
quotas.
Open the dashboard by running:
Open the dashboard by running::
::
getplants autochop
getplants autochop
@ -1948,6 +1933,7 @@ twice.
dfusion
dfusion
-------
-------
This is the DFusion lua plugin system by Warmist, running as a DFHack plugin. There are two parts to this plugin: an interactive script that shows a text based menu and lua modules. Some of the functionality of is intentionaly left out of the menu:
This is the DFusion lua plugin system by Warmist, running as a DFHack plugin. There are two parts to this plugin: an interactive script that shows a text based menu and lua modules. Some of the functionality of is intentionaly left out of the menu:
:Friendship:a binary plugin that allows multi race forts (to use make a script that imports plugins.dfusion.friendship and use Friendship:install{table} table should contain list of race names.)
:Friendship:a binary plugin that allows multi race forts (to use make a script that imports plugins.dfusion.friendship and use Friendship:install{table} table should contain list of race names.)
:Embark:a binary plugin that allows multi race embark (to use make a script that imports plugins.dfusion.embark and use Embark:install{table} table should contain list of race names or list of pairs (race-name, caste_id)).
:Embark:a binary plugin that allows multi race embark (to use make a script that imports plugins.dfusion.embark and use Embark:install{table} table should contain list of race names or list of pairs (race-name, caste_id)).
@ -2229,8 +2215,7 @@ use in your farming plots.
With a seed type, the script will grow 100 of these seeds, ready to be
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.
harvested. You can change the number with a 2nd argument.
For example, to grow 40 plump helmet spawn:
For example, to grow 40 plump helmet spawn::
::
growcrops plump 40
growcrops plump 40
@ -2259,6 +2244,7 @@ Only works for native metal ores, does not handle reaction stuff (eg STEEL).
When invoked with the ``list`` argument, lists metal ores available on the map.
When invoked with the ``list`` argument, lists metal ores available on the map.
Examples::
Examples::
locate-ore list
locate-ore list
locate-ore hematite
locate-ore hematite
locate-ore iron
locate-ore iron
@ -2300,6 +2286,7 @@ character ; and all parts are run sequencially as independent
dfhack commands. Useful for hotkeys.
dfhack commands. Useful for hotkeys.
Example::
Example::
multicmd locate-ore iron ; digv
multicmd locate-ore iron ; digv
quicksave
quicksave
@ -2411,6 +2398,19 @@ alternatively pass cage IDs as arguments::
stripcaged weapons 25321 34228
stripcaged weapons 25321 34228
teleport
========
Teleports a unit to given coordinates.
Examples::
teleport showunitid - prints unitid beneath cursor
teleport showpos - prints coordinates beneath cursor
teleport unit 1234 x 56 y 115 z 26 - teleports unit 1234 to 56,115,26
One or both of ``unit`` and ``x``/``y``/``z`` coordinate positions must be
specified. If one is omitted, the unit or position beneath the cursor is used.