DFHack – Dwarf Fortress Modding Engine update 50.13-r4 is now available to download on PC. According to the official DFHack – Dwarf Fortress Modding Engine patch notes, the latest update 50.13-r4addresses some bugs and crashes.
Previously, a major update 50.13-r4 added new changes, fixes, and gameplay improvements.
Unfortunately, players are still experiencing several issues since the release. Today’s DFHack – Dwarf Fortress Modding Engine version 50.13-r4 will fix a few of these issues.
Check out more details below.
DFHack – Dwarf Fortress Modding Engine Patch 50.13-r4 Notes – Aug 4, 2024
New Features
- gui/journal:
- new hotkey, accessible from anywhere in fort mode: Ctrl-j
- new automatic table of contents. add lines that start with “# “, like “# Entry for 502-04-02”, to add hyperlinked headers to the table of contents
Fixes
- Copy/Paste: Fix handling of multi-line text when interacting with the system clipboard on Windows
- add-spatter: fix a crash related to unloading a savegame with add-spatter reactions, then loading a second savegame with add-spatter reactions
- autodump: cancel any jobs that point to dumped items
- build-now: fix error when building buildings that (in previous DF versions) required the architecture labor
- changelayer: fix incorrect lookup of geological region in multi-region embarks
- fix/dead-units: fix error when removing dead units from burrows and the unit with the greatest ID was dead
- full-heal: fix -r –all_citizens option combination not resurrecting citizens
- gui/autodump:
- prevent dumping into walls or invalid map areas
- properly turn items into projectiles when they are teleported into mid-air
- gui/settings-manager: fix position of “settings restored” message on embark when the player has no saved embark profiles
- gui/unit-info-viewer: correctly display skill levels when rust is involved
- list-waves: no longer gets confused by units that leave the map and then return (e.g. squads who go out on raids)
- locate-ore: fix sometimes selecting an incorrect tile when there are multiple mineral veins in a single map block
- makeown: ensure names given to adopted units (or units created with gui/sandbox) are respected later in legends mode
- open-legends: don’t intercept text bound for vanilla legends mode search widgets
- plant: properly detect trees in a specified cuboid that only have branches/leaves in the cuboid area
- prioritize: fix incorrect restoring of saved settings on Windows
- timestream:
- fix dwarves spending too long eating and drinking
- fix jobs not being created at a sufficient rate, leading to dwarves standing around doing nothing
- zone: fix alignment of animal actions overlay panel (the one where you can click to geld/train/etc.) when the animal has a custom portrait (like named dragons)
Misc Improvements
- performance improvements for DFHack tools and infrastructure
- allneeds: display distribution of needs by how severely they are affecting the dwarf
- autodump: allow dumping items into mid-air, converting them into projectiles like gui/autodump does
- build-now: if suspendmanager is running, run an unsuspend cycle immediately before scanning for buildings to build
- gui/pathable: give edge tiles where wagons can enter the map a special highlight to make them more identifiable. this is especially useful when the game decides that only a portion of the map edge is usable by wagons.
- list-waves:
- now outputs the names of the dwarves in each migration wave
- can now display information about specific migration waves (e.g. list-waves 0 to identify your starting 7 dwarves)
Documentation
- improved docs for dfhack.units module functions
Removed
- The PRELOAD_LIB environment variable has been renamed to DF_PRELOAD to match the naming scheme of other environment variables used by the dfhack startup script. If you are preloading libraries (e.g. for performance testing) please define DF_PRELOAD instead of PRELOAD_LIB or LD_PRELOAD
- cuboid :: clamp(bool block): renamed to cuboid :: clampMap(bool block), name taken by cuboid :: clamp(cuboid other)
- Units :: getPhysicalDescription: function requires DF call point that is no longer available. alternative is to navigate the unit info sheet and extract the description from the UI (see markdown)
- Units :: MAX_COLORS, Units :: findIndexById, Units :: getNumUnits, Units :: getUnit: replaced by DFHack :: COLOR_MAX and the generated type-specific get_vector functions
API
- cuboid:
- construct from df :: map_block*, forBlock iterator to access map blocks in cuboid
- clamp(cuboid other), clampNew(cuboid other) for cuboid intersection. clampNew returns new cuboid instead of modifying.
- Items: no longer need to pass MapCache parameter to moveToGround, moveToContainer, moveToBuilding, moveToInventory, makeProjectile, or remove
- setAreaAquifer, removeAreaAquifer: add overloads that take cuboid range specifiers
- Units :: getCasteRaw: get a caste_raw from a unit or race and caste
- Units :: getProfessionName: bool land_title to append “of Sitename” where applicable, use Prisoner/Slave and noble spouse titles (controlled by ignore_noble)
- Units :: getProfession: account for units with fake identities
- Units :: getRaceChildName, getRaceChildNameById, getRaceBabyName, getRaceBabyNameById: bool plural to get plural form
- Units :: getReadableName: correct display of ghost+curse names w/r/t each other and unit prof, use curse.name instead of iterating syndrome name effects
- Units :: isDanger: added bool hiding_curse, passed to isUndead to avoid spoilers
- Units :: isNaked: now only checks equipped items (including rings, for now). Setting bool no_items to true checks empty inventory like before.
- Units :: isUndead: bool include_vamps renamed to hiding_curse. Fn now checks that instead of bloodsucker syndrome.
- Units :: isUnitInBox, getUnitsInBox: add versions that take a cuboid range, add filter fn parameter for getUnitsInBox
- Units :: isVisible: account for units in cages
- Units: add overloads that take historical figures for getReadableName, getVisibleName, and getProfessionName
Lua
- dfhack.items.moveToInventory: make use_mode and body_part args optional
- dfhack.units:
- allow historical figures to be passed instead of units for getReadableName, getVisibleName, and getProfessionName
- add getRaceReadableName, getRaceReadableNameById, getRaceNamePluralById
- gui.ZScreen: new defocused property for starting screens without keyboard focus
Structures
- world_site: rename is_mountain_halls and is_fortress to Bay12 names min_depth and max_depth
Download DFHack – Dwarf Fortress Modding Engine update 50.13-r4 on PC.