The results are in!
I (myk) am one of the DFHack core developers. I created this survey in order to understand what DFHack's users appreciate and need most so we can set development priorities for the future. This survey allowed me to understand how strongly our users feel about particular pain points (spoiler: our users have a lot to say about GUI integration and documentation!).
Overall, there were 470 people who submitted responses. This is more than enough to get some real, statistically significant results. Thank you all for your help! It really means a lot to us!
Q1: "I Play:"470 responses.
Q1 analysis and opinionAlmost everybody who uses DFHack plays at least fort mode. About a quarter of respondents also play adventure mode. A small percentage play with mods, and most are small personal mods the players themselves have created. Only Squamous's mods (The Long Night, Fall from Grace, etc.) and Masterwork have more than one respondent playing them.
From my point of view as a DFHack developer, this shows that tools that are useful in fort mode will have the most impact. However, adventure mode has a significant presence. Tools specifically for adventure mode will still be appreciated and used.
I note that mods do not have a huge presence right now. This could be because mods and tilesets -- especially the newer, more complete tilesets -- don't play well together, and people would rather keep their tileset than explore a mod that requires them to play in text mode. However, this all might change drastically once DF supports Steam Workshop and mods can be distributed via Steam. Watch this space!
Q2: "I use DFHack to:"468 responses.
Q2 analysis and opinionThe
top categories all have to do with productivity, toil reduction, and access to information. This is where people are most keenly aware of DFHack's benefits.
These categories are closely followed by bug fixing. Bugfixing happens in the background and is mostly invisible. I was surprised that there were this many people who were aware enough of the bugfixes that they selected this option, though I suspect if people knew the extent of DFHack's bugfixing, the number would be even higher.
Every aspect of DFHack has a significant number of users that care about it, though.
Q3: "What are the DFHack tools that you rely on most?"306 responses.
There are more than 350 tools in DFHack (including individual bugfixes and tweaks), but only the top 20 are called out here.
Note that these are plugin/script names, not command names. For example, many people wrote `digv` as the tool they use, but it was consolidated in this graph with the other `dig` plugin commands. Also, many people seemed uncertain about what to call the `manipulator` plugin. Many just called it "Dwarf Therapist" or "that DT screen" or "labor spreadsheet". These were all consolidated into the `manipulator` category, even the ones that were clearly referring the the *real* external (non-DFHack) tool named Dwarf Therapist, with the rationale being that "a tool that does labor assignment is important to our users".
Q3 analysis and opinionThis is a poll of perception, not actual records of usage, so we must remember that these are not necessarily the most
valuable tools, but rather the most
valued tools. All the tools listed here are definitely high-value, but the list is not guaranteed to be exhaustive. We will be using the rankings here to identify the "marquee" tools, and we'll combine this list with the rankings in Q2 above to prioritize our work in getting tools ready for the Steam release.
That being said, let's map those tools back to the categories in Q2 and see what we get (note that many tools map to more than one category):
- Get the UI improvements: (search)
- Quickly perform common tasks: (autodump, clean, manipulator, stocks)
- Automate toilsome fortress management: (autobutcher, autofarm, autolabor, autonestbox)
- Get information to make good decisions: (embark-assistant, manipulator, reveal, prospect, showmood, stocks, exportlegends)
- Fix game bugs so they don't bother me: ()
- Manage stock levels: (workflow)
- Design the fortress: (dig, quickfort)
- Modify the map/dwarves/resources: (autodump, clean, createitem, fastdwarf, liquids)
- Add new game mechanics: ()
- Recover from bad planning / unwinnable situations: (createitem)
- Trigger game events: ()
UI improvements and bug fixes are important to users, but I'm not surprised at all that they don't get named (other than
search). They are not usually tools that users run directly, so their names are not going to be at the forefront of anyone's minds.
The rest of the tools seem reasonably distributed based on the Q2 orderings, which validates both what users *say* they value and what tools they *actually* value.
I am a tad surprised that the smaller productivity tools like
unsuspend and
unforbid didn't make the list. I know
I use those all the time!
Q4: "What do you wish DFHack would do better?"176 responses. This is the "user pain points" section. The responses here indicate where DFHack users are feeling frustration.
Q4 analysis and opinionThe results could not be more clear.
DFHack has a lot of great, powerful features, but users are frustrated with not being able to find them and not being able to use them effectively. There is a large call to make DFHack more accessible from the Dwarf Fortress game screen (the GUI). DFHack should be concentrating developer effort to fix these usability issues. Ideas from the community are welcome here!
Q5: "If you could write your own DFHack feature, what would it be?"161 responses. Here are the areas where users think DFHack could make an impact if we were to develop a new feature. I made up tool names to combine similar ideas from multiple users, which I will explain below. Only ideas that appeared more than once are included in the charts below.
Now, you may recognize some of the "feature requests" in that chart. Many users were just not aware that DFHack already includes the tool they were requesting. In fact, about 1 in 3 feature requests were for features or tools that already exist in DFHack. Another vote for the "Discoverability" pain point.
Here is the chart with only requests for features that don't already exist in DFHack:
Again, these are made-up names that I used to represent the ideas I was combining from the responses. Here's what they mean:
- military: manage uniforms, squads, and schedules, including importing and exporting data
- force siege: generate a siege
- impregnate: similar to `catsplosion` (which can actually handle any animal type) but for sapient beings, like your dwarves, and able to target specific individuals
- track-designer: tool for laying down tracks and routes and checking them for breaks
- fix/missingsquad: ensure your squad that went out on a raid comes back (or at least is declared MIA so squad leaders can be reassigned and another squad formed)
- assign-pets: assign pets specific owners, or getting dwarves adopted by specific cats
- max-wave: control how many migrants can come in a migration wave to prevent your fort from growing too fast
- fortminder: advisor that warns you when things are in a bad state and recommends improvements
- gui/assistant: centralized DFHack configuration GUI where you can, for example, select the auto* tools you want enabled
- filter-reports: find important information in the announcement reports
- religion: manage religions in your fort (or in the world), including raising a historical figure to deity status
Q5 analysis and opinionThese requests indicate the areas where players feel they don't have enough control or information.
Military-related tools were the number one requested feature, but all of these are good suggestions and we'll take them under consideration. A number of these top requests are being worked on right now, such as `filter-reports` and `max-wave`. `gui/assistant` is an excellent suggestion for improving the usability of DFHack and will be given high priority, given the pain points our users made clear in Q4!
Developers out there: if you want to make a contribution to DFHack but don't know what to write, that is the list of the tools that will be most appreciated by the community!
In an effort to aid discovery, here are the most popular "feature requests" for tools that DFHack already has, in order of popularity, along with brief descriptions and links to each existing tool's documentation:
- quickfort: applies digging, building, stockpile, and zone designations to a map according to a blueprint file. It also has modes that allow you to play back keystroke sequences with the cursor at specific spots on the map. It comes with a library of ready-to-apply blueprints that you can use to design your fortress. Here is an example blueprint for digging, furnishing, and configuring a library and a temple (along with a bunch of other rooms that are prepared for assignment as temples and guildhalls).
- dwarfmonitor: measure your fort's efficiency and add widgets to the screen that display live-updated information.
- buildingplan: place buildings and constructions even if you don't have the materials ready yet. They will get built when the construction materials become available. Very useful for planning out large walls or megaprojects since you can designate constructions in places that aren't reachable yet. Works well with automaterial for designating constructions over large areas. quickfort also uses buildingplan to place buildings and constructions from blueprints.
- automaterial: Moves the last selected material to the top of the list when building more constructions of the same type. Also allows designating very large, optionally hollow, rectangles for construction.
- orders: import and export lists of manager orders. DFHack comes with a library of ready-to-use manager orders that you can import.
- manipulator: Easily manage labors across the dwarves in your fort. Supports saving and applying groups of labors as custom professions. DFHack comes with a library of useful professions that you can apply to your dwarves.
- strangemood: triggers a strange mood. you can optionally choose the dwarf, type of mood, and which skill is used to create the artifact.
- changevein: changes the vein under the cursor to the specified material.
- exportlegends: export legends mode data for viewing in external utilities.
- drain-aquifer: converts all aquifer tiles on the map to regular soil/stone.
- seedwatch: controls whether each seed type can be cooked based on whether you have enough of that seed to support farming.
- diggingInvaders: allows siegers to dig and destroy constructions to get to your dwarves.
- prioritize: watches job creation and ensures jobs of specified types get done quickly. Use this, for example, to ensure your haulers haul your food before it rots.
- gui/gm-unit: edit unit attributes
- mousequery: add mouse controls to the DF interface. Hover your mouse cursor over a tile to get information on what that tile contains. Click on a building or stockpile to get to its settings menu.
- blueprint: record a copy of your fortress in a quickfort blueprint.
- gui/dfstatus: shows a quick overview of critical stock quantities.
- forum-dwarves: export the text on the screen to a file.
- createitem: spawns in an item of your choice. use `createitem inspect` to discover the properties of an existing item you want to copy.
- gui/settings-manager: GUI interface to customizing the Dwarf Fortress `data/init/init.txt` and `data/init/d_init.txt` files.
- prospect: discover mineral content of an embark region
- gui/pathable: displays the tiles that are reachable from the cursor by a walking unit
- autolabor: automatically set labors on your dwarves according to the jobs that need to be done
- gui/gm-editor: directly edit Dwarf Fortress data structures
- autochop: automatically manage tree cutting designations so you always have enough wood in stock
- spawnunit: create a new unit on the map
- autodump: destroys all items selected for dumping or moves them to the cursor location
- zone: assigns animals to pastures
- gui/room-list: lists all rooms owned by a dwarf
- gui/mod-manager: installs/uninstalls DF mods
- tweak makeown: add visitors or merchants to your fort
- fastdwarf: make dwarves magically fast