github DFHack/dfhack 50.12-r2rc1
DFHack 50.12-r2rc1

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

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.

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

agitation_monitor

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 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

If you want a tougher experience, you can instead run:

agitation-rebalance preset strict

If you want the visible monitor that shows your current chances of being attacked by nature, run:

agitation-rebalance enable monitor

fix/stuck-worship

stuck_worship

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?

work details import/export

work_details_import_export

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?

autoretrain livestock

autoretrain

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")

labor and skill restrictions for workshops

labor_restrictions

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.

New Linux Steam launch behavior

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:

  • Launching DFHack from the Steam client
  • Launching DF from the Steam client

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?

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 bahavior
  • fix/stuck-worship: fix prayer so units don't get stuck in uninterruptible "Worship!" states
  • instruments: 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 items
  • gui/settings-manager: add import, export, and autoload for work details
  • logistics: 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 born
  • orders: add overlay for configuring labor and skill level restrictions for workshops
  • quickfort: allow setting of workshop profile properties (e.g. labor, skill restrictions) from build blueprints
  • sort: updated and reinstated military status/squad membership/burrow membership filter for work animal assignment screen
  • stocks: add button/hotkey for removing empty categories from the stocks list

Fixes

  • autochop: fix underestimation of log yield for cavern mushrooms
  • catsplosion: only cause pregnancies in adults
  • control-panel: fix filtering not filtering when running the list command
  • gui/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 programs
  • autodump: can now teleport items loosely stored in buildings (clutter)
  • clean: protect farm plots when cleaning mud
  • control-panel: enable tweaks quietly on fort load so we don't spam the console
  • devel/tile-browser: simplify interface now that SDL automatically normalizes texture scale
  • exterminate: make race name matching case and space insensitive
  • gui/gm-editor: support opening engraved art for inspection
  • gui/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 jobs
  • tweak: add quiet option for silent enablement and disablement of tweaks

API

  • Units::isForgottenBeast: property check for forgotten beasts
  • Units::isGreatDanger: now includes forgotten beasts

Lua

  • helpdb: search_entries now returns a match if all filters in the include list are matched. previous behavior was to match if any include filter matched.
  • dfhack.units.isForgottenBeast: make new units method available to Lua
  • matinfo.decode: now directly handles plant objects
  • widgets.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 flags
  • plotinfo.hauling: name fields related to the hauling route panel

Documentation

  • introduction: refresh getting started content
  • overlay-dev-guide: updated examples and troubleshooting steps
  • quickstart: refresh quickstart guide

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.