DFHack 50.11-r3
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
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.
Choose mechanisms for linking
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.
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
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!
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.
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.
Auto-expanding burrows
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.
Search filters
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.
Supporting tools
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.
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 digsync-windmills
: synchronize or randomize movement of active windmillstrackstop
: (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 platesburrow
: integrated 3d box fill and 2d/3d flood fill extensions for burrow painting modefix/dead-units
: gained ability to scrub dead units from burrow membership listsgui/design
: show selected dimensions next to the mouse cursor when designating with vanilla tools, for example when painting a burrow or designating diggingprospect
: can now give you an estimate of resources from the embark screen. hover the mouse over a potential embark area and runprospect
.quickfort
: newburrow
blueprint mode for designating or manipulating burrowssort
: military and burrow membership filters for the burrow assignment screenunforbid
: 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 10000emigration
: fix clearing of work details assigned to units that leave the fortgui/unit-syndromes
: show the syndrome names properly in the UIsort
: 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 establishedstockpiles
: hide configure and help buttons when the overlay panel is minimizedtailor
: 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 managedsort
:- 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
, andoverlay
. The base services should not be turned off by the player. Individual confirmation prompts can be managed viagui/confirm
, and overlays (including those forbuildingplan
andlogistics
) are managed on the control panelOverlays
tab. - removed
autolabor
from theFort
andAutostart
tabs. The tool does not function correctly with the new labor types, and is causing confusion. You can still enableautolabor
from the commandline withenable autolabor
if you understand and accept its limitations.
- removed always-on system services from the
API
Buildings::completebuild
: used to link a newly created building into the worldBurrows::setAssignedUnit
: now properly handles inactive burrowsGui::getMousePos
: now takes an optionalallow_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
: gainedhighlight
parameter to control setting the tile highlight on the zoom targetMaps::getWalkableGroup
: get the walkability group of a tileUnits::getReadableName
: now returns the untranslated name
Lua
dfhack.buildings.completebuild
: expose new module APIdfhack.gui.getMousePos
: support new optionalallow_out_of_bounds
parameterdfhack.gui.revealInDwarfmodeMap
: gainedhighlight
parameter to control setting the tile highlight on the zoom targetdfhack.maps.getWalkableGroup
: get the walkability group of a tilegui.FRAME_THIN
: a panel frame suitable for floating tooltips
Structures
burrow
: add new graphics mode texture and color fieldsjob_item_flags3
: identify additional flags
Documentation
- Document the Lua API for the
dfhack.world
module