2022-08-04 00:34:56 -06:00
|
|
|
autobutcher
|
|
|
|
===========
|
sync tags spreadsheet to git
spreadsheet - https://docs.google.com/spreadsheets/d/1hiDlo8M_bB_1jE-5HRs2RrrA_VZ4cRu9VXaTctX_nwk/edit#gid=170388995
sync command - for fname in *rst; do name=$(echo $fname | sed 's/[.]rst//'); tagline=$(egrep ",$name," ~/Downloads/DFHack\ taxonomy\ -\ Tool\ tags.csv | ~/Downloads/csvtotags.sh); sed -ri "s;[*]*Tags:.*;$tagline;" $fname; done
contents of csvtotags.sh -
fgrep . | sed -r 's/^[^,]+,([^,]+),[^.]+[.]"?,/\1,/' | awk -F, '
function tag(idx, tagname) {
if ($idx == "TRUE") {
if (hastag == 1) {printf(", ")}
printf("`tag/%s`", tagname)
hastag = 1
}
}
{
printf("%s", "**Tags:** ")
hastag = 0
tag(2, "adventure")
tag(3, "fort")
tag(4, "legends")
tag(5, "embark")
tag(6, "system")
tag(7, "dev")
tag(8, "auto")
tag(9, "productivity")
tag(10, "inspection")
tag(11, "design")
tag(12, "quickfort")
tag(13, "interface")
tag(14, "fps")
tag(15, "fix")
tag(16, "mod")
tag(17, "armok")
tag(18, "animals")
tag(19, "buildings")
tag(20, "items")
tag(21, "jobs")
tag(22, "map")
tag(23, "labors")
tag(24, "units")
tag(25, "stockpiles")
tag(26, "trees")
printf("\n")
}
'
2022-08-05 18:55:33 -06:00
|
|
|
**Tags:** `tag/fort`, `tag/auto`, `tag/fps`, `tag/animals`
|
2022-08-04 00:34:56 -06:00
|
|
|
:dfhack-keybind:`autobutcher`
|
|
|
|
|
|
|
|
Automatically butcher excess livestock. This plugin monitors how many pets you
|
|
|
|
have of each gender and age and assigns excess lifestock for slaughter. Requires
|
|
|
|
that you add the target race(s) to a watch list. Units will be ignored if they
|
|
|
|
are:
|
|
|
|
|
|
|
|
* Untamed
|
|
|
|
* Nicknamed (for custom protection; you can use the `rename` ``unit`` tool
|
|
|
|
individually, or `zone` ``nick`` for groups)
|
|
|
|
* Caged, if and only if the cage is defined as a room (to protect zoos)
|
|
|
|
* Trained for war or hunting
|
|
|
|
|
|
|
|
Creatures who will not reproduce (because they're not interested in the
|
|
|
|
opposite sex or have been gelded) will be butchered before those who will.
|
|
|
|
Older adults and younger children will be butchered first if the population
|
|
|
|
is above the target (defaults are: 1 male kid, 5 female kids, 1 male adult,
|
|
|
|
5 female adults). Note that you may need to set a target above 1 to have a
|
|
|
|
reliable breeding population due to asexuality etc. See `fix-ster` if this is a
|
|
|
|
problem.
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
``enable autobutcher``
|
|
|
|
Start processing livestock according to the configuration. Note that
|
|
|
|
no races are watched by default. You have to add the ones you want to
|
|
|
|
monitor with ``autobutcher watch``, ``autobutcher target`` or
|
|
|
|
``autobutcher autowatch``.
|
|
|
|
``autobutcher autowatch``
|
|
|
|
Automatically add all new races (animals you buy from merchants, tame
|
|
|
|
yourself, or get from migrants) to the watch list using the default target
|
|
|
|
counts.
|
|
|
|
``autobutcher noautowatch``
|
|
|
|
Stop auto-adding new races to the watch list.
|
|
|
|
``autobutcher target <fk> <mk> <fa> <ma> all|new|<race> [<race> ...]``
|
|
|
|
Set target counts for the specified races:
|
2022-08-04 01:22:07 -06:00
|
|
|
- fk = number of female kids
|
|
|
|
- mk = number of male kids
|
|
|
|
- fa = number of female adults
|
|
|
|
- ma = number of female adults
|
2022-08-04 00:34:56 -06:00
|
|
|
If you specify ``all``, then this command will set the counts for all races
|
|
|
|
on your current watchlist (including the races which are currenly set to
|
|
|
|
'unwatched') and sets the new default for future watch commands. If you
|
|
|
|
specify ``new``, then this command just sets the new default counts for
|
|
|
|
future watch commands without changing your current watchlist. Otherwise,
|
|
|
|
all space separated races listed will be modified (or added to the watchlist
|
|
|
|
if they aren't there already).
|
|
|
|
``autobutcher ticks <ticks>``
|
|
|
|
Change the number of ticks between scanning cycles when the plugin is
|
|
|
|
enabled. By default, a cycle happens every 6000 ticks (about 8 game days).
|
|
|
|
``autobutcher watch all|<race> [<race> ...]``
|
|
|
|
Start watching the listed races. If they aren't already in your watchlist,
|
|
|
|
then they will be added with the default target counts. If you specify the
|
|
|
|
keyword ``all``, then all races in your watchlist that are currently marked
|
|
|
|
as unwatched will become watched.
|
|
|
|
``autobutcher unwatch all|<race> [<race> ...]``
|
|
|
|
Stop watching the specified race(s) (or all races on your watchlist if
|
|
|
|
``all`` is given). The current target settings will be remembered.
|
|
|
|
``autobutcher forget all|<race> [<race> ...]``
|
|
|
|
Unwatch the specified race(s) (or all races on your watchlist if ``all`` is
|
|
|
|
given) and forget target settings for it/them.
|
|
|
|
``autobutcher [list]``
|
|
|
|
Print status and current settings, including the watchlist. This is the
|
|
|
|
default command if autobutcher is run without parameters.
|
|
|
|
``autobutcher list_export``
|
|
|
|
Print commands required to set the current settings in another fort.
|
|
|
|
|
|
|
|
To see a list of all races, run this command:
|
|
|
|
|
|
|
|
devel/query --table df.global.world.raws.creatures.all --search ^creature_id --maxdepth 1
|
|
|
|
|
|
|
|
Though not all the races listed there are tameable/butcherable.
|
|
|
|
|
2022-08-05 09:08:47 -06:00
|
|
|
.. note::
|
|
|
|
|
|
|
|
Settings and watchlist are stored in the savegame, so you can have different
|
|
|
|
settings for each save. If you want to copy your watchlist to another,
|
|
|
|
savegame, you can export the commands required to recreate your settings.
|
|
|
|
|
|
|
|
To export, open an external terminal in the DF directory, and run
|
|
|
|
``dfhack-run autobutcher list_export > filename.txt``. To import, load your
|
|
|
|
new save and run ``script filename.txt`` in the DFHack terminal.
|
|
|
|
|
2022-08-04 00:34:56 -06:00
|
|
|
Examples
|
|
|
|
--------
|
|
|
|
|
|
|
|
Keep at most 7 kids (4 female, 3 male) and at most 3 adults (2 female, 1 male)
|
|
|
|
for turkeys. Once the kids grow up, the oldest adults will get slaughtered.
|
|
|
|
Excess kids will get slaughtered starting the the youngest to allow that the
|
|
|
|
older ones grow into adults::
|
|
|
|
|
|
|
|
autobutcher target 4 3 2 1 BIRD_TURKEY
|
|
|
|
|
|
|
|
Configure useful limits for dogs, cats, geese (for eggs, leather, and bones),
|
|
|
|
alpacas, sheep, and llamas (for wool), and pigs (for milk and meat). All other
|
|
|
|
unnamed tame units will be marked for slaughter as soon as they arrive in your
|
|
|
|
fortress::
|
|
|
|
|
2022-08-05 09:08:47 -06:00
|
|
|
enable autobutcher
|
2022-08-04 00:34:56 -06:00
|
|
|
autobutcher target 2 2 2 2 DOG
|
|
|
|
autobutcher target 1 1 2 2 CAT
|
|
|
|
autobutcher target 50 50 14 2 BIRD_GOOSE
|
|
|
|
autobutcher target 2 2 4 2 ALPACA SHEEP LLAMA
|
|
|
|
autobutcher target 5 5 6 2 PIG
|
|
|
|
autobutcher target 0 0 0 0 new
|
|
|
|
autobutcher autowatch
|