Skip to content

Releases: DFHack/dfhack

DFHack 0.44.11-beta2

08 Jul 01:31

Choose a tag to compare

DFHack 0.44.11-beta2 Pre-release
Pre-release

Hopefully the Windows console won't shut itself down whenever it starts successfully now. There are also a few other quick bugfixes.

Note: due to Stonesense issues, this will be superseded by beta2.1. A Windows and macOS build are attached for now.

DFHack 0.44.11-beta2

Fixes

  • Windows: Fixed console failing to initialize
  • command-prompt: added support for commands that require a specific screen to be visible, e.g. spotclean
  • gui/workflow: fixed advanced constraint menu for crafts

API

  • Added Screen::Hide to temporarily hide screens, like command-prompt

DFHack 0.44.11-beta1

07 Jul 00:15

Choose a tag to compare

DFHack 0.44.11-beta1 Pre-release
Pre-release

This release contains some significant changes to the core and console. If you notice issues with the console or DF hanging in particular, please report them (along with anything else).

DFHack 0.44.11-beta1

Fixes

  • Fixed displayed names (from Units::getVisibleName) for units with identities
  • Fixed potential memory leak in Screen::show()
  • fix/dead-units: fixed script trying to use missing isDiplomat function

Misc Improvements

  • Console:

    • added support for multibyte characters on Linux/macOS
    • made the console exit properly when an interactive command is active (liquids, mode, tiletypes)
  • Made the DFHACK_PORT environment variable take priority over remote-server.json

  • Linux: added automatic support for GCC sanitizers in dfhack script

  • digfort: added better map bounds checking

  • dfhack-run: added support for port specified in remote-server.json, to match DFHack's behavior

  • remove-stress:

    • added support for -all as an alternative to the existing all argument for consistency
    • sped up significantly
    • improved output/error messages
    • now removes tantrums, depression, and obliviousness
  • ruby: sped up handling of onupdate events

API

  • New functions: Units::isDiplomat(unit)
  • Exposed Screen::zoom() to C++ (was Lua-only)

Internals

  • jsoncpp: updated to version 1.8.4 and switched to using a git submodule

Structures

  • history_event_entity_expels_hfst: added (new in 0.44.11)
  • history_event_site_surrenderedst: added (new in 0.44.11)
  • history_event_type: added SITE_SURRENDERED, ENTITY_EXPELS_HF (new in 0.44.11)
  • syndrome: identified a few fields
  • viewscreen_civlistst: fixed layout and identified many fields

Lua

  • Added printall_recurse to print tables and DF references recursively. It can be also used with ^ from the lua interpreter.
  • gui.widgets: List:setChoices clones choices for internal table changes

DFHack 0.44.11-alpha1

28 Jun 20:19

Choose a tag to compare

DFHack 0.44.11-alpha1 Pre-release
Pre-release

DFHack 0.44.11-alpha1

This is an initial release for 0.44.11 only. It hasn't been extensively tested, so use at your own risk, make backups of important saves, etc.

Structures

  • Dropped 0.44.10 support

  • Added support for automatically sizing arrays indexed with an enum

  • Removed stale generated CSV files and DT layouts from pre-0.43.05

  • announcement_type: new in 0.44.11: NEW_HOLDING, NEW_MARKET_LINK

  • breath_attack_type: added OTHER

  • historical_figure_info.relationships.list: added unk_3a-unk_3c fields at end

  • interface_key: added bindings new in 0.44.11

  • occupation_type: new in 0.44.11: MESSENGER

  • profession: new in 0.44.11: MESSENGER

  • ui_sidebar_menus:

    • unit.in_squad: renamed to unit.squad_list_opened, fixed location
    • unit: added expel_error and other unknown fields new in 0.44.11
    • hospital: added, new in 0.44.11
    • num_speech_tokens, unk_17d8: moved out of command_line to fix layout on x64
  • viewscreen_civlistst: added a few new fields (incomplete)

  • viewscreen_locationsst: identified edit_input

DFHack 0.44.10-r2

22 Jun 04:58

Choose a tag to compare

DFHack 0.44.10-r2

New Plugins

  • cxxrandom: exposes some features of the C++11 random number library to Lua

New Scripts

  • add-recipe: adds unknown crafting recipes to the player's civ
  • gui/stamper: allows manipulation of designations by transforms such as translations, reflections, rotations, and inversion

Fixes

  • Fixed many tools incorrectly using the dead unit flag (they should generally check flags2.killed instead)

  • Fixed many tools passing incorrect arguments to printf-style functions, including a few possible crashes (changelayer, follow, forceequip, generated-creature-renamer)

  • Fixed several bugs in Lua scripts found by static analysis (df-luacheck)

  • Fixed -g flag (GDB) in Linux dfhack script (particularly on x64)

  • autochop, autodump, autogems, automelt, autotrade, buildingplan, dwarfmonitor, fix-unit-occupancy, fortplan, stockflow: fix issues with periodic tasks not working for some time after save/load cycles

  • autogems:

    • stop running repeatedly when paused
    • fixed crash when furnaces are linked to same stockpiles as jeweler's workshops
  • autogems, fix-unit-occupancy: stopped running when a fort isn't loaded (e.g. while embarking)

  • autounsuspend: now skips planned buildings

  • ban-cooking: fixed errors introduced by kitchen structure changes in 0.44.10-r1

  • buildingplan, fortplan: stopped running before a world has fully loaded

  • deramp: fixed deramp to find designations that already have jobs posted

  • dig: fixed "Inappropriate dig square" announcements if digging job has been posted

  • fixnaked: fixed errors due to emotion changes in 0.44

  • remove-stress: fixed an error when running on soul-less units (e.g. with -all)

  • revflood: stopped revealing tiles adjacent to tiles above open space inappropriately

  • stockpiles: loadstock now sets usable and unusable weapon and armor settings

  • stocks: stopped listing carried items under stockpiles where they were picked up from

Misc Improvements

  • Added script name to messages produced by qerror() in Lua scripts

  • Fixed an issue in around 30 scripts that could prevent edits to the files (adding valid arguments) from taking effect

  • Linux: Added several new options to dfhack script: --remotegdb, --gdbserver, --strace

  • bodyswap: improved error handling

  • buildingplan: added max quality setting

  • caravan: documented (new in 0.44.10-alpha1)

  • deathcause: added "slaughtered" to descriptions

  • embark-assistant:

    • changed region interaction matching to search for evil rain, syndrome rain, and reanimation rather than interaction presence (misleadingly called evil weather), reanimation, and thralling
    • gave syndrome rain and reanimation wider ranges of criterion values
  • fix/dead-units: added a delay of around 1 month before removing units

  • fix/retrieve-units: now re-adds units to active list to counteract fix/dead-units

  • item-descriptions: fixed several grammatical errors

  • modtools/create-unit:

    • added quantity argument
    • now selects a caste at random if none is specified
  • mousequery:

    • migrated several features from TWBT's fork
    • added ability to drag with left/right buttons
    • added depth display for TWBT (when multilevel is enabled)
    • made shift+click jump to lower levels visible with TWBT
  • title-version: added version to options screen too

API

  • New functions (also exposed to Lua):

    • Units::isKilled()
    • Units::isActive()
    • Units::isGhost()
  • Removed Vermin module (unused and obsolete)

Internals

  • Added build option to generate symbols for large generated files containing df-structures metadata
  • Added fallback for YouCompleteMe database lookup failures (e.g. for newly-created files)
  • Improved efficiency and error handling in stl_vsprintf and related functions
  • jsoncpp: fixed constructor with long on Linux

Structures

  • incident_sub6_performance: identified some fields
  • item_body_component: fixed location of corpse_flags
  • job_handler: fixed static array layout
  • job_type: added is_designation attribute
  • unit_flags1: renamed dead to inactive to better reflect its use
  • unit_personality: fixed location of current_focus and undistracted_focus
  • unit_thought_type: added SawDeadBody (new in 0.44.10)

Lua

  • Added profiler module to measure lua performance
  • Enabled shift+cursor movement in WorkshopOverlay-derived screens

DFHack 0.44.10-r1

18 May 20:38

Choose a tag to compare

DFHack 0.44.10-r1

New Scripts

  • bodyswap: shifts player control over to another unit in adventure mode
  • devel/find-primitive: finds a primitive variable in memory
  • gui/autogems: a configuration UI for the autogems plugin

New Tweaks

  • tweak kitchen-prefs-all: adds an option to toggle cook/brew for all visible items in kitchen preferences
  • tweak stone-status-all: adds an option to toggle the economic status of all stones

Fixes

  • Lua: registered dfhack.constructions.designateRemove() correctly

  • Units::getAnyUnit(): fixed a couple problematic conditions and potential segfaults if global addresses are missing

  • exterminate: fixed documentation of this option

  • full-heal:

    • units no longer have a tendency to melt after being healed
    • healed units are no longer treated as patients by hospital staff
    • healed units no longer attempt to clean themselves unsuccessfully
    • wounded fliers now regain the ability to fly upon being healing
    • now heals suffocation, numbness, infection, spilled guts and gelding
  • liquids: fixed "range" command to default to 1 for dimensions consistently

  • modtools/create-unit:

    • creatures of the appropriate age are now spawned as babies or children where applicable
    • fix: civ_id is now properly assigned to historical_figure, resolving several hostility issues (spawned pets are no longer attacked by fortress military!)
    • fix: unnamed creatures are no longer spawned with a string of numbers as a first name
  • prospector: fixed crash due to invalid vein materials

  • search: fixed 4/6 keys in unit screen search

  • stockpiles: stopped sidebar option from overlapping with autodump

  • tweak block-labors: fixed two causes of crashes related in the v-p-l menu

  • tweak max-wheelbarrow: fixed conflict with building renaming

  • view-item-info:

    • fixed an error with some armor
    • stopped appending extra newlines permanently to descriptions

Misc Improvements

  • Added logo to documentation

  • Documented several missing dfhack.gui Lua functions

  • adv-rumors: bound to Ctrl-A

  • autogems: can now blacklist arbitrary gem types (see gui/autogems)

  • blueprint: added a basic Lua API

  • command-prompt: added support for Gui::getSelectedPlant()

  • devel/export-dt-ini: added tool offsets for DT 40

  • devel/save-version: added current DF version to output

  • exterminate: added more words for current unit, removed warning

  • fpause: now pauses worldgen as well

  • gui/advfort: bound to Ctrl-T

  • gui/room-list: added support for Gui::getSelectedBuilding()

  • gui/unit-info-viewer: bound to Alt-I

  • install-info: added information on tweaks

  • modtools/create-unit: made functions available to other scripts

  • search:

    • added support for stone restrictions screen (under z: Status)
    • added support for kitchen preferences (also under z)

API

  • New functions (all available to Lua as well):

    • Buildings::getRoomDescription()
    • Items::checkMandates()
    • Items::canTrade()
    • Items::canTradeWithContents()
    • Items::isRouteVehicle()
    • Items::isSquadEquipment()
    • Kitchen::addExclusion()
    • Kitchen::findExclusion()
    • Kitchen::removeExclusion()
  • syndrome-util: added eraseSyndromeData()

Internals

  • Added function names to DFHack's NullPointer and InvalidArgument exceptions
  • Added some build scripts for Sublime Text
  • Added Gui::inRenameBuilding()
  • Changed submodule URLs to relative URLs so that they can be cloned consistently over different protocols (e.g. SSH)
  • Fixed compiler warnings on all supported build configurations
  • Linux: required plugins to have symbols resolved at link time, for consistency with other platforms
  • Windows build scripts now work with non-C system drives

Structures

  • dfhack_room_quality_level: new enum
  • glowing_barrier: identified triggered, added comments
  • item_flags2: renamed has_written_content to unk_book
  • kitchen_exc_type: new enum (for ui.kitchen)
  • mandate.mode: now an enum
  • unit_personality.emotions.flags.memory: identified
  • viewscreen_kitchenprefst.forbidden, possible: now a bitfield, kitchen_pref_flag
  • world_data.feature_map: added extensive documentation (in XML)

DFHack 0.44.10-beta1

12 May 04:13

Choose a tag to compare

DFHack 0.44.10-beta1 Pre-release
Pre-release

This release includes a couple fixes for crashes related to the v-p-l menu, as well as various other fixes (some for longstanding issues).

DFHack 0.44.10-beta1

New Scripts

  • devel/find-primitive: finds a primitive variable in memory

Fixes

  • Units::getAnyUnit(): fixed a couple problematic conditions and potential segfaults if global addresses are missing

  • stockpiles: stopped sidebar option from overlapping with autodump

  • autodump, automelt, autotrade, stocks, stockpiles: fixed conflict with building renaming

  • tweak block-labors: fixed two causes of crashes related in the v-p-l menu

  • full-heal:

    • units no longer have a tendency to melt after being healed
    • healed units are no longer treated as patients by hospital staff
    • healed units no longer attempt to clean themselves unsuccessfully
    • wounded fliers now regain the ability to fly upon being healing
    • now heals suffocation, numbness, infection, spilled guts and gelding
  • modtools/create-unit:

    • creatures of the appropriate age are now spawned as babies or children where applicable
    • fix: civ_id is now properly assigned to historical_figure, resolving several hostility issues (spawned pets are no longer attacked by fortress military!)
    • fix: unnamed creatures are no longer spawned with a string of numbers as a first name
  • exterminate: fixed documentation of this option

Misc Improvements

  • blueprint: added a basic Lua API
  • devel/export-dt-ini: added tool offsets for DT 40
  • devel/save-version: added current DF version
  • install-info: added information on tweaks

Internals

  • Added Gui::inRenameBuilding()
  • Added function names to DFHack's NullPointer and InvalidArgument exceptions
  • Linux: required plugins to have symbols resolved at link time, for consistency with other platforms

Structures

  • item_flags2: renamed has_written_content to unk_book
  • world_data.feature_map: added documentation (in XML)

DFHack 0.44.10-alpha1

07 May 04:36

Choose a tag to compare

DFHack 0.44.10-alpha1 Pre-release
Pre-release

New Scripts

  • gui/autogems: a configuration UI for the autogems plugin

Fixes

  • liquids: fixed "range" command to default to 1 for dimensions consistently
  • search: fixed 4/6 keys in unit screen search
  • view-item-info: fixed an error with some armor

Misc Improvements

  • autogems: can now blacklist arbitrary gem types (see gui/autogems)
  • exterminate: added more words for current unit, removed warning
  • fpause: now pauses worldgen as well

Internals

  • Added some build scripts for Sublime Text
  • Changed submodule URLs to relative URLs so that they can be cloned consistently over different protocols (e.g. SSH)

DFHack 0.44.09-r1

05 Apr 05:05

Choose a tag to compare

Note: there are new builds for OS X that use GCC 7. Let us know if they work, or if they don't (and if they don't, what version of OS X you're using). As a fallback, we still have builds available made with GCC 4.8.

Fixes

  • Fixed some CMake warnings (CMP0022)
  • Support for building on Ubuntu 18.04
  • digtype: stopped designating non-vein tiles (open space, trees, etc.)
  • embark-assistant: fixed detection of reanimating biomes
  • fix/dead-units: fixed a bug that could remove some arriving (not dead) units
  • labormanager: fixed crash due to dig jobs targeting some unrevealed map blocks
  • modtools/item-trigger: fixed token format in help text

Misc Improvements

  • Reorganized changelogs and improved changelog editing process

  • embark-assistant:

    • Added search for adamantine
    • Now supports saving/loading profiles
  • fillneeds: added -all option to apply to all units

  • modtools/item-trigger:

    • added the ability to specify inventory mode(s) to trigger on
    • added support for multiple type/material/contaminant conditions
  • remotefortressreader: added flows, instruments, tool names, campfires, ocean waves, spiderwebs

Internals

  • OS X: Can now build with GCC 7 (or older)

Structures

  • Several new names in instrument raw structures

  • army: added vector new in 0.44.07

  • building_type: added human-readable name attribute

  • furnace_type: added human-readable name attribute

  • identity: identified profession, civ

  • manager_order_template: fixed last field type

  • site_reputation_report: named reports vector

  • viewscreen_createquotast: fixed layout

  • workshop_type: added human-readable name attribute

  • world.language: moved colors, shapes, patterns to world.descriptors

  • world.reactions, world.reaction_categories: moved to new compound, world.reactions. Requires renaming:

    • world.reactions to world.reactions.reactions
    • world.reaction_categories to world.reactions.reaction_categories

DFHack 0.44.09-alpha1

02 Apr 05:40

Choose a tag to compare

DFHack 0.44.09-alpha1 Pre-release
Pre-release

Experimental 0.44.09 support (also 0.44.08 and 0.44.07)
Please let us know of anything that works or is broken in the forum thread

Fixes

  • digtype: stopped designating non-vein tiles (open space, trees, etc.)
  • labormanager: fixed crash due to dig jobs targeting some unrevealed map blocks

DFHack 0.44.08-alpha1

29 Mar 18:01

Choose a tag to compare

DFHack 0.44.08-alpha1 Pre-release
Pre-release

This has very experimental 0.44.08 support (and still supports 0.44.07 as well, although that's subject to change).

Fixes

  • fix/dead-units: fixed a bug that could remove some arriving (not dead) units