Skip to content

Releases: DFHack/dfhack

0.40.24-r4

08 Nov 23:43

Choose a tag to compare

DFHack 0.40.24-r4

(downloads below)

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 and Ctrl-Z, as well as Alt-E/U/N on OS X
  • Multiple contexts can now be specified when adding keybindings
  • Keybindings can now use F10-F12 and 0-9
  • Plugin system is no longer restricted to plugins that exist on startup
  • dfhack.init file locations significantly generalized

Lua

  • Scripts can be enabled with the built-in enable/disable commands
  • A new function, reqscript(), is available as a safer alternative to script_environment()
  • Lua viewscreens can choose not to intercept the OPTIONS keybinding

New internal commands

  • kill-lua: Interrupt running Lua scripts
  • type: Show where a command is implemented

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 :kbd: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-plugin: fixed crash in unit list after cancelling a job; fixed crash when disabling stockpile category after searching in a subcategory
  • stockpiles: 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
  • autolabor:
    • 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
  • dwarfmonitor:
    • widgets' positions, formats, etc. are now customizable (see Readme)
    • 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
  • gui/gm-editor
    • 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
  • lever:
    • Lists lever names
    • "lever pull" can be used to pull the currently-selected lever
  • memview: Fixed display issue
  • modtools/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-run
  • plug: 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
  • search:
    • 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
  • tweak:
    • 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

30 Mar 18:07

Choose a tag to compare

  • 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 onLoadMap/onUnloadMap.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 to stderr.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
  • New features
    • autolabor: A negative pool size can be specified to use the most unskilled dwarves
    • catsplosion: Works on any specified races
    • exportlegends: Now exports more information
  • Fixes
    • Fixed game type detection in:
      • 3dveins
      • createitem
      • reveal
      • seedwatch
    • Made PRELOAD_LIB more extensible on Linux
    • add-spatter, eventful: Fixed crash on world load
    • building-hacks: made buildings produce/consume correct amount of power
    • Gave add-thought a proper subthought arg.
    • 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
    • stockflow: No longer checks the DF version
    • stockflow: Fixed ballistic arrow head orders
    • stockflow: Now convinces the bookkeeper to update records more often
    • zone: Stopped crash when scrolling cage owner list
  • Misc Improvements
    • 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' and 'all' exports legends_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"
      • Custom profession templates, with masking
    • remotefortressreader: Exposes more information

DFHack 0.40.24-r2

01 Feb 04:40

Choose a tag to compare

Important note: OS X users should also download "add-spatter.plug.dylib" below and replace the file of the same name in the "hack/plugins" folder with it. (See issue #205.)

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.
    • Updated add-thought 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

25 Jan 19:26

Choose a tag to compare

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

24 Jan 04:03

Choose a tag to compare

Not all globals have been located yet, so this is an r0. Most plugins should work fine. The ones that do not should automatically unload themselves.

DFHack 0.40.24-r0

  • Internals
    • EventManager: fixed crash error with EQUIPMENT_CHANGE event.
    • key modifier state exposed to Lua
  • Fixes
    • dfhack script can now be run from other directories on OSX
  • New Plugins
    • blueprint: export part of your fortress to quickfort .csv files
  • New Scripts
    • hotkey-notes: print key, name, and jump position of hotkeys
  • Removed
    • embark.lua
    • needs_porting/*
  • New Tweaks
  • Misc Improvements
    • added support for searching more lists

Not in NEWS: Modifier state is now exposed to C++ as well.

DFHack 0.40.23-r1

06 Jan 01:18

Choose a tag to compare

  • Internals
    • plugins will not be loaded if globals they specify as required are not located (should prevent some crashes)
  • Fixes
    • Fixed numerous (mostly Lua-related) crashes on OS X by including a more up-to-date libstdc++
      • Alt should no longer get stuck on Windows (and perhaps other platforms as well)
      • advfort works again
      • autobutcher takes sexualities into account
      • devel/export-dt-ini: Updated for 0.40.20+
      • digfort: now checks file type and existence
      • exportlegends: Fixed map export
      • full-heal: Fixed a problem with selecting units in the GUI
      • gui/hack-wish: Fixed restrictive material filters
      • mousequery: Changed box-select key to Alt+M
      • plugins/dwarfmonitor: correct date display (month index, separator)
      • scripts/putontable: added to the readme
      • siren should work again
      • stderr.log: removed excessive debug output on OS X
      • trackstop: No longer prevents cancelling the removal of a track stop or roller.
      • Fixed a display issue with PRINT_MODE:TEXT
      • Fixed a symbol error (MapExtras::BiomeInfo::MAX_LAYERS) when compiling DFHack in Debug mode
    • New Plugins
      • fortplan: designate construction of (limited) buildings from .csv file, quickfort-style
    • New Scripts
      • gui/stockpiles: an in-game interface for saving and loading stockpile settings files.
      • position: Reports the current date, time, month, and season, plus
        • some location info. Port/update of position.py
      • hfs-pit: Digs a hole to hell under the cursor. Replaces needs_porting/hellhole.cpp
    • Removed
      • embark.lua: Obsolete, use embark-tools
    • New tweaks:
      • eggs-fertile: Displays an egg fertility indicator on nestboxes
      • max-wheelbarrow: Allows assigning more than 3 wheelbarrows to a stockpile
    • Misc Improvements
      • embark-tools: Added basic mouse support on the local map
      • Made some adventure mode keybindings in dfhack.init-example only work in adventure mode
      • Added a default keybinding for "gui/companion-order"
      • further work on needs_porting

DFHack 0.40.19-r1

05 Dec 05:19

Choose a tag to compare

DFHack 0.40.19-r1

  • Internals:
  • Fixes:
    • typo fix in modtools/reaction-trigger
    • modtools/item-trigger should now work with item types
  • New plugins:
    • savestock and loadstock: two commands for saving and loading stockpile settings to a file. They can be used to migrate stockpile settings between worlds and saves.
  • New scripts:
    • remove-stress [all]: set selected or all units unit to -1,000,000 stress. this script replaces removebadthoughts.rb
  • Misc improvements:
    • cmd-prompt can now access selected items, units, and buildings
    • autolabor plugin: add an optional talent pool parameter

DFHack 0.40.16-r1

20 Nov 05:11

Choose a tag to compare

DFHack 0.40.16-r1

  • Internals:
    • EventManager should handle INTERACTION triggers a little better. It still can get confused about who did what but only rarely.
    • EventManager should no longer trigger REPORT events for old reports after loading a save.
    • lua/persist-table.lua: a convenient way of using persistent tables of arbitrary structure and dimension in Lua
  • Fixes:
    *mousequery: Disabled when linking levers
    • stocks: Melting should work now
    • scripts/full-heal: Updated with proper argument handling.
    • scripts/modtools/reaction-trigger-transition.lua
      • should produce the correct syntax now
    • scripts/superdwarf.rb should work better now
    • scripts/forum-dwarves.lua
      • update for new df-structures changes
  • New scripts:
    • scripts/
      • adaptation.rb
        • view or set the cavern adaptation level of your citizens
      • add-thought.lua
        • allows the user to add thoughts to creatures.
      • gaydar.lua
        • detect the sexual orientation of units on the map
      • markdown.lua
        • Save a copy of a text screen in markdown (for reddit among others).
      • devel/
        • all-bob.lua: renames everyone Bob to help test interaction-trigger
  • Misc improvements:
    • autodump:
      • Can now mark a stockpile for auto-dumping (similar to automelt and autotrade)
    • buildingplan:
      • Can now auto-allocate rooms to dwarves with specific positions (e.g. expedition leader, mayor)
    • dwarfmonitor
      • Now displays a weather indicator and date
    • lua/syndrome-util.lua
      • now you can remove syndromes by SYN_CLASS
    • scripts/modtools/add-syndrome.lua
      • now you can remove syndromes by SYN_CLASS
    • No longer writes empty .history files

DFHack 0.40.15-r1

09 Nov 06:47

Choose a tag to compare

stonesense not included on Windows/Linux

Fixes:
    - mousequery: Fixed behavior when selecting a tile on the lowest z-level
Internals:
    - EventManager: deals with frame_counter getting reset properly now.
    - modtools/item-trigger: fixed equip/unequip bug and corrected minor documentation error
    - teleport: Updated with proper argument handling and proper unit-at-destination handling.
    - autotrade: Removed the newly obsolete "Mark all" functionality.
    - search: Adapts to the new trade screen column width
    - tweak fast-trade: Switching the fast-trade keybinding to Shift-Up/Shift-Down, due to Select All conflict

DFHack 0.40.14-r1

06 Nov 02:39

Choose a tag to compare

stonesense not included

Internals:
    - The DFHack console can now be disabled by setting the DFHACK_DISABLE_CONSOLE
        environment variable: "DFHACK_DISABLE_CONSOLE=1 ./dfhack"
Fixes:
    - Stopped duplicate load/unload events when unloading a world
    - Stopped "-e" from being echoed when DFHack quits on Linux
    - automelt now uses a faster method to locate items
    - autotrade: "Mark all" no longer double-marks bin contents
    - drainaquifer.rb: replaced with a faster less buggy drain-aquifer.lua
    - embark-tools no longer conflicts with keys on the notes screen
    - fastdwarf: Fixed problems with combat/attacks
    - forum-dwarves should work now
    - manipulator now uses a stable sort, allowing sorting by multiple categories
    - rendermax updated to work with 0.40
New plugins:
    - trackstop: Shows track stop friction and dump direction in its 'q' menu
New tweaks:
    - farm-plot-select: Adds "Select all" and "Deselect all" options to farm plot menus
    - import-priority-category: Allows changing the priority of all goods in a
        category when discussing an import agreement with the liaison
    - manager-quantity: Removes the limit of 30 jobs per manager order
    - civ-view-agreement: Fixes overlapping text on the "view agreement" screen
    - nestbox-color: Fixes the color of built nestboxes

Possibly other things people didn't put in NEWS.