This release is compatible with all distributions of DF: Steam, Itch, and Classic.
To download DFHack: scroll down to "Assets" and download the "dfhack-50.07-beta2-Windows-64bit.zip" file.
Please report any bugs (or feature requests) on the DFHack GitHub issue tracker.
Announcements
DFHack is coming to Steam, PSAs
DFHack is coming to Steam
In two weeks, you'll be able to install DFHack from Steam. You may have heard that DFHack now has a Steam page. We're in the mandatory 2 week waiting period right now before we can go live, but in two weeks, Steam users will be able to keep DFHack updated via Steam instead of having to go through the manual install process for every version.
This was a massive undertaking, and thanks to everyone who helped make this happen: TaxiService, RafaelKB, and Rumrusher for graphic design; AndrielChaoti, Finn!, Robob27, Thalzen, esotericist, TaxiService, Ozzatron, sdegrace, 20k, plule, RafaelKB, Putnam, drhead, Scootieloo, and coskerstrike for beta testing the Steam release process; and, of course, Kitfox for fielding Steam's questions during the build review and approving us as a DF mod : )
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 tested thoroughly with the newest versions and have 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 autocomplete as normal. Some tools do not compile yet and are not available at all, even when in dev mode.
For those of you using sdl12compat, note that you will need to replace the "SDLreal.dll" file that DFHack installs with the SDL.dll (renamed to "SDLreal.dll") from sdl12compat. While we do not specifically recommend using sdl12compat, we have generally heard positive feedback about it.
Steam deck users: To avoid blocking the screen with the DFHack terminal window, please edit the dfhack-config/init/dfhack.init
file and add a line with the word hide
. This will hide the DFHack terminal and get it out of the way. You can show it again if you need it by running the command show
from gui/launcher
.
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 in the DF settings, and you can show it by entering mining mode or selecting the dump/forbid tool. We're working on making DFHack tools more mouse-aware and accessible.
Highlights
fix/general-strike, gui/civ-alert, buildingplan, tailor, mod support
fix/general-strike
enable the general strike bug fix in gui/control-panel:
This script attempts to fix known causes of the "general strike bug", where dwarves just stop accepting work and stand around with "No job". Big thanks to Putnam for contributing the logic to DFHack so players can benefit before the final fix is added to vanilla DF.
You can enable automatic running of this fix in the "Maintenance" tab of gui/control-panel
.
gui/civ-alert
keep your civilians safe during sieges:
In vanilla DF, assigning a unit to a burrow is treated more like a suggestion than a command. This can be frustrating when you're assigning units to burrows in order to get them out of danger. In contrast, triggering a civilian alert with gui/civ-alert
will cause all your non-military citizens to immediately rush to a burrow ASAP and stay there. No need to manually assign your civilians to the burrow, the alert applies to all civilians automatically. This gives you a way to keep your civilians safe when there is danger about.
You'll notice an extra panel on the Squads menu (the one that shows up on the right side of the screen when you hit q
) that prompts you to configure a burrow to use for the civ alert. Get it set up, and when danger comes a-knockin', hit that Big Red Button!
Buildingplan
More bugs squashed in buildingplan, notably:
- Issues with filter settings getting lost on game load have been solved
- All stairs types will now properly use the filter you set for stairs, and the shape of the staircase will now take carved staircases that you might be building over into account
Also, the final feature from the old automaterial
plugin has been added to buildingplan
: if you are choosing your materials manually when you build, you can configure the building type to automatically use the last material you selected until it is all gone. No need to click through the Choose Items dialog.
Expect further improvements to the buildingplan
UI in upcoming releases!
Tailor
The tailor plugin has received some love this cycle, with better detection routines for which units need which types of clothing. This leads to more accurate manager orders to produce clothes in correct quantities. Turn tailor
on in gui/control-panel
and give it a try if you haven't already!
Support for scripts in DF mods
Whaaaat?? Yes, it's true. Scripts with mods now work automatically as soon as you activate them for a world. No more manual copying of scripts after "installation". This allows everything from single scripts to total conversion mods that add new scripted gameplay elements to work seamlessly, straight from the DF Steam Workshop. See the DFHack modding guide for details. You can also subscribe to the example Workshop mod to see a real example of how to distribute scripts via Steam Workshop (though the format is applicable to mods distributed by non-Steam means as well).
Generated Release Notes
New tools, fixes, and improvements
New Plugins
getplants
: designate trees for chopping and shrubs for gathering according to typeprospector
: get stone, ore, gem, and other tile property counts in fort mode. embark site estimates are not yet available.
New Scripts
fix/general-strike
: fix known causes of the general strike bug (contributed by Putnam)gui/civ-alert
: configure and trigger civilian alertsgui/seedwatch
: GUI config and status panel interface forseedwatch
Fixes
buildingplan
:- filters are now properly applied to planned stairs
- existing carved up/down stairs are now taken into account when determining which stair shape to construct
- upright spike traps are now placed extended rather than retracted
- you can no longer designate constructions on tiles with magma or deep water, mirroring the vanilla restrictions
- fixed material filters getting lost for planning buildings on save/reload
- respect building size limits (e.g. roads and bridges cannot be more than 31 tiles in any dimension)
caravan
: item list length now correct when expanding and collapsing containersprioritize
: fixed all watched job type names showing asnil
after a game loadsuspendmanager
:- does not suspend non-blocking jobs such as floor bars or bridges anymore
- fix occasional bad identification of buildingplan jobs
tailor
:- properly discriminate between dyed and undyed cloth
- no longer default to using adamantine cloth for producing clothes
- take queued orders into account when calculating available materials
- skip units who can't wear clothes
- identify more available items as available, solving issues with over-production
warn-starving
: no longer warns for enemy and neutral units
Misc Improvements
- scripts in
data/installed mods/
subfolders are now automatically added to the DFHack script path. DFHack recognizes two directories in a mod's folder:scripts_modinstalled/
andscripts_modactive/
.scripts_modinstalled/
folders will always be added the script path, regardless of whether the mod is active in a world.scripts_modactive/
folders will only be added to the script path when the mod is active in the current loaded world. automelt
: now allows metal chests to be melted (workaround for DF bug 2493 is no longer needed)buildingplan
:- filters and global settings are now ignored when manually choosing items for a building, allowing you to make custom choices independently of the filters that would otherwise be used
- if
suspendmanager
is running, then planned buildings will be left suspended when their items are all attached.suspendmanager
will unsuspsend them for construction when it is safe to do so. - add option for autoselecting the last manually chosen item (like
automaterial
used to do)
combine
:- you can select a target stockpile in the UI instead of having to use the keyboard cursor
- added
--quiet
option for no output when there are no changes
confirm
: adds confirmation for removing burrows via the repaint menuenable
: can now interpret aliases defined with thealias
commandexterminate
: add support forvaporize
kill method for when you don't want to leave a corpsegui/control-panel
:- Now detects overlays from scripts named with capital letters
- added
combine all
maintenance option for automatic combining of partial stacks in stockpiles - added
general-strike
maintenance option for automatic fixing of (at least one cause of) the general strike bug
gui/cp437-table
:- now has larger key buttons and clickable backspace/submit/cancel buttons, making it fully usable on the Steam Deck and other systems that don't have an accessible keyboard
- dialog is now fully controllable with the mouse, including highlighting which key you are hovering over and adding a clickable backspace button
gui/design
: Now supports placing constructions using 'Building' mode. Inner and Outer tile constructions are configurable. Uses buildingplan filters set up with the regular buildingplan interface.orders
:- add minimize button to overlay panel so you can get it out of the way to read long statue descriptions when choosing a subject in the details screen
- add option to delete exported files from the import dialog
stockpiles
:- support applying stockpile configurations with fully enabled categories to stockpiles in worlds other than the one where the configuration was exported from
- support partial application of a saved config based on dynamic filtering (e.g. disable all tallow in a food stockpile, even tallow from world-specific generated creatures)
- additive and subtractive modes when applying a second stockpile configuration on top of a first
- write player-exported stockpile configurations to the
dfhack-config/stockpiles
folder. If you have any stockpile configs in other directories, please move them to that folder. - now includes a library of useful stockpile configs (see docs for details)
stripcaged
:- added
--skip-forbidden
option for greater control over which items are marked for dumping - items that are marked for dumping are now automatically unforbidden (unless
--skip-forbidden
is set)
- added
Removed
autounsuspend
: replaced bysuspendmanager
gui/dig
: renamed togui/design
Lua
widget.CycleHotkeyLabel
:- options that are bare integers will no longer be interpreted as the pen color in addition to being the label and value
- option labels and pens can now be functions that return a label or pen
widget.Label
:- tokens can now specify a
htile
property to indicate the tile that should be shown when the Label is hovered over with the mouse - click handlers no longer get the label itself as the first param to the click handler
- tokens can now specify a
Structures
- realigned
furniture_type
enum (added BAG) - realigned
stockpile_settings
for new "corpses" vector
Documentation
- the
untested
tag has been renamed tounavailable
to better reflect the status of the remaining unavaialable tools. most of the simply "untested" tools have now been tested and marked as working. the remaining tools are known to need development work before they are available again. modding-guide
: guide updated to include information for 3rd party script developers