github DFHack/dfhack 50.11-r2
DFHack 50.11-r2

latest releases: 50.14-r1.1, 50.14-r1, 50.13-r5...
11 months ago

Q: How do I install 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.


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

Search! Search! Search!, Preserve tomb assignments, Collapse all for stocks screen, Automatic tomb zones, Stranded citizen alert

Search! Search! Search!

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:

image

search_units

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

Preserve tomb assignments

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.

preserve_tombs

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.

Single click collapse all for stocks screen

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.

stocks_collapse

stocks_collapse

Automatic tomb zone creation

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!

burial

Get notified for stranded citizens

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.

warn_stranded

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.

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

New tools, fixes, and improvements

New Tools

  • 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

New Scripts

  • warn-stranded: new repeatable maintenance script to check for stranded units, similar to warn-starving

New Features

  • 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

Fixes

  • 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)

Misc Improvements

  • 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

Removed

  • FILTER_FULL_TEXT: moved from gui.widgets to utils; if your full text search preference is lost, please reset it in gui/control-panel

API

  • added Items::getCapacity, returns the capacity of an item as a container (reverse-engineered), needed for combine

Lua

  • 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)

Structures

  • 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

Documentation

  • unavailable tools are no longer listed in the tag indices in the online docs

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.