Releases: DFHack/dfhack
Releases · DFHack/dfhack
0.40.24-r4
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_PLUGINSenvironment 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.initfile 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 toscript_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 actionsfix-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 playbrainwash: 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 FPSdeterioratecorpses: make body parts wear away far faster to boost FPSdeterioratefood: make food vanish after a few months if not usedelevate-mental: elevate all the mental attributes of a unitelevate-physical: elevate all the physical attributes of a unitemigration: stressed dwarves may leave your fortress if they see a chancefix-ster: changes fertility/sterility of animals or dwarvesgui/family-affairs: investigate and alter romantic relationshipsmake-legendary: modify skill(s) of a single unitmodtools/create-unit: create new units from nothingmodtools/equip-item: a script to equip items on unitspoints: set number of points available at embark screenpref-adjust: Adjust all preferences of all dwarves in playrejuvenate: make any "old" dwarf 20 years oldstarvingdead: make undead weaken after one month on the map, and crumble after sixview-item-info: adds information and customisable descriptions to item viewscreenswarn-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 coversgui/create-item: fixed assigning quality to items, made :kbd:Escwork properlygui/gm-editor: handles lua tables properly- help: now recognizes built-in commands, like "help"
manipulator: fixed crash when selecting custom professions when none are foundremotefortressreader: fixed crash when attempting to send map info when no map was loadedsearch-plugin: fixed crash in unit list after cancelling a job; fixed crash when disabling stockpile category after searching in a subcategorystockpiles: now checks/sanitizes filenames when savingstocks: fixed a crash when right-clickingsteam-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-addedzone: Fixed a crash when usingzone 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-selectdwarfmonitor:- 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 listfull-heal:-roption removes corpsesgui/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 togui/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 iddf.global.unit_next_id-1(useful in conjunction withmodtools/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-promptquicksave: Restricted to fortress moderemotefortressreader: Exposes more informationsearch:- 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 namesteleport: Fixed cursor recognitiontidlers,twaterlvl: now implemented by scripts instead of a plugintweak:- 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-toolsnano: 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 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
- Fixed game type detection in:
- 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
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
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
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
- 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
- embark.lua: Obsolete, use
- 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
- Fixed numerous (mostly Lua-related) crashes on OS X by including a more up-to-date libstdc++
DFHack 0.40.19-r1
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
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
- adaptation.rb
- scripts/
- 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
- autodump:
DFHack 0.40.15-r1
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
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.