Dwarf Fortress Bug Tracker - Dwarf Fortress
View Issue Details
0002540Dwarf FortressDwarf Mode -- Jobs, Item Improvements/Decorationspublic2010-07-01 22:412015-07-10 12:41
ChickenLips 
 
normalminorsometimes
newopen 
AMDWindowsXP
0.31.08 
 
0002540: Inconsistent ethics when crafting with goblin bones
A craftsdwarf's workshop within 10 tiles of numerous unused bones (about 30 or so different stacks) and decorable items (most undecorated) periodically refuses to function, issuing job cancellations for "Needs improvable item," though with no other changes the job may be recreated and will be done normally a few minutes later.

I have checked the following:

1) No burrows are relevant here. The dwarf in question ("Tourmaline" Otinsolon) is assigned to no burrow. Indeed, no dwarfs are assigned to any burrows.

2) Lots of furniture is available. In a stockpile next to the workshop, there are 14 undecorated masterwork wooden beds, 7 doors (2 of them decorated in bone), 5 thrones (1 of them decorated), and a few other things.

3) Lots of bones are available. There are three nearby stockpiles, each of which contain a number of stacks of bones. The nearest one contains over 20 different stacks of bone, for 5 different creatures (including snailman bones... that was unexpected).

4) If I create another job and wait for a few minutes for the bonecarvers to finish the hauling jobs they pick up, they'll go ahead and decorate something. It just happens here for no apparent valid reason.
Very difficult to reproduce, as it is intermittent. I've seen it 2 or 3 times in this ongoing game so far, and caught it this time in a save about to happen within a few seconds. It has only happened since the fortress became fairly large and complex, and I'm not sure what feeds into it.

But, with that caveat:

1) Add a Decorate with Bone job to a craftsdwarf's workshop with many bones and decorable items nearby.
2) It *may* issue a job cancellation for "lack of improvable item."
Demonstrative save:
http://dffd.wimbli.com/file.php?id=2612 [^]
No tags attached.
Issue History
2010-07-01 22:41ChickenLipsNew Issue
2010-07-02 00:56ChickenLipsNote Added: 0009502
2010-07-02 03:37ChickenLipsNote Edited: 0009502bug_revision_view_page.php?bugnote_id=0009502#r3661
2010-07-02 04:57TelarinNote Added: 0009508
2010-07-02 11:44ChickenLipsNote Added: 0009535
2010-07-02 12:18ChickenLipsNote Edited: 0009535bug_revision_view_page.php?bugnote_id=0009535#r3679
2010-07-07 13:26ChickenLipsNote Added: 0009735
2010-07-11 01:31ChickenLipsNote Added: 0009923
2010-07-12 16:11ChickenLipsNote Edited: 0009923bug_revision_view_page.php?bugnote_id=0009923#r3910
2014-01-26 08:54FootkerchiefSummaryIntermittent Decorate with Bone job cancellations for "Needs Improvable Item" despite high availability => Inconsistent ethics when crafting with goblin bones
2015-07-07 19:00Larix2Note Added: 0032854
2015-07-08 14:28LociNote Added: 0032863
2015-07-08 16:59Larix2Note Added: 0032866
2015-07-08 17:57Larix2Note Edited: 0032866bug_revision_view_page.php?bugnote_id=0032866#r13197
2015-07-10 06:13LociNote Added: 0032872
2015-07-10 12:16Larix2Note Added: 0032874
2015-07-10 12:37LociNote Added: 0032875
2015-07-10 12:38Larix2Note Edited: 0032874bug_revision_view_page.php?bugnote_id=0032874#r13201
2015-07-10 12:41Larix2Note Added: 0032876
2015-07-10 12:46Larix2Note Edited: 0032876bug_revision_view_page.php?bugnote_id=0032876#r13203
2015-07-10 12:50Larix2Note Edited: 0032876bug_revision_view_page.php?bugnote_id=0032876#r13204
2015-07-10 12:50Larix2Note Edited: 0032876bug_revision_view_page.php?bugnote_id=0032876#r13205
2015-07-10 15:03Larix2Note Edited: 0032876bug_revision_view_page.php?bugnote_id=0032876#r13206

Notes
(0009502)
ChickenLips   
2010-07-02 00:56   
(edited on: 2010-07-02 03:37)
Correction: It does *not* resolve itself. The workshop showed the A for job active, but when the bonecarver arrived, it canceled the job again. It *will* do bone crafts, but it, for whatever reason won't recognize the improvable items next to it. (And, for that matter, the fortress menaces with spikes of improvable items - there are at least a hundred or so furniture items sitting around in stockpiles littered throughout waiting to be improved. Furthermore, the jewelers have no problem finding them.)

EDIT: A bit of further testing shows it is not connected to that particular location or workshop, as I created another one in the middle of a huge warehouse of completed furniture (very close to the jewelers' workshops, where decoration goes on without problems), and it still gives that same error message.

It had successfully decorated a number of them before, but it appears to be broken now. Perhaps it's checking the first X number of furniture pieces, finding them already decorated with the bone in question (here, macaque), and then aborting before searching further?

(0009508)
Telarin   
2010-07-02 04:57   
I don't think you can decorate furniture with bone.
(0009535)
ChickenLips   
2010-07-02 11:44   
(edited on: 2010-07-02 12:18)
http://i50.tinypic.com/2ngym1k.jpg [^]

(I use no mods, except IronHand's graphics, and have only made certain irrelevant changes (eliminating stat atrophy, adding the [SHELL] tag to hooves, and a couple of other unrelated things).)

(0009735)
ChickenLips   
2010-07-07 13:26   
Wow... bone decorating has just ground to a halt. Every once in a while they'll decorate a single piece of furniture, but then it goes back into the no-improvable-items cancellations again. So whatever is preventing it earlier on seems to still be in effect. And, for the record, I've got scores of every kind of item available, and have tried multiple craftsdwarf's shop locations.
(0009923)
ChickenLips   
2010-07-11 01:31   
(edited on: 2010-07-12 16:11)
Alright. I saw one comment in the forums (http://www.bay12forums.com/smf/index.php?topic=61162.0 [^]) suggesting this is caused by the fact that the bonecarver is grabbing goblin bones, at variance with the default dwarf ethical constraints, and the game is giving a misleading job cancellation message.

I'm currently testing this, and it seems to bear out. I forbade all the goblin bones about, and my bonecarvers have done some deco work with hoary marmot and rhesus macaque bone, so it's promising.

It's still not conclusive, but if it is indeed the case, then the bug report title and/or text should be altered to reflect that the issue is that bonecarvers are grabbing bones of sapients, dragging them all the way to the Craftsdwarf's Shop and then canceling the job, afterward issuing an erroneous job cancellation message (the aforementioned "no improvable items" message).

EDIT/FURTHER INFO:

Yeah, pretty strange. It's not totally clear. Bone deco did resume, but I accidentally missed one of the goblin bone stacks, and my bonecarver *did* decorate a casket with it. But when the next goblin bones came in, the job was canceled. Perhaps it's a matter of only certain items being bone-decorable, but it being a matter of the game not restricting its selection of items to decorate to those ones?

As it stands, a fair statement of it seems to be as follows: I can freely make bone crafts and crossbows with goblin bone, and I can *sometimes* decorate *some* items with goblin, but often it reports no improvable item despite a fortress brimming with scads of items in stockpiles functionally equivalent to the item it just decorated with a goblin bone. (E.g., I do have more undecorated caskets/coffins in stockpiles nearby.)

(0032854)
Larix2   
2015-07-07 19:00   
As of 0.40.24, this bug doesn't seem to exist. I had no trouble at all decorating items with bones from sentient creatures (elf and human).
(0032863)
Loci   
2015-07-08 14:28   
A failure was reported on the forums a week after v0.40.24 was released, and I was able to reproduce this error in < 5 minutes using goblin bones.
(0032866)
Larix2   
2015-07-08 16:59   
(edited on: 2015-07-08 17:57)
Interesting - i found some goblin corpses and got the same effect. The bones were "<goblin's> bone [6]", listed under "corpses" (not body parts), presumably the remains of a limbless torso. The job indeed first picks the bone stack and then fails to locate a legal decoratable object (cancels a full job list of decorate jobs without looking for other available bones).

Decorating with "<goblin's> upper arm bone [2]" (listed under "body parts") worked just fine. I suspect it's indeed the "corpse" bones that don't work for decoration, while "body part" bones work correctly (butchered/slaughtered animal bones are listed as body parts, too). It's specific to sentients only insofar as sentient torsos can't be butchered to "bodypart" bones, but may rot directly to "corpse" bones.

(0032872)
Loci   
2015-07-10 06:13   
If you lack goblin bones for testing, you can use lua in dfhack:

select a goblin corpse

!dfhack.gui.getSelectedItem(true).unit_id

note unit_id value, then select a bone stack

dfhack.gui.getSelectedItem(true).unit_id = <goblin id>


This can create "body part" bone stack that (likely) won't work for decoration, but is still fine for crafting.
(0032874)
Larix2   
2015-07-10 12:16   
(edited on: 2015-07-10 12:38)
I have goblin bones for testing (.34.11 fort and that one "upper arm bone" stack above). Even if i had dfhack, i wouldn't fully trust it to duplicate correct in-game behaviour, especially were such an "object origin" bug is in play.

Goblin bones _work perfectly for decorating and throw no errors whatsoever_ if they are rotted remains of a cut-off limb. "This is a stack of five well-crafted one-humped camel bone bolt. This object menaces with spikes of masterfully worked goblin bone by Stâkud Arzescerol." Repeatable with several bone stacks.

What failed (consistently) were the bones listed as "corpse", from rotted limbless torsos. Those are the only bones you'll get when goblins are killed by "blowing apart", i.e. dropped from great heights or hit with very fast minecarts.

Case in point: giant olm bone [18], listed as "corpse" - item is displayed as "O", not "²"; ordering decoration brings the bones to the workshop but cancels with "needs improvable item" in spite of such items being abundant (no linked stockpiles or anything, can access the whole fort's stocks). Looks like it's not an ethics, but a "bone type" problem.

(0032875)
Loci   
2015-07-10 12:37   
> Even if i had dfhack, i wouldn't fully trust it to duplicate correct in-game behaviour, especially were such an "object origin" bug is in play.

That's the point. The *only* difference between the dfhack'd stack and a regular pile of butchered dog bones is the fact that the dfhack'd stack is associated with a sentient unit. It changes exactly one item parameter, and that one parameter is sufficient to trigger the bug.

I don't know why your arm-bone stacks worked, but there is certainly more than one parameter at play there; trying to nail it down to a specific one through random guessing (e.g. "corpse" vs. "bone" stack) isn't very efficient. Maybe an arm bone doesn't "imply sentient kill", for instance, while a "corpse" or "butchered bone stack" does.
(0032876)
Larix2   
2015-07-10 12:41   
(edited on: 2015-07-10 15:03)
Goblin (and other sentient creature) bone stacks listed as "body part" consistently work for decorations. Repeatably. Those were four human and elf and one goblin arm/leg bone stack in .40.24, three goblin in .34.11.

A "corpse" bone stack from a non-sentient unit (giant olm) demonstrably throws the listed error when trying to decorate with it. It's perfectly usable for crafting.

I think that pretty much clinches it. A dfhack test (checking in which category the resultant bones are listed and hack-butchering a non-sentient corpse for comparison to ensure results aren't artefacts of dfhack itself) might provide further information.

My suspicion is that the "decorate with bone" reaction sources any bone (corpse or body part) like all other bonecrafting jobs, but only has "improvable object" definitions when trying to decorate with "body parts" and no definitions for decorating with "corpses". Thus, the reaction can legally source "corpse bones", but cannot find any objects to decorate with them and throws the resultant error.