Skip to content

DFHack 50.11-r3

Compare
Choose a tag to compare
@github-actions github-actions released this 16 Nov 16:32
· 2559 commits to develop since this release
ed9e6c8

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


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!

Highlights

Selection dimension indicator, Choose mechanisms for linking, Burrows!

Selection dimension indicator

dimensions

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.

dimensions

Choose mechanisms for linking

mechanisms

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.

mechanisms

Burrows!

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!

3D box select

3d_box_select

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!

3d_box_select

Flood fill

flood_fill

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.

flood_fill

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.

bucket_flood_fill

Auto-expanding burrows

burrow_auto_expand

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.

burrow_auto_expand

Search filters

burrow_filter

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.

burrow_filter

Supporting tools

burrow_control_panel

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.

burrow_quickfort

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

  • 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

New Features

  • 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

Fixes

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

Misc Improvements

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

Removed

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

API

  • 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

Lua

  • 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

Structures

  • burrow: add new graphics mode texture and color fields
  • job_item_flags3: identify additional flags

Documentation

  • Document the Lua API for the dfhack.world module