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
Paint the map with stars, Search for units by any name, Let items rot away, What's my mod list again?
Paint the map with stars
The DFHack drawing tool gui/design
now has an option for drawing hollow or filled N-point stars. You can even rotate the star around its axis so the points can go in any direction. Go ahead, make a Palace of the Sun for your demanding monarch!
Search for units by any name
The general search and find tool, gui/sitemap
, now displays both the native and the English translated name for all units. Whichever name you happen to remember, you can search for it and find the unit you're looking for! Click on the name to zoom to that unit on the map, or shift-click to start following that unit around.
Let items rot away
The deteriorate
tool is now available on the DFHack gui/control-panel
. It allows items to rot away over time. This can be good for just keeping your map clean, but you can also use it to add a bit more challenge to the game. If you enable it with default settings, it will check the map for non-entombed corpses and non-usable body parts and let them rot away over the next few months. For an additional challenge, you can add food, usable body parts (like hair and bones) and damaged clothing to that list. Use it or lose it!
What's my mod list again?
You can now use gui/mod-manager
to see a list of your active mods. You can even export the list to the clipboard for easy sharing or posting.
Announcements
PSAs
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
deteriorate
: (reinstated) allow corpses, body parts, food, and/or damaged clothes to rot awaymodtools/moddable-gods
: (reinstated) create new deities from scratch
New Features
gui/blueprint
: now records zone designationsgui/design
: add option to draw N-point stars, hollow or filled or inverted, and change the main axis to orient in any directiongui/mod-manager
: when run in a loaded world, shows a list of active mods -- click to export the list to the clipboard for easy sharing or postinggui/spectate
: added "Prefer nicknamed" to the list of options
Fixes
- fixed an overly restrictive type constraint that resulted in some object types being glossed as a boolean when passed as an argument from C++ to Lua
getplants
:- will no longer crash when faced with plants with growths that do not drop seeds when processed
- use updated formula for calculating whether plant growths are ripe
- fix logic for determining whether plant growths have been picked
gui/design
: prevent line thickness from extending outside the map boundarygui/teleport
: adapt to new behavior in DF 51.11 to avoid a crash when teleporting items into mid-airplants
: will no longer generate a traceback when a filter is usedpreserve-rooms
: don't warn when a room is assigned to a non-existent unit. this is now common behavior for DF when it keeps a room for an unloaded unitscript-manager
: fix lua scripts in mods not being reloaded properly upon entering a saved world on Windowsstarvingdead
:- properly restore to correct enabled state when loading a new game that is different from the first game loaded in this session
- ensure undead decay does not happen faster than the declared decay rate when saving and loading the game
Misc Improvements
- All places where units are listed in DFHack tools now show the translated English name in addition to the native name. In particular, this makes units searchable by English name in
gui/sitemap
. blueprint
:- support for recording zones
- support for recording stockpile properties like names and stockpile links; does not yet support recording detailed contents configuration
dig
: ASCII overlay now displays priority of digging designationsremove-stress
: also applied to long-term stress, immediately removing stressed and haggard statusesspectate
: added prefer nicknamed units
Removed
- removed historically unused
Core::RegisterData
/Core::GetData
API and associated internal data structures
API
cuboid::forCoord
,Maps::forCoord
: take additional parameter to control whether iteration goes in column major or row major orderItems::getDescription
: fixed display of quality levels, now displays ALL item designations (in correct order) and obeys vanilla SHOW_IMP_QUALITY settingRandom
module: addedSplitmixRNG
class, implements the Splitmix64 RNG used by Dwarf Fortress for "simple" randomness
Lua
script-manager
:- new
get_active_mods()
function for getting information on active mods - new
get_mod_info_metadata()
function for getting information out of modinfo.txt
files
- new