[A 24.10.5] Hearthlings throw everything on the floor when changing tasks

I’m not sure how to capture info for a proper report on this, but observed:

  • Items were queued which required stone, which I didn’t have
  • Mason had items in backpack unrelated to masonry, presumably to move to storage
  • Miners uncovered a stone block; Mason went to pick it up at the mine
  • Mason picked up stone block and began moving back to town - interesting to note that this block apparently didn’t count as available
  • Another Hearthling dropped a stone block into storage back at town - presumably making Stone show as available again
  • Mason threw everything it was carrying on the floor - stone block, skins and jerky in backpack, right there in the mine on the floor - checked backpack, confirmed empty
  • Mason ran back to town, got stone block from storage, and crafted queued item

o.O

The town is littered with stuff all over the floor, despite there being dozens of empty storage spaces of the right types. Construction sites have pots of stew and animal skins all over them.

It looks like if the Hearthling’s AI decides a new task has higher priority than what it’s currently doing - and almost everything has higher priority than moving loose items to storage - it immediately throws everything on the ground wherever it is, and runs off to the new task.

Edit: I should mention, that there are times the Hearthlings all stand around idle and/or talking even with stuff all over the ground, when there are no pending construction or harvest tasks.

Edited edit: twice I’ve just seen a Hearthling pick up a workbench and go to place it where ordered, get almost there, then throw it on the ground and run off to do something else. Interestingly, it cleared the “place item” task - the workbench (in this case a Forge) just sat on the ground sparkling with no move-item green arrow tag on it any more. Selected it, set up an order for placement - same thing happened, someone ran over and picked it up. Then threw it on the ground and ran off to do something else, clearing the placement tag but leaving the item undeployed.

– Make that three times. Now they’re throwing it on the floor where I ordered it placed; I think maybe deploying itself is broken, or at least for the forge. Or at least this one. No idea tbh

this is indeed behavior i notice often aswell. might be better if hearthligns are smart enough to go “hmm maybe i should put it in the nearest storage AND THEN go grab the thing i want”

1 Like

AI-code-wise … and taken with the rock of salt that my only real AI coding experience is banging my head against it in another game … it seems like there’s a kind of circular priority of overrides going on. Rock-paper-scissors interrupts, where anything can be interrupted by a number of other things; and then, after switching, THAT task can be interrupted by something else. So it’s hard for them to finish what they start.

Instead of a pure priority-based “this shiny thing has caught your attention” system, I wonder if it’s feasible to have a sort of lock on certain tasks until completion? Like, moving something to storage could lock the Hearthling to all interrupts except a short list of like (Town alert, something hit me, I’m literally about to starve to death).

I’m of course flailing around blind guessing at the code, so I’m not sure how much constructive help I can really add; but it does seem like they’re trying to do too much at once, and therefore finishing none of it. Like me in real life!

2 Likes

I love when they have just ran 20 miles to get something, just arrive in front of the object and then decide to go eat instead leaving the said object behind… I don’t think there is much to be done about it.

Then you run into one of the main complaints people had with Banished where your populace starves to death trying to pick something up if you queue jobs too far away or if the pathing suddenly changes to make them go the long way around an obstacle.