Changelog¶
Contents
DFHack 0.44.05-r1¶
New Scripts¶
- break-dance: Breaks up a stuck dance activity
- cannibalism: Allows consumption of sapient corpses
- devel/check-other-ids: Checks the validity of “other” vectors in the
world
global - fillneeds: Use with a unit selected to make them focused and unstressed
- firestarter: Lights things on fire: items, locations, entire inventories even!
- flashstep: Teleports adventurer to cursor
- ghostly: Turns an adventurer into a ghost or back
- gui/cp437-table: An in-game CP437 table
- questport: Sends your adventurer to the location of your quest log cursor
- view-unit-reports: opens the reports screen with combat reports for the selected unit
Fixes¶
Fixed issues with the console output color affecting the prompt on Windows
createitem: stopped items from teleporting away in some forts
devel/inject-raws: now recognizes spaces in reaction names
dig: added support for designation priorities - fixes issues with designations from
digv
and related commands having extremely high priority-
- fixed display of creatures and poetic/music/dance forms on
prefs
screen - added “view unit” option
- now exposes the selected unit to other tools
- fixed display of creatures and poetic/music/dance forms on
gui/gm-unit: can now edit mining skill
gui/quickcmd: stopped error from adding too many commands
names: fixed many errors
quicksave: fixed an issue where the “Saving…” indicator often wouldn’t appear
Misc Improvements¶
The console now provides suggestions for built-in commands
binpatch: now reports errors for empty patch files
devel/export-dt-ini: avoid hardcoding flags
-
- reordered some tags to match DF’s order
- added progress indicators for exporting long lists
force: now provides useful help
-
- can now select corpses to resurrect
- now resets body part temperatures upon resurrection to prevent creatures from freezing/melting again
- now resets units’ vanish countdown to reverse effects of exterminate
gui/gm-editor: added enum names to enum edit dialogs
-
- made skill search case-insensitive
- added a profession editor
- misc. layout improvements
gui/liquids: added more keybindings: 0-7 to change liquid level, P/B to cycle backwards
gui/pathable: added tile types to sidebar
gui/rename: added “clear” and “special characters” options
launch: can now ride creatures
-
- now updates skill levels appropriately
- only prints output if
-loud
is passed
names: can now edit names of units
-
- support for moving adventurers
- suport for item stack sizes, vehicles, gem shapes, item volume, art images, item improvements
- some performance improvements
Removed¶
- warn-stuck-trees: Bug 9252 fixed in DF 0.44.01
- tweak:
kitchen-keys
: Bug 614 fixed in DF 0.44.04
Internals¶
Gui::getAnyUnit()
supports many more screens/menusNew globals available:
version
min_load_version
movie_version
basic_seed
title
title_spaced
ui_building_resize_radius
soul_next_id
Lua¶
- Added a new
dfhack.console
API - Exposed
get_vector()
(from C++) for all types that supportfind()
, e.g.df.unit.get_vector() == df.global.world.units.all
- Improved
json
I/O error messages - Stopped a crash when trying to create instances of classes whose vtable addresses are not available
DFHack 0.43.05-r3¶
Internals¶
- Fixed an uncommon crash that could occur when printing text to the console
- Added lots of previously-missing DF classes
- More names for fields: https://github.com/DFHack/df-structures/compare/0.43.05-r2…0.43.05
Fixes¶
Linux: fixed argument to
setarch
in thedfhack
launcher scriptRuby: fixed an error that occurred when the DF path contained an apostrophe
diggingInvaders now compiles again and is included
-
- 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 countorders: fixed an error when importing orders with material categories
siren: fixed an error
stocksettings: 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
-
- 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¶
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 widgetsFixed
to_first
argument todfhack.screen.dismiss()
Added optional
map
parameters to some screen functionsExposed 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 widgetsFixed 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 usesGui::getSelectedUnit()
and works in more places (e.g. exterminate now works from more screens, like command-prompt)
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¶
Fixes¶
Enforced use of
stdout.log
andstderr.log
(instead of their.txt
counterparts) on WindowsFixed
getItemBaseValue()
for cheese, sheets and instrumentsFixed 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
-
- 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
scangui/extended-status: fixed an error when no beds are available
gui/family-affairs: fixed issues with assigning lovers
-
- made keybinding display order consistent
- stopped keys from performing actions in help screen
-
- 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
-
- 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 promptgui/extended-status: added an option to assign/replace the manager
-
- 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¶
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
moduleAdded a
Painter:key_string()
methodMade
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: fixes a crash in the work order condition material list
- tweak hotkey-clear: adds an option to clear bindings from DF hotkeys
Fixes¶
The DF path on OS X can now contain spaces and
:
charactersBuildings::setOwner() changes now persist properly when saved
ls
now lists scripts in folders other thanhack/scripts
, when applicableFixed
plug
output alignment for plugins with long namesadd-thought: fixed support for emotion names
-
- 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
-
- 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
-
- Fixed crash when selecting a profession from an empty list
- Custom professions are now sorted alphabetically more reliably
-
- made gloves usable by specifying handedness
- now creates pairs of boots and gloves
-
- 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
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.03-r1¶
Lua¶
- Label widgets can now easily register handlers for mouse clicks
New Features¶
add-thought: allow syndrome name as
-thought
argument-
- 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
-
- 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
reveal:
revflood
now handles constructed stairs with floors in generated fortresses-
- 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
- prefchange: added a
help
option - probe: now displays raw tiletype names
- Unified script documentation and in-terminal help options
DFHack 0.42.06-r1¶
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 supports
auto_gears
flags. It automatically finds and animates gears in building definition - Changed how Eventful triggers reaction complete. Now it has
onReactionComplete
andonReactionCompleting
. Second one can be canceled
New Scripts¶
- devel/save-version: Displays DF version information about the current save
- modtools/extra-gamelog: replaces
log-region
,soundsense-season
, andsoundsense
New Features¶
buildingplan: Support for floodgates, grates, and bars
colonies: new
place
subcommand and supports any vermin (default honey bees)confirm: Added a confirmation for retiring locations
exportlegends: 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 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 trade
confirm note-delete: No longer interferes with name entry
exportlegends: Handles entities without specific races, and a few other fixes for things new to v0.42
fastdwarf: 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 creatures
-
- 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 figures
-
- Removed siege option
- Prevented a crash resulting from a bad civilization option
showmood: Fixed name display on OS X/Linux
view-item-info: Fixed density units
Misc Improvements¶
- autochop: Can now edit log minimum/maximum directly and remove limit entirely
- autolabor, autohauler, manipulator: Added support for new jobs/labors/skills
- colonies: now implemented by a script
- createitem: Can now create items anywhere without specifying a unit, as long as a unit exists on the map
- devel/export-dt-ini: Updated for 0.42.06
- devel/find-offsets: Automated several more scans
- gui/gm-editor: Now supports finding some items with a numeric ID (with
i
) - lua: Now supports some built-in variables like gui/gm-editor, e.g.
unit
,screen
- remotefortressreader: Can now trigger keyboard events
- stockflow: Now offers better control over individual craft jobs
- weather: now implemented by a script
- zone: colored output
Removed¶
- DFusion: legacy script system, obsolete or replaced by better alternatives
DFHack 0.40.24-r5¶
New Features¶
-
- Added a
uniform-delete
option for military uniform deletion - Added a basic in-game configuration UI
- Added a
Fixes¶
- Fixed a rare crash that could result from running keybinding in onLoadWorld.init
- Script help that doesn’t start with a space is now recognized correctly
- confirm: Fixed issues with haul-delete, route-delete, and squad-disband confirmations intercepting keys too aggressively
- emigration should work now
- fix-unit-occupancy: Significantly optimized - up to 2,000 times faster in large fortresses
- gui/create-item: Allow exiting quantity prompt
- gui/family-affairs: Fixed an issue where lack of relationships wasn’t recognized and other issues
- modtools/create-unit: Fixed a possible issue in reclaim fortress mode
- search: Fixed a crash on the military screen
- tweak max-wheelbarrow: Fixed a minor display issue with large numbers
- workflow: Fixed a crash related to job postings (and added a fix for existing, broken jobs)
Misc Improvements¶
- Unrecognized command feedback now includes more information about plugins
- fix/dry-buckets: replaces the
drybuckets
plugin - feature: now implemented by a script
DFHack 0.40.24-r4¶
Internals¶
- A method for caching screen output is now available to Lua (and C++)
- Developer plugins can be ignored on startup by setting the
DFHACK_NO_DEV_PLUGINS
environment variable - The console on Linux and OS X now recognizes keyboard input between prompts
- JSON libraries available (C++ and Lua)
- More DFHack build information used in plugin version checks and available to plugins and lua scripts
- Fixed a rare overflow issue that could cause crashes on Linux and OS X
- Stopped DF window from receiving input when unfocused on OS X
- Fixed issues with keybindings involving
Ctrl
A
andCtrl
Z
, as well asAlt
E
/U
/N
on OS X - Multiple contexts can now be specified when adding keybindings
- Keybindings can now use
F10
-F12
and0
-9
- Plugin system is no longer restricted to plugins that exist on startup
dfhack.init
file locations significantly generalized
Lua¶
New internal commands¶
New plugins¶
- confirm: Adds confirmation dialogs for several potentially dangerous actions
- fix-unit-occupancy: Fixes issues with unit occupancy, such as faulty “unit blocking tile” messages (Bug 3499)
- title-version (formerly
vshook
): Display DFHack version on title screen
New scripts¶
- armoks-blessing: Adjust all attributes, personality, age and skills of all dwarves in play
- brainwash: brainwash a dwarf (modifying their personality)
- burial: sets all unowned coffins to allow burial (“-pets” to allow pets too)
- deteriorateclothes: make worn clothes on the ground wear far faster to boost FPS
- deterioratecorpses: make body parts wear away far faster to boost FPS
- deterioratefood: make food vanish after a few months if not used
- elevate-mental: elevate all the mental attributes of a unit
- elevate-physical: elevate all the physical attributes of a unit
- emigration: stressed dwarves may leave your fortress if they see a chance
- fix-ster: changes fertility/sterility of animals or dwarves
- gui/family-affairs: investigate and alter romantic relationships
- make-legendary: modify skill(s) of a single unit
- modtools/create-unit: create new units from nothing
- modtools/equip-item: a script to equip items on units
- points: set number of points available at embark screen
- pref-adjust: Adjust all preferences of all dwarves in play
- rejuvenate: make any “old” dwarf 20 years old
- starvingdead: make undead weaken after one month on the map, and crumble after six
- view-item-info: adds information and customisable descriptions to item viewscreens
- warn-starving: check for starving, thirsty, or very drowsy units and pause with warning if any are found
New tweaks¶
- embark-profile-name: Allows the use of lowercase letters when saving embark profiles
- kitchen-keys: Fixes DF kitchen meal keybindings
- kitchen-prefs-color: Changes color of enabled items to green in kitchen preferences
- kitchen-prefs-empty: Fixes a layout issue with empty kitchen tabs
Fixes¶
- Plugins with vmethod hooks can now be reloaded on OS X
- Lua’s
os.system()
now works on OS X - Fixed default arguments in Lua gametype detection functions
- Circular lua dependencies (reqscript/script_environment) fixed
- Prevented crash in
Items::createItem()
- buildingplan: Now supports hatch covers
- gui/create-item: fixed assigning quality to items, made
Esc
work properly - gui/gm-editor: handles lua tables properly
- help: now recognizes built-in commands, like
help
- manipulator: fixed crash when selecting custom professions when none are found
- remotefortressreader: fixed crash when attempting to send map info when no map was loaded
- search: fixed crash in unit list after cancelling a job; fixed crash when disabling stockpile category after searching in a subcategory
- stocksettings: now checks/sanitizes filenames when saving
- stocks: fixed a crash when right-clicking
- steam-engine: fixed a crash on arena load; number keys (e.g. 2/8) take priority over cursor keys when applicable
- tweak fps-min fixed
- tweak farm-plot-select: Stopped controls from appearing when plots weren’t fully built
- workflow: Fixed some issues with stuck jobs. Existing stuck jobs must be cancelled and re-added
- zone: Fixed a crash when using
zone set
(and a few other potential crashes)
Misc Improvements¶
DFHack documentation:
- massively reorganised, into files of more readable size
- added many missing entries
- indexes, internal links, offline search all documents
- includes documentation of linked projects (df-structures, third-party scripts)
- better HTML generation with Sphinx
- documentation for scripts now located in source files
-
- Stopped modification of labors that shouldn’t be modified for brokers/diplomats
- Prioritize skilled dwarves more efficiently
- Prevent dwarves from running away with tools from previous jobs
automaterial: Fixed several issues with constructions being allowed/disallowed incorrectly when using box-select
-
- widgets’ positions, formats, etc. are now customizable
- weather display now separated from the date display
- New mouse cursor widget
gui/dfstatus: Can enable/disable individual categories and customize metal bar list
full-heal:
-r
option removes corpses-
- Pointers can now be displaced
- Added some useful aliases: “item” for the selected item, “screen” for the current screen, etc.
- Now avoids errors with unrecognized types
gui/hack-wish: renamed to gui/create-item
keybinding list accepts a context
-
- Lists lever names
lever pull
can be used to pull the currently-selected lever
memview
: Fixed display issuemodtools/create-item: arguments are named more clearly, and you can specify the creator to be the unit with id
df.global.unit_next_id-1
(useful in conjunction with modtools/create-unit)nyan
: Can now be stopped with dfhack-runplug: lists all plugins; shows state and number of commands in plugins
prospect: works from within command-prompt
quicksave: Restricted to fortress mode
remotefortressreader: Exposes more information
-
- Supports noble suggestion screen (e.g. suggesting a baron)
- Supports fortress mode loo[k] menu
- Recognizes ? and ; keys
stocks: can now match beginning and end of item names
teleport: Fixed cursor recognition
tidlers, twaterlvl: now implemented by scripts instead of a plugin
-
- debug output now logged to stderr.log instead of console - makes DFHack start faster
- farm-plot-select: Fixed issues with selecting undiscovered crops
workflow: Improved handling of plant reactions
Removed¶
- embark-tools nano: 1x1 embarks are now possible in vanilla 0.40.24
DFHack 0.40.24-r3¶
Internals¶
- Ruby library now included on OS X - Ruby scripts should work on OS X 10.10
- libstdc++ should work with older versions of OS X
- Added support for onMapLoad.init / onMapUnload.init scripts
- game type detection functions are now available in the World module
- The
DFHACK_LOG_MEM_RANGES
environment variable can be used to log information tostderr.log
on OS X - Fixed adventure mode menu names
- Fixed command usage information for some commands
Lua¶
- Lua scripts will only be reloaded if necessary
- Added a
df2console()
wrapper, useful for printing DF (CP437-encoded) text to the console in a portable way - Added a
strerror()
wrapper
New Internal Commands¶
- hide, show: hide and show the console on Windows
- sc-script: Allows additional scripts to be run when certain events occur (similar to onLoad*.init scripts)
New Plugins¶
- autohauler: A hauling-only version of autolabor
New Scripts¶
- modtools/reaction-product-trigger: triggers callbacks when products are produced (contrast with when reactions complete)
New Tweaks¶
- fps-min: Fixes the in-game minimum FPS setting
- shift-8-scroll: Gives Shift+8 (or
*
) priority when scrolling menus, instead of scrolling the map - tradereq-pet-gender: Displays pet genders on the trade request screen
Fixes¶
- Fixed game type detection in 3dveins, gui/create-item, reveal, seedwatch
PRELOAD_LIB
: More extensible on Linux- add-spatter, Eventful: Fixed crash on world load
- add-thought: Now has a proper subthought arg.
- Building-hacks: Made buildings produce/consume correct amount of power
- fix-armory: compiles and is available again (albeit with issues)
- gui/gm-editor: Added search option (accessible with “s”)
- hack-wish: Made items stack properly.
- modtools/skill-change: Made level granularity work properly.
- show-unit-syndromes: should work
- stockflow:
- Fixed error message in Arena mode
- no longer checks the DF version
- fixed ballistic arrow head orders
- convinces the bookkeeper to update records more often
- zone: Stopped crash when scrolling cage owner list
Misc Improvements¶
- autolabor: A negative pool size can be specified to use the most unskilled dwarves
- Building-hacks:
- Added a way to allow building to work even if it consumes more power than is available.
- Added setPower/getPower functions.
- catsplosion: Can now trigger pregnancies in (most) other creatures
- exportlegends:
info
andall
options exportlegends_plus.xml
with more data for legends utilities - manipulator:
- Added ability to edit nicknames/profession names
- added “Job” as a View Type, in addition to “Profession” and “Squad”
- added custom profession templates with masking
- remotefortressreader: Exposes more information
DFHack 0.40.24-r2¶
Internals¶
Lua scripts can set environment variables of each other with
dfhack.run_script_with_env
Lua scripts can now call each others internal nonlocal functions with
dfhack.script_environment(scriptName).functionName(arg1,arg2)
Eventful: Lua reactions no longer require LUA_HOOK as a prefix; you can register a callback for the completion of any reaction with a name
Filesystem module now provides file access/modification times and can list directories (normally and recursively)
Units Module: New functions:
isWar isHunter isAvailableForAdoption isOwnCiv isOwnRace getRaceName getRaceNamePlural getRaceBabyName getRaceChildName isBaby isChild isAdult isEggLayer isGrazer isMilkable isTrainableWar isTrainableHunting isTamable isMale isFemale isMerchant isForest isMarkedForSlaughter
Buildings Module: New Functions:
isActivityZone isPenPasture isPitPond isActive findPenPitAt
Fixes¶
dfhack.run_script
should correctly find save-specific scripts now.- add-thought: updated to properly affect stress.
- hfs-pit: should work now
- autobutcher: takes gelding into account
init.lua
existence checks should be more reliable (notably when using non-English locales)
Misc Improvements¶
Multiline commands are now possible inside dfhack.init scripts. See dfhack.init-example
for example usage.
DFHack 0.40.24-r1¶
Internals¶
CMake shouldn’t cache DFHACK_RELEASE anymore. People may need to manually update/delete their CMake cache files to get rid of it.
DFHack 0.40.24-r0¶
Internals¶
- Events from EventManager: fixed crash error with EQUIPMENT_CHANGE event.
- key modifier state exposed to Lua (ie
Ctrl
,Alt
,Shift
)
Fixes¶
dfhack.sh
can now be run from other directories on OS X
New Scripts¶
- hotkey-notes: print key, name, and jump position of hotkeys
Removed¶
- needs_porting/*
Misc Improvements¶
Added support for searching more lists
Older Changelogs¶
Are kept in a seperate file: HISTORY - old changelogs