DFHack Changelog

What's new in DFHack 0.40.24 R5

Nov 29, 2015
  • New Features:
  • confirm:
  • Added a uniform-delete option for military uniform deletion
  • Added a basic in-game configuration UI
  • 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

New in DFHack 0.40.24 R4 (Nov 9, 2015)

  • 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

New in DFHack 0.40.24 R3 (Mar 31, 2015)

  • 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

New in DFHack 0.40.24 R2 (Feb 3, 2015)

  • 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.

New in DFHack 0.40.24 R1 (Jan 27, 2015)

  • Internals â—¦CMake shouldn't cache DFHACK_RELEASE anymore. People may need to manually update/delete their CMake cache files to get rid of it.

New in DFHack 0.40.23 R1 (Jan 6, 2015)

  • 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

New in DFHack 0.40.19 R1 (Dec 6, 2014)

  • 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

New in DFHack 0.40.16 R1 (Nov 26, 2014)

  • 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

New in DFHack 0.40.15 R1 (Nov 10, 2014)

  • 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

New in DFHack 0.40.14 R1 (Nov 10, 2014)

  • 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

New in DFHack 0.40.13 R1 (Sep 20, 2014)

  • Internals: unified spatter structs
  • Fixes: no more -e after terminating

New in DFHack 0.34.11 R5 (Jun 30, 2014)

  • Internals:
  • support for calling a lua function via a protobuf request (demonstrated by dfhack-run --lua).
  • support for basic filesystem operations (e.g. chdir, mkdir, rmdir, stat) in C++ and Lua
  • Lua API for listing files in directory. Needed for mod-manager.
  • Lua API for creating unit combat reports and writing to gamelog.
  • Lua API for running arbitrary DFHack commands
  • support for multiple raw/init.d/*.lua init scripts in one save.
  • eventful now has a more friendly way of making custom sidebars
  • on Linux and OSX the console now supports moving the cursor back and forward by a whole word.
  • New scripts:
  • gui/mod-manager: allows installing/uninstalling mods into df from df/mods directory.
  • gui/clone-uniform: duplicates the currently selected uniform in the military screen.
  • fix/build-location: partial work-around for bug 5991 (trying to build wall while standing on it)
  • undump-buildings: removes dump designation from materials used in buildings.
  • exportlegends: exports data from legends mode, allowing a set-and-forget export of large worlds.
  • log-region: each time a fort is loaded identifying information will be written to the gamelog.
  • dfstatus: show an overview of critical stock quantities, including food, drinks, wood, and bars.
  • New commands:
  • 'plant create' - spawn a new shrub under the cursor
  • command-prompt: a dfhack command prompt in df.
  • New tweaks:
  • craft-age-wear: make crafted items wear out with time like in old versions (bug 6003)
  • adamantine-cloth-wear: stop adamantine clothing from wearing out (bug 6481)
  • confirm-embark: adds a prompt before embarking (on the "prepare carefully" screen)
  • New plugins:
  • rendermax: replace the renderer with something else. Most interesting is "rendermax light"- a lighting engine for df.
  • stockflow (by eswald): queues manager jobs of the configured type based on the state of a stockpile.
  • embark-tools: implementations of Embark Anywhere, Nano Embark, and a few other embark-related utilities
  • building-hacks: Allows to add custom functionality and/or animations to buildings.
  • petcapRemover: triggers pregnancies in creatures so that you can effectively raise the default pet population cap from the default 50
  • Misc improvements:
  • plant: move the 'grow', 'extirpate' and 'immolate' commands as 'plant' subcommands
  • digfort: improved csv parsing, add start() comment handling
  • exterminate: allow specifying a caste (exterminate gob:male)
  • createitem: in adventure mode it now defaults to the controlled unit as maker.
  • autotrade: adds "(Un)mark All" options to both panes of trade screen.
  • mousequery: several usability improvements.
  • mousequery: show live overlay (in menu area) of what's on the tile under the mouse cursor.
  • search: workshop profile search added.
  • dwarfmonitor: add screen to summarise preferences of fortress dwarfs.
  • getplants: add autochop function to automate woodcutting.
  • stocks: added more filtering and display options.
  • Siege engine plugin:
  • engine quality and distance to target now affect accuracy
  • firing the siege engine at a target produces a combat report
  • improved movement speed computation for meandering units
  • operators in Prepare To Fire mode are released from duty once hungry/thirsty if there is a free replacement

New in DFHack 0.34.11 R4 (Oct 31, 2013)

  • New commands:
  • diggingInvaders - allows invaders to dig and/or deconstruct walls and buildings in order to get at your dwarves.
  • digFlood - automatically dig out specified veins as they are revealed
  • enable, disable - Built-in commands that can be used to enable/disable many plugins.
  • restrictice - Restrict traffic on squares above visible ice.
  • restrictliquid - Restrict traffic on every visible square with liquid.
  • treefarm - automatically chop trees and dig obsidian
  • New scripts:
  • autobutcher: A GUI front-end for the autobutcher plugin.
  • invasionNow: trigger an invasion, or many
  • locate_ore: scan the map for unmined ore veins
  • masspit: designate caged creatures in a zone for pitting
  • multicmd: run a sequence of dfhack commands, separated by ';'
  • startdwarf: change the number of dwarves for a new embark
  • digmat: dig veins/layers tile by tile, as discovered
  • Misc improvements:
  • autoSyndrome:
  • disable by default
  • reorganized special tags
  • minimized error spam
  • reset policies: if the target already has an instance of the syndrome you can skip, add another instance, reset the timer, or add the full duration to the time remaining
  • core: fix SC_WORLD_(UN)LOADED event for arena mode
  • exterminate: renamed from slayrace, add help message, add butcher mode
  • fastdwarf: fixed bug involving fastdwarf and teledwarf being on at the same time
  • magmasource: rename to 'source', allow water/magma sources/drains
  • ruby: add df.dfhack_run "somecommand"
  • syndromeTrigger: replaces and extends trueTransformation. Can trigger things when syndromes are added for any reason.
  • tiletypes: support changing tile material to arbitrary stone.
  • workNow: can optionally look for jobs when jobs are completed
  • New tweaks:
  • hive-crash: Prevent crash if bees die in a hive with ungathered products (bug 6368).
  • New plugins:
  • 3dveins: Reshapes all veins on the map in a way that flows between Z levels. May be unstable. Backup before using.
  • autotrade: Automatically send items in marked stockpiles to trade depot, when trading is possible.
  • buildingplan: Place furniture before it's built
  • dwarfmonitor: Records dwarf activity to measure fort efficiency
  • mousequery: Look and poke at the map elements with the mouse.
  • outsideOnly: make raw-specified buildings impossible to build inside
  • resume: A plugin to help display and resume suspended constructions conveniently
  • stocks: An improved stocks display screen.
  • Internals:
  • Core: there is now a per-save dfhack.init file for when the save is loaded, and another for when it is unloaded
  • EventManager: fixed job completion detection, fixed removal of TICK events, added EQUIPMENT_CHANGE event
  • Lua API for a better random number generator and perlin noise functions.
  • Once: easy way to make sure something happens once per run of DF, such as an error message

New in DFHack 0.34.11 R3 (Sep 20, 2013)

  • Internals:
  • support for displaying active keybindings properly.
  • support for reusable widgets in lua screen library.
  • Maps::canStepBetween: returns whether you can walk between two tiles in one step.
  • EventManager: monitors various in game events centrally so that individual plugins
  • don't have to monitor the same things redundantly.
  • Now works with OSX 10.6.8
  • Notable bugfixes:
  • autobutcher can be re-enabled again after being stopped.
  • stopped Dwarf Manipulator from unmasking vampires.
  • Stonesense is now fixed on OSX
  • Misc improvements:
  • fastdwarf: new mode using debug flags, and some internal consistency fixes.
  • added a small stand-alone utility for applying and removing binary patches.
  • removebadthoughts: add --dry-run option
  • superdwarf: work in adventure mode too
  • tweak stable-cursor: carries cursor location from/to Build menu.
  • deathcause: allow selection from the unitlist screen
  • slayrace: allow targetting undeads
  • New tweaks:
  • tweak military-training: speed up melee squad training up to 10x (normally 3-5x).
  • New scripts:
  • binpatch: the same as the stand-alone binpatch.exe, but works at runtime.
  • region-pops: displays animal populations of the region and allows tweaking them.
  • lua: lua interpreter front-end converted to a script from a native command.
  • dfusion: misc scripts with a text based menu.
  • embark: lets you embark anywhere.
  • lever: list and pull fort levers from the dfhack console.
  • stripcaged: mark items inside cages for dumping, eg caged goblin weapons.
  • soundsense-season: writes the correct season to gamelog.txt on world load.
  • create-items: spawn items
  • fix/cloth-stockpile: fixes bug 5739; needs to be run after savegame load every time.
  • New GUI scripts:
  • gui/guide-path: displays the cached path for minecart Guide orders.
  • gui/workshop-job: displays inputs of a workshop job and allows tweaking them.
  • gui/workflow: a front-end for the workflow plugin (part inspired by falconne).
  • gui/assign-rack: works together with a binary patch to fix weapon racks.
  • gui/gm-editor: an universal editor for lots of dfhack things.
  • gui/companion-order: a adventure mode command interface for your companions.
  • gui/advfort: a way to do jobs with your adventurer (e.g. build fort).
  • New binary patches (for use with binpatch):
  • armorstand-capacity: doubles the capacity of armor stands.
  • custom-reagent-size: lets custom reactions use small amounts of inputs.
  • deconstruct-heapfall: stops some items still falling on head when deconstructing.
  • deconstruct-teleport: stops items from 16x16 block teleporting when deconstructing.
  • hospital-overstocking: stops hospital overstocking with supplies.
  • training-ammo: lets dwarves with quiver full of combat-only ammo train.
  • weaponrack-unassign: fixes bug that negates work done by gui/assign-rack.
  • Workflow plugin:
  • properly considers minecarts assigned to routes busy.
  • code for deducing job outputs rewritten in lua for flexibility.
  • logic fix: collecting webs produces silk, and ungathered webs are not thread.
  • items assigned to squads are considered busy, even if not in inventory.
  • shearing and milking jobs are supported, but only with generic MILK or YARN outputs.
  • workflow announces when the stock level gets very low once a season.
  • New Fix Armory plugin:
  • Together with a couple of binary patches and the gui/assign-rack script,
  • this plugin makes weapon racks, armor stands, chests and cabinets in
  • properly designated barracks be used again for storage of squad equipment.
  • New Search plugin by falconne:
  • Adds an incremental search function to the Stocks, Trading, Stockpile and Unit List screens.
  • New AutoMaterial plugin by falconne:
  • Makes building constructions (walls, floors, fortifications, etc) a little bit easier by
  • saving you from having to trawl through long lists of materials each time you place one.
  • Dfusion plugin:
  • Reworked to make use of lua modules, now all the scripts can be used from other scripts.
  • New Eventful plugin:
  • A collection of lua events, that will allow new ways to interact with df world.
  • Auto syndrome plugin:
  • A way of automatically applying boiling rock syndromes and calling dfhack commands controlled by raws.
  • Infinite sky plugin:
  • Create new z-levels automatically or on request.
  • True transformation plugin:
  • A better way of doing permanent transformations that allows later transformations.
  • Work now plugin:
  • Makes the game assign jobs every time you pause.

New in DFHack 0.34.11 R2 (Apr 3, 2013)

  • Internals:
  • full support for Mac OS X.
  • a plugin that adds scripting in ruby.
  • support for interposing virtual methods in DF from C++ plugins.
  • support for creating new interface screens from C++ and lua.
  • added various other API functions.
  • Notable bug fixes:
  • better terminal reset after exit on linux.
  • seedwatch now works on reclaim.
  • the sort plugin won't crash on cages anymore.
  • Misc improvements:
  • autodump: can move items to any walkable tile, not just floors.
  • stripcaged: by default keep armor, new dumparmor option.
  • zone: allow non-domesticated birds in nestboxes.
  • workflow: quality range in constraints.
  • cleanplants: new command to remove rain water from plants.
  • liquids: can paint permaflow, i.e. what makes rivers power water wheels.
  • prospect: pre-embark prospector accounts for caves & magma sea in its estimate.
  • rename: supports renaming stockpiles, workshops, traps, siege engines.
  • fastdwarf: now has an additional option to make dwarves teleport to their destination.
  • New commands:
  • misery: multiplies every negative thought gained (2x by default).
  • digtype: designates every tile of the same type of vein on the map for 'digging' (any dig designation).
  • New tweaks:
  • tweak stable-cursor: keeps exact cursor position between d/k/t/q/v etc menus.
  • tweak patrol-duty: makes Train orders reduce patrol timer, like the binary patch does.
  • tweak readable-build-plate: fix unreadable truncation in unit pressure plate build ui.
  • tweak stable-temp: fixes bug 6012; may improve FPS by 50-100% on a slow item-heavy fort.
  • tweak fast-heat: speeds up item heating & cooling, thus making stable-temp act faster.
  • tweak fix-dimensions: fixes subtracting small amounts from stacked liquids etc.
  • tweak advmode-contained: fixes UI bug in custom reactions with container inputs in advmode.
  • tweak fast-trade: Shift-Enter for selecting items quckly in Trade and Move to Depot screens.
  • tweak military-stable-assign: Stop rightmost list of military->Positions from jumping to top.
  • tweak military-color-assigned: In same list, color already assigned units in brown & green.
  • New scripts:
  • fixnaked: removes thoughts about nakedness.
  • setfps: set FPS cap at runtime, in case you want slow motion or speed-up.
  • siren: wakes up units, stops breaks and parties - but causes bad thoughts.
  • fix/population-cap: run after every migrant wave to prevent exceeding the cap.
  • fix/stable-temp: counts items with temperature updates; does instant one-shot stable-temp.
  • fix/loyaltycascade: fix units allegiance, eg after ordering a dwarf merchant kill.
  • deathcause: shows the circumstances of death for a given body.
  • digfort: designate areas to dig from a csv file.
  • drainaquifer: remove aquifers from the map.
  • growcrops: cheat to make farm crops instantly grow.
  • magmasource: continuously spawn magma from any map tile.
  • removebadthoughts: delete all negative thoughts from your dwarves.
  • slayrace: instakill all units of a given race, optionally with magma.
  • superdwarf: per-creature fastdwarf.
  • New GUI scripts:
  • gui/mechanisms: browse mechanism links of the current building.
  • gui/room-list: browse other rooms owned by the unit when assigning one.
  • gui/liquids: a GUI front-end for the liquids plugin.
  • gui/rename: renaming stockpiles, workshops and units via an in-game dialog.
  • gui/power-meter: front-end for the Power Meter plugin.
  • gui/siege-engine: front-end for the Siege Engine plugin.
  • gui/choose-weapons: auto-choose matching weapons in the military equip screen.
  • Autolabor plugin:
  • can set nonidle hauler percentage.
  • broker excluded from all labors when needed at depot.
  • likewise, anybody with a scheduled diplomat meeting.
  • New Dwarf Manipulator plugin:
  • Open the unit list, and press 'l' to access a Dwarf Therapist like UI in the game.
  • New Steam Engine plugin:
  • Dwarven Water Reactors don't make any sense whatsoever and cause lag, so this may be
  • a replacement for those concerned by it. The plugin detects if a workshop with a
  • certain name is in the raws used by the current world, and provides the necessary
  • behavior. See hack/raw/*_steam_engine.txt for the necessary raw definitions.
  • Note: Stuff like animal treadmills might be more period, but absolutely can't be
  • done with tools dfhack has access to.
  • New Power Meter plugin:
  • When activated, implements a pressure plate modification that detects power in gear
  • boxes built on the four adjacent N/S/W/E tiles. The gui/power-meter script implements
  • the necessary build configuration UI.
  • New Siege Engine plugin:
  • When enabled and configured via gui/siege-engine, allows aiming siege engines
  • at a designated rectangular area with 360 degree fire range and across Z levels;
  • this works by rewriting the projectile trajectory immediately after it appears.
  • Also supports loading catapults with non-boulder projectiles, taking from a stockpile,
  • and restricting operator skill range like with ordinary workshops.
  • Disclaimer: not in any way to undermine the future siege update from Toady, but
  • the aiming logic of existing engines hasn't been updated since 2D, and is almost
  • useless above ground :(. Again, things like making siegers bring their own engines
  • is totally out of the scope of dfhack and can only be done by Toady.
  • New Add Spatter plugin:
  • Detects reactions with certain names in the raws, and changes them from adding
  • improvements to adding item contaminants. This allows directly covering items
  • with poisons. The added spatters are immune both to water and 'clean items'.
  • Intended to give some use to all those giant cave spider poison barrels brought
  • by the caravans.