Manage activity zones, cages, and the animals therein.
Keybinding: AltShiftI ->
"zone set" in
Add helpful filters to the pen/pasture sidebar menu (e.g. show only caged grazers).
Set zone or cage under cursor as default for future
zone assign [<zone id>] [<filter>]
Assign unit(s) to the zone with the given ID, or to the most recent pen or pit marked with the
setcommand. If no filters are set, then a unit must be selected in the in-game ui.
zone unassign [<filter>]
Unassign selected creature from its zone.
zone nick <nickname> [<filter>]
Assign the given nickname to the selected animal or the animals matched by the given filter.
zone remnick [<filter>]
Remove nicknames from the selected animal or the animals matched by the given filter.
zone enumnick <nickname prefix> [<filter>]
Assign enumerated nicknames (e.g. “Hen 1”, “Hen 2”…).
zone tocages [<filter>]
Assign unit(s) to cages that have been built inside the pasture selected with the
zone uinfo [<filter>]
Print info about unit(s). If no filters are set, then a unit must be selected in the in-game ui.
Print info about the zone(s) and any buildings under the cursor.
tocages examples can be used, you must first move
the cursor over a pen/pasture or pit zone and run
zone set to select the
zone assign all own ALPACA minage 3 maxage 10
Assign all of your alpacas who are between 3 and 10 years old to the selected pasture.
zone assign all own caged grazer nick ineedgrass
Assign all of your grazers who are sitting in cages on stockpiles (e.g. after buying them from merchants) to the selected pasture and give them the nickname ‘ineedgrass’.
zone assign all own not grazer not race CAT
Assign all of your animals who are not grazers (excluding cats) to the selected pasture. ” zone assign all own milkable not grazern”
zone assign all own female milkable not grazer
Assign all of your non-grazing milkable creatures to the selected pasture or cage.
zone assign all own race DWARF maxage 2
Throw all useless kids into a pit :) They’ll be fine I’m sure.
zone nick donttouchme
Nicknames all units in the current default zone or cage to ‘donttouchme’. This is especially useful for protecting a group of animals assigned to a pasture or cage from being “processed” by autobutcher.
zone tocages count 50 own tame male not grazer
Stuff up to 50 of your tame male animals who are not grazers into cages built on the current default zone.
Process all units.
- count <n>
Process only up to n units.
Not assigned to zone, chain or built cage.
- minage <years>
Minimum age. Must be followed by a number.
- maxage <years>
Maximum age. Must be followed by a number.
Negates the next filter keyword. All of the keywords documented below are negatable.
Must be followed by a race RAW ID (e.g. BIRD_TURKEY, ALPACA, etc).
In a built cage.
From own civilization. You’ll usually want to include this filter.
Trained war creature.
Trained hunting creature.
Creature is tame.
Creature is trained. Finds war/hunting creatures as well as creatures who have a training level greater than ‘domesticated’. If you want to specifically search for war/hunting creatures use
Creature can be trained for war (and is not already trained for war/hunt).
Creature can be trained for hunting (and is not already trained for war/hunt).
Creature is male.
Creature is female.
Race lays eggs. If you want units who actually lay eggs, also specify
Race is a grazer.
Race is milkable. If you want units who actually can be milked, also specify
Is a merchant / belongs to a merchant. Should only be used for pitting or slaughtering, not for stealing animals.
Usage with single units¶
One convenient way to use the zone tool is to bind the commands
zone set to hotkeys. Place the in-game cursor over a pen/pasture or pit
and use the
zone set hotkey to mark it. Then you can select units on the map
(in ‘v’ or ‘k’ mode), in the unit list or from inside cages and use the
zone assign hotkey to assign them to their new home. Allows pitting your own
dwarves, by the way.
Matching with filters¶
All filters can be used together with the
Note that it’s not possible to reassign units who are inside built cages or
chained, though this likely won’t matter because if you have gone to the trouble
of creating a zoo or chaining a creature, you probably wouldn’t want them
reassigned anyways. Also,
zone will avoid caging owned pets because the owner
uncages them after a while which results in infinite hauling back and forth.
Most filters should include an
own element (which implies
you want to use
zone assign for pitting hostiles. The
own filter ignores
dwarves unless you explicitly specify
race DWARF (so it’s safe to use
assign all own to one big pasture if you want to have all your animals in
the same place).
milkable filters should be used together with
female unless you want the males of the race included. Merchants and their
animals are ignored unless you specify
merchant (pitting them should be no
problem, but stealing and pasturing their animals is not a good idea since
currently they are not properly added to your own stocks; slaughtering them
Most filters can be negated (e.g.
not grazer -> race is not a grazer).
nick command, you can set the same nickname for multiple units.
If used without
count, it will rename all units in
the current default target zone. Combined with
(and likely further optional filters) it will rename units matching the filter
tocages command assigns units to a set of cages, for example a room next
to your butcher shop(s). Units will be spread evenly among available cages to
optimize hauling to and butchering from them. For this to work you need to build
cages and then place one pen/pasture activity zone above them, covering all
cages you want to use. Then use
zone set (like with
assign) and run
zone tocages <filter>.
tocages can be used together with
remnick to adjust nicknames while assigning to cages.