Latest Version: Download
Link contains download archive with all my plugins
.See the included zip for installation instructions. The relevant file for this plugin is dwarfmonitor.plug.dll.
Note: This was built against the latest DFHack release (0.34.11 r3), so will not work in earlier versions. The version in the Lazy Newbie Pack is outdated.Update:
I have also added a live overlay showing happiness levels in the fortress. See this post
When enabled, this plugin tracks all work and leisure activity in the fortress every 100 ticks (1/12th of a dwarf day) over a rolling window of 3 months. This data can be displayed in-game, to show how much time is spent in the fort on each activity, as a percentage. The data can also be displayed per dwarf, telling you what they've been doing and how much time they have spent on each activity.
The following screenshots show the two statistical screens that are available. All values are in percentages and only non-zero values are displayed. When you see a value of 0, this implies that actual value is between 0 and 1, but decimals are not displayed. Because of this and other rounding issues, the totals may not always add up to 100.
The above screen shows overall fort activity. The left hand column is a breakdown of all the activity groups that happened in the fort in the last 1 month (this can be switched between 1,2 and 3 months). When an activity is selected in the first column, the second column shows the dwarves who've participated in that activity and what % share of it they did. You can move the selection to the second column and use "Shift-Z" to find the unit on the map in View mode. Further, if you have a dwarf selected in the second column while pressing "Shift-D" to go to the Dwarf Stats screen (see below), that dwarf will already be selected when you arrive at that screen. The third column details the real activities that were grouped into the selected category and how much of each occurred in the selected time period.
Note that both these screens have "Search" functionality that's always on. You don't have to use a hotkey like in my search plugin, just start typing and the selected column will filter automatically. Shift-S still clears the search.
Also, both screens support the mouse.
Pressing Shift-D from the previous screen will take you to the above screen, where the first column is a list of all dwarves and the second column tells you how the selected dwarf has been spending their time. In the above example, the dwarf has spent 40% of their time milling. As before, you can use Shift-Z to View the dwarf on the map.
The plugin is disabled by default and statistics are not preserved in a save game. The easiest way to use the plugin is to add the following lines to your dfhack.init file:
dwarfmonitor enable all
keybinding add Ctrl-F@dwarfmode/Default "dwarfmonitor stats"
This will turn on monitoring when you start the game and bind the hotkey Ctrl-F to open the fort statistics screen.
These are the detailed usage instructions from the plugin's console view:
dwarfmonitor enable <mode>
Start monitoring <mode> [days]
<mode> can be "work", "misery", or "all"
[days] number of days to track (default is 7)
dwarfmonitor disable <mode>
<mode> as above
Show statistics summary
Just a note about "idle" time; because of the granularity of the samples, the plugin will always report some idle time, even in a fully occupied fort. That's because DF job assignment is periodic... when a dwarf finishes a job they do not immediately get a new job assigned, they have to sit idle until the job manager loop runs again. This plugin will register those periods as idle time for that dwarf as it has no way of telling the difference. If you select the "Idle" item in fortress stats, you'll see nearly every dwarf in the second column, but most will have a very small percentage of the total, most likely <2%. You only have to worry about dwarves who take up the larger percentage at the top of the list.