- Important reminder: this only supports DF 0.44.12, because that was the newest version that existed when this DFHack version was released. See https://dfhack.org/builds/ for unstable builds that support newer versions.
- Look under "Assets" below for downloads
- Thanks to the 12 new contributors who made contributions to this release!
DFHack 0.44.12-r3
New Plugins
autoclothing
: automatically manage clothing work ordersautofarm
: replaces the previous Ruby script of the same name, with some fixesmap-render
: allows programmatically rendering sections of the map that are off-screentailor
: automatically manages keeping your dorfs clothed
New Scripts
assign-attributes
: changes the attributes of a unitassign-beliefs
: changes the beliefs of a unitassign-facets
: changes the facets (traits) of a unitassign-goals
: changes the goals of a unitassign-preferences
: changes the preferences of a unitassign-profile
: sets a dwarf's characteristics according to a predefined profileassign-skills
: changes the skills of a unitcombat-harden
: sets a unit's combat-hardened value to a given percentdeep-embark
: allows embarking undergrounddevel/find-twbt
: finds a TWBT-related offset needed by the newmap-render
plugindwarf-op
: optimizes dwarves for fort-mode work; makes managing labors easierforget-dead-body
: removes emotions associated with seeing a dead bodygui/create-tree
: creates a tree at the selected tilelinger
: takes over your killer in adventure modemodtools/create-tree
: creates a treemodtools/pref-edit
: add, remove, or edit the preferences of a unitmodtools/set-belief
: changes the beliefs (values) of unitsmodtools/set-need
: sets and edits unit needsmodtools/set-personality
: changes the personality of unitsmodtools/spawn-liquid
: spawns water or lava at the specified coordinatesset-orientation
: edits a unit's orientationunretire-anyone
: turns any historical figure into a playable adventurer
Fixes
-
Fixed a crash in the macOS/Linux console when the prompt was wider than the screen width
-
Fixed inconsistent results from
Units::isGay
for asexual units -
Fixed some cases where Lua filtered lists would not properly intercept keys, potentially triggering other actions on the same screen
-
autofarm
:- fixed biome detection to properly determine crop assignments on surface farms
- reimplemented as a C++ plugin to make proper biome detection possible
-
bodyswap
: fixed companion list not being updated often enough -
cxxrandom
: removed some extraneous debug information -
digfort
: now accounts for z-level changes when calculating maximum y dimension -
embark-assistant
:- fixed bug causing crash on worlds without generated metals (as well as pruning vectors as originally intended).
- fixed bug causing mineral matching to fail to cut off at the magma sea, reporting presence of things that aren't (like DF does currently).
- fixed bug causing half of the river tiles not to be recognized.
- added logic to detect some river tiles DF doesn't generate data for (but are definitely present).
-
eventful
: fixed invalid building ID in some building events -
exportlegends
: now escapes special characters in names properly -
getplants
: fixed designation of plants out of season (note that picked plants are still designated incorrectly) -
gui/autogems
: fixed error when no world is loaded -
gui/companion-order
:- fixed error when resetting group leaders
leave
now properly removes companion links
-
gui/create-item
: fixed module support - can now be used from other scripts -
gui/stamper
:- stopped "invert" from resetting the designation type
- switched to using DF's designation keybindings instead of custom bindings
- fixed some typos and text overlapping
-
modtools/create-unit
:- fixed an error associating historical entities with units
- stopped recalculating health to avoid newly-created citizens triggering a "recover wounded" job
- fixed units created in arena mode having blank names
- fixed units created in arena mode having the wrong race and/or interaction effects applied after creating units manually in-game
- stopped units from spawning with extra items or skills previously selected in the arena
- stopped setting some unneeded flags that could result in glowing creature tiles
- set units created in adventure mode to have no family, instead of being related to the first creature in the world
-
modtools/reaction-product-trigger
:- fixed an error dealing with reactions in adventure mode
- blocked
\\BUILDING_ID
for adventure mode reactions - fixed
-clear
to work without passing other unneeded arguments
-
modtools/reaction-trigger
:- fixed a bug when determining whether a command was run
- fixed handling of
-resetPolicy
-
mousequery
: fixed calculation of map dimensions, which was sometimes preventing scrolling the map with the mouse when TWBT was enabled -
RemoteFortressReader
: fixed a crash when a unit's path has a length of 0 -
stonesense
: fixed crash due to wagons and other soul-less creatures -
tame
: now sets the civ ID of tamed animals (fixes compatibility withautobutcher
) -
title-folder
: silenced error whenPRINT_MODE
is set toTEXT
Misc Improvements
-
Added a note to
dfhack-run
when called with no arguments (which is usually unintentional) -
On macOS, the launcher now attempts to un-quarantine the rest of DFHack
-
bodyswap
: added arena mode support -
combine-drinks
: added more default output, similar tocombine-plants
-
createitem
: added a list of valid castes to the "invalid caste" error message, for convenience -
devel/export-dt-ini
: added more size information needed by newer Dwarf Therapist versions -
dwarfmonitor
: enabled widgets to access other scripts and plugins by switching to the core Lua context -
embark-assistant
:- added an in-game option to activate on the embark screen
- changed waterfall detection to look for level drop rather than just presence
- changed matching to take incursions, i.e. parts of other biomes, into consideration when evaluating tiles. This allows for e.g. finding multiple biomes on single tile embarks.
- changed overlay display to show when incursion surveying is incomplete
- changed overlay display to show evil weather
- added optional parameter "fileresult" for crude external harness automated match support
- improved focus movement logic to go to only required world tiles, increasing speed of subsequent searches considerably
-
exportlegends
: added rivers to custom XML export -
exterminate
: added support for a specialenemy
caste -
gui/gm-unit
:- added support for editing:
- added attribute editor
- added orientation editor
- added editor for bodies and body parts
- added color editor
- added belief editor
- added personality editor
-
modtools/create-item
: documented already-existing-quality
option -
modtools/create-unit
:- added the ability to specify
\\LOCAL
for the fort group entity - now enables the default labours for adult units with CAN_LEARN.
- now sets historical figure orientation.
- improved speed of creating multiple units at once
- made the script usable as a module (from other scripts)
- added the ability to specify
-
modtools/reaction-trigger
:- added
-ignoreWorker
: ignores the worker when selecting the targets - changed the default behavior to skip inactive/dead units; added
-dontSkipInactive
to include creatures that are inactive - added
-range
: controls how far elligible targets can be from the workshop - syndromes now are applied before commands are run, not after
- if both a command and a syndrome are given, the command only runs if the syndrome could be applied
- added
-
mousequery
: made it more clear when features are enabled -
RemoteFortressReader
:- added a basic framework for controlling and reading the menus in DF (currently only supports the building menu)
- added support for reading item raws
- added a check for whether or not the game is currently saving or loading, for utilities to check if it's safe to read from DF
- added unit facing direction estimate and position within tiles
- added unit age
- added unit wounds
- added tree information
- added check for units' current jobs when calculating the direction they are facing
API
- Added new
plugin_load_data
andplugin_save_data
events for plugins to load/save persistent data - Added
Maps::GetBiomeType
andMaps::GetBiomeTypeByRef
to infer biome types properly - Added
Units::getPhysicalDescription
(note that this depends on theunit_get_physical_description
offset, which is not yet available for all DF builds)
Internals
- Added new Persistence module
- Cut down on internal DFHack dependencies to improve build times
- Improved concurrency in event and server handlers
- Persistent data is now stored in JSON files instead of historical figures - existing data will be migrated when saving
stonesense
: fixed some OpenGL build issues on Linux
Lua
- Exposed
gui.dwarfmode.get_movement_delta
andgui.dwarfmode.get_hotkey_target
dfhack.run_command
now returns the command's return code
Ruby
- Made
unit_ishostile
consistently return a boolean
Structures
-
Added
unit_get_physical_description
function offset on some platforms -
Added/identified types:
assume_identity_mode
musical_form_purpose
musical_form_style
musical_form_pitch_style
musical_form_feature
musical_form_vocals
musical_form_melodies
musical_form_interval
unit_emotion_memory
-
need_type
: fixedPrayOrMeditate
typo -
personality_facet_type
,value_type
: addedNONE
values -
twbt_render_map
: added for 64-bit 0.44.12 (formap-render
)