Q: How do I download DFHack?
A: Either add to your Steam library from our Steam page or scroll to the latest release on our GitHub releases page, expand the "Assets" list, and download the file for your platform (e.g. dfhack-XX.XX-rX-Windows-64bit.zip
. If you are on Windows and are manually installing from the zip file, please remember to right click on the file after downloading, open the file properties, and select the "Unblock" checkbox. This will prevent issues with Windows antivirus programs.
This release is compatible with all distributions of Dwarf Fortress: Steam, Itch, and Classic.
Please report any issues (or feature requests) on the DFHack GitHub issue tracker. When reporting issues, please upload a zip file of your savegame and a zip file of your mods
directory to the cloud and add links to the GitHub issue. Make sure your files are downloadable by "everyone with the link". We need your savegame to reproduce the problem and test the fix, and we need your active mods so we can load your savegame. Issues with savegames and mods attached get fixed first!
Highlights
New Features, Bug Fixes
New Features
This release has several new features:
autotraining
(and its companiongui/autotraining
) now automates putting units into a military squad as needed to satisfy the "Martial Training" needentomb
can assist in cleaning up scattered body parts or corpses that aren't being buried automatically for whatever reasonshusbandry
provides an alternative toautomilk
andautocheese
for automating these processes with less cancel spam and more efficiencynestboxes
can now optionally be configured to only operate within a specified burrowstonesense
now offers day/night cycle lighting while in fortress modetailor
can now automate the production of dyed cloth for use in clothing
Bug Fixes
We also fixed a lot of bugs: ban-cooking all
will no longer crash if there is no honey in the world, confirm
got a lot of adjustments, immortal-cravings
should now work a lot better than it used to, stockpiles
will export furniture stockpiles correctly now, uniform-unstick
won't cause units to equip multiple copies of assigned items, and deities should no longer have stray commas added after their names in various DFHack displays.
Annc 1, PSAs
Annc 1
Text
PSAs
As always, remember that, just like the vanilla DF game, DFHack tools can also have bugs. It is a good idea to save often and keep backups of the forts that you care about.
Some DFHack tools that worked in previous (pre-Steam) versions of DF have not been updated yet and are marked with the "unavailable" tag in their docs. If you try to run them, they will show a warning and exit immediately. You can run the command again to override the warning (though of course the tools may not work). We make no guarantees of reliability for the tools that are marked as "unavailable".
The in-game interface for running DFHack commands (gui/launcher
) will not show "unavailable" tools by default. You can still run them if you know their names, or you can turn on dev mode by hitting Ctrl-D while in gui/launcher
and they will be added to the autocomplete list. Some tools listed as "unavailable" in the docs do not compile yet and are not accessible at all, even when in dev mode.
If you see a tool complaining about the lack of a cursor, know that it's referring to the keyboard cursor (which used to be the only real option in Dwarf Fortress). You can enable the keyboard cursor by entering mining mode or selecting the dump/forbid tool and hitting Alt-K (the DFHack keybinding for toggle-kbd-cursor
). We're working on making DFHack tools more mouse-aware and accessible so this step isn't necessary in the future.
Changelog
New tools, fixes, and improvements
New Tools
autotraining
: new tool to assign citizens to a military squad when they need Martial Trainingentomb
: allow any unit that has a corpse or body parts to be assigned a tomb zonegui/autotraining
: configuration tool for autotraininghusbandry
: Automatically milk and shear animals at nearby farmer's workshops
New Features
deathcause
: added functionality to this script to fetch cause of death programaticallynestboxes
: allow limiting egg protection to nestboxes inside a designated burrowstonesense
: stonesense now has visible day/night cycle lighting in fortress modetailor
: tailor now provides optional dye automation
Fixes
ban-cooking
: will not fail trying to ban honey if the world has no honeycaravan
:- in the pedestal item assignment dialog, add new items at the end of the list of displayed items instead of at a random position
- in the pedestal item assignment dialog, consistently remove items from the list of displayed items
confirm
:- only show pause option for pausable confirmations
- when editing a uniform, confirm discard of changes when exiting with Escape
- when removing a manager order, show correct order description when using non-100% interface setting
- when removing a manager order, show correct order description after prior order removal or window resize (when scrolled to bottom of order list)
- when removing a manager order, show specific item/job type for ammo, shield, helm, gloves, shoes, trap component, and meal orders
- the pause option now pauses individual confirmation types, allowing multiple different confirmations to be paused independently
immortal-cravings
: prioritize high-value meals, properly split of portions, and don't go eating or drinking on a full stomachstockpiles
: fixed off-by-one error in exporting furniture stockpilesstonesense
: fixed the announcements not using the bright bool (now matches vanilla DF colors)uniform-unstick
: no longer causes units to equip multiples of assigned itemsUnits::getReadableName
will no longer append a comma to the names of histfigs with no profession
Misc Improvements
devel/hello-world
: updated to show off the new Slider widget
API
Job
: new functionscreateLinked
andassignToWorkshop
Units
: new functionsgetFocusPenalty
,unbailableSocialActivity
,isJobAvailable
Lua
- New functions:
dfhack.jobs.createLinked
,dfhack.jobs.assignToWorkshop
,dfhack.units.getFocusPenalty
,dfhack.units.unbailableSocialActivity
, anddfhack.units.isJobAvailable
Structures
- added default values for
material
andmat_index
inreaction_reagentst
andreaction_productst
child classes