Dwarf Fortress

Dwarf Fortress

Underutilization in Steel Production
So I have come before you to inquire if anyone has a good methodology for full on hands off automation of Steel Production.

So. the issue is twofold.

First, workorders don't have priority. If you assign each workshop individually and remove workorder assignment from the manager, you can put a workshop into full production with priority. But it means constantly going through and checking each smelter to see if it's still in production. I don't want that.

Second. workorders are assigned in chunks to each smelter, Again. you can set the smelter to only take 1 work order at a time, and that's fine. but there's still the priority thing going on.

My current methodology is to limit workorder assignment to each smelter to only 1 workorder from the manager. Then in the workorder have like.. 40 tasks setup, Make Pig Iron, then Make Steel with a requirement that the previous Make Pig Iron workorder is completed before assigning the make Steel. and then repeat 38 more times. This.. is workable? and relatively hands off.

But I was wondering if someone has something better.
< >
Showing 1-13 of 13 comments
Fel Mar 5, 2023 @ 1:06am 
Work orders do have priority when you need it.
If you go in an order's advanced conditions you can set it to wait until another order finished before it starts (the buttons at the top in advanced conditions).


For where to asign orders you have several ways to handle that.
You can create the order from a specific workshop's menu rather than the work order menu (it's the third tab of each workshop).
That way only that specific workshop will get the order.

You can also set a limit to the amount of workshops receiving the order.


Now if you want to do 1 at a time, there are also a ways, just a bit trickier to setup.
The first is setting both orders on the same workshop(s) since they cycle between the asigned orders.

The second is to set the steel work order to only make 1 but with conditions to auto repeat the order.
The condition being "at least 1" of each required materials, or maybe just pig iron bar if you are certain to have enough of everything else.
harlequin_corps Mar 5, 2023 @ 8:04am 
Originally posted by Fel:
Work orders do have priority when you need it.
I feel like you didn't actually read what I typed. It's not worth an argument, but I would like to point out that, your thought process actually reduces the priority of a workorder instead of raising it.. It may be that the thought process is the concomitant effects of prioritization on the linked workorder,
harlequin_corps Mar 5, 2023 @ 8:05am 
I'm looking for a method that will run.. say.. 100 magma smelters completely hands off. I think I'm close to it, was just wondering if someone has a better option.
Last edited by harlequin_corps; Mar 5, 2023 @ 8:06am
AlP Mar 5, 2023 @ 10:30am 
Originally posted by harlequin_corps:
I'm looking for a method that will run.. say.. 100 magma smelters completely hands off.
Dwarves be like, "oh you want me to smelt all those masterwork items, masterfully encrusted with expensive gems? Ok.".
Pok Mar 5, 2023 @ 11:02am 
since we are talking about magma smelters...

why do not just "make x pig iron" -> if that ready do "make x steel" and that will be done?

you dnt have ti limit something.... you can just build it that way that the steel-part is just confiremd if the pig iron is done... and the pig iron will be confirmed if theres NO pig iron bar there ... then you have an 2 step infinite process... that can scale up to the number of smelters.
Last edited by Pok; Mar 5, 2023 @ 11:03am
8Balls Mar 6, 2023 @ 9:04am 
Set up multiple workshops for each step in your production chain and use stockpiles that only take from workshops to feed the next steps in the chain. You'll get some cancellation spam but it keeps things flowing pretty well.
harlequin_corps Mar 6, 2023 @ 10:15am 
Originally posted by AlP:
Originally posted by harlequin_corps:
I'm looking for a method that will run.. say.. 100 magma smelters completely hands off.
Dwarves be like, "oh you want me to smelt all those masterwork items, masterfully encrusted with expensive gems? Ok.".
This is referring to melt a metal object. Not specifically what I was addressing. Generally, when I mass Melt a metal object I don't care what is it, I want it gone.

No, I'm specifically referring to a process to completely automate steel production.
harlequin_corps Mar 6, 2023 @ 10:31am 
Originally posted by Pok:
since we are talking about magma smelters...

why do not just "make x pig iron" -> if that ready do "make x steel" and that will be done?

you dnt have ti limit something.... you can just build it that way that the steel-part is just confiremd if the pig iron is done... and the pig iron will be confirmed if theres NO pig iron bar there ... then you have an 2 step infinite process... that can scale up to the number of smelters.
The issue with this, without making adjustments to each specific workshop, is that they get.. workshops have a tendency to get assigned just a few at a time, so not all of the smelters get a job and the jobs stack up on 1 workshop.

This one is easy to address. In the workshop you can set it to only accept 1 general workorder, it's set to 5, and you can lower it. So you set it to 1. Do that for each smelter, that means 1 job for each smelter. This improves utilization.

To ensure workflow, you set up a Pig Iron job at 1/1, then setup a Steel job at 1/1 with the condition that the previous Pig iron job is completed first.

These 2 jobs will be assigned to any available smelter with no job. This also improves utilization when working with steel production.

The problem with assigning multiple items, for example pig iron 10/10, is that it is sent to the smelter first, then a dorf has to look at material available and then cancels the job. So you waste time when each dorf has to cancel the job. They get assigned to the job, materials aren't available, even though they were available when the job was first initiated, and then cancel the job. That's X amount of time the smelter is locked to that job and X amount of time the dorf takes to cancel the job.

I don't like that happening. Job cancellations coming up as a warning means something is wrong somewhere.

You can set a form of priority with general workorders using the initial workorder list, items higher on the list will have priority over things lower on the list. So you put your iron smelting jobs, hematite/magnetite/limonite and lignite/bitimous coal higher than your pig iron/steel jobs. This will ensure you have a ready supply.

What I am doing is I made about, well now, 60 pig iron/steel 1/1 jobs where each steel job is set to initiate on the previous pig iron job. So you make a pig iron, then you make a steel, then a pig iron etc.

It's still too slow though, imo. I want it faster than that but I also want it completely automated.
harlequin_corps Mar 6, 2023 @ 10:42am 
Originally posted by 8Balls:
Set up multiple workshops for each step in your production chain and use stockpiles that only take from workshops to feed the next steps in the chain. You'll get some cancellation spam but it keeps things flowing pretty well.
Stockpile management in steel production is a rather large decrease in efficiency. Take a look at the workflow. Hematite is sent to a smelter, it get's melted into iron, which then sits ready/available in the smelter. Lignite is sent to a smelter, it get's cooked into coke. It's sitting ready/available in the smelter. Limestone though. That does need to be stockpiled right next to the smelters. So in the pig iron job, the iron is there, the coke is there, the limestone is right next to the smelter. Then the pig iron is in the smelter, ready and available. Iron and coke is already in the smelter, Dorf grabs limestone, brings it to the smelter, cooks up 2 bars of steel.

Trying to use stockpile management, to have another dorf pull it out of a smelter, move it to a stockpile, when it's already in the smelter.. that's a bit wasteful.

What I don't like, is that the workorder itself is still not a priority job.

But the only way to priority a job is to do it manually in the smelter tasking, and sure, you can set 1 job for pig iron with priority on repeat, and then another job for steel with priority on repeat. And that works, it's faster certainly. But it does mean having to go through the smelters on a relatively repetitive basis and reset the taskings.

I don't want to do that.

So.. heh. my current methodology is to just have a banging lot of smelters and a large number of pig iron 1/1 jobs followed by steel 1/1 jobs. But its still TOOO SLOOOOW.. faster you damn dorfs.. FASTER.
harlequin_corps Mar 6, 2023 @ 10:48am 
I suppose a method that will improve things is to set the smelter for only allowing 1 person to use it, then set that person to be specialized for just that tasking. That's.. a bit too hands on though.. would have to keep going back and setting it again and it would waste X amount of smelters when they go drink/eat/socialize etc. And actually it would pretty drastically reduce efficiency because the job will sit on the smelter until that worker becomes available. No, I think I prefer keeping the smelter open for anyone available to come along and do the job assigned.
Anyone got any more ideas?
Last edited by harlequin_corps; Mar 6, 2023 @ 10:49am
Morkonan Mar 6, 2023 @ 1:13pm 
Originally posted by harlequin_corps:
So I have come before you to inquire if anyone has a good methodology for full on hands off automation of Steel Production.
...
But I was wondering if someone has something better.

I've deleted a couple of lengthy replies, already, so here's the skinny one...

The only problems I've ever encountered in the Steel Production Chain involve Wood/Charcoal. Ever.

(That is, when such a thing could be a "problem," not in terms of first-weeks of play or some crisis that evolves. IOW - The "unexpected problem" that crops up is always Charcoal production issues, somewhere.)

Not using Magma or addressing Coal, therefore:

Control your Wood use in other production chains, first and foremost, so that Charcoal production ALWAYS has what it needs, always. Those are durable goods you can plan for. Dorfs do not change chairs when one wears out and legendary weapon crafting is... awesome.

Buy all the wood, all the time, every time, from Traders. Always. All_of_it.

Use dedicated Stockpiles and Stockpile Size as your ad-hoc material-supply priority system to ensure everything gets covered and you have emergency supplies if needed. This avoids the "micro" approach nicely so that you can more easily handle things with the Manager's window controls.

Plan your durable goods, being made from Wood, needs adequately using Min/Max switches in the Manager to start/stop the use of Wood for those items. Set it so your storage that's not dedicated to Charcoal fills up and you have an existing minimum inventory of Barrels, Beds, and doors/whatever, sitting there and the rest of the wood has flowed into the Dedicated Charcoal/Steel Zone. (ie:Plan on your own gameplay bursts eating up minimum inventory levels of these goods. You can also pillage this stockpile if a desperate need for charcoal crops up.)

Always use Assigned craftsdorfs in mission-critical chains. Here, all dorfs involved in Steel Production/Items are assigned and multiple benches/etc are used. (Let other dorfs fulfill crafting needs with crafting other stuffs.)

For "numbers," if you wish to then min/max Steel production, they're in the wiki... /shrug But, I would simply suggest not fiddling hard with it, but just keeping a minimum set inventory of each needed feed material/item in stock. I've never found use-rate constant enough for me to worry about micro'ing it, to be honest. I don't know of any item in DF that "needs" micro'ing to a point of being "finely tuned."


Production in DF is very bursty. It's bursty because it's a building/crafting game and the player is going to "burst" it if there's no current crisis going on that involves some other game element. The player sitting there, staring at the game, wants to engage with it and that's what they're going to do - Build something. This is a universal law of Building games for Building Game Fans. :) (The same goes for Management and other features - The player will poke them with a stick if there is not currently "something else" forcing engagement. That's why production/crafting is usually "bursty" and is usually what stresses materials, like Wood.)


PS: I do not generally do the whole min/maxing thing for production chains that need xx number of material for xx finished good product. The exceptions are games like Anno which catch on fire and explode if you don't do that... (And Anno-like production games) This isn't an Anno-like production game as dorf systems don't break down when stuff gets really hand-wavey... :) I don't think there are any tertiary feed materials to pile up that have no use outside of their chain. Maybe? Not counting raw leather, etc.)
harlequin_corps Mar 6, 2023 @ 2:07pm 
magma.. magma is the way to go. Either embark on a volcano or immediately spike a smelting floor on the lava lake under cavern 3.
8Balls Mar 6, 2023 @ 2:11pm 
Originally posted by harlequin_corps:
Stockpile management in steel production is a rather large decrease in efficiency. Take a look at the workflow. Hematite is sent to a smelter, it get's melted into iron, which then sits ready/available in the smelter. Lignite is sent to a smelter, it get's cooked into coke. It's sitting ready/available in the smelter. Limestone though. That does need to be stockpiled right next to the smelters. So in the pig iron job, the iron is there, the coke is there, the limestone is right next to the smelter. Then the pig iron is in the smelter, ready and available. Iron and coke is already in the smelter, Dorf grabs limestone, brings it to the smelter, cooks up 2 bars of steel.

Trying to use stockpile management, to have another dorf pull it out of a smelter, move it to a stockpile, when it's already in the smelter.. that's a bit wasteful.

What I don't like, is that the workorder itself is still not a priority job.

But the only way to priority a job is to do it manually in the smelter tasking, and sure, you can set 1 job for pig iron with priority on repeat, and then another job for steel with priority on repeat. And that works, it's faster certainly. But it does mean having to go through the smelters on a relatively repetitive basis and reset the taskings.

I don't want to do that.

So.. heh. my current methodology is to just have a banging lot of smelters and a large number of pig iron 1/1 jobs followed by steel 1/1 jobs. But its still TOOO SLOOOOW.. faster you damn dorfs.. FASTER.

You can get around the workorder priority by having specialized dorfs who wont do any other jobs. Build small villages for them with their own housing, tables, food stockpiles, etc., right near their forges. Once they have a self-contained life then burrow them to keep them from wandering around.

You can dramatically increase the efficiency of stockpiles with minecarts. Automatic minecart routes will move a bunch of materials in one go. It's still a hauler job sure but it probably doesn't hurt more than your crafter randomly deciding to smelt a material on the other side of the map. If you have a ton of forges running separating them into districts and hauling the intermediate goods around works a lot better than hoping the jobs stay in sync.

Magma forges are the way to go I always set up a pumpstack before setting up a big metal industry it's just not worth the effort with charcoal.
< >
Showing 1-13 of 13 comments
Per page: 1530 50

Date Posted: Mar 4, 2023 @ 11:27pm
Posts: 13