1. DFHack - Dwarf Fortress Modding Engine
  2. News

DFHack - Dwarf Fortress Modding Engine News

DFHack 51.11-r1.2

Quick patch to fix a crashes in preserve-rooms and preserve-tombs when an invalid unit is assigned to a zone.

DFHack 51.11-r1

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!
[h2]Highlights[/h2][h3]Break up brawls[/h3]
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!".
[h2]Announcements[/h2][h3]PSAs[/h3]
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
[h2]Fixes[/h2]
  • 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
[h2]Misc Improvements[/h2]
  • 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)
[h2]API[/h2]
  • 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)
[h2]Lua[/h2]
  • dfhack.military.addToSquad: expose Military API function
  • dfhack.buildings.getOwner: make new Buildings API available to Lua

DFHack 51.10-r1

Compatibility with DF 51.10

DFHack 51.09-r1

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!
[h2]Highlights[/h2][h3]New toolbar icons for popular tools[/h3]
By popular demand, gui/sitemap now has an icon on the main toolbar at the bottom of the screen. Click this button to quickly find and zoom to (or follow) units, locations (like your guildhalls and hospital), or artifacts. You can search by either native names or translated names for units and artifacts.

If you prefer hotkeys, the Ctrl-g hotkey for gui/sitemap still works as it always has.



Similarly gui/mass-remove now has a toolbar button that shows when you click the vanilla "eraser" toolbar icon. The new button shows up next to the other "remove" icons. gui/mass-remove allows you to area select to remove any combination of constructions, buildings, stockpiles, and zones. For buildings and constructions, you also have the option to only remove those that are fully built, those that are planned but not yet built, or both.


[h2]Announcements[/h2][h3]PSAs[/h3]
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
[h2]New Features[/h2]
  • gui/journal: Ctrl-j hotkey to launch gui/journal now works in adventure mode!
  • gui/mass-remove: add a button to the bottom toolbar when eraser mode is active for launching gui/mass-remove
  • gui/sitemap: add a button to the toolbar at the bottom left corner of the screen for launching gui/sitemap
  • idle-crafting: default to only considering happy and ecstatic units for the highest need threshold
[h2]Fixes[/h2]
  • Fix processing error in the overlay that displays unit preferences in the baron selection list
  • gui/journal: prevent pause/unpause events from leaking through the UI when keys are mashed
  • idle-crafting: check that units still have crafting needs before creating a job for them
[h2]API[/h2]
  • Filesystem module: rewritten to use C++ standard library components, for better portability

DFHack 51.08-r1

[h3]Q: How do I download DFHack?[/h3]
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.

If you are on the Steam DF experimental branch, please also switch DFHack to its experimental branch in your Steam client.

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!
Changelog
[h2]Misc Improvements[/h2]