Dwarf Fortress

Dwarf Fortress

Mechanos Feb 18, 2023 @ 2:24pm
Automating labor
What do you currently use? Up until now, I've been manually creating custom labors and assigning them myself. This works great, but starts to get cumbersome beyond the 50-100 dwarf range, when I find myself having to check out and assign new joiners constantly.

Enter DFHack, and Dwarf Therapist. I tested Dwarf Therapist 3 weeks ago or so. It seemed to only make things more difficult on me.. quite the learning curve. Worse, it's not even an option right now, as the last release was 2 weeks ago, and people asking about it on github are met with "It was never claimed to be compatible with this version." Right.

So a few days ago, I learned about autolabor and labormanager in dfhack. Spent some hours learning autolabor and creating a giant custom script for it, in an effort to help my dwarves specialize. ....this has been an exercise in futility. Autolabor seems to prioritize keeping dwarves busy, over letting dwarves train in what they're good at, which results in situations where.. something needs mined, but our best miner was temp assigned to help farming, so it chooses other dwarves to mine instead, which results in them mining extremely slowly (and possibly affecting the chance of a drop - some info sources say it doesn't matter, but some say mining skill will help *shrug*). Worse, the algorithm seems to not check for when the best miner is freed up, so he'll continue to do other jobs, while the bad miners continue to mine. This is quite frustrating to watch, and led me to checking out the source code for autolabor myself, and suggesting a workaround that lets you specify jobs that should hold out for the best skilled dwarf. To this, the dev of autolabor seems.. uninterested.. and more interested in talking up how infallible autolabor is, and pointing fingers at Bay12 for how labor is currently assigned (even though vanilla labor assigning seems to work just fine?) SMH.. this almost makes me want to learn how to compile c++ and just modify the plugin myself.

Looking at labormanager, while I haven't tested it, based on the description it seems like it would be probably even worse, prioritizing getting jobs assigned in the shortest amount of time.. but not letting dwarves actually do the jobs they're good at, unless they just happened to be available at the time.

So unless I want to learn c++ (tempted), I feel like I'm back to manually assigning my jobs, or just letting autolabor poorly handle skilled dwarves. What do you guys use, if anything?
Last edited by Mechanos; Feb 18, 2023 @ 2:26pm
< >
Showing 1-6 of 6 comments
Greηdel Feb 18, 2023 @ 2:55pm 
I use autolabor after an initial does of "autolabor-artisans 1 1 1" to start everything where quality is an issue with just the top dwarf. Equivalent of running "autolabor MINE 1 1 1" for everything with quality levels. (IE not mining.) For anything I need more direct control over, I disable that specific skill in autolabor and do it manually via Therapist. (In case you need to train somebody else up to be the top choice, etc.) The files to make it work with 50.07 are on the github.
Mechanos Feb 18, 2023 @ 4:27pm 
I started with artisians, but soon realized there were some jobs I preferred having 2 workers on, some I preferred having 1 worker on, so I split it up and individually set everything now. That said, doesn't really help much. Even telling autolabor to select only the top dwarf for a job, if the top dwarf happens to be busy at the time, it "will" assign that position to another dwarf instead, because the top dwarf pool appears to be constructed out of currently not busy dwarves, rather than all existing dwarves. So direct control definitely is required, if you care about leveling up dwarf skill.

As for DT, according to github, the files to make it work only allow DT to read from the game, but not write to it yet. Or are they mistaken? I already have the 50.07 ini, but haven't tried to use it because of what the github people are saying.

You do give me an idea though. If I can find some way to automate cancelling current tasks with dfhack, then re-apply autolabor with minimums, in theory this should help lock down positions to the highest skill dwarves, since they wouldn't be busy at the time of assignment. And I'd just need to re-apply this once in a while. So far I'm not having very good luck with finding a way to automate cancelling tasks though.
Pok Feb 18, 2023 @ 5:28pm 
maybe im in the wrong here :) also everyone of us can play as he like.

i find the New way to the job labos int the steam version fine... i mean without DFhack and other tools...
but it clearly not that lavel of otpmial with the tools...

i tend to spec my dwarves via Workshops now... so if i want a stoneworker, i create a workshop for him and so one ...
that works especialy good for armor and weaponsmiths... but i have to play around that style... and it gets of course bad with many dwarfs.

i see that my answer is not as the same level here because its clear about 3rd party tools :) so i just throw my 2 cents here... maybe so can combine this :o ?
Kazaanh Feb 18, 2023 @ 6:13pm 
I let my dwarfs to what they want anywhere.

I just have more than 1 workshop ie: 2 mason workshops so 1 is dedicated my Mason with highest level, and second is free to use for anyone to level up. Usually blocks crafting so my high skilled mason does not wastes time on it.

But new labor system is really good, it removes a lot of micro managing and i never used dwarf therapist or dfhack labor.
Mechanos Feb 18, 2023 @ 6:49pm 
Originally posted by Pok:
maybe im in the wrong here :) also everyone of us can play as he like.

i find the New way to the job labos int the steam version fine... i mean without DFhack and other tools...
but it clearly not that lavel of otpmial with the tools...

i tend to spec my dwarves via Workshops now... so if i want a stoneworker, i create a workshop for him and so one ...
that works especialy good for armor and weaponsmiths... but i have to play around that style... and it gets of course bad with many dwarfs.

i see that my answer is not as the same level here because its clear about 3rd party tools :) so i just throw my 2 cents here... maybe so can combine this :o ?
Nah you aren't wrong. Default system is great, and honestly works better than what dfhack provides in my opinion. I'm just on like, my 10th fort or something, and am getting tired of assigning jobs to groups of 20+ immigrants over and over lol. Or forgetting to replace some random job when Ms Master Crafter decides to go insane and starve herself, while I'm distracted dealing with a cyclops or something.

DFHack is great for many other things though. For example, I was able to export my entire work order list, and now whenever I make a new fort, it automatically loads my giant list of work orders back in. Normally this would take me a really long time, but now it's instant.
ByTheNumbers Feb 19, 2023 @ 12:26pm 
I've got used to the default means of assigning labors. I've been going back and forth between setting up work details and assigning dwarves to specific workshops or a mix of both. I have noticed some specific labors are a bit finicky. I'll setup a detail for animal trainers as I like specializing a few dwarves in that. Then there are the mechanics. I like to assign specific dwarves to a mechanics workshop so they can pump up their skill to push out those masterwork gears. Setting a work detail for it is not great as it very much limits the speed of traps and such getting built.

I haven't needed to use Dwarf Therapist for labor assignments, thankfully. However, it would still be useful to assign dwarves to military squads as it's a pain to pick out candidates with the default UI.
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Feb 18, 2023 @ 2:24pm
Posts: 6