Releases: DFHack/dfhack
DFHack 0.43.05-beta2
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 conversiongui/workflow
: fixed range editing producing the wrong results for certain numbersmodtools/create-unit
: now uses non-English namesmodtools/item-trigger
: fixed errors with plant growthsremotefortressreader
: fixed a crash when serializing the local mapstockflow
: fixed an issue with non-integer manager order limitstitle-folder
: fixed compatibility issues with certain SDL libraries on macOS
Structures
- Added some missing renderer VTable addresses on macOS
entity.resources.organic
: identifiedparchment
entity_sell_category
: addedParchment
andCupsMugsGoblets
ui_advmode_menu
: addedBuild
ui_unit_view_mode
: addedPrefOccupation
unit_skill
: identifiednatural_skill_lvl
(wasunk_1c
)viewscreen_jobmanagementst
: identifiedmax_workshops
viewscreen_overallstatusst
: madevisible_pages
an enumviewscreen_pricest
: identified fieldsviewscreen_workquota_conditionst
: gave some fieldsunk
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()
anddfhack.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 bedsremotefortressreader
: added building items, DF version infostonesense
: Added support for 64-bit macOS and Linux
DFHack 0.43.05-beta1
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 thanhack/scripts
, when applicablemodtools/create-unit
: stopped permanently overwriting the creature creation
menu in arena modeseason-palette
: fixed an issue where only part of the screen was redrawn
after changing the color schemetitle-version
: now hidden when loading an arena
Structures
file_compressorst
: fixed field sizes on x64historical_entity
: fixed alignment on x64ui_sidebar_menus.command_line
: fixed field sizes on x64viewscreen_choose_start_sitest
: added 3 missing fields, renamedin_embark_only_warning
viewscreen_layer_arena_creaturest
: identified more fieldsworld.math
: identifiedworld.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
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 inbuildingplan
's planning mode, strange behavior in
the extendedstocks
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
fixessearch
,zone
, andforce
, 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 craftsmanipulator
: Custom professions are now sorted alphabetically more reliably
DFHack 0.43.05-alpha3
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 namesautofarm
: Made surface farms detect local biomedevel/export-dt-ini
: fixed squad_schedule_entry sizelabormanager
:- 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 listruby
:- 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 fieldsbuilding_def.build_key
: fixed size on 64-bit Linux and OS Xhistorical_kills
:unk_30
->killed_underground_region
unk_40
->killed_region
historical_kills.killed_undead
: removedskeletal
flagui_advmode
: aligned enough so that it doesn't crash (64-bit OS X/Linux)ui_advmode.show_menu
: changed from bool to enumunit_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. Setbitfield.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
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 caretakinglabormanager
(formerly autolabor2): a more advanced alternative toautolabor
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
andgui/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
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 caretakinglabormanager
(formerly autolabor2): a more advanced alternative toautolabor
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
andgui/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
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
argumentgui/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)
- Added ability to insert default types into containers. For primitive types leave the type entry empty, and for references use
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 seasoncombine-plants
: Fixed recursion into sub-containerscreateitem
: Now moves multiple created items to cursor correctlyexportlegends
: Improved handling of unknown enum items (fixes many errors)gui/create-item
: Fixed quality when creating multiple itemsgui/mod-manager
: Fixed error when mods folder doesn't existmodtools/item-trigger
: Fixed handling of items with subtypesstockflow
:- 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 pluginfix/diplomats
: replacesfixdiplomats
fix/merchants
: replacesfixmerchants
- Unified script documentation and in-terminal help options
Removed
tweak
manager-quantity: no longer needed
DFHack 0.43.03-alpha1
This is an alpha release for 0.43.03. Please try to figure out how to make it crash or act strangely and tell us how!
New things since 0.42.06:
Lua
- Label widgets can now easily register handlers for mouse clicks
New Features
gui/gm-editor
it's now possible to insert default types to containers. For primitive types leave the type entry empty, for references use*
.
Fixes
createitem
: Now moves multiple created items to cursor correctlyexportlegends
: Improved handling of unknown enum items (fixes many errors)gui/create-item
: Fixed quality when creating multiple itemsgui/mod-manager
: Fixed error when mods folder doesn't existmodtools/item-trigger
: Fixed handling of items with subtypes
Misc Improvements
catsplosion
: now a lua script instead of a pluginfix/diplomats
: replacesfixdiplomats
fix/merchants
: replacesfixmerchants
Removed
tweak
manager-quantity: no longer needed
DFHack 0.42.06-r1
This is our first stable release for the DF 0.42 series. Thanks to everyone that tested out the pre-releases and reported issues!
Note: This release has local documentation this time! We're still ironing out our build process for it, but it's in the hack/docs
folder. As always, it's also available online at https://dfhack.readthedocs.org/.
Linux note (mainly for people who've been avoiding pre-releases): The GCC 4.8 build should work out of the box now, without requiring libs/libstdc++.so.6 to be removed. It also avoids some weird compiler issues, so using it is recommended. GCC 4.5 builds may be available as well in case the GCC 4.8 builds still don't work.
Internals
-
Commands to run on startup can be specified on the command line with
+
Example:
./dfhack +devel/print-args example "Dwarf Fortress.exe" +devel/print-args example
-
Prevented plugins with active viewscreens from being unloaded and causing a crash
-
Additional script search paths can be specified in dfhack-config/script-paths.txt
Lua
building-hacks
now supportsauto_gears
flags. It automatically finds and animates gears in building definition- Changed how
eventful
triggers reaction complete. Now it hasonReactionComplete
andonReactionCompleting
. Second one can be canceled
New Plugins
autogems
: Creates a new Workshop Order setting, automatically cutting rough gems
New Scripts
devel/save-version
: Displays DF version information about the current savemodtools/extra-gamelog
: replaceslog-region
,soundsense-season
, andsoundsense
New Features
buildingplan
: Support for floodgates, grates, and barscolonies
: newplace
subcommand and supports any vermin (default honey bees)confirm
: Added a confirmation for retiring locationsexportlegends
: Exports more information (poetic/musical/dance forms, written/artifact content, landmasses, extra histfig information, and more)search
: Support for new screens:- location occupation assignment
- civilization animal training knowledge
- animal trainer assignment
tweak
:tweak block-labors
: Prevents labors that can't be used from being toggledtweak hide-priority
: Adds an option to hide designation priority indicatorstweak title-start-rename
: Adds a safe rename option to the title screen "Start Playing" menu
zone
:- Added
unassign
subcommand - Added
only
option toassign
subcommand
- Added
Fixes
- Fixed a crash bug caused by the historical figures DFHack uses to store persistent data.
- More plugins should recognize non-dwarf citizens
- Fixed a possible crash from cloning jobs
- moveToBuilding() now sets flags for items that aren't a structural part of the building properly
autotrade
,stocks
: Made trading work when multiple caravans are present but only some can tradeconfirm
note-delete: No longer interferes with name entryexportlegends
: Handles entities without specific races, and a few other fixes for things new to v0.42fastdwarf
: Fixed a bug involving teleporting mothers but not the babies they're holding.gaydar
: Fixed text display on OS X/Linux and failure with soul-less creaturesmanipulator
:- allowed editing of non-dwarf citizens
- stopped ghosts and visitors from being editable
- fixed applying last custom profession
modtools/create-unit
: Stopped making units without civs historical figuresmodtools/force
:- Removed siege option
- Prevented a crash resulting from a bad civilization option
showmood
: Fixed name display on OS X/Linuxview-item-info
: Fixed density units
Misc Improvements
autochop
: Can now edit log minimum/maximum directly and remove limit entirelyautolabor
,autohauler
,manipulator
: Added support for new jobs/labors/skillscolonies
: now implemented by a scriptcreateitem
: Can now create items anywhere without specifying a unit, as long as a unit exists on the mapdevel/export-dt-ini
: Updated for 0.42.06devel/find-offsets
: Automated several more scansgui/gm-editor
: Now supports finding some items with a numeric ID (withi
)lua
: Now supports some built-in variables likegui/gm-editor
, e.g.unit
,screen
remotefortressreader
: Can now trigger keyboard eventsstockflow
: Now offers better control over individual craft jobsweather
: now implemented by a scriptzone
: colored output
Removed
- DFusion: legacy script system, obsolete or replaced by better alternatives
DFHack 0.42.06-beta1
Internals
-
Commands to run on startup can be specified on the command line with
+
Example::
./dfhack +devel/print-args example "Dwarf Fortress.exe" +devel/print-args example
-
Prevented plugins with active viewscreens from being unloaded and causing a crash
-
Additional script search paths can be specified in dfhack-config/script-paths.txt
Lua
building-hacks
now supportsauto_gears
flags. It automatically finds and animates gears in building definition- Changed how
eventful
triggers reaction complete. Now it hasonReactionComplete
andonReactionCompleting
. Second one can be canceled
New Plugins
autogems
: Creates a new Workshop Order setting, automatically cutting rough gems
New Scripts
devel/save-version
: Displays DF version information about the current savemodtools/extra-gamelog
: replaceslog-region
,soundsense-season
, andsoundsense
New Features
buildingplan
: Support for floodgates, grates, and barsconfirm
: Added a confirmation for retiring locationsexportlegends
: Exports more information (poetic/musical/dance forms, written/artifact content, landmasses, extra histfig information, and more)search
: Support for new screens:- location occupation assignment
- civilization animal training knowledge
- animal trainer assignment
tweak
:tweak block-labors
: Prevents labors that can't be used from being toggledtweak hide-priority
: Adds an option to hide designation priority indicatorstweak title-start-rename
: Adds a safe rename option to the title screen "Start Playing" menu
colonies
: newplace
subcommand and supports any vermin (default honey bees)
Fixes
- Fixed a crash bug caused by the historical figures DFHack uses to store persistent data.
- More plugins should recognize non-dwarf citizens
- Fixed a possible crash from cloning jobs
- moveToBuilding() now sets flags for items that aren't a structural part of the building properly
confirm
note-delete: No longer interferes with name entryexportlegends
: Handles entities without specific races, and a few other fixes for things new to v0.42fastdwarf
: Fixed a bug involving teleporting mothers but not the babies they're holding.gaydar
: Fixed text display on OS X/Linux and failure with soul-less creaturesmanipulator
:- allowed editing of non-dwarf citizens
- stopped ghosts and visitors from being editable
- fixed applying last custom profession
modtools/create-unit
: Stopped making units without civs historical figuresmodtools/force
:- Removed siege option
- Prevented a crash resulting from a bad civilization option
showmood
: Fixed name display on OS X/Linuxview-item-info
: Fixed density units
Misc Improvements
autochop
: Can now edit log minimum/maximum directly and remove limit entirelyautolabor
,autohauler
,manipulator
: Added support for new jobs/labors/skillscolonies
: now implemented by a scriptcreateitem
: Can now create items anywhere without specifying a unit, as long as a unit exists on the mapdevel/export-dt-ini
: Updated for 0.42.06devel/find-offsets
: Automated several more scanslua
: Now supports some built-in variables likegui/gm-editor
, e.g.unit
,screen
remotefortressreader
: Can now trigger keyboard eventsstockflow
: Now offers better control over individual craft jobsweather
: now implemented by a script
Removed
- DFusion: legacy script system, obsolete or replaced by better alternatives