DFHack 50.09-r2
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
.
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!
Announcements
Distribute quickfort blueprints in mods, PSAs
You can now distribute your quickfort blueprints in mods!
Think you have a cool fortress design that you want to share with the community? The effort required to share your designs has now been cut down significantly. DFHack quickfort
now supports blueprints that have been distributed with mods!
The blueprint in the screenshot comes from a mod with only two files:
mods/myk002 blueprints/info.txt
mods/myk002 blueprints/blueprints/from_mod.csv
with info.txt
containing just the basic mod metadata (detailed in the DF mod guide). You can distribute these mods anyway you like, including from the DF Steam Workshop.
How do you make blueprints of your fort to distribute? DFHack's gui/blueprint
will take a snapshot of your fort and create a series of blueprints for you. You can also make edits with a text editor or online spreadsheet app to do some really advanced stuff.
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.
Highlights
search and sort, copy/paste support, ASCII warm/damp highlights, other new tools
Initial screens for search and sort
The first few screens are done for search/filter/sort support! For starters, we decided to tackle the animal assignment to pasture screen and the trade screens, both of which are a frequent source of frustration for players. There is generally not enough room to add vanilla-sized buttons, so DFHack screen links will appear surrounded with red and yellow bars to to distinguish them from vanilla widgets.
The screen that comes up can be filtered and sorted by whether and where the animals are pastured/caged, by their friendliness or tame status, and by various other properties. All animals of a particular species are now listed next to each other so you can find them easily.
The trade screens got a similar treatment. There are two new screens, one for bringing trade goods to the depot, and one for doing the actual trading. In both, items that are ethically unacceptable to the traders that you are trading with and items that are forbidden to export by your nobles are automatically filtered out, though you can change the filters if you like. Both screens also make bins safe and easy to work with.
The bring goods to depot screen allows you to find the items that you want to sell and mark them for trading. For example, you can move the "condition" slider to only show damaged items and then mark them all for trade with a single click.
The trade screen provides similar filter and selection support for items being bought and sold. By default, only the contents of bins are listed and traded and the bins themselves aren't traded. You can toggle this behavior and trade bins if you like, though.
Copy/paste support
With the move to SDL2 comes new clipboard integration capabilities. DFHack's text entry fields, such as the command editing field in gui/launcher
, now support copy, paste, and cut. Ctrl-V will paste from the system clipboard into the DFHack text field. This is especially useful when pasting in DFHack commands that you find on the internet! Ctrl-C will copy text out that you can paste into another application, and Ctrl-X will copy the text and also clear the field (so it's a convenient way of just clearing the text quickly even if you don't need to copy it).
Note that there is no way to just select a portion of the text, though, so all copy and cut operations apply to all text in the field.
Warm and damp indicators in ASCII mode
DF does not distinguish damp or warm tiles when in ASCII mode. This can be very frustrating for ASCII-mode players that have to play without this information.
DFHack now automatically highlights damp tiles in blue and warm tiles in red when in ASCII mode and a mining operation is selected. In other words, the visual feedback in ASCII now matches what premium players get in graphics mode.
Other new tools
Some long-standing requests were finally fulfilled in this release, with the return of a few fan-favorite tools and one new game fix.
3dveins
replaces vanilla DF's blobby vein generation with veins that flow smoothly and naturally between z-levels. Want a more natural looking geology? Try running this command right after a new embark!dwarfvet
allows your animals to have their wounds treated at hospitals, prolonging their life and usefulness.fix/empty-wheelbarrows
dislodges rocks that get stuck in your wheelbarrows when a hauling dwarf gets distracted and the full wheelbarrow gets abandoned somewhere. This makes those wheelbarrows useful for hauling again. Enable this tool in the "Maintenance" tab ofgui/control-panel
to automatically keep your wheelbarrows usable!
Generated release notes
New tools, fixes, and improvements
New Tools
3dveins
: reinstated for v50, this plugin replaces vanilla DF's blobby vein generation with veins that flow smoothly and naturally between z-levelscaravan
: new trade screen UI replacements for bringing goods to trade depot and tradingdig
: newdig.asciiwarmdamp
overlay that highlights warm and damp tiles when in ASCII mode. there is no effect in graphics mode since the tiles are already highlighted theredwarfvet
: reinstated and updated for v50's new hospital mechanics; allow your animals to have their wounds treated at hospitalsfix/empty-wheelbarrows
: new script to empty stuck rocks from all wheelbarrows on the mapzone
: new searchable, sortable, filterable screen for assigning units to pastures
Fixes
- Fix extra keys appearing in DFHack text boxes when shift (or any other modifier) is released before the other key you were pressing
gui/autodump
: when "include items claimed by jobs" is on, actually cancel the job so the item can be teleportedgui/create-item
: when choosing a citizen to create the chosen items, avoid choosing a dead citizengui/gm-unit
: fix commandline processing when a unit id is specifiedlogistics
:- don't autotrain domestic animals brought by invaders (they'll get attacked by friendly creatures as soon as you let them out of their cage)
- don't bring trade goods to depot if the only caravans present are tribute caravans
- fix potential crash when removing stockpiles or turning off stockpile features
suspendmanager
:- take in account already built blocking buildings
- don't consider tree branches as a suitable access path to a building
Misc Improvements
- Dreamfort: give noble suites double-thick walls and add apartment doors
- Suppress DF keyboard events when a DFHack keybinding is matched. This prevents, for example, a backtick from appearing in a textbox as text when you launch
gui/launcher
from the backtick keybinding. autonick
: add more variety to nicknames based on famous literary dwarvesgui/unit-syndromes
: make lists searchablelogistics
: bring an autotraded bin to the depot if any item inside is tradeable instead of marking all items within the bin as untradeable if any individual item is untradeablequickfort
: blueprint libraries are now moddable -- add ablueprints/
directory to your mod and they'll show up inquickfort
andgui/quickfort
!stockpiles
: include exotic pets in the "tameable" filtersuspendmanager
: display the suspension reason when viewing a suspended buildingwidgets.EditField
: DFHack edit fields now support cut/copy/paste with the system clipboard with Ctrl-X/Ctrl-C/Ctrl-V
API
Items::markForTrade()
,Items::isRequestedTradeGood()
,Items::getValue
: see Lua notes belowUnits::getUnitByNobleRole
,Units::getUnitsByNobleRole
: unit lookup API by role
Internals
- Price calculations fixed for many item types
Lua
dfhack.items.getValue
: gained optionalcaravan
andcaravan_buying
parameters for prices that take trader races and agreements into accountdfhack.items.isRequestedTradeGood
: discover whether an item is named in a trade agreement with an active caravandfhack.items.markForTrade
: mark items for tradedfhack.units.getUnitByNobleRole
,dfhack.units.getUnitsByNobleRole
: unit lookup API by rolewidgets.TextButton
: wraps aHotkeyLabel
and decorates it to look more like a button
Structures
build_req_choicest
: realign structure and fix vmethodssquad_orderst
: fix vmethods
Documentation
misery
: rewrite the documentation to clarify the actual effects of the plugin