Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Is there any way to destroy a non-existent bee colony?  (Read 716 times)

itg

  • Bay Watcher
    • View Profile
Is there any way to destroy a non-existent bee colony?
« on: December 04, 2013, 06:41:00 am »

Beekeeping bug are nothing new, but at the moment I've got a project for which beekeeping is actually kind of important, and the workarounds I'm aware of aren't helping.

The problem at the moment is that my beekeeper keeps trying to install a non-existent colony in a hive. I only have beekeeping enable on one dwarf. The "colony" is not in his burrow, but the beekeeper doesn't care--he just ignores the burrow. I've tried making the "colony" inaccessible by spawning magma on and around the spot, but it just causes job cancellation spam as the moron keeps trying to harvest invisible bees but can't find a path to them.

Is there any workaround for this circumstance? I'm fine with using dfhack.

4maskwolf

  • Bay Watcher
  • 4mask always angle, do figure theirs!
    • View Profile
Re: Is there any way to destroy a non-existent bee colony?
« Reply #1 on: December 04, 2013, 06:54:16 am »

One thing that works is an interesting thing that helped with statue trapping back in 2-d. I had something similar happen pen to a dwarf, and I conscripted him and activated his squad, if I remember correctly. Also deactivated beekeeping, but that had nothing to do with it.
« Last Edit: December 04, 2013, 07:00:23 am by 4maskwolf »
Logged

Larix

  • Bay Watcher
    • View Profile
Re: Is there any way to destroy a non-existent bee colony?
« Reply #2 on: December 04, 2013, 07:00:39 am »

All you need to do is disable the "install colony" setting on the offending beehive, then switch it back on after the game has processed it. To find the correct hive, the easiest way is to go through the 'j'ob screen - look for the "install colony in hive" job assigned to the stuck dwarf, zoom to the building. That's the culprit. Messing around with the beekeeper or the spot won't properly stop the job - it is generated by the hive and will never properly cancel unless you "reboot" the hive.

Once the faulty job has been cleared by toggling the install option, the hive (and beekeeping in general) will work properly again. With this simple fix in mind and an open eye for errant beekeepers, you can run a forty-hive-five-beekeeper industry without a hitch.
« Last Edit: December 04, 2013, 07:02:23 am by Larix »
Logged

itg

  • Bay Watcher
    • View Profile
Re: Is there any way to destroy a non-existent bee colony?
« Reply #3 on: December 04, 2013, 08:26:58 pm »

Ah, that actually makes a lot of sense, now that I think about it. I must have destroyed a colony after the hive generated the job to go harvest it, but no one told the hive, so it keeps sending the drunken midgets to the last known location of the bees.

So far, it looks like the "reboot" did the trick. Thanks!

wierd

  • Bay Watcher
  • I like to eat small children.
    • View Profile
Re: Is there any way to destroy a non-existent bee colony?
« Reply #4 on: December 04, 2013, 08:47:23 pm »

As far as I have been able to determine, the bug is caused by a combination of 2 things:

1) the hive/bees do not get locked for task, meaning they can be harvested by somebody else.
2) there is no job cancellation check for item misplaced or destroyed on bees/hives.

Forcing the game to recompute available hives for the install colony job makes it put a valid source on the job, allowing it to be completed. "Rebooting" the hive does exactly that.

The lack of a cancellation message makes it difficult to consistently track when urist McBeekeeper decides to watch the grass grow instead of working though. It would be nice if toady put a simple item availability check on the beekeeping jobs that forces the equivalent of this reboot when the selected hive is invalid.

Until then, the hive reboot method is a suitable workaround. It's easier with a single beekeeper though. Less likely for one bearded bastard to cause a race condition for a hive.
Logged