Skip to content

Releases: DFHack/dfhack

DFHack 0.43.05-r3.1

23 Nov 22:02

Choose a tag to compare

DFHack 0.43.05-r3.1

This is a final release for 0.43.05 (not 0.44.x!) with some fixes since 0.43.05-r2.

Note: If you previously downloaded 0.43.05-r3, the only change in r3.1 is the "scripts" folder. You can download one of the "new-scripts" archives below and replace your scripts folder with its contents.

Internals

Fixes

  • Linux: fixed argument to setarch in the dfhack launcher script

  • Ruby: fixed an error that occurred when the DF path contained an apostrophe

  • diggingInvaders now compiles again and is included

  • labormanager:

    • stopped waiting for on-duty military dwarves with minor injuries to obtain care
    • stopped waiting for meetings when participant(s) are dead
    • fixed a crash for dwarves with no cultural identity
  • luasocket: fixed receive() with a byte count

  • orders: fixed an error when importing orders with material categories

  • siren: fixed an error

  • stockpiles: fixed serialization of barrel and bin counts

  • view-item-info: fixed a CHEESE_MAT-related error

Misc Improvements

  • devel/export-dt-ini: added more offsets for new DT versions

  • digfort: added support for changing z-levels

  • exportlegends: suppressed ABSTRACT_BUILDING warning

  • gui/dfstatus: excluded logs in constructions

  • labormanager:

    • stopped assigning woodcutting jobs to elves
    • "recover wounded" jobs now weighted based on altruism
  • remotefortressreader: added support for buildings, grass, riders, and
    hair/beard styles

DFHack 0.43.05-r2

13 Jul 03:14

Choose a tag to compare

DFHack 0.43.05-r2

Internals

  • Rebuilding DFHack can be faster if nothing Git-related has changed
  • Plugins can now hook Screen::readTile()
  • Improved Lua compatibility with plugins that hook into GUI functions (like TWBT)
  • Expanded focus strings for jobmanagement and workquota_condition viewscreens
  • Gui::getAnyUnit(): added support for viewscreen_unitst,
    viewscreen_textviewerst, viewscreen_layer_unit_relationshipst
  • Fixed (limited) keybinding support in PRINT_MODE:TEXT on macOS
  • Added a new standardized Gui::refreshSidebar() function to fix behavior of
    some plugins on the lowest z-level
  • New Buildings module functions: markedForRemoval(), getCageOccupants()
  • Limited recursive command invocations to 20 to prevent crashes
  • Added an onLoad.init-example file

Lua

  • Improved C++ exception handling for some native functions that aren't direct
    wrappers around C++ functions (in this case, error messages could be nil and
    cause the Lua interpreter to quit)

  • Added support for a key_pen option in Label widgets

  • Fixed to_first argument to dfhack.screen.dismiss()

  • Added optional map parameters to some screen functions

  • Exposed some more functions to Lua:

    • dfhack.gui.refreshSidebar()
    • dfhack.gui.getAnyUnit()
    • dfhack.gui.getAnyBuilding()
    • dfhack.gui.getAnyItem()
    • dfhack.gui.getAnyPlant()
    • dfhack.gui.getDepthAt()
    • dfhack.units.getUnitsInBox()
    • dfhack.units.isVisible()
    • dfhack.maps.isTileVisible()
    • dfhack.buildings.markedForRemoval()
    • dfhack.buildings.getCageOccupants()
    • dfhack.internal.md5()
    • dfhack.internal.md5File()
    • dfhack.internal.threadid()
  • New function: widgets.Pages:getSelectedPage()

  • Added a key option to EditField and FilteredList widgets

  • Fixed an issue preventing repeatUtil.cancel() from working when called
    from the callback

Ruby

  • Fixed a crash when creating new instances of DF virtual classes (e.g. fixes a
    lever crash)
  • Ruby scripts can now be loaded from any script paths specified (from script-
    paths.txt or registered through the Lua API)
  • unit_find() now uses Gui::getSelectedUnit() and works in more places
    (e.g. exterminate now works from more screens, like command-prompt)

New Internal Commands

  • alias: allows configuring aliases for other commands

New Plugins

  • orders: Manipulate manager orders
  • pathable: Back-end for gui/pathable

New Scripts

  • clear-smoke: Removes all smoke from the map
  • empty-bin: Empty a bin onto the floor
  • fix/retrieve-units: Spawns stuck invaders/guests
  • fix/stuck-merchants: Dismisses stuck merchants that haven't entered the map yet
  • gui/pathable: View whether tiles on the map can be pathed to
  • gui/teleport: A front-end for the teleport script
  • warn-stuck-trees: Detects citizens stuck in trees

New Tweaks

  • tweak burrow-name-cancel: Implements the "back" option when renaming a
    burrow, which currently does nothing (bug 1518)
  • tweak cage-butcher: Adds an option to butcher units when viewing cages with "q"

Fixes

  • Enforced use of stdout.log and stderr.log (instead of their .txt
    counterparts) on Windows

  • Fixed getItemBaseValue() for cheese, sheets and instruments

  • Fixed alignment in:

    • viewscreen_choose_start_sitest
    • viewscreen_export_graphical_mapst
    • viewscreen_setupadventurest
    • viewscreen_setupdwarfgamest
  • adv-max-skills: fixed error due to viewscreen changes

  • autolabor: fixed a crash when assigning haulers while traders are active

  • buildingplan: fixed an issue that prevented certain numbers from being used
    in building names

  • confirm:

    • dialogs are now closed permanently when disabled from the settings UI
    • fixed an issue that could have prevented closing dialogs opened by pressing "s"
  • embark-tools: stopped the sand indicator from overlapping dialogs

  • exportlegends: fixed some crashes and site map issues

  • devel/find-offsets: fixed current_weather scan

  • gui/extended-status: fixed an error when no beds are available

  • gui/family-affairs: fixed issues with assigning lovers

  • gui/gm-editor:

    • made keybinding display order consistent
    • stopped keys from performing actions in help screen
  • gui/manager-quantity:

    • now allows orders with a limit of 0
    • fixed screen detection
  • gui/mechanisms, gui/room-list: fixed an issue when recentering the map when exiting

  • lever: prevented pulling non-lever buildings, which can cause crashes

  • markdown: fixed file encoding

  • modtools/create-unit:

    • fixed when popup announcements are present
    • added checks to ensure that the current game mode is restored
  • resume: stopped drawing on the map border

  • show-unit-syndromes: fixed an error when handling some syndromes

  • strangemood: fixed some issues with material searches

  • view-item-info: fixed a color-related error for some materials

Misc Improvements

  • Docs: prevented automatic hyphenation in some browsers, which was producing
    excessive hyphenation sometimes

  • command-prompt: invoking command-prompt a second time now hides the prompt

  • gui/extended-status: added an option to assign/replace the manager

  • gui/load-screen:

    • adjusted dialog width for long folder names
    • added modification times and DF versions to dialog
  • gui/mechanisms, gui/room-list, gui/siege-engine: add and list "exit to map" options

  • lever: added support for pulling levers at high priority

  • markdown: now recognizes -n in addition to /n

  • remotefortressreader: more data exported, used by Armok Vision v0.17.0

  • resume, siege-engine: improved compatibility with GUI-hooking plugins (like TWBT)

  • sc-script: improved help text

  • teleport: can now be used as a module

  • tweak embark-profile-name: now enabled in dfhack.init-example

  • tweak hotkey-clear: fixed display on larger screens

DFHack 0.43.05-r1

14 May 03:21

Choose a tag to compare

(See below for downloads)

Internals

  • 64-bit support on all platforms
  • Several structure fixes to match 64-bit DF's memory layout
  • Added DFHack::Job::removeJob() function
  • New module: Designations - handles designation creation (currently for plants only)
  • Added Gui::getSelectedPlant()
  • Added Units::getMainSocialActivity(), Units::getMainSocialEvent()
  • Visual Studio 2015 now required to build on Windows instead of 2010
  • GCC 4.8 or newer required to build on Linux and OS X (and now supported on OS X)
  • Updated TinyXML from 2.5.3 to 2.6.2
  • Added the ability to download files manually before building

Lua

  • Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details

    • Floats are no longer implicitly converted to integers in DFHack API calls
  • df.new() supports more types: char, intptr_t, uintptr_t, long, unsigned long

  • String representations of vectors and a few other containers now include their lengths

  • Added a tile-material module

  • Added a Painter:key_string() method

  • Made dfhack.gui.revealInDwarfmodeMap() available

Ruby

  • Added support for loading ruby 2.x libraries

New Plugins

  • dwarfvet enables animal caretaking
  • generated-creature-renamer: Renames generated creature IDs for use with graphics packs
  • labormanager (formerly autolabor2): a more advanced alternative to autolabor
  • misery: re-added and updated for the 0.4x series
  • title-folder: shows DF folder name in window title bar when enabled

New Scripts

  • adv-rumors: improves the "Bring up specific incident or rumor" menu in adventure mode
  • fix/tile-occupancy: Clears bad occupancy flags on the selected tile.
  • install-info: Logs basic troubleshooting information about the current DFHack installation
  • load-save: loads a save non-interactively
  • modtools/change-build-menu: Edit the build mode sidebar menus
  • modtools/if-entity: Run a command if the current entity matches a given ID
  • season-palette: Swap color palettes with the changes of the seasons
  • unforbid: Unforbids all items

New Tweaks

  • tweak condition-material <tweak>: fixes a crash in the work order condition material list
  • tweak hotkey-clear <tweak>: adds an option to clear bindings from DF hotkeys

Fixes

  • The DF path on OS X can now contain spaces and : characters

  • Buildings::setOwner() changes now persist properly when saved

  • ls now lists scripts in folders other than hack/scripts, when applicable

  • Fixed plug output alignment for plugins with long names

  • add-thought: fixed support for emotion names

  • autochop:

    • fixed several issues with job creation and removal
    • stopped designating the center tile (unreachable) for large trees
    • stopped options from moving when enabling and disabling burrows
    • fixed display of unnamed burrows
  • devel/find-offsets: fixed a crash when vtables used by globals aren't available

  • getplants:

    • fixed several issues with job creation and removal
    • stopped designating the center tile (unreachable) for large trees
  • gui/workflow: added extra keybinding to work with gui/extended-status

  • manipulator:

    • Fixed crash when selecting a profession from an empty list
    • Custom professions are now sorted alphabetically more reliably
  • modtools/create-item:

    • made gloves usable by specifying handedness
    • now creates pairs of boots and gloves
  • modtools/create-unit:

    • stopped permanently overwriting the creature creation menu in arena mode
    • now uses non-English names
    • added -setUnitToFort option to make a unit a civ/group member more easily
    • fixed some issues where units would appear in unrevealed areas of the map
  • modtools/item-trigger: fixed errors with plant growths

  • remotefortressreader: fixed a crash when serializing the local map

  • ruby: fixed a crash when unloading the plugin on Windows

  • stonesense: disabled overlay in STANDARD-based print modes to prevent crashes

  • title-version: now hidden when loading an arena

Misc Improvements

  • Documented all default keybindings (from :file:dfhack.init-example) in the
    docs for the relevant commands; updates enforced by build system.

  • autounsuspend: reduced update frequency to address potential performance issues

  • gui/extended-status: added a feature to queue beds

  • lua and gui/gm-editor now support the same aliases (scr, unit, etc.)

  • manipulator: added social activities to job column

  • remotefortressreader: Added support for

    • world map snow coverage
    • spatters
    • wall info
    • site towers, world buildings
    • surface material
    • building items
    • DF version info
  • title-version: Added a prerelease indicator

  • workflow: Re-added Alt-W keybindings

DFHack 0.43.05-beta2

24 Apr 01:45

Choose a tag to compare

DFHack 0.43.05-beta2 Pre-release
Pre-release

This release adds 64-bit Stonesense support on all platforms, plus a few new tweaks and other fixes.

Fixes

  • Fixed Buildings::updateBuildings(), along with building creation/deletion events
  • Fixed plug output alignment for plugins with long names
  • Fixed a crash that happened when a LUA_PATH environment variable was set
  • add-thought: fixed number conversion
  • gui/workflow: fixed range editing producing the wrong results for certain numbers
  • modtools/create-unit: now uses non-English names
  • modtools/item-trigger: fixed errors with plant growths
  • remotefortressreader: fixed a crash when serializing the local map
  • stockflow: fixed an issue with non-integer manager order limits
  • title-folder: fixed compatibility issues with certain SDL libraries on macOS

Structures

  • Added some missing renderer VTable addresses on macOS
  • entity.resources.organic: identified parchment
  • entity_sell_category: added Parchment and CupsMugsGoblets
  • ui_advmode_menu: added Build
  • ui_unit_view_mode: added PrefOccupation
  • unit_skill: identified natural_skill_lvl (was unk_1c)
  • viewscreen_jobmanagementst: identified max_workshops
  • viewscreen_overallstatusst: made visible_pages an enum
  • viewscreen_pricest: identified fields
  • viewscreen_workquota_conditionst: gave some fields unk names

API Changes

  • Allowed the Lua API to accept integer-like floats and strings when expecting an integer
  • Lua: New Painter:key_string() method
  • Lua: Added dfhack.getArchitecture() and dfhack.getArchitectureName()

Additions/Removals:

  • Added adv-rumors script: improves the "Bring up specific incident or rumor" menu in adventure mode
  • Added install-info script for basic troubleshooting
  • Added tweak condition-material: fixes a crash in the work order condition material list
  • Added tweak hotkey-clear: adds an option to clear bindings from DF hotkeys
  • autofarm: reverted local biome detection (from 0.43.05-alpha3)

Other Changes

  • Added a DOWNLOAD_RUBY CMake option, to allow use of a system/external ruby library
  • Added the ability to download files manually before building
  • gui/extended-status: added a feature to queue beds
  • remotefortressreader: added building items, DF version info
  • stonesense: Added support for 64-bit macOS and Linux

DFHack 0.43.05-beta1

12 Feb 01:57

Choose a tag to compare

DFHack 0.43.05-beta1 Pre-release
Pre-release

This build fixes some structure issues and related crashes.

DFHack 0.43.05-beta1

Fixes

  • Fixed various crashes on 64-bit Windows related to DFHack screens, notably manipulator
  • Fixed addresses of next_id globals on 64-bit Linux (fixes an automaterial/box-select crash)
  • ls now lists scripts in folders other than hack/scripts, when applicable
  • modtools/create-unit: stopped permanently overwriting the creature creation
    menu in arena mode
  • season-palette: fixed an issue where only part of the screen was redrawn
    after changing the color scheme
  • title-version: now hidden when loading an arena

Structures

  • file_compressorst: fixed field sizes on x64
  • historical_entity: fixed alignment on x64
  • ui_sidebar_menus.command_line: fixed field sizes on x64
  • viewscreen_choose_start_sitest: added 3 missing fields, renamed in_embark_only_warning
  • viewscreen_layer_arena_creaturest: identified more fields
  • world.math: identified
  • world.murky_pools: identified

Additions/Removals

  • generated-creature-renamer: Renames generated creature IDs for use with graphics packs

Other Changes

  • title-version: Added a prerelease indicator

DFHack 0.43.05-alpha4

29 Dec 21:02

Choose a tag to compare

DFHack 0.43.05-alpha4 Pre-release
Pre-release

This build fixes some strange behavior with buildingplan and several other tools on all platforms, as well as a number of broken tools due to missing globals on 64-bit Linux.

Fixes

  • Fixed an issue with uninitialized bitfields that was causing several issues
    (disappearing buildings in buildingplan's planning mode, strange behavior in
    the extended stocks screen, and likely other problems). This issue was
    introduced in 0.43.05-alpha3.
  • stockflow: Fixed an "integer expected" error

Structures

  • Located several globals on 64-bit Linux: flows, timed_events, ui_advmode,
    ui_building_assign_type, ui_building_assign_is_marked,
    ui_building_assign_units, ui_building_assign_items, and ui_look_list. This
    fixes search, zone, and force, among others.
  • ui_sidebar_menus: Fixed some x64 alignment issues

Additions/Removals

  • Added fix/tile-occupancy: Clears bad occupancy flags on the selected tile.
    Useful for fixing blocked tiles introduced by the above buildingplan issue.
  • Added a Lua tile-material module

Other Changes

  • labormanager: Add support for shell crafts
  • manipulator: Custom professions are now sorted alphabetically more reliably

DFHack 0.43.05-alpha3

14 Dec 19:13

Choose a tag to compare

DFHack 0.43.05-alpha3 Pre-release
Pre-release

This release has many issues and has been superseded by 0.43.05-alpha4. Using this version is discouraged. The builds below above may break your save.

This release fixes some crashes, notably a Ruby crash on 64-bit Windows and a labormanager crash on 64-bit OS X and Linux. There are also some structure fixes. Please continue reporting issues in this build.

Changes since 0.43.05-alpha2 (note that this is since the last alpha release, not the last stable one for 0.43.03):

Fixes

  • add-thought: fixed support for emotion names
  • autofarm: Made surface farms detect local biome
  • devel/export-dt-ini: fixed squad_schedule_entry size
  • labormanager:
    • Now accounts for unit attributes
    • Made instrument-building jobs work (constructed instruments)
    • Fixed deconstructing constructed instruments
    • Fixed jobs in bowyer's shops
    • Fixed trap component jobs
    • Fixed multi-material construction jobs
    • Fixed deconstruction of buildings containing items
    • Fixed interference caused by "store item in vehicle" jobs
  • manipulator: Fixed crash when selecting a profession from an empty list
  • ruby:
    • Fixed crash on Win64 due to truncated global addresses
    • Fixed compilation on Win64
    • Use correct raw string length with encodings

Structures

  • Changed many comment XML attributes with version numbers to use new
    since attribute instead
  • activity_event_conflictst.sides: named many fields
  • building_def.build_key: fixed size on 64-bit Linux and OS X
  • historical_kills:
    • unk_30 -> killed_underground_region
    • unk_40 -> killed_region
  • historical_kills.killed_undead: removed skeletal flag
  • ui_advmode: aligned enough so that it doesn't crash (64-bit OS X/Linux)
  • ui_advmode.show_menu: changed from bool to enum
  • unit_personality.emotions.flags: now a bitfield

API Changes

  • Added DFHack::Job::removeJob() function
  • C++: Removed bitfield constructors that take an initial value. These kept
    bitfields from being used in unions. Set bitfield.whole directly instead.
  • Lua: bitfield.whole now returns an integer, not a decimal

Additions/Removals

  • Removed source for treefarm plugin (wasn't built)
  • Added modtools/change-build-menu: Edit the build mode sidebar menus
  • Added modtools/if-entity: Run a command if the current entity matches a
    given ID
  • Added season-palette: Swap color palettes with the changes of the seasons

Other changes

  • Changed minimum GCC version to 4.8 on OS X and Linux (earlier versions
    wouldn't have worked on Linux anyway)
  • Updated TinyXML from 2.5.3 to 2.6.2

This release has many issues and has been superseded by 0.43.05-alpha4. Using this version is discouraged. The builds below may break your save.

DFHack 0.43.05-alpha2

23 Nov 03:35

Choose a tag to compare

DFHack 0.43.05-alpha2 Pre-release
Pre-release

This release is hopefully more stable than 0.43.05-alpha1. There have been some structure fixes, including one that was causing an exportlegends crash. Also, Ruby should work on all platforms and architectures now. This has not been tested as extensively, so please pay special attention to any problems you find with Ruby scripts and report them.

Update: there is a fairly common Ruby crash on 64-bit Windows. Also, Stonesense is not included.

The following changelog consists of changes since 0.43.03-r1:

Internals

  • 64-bit support on all platforms
  • Visual Studio 2015 now required on Windows instead of 2010
  • GCC 4.8 recommended on Linux and OS X (and now supported on OS X)
  • Several structure fixes to match 64-bit DF's memory layout

Lua

  • Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details
    • Floats are no longer implicitly converted to integers in DFHack API calls
  • df.new() supports more types: char, intptr_t, uintptr_t, long, unsigned long
  • String representations of vectors and a few other containers now include their lengths

Ruby

  • Added support for loading ruby 2.x libraries
  • Fixed some layouts on x64 (incomplete)

New Plugins

  • dwarfvet enables animal caretaking
  • labormanager (formerly autolabor2): a more advanced alternative to autolabor
  • title-folder: shows DF folder name in window title bar when enabled

New Scripts

  • load-save: loads a save non-interactively

Fixes

  • The DF path on OS X can now contain spaces and : characters
  • Buildings::setOwner() changes now persist properly when saved
  • devel/find-offsets: fixed a crash when vtables used by globals aren't available

Misc Improvements

  • Documented all default keybindings (from dfhack.init-example) in the
    docs for the relevant commands; updates enforced by build system.
  • lua and gui/gm-editor now support the same aliases (scr, unit, etc.)
  • remotefortressreader: Added support for
    • world map snow coverage
    • spatters
    • wall info
    • site towers, world buildings
    • surface material

DFHack 0.43.05-alpha1

16 Oct 00:51

Choose a tag to compare

DFHack 0.43.05-alpha1 Pre-release
Pre-release

This release has some support for 0.43.05. 32-bit support should be about as good as it was in 0.43.03, while 64-bit support is somewhat more experimental. Please report issues that you encounter. It's especially helpful if you can try to reproduce them with both 32-bit and 64-bit DFHack.

Important: Some alpha releases in the past have been stable. This is most likely not one of them. It's intended primarily for people to help test and find issues.

The following things are known to be missing or possibly broken, so please don't report them if they are:

  • Ruby
  • Stonesense
  • Some offsets (although do report any crashes that occur as a result)

Changelog since 0.43.03-r1:

Internals

  • 64-bit support on all platforms
  • Visual Studio 2015 now required on Windows instead of 2010
  • GCC 4.8 recommended on Linux and OS X (and now supported on OS X)
  • Several structure fixes to match 64-bit DF's memory layout

Lua

  • Lua has been updated to 5.3 - see http://www.lua.org/manual/5.3/readme.html for details
    • Floats are no longer implicitly converted to integers in DFHack API calls
  • df.new() supports more types: char, intptr_t, uintptr_t, long, unsigned long
  • String representations of vectors and a few other containers now include their lengths

Ruby

  • Added support for loading ruby 2.x libraries
  • Fixed some layouts on x64 (incomplete)

New Plugins

  • dwarfvet enables animal caretaking
  • labormanager (formerly autolabor2): a more advanced alternative to autolabor
  • title-folder: shows DF folder name in window title bar when enabled

New Scripts

  • load-save: loads a save non-interactively

Fixes

  • The DF path on OS X can now contain spaces and : characters
  • Buildings::setOwner() changes now persist properly when saved
  • devel/find-offsets: fixed a crash when vtables used by globals aren't available

Misc Improvements

  • lua and gui/gm-editor now support the same aliases (scr, unit, etc.)
  • remotefortressreader: Added support for
    • world map snow coverage
    • spatters
    • wall info
    • site towers, world buildings
    • surface material

DFHack 0.43.03-r1

07 Jul 02:32

Choose a tag to compare

This is a release for 0.43.03 (not 0.43.04, 0.43.05, or anything newer - support for those is in progress, but likely to take longer than usual, so we decided to make a release for 0.43.03 in the meantime). Please do let us know about any issues - we can always make another 0.43.03 release, even if support for newer versions isn't done.

Changes since 0.42.06:

Lua

  • Label widgets can now easily register handlers for mouse clicks

New Features

  • add-thought: allow syndrome name as -thought argument
  • gui/gm-editor
    • Added ability to insert default types into containers. For primitive types leave the type entry empty, and for references use *.
    • Added shift-esc binding to fully exit from editor
    • Added gui/gm-editor toggle command to toggle editor visibility (saving position)
  • modtools/create-unit:
    • Added an option to attach units to an existing wild animal population
    • Added an option to attach units to a map feature

Fixes

  • autofarm: Can now handle crops that grow for more than a season
  • combine-plants: Fixed recursion into sub-containers
  • createitem: Now moves multiple created items to cursor correctly
  • exportlegends: Improved handling of unknown enum items (fixes many errors)
  • gui/create-item: Fixed quality when creating multiple items
  • gui/mod-manager: Fixed error when mods folder doesn't exist
  • modtools/item-trigger: Fixed handling of items with subtypes
  • stockflow:
    • Can order metal mechanisms
    • Fixed material category of thread-spinning jobs

Misc Improvements

  • The built-in ls command now wraps the descriptions of commands
  • catsplosion: now a lua script instead of a plugin
  • fix/diplomats: replaces fixdiplomats
  • fix/merchants: replaces fixmerchants
  • Unified script documentation and in-terminal help options

Removed

  • tweak manager-quantity: no longer needed