|
|
@ -1,875 +0,0 @@
|
|
|
|
.. _quickfort-alias-guide:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quickfort keystroke alias reference
|
|
|
|
|
|
|
|
===================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aliases allow you to use simple words to represent complicated key sequences
|
|
|
|
|
|
|
|
when configuring buildings and stockpiles in quickfort ``#query`` and
|
|
|
|
|
|
|
|
``#config`` blueprints.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For example, say you have the following ``#build`` and ``#place`` blueprints::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#build masonry workshop
|
|
|
|
|
|
|
|
~, ~,~,`,`,`
|
|
|
|
|
|
|
|
~,wm,~,`,`,`
|
|
|
|
|
|
|
|
~, ~,~,`,`,`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#place stockpile for mason
|
|
|
|
|
|
|
|
~,~,~,s,s,s
|
|
|
|
|
|
|
|
~,~,~,s,s,s
|
|
|
|
|
|
|
|
~,~,~,s,s,s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and you want to configure the stockpile to hold only non-economic ("other")
|
|
|
|
|
|
|
|
stone and to give to the adjacent mason workshop. You could write the
|
|
|
|
|
|
|
|
key sequences directly::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query configure stockpile with expanded key sequences
|
|
|
|
|
|
|
|
~,~,~,s{Down 5}deb{Right}{Down 2}p^,`,`
|
|
|
|
|
|
|
|
~,~,~,g{Left 2}&, `,`
|
|
|
|
|
|
|
|
~,~,~,`, `,`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
or you could use aliases::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query configure stockpile with aliases
|
|
|
|
|
|
|
|
~,~,~,otherstone,`,`
|
|
|
|
|
|
|
|
~,~,~,give2left, `,`
|
|
|
|
|
|
|
|
~,~,~,`, `,`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If the stockpile had only a single tile, you could also replay both aliases in
|
|
|
|
|
|
|
|
a single cell::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query configure mason with multiple aliases in one cell
|
|
|
|
|
|
|
|
~,~,~,{otherstone}{give2left},`,`
|
|
|
|
|
|
|
|
~,~,~,`, `,`
|
|
|
|
|
|
|
|
~,~,~,`, `,`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
With aliases, blueprints are much easier to read and understand. They also
|
|
|
|
|
|
|
|
save you from having to copy the same long key sequences everywhere.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alias definition files
|
|
|
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DFHack comes with a library of aliases for you to use that are always
|
|
|
|
|
|
|
|
available when you run a ``#query`` blueprint. Many blueprints can be built
|
|
|
|
|
|
|
|
with just those aliases. This "standard alias library" is stored in
|
|
|
|
|
|
|
|
:source:`data/quickfort/aliases-common.txt` (installed under the ``hack`` folder
|
|
|
|
|
|
|
|
in your DFHack installation). The aliases in that file are described at the
|
|
|
|
|
|
|
|
`bottom of this document <quickfort-alias-library>`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Please do not edit the aliases in the standard library directly. The file will
|
|
|
|
|
|
|
|
get overwritten when DFHack is updated and you'll lose your changes. Instead,
|
|
|
|
|
|
|
|
add your custom aliases to :source:`dfhack-config/quickfort/aliases.txt` or
|
|
|
|
|
|
|
|
directly to your blueprints in an `#aliases <quickfort-aliases-blueprints>`
|
|
|
|
|
|
|
|
section. Your custom alias definitions take precedence over any definitions in
|
|
|
|
|
|
|
|
the standard library.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alias syntax and usage
|
|
|
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The syntax for defining aliases is::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aliasname: expansion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Where ``aliasname`` is at least two letters or digits long (dashes and
|
|
|
|
|
|
|
|
underscores are also allowed) and ``expansion`` is whatever you would type
|
|
|
|
|
|
|
|
into the DF UI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You use an alias by typing its name into a ``#query`` blueprint cell where you
|
|
|
|
|
|
|
|
want it to be applied. You can use an alias by itself or as part of a larger
|
|
|
|
|
|
|
|
sequence, potentially with other aliases. If the alias is the only text in the
|
|
|
|
|
|
|
|
cell, the alias name is matched and its expansion is used. If the alias has
|
|
|
|
|
|
|
|
other keys before or after it, the alias name must be surrounded in curly
|
|
|
|
|
|
|
|
brackets (:kbd:`{` and :kbd:`}`). An alias can be surrounded in curly brackets
|
|
|
|
|
|
|
|
even if it is the only text in the cell, it just isn't necessary. For example,
|
|
|
|
|
|
|
|
the following blueprint uses the ``aliasname`` alias by itself in the first
|
|
|
|
|
|
|
|
two rows and uses it as part of a longer sequence in the third row::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query apply alias 'aliasname' in three different ways
|
|
|
|
|
|
|
|
aliasname
|
|
|
|
|
|
|
|
{aliasname}
|
|
|
|
|
|
|
|
literaltext{aliasname}literaltext
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For a more concrete example of an alias definition, a simple alias that
|
|
|
|
|
|
|
|
configures a stockpile to have no bins (:kbd:`C`) and no barrels (:kbd:`E`)
|
|
|
|
|
|
|
|
assigned to it would look like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nocontainers: CE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The alias definition can also contain references to other aliases by including
|
|
|
|
|
|
|
|
the alias names in curly brackets. For example, ``nocontainers`` could be
|
|
|
|
|
|
|
|
equivalently defined like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nobins: C
|
|
|
|
|
|
|
|
nobarrels: E
|
|
|
|
|
|
|
|
nocontainers: {nobins}{nobarrels}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aliases used in alias definitions *must* be surrounded by curly brackets, even
|
|
|
|
|
|
|
|
if they are the only text in the definition::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
alias1: text1
|
|
|
|
|
|
|
|
alias2: alias1
|
|
|
|
|
|
|
|
alias3: {alias1}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Here, ``alias1`` and ``alias3`` expand to ``text1``, but ``alias2`` expands to
|
|
|
|
|
|
|
|
the literal text ``alias1``.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Keycodes
|
|
|
|
|
|
|
|
~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Non-printable characters, like the arrow keys, are represented by their
|
|
|
|
|
|
|
|
keycode name and are also surrounded by curly brackets, like ``{Right}`` or
|
|
|
|
|
|
|
|
``{Enter}``. Keycodes are used exactly like aliases -- they just have special
|
|
|
|
|
|
|
|
expansions that you wouldn't be able to write yourself. In order to avoid
|
|
|
|
|
|
|
|
naming conflicts between aliases and keycodes, the convention is to start
|
|
|
|
|
|
|
|
aliases with a lowercase letter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Any keycode name from the DF interface definition file
|
|
|
|
|
|
|
|
(data/init/interface.txt) is valid, but only a few keycodes are actually
|
|
|
|
|
|
|
|
useful for blueprints::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Up
|
|
|
|
|
|
|
|
Down
|
|
|
|
|
|
|
|
Left
|
|
|
|
|
|
|
|
Right
|
|
|
|
|
|
|
|
Enter
|
|
|
|
|
|
|
|
ESC
|
|
|
|
|
|
|
|
Backspace
|
|
|
|
|
|
|
|
Space
|
|
|
|
|
|
|
|
Tab
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is also one pseudo-keycode that quickfort recognizes::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Empty
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
which has an empty expansion. It is primarily useful for defining blank default values for `Sub-aliases`_.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Repetitions
|
|
|
|
|
|
|
|
~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Anything enclosed within curly brackets can also have a number, indicating how
|
|
|
|
|
|
|
|
many times that alias or keycode should be repeated. For example:
|
|
|
|
|
|
|
|
``{togglesequence 9}`` or ``{Down 5}`` will repeat the ``togglesequence``
|
|
|
|
|
|
|
|
alias nine times and the ``Down`` keycode five times, respectively.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Modifier keys
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ctrl, Alt, and Shift modifiers can be specified for the next key by adding
|
|
|
|
|
|
|
|
them into the key sequence. For example, Alt-h is written as ``{Alt}h``.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shorthand characters
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Some frequently-used keycodes are assigned shorthand characters. Think of them
|
|
|
|
|
|
|
|
as single-character aliases that don't need to be surrounded in curly
|
|
|
|
|
|
|
|
brackets::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& expands to {Enter}
|
|
|
|
|
|
|
|
@ expands to {Shift}{Enter}
|
|
|
|
|
|
|
|
~ expands to {Alt}
|
|
|
|
|
|
|
|
! expands to {Ctrl}
|
|
|
|
|
|
|
|
^ expands to {ESC}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you need literal versions of the shorthand characters, surround them in
|
|
|
|
|
|
|
|
curly brackets, for example: use ``{!}`` for a literal exclamation point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Built-in aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Most aliases that come with DFHack are in ``aliases-common.txt``, but there is
|
|
|
|
|
|
|
|
one alias built into the code for the common shorthand for "make room"::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r+ expands to r+{Enter}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This needs special code support since ``+`` can't normally be used in alias
|
|
|
|
|
|
|
|
names. You can use it just like any other alias, either by itself in a cell
|
|
|
|
|
|
|
|
(``r+``) or surrounded in curly brackets (``{r+}``).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sub-aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can specify sub-aliases that will only be defined while the current alias
|
|
|
|
|
|
|
|
is being resolved. This is useful for "injecting" custom behavior into the
|
|
|
|
|
|
|
|
middle of a larger alias. As a simple example, the ``givename`` alias is defined
|
|
|
|
|
|
|
|
like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
givename: !n{name}&
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note the use of the ``name`` alias inside of the ``givename`` expansion. In your
|
|
|
|
|
|
|
|
``#query`` blueprint, you could write something like this, say, while over your
|
|
|
|
|
|
|
|
main drawbridge::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{givename name="Front Gate"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The value that you give the sub-alias ``name`` will be used when the
|
|
|
|
|
|
|
|
``givename`` alias is expanded. Without sub-aliases, we'd have to define
|
|
|
|
|
|
|
|
``givename`` like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
givenameprefix: !n
|
|
|
|
|
|
|
|
givenamesuffix: &
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and use it like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{givenameprefix}Front Gate{givenamesuffix}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
which is more difficult to write and more difficult to understand.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A handy technique is to define an alias with some sort of default
|
|
|
|
|
|
|
|
behavior and then use sub-aliases to override that behavior as necessary. For
|
|
|
|
|
|
|
|
example, here is a simplified version of the standard ``quantum`` alias that
|
|
|
|
|
|
|
|
sets up quantum stockpiles::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
quantum_enable: {enableanimals}{enablefood}{enablefurniture}...
|
|
|
|
|
|
|
|
quantum: {linksonly}{nocontainers}{quantum_enable}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can use the default behavior of ``quantum_enable`` by just using the
|
|
|
|
|
|
|
|
``quantum`` alias by itself. But you can override ``quantum_enable`` to just
|
|
|
|
|
|
|
|
enable furniture for some specific stockpile like this::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{quantum quantum_enable={enablefurniture}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If an alias uses a sub-alias in its expansion, but the sub-alias is not defined
|
|
|
|
|
|
|
|
when the alias is used, quickfort will halt the ``#query`` blueprint with an
|
|
|
|
|
|
|
|
error. If you want your aliases to work regardless of whether sub-aliases are
|
|
|
|
|
|
|
|
defined, then you must define them with default values like ``quantum_enable``
|
|
|
|
|
|
|
|
above. If a default value should be blank, like the ``name`` sub-alias used by
|
|
|
|
|
|
|
|
the ``givename`` alias above, define it with the ``{Empty}`` pesudo-keycode::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
name: {Empty}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sub-aliases must be in one of the following formats::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subaliasname=keyswithnospaces
|
|
|
|
|
|
|
|
subaliasname="keys with spaces or {aliases}"
|
|
|
|
|
|
|
|
subaliasname={singlealias}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you specify both a sub-alias and a number of repetitions, the number for
|
|
|
|
|
|
|
|
repetitions goes last, right before the :kbd:`}`::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{alias subaliasname=value repetitions}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beyond query mode
|
|
|
|
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
``#query`` blueprints normally do things in DF :kbd:`q`\uery mode, but nobody
|
|
|
|
|
|
|
|
said that we have to *stay* in query mode. ``#query`` blueprints send
|
|
|
|
|
|
|
|
arbitrary key sequences to Dwarf Fortress. Anything you can do by typing keys
|
|
|
|
|
|
|
|
into DF, you can do in a ``#query`` blueprint. It is absolutely fine to
|
|
|
|
|
|
|
|
temporarily exit out of query mode, go into, say, hauling or zone or hotkey
|
|
|
|
|
|
|
|
mode, and do whatever needs to be done.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You just have to make certain to exit out of that alternate mode and get back
|
|
|
|
|
|
|
|
into :kbd:`q`\uery mode at the end of the key sequence. That way quickfort can
|
|
|
|
|
|
|
|
continue on configuring the next tile -- a tile configuration that assumes the
|
|
|
|
|
|
|
|
game is still in query mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For example, here is the standard library alias for giving a name to a zone::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namezone: ^i{givename}^q
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The first :kbd:`\^` exits out of query mode. Then :kbd:`i` enters zones mode.
|
|
|
|
|
|
|
|
We then reuse the standard alias for giving something a name. Finally, we exit
|
|
|
|
|
|
|
|
out of zones mode with another :kbd:`\^` and return to :kbd:`q`\uery mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. _quickfort-alias-library:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The DFHack standard alias library
|
|
|
|
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DFHack comes with many useful aliases for you to use in your blueprints. Many
|
|
|
|
|
|
|
|
blueprints can be built with just these aliases alone, with no custom aliases
|
|
|
|
|
|
|
|
required.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This section goes through all aliases provided by the DFHack standard alias
|
|
|
|
|
|
|
|
library, discussing their intended usage and detailing sub-aliases that you
|
|
|
|
|
|
|
|
can define to customize their behavior.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you do define your own custom aliases in
|
|
|
|
|
|
|
|
``dfhack-config/quickfort/aliases.txt``, try to build on library alias
|
|
|
|
|
|
|
|
components. For example, if you create an alias to modify particular furniture
|
|
|
|
|
|
|
|
stockpile settings, start your alias with ``{furnitureprefix}`` instead of
|
|
|
|
|
|
|
|
``s{Down 2}``. Using library prefixes will allow library sub-aliases to work
|
|
|
|
|
|
|
|
with your aliases just like they do with library aliases. In this case, using
|
|
|
|
|
|
|
|
``{furnitureprefix}`` will allow your stockpile customization alias to work
|
|
|
|
|
|
|
|
with both stockpiles and hauling routes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note that some aliases use the DFHack-provided search prompts. If you get errors
|
|
|
|
|
|
|
|
while running ``#query`` blueprints, ensure the DFHack `search-plugin` plugin is
|
|
|
|
|
|
|
|
enabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Naming aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These aliases give descriptive names to workshops, levers, stockpiles, zones,
|
|
|
|
|
|
|
|
etc. Dwarf Fortress building, stockpile, and zone names have a maximum length
|
|
|
|
|
|
|
|
of 20 characters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
======== ===========
|
|
|
|
|
|
|
|
Alias Sub-aliases
|
|
|
|
|
|
|
|
======== ===========
|
|
|
|
|
|
|
|
givename name
|
|
|
|
|
|
|
|
namezone name
|
|
|
|
|
|
|
|
======== ===========
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``givename`` works anywhere you can hit Ctrl-n to customize a name, like when
|
|
|
|
|
|
|
|
the cursor is over buildings and stockpiles. Example::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#place
|
|
|
|
|
|
|
|
f(10x2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{booze}{givename name=booze}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``namezone`` is intended to be used when over an activity zone. It includes
|
|
|
|
|
|
|
|
commands to get into zones mode, set the zone name, and get back to query
|
|
|
|
|
|
|
|
mode. Example::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#zone
|
|
|
|
|
|
|
|
n(2x2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{namezone name="guard dog pen"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quantum stockpile aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These aliases make it easy to create :wiki:`minecart stop-based quantum stockpiles <Quantum_stockpile#The_Minecart_Stop>`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+----------------------+------------------+
|
|
|
|
|
|
|
|
| Alias | Sub-aliases |
|
|
|
|
|
|
|
|
+======================+==================+
|
|
|
|
|
|
|
|
| quantum | | name |
|
|
|
|
|
|
|
|
| | | quantum_enable |
|
|
|
|
|
|
|
|
+----------------------+------------------+
|
|
|
|
|
|
|
|
| quantumstopfromnorth | | name |
|
|
|
|
|
|
|
|
+----------------------+ | stop_name |
|
|
|
|
|
|
|
|
| quantumstopfromsouth | | route_enable |
|
|
|
|
|
|
|
|
+----------------------+ |
|
|
|
|
|
|
|
|
| quantumstopfromeast | |
|
|
|
|
|
|
|
|
+----------------------+ |
|
|
|
|
|
|
|
|
| quantumstopfromwest | |
|
|
|
|
|
|
|
|
+----------------------+------------------+
|
|
|
|
|
|
|
|
| sp_link | | move |
|
|
|
|
|
|
|
|
| | | move_back |
|
|
|
|
|
|
|
|
+----------------------+------------------+
|
|
|
|
|
|
|
|
| quantumstop | | name |
|
|
|
|
|
|
|
|
| | | stop_name |
|
|
|
|
|
|
|
|
| | | route_enable |
|
|
|
|
|
|
|
|
| | | move |
|
|
|
|
|
|
|
|
| | | move_back |
|
|
|
|
|
|
|
|
| | | sp_links |
|
|
|
|
|
|
|
|
+----------------------+------------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The idea is to use a minecart on a track stop to dump an infinite number of
|
|
|
|
|
|
|
|
items into a receiving "quantum" stockpile, which significantly simplifies
|
|
|
|
|
|
|
|
stockpile management. These aliases configure the quantum stockpile and
|
|
|
|
|
|
|
|
hauling route that make it all work. Here is a complete example for quantum
|
|
|
|
|
|
|
|
stockpiling weapons, armor, and ammunition. It has a 3x1 feeder stockpile on
|
|
|
|
|
|
|
|
the bottom (South), the trackstop in the center, and the quantum stockpile on
|
|
|
|
|
|
|
|
the top (North). Note that the feeder stockpile is the only stockpile that
|
|
|
|
|
|
|
|
needs to be configured to control which types of items end up in the quantum
|
|
|
|
|
|
|
|
stockpile. By default, the hauling route and quantum stockpile itself simply
|
|
|
|
|
|
|
|
accept whatever is put into them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#place
|
|
|
|
|
|
|
|
,c
|
|
|
|
|
|
|
|
,
|
|
|
|
|
|
|
|
pdz(3x1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#build
|
|
|
|
|
|
|
|
,
|
|
|
|
|
|
|
|
,trackstopN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query message(remember to assign a minecart to the new route)
|
|
|
|
|
|
|
|
,quantum
|
|
|
|
|
|
|
|
,quantumstopfromsouth
|
|
|
|
|
|
|
|
nocontainers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The ``quantum`` alias configures a 1x1 stockpile to be a quantum stockpile. It
|
|
|
|
|
|
|
|
bans all containers and prevents the stockpile from being manually filled. By
|
|
|
|
|
|
|
|
default, it also enables storage of all item categories (except corpses and
|
|
|
|
|
|
|
|
refuse), so it doesn't really matter what letter you use to place the
|
|
|
|
|
|
|
|
stockpile. :wiki:`Refuse` is excluded by default since otherwise clothes and
|
|
|
|
|
|
|
|
armor in the quantum stockpile would rot away. If you want corpses or bones in
|
|
|
|
|
|
|
|
your quantum stockpile, use :kbd:`y` and/or :kbd:`r` to place the stockpile
|
|
|
|
|
|
|
|
and the ``quantum`` alias will just enable the remaining types. If you *do*
|
|
|
|
|
|
|
|
enable refuse in your quantum stockpile, be sure you avoid putting useful
|
|
|
|
|
|
|
|
clothes or armor in there!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The ``quantumstopfromsouth`` alias is run over the track stop and configures
|
|
|
|
|
|
|
|
the hauling route, again, allowing all item categories into the minecart by
|
|
|
|
|
|
|
|
default so any item that can go into the feeder stockpile can then be placed
|
|
|
|
|
|
|
|
in the minecart. It also links the hauling route with the feeder stockpile to
|
|
|
|
|
|
|
|
the South.The track stop does not need to be fully constructed before the
|
|
|
|
|
|
|
|
``#query`` blueprint is run, but the feeder stockpile needs to exist so we can
|
|
|
|
|
|
|
|
link to it. This means that the three blueprints above can be run one right
|
|
|
|
|
|
|
|
after another, without any dwarven labor in between them, and the quantum
|
|
|
|
|
|
|
|
stockpile will work properly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Finally, the ``nocontainers`` alias simply configures the feeder stockpile to
|
|
|
|
|
|
|
|
not have any containers (which would just get in the way here). If we wanted
|
|
|
|
|
|
|
|
to be more specific about what item types we want in the quantum stockpile, we
|
|
|
|
|
|
|
|
could configure the feeder stockpile further, for example with standard
|
|
|
|
|
|
|
|
`stockpile adjustment aliases <quickfort-stockpile-aliases>`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
After the blueprints are run, the last step is to manually assign a minecart
|
|
|
|
|
|
|
|
to the newly-defined hauling route.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can define sub-aliases to customize how these aliases work, for example to
|
|
|
|
|
|
|
|
have fine-grained control over what item types are enabled for the route and
|
|
|
|
|
|
|
|
quantum stockpile. We'll go over those options below, but first, here is an
|
|
|
|
|
|
|
|
example for how to just give names to everything::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query message(remember to assign a minecart to the new route)
|
|
|
|
|
|
|
|
,{quantum name="armory quantum"}
|
|
|
|
|
|
|
|
,{quantumstopfromsouth name="Armory quantum" stop_name="Armory quantum stop"}{givename name="armory dumper"}
|
|
|
|
|
|
|
|
{givename name="armory feeder"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All ``name`` sub-aliases are completely optional, of course. Keep in mind that
|
|
|
|
|
|
|
|
hauling route names have a maximum length of 22 characters, hauling route stop
|
|
|
|
|
|
|
|
names have a maximum length of 21 characters, and all other names have a
|
|
|
|
|
|
|
|
maximum length of 20 characters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you want to be absolutely certain that nothing ends up in your quantum
|
|
|
|
|
|
|
|
stockpile other than what you've configured in the feeder stockpile, you can
|
|
|
|
|
|
|
|
set the ``quantum_enable`` sub-alias for the ``quantum`` alias. This can
|
|
|
|
|
|
|
|
prevent, for example, somebody's knocked-out tooth from being considered part
|
|
|
|
|
|
|
|
of your furniture quantum stockpile when it happened to land on it during a
|
|
|
|
|
|
|
|
fistfight::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{quantum name="furniture quantum" quantum_enable={enablefurniture}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You can have similar control over the hauling route if you need to be more
|
|
|
|
|
|
|
|
selective about what item types are allowed into the minecart. If you have
|
|
|
|
|
|
|
|
multiple specialized quantum stockpiles that use a common feeder pile, for
|
|
|
|
|
|
|
|
example, you can set the ``route_enable`` sub-alias::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{quantumstopfromsouth name="Steel bar quantum" route_enable="{enablebars}{steelbars}"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Any of the `stockpile configuration aliases <quickfort-stockpile-aliases>` can
|
|
|
|
|
|
|
|
be used for either the ``quantum_enable`` or ``route_enable`` sub-aliases.
|
|
|
|
|
|
|
|
Experienced Dwarf Fortress players may be wondering how the same aliases can
|
|
|
|
|
|
|
|
work in both contexts since the keys for entering the configuration screen
|
|
|
|
|
|
|
|
differ. Fear not! There is some sub-alias magic at work here. If you define
|
|
|
|
|
|
|
|
your own stockpile configuration aliases, you can use the magic yourself by
|
|
|
|
|
|
|
|
building your aliases on the ``*prefix`` aliases described later in this
|
|
|
|
|
|
|
|
guide.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Finally, the ``quantumstop`` alias is a more general version of the simpler
|
|
|
|
|
|
|
|
``quantumstopfrom*`` aliases. The ``quantumstopfrom*`` aliases assume that a
|
|
|
|
|
|
|
|
single feeder stockpile is orthogonally adjacent to your track stop (which is
|
|
|
|
|
|
|
|
how most people set them up). If your feeder stockpile is somewhere further
|
|
|
|
|
|
|
|
away, or you have multiple feeder stockpiles to link, you can use the
|
|
|
|
|
|
|
|
``quantumstop`` alias directly. In addition to the sub-aliases used in the
|
|
|
|
|
|
|
|
``quantumstopfrom*`` alias, you can define the ``move`` and ``move_back``
|
|
|
|
|
|
|
|
sub-aliases, which let you specify the cursor keys required to move from the
|
|
|
|
|
|
|
|
track stop to the (single) feeder stockpile and back again, respectively::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{quantumstop move="{Right 2}{Up}" move_back="{Down}{Left 2}"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you have multiple stockpiles to link, define the ``sp_links`` sub-alias,
|
|
|
|
|
|
|
|
which can chain several ``sp_link`` aliases together, each with their own
|
|
|
|
|
|
|
|
movement configuration::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{quantumstop sp_links="{sp_link move=""{Right}{Up}"" move_back=""{Down}{Left}""}{sp_link move=""{Right}{Down}"" move_back=""{Up}{Left}""}"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note the doubled quotes for quoted elements that are within the outer quotes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Farm plots
|
|
|
|
|
|
|
|
~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sets a farm plot to grow the first or last type of seed in the list of
|
|
|
|
|
|
|
|
available seeds for all four seasons. The last seed is usually Plump helmet
|
|
|
|
|
|
|
|
spawn, suitable for post-embark. But if you only have one seed type, that'll
|
|
|
|
|
|
|
|
be grown instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+------------------+
|
|
|
|
|
|
|
|
| Alias |
|
|
|
|
|
|
|
|
+==================+
|
|
|
|
|
|
|
|
| growlastcropall |
|
|
|
|
|
|
|
|
+------------------+
|
|
|
|
|
|
|
|
| growfirstcropall |
|
|
|
|
|
|
|
|
+------------------+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instead of these aliases, though, it might be more useful to use the DFHack
|
|
|
|
|
|
|
|
`autofarm` plugin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stockpile configuration utility aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
================ ===========
|
|
|
|
|
|
|
|
Alias Sub-aliases
|
|
|
|
|
|
|
|
================ ===========
|
|
|
|
|
|
|
|
linksonly
|
|
|
|
|
|
|
|
maxbins
|
|
|
|
|
|
|
|
maxbarrels
|
|
|
|
|
|
|
|
nobins
|
|
|
|
|
|
|
|
nobarrels
|
|
|
|
|
|
|
|
nocontainers
|
|
|
|
|
|
|
|
give2up
|
|
|
|
|
|
|
|
give2down
|
|
|
|
|
|
|
|
give2left
|
|
|
|
|
|
|
|
give2right
|
|
|
|
|
|
|
|
give10up
|
|
|
|
|
|
|
|
give10down
|
|
|
|
|
|
|
|
give10left
|
|
|
|
|
|
|
|
give10right
|
|
|
|
|
|
|
|
give move
|
|
|
|
|
|
|
|
togglesequence
|
|
|
|
|
|
|
|
togglesequence2
|
|
|
|
|
|
|
|
forbidsearch search
|
|
|
|
|
|
|
|
permitsearch search
|
|
|
|
|
|
|
|
togglesearch search
|
|
|
|
|
|
|
|
masterworkonly prefix
|
|
|
|
|
|
|
|
artifactonly prefix
|
|
|
|
|
|
|
|
togglemasterwork prefix
|
|
|
|
|
|
|
|
toggleartifact prefix
|
|
|
|
|
|
|
|
================ ===========
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``linksonly``, ``maxbins``, ``maxbarrels``, ``nobins``, ``nobarrels``, and
|
|
|
|
|
|
|
|
``nocontainers`` set the named basic properties on stockpiles. ``nocontainers``
|
|
|
|
|
|
|
|
sets bins and barrels to 0, but does not affect wheelbarrows since the hotkeys
|
|
|
|
|
|
|
|
for changing the number of wheelbarrows depend on whether you have DFHack's
|
|
|
|
|
|
|
|
``tweak max-wheelbarrow`` enabled. It is better to set the number of
|
|
|
|
|
|
|
|
wheelbarrows via the `quickfort` ``stockpiles_max_wheelbarrows`` setting (set to
|
|
|
|
|
|
|
|
``0`` by default), or explicitly when you define the stockpile in the ``#place``
|
|
|
|
|
|
|
|
blueprint.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The ``give*`` aliases set a stockpile to give to a workshop or another
|
|
|
|
|
|
|
|
stockpile located at the indicated number of tiles in the indicated direction
|
|
|
|
|
|
|
|
from the current tile. For example, here we use the ``give2down`` alias to
|
|
|
|
|
|
|
|
connect an ``otherstone`` stockpile with a mason workshop::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#place
|
|
|
|
|
|
|
|
s,s,s,s,s
|
|
|
|
|
|
|
|
s, , , ,s
|
|
|
|
|
|
|
|
s, , , ,s
|
|
|
|
|
|
|
|
s, , , ,s
|
|
|
|
|
|
|
|
s,s,s,s,s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#build
|
|
|
|
|
|
|
|
`,`,`,`,`
|
|
|
|
|
|
|
|
`, , , ,`
|
|
|
|
|
|
|
|
`, ,wm,,`
|
|
|
|
|
|
|
|
`, , , ,`
|
|
|
|
|
|
|
|
`,`,`,`,`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
, ,give2down
|
|
|
|
|
|
|
|
otherstone
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and here is a generic stone stockpile that gives to a stockpile that only
|
|
|
|
|
|
|
|
takes flux::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#place
|
|
|
|
|
|
|
|
s(10x1)
|
|
|
|
|
|
|
|
s(10x10)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
flux
|
|
|
|
|
|
|
|
,
|
|
|
|
|
|
|
|
give2up
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If you want to give to some other tile that is not already covered by the
|
|
|
|
|
|
|
|
``give2*`` or ``give10*`` aliases, you can use the generic ``give`` alias and
|
|
|
|
|
|
|
|
specify the movement keys yourself in the ``move`` sub-alias. Here is how to
|
|
|
|
|
|
|
|
give to a stockpile or workshop one z-level above, 9 tiles to the left, and 14
|
|
|
|
|
|
|
|
tiles down::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#query
|
|
|
|
|
|
|
|
{give move="<{Left 9}{Down 14}"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``togglesequence`` and ``togglesequence2`` send ``{Down}{Enter}`` or
|
|
|
|
|
|
|
|
``{Down 2}{Enter}`` to toggle adjacent (or alternating) items in a list. This
|
|
|
|
|
|
|
|
is useful when toggling a bunch of related item types in the stockpile config.
|
|
|
|
|
|
|
|
For example, the ``dye`` alias in the standard alias library needs to select
|
|
|
|
|
|
|
|
four adjacent items::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dye: {foodprefix}b{Right}{Down 11}{Right}{Down 28}{togglesequence 4}^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``forbidsearch``, ``permitsearch``, and ``togglesearch`` use the DFHack
|
|
|
|
|
|
|
|
`search-plugin` plugin to forbid or permit a filtered list, or toggle the first
|
|
|
|
|
|
|
|
(or only) item in the list. Specify the search string in the ``search``
|
|
|
|
|
|
|
|
sub-alias. Be sure to move the cursor over to the right column before invoking
|
|
|
|
|
|
|
|
these aliases. The search filter will be cleared before this alias completes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Finally, the ``masterwork`` and ``artifact`` group of aliases configure the
|
|
|
|
|
|
|
|
corresponding allowable core quality for the stockpile categories that have
|
|
|
|
|
|
|
|
them. This alias is used to implement category-specific aliases below, like
|
|
|
|
|
|
|
|
``artifactweapons`` and ``forbidartifactweapons``.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. _quickfort-stockpile-aliases:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stockpile adjustment aliases
|
|
|
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
For each stockpile item category, there are three standard aliases:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* ``*prefix`` aliases enter the stockpile configuration screen and position
|
|
|
|
|
|
|
|
the cursor at a particular item category in the left-most column, ready for
|
|
|
|
|
|
|
|
further keys that configure the elements within that category. All other
|
|
|
|
|
|
|
|
stockpile adjustment aliases are built on these prefixes. You can use them
|
|
|
|
|
|
|
|
yourself to create stockpile adjustment aliases that aren't already covered
|
|
|
|
|
|
|
|
by the standard library aliases. Using the library prefix instead of
|
|
|
|
|
|
|
|
creating your own also allows your stockpile configuration aliases to be
|
|
|
|
|
|
|
|
used for both stockpiles and hauling routes. For example, here is the
|
|
|
|
|
|
|
|
library definition for ``booze``::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
booze: {foodprefix}b{Right}{Down 5}p{Down}p^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* ``enable*`` aliases enter the stockpile configuration screen, enable all
|
|
|
|
|
|
|
|
subtypes of the named category, and exit the stockpile configuration screen
|
|
|
|
|
|
|
|
* ``disable*`` aliases enter the stockpile configuration screen, disable all
|
|
|
|
|
|
|
|
subtypes of the named category, and exit the stockpile configuration screen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
==================== ==================== =====================
|
|
|
|
|
|
|
|
Prefix Enable Disable
|
|
|
|
|
|
|
|
==================== ==================== =====================
|
|
|
|
|
|
|
|
animalsprefix enableanimals disableanimals
|
|
|
|
|
|
|
|
foodprefix enablefood disablefood
|
|
|
|
|
|
|
|
furnitureprefix enablefurniture disablefurniture
|
|
|
|
|
|
|
|
corpsesprefix enablecorpses disablecorpses
|
|
|
|
|
|
|
|
refuseprefix enablerefuse disablerefuse
|
|
|
|
|
|
|
|
stoneprefix enablestone disablestone
|
|
|
|
|
|
|
|
ammoprefix enableammo disableammo
|
|
|
|
|
|
|
|
coinsprefix enablecoins disablecoins
|
|
|
|
|
|
|
|
barsprefix enablebars disablebars
|
|
|
|
|
|
|
|
gemsprefix enablegems disablegems
|
|
|
|
|
|
|
|
finishedgoodsprefix enablefinishedgoods disablefinishedgoods
|
|
|
|
|
|
|
|
leatherprefix enableleather disableleather
|
|
|
|
|
|
|
|
clothprefix enablecloth disablecloth
|
|
|
|
|
|
|
|
woodprefix enablewood disablewood
|
|
|
|
|
|
|
|
weaponsprefix enableweapons disableweapons
|
|
|
|
|
|
|
|
armorprefix enablearmor disablearmor
|
|
|
|
|
|
|
|
sheetprefix enablesheet disablesheet
|
|
|
|
|
|
|
|
==================== ==================== =====================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Then, for each item category, there are aliases that manipulate interesting
|
|
|
|
|
|
|
|
subsets of that category:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Exclusive aliases forbid everything within a category and then enable only
|
|
|
|
|
|
|
|
the named item type (or named class of items)
|
|
|
|
|
|
|
|
* ``forbid*`` aliases forbid the named type and leave the rest of the
|
|
|
|
|
|
|
|
stockpile untouched.
|
|
|
|
|
|
|
|
* ``permit*`` aliases permit the named type and leave the rest of the
|
|
|
|
|
|
|
|
stockpile untouched.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note that for specific item types (items in the third stockpile configuration
|
|
|
|
|
|
|
|
column), you can only toggle the item type on and off. Aliases can't know
|
|
|
|
|
|
|
|
whether sending the ``{Enter}`` key will enable or disable the type. The
|
|
|
|
|
|
|
|
``forbid*`` aliases that affect these item types assume the item type was
|
|
|
|
|
|
|
|
enabled and toggle it off. Likewise, the ``permit*`` aliases assume the item
|
|
|
|
|
|
|
|
type was disabled and toggle it on. If the item type is not in the expected
|
|
|
|
|
|
|
|
enabled/disabled state when the alias is run, the aliases will not behave
|
|
|
|
|
|
|
|
properly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Animal stockpile adjustments
|
|
|
|
|
|
|
|
````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=========== =========== ============
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
=========== =========== ============
|
|
|
|
|
|
|
|
cages forbidcages permitcages
|
|
|
|
|
|
|
|
traps forbidtraps permittraps
|
|
|
|
|
|
|
|
=========== =========== ============
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Food stockpile adjustments
|
|
|
|
|
|
|
|
``````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=============== ==================== ====================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
=============== ==================== ====================
|
|
|
|
|
|
|
|
preparedfood forbidpreparedfood permitpreparedfood
|
|
|
|
|
|
|
|
unpreparedfish forbidunpreparedfish permitunpreparedfish
|
|
|
|
|
|
|
|
plants forbidplants permitplants
|
|
|
|
|
|
|
|
booze forbidbooze permitbooze
|
|
|
|
|
|
|
|
seeds forbidseeds permitseeds
|
|
|
|
|
|
|
|
dye forbiddye permitdye
|
|
|
|
|
|
|
|
tallow forbidtallow permittallow
|
|
|
|
|
|
|
|
miscliquid forbidmiscliquid permitmiscliquid
|
|
|
|
|
|
|
|
wax forbidwax permitwax
|
|
|
|
|
|
|
|
=============== ==================== ====================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Furniture stockpile adjustments
|
|
|
|
|
|
|
|
```````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=================== ========================= =========================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
=================== ========================= =========================
|
|
|
|
|
|
|
|
pots forbidpots permitpots
|
|
|
|
|
|
|
|
bags
|
|
|
|
|
|
|
|
buckets forbidbuckets permitbuckets
|
|
|
|
|
|
|
|
sand forbidsand permitsand
|
|
|
|
|
|
|
|
masterworkfurniture forbidmasterworkfurniture permitmasterworkfurniture
|
|
|
|
|
|
|
|
artifactfurniture forbidartifactfurniture permitartifactfurniture
|
|
|
|
|
|
|
|
=================== ========================= =========================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* The ``bags`` alias excludes coffers and other boxes by forbidding all
|
|
|
|
|
|
|
|
materials other than cloth, yarn, silk, and leather. Therefore, it is
|
|
|
|
|
|
|
|
difficult to create ``forbidbags`` and ``permitbags`` without affecting other
|
|
|
|
|
|
|
|
types of furniture stored in the same stockpile.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Because of the limitations of Dwarf Fortress, ``bags`` cannot distinguish
|
|
|
|
|
|
|
|
between empty bags and bags filled with gypsum powder.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Refuse stockpile adjustments
|
|
|
|
|
|
|
|
````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=========== ================== ==================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
=========== ================== ==================
|
|
|
|
|
|
|
|
corpses forbidcorpses permitcorpses
|
|
|
|
|
|
|
|
rawhides forbidrawhides permitrawhides
|
|
|
|
|
|
|
|
tannedhides forbidtannedhides permittannedhides
|
|
|
|
|
|
|
|
skulls forbidskulls permitskulls
|
|
|
|
|
|
|
|
bones forbidbones permitbones
|
|
|
|
|
|
|
|
shells forbidshells permitshells
|
|
|
|
|
|
|
|
teeth forbidteeth permitteeth
|
|
|
|
|
|
|
|
horns forbidhorns permithorns
|
|
|
|
|
|
|
|
hair forbidhair permithair
|
|
|
|
|
|
|
|
usablehair forbidusablehair permitusablehair
|
|
|
|
|
|
|
|
craftrefuse forbidcraftrefuse permitcraftrefuse
|
|
|
|
|
|
|
|
=========== ================== ==================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* ``usablehair`` Only hair and wool that can make usable clothing is included,
|
|
|
|
|
|
|
|
i.e. from sheep, llamas, alpacas, and trolls.
|
|
|
|
|
|
|
|
* ``craftrefuse`` includes everything a craftsdwarf or tailor can use: skulls,
|
|
|
|
|
|
|
|
bones, shells, teeth, horns, and "usable" hair/wool (defined above).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stone stockpile adjustments
|
|
|
|
|
|
|
|
```````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
============= ==================== ====================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
============= ==================== ====================
|
|
|
|
|
|
|
|
metal forbidmetal permitmetal
|
|
|
|
|
|
|
|
iron forbidiron permitiron
|
|
|
|
|
|
|
|
economic forbideconomic permiteconomic
|
|
|
|
|
|
|
|
flux forbidflux permitflux
|
|
|
|
|
|
|
|
plaster forbidplaster permitplaster
|
|
|
|
|
|
|
|
coalproducing forbidcoalproducing permitcoalproducing
|
|
|
|
|
|
|
|
otherstone forbidotherstone permitotherstone
|
|
|
|
|
|
|
|
bauxite forbidbauxite permitbauxite
|
|
|
|
|
|
|
|
clay forbidclay permitclay
|
|
|
|
|
|
|
|
============= ==================== ====================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ammo stockpile adjustments
|
|
|
|
|
|
|
|
``````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
============== ==================== ====================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
============== ==================== ====================
|
|
|
|
|
|
|
|
bolts
|
|
|
|
|
|
|
|
\ forbidmetalbolts
|
|
|
|
|
|
|
|
\ forbidwoodenbolts
|
|
|
|
|
|
|
|
\ forbidbonebolts
|
|
|
|
|
|
|
|
masterworkammo forbidmasterworkammo permitmasterworkammo
|
|
|
|
|
|
|
|
artifactammo forbidartifactammo permitartifactammo
|
|
|
|
|
|
|
|
============== ==================== ====================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bar stockpile adjustments
|
|
|
|
|
|
|
|
`````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=========== ==================
|
|
|
|
|
|
|
|
Exclusive Forbid
|
|
|
|
|
|
|
|
=========== ==================
|
|
|
|
|
|
|
|
bars forbidbars
|
|
|
|
|
|
|
|
metalbars forbidmetalbars
|
|
|
|
|
|
|
|
ironbars forbidironbars
|
|
|
|
|
|
|
|
steelbars forbidsteelbars
|
|
|
|
|
|
|
|
pigironbars forbidpigironbars
|
|
|
|
|
|
|
|
otherbars forbidotherbars
|
|
|
|
|
|
|
|
coal forbidcoal
|
|
|
|
|
|
|
|
potash forbidpotash
|
|
|
|
|
|
|
|
ash forbidash
|
|
|
|
|
|
|
|
pearlash forbidpearlash
|
|
|
|
|
|
|
|
soap forbidsoap
|
|
|
|
|
|
|
|
blocks forbidblocks
|
|
|
|
|
|
|
|
=========== ==================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gem stockpile adjustments
|
|
|
|
|
|
|
|
`````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=========== ================
|
|
|
|
|
|
|
|
Exclusive Forbid
|
|
|
|
|
|
|
|
=========== ================
|
|
|
|
|
|
|
|
roughgems forbidroughgems
|
|
|
|
|
|
|
|
roughglass forbidroughglass
|
|
|
|
|
|
|
|
cutgems forbidcutgems
|
|
|
|
|
|
|
|
cutglass forbidcutglass
|
|
|
|
|
|
|
|
cutstone forbidcutstone
|
|
|
|
|
|
|
|
=========== ================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Finished goods stockpile adjustments
|
|
|
|
|
|
|
|
````````````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
======================= ============================= =============================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
======================= ============================= =============================
|
|
|
|
|
|
|
|
stonetools
|
|
|
|
|
|
|
|
woodentools
|
|
|
|
|
|
|
|
crafts forbidcrafts permitcrafts
|
|
|
|
|
|
|
|
goblets forbidgoblets permitgoblets
|
|
|
|
|
|
|
|
masterworkfinishedgoods forbidmasterworkfinishedgoods permitmasterworkfinishedgoods
|
|
|
|
|
|
|
|
artifactfinishedgoods forbidartifactfinishedgoods permitartifactfinishedgoods
|
|
|
|
|
|
|
|
======================= ============================= =============================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cloth stockpile adjustments
|
|
|
|
|
|
|
|
```````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
================ ====================== ======================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
================ ====================== ======================
|
|
|
|
|
|
|
|
thread forbidthread permitthread
|
|
|
|
|
|
|
|
adamantinethread forbidadamantinethread permitadamantinethread
|
|
|
|
|
|
|
|
cloth forbidcloth permitcloth
|
|
|
|
|
|
|
|
adamantinecloth forbidadamantinecloth permitadamantinecloth
|
|
|
|
|
|
|
|
================ ====================== ======================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* ``thread`` and ``cloth`` refers to all materials that are not adamantine.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Weapon stockpile adjustments
|
|
|
|
|
|
|
|
````````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
================= ======================== =======================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
================= ======================== =======================
|
|
|
|
|
|
|
|
\ forbidweapons permitweapons
|
|
|
|
|
|
|
|
\ forbidtrapcomponents permittrapcomponents
|
|
|
|
|
|
|
|
metalweapons forbidmetalweapons permitmetalweapons
|
|
|
|
|
|
|
|
\ forbidstoneweapons permitstoneweapons
|
|
|
|
|
|
|
|
\ forbidotherweapons permitotherweapons
|
|
|
|
|
|
|
|
ironweapons forbidironweapons permitironweapons
|
|
|
|
|
|
|
|
bronzeweapons forbidbronzeweapons permitbronzeweapons
|
|
|
|
|
|
|
|
copperweapons forbidcopperweapons permitcopperweapons
|
|
|
|
|
|
|
|
steelweapons forbidsteelweapons permitsteelweapons
|
|
|
|
|
|
|
|
masterworkweapons forbidmasterworkweapons permitmasterworkweapons
|
|
|
|
|
|
|
|
artifactweapons forbidartifactweapons permitartifactweapons
|
|
|
|
|
|
|
|
================= ======================== =======================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Armor stockpile adjustments
|
|
|
|
|
|
|
|
```````````````````````````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=============== ====================== =====================
|
|
|
|
|
|
|
|
Exclusive Forbid Permit
|
|
|
|
|
|
|
|
=============== ====================== =====================
|
|
|
|
|
|
|
|
metalarmor forbidmetalarmor permitmetalarmor
|
|
|
|
|
|
|
|
otherarmor forbidotherarmor permitotherarmor
|
|
|
|
|
|
|
|
ironarmor forbidironarmor permitironarmor
|
|
|
|
|
|
|
|
bronzearmor forbidbronzearmor permitbronzearmor
|
|
|
|
|
|
|
|
copperarmor forbidcopperarmor permitcopperarmor
|
|
|
|
|
|
|
|
steelarmor forbidsteelarmor permitsteelarmor
|
|
|
|
|
|
|
|
masterworkarmor forbidmasterworkarmor permitmasterworkarmor
|
|
|
|
|
|
|
|
artifactarmor forbidartifactarmor permitartifactarmor
|
|
|
|
|
|
|
|
=============== ====================== =====================
|
|
|
|
|