1. DFHack - Dwarf Fortress Modding Engine
  2. News

DFHack - Dwarf Fortress Modding Engine News

DFHack 50.11-r5rc1

This BETA 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]New features in need of feedback and testing[/h2][h3]gui/control-panel layout overhaul[/h3]
The control panel received a significant overhaul. Tools are now categorized into subtabs, gathering the automation, bugfix, and gameplay tools into sublists. The file format for storing control panel configuration has changed as well. When you load this release of DFHack, your previous control panel settings should be seamlessly migrated to the new format.

What do you think of the new layout and tab structure? Is it easier to find the tools you're looking for? Do you feel more confident about enabling new things?
[h3]gui/autobutcher mousification[/h3]
gui/autobutcher finally got updated with modern widgets and mouse gestures. You can now select fields to edit by double clicking on them. The list of livestock now also shows you the total counts per race, and the list of race targets is sortable and filterable. What do you think? Is it easier to use than the previous version? Pro tip: to unmark the slaughter tag from all animals of a particular race, double click on the number in the "Butchering ordered" column.
[h3]confirm rewrite and new prompts[/h3]
The confirm framework has been completely rewritten, and thanks to many good suggestions on Reddit, there are now a wide variety of new confirmation prompts that protect you from accidentally invoking irreversible and highly impactful UI operations (like disbanding a squad or deconstructing the trade depot while merchants are using it). Is there anything you think we've missed? What do you think of the new confirmation prompts? Is it easy to pause them when you want to (e.g. when deleting a bunch of manager orders)?
[h3]uniform-unstick uniform fixing tool[/h3]
When you look at your squad equipment, there will be a new button that says "Detect conflicts". This will bring up a report of squad equipment problems, such as squad members being assigned to conflicting labors like mining or hunting, or the same piece of equipment being assigned to multiple squad members. There's a button at the top of the report that attempts to fix all the problems. Does it work for you? Do your forever-yellow equipment icons finally turn green? Remember to click "Update equipment" after running the fixer so that new equipment gets assigned to units that need it.
[h3]gui/mass-remove now easier to use[/h3]
gui/mass-remove is our tool for easily removing multiple buildings and other things. It gained much more configurability, so you can now, for example, have it just remove planned buildings and ignore fully built ones. It now also has a global hotkey for quick access: Ctrl-M while on the main fort map. Give it a try and tell us if it works well for you when you need to remove a bunch of stuff.
[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.

Many 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 do not compile yet and are not available 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]
  • control-panel: new commandline interface for control panel functions
  • uniform-unstick: (reinstated) force squad members to drop items that they picked up in the wrong order so they can get everything equipped properly
[h2]New Features[/h2]
  • gui/mass-remove: new global keybinding: Ctrl-M while on the fort map
  • sort: search and sort for the "choose unit to elevate to the barony" screen. units are sorted by the number of item preferences they have and the units are annotated with the items that they have preferences for
  • uniform-unstick: add overlay to the squad equipment screen to show a equipment conflict report and give you a one-click button to fix
[h2]Fixes[/h2]
  • ban-cooking: fix banning creature alcohols resulting in error
  • confirm: properly detect clicks on the remove zone button even when the unit selection screen is also open (e.g. the vanilla assign animal to pasture panel)
  • misery: fix error when changing the misery factor
  • reveal: now avoids revealing blocks that contain divine treasures, encased horrors, and deep vein hollows (so the surprise triggers are not triggered prematurely)
  • sort:
    • fix mouse clicks falling through the squad assignment overlay panel when clicking on the panel but not on a clickable widget
    • fix potential crash when removing jobs directly from the Tasks info screen
  • warn-stranded:
    • Automatically ignore citizens who are gathering plants or digging to avoid issues with gathering fruit via stepladders and weird issues with digging
    • Update onZoom to use df's centering functionality
[h2]Misc Improvements[/h2]
  • wherever units are listed in DFHack tools, properties like "agitated" or (-trained-) are now shown
  • autochop: better error output when target burrows are not specified on the commandline
  • confirm:
    • updated confirmation dialogs to use clickable widgets and draggable windows
    • added confirmation prompt for right clicking out of the trade agreement screen (so your trade agreement selections aren't lost)
    • added confirmation prompts for irreversible actions on the trade screen
    • added confirmation prompt for deleting a uniform
    • added confirmation prompt for convicting a criminal
    • added confirmation prompt for re-running the embark site finder
    • added confirmation prompt for reassigning or clearing zoom hotkeys
    • added confirmation prompt for exiting the uniform customization page without saving
  • gui/autobutcher: interface redesigned to better support mouse control
  • gui/control-panel:
    • reduce frequency for warn-stranded check to once every 2 days
    • tools are now organized by type: automation, bugfix, and gameplay
  • gui/launcher: now persists the most recent 32KB of command output even if you close it and bring it back up
  • gui/mass-remove:
    • can now differentiate planned constructions, stockpiles, and regular buildings
    • can now remove zones
  • gui/quickcmd: clickable buttons for command add/remove/edit operations
  • work-now: now saves its enabled status with the fort
[h2]Structures[/h2]
  • alert_button_announcement_id: now int32_t vector (contains report ids)
  • announcement_alertst: defined
  • announcement_alert_type: enum defined
  • announcement_type: added alert_type enum attribute
  • markup_text_boxst: updated based on information from Bay12
  • markup_text_linkst, markup_text_wordst, script_environmentst: defined
  • plotinfost: unk23c8_flags renamed to flags, updated based on information from Bay12
  • soundst: defined
  • world_raws: unk_v50_1, unk_v50_2, unk_v50_3 renamed to text_set, music, sound
[h2]Documentation[/h2]
  • UTF-8 text in tool docs is now properly displayed in-game in gui/launcher (assuming that it can be converted to cp-437)
  • installing: Add installation instructions for winskin on Mac
  • modding-guide: Add examples for script-only and blueprint-only mods that you can upload to DF's Steam Workshop

DFHack 50.11-r4

This release is compatible with all 50.11 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!

This is a quick release that addresses some small but important bug fixes and quality of life improvements. See the Changelog below for details.
[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.

Many 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 do not compile yet and are not available 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]
  • build-now: (reinstated) instantly complete unsuspended buildings that are ready to be built
[h2]Fixes[/h2]
  • RemoteServer: don't shut down the socket prematurely, allowing continuing connections from, for example, dfhack-run
  • buildingplan: fix choosing the wrong mechanism (or something that isn't a mechanism) when linking a lever and manually choosing a mechanism, but then canceling the selection
  • combine: prevent stack sizes from growing beyond quantities that you would normally see in vanilla gameplay
  • sort:
    • fix potential crash when exiting and re-entering a creatures subtab with a search active
    • prevent keyboard keys from affecting the UI when search is active and multiple keys are hit at once
  • tailor: fix corner case where existing stock was being ignored, leading to over-ordering
[h2]Misc Improvements[/h2]
  • buildingplan:
    • save magma safe mechanisms for when magma safety is requested when linking levers and pressure plates to targets
    • when choosing mechanisms for linking levers/pressure plates, filter out unreachable mechanisms
  • caravan: enable searching within containers in trade screen when in "trade bin with contents" mode
  • sort: when searching on the Tasks tab, also search the names of the things the task is associated with, such as the name of the stockpile that an item will be stored in

DFHack 50.11-r4 (pre-release)

[h2]New Tools[/h2]
  • build-now: (reinstated) instantly complete unsuspended buildings that are ready to be built
[h2]Fixes[/h2]
  • RemoteServer: don't shut down the socket prematurely, allowing continuing connections from, for example, dfhack-run
  • buildingplan: fix choosing the wrong mechanism (or something that isn't a mechanism) when linking a lever and manually choosing a mechanism, but then canceling the selection
  • sort:
    • fix potential crash when exiting and re-entering a creatures subtab with a search active
    • prevent keyboard keys from affecting the UI when search is active and multiple keys are hit at once
  • tailor: fix corner case where existing stock was being ignored, leading to over-ordering
[h2]Misc Improvements[/h2]
  • buildingplan:
    • save magma safe mechanisms for when magma safety is requested when linking levers and pressure plates to targets
    • when choosing mechanisms for linking levers/pressure plates, filter out unreachable mechanisms
  • caravan: enable searching within containers in trade screen when in "trade bin with contents" mode
  • combine: prevent stack sizes from growing beyond quantities that you would normally see in vanilla gameplay
  • sort: when searching on the Tasks tab, also search the names of the things the task is associated with, such as the name of the stockpile that an item will be stored in

DFHack 50.11-r3

This release is compatible with all distributions of Dwarf Fortress v50.11: 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]Selection dimension indicator[/h3]



At long last, we have a measurement tooltip that follows the cursor when you are designating an area, for example when painting burrows, stockpiles, or digging designations.



[h3]Choose mechanisms for linking[/h3]



Have you ever needed to link a lever to a floodgate or bridge that will be holding back magma, and then been frustrated when you found you had no control over whether a magma-safe mechanism was chosen to make the link?

The mechanism linking dialog is now integrated with buildingplan, giving you quick filters for autoselecting a mechanism based on how much heat it will need to withstand or letting you choose a specific mechanism from your stock. This feature is available for linking both levers and pressure plates.



[h3]Burrows![/h3]
Burrows got a lot of attention in this release. In DF, burrows are useful for defining areas that limit:
  • where assigned units perform tasks
  • where civilians can go for protection during an emergency (using gui/civ-alert)
  • where woodcutters harvest (or clearcut) trees (using gui/autochop)
  • where squad members gather to defend against threats

but they can be a bit of a pain to work with. For example, setting up the burrow area across a multi-level fortress requires tedious box selection on every z-level. And when you have a 'Safe/Inside' burrow, it's difficult to remember to extend the burrow whenever you do some digging and expand your living area.

Also, if you have your units assigned to burrows for job purposes, it's also difficult to manage who is assigned where. Notably, if a unit dies while assigned to a burrow, you can't unassign that (dead) unit from the burrow and your count of assigned units will be inaccurate.

In light of all this, DFHack now provides a wide range of new burrow-related capabilities that should make them more fun and efficient to use.

Special thanks to Black-Talon for excellent suggestions and significant help with testing these features!
[h3]3D box select[/h3]



First of all, the vanilla box select that was limited to painting a single z-level at a time is replaced with a 3D selection box that can paint a burrow across your fort's z-levels at once!



[h3]Flood fill[/h3]



Second, if you double click on a tile, you'll get a handy flood fill. This means that if you double click on the floor inside of your fort, the selection will flood to your entire fort on that level. The selection will include the adjacent walls so they can be smoothed and engraved by units that are assigned to the burrow itself.



Hold down Shift when you double click and you'll allow the flood to expand across z-levels. You can define a burrow for your entire fort with one shift-double click! The flood stops at forbidden doors and closed bridges, so it won't include the caverns if you have them blocked off. If you do accidentally include the caverns, erase a boundary between your fort and the caverns and shift-double click on the cavern side to remove just the cavern tiles from your burrow, just like the bucket tool in a painting app.



[h3]Auto-expanding burrows[/h3]



Third, you can set a burrow to auto-expand as you dig. If you name a burrow with a trailing plus symbol (+), like "Inside+", then as your miners dig, the burrow will automatically expand to include the newly exposed tiles. Make sure to include the surrounding walls in your original burrow designation so the auto expansion checks know which wall tiles to monitor.



[h3]Search filters[/h3]



Fourth, there are updated unit search and filters for easier unit burrow assignment. The search widgets on the burrow assignment screen have gained the ability to filter by burrow membership, so you can easily add or remove one burrow's members when working with another burrow.



[h3]Supporting tools[/h3]



There are also supporting tools that make burrows more useful. If you turn on dead-units-burrow in the gui/control-panel "Maintenance" tab, then units will automatically be removed from your burrows when they die. The quickfort blueprinting tool can now create new burrows and add tiles to existing ones. It can even register a burrow with gui/civ-alert or autochop, saving you some manual steps when you are laying down plans for your fortress. The Dreamfort set of quickfort blueprints takes advantage of this to set up more of your fort for you automatically.



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

Many 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 do not compile yet and are not available 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.
Generated release notes
[h2]New Tools[/h2]
  • burrow: (reinstated) automatically expand burrows as you dig
  • sync-windmills: synchronize or randomize movement of active windmills
  • trackstop: (reimplemented) integrated overlay for changing track stop and roller settings after construction
[h2]New Features[/h2]
  • buildingplan: allow specific mechanisms to be selected when linking levers or pressure plates
  • burrow: integrated 3d box fill and 2d/3d flood fill extensions for burrow painting mode
  • fix/dead-units: gained ability to scrub dead units from burrow membership lists
  • gui/design: show selected dimensions next to the mouse cursor when designating with vanilla tools, for example when painting a burrow or designating digging
  • prospect: can now give you an estimate of resources from the embark screen. hover the mouse over a potential embark area and run prospect.
  • quickfort: new burrow blueprint mode for designating or manipulating burrows
  • sort: military and burrow membership filters for the burrow assignment screen
  • unforbid: now ignores worn and tattered items by default (X/XX), use -X to bypass
[h2]Fixes[/h2]
  • RemoteServer: continue to accept connections as long as the listening socket is valid instead of closing the socket after the first disconnect
  • buildingplan: edit filter interface now uses ctrl-x to reset the filter to avoid conflict with increasing the filter's minimum quality (shift-x)
  • caravan: price of vermin swarms correctly adjusted down. a stack of 10000 bees is worth 10, not 10000
  • emigration: fix clearing of work details assigned to units that leave the fort
  • gui/unit-syndromes: show the syndrome names properly in the UI
  • sort: when filtering out already-established temples in the location assignment screen, also filter out the "No specific deity" option if a non-denominational temple has already been established
  • stockpiles: hide configure and help buttons when the overlay panel is minimized
  • tailor: fix crash on Linux where scanned unit is wearing damaged non-clothing (e.g. a crown)
[h2]Misc Improvements[/h2]
  • buildingplan:
    • display how many items are available on the planner panel
    • make it easier to build single-tile staircases of any shape (up, down, or up/down)
  • dreamfort: "Inside+" and "Clearcutting" burrows now automatically created and managed
  • sort:
    • allow searching by profession on the squad assignment page
    • add search for places screens
    • add search for work animal assignment screen; allow filtering by miltary/squad/civilian/burrow
    • on the squad assignment screen, make effectiveness and potential ratings use the same scale so effectiveness is always less than or equal to potential for a given unit. this way you can also tell when units are approaching their maximum potential
    • new overlay on the animal assignment screen that shows how many work animals each visible unit already has assigned to them
  • warn-stranded: don't warn for units that are temporarily on unwalkable tiles (e.g. as they pass under a waterfall)
[h2]Removed[/h2]
  • gui/control-panel:
    • removed always-on system services from the System tab: buildingplan, confirm, logistics, and overlay. The base services should not be turned off by the player. Individual confirmation prompts can be managed via gui/confirm, and overlays (including those for buildingplan and logistics) are managed on the control panel Overlays tab.
    • removed autolabor from the Fort and Autostart tabs. The tool does not function correctly with the new labor types, and is causing confusion. You can still enable autolabor from the commandline with enable autolabor if you understand and accept its limitations.
[h2]API[/h2]
  • Buildings:: completebuild: used to link a newly created building into the world
  • Burrows:: setAssignedUnit: now properly handles inactive burrows
  • Gui:: getMousePos: now takes an optional allow_out_of_bounds parameter so coordinates can be returned for mouse positions outside of the game map (i.e. in the blank space around the map)
  • Gui:: revealInDwarfmodeMap: gained highlight parameter to control setting the tile highlight on the zoom target
  • Maps:: getWalkableGroup: get the walkability group of a tile
  • Units:: getReadableName: now returns the untranslated name
[h2]Lua[/h2]
  • dfhack.buildings.completebuild: expose new module API
  • dfhack.gui.getMousePos: support new optional allow_out_of_bounds parameter
  • dfhack.gui.revealInDwarfmodeMap: gained highlight parameter to control setting the tile highlight on the zoom target
  • dfhack.maps.getWalkableGroup: get the walkability group of a tile
  • gui.FRAME_THIN: a panel frame suitable for floating tooltips
[h2]Structures[/h2]
  • burrow: add new graphics mode texture and color fields
  • job_item_flags3: identify additional flags
[h2]Documentation[/h2]
  • Document the Lua API for the dfhack.world module

DFHack 50.11-r2

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]Search! Search! Search![/h3]
We finally have search widgets for many of the screens with long lists. No longer will you need to scroll endlessly to find Bim Zasitisos, Cook. You can just type "bim", or "cook", or maybe "knifedales", since that's what "Zasitisos" translates to and it's the name you see in some contexts. You can also search by the name of the job they're currently doing. Or hey, search for "forgotten" on the "Others" tab to see which forgotten beasts you've actually forgotten about in the caverns:





For each screen, you can click on the search field to focus it or hit the keyboard hotkey (Alt-s) and start typing. Just like all DFHack text entry fields, you can hit Ctrl-x to clear the text or Ctrl-v to paste from your operating system clipboard.

Remember that you can search for more than just the name. Some examples:
  • Search for "steel short sword" when choosing artifacts to send a raid for
  • Search for "appraisal" when choosing a broker

Some screens come with additional filters. For example, in the "Engrave slab" menu, you can click a button and see just the units that you need to engrave a slab for to prevent ghosts. Similarly, when choosing which guildhall or temple to establish, you can now filter out the ones that you've already established. Now you can create chapels for each of the 40 deities that your dwarves somehow find time to worship and be confident that you aren't wasting space on duplicates.

The Justice tabs in particular received the most filtering capabilities. You can now easily see just the high-risk visitors you should be paying attention to (e.g. intelligent undead or professional criminals).

In all, DFHack has added search widgets to more than 30 screens/lists:
  • Info -> Creatures -> Citizens
  • Info -> Creatures -> Pets/Livestock
  • Info -> Creatures -> Pets/Livestock -> Overall Training
  • Info -> Creatures -> Pets/Livestock -> Assign Trainer
  • Info -> Creatures -> Others
  • Info -> Creatures -> Dead/Missing
  • Info -> Tasks
  • Info -> Labor -> Work details
  • Info -> Nobles -> Choose candidate
  • Info -> Objects -> Artifacts
  • Info -> Objects -> Symbols
  • Info -> Objects -> Named objects
  • Info -> Objects -> Written content
  • Info -> Justice ->
  • -> Interrogate
  • Info -> Justice ->
  • -> Convict
  • Location selector -> Temple
  • Location selector -> Guildhall
  • Unit selector -> Bedroom
  • Unit selector -> Office
  • Unit selector -> Dining hall
  • Unit selector -> Tomb
  • Unit selector -> Workshop worker
  • Unit selector -> Occupation
  • Unit selector -> Burrow
  • Unit selector -> Squad kill order
  • Unit selector -> Squad assignment
  • Stoneworker's workshop -> Engrave slab -> Choose unit to memorialize

In addition, DFHack assists these workflows with searchable/filterable selection dialogs:
  • Zone -> Pasture -> Assignment
  • Zone -> Pit -> Assignment
  • Cage -> Assignment
  • Restraint -> Assignment
  • Pedestal -> Choose item for display
  • Trade depot -> Bring items to depot
  • Trade depot -> Trade
[h3]Preserve tomb assignments[/h3]
Have you noticed that your nobles don't actually get buried in the nice tombs you assigned to them while they were alive and demanding nice tombs? This is because DF loses track of that assignment when they die, which is amusingly and tragically ironic.



Enable preserve-tombs in the DFHack gui/control-panel ("Fort" and "Autostart" tabs) to keep track of those tomb assignments and ensure they are actually used for their intended purposes.
[h3]Single click collapse all for stocks screen[/h3]
Often, you just want to know how many of each category of thing you have. The group info bars have that information, but you need to click on each of them to collapse them to see more than one of them at a time. Now there is a solution to collapse all visible groups with one click. There is now a button off the right side of the stocks panel that says "collapse all". Click that button or hit the hotkey (Ctrl-x) to collapse everything down to a single line each.





[h3]Automatic tomb zone creation[/h3]
Setting up tombs is a chore. You have to place the coffins, and then for each coffin, you have to declare a Tomb zone. With the burial command, you can get those Tomb zones created for you automatically. Just run the command after you place the coffins to get the Tomb zones for free. No extra clicks!



[h3]Get notified for stranded citizens[/h3]
Have you ever closed off the caverns and only later noticed that you had dwarves trapped down there? With warn-stranded, you can get notified quickly that you have citizens that can't reach their peers. You'll then have enough time to organize a rescue mission before they start starving. It also catches units stuck in trees or in pits.



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

Many 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 do not compile yet and are not available 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.
Generated release notes
[h2]New Tools[/h2]
  • add-recipe: (reinstated) add reactions to your civ (e.g. for high boots if your civ didn't start with the ability to make high boots)
  • burial: (reinstated) create tomb zones for unzoned coffins
  • fix/corrupt-jobs: prevents crashes by automatically removing corrupted jobs
  • preserve-tombs: keep tombs assigned to units when they die
  • spectate: (reinstated) automatically follow dwarves, cycling among interesting ones
[h2]New Scripts[/h2]
  • warn-stranded: new repeatable maintenance script to check for stranded units, similar to warn-starving
[h2]New Features[/h2]
  • burial: new options to configure automatic burial and limit scope to the current z-level
  • drain-aquifer:
    • gained ability to drain just above or below a certain z-level
    • new option to drain all layers except for the first N aquifer layers, in case you want some aquifer layers but not too many
  • gui/control-panel: drain-aquifer --top 2 added as an autostart option
  • logistics: automelt now optionally supports melting masterworks; click on gear icon on stockpiles overlay frame
  • sort:
    • new search widgets for Info panel tabs, including all "Creatures" subtabs, all "Objects" subtabs, "Tasks", candidate assignment on the "Noble" subtab, and the "Work details" subtab under "Labor"
    • new search and filter widgets for the "Interrogate" and "Convict" screens under "Justice"
    • new search widgets for location selection screen (when you're choosing what kind of guildhall or temple to dedicate)
    • new search widgets for burrow assignment screen and other unit assignment dialogs
    • new search widgets for artifacts on the world/raid screen
    • new search widgets for slab engraving menu; can filter for only units that need a slab to prevent rising as a ghost
  • stocks: hotkey for collapsing all categories on stocks screen
[h2]Fixes[/h2]
  • buildingplan:
    • remove bars of ash, coal, and soap as valid building materials to match v50 rules
    • fix incorrect required items being displayed sometimes when switching the planner overlay on and off
  • dwarfvet: fix invalid job id assigned to Rest job, which could cause crashes on reload
  • full-heal: fix removal of corpse after resurrection
  • gui/sandbox: fix scrollbar moving double distance on click
  • hide-tutorials: fix the embark tutorial prompt sometimes not being skipped
  • sort: don't count mercenaries as appointed officials in the squad assignment screen
  • suspendmanager: fix errors when constructing near the map edge
  • zone:
    • races without specific child or baby names will now get generic child/baby names instead of an empty string
    • don't show animal assignment link for cages and restraints linked to dungeon zones (which aren't normally assignable)
[h2]Misc Improvements[/h2]
  • Help icons added to several complex overlays. clicking the icon runs gui/launcher with the help text in the help area
  • buildingplan:
    • support filtering cages by whether they are occupied
    • show how many items you need to make when planning buildings
  • gui/gm-editor: for fields with primitive types, change from click to edit to click to select, double-click to edit. this should help prevent accidental modifications to the data and make hotkeys easier to use (since you have to click on a data item to use a hotkey on it)
  • gui/overlay: filter overlays by current context so there are fewer on the screen at once and you can more easily click on the one you want to reposition
  • orders: recheck command now only resets orders that have conditions that can be rechecked
  • overlay: allow overlay_onupdate_max_freq_seconds to be dynamically set to 0 for a burst of high-frequency updates
  • prioritize: refuse to automatically prioritize dig and smooth/carve job types since it can break the DF job scheduler; instead, print a suggestion that the player use specialized units and vanilla designation priorities
  • quickfort: now allows constructions to be built on top of constructed floors and ramps, just like vanilla. however, to allow blueprints to be safely reapplied to the same area, for example to fill in buildings whose constructions were canceled due to lost items, floors will not be rebuilt on top of floors and ramps will not be rebuilt on top of ramps
  • sort: added help button for squad assignment search/filter/sort
  • tailor: now adds to existing orders if possilbe instead of creating new ones
  • zone: animals trained for war or hunting are now labeled as such in animal assignment screens
[h2]Removed[/h2]
  • FILTER_FULL_TEXT: moved from gui.widgets to utils; if your full text search preference is lost, please reset it in gui/control-panel
[h2]API[/h2]
  • added Items::getCapacity, returns the capacity of an item as a container (reverse-engineered), needed for combine
[h2]Lua[/h2]
  • added dfhack.items.getCapacity to expose the new module API
  • added GRAY color aliases for GREY colors
  • utils.search_text: text search routine (generalized from internal widgets.FilteredList logic)
[h2]Structures[/h2]
  • add new globals: translate_name, buildingst_completebuild
  • artifact_rumor_locationst: defined
  • viewscreen_worldst: defined types for view_mode and artifacts_arl fields
  • world_view_mode_type: defined
[h2]Documentation[/h2]
  • unavailable tools are no longer listed in the tag indices in the online docs