1. DFHack - Dwarf Fortress Modding Engine
  2. News

DFHack - Dwarf Fortress Modding Engine News

DFHack 52.02-r2

[h2]Highlights[/h2]

[h3]Fixes and improvements to the mod manager[/h3]

The main focus of this release is on DFHack's mod manager, which was broken in 52.02-r1. The breaking issue has been resolved and we've also added support for using the mod manager in arena mode and made some minor improvements in the operation of the mod manager.

[h2]Announcements[/h2]

[h3]Notice about DFHack co-saves and "portable mode"[h3]

DF 52.01 added a toggle for "portable mode". If set to "on" DF saves games in the install folder the way it did in prior versions. If set to "off" DF saves games instead in a user profile folder, the location of which varies by operating system. DFHack 52.01-r1 did not correctly adjust for this change in save game location when portable mode is off; as a result, DFHack cosaves (which store per-world and per-fortress customizations) were not loaded or saved properly with DFHack 52.01-r1. This was corrected in DFHack 52.02-r1. If you have lost a cosave file, you can copy it from the old save location to the new save location manually (while DF is not running). DFHack cosaves are named with filenames starting with "dfhack" in the same folder as the DF save itself.

If you experience issues with DFHack not loading cosaves in 51.02 or later, please feel free to open an issue report on GitHub or contact us on our Discord for assistance.

[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/mod-manager`: now supports arena mode

[h2]Fixes[/h2]
  • Several fixes related to changes in file system handling in DF 52.01
  • `dig-now`: don't allow UNDIGGABLE stones to be excavated
  • `gui/mod-manager`:

    • gracefully handle vanilla mods with different versions from the user's preset
    • hide other versions of loaded mods and unhides them when unloaded

[h2]Misc Improvements[/h2]
  • `autoclothing`: added a ``clear`` option to unset previously set orders

[h2]API[/h2]
  • Added GUI focus strings for new_arena: ``/Loading`` and ``/Mods``
  • Expanded the partial implementations of ``Military::addToSquad`` and ``Military::removeFromSquad``
  • ``Filesystem::getBaseDir`` and ``Filesystem::getInstallDir`` added (and made available in Lua)

[h2]Lua[/h2]
  • Inserting values into STL containers containing nonprimitive types is now supported

DFHack 52.02-r1

[h2]Highlights[/h2]

[h3]Compatibility with 52.01[/h3]

This is primarily a compatibility release with DF 52.02.

[h2]Announcements[/h2]

[h3]Notice about DFHack co-saves and "portable mode"[h3]

DF 52.01 added a toggle for "portable mode". If set to "on" DF saves games in the install folder the way it did in prior versions. If set to "off" DF saves games instead in a user profile folder, the location of which varies by operating system. DFHack 52.01-r1 did not correctly adjust for this change in save game location when portable mode is off; as a result, DFHack cosaves (which store per-world and per-fortress customizations) were not loaded or saved properly with DFHack 52.01-r1. This has been corrected in DFHack 52.02-r1. If you have lost a cosave file, you can copy it from the old save location to the new save location manually (while DF is not running). DFHack cosaves are named with filenames starting with "dfhack" in the same folder as the DF save itself.

If you experience issues with DFHack not loading cosaves in 51.02 or later, please feel free to open an issue report on GitHub or contact us on our Discord for assistance.

[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]
  • Honor the "portable mode" preference setting for locating save folders. Fixes DFHack cosaves not working in most cases.
  • ``embark-anyone``: Validate viewscreen before using, Avoids a crash.



DFHack 52.01-r1

[h2]Highlights[/h2]

[h3]Compatibility with 52.01[/h3]

This is primarily a compatibility release with DF 52.01.

[h3]Better animal trapping[/h3]

The new animaltrap-reuse tweak causes built animal traps to automatically unload the vermin they catch into stockpiled traps, facilitating easier reloading and reuse.

[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]

  • tweak : animaltrap-reuse : make it so built animal traps automatically unload the vermin they catch into stockpiled animal traps, so that they can be automatically re-baited and reused


[h2]Fixes[/h2]

  • fixed references to removed unit.curse compound
  • gui/gm-unit : remove reference to think_counter , removed in v51.12
  • gui/journal : fix typo which caused the table of contents to always be regenerated even when not needed
  • gui/mod-manager : gracefully handle mods with missing or broken info.txt files
  • uniform-unstick : resolve overlap with new buttons in 51.13


[h2]Structures[/h2]

  • removed fake curse compound in unitst to resolve an alignment issue


DFHack 51.13-r1

Quick compatibility update for the quick-released DF 51.13

DFHack 51.12-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]Paint the map with stars[/h3]
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!
[h3]Search for units by any name[/h3]
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.
[h3]Let items rot away[/h3]
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!
[h3]What's my mod list again?[/h3]
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.
[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 Tools[/h2]
  • deteriorate: (reinstated) allow corpses, body parts, food, and/or damaged clothes to rot away
  • modtools/moddable-gods: (reinstated) create new deities from scratch
[h2]New Features[/h2]
  • gui/blueprint: now records zone designations
  • gui/design: add option to draw N-point stars, hollow or filled or inverted, and change the main axis to orient in any direction
  • gui/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 posting
  • gui/spectate: added "Prefer nicknamed" to the list of options
[h2]Fixes[/h2]
  • 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 boundary
  • gui/teleport: adapt to new behavior in DF 51.11 to avoid a crash when teleporting items into mid-air
  • plants: will no longer generate a traceback when a filter is used
  • preserve-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 unit
  • script-manager: fix lua scripts in mods not being reloaded properly upon entering a saved world on Windows
  • starvingdead:
    • 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
[h2]Misc Improvements[/h2]
  • 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 designations
  • remove-stress: also applied to long-term stress, immediately removing stressed and haggard statuses
  • spectate: added prefer nicknamed units
[h2]Removed[/h2]
  • removed historically unused Core :: RegisterData/Core :: GetData API and associated internal data structures
[h2]API[/h2]
  • cuboid :: forCoord, Maps :: forCoord: take additional parameter to control whether iteration goes in column major or row major order
  • Items :: getDescription: fixed display of quality levels, now displays ALL item designations (in correct order) and obeys vanilla SHOW_IMP_QUALITY setting
  • Random module: added SplitmixRNG class, implements the Splitmix64 RNG used by Dwarf Fortress for "simple" randomness
[h2]Lua[/h2]
  • script-manager:
    • new get_active_mods() function for getting information on active mods
    • new get_mod_info_metadata() function for getting information out of mod info.txt files