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 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!
What needs testing?
There are several large new features for this release that could use testing and feedback.
This is the one that needs the most feedback, especially from people who have found the cavern invasions to be frustrating. The basic question is: after you turn this mod on, do you still find the caverns frustrating? Do you feel like the caverns are more fun to explore and utilize?
If you're just confused by the whole agitated animal and cavern invasion thing, there is an overview of how the vanilla system works here: https://docs.dfhack.org/en/latest/docs/tools/agitation-rebalance.html#how-the-df-agitation-system-works
The tl;dr is that your actions annoy nature, and nature retaliates..endlessly. Many people find the constant nature of the retaliation to be overwhelming. This mod tempers the retaliation so once you get attacked, you won't get attacked again until you specifically provoke nature further.
How to use
Open up If you want a tougher experience, you can instead run:
If you want the visible monitor that shows your current chances of being attacked by nature, run:
You may have noticed that some dwarves can never satisfy their need to worship. They get stuck praying to the same god over and over, but they never seem to get enough. Their job is listed as a purple "Worship!", which means that the need is so strong that they are unable to do anything else. The issue is that despite having needs to pray to several different gods, the dwarf only prays to one, even if they have already satisfied their need for that particular god. This fix ensures that each god gets their fair share of prayer time.
The fix is on by default -- it will start up as soon as you install this beta and load a fort -- but we'd like some verification that it works well in a wide variety of fort setups. If you have dwarves that are already stuck in a Worship! loop and have a backlog of gods they need to pray to, it may still take them a few days to pray themselves out of that hole. However, after a month or so, does your fort seem more productive than it was before? When your dwarves worship, is is now a friendly green instead of a dire purple?
If you go to the Work Details screen (under "Labor"), you'll now see buttons for exporting, importing, and auto-importing your work details for new forts. Try it out! does it make setting up new forts easier?
This one is for those who like to domesticate wild animals. A newborn animal inherits the training level of its parents. If the parents were not yet fully domesticated, the newborn won't be either. If you don't notice that the animal was born and that it doesn't have a trainer assigned, the partial training will decay over time, and eventually the animal will revert to wild, possibly attacking your dwarves or other livestock.
The autoretrainer watches for newborn partially-trained livestock and assigns a trainer. That's it.
You can enable it from the Pets/Livestock screen (under "Creatures")
This is a new overlay for workshop and furnace buildings where you can configure the workshop to only accept general work orders that pertain to specific labors (the list of allowed labors is different for every workshop).
For example, by default, all weapon, armor, and blacksmithing general manager orders get sent to all forges. With labor restrictions, you can designate specific forges to handle just weapons, just armor, or just metalsmithing. Then, you can assign appropriate legendary masters to each forge, and they will only receive orders for appropriate products.
Or, instead of assigning a workshop master, you can restrict the skill level to Master and above and leave the workshop at "This workshop is free for anybody to use.". This will allow any citizen that is at least a master of armorsmithing to use the workshop to complete the jobs there.
With labor and skill restrictions, you can simplify your work orders, leaving them generalized and not tied to specific shops. The restrictions will self-organize the orders so they get completed at the right places with the right pool of people, even if one or two masters meet an untimely demise.
Veteran players may remember this as a vanilla feature in pre-v50 Dwarf Fortress. This is actually still the case. The DFHack overlay simply provides a UI for the vanilla feature hiding beneath the surface, just like the civilian alert. There was a previous announcement and discussion of this feature here.
This one's just for the Linux folks. It's important that DF playtime metrics get to DF, so we updated our launcher on Linux to ensure that both DFHack and DF get marked as "running" when you're playing the game from the Steam client. If you're on Linux, could you try:
In both cases, Steam should show that both DF and DFHack are "running". Could you report back whether this is the case for you on your system?
agitation-rebalance, fix/stuck-worship, work details import/export, autoretrain livestock, labor and skill restrictions for workshops
agitation-rebalance smooths out agitated creature attacks and cavern invasions
gui/control-panel
and go to the "Gameplay" tab. Turn on agitation-rebalance
. If your difficulty settings are at any of the vanilla presets, that's all you have to do. If you have customized the difficulty settings, say to disable cavern invaders, run this command:
agitation-rebalance preset lenient
agitation-rebalance preset strict
agitation-rebalance enable monitor
fix/stuck-worship
work details import/export
autoretrain livestock
labor and skill restrictions for workshops
New Linux Steam launch behavior
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.
Changelog
New tools, fixes, and improvements
New Tools
agitation-rebalance
: alter mechanics of irriation-related attacks so they are less constant and are more responsive to recent player bahaviorfix/stuck-worship
: fix prayer so units don't get stuck in uninterruptible "Worship!" statesinstruments
: provides information on how to craft the instruments used by the player civilization.modtools/item-trigger
: (reinstated) modder's resource for triggering scripted content when specific items are used
New Features
exterminate
: new "disintegrate" kill method that additionally destroys carried itemsgui/settings-manager
: add import, export, and autoload for work detailslogistics
:autoretrain
will automatically assign trainers to your partially-trained (but not yet domesticated) livestock. this prevents children of partially-trained parents from reverting to wild if you don't notice they were bornorders
: add overlay for configuring labor and skill level restrictions for workshopsquickfort
: allow setting of workshop profile properties (e.g. labor, skill restrictions) from build blueprintssort
: updated and reinstated military status/squad membership/burrow membership filter for work animal assignment screenstocks
: add button/hotkey for removing empty categories from the stocks list
Fixes
autochop
: fix underestimation of log yield for cavern mushroomscatsplosion
: only cause pregnancies in adultscontrol-panel
: fix filtering not filtering when running thelist
commandgui/launcher
:- fix detection on Shift-Enter for running commands and autoclosing the launcher
- fix history scanning (Up/Down arrow keys) being slow to respond when in minimal mode
gui/notify
:- prevent notification overlay from showing up in arena mode
- don't zoom to forbidden depots for merchants ready to trade notification
logistics
:- don't melt/trade/dump empty containers that happen to be sitting on the stockpile unless the stockpile accepts those item types
- don't send autotrade items to forbidden depots
Misc Improvements
- Dreamfort: the four Craftsdwarf's workshops on the industry level are now specialized for Stonecrafting, Woodcrafting, Bone Carving, and miscellaneous tasks, respectively
- When launched from the Steam client on Linux, both Dwarf Fortress and DFHack will be shown as "Running". This ensures that DF has proper accounting for Linux player usage.
autobutcher
: prefer butchering partially trained animals and save fully domesticated animals to assist in wildlife domestication programsautodump
: can now teleport items loosely stored in buildings (clutter)clean
: protect farm plots when cleaning mudcontrol-panel
: enable tweaks quietly on fort load so we don't spam the consoledevel/tile-browser
: simplify interface now that SDL automatically normalizes texture scaleexterminate
: make race name matching case and space insensitivegui/gm-editor
: support opening engraved art for inspectiongui/launcher
:- add interface for browsing and filtering commands by tags
- add support for history search (Alt-s hotkey) when in minimal mode
- add support for the
clear
command and clearing the scrollback buffer
gui/teleport
: add global Ctrl-Shift-T keybinding (only avaiable when DFHack mortal mode is disabled)suspendmanager
: improve performance when there are many active jobstweak
: addquiet
option for silent enablement and disablement of tweaks
API
Units::isForgottenBeast
: property check for forgotten beastsUnits::isGreatDanger
: now includes forgotten beasts
Lua
helpdb
:search_entries
now returns a match if all filters in theinclude
list are matched. previous behavior was to match if anyinclude
filter matched.dfhack.units.isForgottenBeast
: make new units method available to Luamatinfo.decode
: now directly handles plant objectswidgets.Label
:*pen
attributes can now either be a pen or a function that dynamically returns a pen
Structures
plant_tree_info
: define tree body and branch flagsplotinfo.hauling
: name fields related to the hauling route panel
Documentation
introduction
: refresh getting started contentoverlay-dev-guide
: updated examples and troubleshooting stepsquickstart
: refresh quickstart guide