DFHack 0.47.05-r3
New Plugins
dig-now
: instantly completes dig designations (including smoothing and carving tracks)
New Scripts
autonick
: gives dwarves unique nicknamesbuild-now
: instantly completes planned building constructionsdo-job-now
: makes a job involving current selection high priorityprioritize
: automatically boosts the priority of current and/or future jobs of specified types, such as hauling food, tanning hides, or pulling leversreveal-adv-map
: exposes/hides all world map tiles in adventure mode
Fixes
- Core:
alt
keydown state is now cleared when DF loses and regains focus, ensuring thealt
modifier state is not stuck on for systems that don't send standard keyup events in response toalt-tab
window manager events - Lua:
memscan.field_offset()
: fixed an issue causingdevel/export-dt-ini
to crash sometimes, especially on Windows autofarm
: autofarm will now count plant growths as well as plants toward its thresholdsautogems
: no longer assigns gem cutting jobs to workshops with gem cutting prohibited in the workshop profiledevel/export-dt-ini
: fixed incorrect vtable address on Windowsquickfort
:- allow machines (e.g. screw pumps) to be built on ramps just like DF allows
- fix error message when the requested label is not found in the blueprint file
Misc Improvements
assign-beliefs
,assign-facets
: now update needs of units that were changedbuildingplan
: now displays which items are attached and which items are still missing for planned buildingsdevel/query
:- updated script to v3.2 (i.e. major rewrite for maintainability/readability)
- merged options
-query
and-querykeys
into-search
- merged options
-depth
and-keydepth
into-maxdepth
- replaced option
-safer
with-excludetypes
and-excludekinds
- improved how tile data is dealt with identification, iteration, and searching
- added option
-findvalue
- added option
-showpaths
to print full data paths instead of nested fields - added option
-nopointers
to disable printing values with memory addresses - added option
-alignto
to set the value column's alignment - added options
-oneline
and alias-1
to avoid using two lines for fields with metadata - added support for matching multiple patterns
- added support for selecting the highlighted job, plant, building, and map block data
- added support for selecting a Lua script (e.g.
dorf_tables
) - added support for selecting a Json file (e.g. dwarf_profiles.json)
- removed options
-listall
,-listfields
, and-listkeys
- these are now simply default behaviour -table
now accepts the same abbreviations (global names,unit
,screen
, etc.) aslua
andgui/gm-editor
dorf_tables
: integrateddevel/query
to show the table definitions when requested with-list
geld
: fixed-help
optiongui/gm-editor
: made search case-insensitiveorders
:- support importing and exporting reaction-specific item conditions, like "lye-containing" for soap production orders
- new
sort
command. sorts orders according to their repeat frequency. this prevents daily orders from blocking other orders for simlar items from ever getting completed.
quickfort
:- Dreamfort blueprint set improvements: extensive revision based on playtesting and feedback. includes updated
onMapLoad_dreamfort.init
settings file, enhanced automation orders, and premade profession definitions. see full changelog at #1921 and #1925 - accept multiple commands, list numbers, and/or blueprint lables on a single commandline
- Dreamfort blueprint set improvements: extensive revision based on playtesting and feedback. includes updated
tailor
: allow user to specify which materials to be used, and in what ordertiletypes-here
,tiletypes-here-point
: add--cursor
and--quiet
options to support non-interactive use casesunretire-anyone
: replaced the 'undead' descriptor with 'reanimated' to make it more mod-friendlywarn-starving
: added an option to only check sane dwarves
API
- The
Items
modulemoveTo*
andremove
functions now handle projectiles
Internals
- Install tests in the scripts repo into hack/scripts/test/scripts when the CMake variable BUILD_TESTS is defined
Lua
- new global function:
safe_pairs(iterable[, iterator_fn])
will iterate over theiterable
(a table or iterable userdata) with theiterator_fn
(pairs
if not otherwise specified) if iteration is possible. If iteration is not possible or would throw an error, for example ifnil
is passed as theiterable
, the iteration is just silently skipped.
Structures
cursed_tomb
: new struct typejob_item
: identified several fieldsocean_wave_maker
: new struct typeworldgen_parms
: moved to new struct type
Documentation
dfhack-examples-guide
: documentation for all ofdreamfort
's supporting files (useful for all forts, not just Dreamfort!)quickfort-library-guide
: updated dreamfort documentation and added screenshots