github DFHack/dfhack 50.07-beta2
DFHack 50.07-beta2

latest releases: 50.14-r1.1, 50.14-r1, 50.13-r5...
pre-release19 months ago

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:
general-strike

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:
civ-alert

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 type
  • prospector: 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 alerts
  • gui/seedwatch: GUI config and status panel interface for seedwatch

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 containers
  • prioritize: fixed all watched job type names showing as nil after a game load
  • suspendmanager:
    • 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/ and scripts_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 menu
  • enable: can now interpret aliases defined with the alias command
  • exterminate: add support for vaporize kill method for when you don't want to leave a corpse
  • gui/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)

Removed

  • autounsuspend: replaced by suspendmanager
  • gui/dig: renamed to gui/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

Structures

  • realigned furniture_type enum (added BAG)
  • realigned stockpile_settings for new "corpses" vector

Documentation

  • the untested tag has been renamed to unavailable 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

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.