Skip to content

Releases: DFHack/dfhack

DFHack 50.08-r4

24 Jun 02:23
eff1755
Compare
Choose a tag to compare

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

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.

Highlights

logistics, Dreamfort, and suspendmanager

logistics

logistics

When you select a stockpile, you'll now see a panel that will let you toggle its automation features. Items and animals brought to that stockpile can be automatically marked for melting, trading, dumping, and/or training.

For example, you can set up cage traps for catching wild game. When you catch something, your dwarves will bring the caged animal to your Animals stockpile. If you enable automatic training on that stockpile, the animals will automatically get a trainer assigned to them. Combine this with autobutcher, which can mark the trained animals for butchering, and you now have a low-toil food supply chain for your kitchens!

Similarly, if you enable automatic trading for your trade goods stockpile, all items in the stockpile will be marked for trading and be automatically brought to the trade depot when a merchant caravan arrives.

Dreamfort

dreamfort_1_surface

Dreamfort is the result of over a decade of experimentation and revision from some of Dwarf Fortress's most experienced players. It is a fully functional, pre-designed fortress you can build yourself from gui/quickfort blueprints. If you're having trouble with getting your forts to work smoothly, try building Dreamfort. The blueprints walk you through the process of creating the fortress so you can learn from its design, progression, and configuration. You can even reuse individual blueprints for the parts you especially like to extend your own designs.

The Dreamfort walkthroughs and blueprints bring you from embark all the way through to a 200-strong mountainhome. Screenshots for all the levels and links to more information here: https://docs.dfhack.org/en/stable/docs/guides/quickfort-library-guide.html#dreamfort.

If you want to explore it interactively, you can download a pre-built Dreamfort from DFFD: https://dffd.bay12games.com/file.php?id=15434.

suspendmanager

suspendmanager

Logic for when to suspend building jobs has been upgraded. Now suspendmanager is much smarter when you're building in areas with limited access paths. For example, if you fill a corridor or build a high wall, it will now correctly realize that a wall tile can block access to a another tile farther away.

Moreover, suspendmanager now also considers smoothing and engraving jobs. For example, if you attempt to build a statue on top of flooring that is designated for smoothing, it will now allow the smoothing job to be completed first before the statue blocks it.

Generated release notes

New tools, fixes, and improvements

New Plugins

  • logistics: automatically mark and route items or animals that come to monitored stockpiles. options are toggleable on an overlay that comes up when you have a stockpile selected.

Fixes

  • buildingplan: don't include artifacts when max quality is masterful
  • dig-now: clear item occupancy flags for channeled tiles that had items on them
  • emigration: reassign home site for emigrating units so they don't just come right back to the fort
  • gui/create-item: allow blocks to be made out of wood when using the restrictive filters
  • gui/liquids: ensure tile temperature is set correctly when painting water or magma
  • gui/quickfort:
    • allow traffic designations to be applied over buildings
    • protect against meta blueprints recursing infinitely if they include themselves
  • gui/sandbox: allow creatures that have separate caste-based graphics to be spawned (like ewes/rams)
  • RemoteFortressReader: fix a crash with engravings with undefined images
  • workorder: prevent autoMilkCreature from over-counting milkable animals, which was leading to cancellation spam for the MilkCreature job

Misc Improvements

  • Blueprint library:
    • dreamfort: full rewrite and update for DF v50
    • pump_stack: updated walkthrough and separated dig and channel steps so boulders can be cleared
    • aquifer_tap: updated walkthrough
  • autonick: additional nicknames based on burrowing animals, colours, gems, and minerals
  • combine: reduce max different stacks in containers to 30 to prevent contaners from getting overfull
  • dig-now: can now handle digging obsidian that has been formed from magma and water
  • gui/autodump: add option to clear the trader flag from teleported items, allowing you to reclaim items dropped by merchants
  • gui/control-panel:
    • add some popular startup configuration commands for autobutcher and autofarm
    • add option for running fix/blood-del on new forts (enabled by default)
  • gui/quickfort:
    • adapt "cursor lock" to mouse controls so it's easier to see the full preview for multi-level blueprints before you apply them
    • only display post-blueprint messages once when repeating the blueprint up or down z-levels
  • gui/sandbox: when creating citizens, give them names appropriate for their races
  • orders:
    • only display import/export/sort/clear panel on main orders screen
    • refine order conditions for library orders to reduce cancellation spam
  • prioritize: add wild animal management tasks and lever pulling to the default list of prioritized job types
  • quickfort: significant rewrite for DF v50! now handles zones, locations, stockpile configuration, hauling routes, and more
  • stockpiles: added barrels, organic, artifacts, and masterworks stockpile presets
  • suspendmanager:
    • now suspends construction jobs on top of floor designations, protecting the designations from being erased
    • suspend blocking jobs when building high walls or filling corridors
  • workorder: reduce existing orders for automatic shearing and milking jobs when animals are no longer available

Removed

  • gui/automelt: replaced by an overlay panel that appears when you click on a stockpile

Structures

  • abstract_building_libraryst: initialize unknown variables as DF does
  • misc_trait_type: realign

Documentation

  • blueprint-library-guide: update Dreamfort screenshots and links, add aquifer_tap screenshot

DFHack 50.08-r3

06 Jun 01:48
b4a804c
Compare
Choose a tag to compare

Generated release notes

Fixes

  • Fix crash for some players when they launch DF outside of the Steam client

DFHack 50.08-r2

01 Jun 20:49
ecf8247
Compare
Choose a tag to compare

Q: How do I download DFHack?

A: Either add to your Steam library from our Steam page or scroll down to the bottom of the GitHub release post, 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

Armok mode vs. Mortal mode, Ongoing large projects, PSAs

Armok mode vs. Mortal mode

If DFHack makes the game less fun for you because the tools are too powerful, please consider enabling "Mortal mode". Open the "Preferences" tab of gui/control-panel and toggle the "Show armok tools" setting. This will hide any tools that are tagged as "armok" (that is, god-mode tools) from gui/launcher, gui/control-panel, the DFHack logo popup menu, and anywhere else DFHack commands are listed. Global hotkeys for those tools will also cease to function. All productivity, analysis, bugfix, and design tools will still be shown as normal.

Ongoing large projects

Here are the projects we're working on right now (and the [@ person] on DFHack Discord you should talk to if you have opinions). If you are interested in early access, please join the "Beta - DFHack pre-releases" branch in your Steam client. You can also download pre-releases from GitHub.

  • buildingplan v2 [@TaxiService] - clearer UI, easier configuration, filter history
  • stocks [@silver_fly] - item management interface, including bulk actions like "mark all worn clothing for trade"
  • stockpiles, logistics, quickfort [@myk002] - stockpile configuration presets, automatic dumping, trading, or melting of stockpile contents, stockpile and zone support for quickfort
  • gui/design v2 [@coskerstrike] - UI overhaul, performance improvements

and, of course, a host of smaller bugfixes and features.

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

exportlegends, gui/mod-manager, gui/sandbox, necronomicon

exportlegends

exportlegends

There are a variety of tools for digging into the stories in legends mode. Most of them use the extra legends information DFHack exports with the exportlegends tool to give you a more complete picture of what is going on.

How to use:

  1. Enter legends mode as usual from DF
  2. Click the green button to do the vanilla export
  3. Open gui/launcher and run exportlegends

exportlegends might take a while to run if your world is large. Now you should have two .xml files in your Dwarf Fortress folder. The ...-legends_plus.xml file is the extended export from DFHack.

Note that DF itself used to export more information than it does now, and many tools can't cope with the lack of vanilla information. The current best tool to use for external legends browsing is the cross-platform Legends Browser 2

Happy legends browsing!

gui/mod-manager

mod_manager

For those of us who use mods, creating a new world can be very frustrating. Each mod must be manually re-enabled for every new created world, and for long mod lists, that is quite a chore.

Enter gui/mod-manager. You don't actually have to run the command. It will show up as an overlay automatically when you create a new world. If you have a default mod list saved already, you don't even need to go into the DF "Mods" page. As soon as you start the world creation process, gui/mod-manager will automatically apply your mod list.

To set it up, start creating a world and set up your mods as normal. Then click on the "Mod manager" button at the bottom of the page or hit the m hotkey. This will bring up a dialog where you can save your current mod list and set it as the default for future worlds. That's it.

gui/sandbox

gui_sandbox

This tool stretches the bounds of "Armok mode". It gives you an interface for willing units, trees, and items into existence. Feeling like you need a challenge? Set units to "hostile" and spawn yourself up an invading army : )

necronomicon

necronomicon

Sometimes you want your dwarves to become necromancers, and sometimes you don't. However, you can't control what visitors or returning raiders bring back into your fort. It used to be that you'd have to manually scan through every book and see whether it contains the "secrets of life and death". Now, a quick run of the necronomicon command will give you a summary of whether you have any books with secrets in your fort and what their titles (and powers) are. Then you can sequester those books or promote them on display in your library, as per your agenda.

Generated release notes

New tools, fixes, and improvements

New Plugins

  • add-spatter: (reinstated) allow mods to add poisons and magical effects to weapons
  • changeitem: (reinstated) change item material, quality, and subtype
  • createitem: (reinstated) create arbitrary items from the command line
  • deramp: (reinstated) removes all ramps designated for removal from the map
  • flows: (reinstated) counts map blocks with flowing liquids
  • lair: (reinstated) mark the map as a monster lair (this avoids item scatter when the fortress is abandoned)
  • luasocket: (reinstated) provides a Lua API for accessing network sockets
  • work-now: (reinstated, renamed from workNow) prevent dwarves from wandering aimlessly with "No job" after completing a task

New Scripts

  • assign-minecarts: (reinstated) quickly assign minecarts to hauling routes
  • diplomacy: view or alter diplomatic relationships
  • exportlegends: (reinstated) export extended legends information for external browsing
  • fix/stuck-instruments: fix instruments that are attached to invalid jobs, making them unusable. turn on automatic fixing in gui/control-panel in the Maintenance tab.
  • gui/autodump: point and click item teleportation and destruction interface (available only if armok tools are shown)
  • gui/mod-manager: automatically restore your list of active mods when generating new worlds
  • gui/sandbox: creation interface for units, trees, and items (available only if armok tools are shown)
  • light-aquifers-only: (reinstated) convert heavy aquifers to light
  • modtools/create-item: (reinstated) commandline and API interface for creating items
  • necronomicon: search fort for items containing the secrets of life and death

Fixes

  • DFHack screen backgrounds now use appropriate tiles in DF Classic
  • RemoteServer: fix crash on malformed json in dfhack-config/remote-server.json
  • autolabor: work detail override warning now only appears on the work details screen
  • deathcause: fix incorrect weap...
Read more

DFHack 50.08-r1

02 May 21:49
d21a6c6
Compare
Choose a tag to compare

Q: How do I download DFHack?

A: Either add to your Steam library from our Steam page or scroll down to the bottom of the GitHub release post, 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

What's next?, Poll results, Terminal now hidden by default, PSAs

What's next?

Here are the projects we're working on right now (and the [@ person] on DFHack Discord you should talk to if you have opinions). If you are interested in early access, please join the "Beta - DFHack pre-releases" branch in your Steam client. You can also download pre-releases from GitHub.

  • buildingplan v2 [@TaxiService] - clearer UI, easier configuration, filter history
  • stocks [@silver_fly] - item management interface, including bulk actions like "mark all worn clothing for trade"
  • stockpiles and logistics [@myk002] - stockpile configuration presets, automatic dumping, trading, or melting of stockpile contents
  • gui/design v2 [@coskerstrike] - UI overhaul, performance improvements
  • gui/create-unit [@Thazzeus] - unit spawning interface

and, of course, a host of smaller bugfixes and features.

Poll results

We ran a poll on reddit to hear your opinions for what DFHack's Next Big Thing should be. The results:

  1. 30% manipulator - in-game Dwarf Therapist-like labor assignment and unit management interface
  2. 18% search, embark-assistant (tie) - better search functionality for vanilla dialogs, extended options for embark location discovery, respectively
  3. 15% tooltips - in-game help tooltips for DFHack UIs
  4. 11% quickfort - stockpile and zone support for blueprints, including Dreamfort support
  5. 6% exportlegends - extended data for legends export, allowing external tools like Legends Viewer to work

These are all huge projects, and don't expect their completion any time soon, but the results of the poll helped us set priorities for upcoming development. If you have opinions about any of those tools, or if you're just curious about the implementation plans, or if you'd like to help, please check out the GitHub issues where they are being discussed (hyperlinked above).

Terminal hidden by default

From a less formal poll, it seems that most players consider the DFHack terminal (the external DFHack window that pops up when you start DF) to be a nuisance, or at least not necessary. The terminal window will now be hidden and out of the way by default. You can unhide the terminal at any time by running the show command in gui/launcher (and hide it again with the hide command).

If you want to keep the terminal window shown at startup, go to the "Preferences" tab of gui/control-panel and toggle the option there.

Note that text-interactive commands, like the built-in lua interpreter or the tiletypes command, can only be run from that external terminal window. Most players will never have need to run these, though.

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

Mortal mode; Dude, where's my planner?

Mortal mode

image

We finally have an answer for those players who want to use DFHack for its bug fixes, interface improvements, and productivity tools, but feel uncomfortable with the tools that grant god-like powers over the game. Armok, if you didn't already know, is the god of Dwarf Fortress. If you don't want to see these "armok" tools, go into gui/control-panel, on the "Preferences" tab, and toggle on the Hide "armok" tools in command lists setting.

Dude, where's my planner?

image

You may notice that the DFHack building planner appears to be missing. Don't worry, it's not gone. It's just minimized by default. If you want to use it again, just expand it by clicking on the "show planner" button and it will stay expanded, just like it was before.

Why did we do this? Now that DFHack has entered the "stable release" phase, we want to go back to our roots and not supplant vanilla functionality by default. From now on, if there is a DFHack interface enhancement that can replace a vanilla element, it will show up as a minimized panel that you can expand and use. The panels that simply add extra functionality without getting in the way, like order import/export and the trade screen enhancements, will still stay expanded by default.

Generated release notes

New tools, fixes, and improvements

Fixes

  • autoclothing: eliminate game lag when there are many inventory items in the fort
  • buildingplan:
    • fixed size limit calculations for rollers
    • fixed items not being checked for accessibility in the filter and item selection dialogs
  • deteriorate: ensure remains of enemy dwarves are properly deteriorated
  • dig-now: properly detect and complete smoothing designations that have been converted into active jobs
  • suspendmanager: Fix over-aggressive suspension of jobs that could still possibly be done (e.g. jobs that are partially submerged in water)

Misc Improvements

  • buildingplan:
    • planner panel is minimized by default and now remembers minimized state
    • can now filter by gems (for gem windows) and yarn (for ropes in wells)
  • combine: Now supports ammo, parts, powders, and seeds, and combines into containers
  • deteriorate: add option to exclude useable parts from deterioration
  • gui/control-panel:
    • add preference option for hiding the terminal console on startup
    • add preference option for hiding "armok" tools in command lists
  • gui/gm-editor:
    • press g to move the map to the currently selected item/unit/building
    • press Ctrl-D to toggle read-only mode to protect from accidental changes; this state persists across sessions
    • new --freeze option for ensuring the game doesn't change while you're inspecting it
  • gui/launcher: DFHack version now shown in the default help text
  • gui/prerelease-warning: widgets are now clickable
  • overlay: add the DFHack version string to the DF title screen
  • Dwarf Therapist: add a warning to the Labors screen when Dwarf Therapist is active so players know that changes they make to that screen will have no effect. If you're starting a new embark and nobody seems to be doing anything, check your Labors tab for this warni...
Read more

DFHack 50.07-r1

13 Apr 21:31
f7e3973
Compare
Choose a tag to compare

Q: How do I download DFHack?

A: Either add to your Steam library from our Steam page or scroll down to the bottom of this post, expand the "Assets" list, and download the dfhack-50.07-r1-Windows-64bit.zip file.


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!

What the heck is DFHack?

Project goals, team members, community contributions

This is DFHack's first stable release for Dwarf Fortress in the v50 era, so many of you will be reading the release notes for the first time. A little background is in order.

DFHack is an add-on for Dwarf Fortress that enables mods and tools to significantly extend the game. The default DFHack distribution contains a wide variety of these tools, including bugfixes, interface improvements, automation agents, design blueprints, modding building blocks, and more. Third-party tools (e.g. mods downloaded from Steam Workshop or the forums) can also seamlessly integrate with the DFHack framework and extend the game far beyond what can be done by just modding the raws.

DFHack’s mission is to provide tools and interfaces for players and modders to:

  • expand the bounds of what is possible in Dwarf Fortress
  • reduce the impact of game bugs
  • give the player more agency and control over the game
  • provide alternatives to toilsome or frustrating aspects of gameplay
  • make the game more fun

The DFHack team members (and our primary roles and pronouns) are:

  • Lethosor (team lead, he/him)
  • myk002 (developer, community lead, he/him)
  • ab9rf (reverse engineer, she/her)
  • Quietust (reverse engineer, he/him)
  • BenLubar (operations engineer, any/all)

DFHack also includes contributions from hundreds upon hundreds of community members! The best ways to interact with us are on the DFHack Discord or by filing issues on GitHub. Community contributions to DFHack are very welcome, both for the documentation and for the code. Come talk with us! We are happy to help get you oriented with the development process.

Announcements

DFHack is now available on Steam!, PSAs

DFHack is now available on Steam!

For those who play Dwarf Fortress on Steam, you can now install DFHack through Steam as well! This has the added benefit of letting Steam auto-update DFHack for you. Instead of installing DFHack manually, head over to our Steam page and add DFHack to your library. If you have multiple drives or Steam Library folders, you will need to ensure DFHack is installed to the same location Dwarf Fortress is.

If you'd like to get new DFHack bugfixes and features first and are willing to file GitHub issues for any problems you encounter, please consider subscribing to the beta release channel. We will be depending on beta subscriber feedback to help shape new feature development. Also, by testing the pre-release builds of DFHack, you are helping us make high-quality stable releases. To subscribe to the beta channel, right click on the DFHack app in your steam client, go to Properties, select Betas, and change the dropdown from "None" to "beta - Beta release channel". Thank you! We really appreciate your help with this!

Bringing DFHack to Steam as an official mod was a massive undertaking. We'd like to thank everyone who helped make this happen:

  • Graphic Design: TaxiService, RafaelKB, Rumrusher
  • Steam installation, Steam Deck, and stability testing: AndrielChaoti, Finn!, Robob27, Thalzen, esotericist, TaxiService, Ozzatron, sdegrace, 20k, plule, RafaelKB, Putnam, drhead, Scootieloo, coskerstrike, and 200+ community members on Reddit and elsewhere

Special thanks go out to Kitfox for fielding Steam's questions about DFHack during the build review process, approving us as a community-written DF mod, and working with us every step of the way. You're awesome!

And, of course, a big thank you to Zach and Tarn, without whom we all wouldn't be here, and Putnam, who has had such a large impact on DF already in the short time she's been working with Bay 12.

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

Usability improvements, buildingplan, gui/civ-alert, gui/design, mod support

There have been significant advancements since our last stable release (for 0.47.05) last year. Here's a selection of highlights from the top of the top:

Usability improvements

Read the Quickstart guide to get oriented:
quickstart

Browse and run DFHack tools from the launcher:
launcher

Enable the general strike bug fix in gui/control-panel:
general-strike

There's a lot to talk about here! DFHack now has a fully-functional windowing system, where DFHack tool windows can be dragged, resized, and focused/unfocused for keyboard input. There are also new in-game UIs for discovering and managing DFHack tools and features. gui/launcher gives you access to all DFHack tools, with autocomplete and in-game help text (with examples for each command!). gui/control-panel is your one shop shop for toggling DFHack features and setting preferences. The DFHack logo in the upper left corner of the screen gives you quick access to tools associated with the current game context.

Hover the mouse over the DFHack logo and select the Quickstart Guide for a quick walkthrough about how to use DFHack in DF. You can also read the guide online.

Buildingplan

Easily plan out buildings before you have materials with buildingplan:
buildingplan_screw_pump

DFHack's buildingplan plugin allows you to place furniture, constructions, and other buildings, regardless of whether the required materials are available. This allows you to focus purely on design elements when you are laying out your fort, and defer item production concerns to a more convenient time. It monitors your stocks of available building materials and attaches new items to the buildings so they can be built. You can set filters on your building materials to be sure that when items are attached, they meet your specific needs. For example, you can plan out walls that are guaranteed to be a consistent color and screw pumps that are guaranteed to be magma safe.

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

Read more

DFHack 50.07-beta2

31 Mar 19:53
38d4eea
Compare
Choose a tag to compare
DFHack 50.07-beta2 Pre-release
Pre-release

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, regardl...
Read more

DFHack 50.07-beta1

17 Mar 22:28
460ce88
Compare
Choose a tag to compare
DFHack 50.07-beta1 Pre-release
Pre-release

This beta release is compatible with all distributions of DF: Steam, Itch, and Classic.

Installation instructions here: https://docs.dfhack.org/en/latest/docs/Installing.html#installing

Quickstart guide here: https://docs.dfhack.org/en/latest/docs/Quickstart.html#quickstart

Please report any bugs (or feature requests) as a GitHub issue here: https://github.com/DFHack/dfhack/issues

Announcements

alpha -> beta, PSAs

"alpha" -> "beta"

We have moved from the "alpha" phase to the "beta" phase. What does this mean for DFHack? It means that we've been running on tens of thousands of forts for tens of thousands of players (according to our download statistics), and no major issues have come up. The few crash bugs that were reported in the DF 50.05 days have been fixed, there have been exactly zero game corruption bugs reported, and DFHack's core library is stable. It seems calling ourselves "alpha" is at odds with our actual level of reliability.

So why not skip the "beta" and jump straight to "stable"? Well, there are a few more things we'd like to get done before we move to "stable" releases. In particular, we'd like to have a formal public beta testing program in place. Since the majority of DF players are Steam users, we've been working to get DFHack on Steam. Not only will this simplify the DFHack update process for all Steam users (that is, you just add DFHack to your Steam library and it will autoupdate for you), but it will also give DFHack a platform from which to run a beta testing program.

Most players will stay on the default release channel, which will keep you updated with "stable" DFHack releases. Players who want the newest features first and who are willing to also catch and report the bugs can subscribe to the "beta" release channel. We will only push a build to the "stable" release channel after it has been tested in the "beta" channel for an appropriate amount of time. In this way, we hope to provide a very high level of reliability for the stable releases.

How close is DFHack to being on steam? After several months of research and work, we're tantalizingly close. However, there are a few final approval stages that are outside our control and prevent us from giving an ETA. For technical reasons, DFHack will be a Steam "App" and not a workshop mod, so there is much more paperwork involved, even for a free, open source application.

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. The tools that are untested will show a warning if you try to run them 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 untested.

The in-game interface for running DFHack commands (gui/launcher) will not show untested 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

buildingplan, suspendmanager, blueprints directory change, quicksave

Buildingplan

Thank you all for the feedback you've given us about buildingplan over the past week! We're pushing this release out faster than usual in order to address the issues people have run into and to implement your requests:

  • Items are now matched and attached correctly to screw pumps and other multi-item buildings
  • Buildings with different filter configurations will no longer get "stuck" if one of the building's filters currently matches no items
  • Your choice for whether you want to choose specific items is now saved per building type
  • You can now attach multiple weapons to spike traps
  • You can now filter by clay materials
  • You can now filter by whether a slab is engraved
  • There is now a "minimize" button to temporarily get the planner overlay out of the way if you would rather use the vanilla UI for placing the current building
  • If you want to reset all buildingplan settings and filters to defaults, there is now a buildingplan reset command that you can run from gui/launcher

Again, we have lots of plans for making buildingplan better and better, but we'd also love to hear your thoughts about how this version is working for you. Tell us here in this thread or join the "buildingplan feedback" discussion on the DFHack discord: https://dfhack.org/discord

Suspendmanager

Prevent missed corners with the new suspendmanager (active in video on the right side):
suspendmanager

Turn suspendmanager on in gui/control-panel:
enable_suspendmanager

suspendmanager is replacing the current autounsuspend tool. It takes over autounsuspend's job of unsuspending building construction jobs that have become suspended due to inaccessible materials, items temporarily in the way, or worker dwarves getting scared by wildlife. It also solves a common problem that players run into when building walls. If you build a wall with a corner, dwarves often choose to build the corner tile last. This means that by the time they want to build it, they can't get to it, and the wall corner remains forever unbuilt. suspendmanager detects when this might happen and suspends the adjacent wall construction jobs until the corner tiles are built, getting the job done right the first time and saving you the hassle of manually fixing the problem.

You can enable suspendmanager in gui/control-panel. Give it a try!

Blueprint directory change

Tl;dr: player-created blueprints will now be written to the dfhack-config/blueprints folder. Please move your existing personal blueprints from blueprints (in the top-level DF game directory) to dfhack-config/blueprints so quickfort and gui/quickfort can continue to find them.

Long version: All of your saved DFHack data is stored in the dfhack-config folder. This protects it when you upgrade DFHack, makes it easy to find when you're copying it to a new install directory, and, once we get DFHack on Steam, will allow your data to get backed up automatically in the Cloud. Up until now, the blueprints directory has lived outside of the protected dfhack-config folder because we wanted to maintain compatibility with the old (but venerable), out-of-process implementation of Quickfort that came with PeridexisErrant's DF Starter Pack. That is no longer relevant, so it's finally time to move blueprints in with the rest of the protected data.

Like many other DFHack tool data libraries, the library blueprints will now be stored in the hack/data directory. You don't need to worry about those. They'll appear in gui/quickfort just like they always have.

All you have to do is move your personal blueprints (if any) from the blueprints folder to the new dfhack-config/blueprints folder. That folder will be created automatically the first time you start DF after upgrading DFHack, but you can create it manually if you're moving your blueprints before starting DF.

If you have any extra blueprints in your blueprints directory that are not part of the DFHack blueprint library, for example, the community blueprints that used to come with the Starter Pack, you should move those to dfhack-config/blueprints too.

Then you can safely delete the old blueprints directory in the top-level DF folder.

Sorry for the extra work! This will make things easier to manage going forward, though.

Quicksave

Some of you may have noticed that quicksave has sometimes completed "too quickly" and fails to create a fully usable savegame. After investigation, we've found the additional setup that has to be completed before DF will properly save the game. quicksave will now reliably create a full autosave whenever it is run. Go forth, and save often!

Generated release notes

New tools, fixes, and improvements

New Scripts

  • gui/suspendmanager: graphical configuration interface for suspendmanager
    ...
Read more

DFHack 50.07-alpha3

11 Mar 23:57
468b3b5
Compare
Choose a tag to compare
DFHack 50.07-alpha3 Pre-release
Pre-release

This alpha release is compatible with all distributions of DF: Steam, Itch, and Classic.

Installation instructions here: https://docs.dfhack.org/en/latest/docs/Installing.html#installing

Quickstart guide here: https://docs.dfhack.org/en/latest/docs/Quickstart.html#quickstart

Announcements

PSAs

PSAs

Standard alpha release warnings:

  • DFHack tools probably won't corrupt your savegame, but it would be really smart to keep backups of the forts that you care about. DFHack may not have fully adapted to the changes in the new version of Dwarf Fortress, and, especially at this early stage of release and ongoing rapid development, there WILL be bugs. Please always inform us quickly about crash bugs. We prioritize getting those fixed first.
  • Many tools have not been tested thoroughly with Steam DF. The tools that are untested will show a warning if you try to run them and exit immediately. You can run the command again to override the warning (though of course the tools may not work).
  • The in-game interface for running DFHack commands (gui/launcher) will not show untested 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

buildingplan, dig-now, gui/dig

Easily plan out buildings before you have materials with buildingplan:
buildingplan_screw_pump

Ensure your screw pumps are magma-safe with just one click:
buildingplan_magma_safe

Control the quality of items used as materials:
buildingplan_item_quality

Select which materials you want to build with:
buildingplan_materials

Select specific items if you want to:
buildingplan_item_selection

Symmetrical shapes with gui/dig:
dig

The centerpiece feature of this release is buildingplan. We will be iterating on its design over the next few releases, but this first version is already useful, stable, and ready to help take some of the frustration out of building placement!

buildingplan lets you place furniture, constructions, and other buildings, regardless of whether the required materials are available. It attaches items as they become available and your dwarves build the buildings when they can. This allows you to focus purely on design elements when you are laying out your fort, and defers item production concerns to a more convenient time.

The buildingplan UI appears over the vanilla widgets when you choose a building type to build, and is intended to be a complete replacement for vanilla building placement. If you find that you just don't like it, you can turn the buildingplan.planner overlay off in gui/control-panel. Then please tell us why you don't like it so we can make it better : P

buildingplan also gives you a few more options when laying down constructions. You can choose the type of staircase that gets built at the top and bottom of a stair designation, for example. You can also choose to place hollow areas instead of solid, for example to easily surround a large area with a wall. It also allows you to place constructions over areas where some tiles cannot be built over. If you try to build a wall through a tree, for example, the tree tile will simply be skipped instead of blocking the entire wall.

buildingplan gives you whatever level of control you want over how materials are chosen to build your planned buildings:

  • You can just click and place buildings and buildingplan will choose appropriate materials when they appear. No hassle, no worry.
  • You can set filters for which materials are acceptable for each type of building you plan. Want your walls all made out of marble blocks? You can configure that with a few clicks, and buildingplan will only choose marble blocks to build those walls. Want to use only masterwork, decorated, gold tables for your monarch's dining hall? buildingplan can do that too.
  • If you want, and if you have items already available, buildingplan can let you choose specific items for the building that you're planning. If you want a particular mix of weapons in your weapon trap, for example, you might want this level of control.
  • If you are choosing specific items, buildingplan will also remember which materials you have chosen recently and put those items at the top of the list (by default) so you can easily find them again.

We have lots of plans for making buildingplan better and better, but we'd also love to hear your thoughts about how this version is working for you. Tell us here in this thread or join the "buildingplan feedback" discussion on the DFHack discord: https://dfhack.org/discord

See the full docs for buildingplan here: https://docs.dfhack.org/en/latest/docs/tools/buildingplan.html#buildingplan or just try it out in-game!

Also:

  • dig-now now handles designations that have already been converted into active jobs, so you won't be left with an outline of undug tiles anymore. multi-level channeling is now properly handled as well.
  • gui/dig now allows you to create free-form shapes, and can automatically mirror your lines to create symmetrical shapes
  • stockpiles allows you to export and import stockpile configurations. This is an early version that only supports a commandline interface. UI integration is coming soon!

Generated release notes

New tools, fixes, and improvements

Fixes

  • dig-now: fixed multi-layer channel designations only channeling every second layer
  • gui/create-item: fix generic corpsepiece spawning
  • dfhack.job.isSuitableMaterial: now properly detects lack of fire and magma safety for vulnerable materials with high melting points
  • widgets.HotkeyLabel: don't trigger on click if the widget is disabled

Misc Improvements

  • buildingplan: entirely new UI for building placement, item selection, and materials filtering!
  • dig-now: added handling of dig designations that have been converted into active jobs
  • gui/create-item: added ability to spawn 'whole' corpsepieces (every layer of a part)
  • gui/dig:
    • Allow placing an extra point (curve) while still placing the second main point
    • Allow placing n-point shapes, shape rotation/mirroring
    • Allow second bezier point, mirror-mode for freeform shapes, symmetry mode

Removed

  • automaterial: all functionality has been merged into buildingplan
  • gui.THIN_FRAME: replaced by gui.INTERIOR_FRAME

API

  • Gui focus strings will no longer get the "dfhack/" prefix if the string "dfhack/" already exists in the focus string
  • Maps::GetBiomeTypeRef renamed to Maps::getBiomeTypeRef for consistency
  • Maps::GetBiomeType renamed to Maps::getBiomeType for consistency
  • Military:
    • New module for military functionality
    • new makeSquad to create a squad
    • changed getSquadName to take a squad identifier
    • new updateRoomAssignments for assigning a squad to a barracks and archery range

Lua

  • dfhack.job.attachJobItem(): allows you to attach specific items to a job
  • dfhack.screen.paintTile(): you can now explicitly clear the interface cursor from a map tile by passing 0 as the tile value
  • gui.INTERIOR_FRAME: a panel frame style for use in highlighting off interior areas of a UI
  • maps.getBiomeType: exposed preexisting function to Lua
  • widgets.CycleHotkeyLabel: add label_below attribute for compact 2-line output
  • widgets.FilteredList: search key matching is now case insensitive by default
  • widgets.Label: token tile properties can now be functions that return a value

Structures

  • history_eventst: Removed history_event_masterpiece_created_arch_designst and related enum value
  • plot_infost.unk_8: renamed to theft_intrigues. Fields unk_1 thru unk_8 renamed to target_item, ``master...
Read more

DFHack 50.07-alpha2

25 Feb 00:24
816371c
Compare
Choose a tag to compare
DFHack 50.07-alpha2 Pre-release
Pre-release

This alpha release is compatible with all distributions of DF: Steam, Itch, and Classic.

Installation instructions here: https://docs.dfhack.org/en/latest/docs/Installing.html#installing

Quickstart guide here: https://docs.dfhack.org/en/latest/docs/Quickstart.html#quickstart

Progress on updating existing DFHack tools is tracked here, and comments from players are welcome if an "untested" tool works for you. If you are waiting for a particular DFHack tool to get updated, please cast your vote for the tools that you'd like us to work on next: https://strawpoll.com/polls/61gDmBRx5Zw

Announcements

PSAs

PSAs

Standard alpha release warnings:

  • DFHack tools probably won't corrupt your savegame, but it would be really smart to keep backups of the forts that you care about. DFHack may not have fully adapted to the changes in the new version of Dwarf Fortress, and, especially at this early stage of release and ongoing rapid development, there WILL be bugs. Please always inform us quickly about crash bugs. We prioritize getting those fixed first.
  • Many tools have not been tested thoroughly with Steam DF. The tools that are untested will show a warning if you try to run them and exit immediately. You can run the command again to override the warning.
  • The in-game interface for running DFHack commands (gui/launcher) will not show untested 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

gui/mass-remove, trade screen, gui/dig, updated tools

Clear things away with gui/mass-remove:
mass-remove

Trade with less clicking:
caravan-overlay

Lay down designs with gui/dig:
guidig

  • The trade screen now has a helper overlay that lets you select all/none for trade in a container, collapse containers, and collapse all categories
  • gui/mass-remove allows you to select blocks of buildings and constructions and remove/suspend them all with a single click. Designated buildings that have not yet been built will just disappear. Built buildings/constructions will have a disassembly job created for them, just as if you had clicked the button on the building info sheet.
  • gui/dig continues to impress with new abilities to create multi-point curves. Spirals, anyone?
  • combine allows you to combine food/drink of the same type that are sitting in different partially-filled containers in the same stockpile, helping you free up much-needed stockpile space
  • Literal "highlight" here: clickable DFHack widgets now show a visible highlight when you mouse over them.

Newly tested/updated tools

These are the existing tools that have been reported as working on the tracking spreadsheet. Thank you for all the people who have left comments there detailing which tools work and which ones don't! Your testing allowed us to make these tools available much faster than we otherwise would have.

  • caravan: Adjust properties of caravans on the map.
  • clear-smoke: Remove all FPS-draining smoke from the map.
  • colonies: Manipulate vermin colonies and hives.
  • deep-embark: Embark deep underground.
  • devel/annc-monitor: Track announcements and reports and echo them to the console.
  • fix-retrieve-units: Allow units stuck offscreen to enter the map.
  • fix/stuck-merchants: Dismiss merchants that are stuck off the edge of the map.
  • force: Trigger in-game events.
  • gui/mass-remove: Mass select buildings and constructions to suspend or remove.
  • reveal-hidden-sites: Reveal all sites in the world.
  • set-timeskip-duration: Modify the duration of the pre-game world update.
  • strangemood: Trigger a strange mood.
  • superdwarf: Make a dwarf supernaturally speedy.
  • troubleshoot-item: Inspect properties of the selected item.

Generated release notes

New tools, fixes, and improvements

New Scripts

  • combine: combines stacks of food and plant items.

Fixes

  • autobutcher: implemented work-around for Dwarf Fortress not setting nicknames properly, so that nicknames created in the in-game interface are detected & protect animals from being butchered properly. Note that nicknames for unnamed units are not currently saved by dwarf fortress - use enable fix/protect-nicks to fix any nicknames created/removed within dwarf fortress so they can be saved/reloaded when you reload the game.
  • autochop: generate default names for burrows with no assigned names
  • autodump: changed behaviour to only change dump and forbid flags if an item is successfully dumped.
  • channel-safely: fix an out of bounds error regarding the REPORT event listener receiving (presumably) stale id's
  • confirm: fix fps drop when enabled
  • devel/query: can now properly index vectors in the --table argument
  • forbid: fix detection of unreachable items for items in containers
  • gui/blueprint: correctly use setting presets passed on the commandline
  • gui/quickfort: correctly use settings presets passed on the commandline
  • makeown: fixes errors caused by using makeown on an invader
  • nestboxes: fixed bug causing nestboxes themselves to be forbidden, which prevented citizens from using them to lay eggs. Now only eggs are forbidden.
  • seedwatch: fix saving and loading of seed stock targets
  • tailor: block making clothing sized for toads; make replacement clothing orders use the size of the wearer, not the size of the garment
  • troubleshoot-item: fix printing of job details for chosen item
  • unforbid: fix detection of unreachable items for items in containers
  • Buildings::StockpileIterator: fix check for stockpile items on block boundary.

Misc Improvements

  • DFHack tool windows that capture mouse clicks (and therefore prevent you from clicking on the "pause" button) now unconditionally pause the game when they open (but you can still unpause with the keyboard if you want to). Examples of this behavior: gui/quickfort, gui/blueprint, gui/liquids
  • Stopped mouse clicks from affecting the map when a click on a DFHack screen dismisses the window
  • autobutcher: logs activity to the console terminal instead of making disruptive in-game announcements
  • caravan: add trade screen overlay that assists with seleting groups of items and collapsing groups in the UI
  • confirm: configuration data is now persisted globally.
  • devel/query: will now search for jobs at the map coordinate highlighted, if no explicit job is highlighted and there is a map tile highlighted
  • devel/visualize-structure: now automatically inspects the contents of most pointer fields, rather than inspecting the pointers themselves
  • gui/gm-editor will now inspect a selected building itself if the building has no current jobs
  • showmood: now shows the number of items needed for cloth and bars in addition to the technically correct but always confusing "total dimension" (150 per bar or 10,000 per cloth)
  • tailor: add support for adamantine cloth (off by default); improve logging
  • troubleshoot-item:
    • output as bullet point list with indenting, with item description and ID at top
    • reports on items that are hidden, artifacts, in containers, and held by a unit
    • reports on the contents of containers with counts for each contained item type

Removed

  • combine-drinks: replaced by combine
  • combine-plants: replaced by combine

API

  • Units module: added new predicates for isGeldable(), isMarkedForGelding(), and isPet()
  • Gui::any_civzone_hotkey, Gui::getAnyCivZone, Gui::getSelectedCivZone: new functions to operate on the new zone system

Lua

  • dfhack.gui.getSelectedCivZone: returns the Zone that the user has selected currently
  • widgets.FilteredList: Added edit_on_change optional parameter to allow a custom callback on filter edit change.
  • widgets.TabBar: new library widget (migrated from control-panel.lua)

Structures...

Read more

DFHack 50.07-alpha1

10 Feb 20:40
ad78427
Compare
Choose a tag to compare
DFHack 50.07-alpha1 Pre-release
Pre-release

In addition to the Steam version, this alpha release brings compatibility with DF Classic! Itch is WIP.

Installation instructions here: https://docs.dfhack.org/en/latest/docs/Installing.html#installing

Quickstart guide here: https://docs.dfhack.org/en/latest/docs/Quickstart.html#quickstart

Progress on updating existing DFHack tools is tracked here, and comments from players are welcome if an "untested" tool works for you. If you are waiting for a particular DFHack tool to get updated, please cast your vote for the tools that you'd like us to work on next: https://strawpoll.com/polls/61gDmBRx5Zw

Special thanks

We want to add this section to call out some of the fantastic community members that have helped improve DFHack so much in recent months (and I apologize to those of you I missed in this list):

  • 20k: invaluable research into UI state and memory structure alignment issues
  • AndrielChaoti: autofish
  • Baron Von Munchhausen (eamondo2): automelt, ongoing work on stockpiles
  • johncosker: gui/dig, autoslab, UI widget improvements
  • kelvie: automated build improvements
  • nuvu (vallode): gui/liquids, fix/civil-war, forbid, many ports of Ruby scripts to Lua
  • Robob27: confirm and updates for the entire core backend that provides DF context detection
  • seerskye: provider of some particularly tough reverse engineering insights
  • TaxiService: DFHack art assets and invaluable UI design feedback

Thank you all so much!

See the full list of DFHack contributors here: https://docs.dfhack.org/en/latest/docs/about/Authors.html

Announcements

PSAs

PSAs

Standard alpha release warnings:

  • DFHack tools probably won't corrupt your savegame, but it would be really smart to keep backups of the forts that you care about. DFHack may not have fully adapted to the changes in the new version of Dwarf Fortress, and, especially at this early stage of release and ongoing rapid development, there WILL be bugs. Please always inform us quickly about crash bugs. We prioritize getting those fixed first.
  • Most tools have not been tested thoroughly with Steam DF. The tools that are untested will show a warning if you try to run them and exit immediately. You can run the command again to override the warning.
  • The in-game interface for running DFHack commands (gui/launcher) will not show untested 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

gui/dig, confirm, updated tools

Design your fort with gui/dig:
dig

  • We have been steadily squashing memory alignment issues and making DFHack tools more stable.
  • Now that DF-50.07 has fixed issues with savegames overwriting each other, DFHack fort-specific settings should also now be saved properly. You can check which tools are enabled by bringing up the DFHack control panel (gui/control-panel)
  • gui/dig is our first entry into the realm of visual design tools. Draw geometric shapes, lay out exploratory mining patterns, and, finally, get your stairs set up the way you want them. Check it out!
  • confirm makes a reappearance in this version. You will now get a confirmation prompt (that you can pause or disable if you don't like) that will prevent you from accidentally deleting a squad, destroying the trade depot when traders are using it, and many other regret-inducing actions that you can't undo.

Newly tested/updated tools

These are the existing tools that have been reported as working on the tracking spreadsheet. Thank you for all the people who have left comments there detailing which tools work and which ones don't! Your testing allowed us to make these tools available much faster than we otherwise would have.

  • autolabor: Automatically manage dwarf labors.
  • autonestbox: Auto-assign egg-laying female pets to nestbox zones.
  • confirm: Adds confirmation dialogs for destructive actions.

Generated release notes

New tools, fixes, and improvements

New Scripts

  • gui/dig: digging designation tool for shapes and patterns
  • makeown: adds the selected unit as a member of your fortress

Fixes

  • Fix persisted data not being written on manual save
  • Fix right click sometimes closing both a DFHack window and a vanilla panel
  • Fixed issue with scrollable lists having some data off-screen if they were scrolled before being made visible
  • autochop: fixed bug related to lua stack smashing behavior in returned stockpile configs
  • automelt: fixed bug related to lua stack smashing behavior in returned stockpile configs
  • channel-safely: fixed bug resulting in marker mode never being set for any designation
  • fix/protect-nicks: now works by setting the historical figure nickname
  • gui/liquids: fixed issues with unit pathing after adding/removing liquids
  • gui/unit-syndromes: allow the window widgets to be interacted with
  • nestboxes:
    • now cancels any in-progress hauling jobs when it protects a fertile egg
    • now scans for eggs more frequently and cancels any in-progress hauling jobs when it protects a fertile egg
  • Units::isFortControlled: Account for agitated wildlife

Misc Improvements

  • replaced DFHack logo used for the hover hotspot with a crisper image
  • autobutcher:
    • changed defaults from 5 females / 1 male to 4 females / 2 males so a single unfortunate accident doesn't leave players without a mating pair
    • now immediately loads races available at game start into the watchlist
  • autodump:
    • reinstate autodump-destroy-item, hotkey: Ctrl-K
    • new hotkey for autodump-destroy-here: Ctrl-H
  • automelt: is now more resistent to vanilla savegame corruption
  • clean: new hotkey for spotclean: Ctrl-C
  • dig: new hotkeys for vein designation on z-level (Ctrl-V) and vein designation across z-levels (Ctrl-Shift-V)
  • gui/gm-editor:
    • now supports multiple independent data inspection windows
    • now prints out contents of coordinate vars instead of just the type
  • hotkeys: DFHack logo is now hidden on screens where it covers important information when in the default position (e.g. when choosing an embark site)
  • misery: now persists state with the fort
  • orders: recipe for silver crossbows removed from library/military as it is not a vanilla recipe, but is available in library/military_include_artifact_materials
  • rejuvenate: now takes an --age parameter to choose a desired age.
  • stonesense: added an INVERT_MOUSE_Z option to invert the mouse wheel direction

Lua

  • overlay: overlay widgets can now specify focus paths for the viewscreens they attach to so they only appear in specific contexts. see overlay-dev-guide for details.
  • widgets.CycleHotkeyLabel: Added key_back optional parameter to cycle backwards.
  • widgets.FilteredList: Added case_sensitive optional paramter to determine if filtering is case sensitive.
  • widgets.HotkeyLabel:
    • Added setLabel method to allow easily updating the label text without mangling the keyboard shortcut.
    • Added setOnActivate method to allow easily updating the on_activate callback.

Structures

  • added missing tiletypes and corrected a few old ones based on a list supplied by Toady