Memory hacking library for Dwarf Fortress and a set of tools that use it
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 beta release is compatible with all distributions of Dwarf Fortress: Steam, Itch, and Classic.
If installing from Steam, remember to switch to the beta
branch in the properties for DFHack in the Steam client.
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!
We finally have search widgets for many of the screens with long lists. No longer will you need to scroll endlessly to find Bim Zasitisos, Cook
. You can just type "bim", or "cook", or maybe "knifedales", since that's what "Zasitisos" translates to and it's the name you see in some contexts. Or hey, search for "forgotten" on the "Others" tab to see which forgotten beasts you've forgotten about in the caverns:
Search units on the Citizens tab:
Search (and filter) interview candidates on the Justice tab:
Search artifacts on the world screen (for raids):
Search religions for dedicating a new temple:
So far, here are the screens that are covered:
Plus the screens that were already covered in previous DFHack versions:
Have you noticed that your nobles don't actually get buried in the nice tombs you assigned to them while they were alive and demanding nice tombs? This is because DF loses track of that assignment when they die, which is amusingly and tragically ironic.
Enable preserve-tombs
in the DFHack gui/control-panel
("Fort" and "Autostart" tabs) to keep track of those tomb assignments and ensure they are actually used for their intended purposes.
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.
add-recipe
: (reinstated) add reactions to your civ (e.g. for high boots if your civ didn't start with the ability to make high boots)preserve-tombs
: keep tombs assigned to units when they diespectate
: (reinstated) automatically follow dwarves, cycling among interesting onesdrain-aquifer
:
gui/control-panel
: drain-aquifer --top 2
added as an autostart optionlogistics
: automelt
now optionally supports melting masterworks; click on gear icon on stockpiles
overlay framesort
:
gui/sandbox
: fix scrollbar moving double distance on clickhide-tutorials
: fix the embark tutorial prompt sometimes not being skippedsuspendmanager
: fix errors when constructing near the map edgezone
: don't show animal assignment link for cages and restraints linked to dungeon zones (which aren't normally assignable)orders
: recheck
command now only resets orders that have conditions that can be recheckedoverlay
: allow overlay_onupdate_max_freq_seconds
to be dynamically set to 0 for a burst of high-frequency updatessort
: added help button for squad assignment search/filter/sortzone
: animals trained for war or hunting are now labeled as such in animal assignment screensFILTER_FULL_TEXT
: moved from gui.widgets
to utils
; if your full text search preference is lost, please reset it in gui/control-panel
GRAY
color aliases for GREY
colorsutils.search_text
: text search routine (generalized from internal widgets.FilteredList
logic)translate_name
artifact_rumor_locationst
: definedviewscreen_worldst
: defined types for view_mode
and artifacts_arl
fieldsworld_view_mode_type
: definedA: 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 50.10 and 50.11 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!
The vanilla screen for choosing which items you want to display on a pedestal or display case requires quite a bit of scrolling and clicking to use. It is also hard to figure out how the items you have assigned will affect the value of the room. There is now an alternate dialog that should make the process much easier and less opaque:
You can search items by name (including book titles), filter by quality (e.g. see only artifacts), and sort by name, value, or where the item is currently assigned for display.
If the pedestal is in a guildhall or temple, there is also a convenient indicator for whether you've added enough value to bump the guildhall or temple to the next tier. For example, if you need to provide your citizens with a grand guildhall, the indicator will change from "Guildhall" to "Grand guildhall" when you've assigned items with enough value.
Some people have already experimented with the newly re-added startdwarf
script, which allows you to change the number of dwarves you embark with, and have found that the DF embark screen doesn't support scrolling for the unit list. This means that if you embark with more dwarves than can fit on your screen, you cannot select them to configure their skills.
We now have a DFHack-added scrollbar so you can scroll up and down through the list and configure each of your extra dwarves:
Note that the vanilla screen was not intended to be scrolled, so the behavior of the list is a little odd. When you select a dwarf to configure, the list will jump so that the dwarf you selected is at the top of the screen. This can be a little disorienting, but the dwarf is still configurable, and all dwarves are accessible.
This only affects modders and players who are writing their own DFHack scripts and who react to mouse events like _MOUSE_L
or _MOUSE_L_DOWN
. Everyone else can skip reading this.
Back in the pre-v50 days, when the mouse was much less used in DF, I made a mistake in how I interpreted DF's handling of mouse button state. The result is that DFHack has been representing mouse state incorrectly to the Lua scripts. This hasn't been much of a problem since all the scripts were written to misinterpret the state the same way. However, now that DFHack tools are integrating more closely with the vanilla DF UI, the difference in interpretation of mouse state is causing conflicts.
The _MOUSE_L
event now correctly fires when the mouse button has just been clicked, and the _MOUSE_L_DOWN
event now correctly fires when the mouse button is held down. The previous definitions were backwards.
If you have written your own script and you refer to mouse events in your onInput(keys)
function, you can update to the new definitions by swapping references to _MOUSE_L
with _MOUSE_L_DOWN
and vice versa. Similarly for _MOUSE_R
and _MOUSE_M
, if you happen to use them. My apologies for breaking scripts. This is something we try not to do very often, though hopefully this change will make up for the hassle by allowing scripts to integrate more smoothly with vanilla DF widgets. Thanks!
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.
startdwarf
: (reinstated) set number of starting dwarvestubefill
: (reinstated) replenishes mined-out adamantinestartdwarf
: overlay scrollbar so you can scroll through your starting dwarves if they don't all fit on the screenautolabor
: ensure vanilla work details are reinstated when the fort or the plugin is unloadedsuspendmanager
: fixed a bug where floor grates, bars, bridges etc. wouldn't be recognised as walkable, leading to unnecessary suspensions in certain cases.dfhack.TranslateName()
: fixed crash on certain invalid names, which affected warn-starving
onBuildingCreatedDestroyed
events, changed firing order of events so destroyed events come before created eventsdevel/inspect-screen
: display total grid size for UI and map layersdigtype
:
hotkeys
:
suspendmanager
: now suspends constructions that would cave-in immediately on completion_MOUSE_L
indicates that the left mouse button has just been pressed and _MOUSE_L_DOWN
indicates that the left mouse button is being held down. similarly for _MOUSE_R
and _MOUSE_M
. 3rd party scripts may have to adjust.start_dwarf_count
This release fixes a crash on startup when using the Windows Itch build of DF. All other functionality is identical to 50.10-r1.
For release notes and full instructions, see the 50.10-r1 release notes: https://github.com/DFHack/dfhack/releases/tag/50.10-r1
Warning to Windows Itch users: this build will crash on startup for you. Please download DFHack 50.10-r1.1 instead. All other builds are unaffected (Windows Steam/Classic and all Linux builds).
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!
As of DF 50.10, both DF and DFHack can run natively on Linux. If you're subscribed to DF and DFHack on Steam, here's how to switch over:
You can tell if you did it right if you no longer have Dwarf Fortress.exe
in your DF directory and instead have dwarfort
, which is the Linux binary.
Then, turn off/adjust the compatibility layer for DFHack as well. dfhooks.dll
will disappear and you'll get libdfhooks.so
and the dfhack
script in its place.
Sometimes, Steam says you've got the Linux version, but when you look you see you still have Dwarf Fortress.exe
instead of dwarfort
. Try re-enabling the Proton compatibility layer and then turning off the compatibility layer again until it "sticks".
The DFHack terminal console works differently on Linux
You can run DF with DFHack from the Steam client without issues. However, if you want an external DFHack terminal console, you have to run from the commandline with the ./dfhack
launcher script.
On Windows (or in Windows emulation), you could use the show
command to pop up an external DFHack terminal console. You would use this for running DFHack commands from outside the game window, and the external terminal is the only way to run commandline-interactive DFHack commands like tiletypes
and the interactive mode of the lua
interpreter.
Linux has a different method of providing a terminal console. You can't spawn it dynamically like you can on Windows. You have to start DF from the commandline, and the terminal from which you ran ./dfhack
becomes the terminal console. This should be a familiar process to many Linux users (most Linux commands work this way), but the change is jarring if you're not expecting it. We're also looking into providing a virtual console that doesn't depend on an existing system console so you can still get a console even if you run from Steam, but that work is far from being completed.
You can still launch from Steam if you want to. Many tools log information and errors to the console, though, so if you run into strange issues, it might be useful to try running from the commandline to see if there is diagnostic output there that can help you.
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.
This is just a compatibility release; please see the release notes for 50.09-r3 and 50.09-r4 for significant recent changes to 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 the current beta branch of Dwarf Fortress on Steam (DF 50.10 pre-release).
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!
Please see the release notes for DFHack 50.09-r3 for extensive information on Linux support.
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.
Units now have a rating displayed next to them. The ratings are the values used for the current sort, and are colored based on how "good" the unit is according to the sort option. The "stress face" graphics are used for the "stress" and the new "need for training" sorts to indicate how dire the need is.
There are also a few new filters. You can now choose whether mothers with infants, units with weak mental fortitude (who would then become unduly stressed by military service), and critically injured units are shown as candidates.
ASCII mode has been missing any indication of smoothing/engraving/track carving/fortification carving designations. DFHack will now automatically add in visual indicators so you can see what you have designated. They will flash between an icon indicating the designation type and the priority you have set the designation for, similar to how the information was displayed in older versions of DF.
dig
: new overlay for ASCII mode that visualizes designations for smoothing, engraving, carving tracks, and carving fortificationsbuildingplan
: make the construction dimensions readout visible againgui/mod-manager
: don't continue to display overlay after the raws loading progress bar appearsseedwatch
: fix a crash when reading data saved by very very old versions of the pluginautofish
: changed --raw
argument format to allow explicit setting to on or offcaravan
: move goods to depot screen can now see/search/trade items inside of barrels and potsgui/launcher
: show tagged tools in the autocomplete list when a tag name is typedsort
:
overlay
: overlay widgets can now declare a version
attribute. changing the version of a widget will reset its settings to defaults. this is useful when changing the overlay layout and old saved positions will no longer be valid.argparse.boolean
: convert arguments to lua boolean values.itemst
Installing
pageA: 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.
For Linux support, please configure your Steam client to subscribe to the DF beta
release branch and the DFHack 50.10-beta
release branch (or download the DFHack 50.10-beta1 release from GitHub).
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!
Please see the release notes for DFHack 50.09-r3 for extensive information on Linux support.
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.
Units now have a rating displayed next to them. The ratings are the values used for the current sort, and are colored based on how "good" the unit is according to the sort option. The "stress face" graphics are used for the "stress" and the new "need for training" sorts to indicate how dire the need is.
There are also a few new filters. You can now choose whether mothers with infants, units with weak mental fortitude (who would then become unduly stressed by military service), and critically injured units are shown as candidates.
ASCII mode has been missing any indication of smoothing/engraving/track carving/fortification carving designations. DFHack will now automatically add in visual indicators so you can see what you have designated. They will flash between an icon indicating the designation type and the priority you have set the designation for, similar to how the information was displayed in older versions of DF.
dig
: new overlay for ASCII mode that visualizes designations for smoothing, engraving, carving tracks, and carving fortificationsbuildingplan
: make the construction dimensions readout visible againgui/mod-manager
: don't continue to display overlay after the raws loading progress bar appearsseedwatch
: fix a crash when reading data saved by very very old versions of the pluginautofish
: changed --raw
argument format to allow explicit setting to on or offcaravan
: move goods to depot screen can now see/search/trade items inside of barrels and potsgui/launcher
: show tagged tools in the autocomplete list when a tag name is typedsort
:
overlay
: overlay widgets can now declare a version
attribute. changing the version of a widget will reset its settings to defaults. this is useful when changing the overlay layout and old saved positions will no longer be valid.argparse.boolean
: convert arguments to lua boolean values.itemst
Installing
pageA: 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.
For the Dwarf Fortress beta
branch on Steam, this release works with the Linux version (50.09-linux1) but NOT the Windows version. Windows users have to move to the DF default branch to be able to use DFHack. Note that the Windows version currently on the beta
branch has no new features compared to the default branch, so you won't be missing out on anything.
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!
Both DF and DFHack now run natively on Linux. If you're on Linux, we encourage you to try it out! The interface is noticeably snappier, FPS is up, and load times are reduced. If you're subscribed to DF and DFHack on Steam, here's how to switch over:
You can tell if you did it right if you no longer have Dwarf Fortress.exe
in your DF directory and instead have dwarfort
, which is the Linux binary. The plan is to "officially" release Linux support with DF 50.10, so once DF 50.10 comes out, you should be able to switch back to the default Steam branch and keep the native Linux support.
Then, turn off the compatibility layer for DFHack. dfhooks.dll
will disappear and you'll get libdfhooks.so
and the dfhack
script in its place.
Sometimes, Steam says you've got the Linux version, but when you look you see you still have Dwarf Fortress.exe
instead of dwarfort
. Try re-enabling the Proton compatibility layer and then turning off the compatibility layer again until it "sticks".
Major caveat for DF 50.09-linux1
This particular beta release of Dwarf Fortress has address layout randomization enabled. This causes some trouble for DFHack since DFHack needs to know the memory addresses of several key data structures. For this release only, be sure to start DF by launching DFHack from the Steam client or by running the ./dfhack
commandline startup script. That will normalize the address space and allow DF to run with DFHack. Otherwise, DF will crash on startup. Again, this is only for this release. Future releases will not need this workaround and should go back to allowing you to start DF from either the Dwarf Fortress or DFHack Steam client entries, or from either the ./dwarfort
or ./dfhack
commandline commands.
The DFHack terminal console works differently on Linux
You can run DF with DFHack by starting DFHack in the Steam client. However, if you want an external DFHack terminal console, you have to run from the commandline.
On Windows, you could use the show
command to pop up an external DFHack terminal console. You could use this for running DFHack commands from outside the game window, and the external terminal is the only way to run commandline-interactive DFHack commands like tiletypes
and the interactive mode of the lua
interpreter.
Linux has a different method of providing a terminal console. You can't spawn it dynamically like you can on Windows. You have to start DF from the commandline, and the terminal from which you ran ./dwarfort
becomes the terminal console. This should be a familiar process to many Linux users (most Linux commands work this way), but the change is jarring if you're not expecting it. We're also looking into providing a virtual console that doesn't depend on an existing system console so you can still get a console even if you run from Steam, but that work is far from being completed.
You can still launch DFHack from Steam if you want to. Many tools log information and errors to the console, though, so if you run into strange issues, it might be useful to try running from the commandline to see if there is diagnostic output there that can help you.
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.
Once you've played a few forts, you probably don't need the tutorial popups that assault assist you when you open certain screens. Enable hide-tutorials
in the System tab of gui/control-panel
and never be bothered by them again!
When you bring up the screen to assign units to squads, there are now widgets for searching, sorting, and filtering. The default sort is by "melee effectiveness", which takes both weapon skill and physical attributes into account, but you can choose from a variety of relevant ascending or descending sorting orders.
Thanks to research into combat mechanics by community contributor Halifay, you can also sort by melee and ranged "potential", which predicts how effective a unit could become in the future, given adequate training.
There are also configurable filters to show or hide units in other squads, appointed/elected officials (like your manager, high priests, and doctors), and nobility.
Of course, if you know exactly who you're looking for, you can also search for units by name.
The "Assign to pasture" screen released in the previous DFHack version has been expanded and generalized to support cages, restraints, and pits/ponds. Please tell us if you have any additional needs for animal assignment that those screens don't meet!
The "Bring goods to trade depot" screen can now see inside bins, and you can select individual items within bins for trade instead of the entire bin, if you so choose. You can also search for contents within bins, even when in "bring the bin" mode. For example, you can find the "Gem bin"s that contain rubies by searching for "ruby".
exportlegends
now sports a new integration with the vanilla "Export XML" button. Now you can generate both the vanilla export and the extended data export with a single click!
hide-interface
hides all the vanilla UI elements for clean screenshots or distraction-free fortress watching. Even with the interface hidden, you can still pause/unpause the game with spacebar and move around the map with the keyboard or mouse. Hide that cluster of urgent notifications bubbles for a while and just enjoy watching your citizens scurry around for a while : )
devel/scan-vtables
: scan and dump likely vtable addresses (for memory research)hide-interface
: hide the vanilla UI elements for clean screenshots or laid-back fortress observinghide-tutorials
: hide the DF tutorial popups; enable in the System tab of gui/control-panel
set-orientation
: tinker with romantic inclinations (reinstated from back catalog of tools)buildingplan
: one-click magma/fire safety filter for planned buildingsexportlegends
: new overlay that integrates with the vanilla "Export XML" button. Now you can generate both the vanilla export and the extended data export with a single click!sort
: search, sort, and filter for squad assignment screenzone
: advanced unit assignment screens for cages, restraints, and pits/pondsautobutcher
: fix ticks
commandline option incorrectly rejecting positive integers as valid valuesbuildingplan
: ensure selected barrels and buckets are empty (or at least free of lye and milk) as per the requirements of the buildingcaravan
:
emigration
:
fix/retrieve-units
: fix retrieved units sometimes becoming duplicated on the mapgui/launcher
, gui/gm-editor
: recover gracefully when the saved frame position is now offscreengui/sandbox
: correctly load equipment materials in modded games that categorize non-wood plants as woodorders
: prevent import/export overlay from appearing on the create workorder screenquickfort
: cancel old dig jobs that point to a tile when a new designation is applied to the tileseedwatch
: ignore unplantable tree seedsstarvingdead
: ensure sieges end properly when undead siegers starvesuspendmanager
:
suspendmanager
unexpectedlytailor
: remove crash caused by clothing items with an invalid maker_race
dialogs.MessageBox
: fix spacing around scrollable textautobutcher
: don't mark animals for butchering if they are already marked for some kind of training (war, hunt)caravan
: optionally display items within bins in bring goods to depot screencreateitem
: support creating items inside of bagsdevel/lsmem
: added support for filtering by memory addresses and filenamesgui/design
: change "auto commit" hotkey from c
to Alt-c
to avoid conflict with the default keybinding for z-level downgui/gm-editor
:
gui/liquids
: support removing river sources by converting them into stone floorsgui/quickfort
: blueprint details screen can now be closed with Ctrl-D (the same hotkey used to open the details)hotkeys
: don't display DFHack logo in legends mode since it covers up important interface elements. the Ctrl-Shift-C hotkey to bring up the menu and the mouseover hotspot still function, though.quickfort
: linked stockpiles and workshops can now be specified by ID instead of only by name. this is mostly useful when dynamically generating blueprints and applying them via the quickfort
APIsort
: animals are now sortable by race on the assignment screenssuspendmanager
: display a different color for jobs suspended by suspendmanagerRemoteFortressReader
: add a force_reload
option to the GetBlockList RPC API to return blocks regardless of whether they have changed since the last requestGui
: getAnyStockpile
and getAnyCivzone
(along with their getSelected
variants) now work through layers of ZScreens. This means that they will still return valid results even if a DFHack tool window is in the foereground.Items::getValue()
: remove caravan_buying
parameter since the identity of the selling party doesn't actually affect the item valueUnits
: new animal propery check functions isMarkedForTraining(unit)
, isMarkedForTaming(unit)
, isMarkedForWarTraining(unit)
, and isMarkedForHuntTraining(unit)
dfhack.gui
: new getAnyCivZone
and getAnyStockpile
functions; also behavior of getSelectedCivZone
and getSelectedStockpile
functions has changes as per the related API notesdfhack.items.getValue()
: remove caravan_buying
param as per C++ API changedfhack.screen.readTile()
: now populates extended tile property fields (like top_of_text
) in the returned Pen
objectdfhack.units
: new animal propery check functions isMarkedForTraining(unit)
, isMarkedForTaming(unit)
, isMarkedForWarTraining(unit)
, and isMarkedForHuntTraining(unit)
new()
: improved error handling so that certain errors that were previously uncatchable (creating objects with members with unknown vtables) are now catchable with pcall()
widgets.BannerPanel
: panel with distinctive border for marking DFHack UI elements on otherwise vanilla screenswidgets.Panel
: new functions to override instead of setting corresponding properties (useful when subclassing instead of just setting attributes): onDragBegin
, onDragEnd
, onResizeBegin
, onResizeEnd
global_table
global and corresponding global_table_entry
typehelp_context_type
: fix typo in enum name: EMBARK_TUTORIAL_CHICE
-> EMBARK_TUTORIAL_CHOICE
plotinfo
: name the fields related to tutorial popupsviewscreen_legendsst
: realign structureviewscreen_new_arenast
: added (first appeared in 50.06)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 beta is compatible with DF 50.09 for Windows (Dwarf Fortress Steam default branch, Itch, and Classic) and DF 50.09-linux1 for Linux (Dwarf Fortress beta branch). It does not support the Windows version of DF deployed on the DF beta branch (which is currently nearly identical to the Windows version on the default branch).
Both DF and DFHack now run natively on Linux. If you're on Linux, we encourage you to try it! The interface is noticeably snappier, FPS is up, and load times are reduced. If you're subscribed to DF and DFHack on Steam, here's how to switch over:
You can tell if you did it right if you no longer have Dwarf Fortress.exe
in your DF directory and instead have dwarfort
, which is the Linux binary. The plan is to "officially" release Linux support with DF 50.10, so once DF 50.10 comes out, you should be able to switch back to the default Steam branch and keep the native Linux support.
Then, do the same thing for DFHack. switching to the "beta" branch (if you're not there already) and turning off the compatibility layer.
Sometimes, Steam says you've got the Linux version, but when you look you see you still have Dwarf Fortress.exe
instead of dwarfort
. Try re-enabling the Proton compatibility layer and then turning off the compatibility layer again.
Major caveat for this beta release
This particular beta release of Dwarf Fortress has address layout randomization enabled. This causes some trouble for DFHack since DFHack needs to know the memory addresses of several key data structures. For this release only, be sure to start DF by launching DFHack from the Steam client or by running the ./dfhack
commandline startup script. That will normalize the address space and allow DF to run with DFHack. Otherwise, DF will crash on startup. Again, this is only for this release. Future releases will not need this workaround and should go back to allowing you to start DF from either the Dwarf Fortress or DFHack Steam client entries, or from either the ./dwarfort
or ./dfhack
commandline commands.
The DFHack terminal console works differently on Linux
You can run DF with DFHack by starting DFHack in the Steam client. However, if you want an external DFHack terminal console, you have to run from the commandline.
On Windows, you could use the show
command to pop up an external DFHack terminal console. You could use this for running DFHack commands from outside the game window, and the external terminal is the only way to run commandline-interactive DFHack commands like tiletypes
and the interactive mode of the lua
interpreter.
Linux has a different method of providing a terminal console. You can't spawn it dynamically like you can on Windows. You have to start DF from the commandline, and the terminal from which you ran ./dwarfort
becomes the terminal console. This should be a familiar process to many Linux users (most Linux commands work this way), but the change is jarring if you're not expecting it. We're also looking into providing a virtual console that doesn't depend on an existing system console so you can still get a console even if you run from Steam, but that work is far from being completed.
You can still launch DFHack from Steam if you want to. Many tools log information and errors to the console, though, so if you run into strange issues, it might be useful to try running from the commandline to see if there is diagnostic output there that can help you.
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.
Once you've played a few forts, you probably don't need the tutorial popups that assault you when you open certain screens. Enable hide-tutorials
in the System tab of gui/control-panel
and never be bothered by them again!
The "Bring goods to trade depot" screen can now see inside bins, and you can select individual items within bins for trade instead of the entire bin, if you so choose. You can also search for contents within bins, even when in "bring the bin" mode. For example, you can find the "Gem bin"s that contain rubies by searching for "ruby".
The squad assignment screen was overhauled since the last beta in response to lots of great feedback. Thank you to all who responded with opinions and suggestions and helped us make this screen better!
The default sort is now "melee effectiveness", which takes both weapon skill and physical attributes into account.
Thanks to research into combat mechanics by community contributor Halifay, you can also sort by melee and ranged "potential", which predicts how effective a unit could become in the future, given adequate training.
There are also configurable filters to show or hide units in other squads, appointed/elected officials (like your manager, high priests, and doctors), and nobility.
Of course, if you know exactly who you're looking for, you can also search for units by name. Searching for skills was removed because it was too confusing. Sorting by skills is still available, though.
(These notes are cumulative with the previous beta and represent all changes since the last stable release)
devel/scan-vtables
: Scan and dump likely vtable addresses (for memory research)hide-interface
: hide the vanilla UI elements for clean screenshots or laid-back fortress observinghide-tutorials
: hide the DF tutorial popups; enable in the System tab of gui/control-panel
exportlegends
: new overlay that integrates with the vanilla "Export XML" button. Now you can generate both the vanilla export and the extended data export with a single click!sort
: search and sort for squad assignment screenzone
: advanced unit assignment screens for cages, restraints, and pits/pondscaravan
:
emigration
:
fix/retrieve-units
: fix retrieved units sometimes becoming duplicated on the mapgui/launcher
, gui/gm-editor
: recover gracefully when the saved frame position is now offscreenorders
: prevent import/export overlay from appearing on the create workorder screenquickfort
: cancel old dig jobs that point to a tile when a new designation is applied to the tilestarvingdead
: ensure sieges end properly when undead siegers starvesuspendmanager
:
suspendmanager
unexpectedlyautobutcher
: don't mark animals for butchering if they are already marked for some kind of training (war, hunt)caravan
: optionally display items within bins in bring goods to depot screendevel/lsmem
: added support for filtering by memory addresses and filenamesgui/gm-editor
:
hotkeys
: don't display DFHack logo in legends mode since it covers up important interface elements. the Ctrl-Shift-C hotkey to bring up the menu and the mouseover hotspot still function, though.quickfort
: linked stockpiles and workshops can now be specified by ID instead of only by name. this is mostly useful when dynamically generating blueprints and applying them via the quickfort
APIsort
: animals are now sortable by race on the assignment screenssuspendmanager
: display a different color for jobs suspended by suspendmanagerRemoteFortressReader
: add a force_reload
option to the GetBlockList RPC API to return blocks regardless of whether they have changed since the last requestGui
: getAnyStockpile
and getAnyCivzone
(along with their getSelected
variants) now work through layers of ZScreens. This means that they will still return valid results even if a DFHack tool window is in the foereground.Items::getValue()
: remove caravan_buying
parameter since the identity of the selling party doesn't actually affect the item valueUnits
: new animal propery check functions isMarkedForTraining(unit)
, isMarkedForTaming(unit)
, isMarkedForWarTraining(unit)
, and isMarkedForHuntTraining(unit)
dfhack.gui
: new getAnyCivZone
and getAnyStockpile
functions; also behavior of getSelectedCivZone
and getSelectedStockpile
functions has changes as per the related API notesdfhack.items.getValue()
: remove caravan_buying
param as per C++ API changedfhack.screen.readTile()
: now populates extended tile property fields (like top_of_text
) in the returned Pen
objectdfhack.units
: new animal propery check functions isMarkedForTraining(unit)
, isMarkedForTaming(unit)
, isMarkedForWarTraining(unit)
, and isMarkedForHuntTraining(unit)
new()
: improved error handling so that certain errors that were previously uncatchable (creating objects with members with unknown vtables) are now catchable with pcall()
widgets.BannerPanel
: panel with distinctive border for marking DFHack UI elements on otherwise vanilla screenswidgets.Panel
: new functions to override instead of setting corresponding properties (useful when subclassing instead of just setting attributes): onDragBegin
, onDragEnd
, onResizeBegin
, onResizeEnd
global_table
global and corresponding global_table_entry
typehelp_context_type
: fix typo in enum name: EMBARK_TUTORIAL_CHICE
-> EMBARK_TUTORIAL_CHOICE
plotinfo
: name the fields related to tutorial popupsviewscreen_legendsst
: realign structureviewscreen_new_arenast
: added (first appeared in 50.06, probably)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!
Both DF and DFHack now run natively on Linux. If you're on Linux, we encourage you to try it! The interface is noticeably snappier, FPS is up, and load times are reduced. If you're subscribed to DF and DFHack on Steam, here's how to switch over:
You can tell if you did it right (and sometimes Steam gets stuck somewhere along the way and you have to fiddle with it) if you no longer have Dwarf Fortress.exe
in your DF directory and instead have dwarfort
, which is the Linux binary. The plan is to "officially" release Linux support with DF 50.10, so once DF 50.10 comes out, you should be able to switch back to the default Steam branch and keep the native Linux support.
Then, do the same thing for DFHack. switching to the "beta" branch (if you're not there already) and turning off the compatibility layer.
Major caveat for this beta release
This particular beta release of Dwarf Fortress has address layout randomization enabled. This causes some trouble for DFHack since DFHack needs to know the memory addresses of several key data structures. For this release only, be sure to start DF by launching DFHack from the Steam client or by running the ./dfhack
commandline startup script. That will normalize the address space and allow DF to run with DFHack. Otherwise, DF will crash on startup. Again, this is only for this release. Future releases will not need this workaround and should go back to allowing you to start DF from either the Dwarf Fortress or DFHack Steam client entries, or from either the ./dwarfort
or ./dfhack
commandline commands.
The DFHack terminal console works differently on Linux
You can run DF with DFHack by starting DFHack in the Steam client. However, if you want an external DFHack terminal console, you have to run from the commandline.
On Windows, you could use the show
command to pop up an external DFHack terminal console. You could use this for running DFHack commands from outside the game window, and the external terminal is the only way to run commandline-interactive DFHack commands like tiletypes
and the interactive mode of the lua
interpreter.
Linux has a different method of providing a terminal console. You can't spawn it dynamically like you can on Windows. You have to start DF from the commandline, and the terminal from which you ran ./dwarfort
becomes the terminal console. This should be a familiar process to many Linux users (most Linux commands work this way), but the change is jarring if you're not expecting it. We're also looking into providing a virtual console that doesn't depend on an existing system console so you can still get a console even if you run from Steam, but that work is far from being completed.
You can still launch DFHack from Steam if you want to. Many tools log information and errors to the console, though, so if you run into strange issues, it might be useful to try running from the commandline to see if there is diagnostic output there that can help you.
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.
When you bring up the screen to assign units to squads, there are now widgets for searching and sorting. The default sort is by "best melee skill", but you can choose from a variety of relevant ascending or descending sorting orders.
You can also search. Searching matches either the unit name or a skill that the unit has. Sorting by "leadership" shows units that have any leadership-related abilities, like teaching and military tactics training, but if you just want to see dwarves with military tactics training, search for "tactics".
There have already been many good suggestions for additional sorting options, which we'll try to get into a future beta/release.
The "Assign to pasture" screen released in the previous DFHack version has been expanded and generalized to support cages, restraints, and pits/ponds. Please tell us if you have any additional needs for animal assignment that those screens don't meet!
exportlegends
now sports a new integration with the vanilla "Export XML" button. Now you can generate both the vanilla export and the extended data export with a single click!
hide-interface
hides all the vanilla UI elements for clean screenshots or distraction-free fortress watching. Even with the interface hidden, you can still pause/unpause the game with spacebar and move around the map with the keyboard or mouse. Hide that cluster of urgent notifications bubbles for a while and just enjoy watching your citizens scurry around : )
devel/scan-vtables
: Scan and dump likely vtable addresses (for memory research)hide-interface
: hide the vanilla UI elements for clean screenshots or laid-back fortress observingexportlegends
: new overlay that integrates with the vanilla "Export XML" button. Now you can generate both the vanilla export and the extended data export with a single click!sort
: search and sort for squad assignment screenzone
: advanced unit assignment screens for cages, restraints, and pits/pondscaravan
:
orders
: prevent import/export overlay from appearing on the create workorder screenstarvingdead
: ensure sieges end properly when undead siegers starvesuspendmanager
:
suspendmanager
unexpectedlydevel/lsmem
: added support for filtering by memory addresses and filenameshotkeys
: don't display DFHack logo in legends mode since it covers up important interface elements. the Ctrl-Shift-C hotkey to bring up the menu and the mouseover hotspot still function, though.sort
: animals are now sortable by race on the assignment screenssuspendmanager
: display a different color for jobs suspended by suspendmanagerRemoteFortressReader
: add a force_reload
option to the GetBlockList RPC API to return blocks regardless of whether they have changed since the last requestItems::getValue()
: remove caravan_buying
parameter since the identity of the selling party doesn't actually affect the item valuedfhack.items.getValue()
: remove caravan_buying
param as per C++ API changedfhack.screen.readTile()
: now populates extended tile property fields (like top_of_text
) in the returned Pen
objectnew()
: improved error handling so that certain errors that were previously uncatchable (creating objects with members with unknown vtables) are now catchable with pcall()
widgets.BannerPanel
: panel with distinctive border for marking DFHack UI elements on otherwise vanilla screenswidgets.Panel
: new functions to override instead of setting corresponding properties (useful when subclassing instead of just setting attributes): onDragBegin
, onDragEnd
, onResizeBegin
, onResizeEnd
global_table
global and corresponding global_table_entry
typeviewscreen_legendsst
: realign structureviewscreen_new_arenast
: added (first appeared in 50.06, probably)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!
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.
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.
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.
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.
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.
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 of gui/control-panel
to automatically keep your wheelbarrows usable!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
: new dig.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 pasturesgui/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
:
suspendmanager
:
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 a blueprints/
directory to your mod and they'll show up in quickfort
and gui/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-VItems::markForTrade()
, Items::isRequestedTradeGood()
, Items::getValue
: see Lua notes belowUnits::getUnitByNobleRole
, Units::getUnitsByNobleRole
: unit lookup API by roledfhack.items.getValue
: gained optional caravan
and caravan_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 a HotkeyLabel
and decorates it to look more like a buttonbuild_req_choicest
: realign structure and fix vmethodssquad_orderst
: fix vmethodsmisery
: rewrite the documentation to clarify the actual effects of the plugin