github DFHack/dfhack 50.05-alpha3
DFHack 50.05-alpha3.1

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

50.05-alpha3.1 release notes

Create a splash with gui/liquids:
Image

Configure tools with gui/control-panel:
Image

Thing are moving along well, and the numerous contributions from the community have helped DFHack make a lot of progress! This release still only works with the Steam version. Compatibility with The Itch and Classic versions is scheduled to come with DF 50.06.

Download DFHack from https://github.com/DFHack/dfhack/releases/tag/50.05-alpha3

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

If you don't know what DFHack is, see our first alpha post here for a lot of background information.

Are you waiting for a particular DFHack tool to get updated? Vote for the tools that you'd like us to work on next: https://strawpoll.com/polls/61gDmBRx5Zw

Intro and announcements

Remember that this is an alpha release. This means that:

  • 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, there WILL be bugs.
  • 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.

Note that DF's "manual" and "timeline" saves are buggy at the moment, and you should instead copy the entire save directory to somewhere else on your hard drive to keep it safe.

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: The new recommended way to remove the DFHack terminal console is to 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.

Finally, many people are confused when DFHack tools tell them that a cursor is required. This refers 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 naturally accessible.

What's new and notable?

  • More memory alignment issues have been corrected. This will address issues with examining units with tools like gui/gm-editor. Please always inform us quickly about crash bugs. We prioritize getting those fixed first.
  • DFHack now has an in-game configuration interface: gui/control-panel! You can toggle enabled tools with a click, and even select which tools you want running automatically when you start a new fort! Bring it up from the DFHack logo hotspot menu or the tilde (Shift-backtick for most keyboard layouts) hotkey.
  • We've started making some productivity tools more accessible with overlays. The first of these is the orders overlay. When you bring up the manager orders panel, you'll now see a DFHack-drawn section where you can import, export, sort, and clear manager orders with a click of the mouse (or the strike of a hotkey). If you feel like any DFHack-drawn overlay is getting in the way, you can turn it off in gui/control-panel.
  • DFHack windows are now easier to "pin". Before, if you wanted a tool to ignore right mouse clicks and keyboard input, you'd have to click on the pin icon in the upper right corner. Now, just click anywhere on the map that is not a DFHack tool window. The window will lose the highlight from its title bar and will ignore mouse and keyboard input until you click on it again.
  • You also might notice that DFHack has a new look. Tell us what you think of the new window styling in the comments!

Brand new tools!

In addition to gui/control-panel, our beloved community members have stepped up to provide you with some fantastic new tools to play with:

  • autoslab can monitor your fort for ghosts and automatically enqueue orders to engrave slabs for them.
  • autofish and gui/autofish will manage fishing labors to help you control your stock of fish
  • gui/automelt is a fantastic new GUI config and status panel interface for automelt
  • fix/civil-war makes games playable again for those unlucky enough to have accidentally started a war with your own government (which is supposed to be impossible)
  • fix/protect-nicks restore nicknames when DF loses them (this can happen, for example, when a dwarf slays a megabeast)
  • forbid can list forbidden items on the map and selectively mark classes of items as forbidden
  • gui/liquids allows you to draw liquids onto the map with the mouse. Create swimming pools or test prospective drowning traps with ease
  • gui/unit-syndromes is an interactive browser for syndrome information

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 has basic functionality, but is still marked as "untested" since we don't know yet how well it interacts with the Steam version labors. You're welcome to try it out, but keep an eye on your dwarves (and please tell us how it goes!)
  • animal-control: Quickly view, butcher, or geld groups of animals.
  • armoks-blessing: Bless units with superior stats and traits.
  • assign-facets: Adjust a unit's facets and traits.
  • assign-goals: Adjust a unit's goals and dreams.
  • assign-preferences: Adjust a unit's preferences.
  • assign-skills: Adjust a unit's skills.
  • automelt: Automatically designate items brought to a stockpile to be melted.
  • brainwash: Set the personality of a dwarf to an ideal.
  • catsplosion: Cause pregnancies (not just in cats).
  • channel-safely: Manage channel designations to keep dwarves safe.
  • dig: Provides commands for designating tiles for digging.
  • elevate-mental: Set mental attributes of a dwarf to an ideal.
  • elevate-physical: Set physical attributes of a dwarf to an ideal.
  • emigration: Allow dwarves to emigrate from the fortress when stressed.
  • empty-bin: Empty the contents of containers onto the floor.
  • extinguish: Put out fires.
  • feature: Control discovery flags for map features.
  • fillneeds: Temporarily satisfy the needs of a unit.
  • fix/loyaltycascade: Halts loyalty cascades where dwarves are fighting dwarves.
  • hermit: Go it alone in your fortress and attempt the hermit challenge.
  • make-monarch: Crown the selected unit as a monarch.
  • reveal-hidden-units: Reveal sneaking units.

Generated release notes

New Plugins

  • autoslab: automatically create work orders to engrave slabs for ghostly dwarves

New Scripts

  • autofish: auto-manage fishing labors to control your stock of fish
  • fix/civil-war: removes negative relations with own government
  • fix/protect-nicks: restore nicknames when DF loses them
  • forbid: forbid and list forbidden items on the map
  • gui/autofish: GUI config and status panel interface for autofish
  • gui/automelt: GUI config and status panel interface for automelt
  • gui/control-panel: quick access to DFHack configuration
  • gui/unit-syndromes: browser for syndrome information

Fixes

  • allow launcher tools to launch themselves without hanging the game
  • DF screens can no longer get "stuck" on transitions when DFHack tool windows are visible. Instead, those DF screens are force-paused while DFHack windows are visible so the player can close them first and not corrupt the screen sequence. The "PAUSE FORCED" indicator will appear on these DFHack windows to indicate what is happening.
  • fix issues with clicks "passing through" some DFHack window elements to the screen below
  • autochop: fixed a crash when processing trees with corrupt data structures (e.g. when a trunk tile fails to fall when the rest of the tree is chopped down)
  • autoclothing: fixed a crash that can happen when units are holding invalid items.
  • build-now: now correctly avoids adjusting non-empty tiles above constructions that it builds
  • catsplosion: now only affects live, active units
  • getplants: trees are now designated correctly
  • orders:
    • fix orders in library/basic that create bags
    • library/military now sticks to vanilla rules and does not add orders for normally-mood-only platinum weapons. A new library orders file library/military_include_artifact_materials is now offered as an alternate library/military set of orders that still includes the platinum weapons.
  • quickfort: allow floor bars, floor grates, and hatches to be placed over all stair types like vanilla allows

Misc Improvements

  • DFHack windows can now be "defocused" by clicking somewhere not over the tool window. This has the same effect as pinning previously did, but without the extra clicking.
  • New borders for DFHack tool windows -- tell us what you think!
  • Windows now display "PAUSE FORCED" on the lower border if the tool is forcing the game to pause
  • autoclothing: merged the two separate reports into the same command.
  • automelt: stockpile configuration can now be set from the commandline
  • ban-cooking:
    • ban announcements are now hidden by default; use new option --verbose to show them.
    • report number of items banned.
  • build-now: now handles dirt roads and initializes farm plots properly
  • channel-safely: new monitoring for cave-in prevention
  • devel/click-monitor: report on middle mouse button actions
  • getplants: ID values will now be accepted regardless of case
  • gui/autochop: hide uninteresting burrows by default
  • gui/blueprint: allow map movement with the keyboard while the UI is open
  • gui/control-panel:
    • you can now configure whether DFHack tool windows should pause the game by default
    • new global hotkey for quick access: Ctrl-Shift-E
  • gui/create-item:
    • support spawning corpse pieces (e.g. shells) under "body part"
    • added search and filter capabilities to the selection lists
    • added whole corpse spawning alongside corpsepieces. (under "corpse")
  • gui/launcher:
    • sped up initialization time for faster window appearance
    • make command output scrollback separate from the help text so players can continue to see the output of the previous command as they type the next one
    • allow double spacebar to pause/unpause the game, even while typing a command
    • clarify what is being shown in the autocomplete list (all commands, autocompletion of partially typed command, or commands related to typed command)
    • support running commands directly from the autocomplete list via double-clicking
  • gui/liquids: interface overhaul, also now allows spawning river sources, setting/adding/removing liquid levels, and cleaning water from being salty or stagnant
  • gui/overlay: now focuses on repositioning overlay widgets; enabling, disabling, and getting help for overlay widgets has moved to the new gui/control-panel
  • gui/quickcmd:
    • now has its own global keybinding for your convenience: Ctrl-Shift-A
    • now acts like a regular window instead of a modal dialog
  • gui/quickfort: don't close the window when applying a blueprint so players can apply the same blueprint multiple times more easily
  • hotkeys: clicking on the DFHack logo no longer closes the popup menu
  • locate-ore: now only searches revealed tiles by default
  • modtools/spawn-liquid: sets tile temperature to stable levels when spawning water or magma
  • nestboxes: now saves enabled state in your savegame
  • orders: orders plugin functionality is now accessible via an overlay widget when the manager orders screen is open
  • prioritize:
    • pushing minecarts is now included in the default priortization list
    • now automatically starts boosting the default list of job types when enabled
  • quickfort: planned buildings are now properly attached to any pertinent overlapping zones
  • seedwatch: now persists enabled state in the savegame, automatically loads useful defaults, and respects reachability when counting available seeds
  • unforbid: avoids unforbidding unreachable and underwater items by default

Removed

  • autohauler: no plans to port to v50, as it just doesn't make sense with the new work detail system
  • show-unit-syndromes: replaced by gui/unit-syndromes; html export is no longer supported

API

  • overlay: overlay widgets can now specify a default enabled state if they are not already set in the player's overlay config file
  • Buildings::containsTile(): no longer takes a room parameter since that's not how rooms work anymore. If the building has extents, the extents will be checked. otherwise, the result just depends on whether the tile is within the building's bounding box.
  • Lua::Push: now supports std::unordered_map
  • Screen::Pen: now accepts top_of_text and bottom_of_text properties to support offset text in graphics mode
  • Units::getCitizens(): gets a list of citizens, which otherwise you'd have to iterate over all units the world to discover

Lua

  • helpdb:
    • new function: helpdb.refresh() to force a refresh of the database. Call if you are a developer adding new scripts, loading new plugins, or changing help text during play
    • changed from auto-refreshing every 60 seconds to only refreshing on explicit call to helpdb.refresh(). docs very rarely change during a play session, and the automatic database refreshes were slowing down the startup of gui/launcher and anything else that displays help text.
  • tiletypes: now has a Lua API! tiletypes_setTile
  • dfhack.units.getCitizens(): gets a list of citizens
  • gui.ZScreen: new attribute: defocusable for controlling whether a window loses keyboard focus when the map is clicked
  • widgets.Label:
    • label.scroll() now understands home and end keywords for scrolling to the top or bottom
    • token tile properties can now be either pens or numeric texture ids
  • widgets.List: new callbacks for double click and shift double click

Structures

  • add "hospital" language name category
  • corrected misalignment in unitst (affecting occupation and adjective)
  • identified fields for squads and other military structures
  • identified some anons in unitst related to textures (thanks, putnam)
  • identify a table of daily events scheduled to take place inthe current year
  • realigned and fleshed out entity_site_link (again, thanks, putnam)
  • remove some no-longer-valid reputation types
  • building_design: corrected misalignments
  • creature_raw_graphics: corrected misalignments
  • item.setSharpness(): more info about params
  • occupation_type: add enum values for new occupations related to hospitals

Documentation

  • Quickstart guide has been updated with info on new window behavior and how to use the control panel
  • compile: instructions added for cross-compiling DFHack for Windows from a Linux Docker builder

Don't miss a new dfhack release

NewReleases is sending notifications on new releases.