50.05-alpha3.1 release notes
Create a splash with gui/liquids
:
Configure tools with gui/control-panel
:
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 ingui/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 ingui/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
andgui/autofish
will manage fishing labors to help you control your stock of fishgui/automelt
is a fantastic new GUI config and status panel interface forautomelt
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 forbiddengui/liquids
allows you to draw liquids onto the map with the mouse. Create swimming pools or test prospective drowning traps with easegui/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 fishfix/civil-war
: removes negative relations with own governmentfix/protect-nicks
: restore nicknames when DF loses themforbid
: forbid and list forbidden items on the mapgui/autofish
: GUI config and status panel interface for autofishgui/automelt
: GUI config and status panel interface for automeltgui/control-panel
: quick access to DFHack configurationgui/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 buildscatsplosion
: now only affects live, active unitsgetplants
: trees are now designated correctlyorders
:- 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 alternatelibrary/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 commandlineban-cooking
:- ban announcements are now hidden by default; use new option
--verbose
to show them. - report number of items banned.
- ban announcements are now hidden by default; use new option
build-now
: now handles dirt roads and initializes farm plots properlychannel-safely
: new monitoring for cave-in preventiondevel/click-monitor
: report on middle mouse button actionsgetplants
: ID values will now be accepted regardless of casegui/autochop
: hide uninteresting burrows by defaultgui/blueprint
: allow map movement with the keyboard while the UI is opengui/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 stagnantgui/overlay
: now focuses on repositioning overlay widgets; enabling, disabling, and getting help for overlay widgets has moved to the newgui/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 easilyhotkeys
: clicking on the DFHack logo no longer closes the popup menulocate-ore
: now only searches revealed tiles by defaultmodtools/spawn-liquid
: sets tile temperature to stable levels when spawning water or magmanestboxes
: now saves enabled state in your savegameorders
: orders plugin functionality is now accessible via anoverlay
widget when the manager orders screen is openprioritize
:- 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 zonesseedwatch
: now persists enabled state in the savegame, automatically loads useful defaults, and respects reachability when counting available seedsunforbid
: 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 systemshow-unit-syndromes
: replaced bygui/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 fileBuildings::containsTile()
: no longer takes aroom
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 supportsstd::unordered_map
Screen::Pen
: now acceptstop_of_text
andbottom_of_text
properties to support offset text in graphics modeUnits::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 ofgui/launcher
and anything else that displays help text.
- new function:
tiletypes
: now has a Lua API!tiletypes_setTile
dfhack.units.getCitizens()
: gets a list of citizensgui.ZScreen
: new attribute:defocusable
for controlling whether a window loses keyboard focus when the map is clickedwidgets.Label
:label.scroll()
now understandshome
andend
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
(affectingoccupation
andadjective
) - 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 misalignmentscreature_raw_graphics
: corrected misalignmentsitem.setSharpness()
: more info about paramsoccupation_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