github DFHack/dfhack 50.07-alpha2
DFHack 50.07-alpha2

latest releases: 50.15-r1.2, 50.15-r1.1, 50.15-r1...
pre-release22 months ago

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

  • corrected alignment in world.status
  • identify item vmethod 213 (applies a thread improvements to appropriate items based on an RNG)
  • identify various data types related to job completion/cancellation
  • split gamest into gamest and gamest_extra to accommodate steam-specific data in gamest.mod_manager
  • activity_info: unit_actor, unit_noble, and place converted from pointers to integer references.
  • dipscript_popup: meeting_holder converted from unit pointer into two unit refs meeting_holder_actor and meeting_holder_noble.
  • plotinfost.equipment: Converted items_unmanifested, items_unassigned, and items_assigned vectors from pointers to item refs

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.