I'm a beginner at Dwarf Fortress. I was just about keeping on top of things, until my first wave of migrants arrived. Now I have 15 dwarves to keep track of, and my previous strategy of micromanaging each dwarf is not scaling up. In particular, I'm having problems with "chains" of tasks, where something in the chain goes wrong, and the dependent job gets cancelled or suspended.

For example, I would like to be continually brewing ale, but occasionally I run out of barrels, either because the carpenter wandered off, was doing something else, or ran out of wood. When this happens, my dwarf gives up on brewing and moves on to other things. A similar thing happens regularly with potash production and food preparation.

How can I efficiently manage these chains of dependencies? Are there any strategies, or built-in mechanisms I've not learnt about that I can apply to relieve some of the micromanaging burden?

2 Answers 2


I would suggest using a manager noble and the management screen (j, m) where you can queue up tasks. I find it useful to do thinks like:

  • Queue 15 barrel
  • Queue 15 brew drinks

And jobs that are managed are automatically re-assigned if they fail for any reason including lack of resources. So in this case the brew drinks would be re-assigned until the barrels are available to complete them.

Note that these tasks will process in parallel.

  • 1
    I didn't know this. Commented Jul 12, 2010 at 20:00
  • 2
    A downside of this solution is when the manager is too busy picking his nose, hauling food or doing other tasks it may take frustratingly long before it actually gets around to "Manage work orders"... And then he decides to catch up just as you really wanted him to talk to the outpost liason before the diplomat leaves unhappy... Commented May 10, 2011 at 8:33
  • 4
    @Shadur That's why my manager never has any other important jobs. I do let him haul things, but once he has any experience at all he flies through work orders.
    – C. Ross
    Commented May 10, 2011 at 12:07
  • 1
    Updates to management system have rendered this answer obsolete. It still works as is, but it's no longer even remotely the most optional method. Commented Jul 18, 2016 at 14:59

The new (in 0.43.4) expanded job management system gives you several options to do this, via setting conditions on managed jobs.

Among other things, you can set a job to check before queueing if:

  • Another job has first been completed;
  • Item count of given items does is higher (or lower) than X number (shortcuts exist for both reagents and product, so if for instance you want to make marble blocks 10 times if and only if there are at least 40 units of marble stone available and less than 60 marble blocks unused, that's possible); You can also specify to make more pots or bins if there are less than X empty bins available via the 'type' conditional modifier.

Furthermore, you can set a job to repeat and recheck conditions once a day, once a week, once a month or once a year.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .