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
Break up brawls
Both fix/loyaltycascade and makeown now take the extra step of calming any brawls that your citizens are involved in. If a particular captured and tamed pet is acting unruly (e.g. a Roc attacking your military or random visitors), select it and run makeown to remove it from any conflicts it may have been involved in before you tamed it.
Likewise, fix/loyaltycascade will now break up tavern brawls. Tavern brawls aren't true "loyalty cascades", since the brawlers aren't actually enemies of your civilization. However, it really
looks like a loyalty cascade, and this is the tool that players tend to try when a tavern brawl spirals out of control.
And remember the old fortress adage: "To your alcohol stocks pay mind, but keep those tavern keepers unassigned!".
Announcements
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
Fixes
- text widgets no longer lose their cursor when the Ctrl-a (select all) hotkey is pressed when there is no text to select
- dig-now:
- fix cases where boulders/rough gems of incorrect material were being generated when digging through walls
- properly generate ice boulders when digging through ice walls
- gui/petitions: fix date math when determining petition age
- gui/rename: fix commandline processing when manually specifying target ids
- gui/sandbox: restore metal equipment options when spawning units
- gui/teleport: now properly handles teleporting units that are currently falling or being flung
- list-agreements: fix date math when determining petition age
- spectate: don't show a hover tooltip for hidden units (e.g. invisible snatchers)
- stockpiles: fix one-off error in item type when importing furniture stockpile settings
- suspendmanager: fix walls being treated as potential suitable access if another wall is built underneath
- unload: fix recent regression where unload would immediately reload the target
- Buildings module: do not crash if a map_block unexpectedly contains an item that is not on the master item vector
Misc Improvements
- fix/loyaltycascade: now also breaks up brawls and other intra-fort conflicts that look like loyalty cascades
- makeown: remove selected unit from any current conflicts so they don't just start attacking other citizens when you make them a citizen of your fort
- spectate: show dwarves' activities (like prayer)
API
- Buildings :: setOwner: updated for changes in 51.11
- Buildings module: add getOwner (using the Units :: get_cached_unit_by_global_id mechanic) to reflect changes in 51.11
- Military module: added addToSquad function
- Units :: teleport: projectile information is now cleared for teleported units
- Units module: added get_cached_unit_by_global_id to emulate how DF handles unit vector index caching (used in civzones and in general references)
Lua
- dfhack.military.addToSquad: expose Military API function
- dfhack.buildings.getOwner: make new Buildings API available to Lua
[ 2025-04-21 17:38:57 CET ] [ Original post ]