Ñ gestures, due below the quoteRegarding the "run carts with cages through magma" idea, one thing to consider is that cages have 3k size, i.e. they don't divide perfectly into minecart's capacity. This means that unless something like lone gabbro mechanism to 16 cages, it's going to pick up magma[83].
Having magma in the same cart is going to heat up the items (which makes for a method of organic garbage disposal, but there is a tradeoff between heat and the largest corpse you can store), and is going to create "a pool of magma" when dumped out with Trackstop. Though the latter can't even melt ice, testing it, and this means you'll lose part of your magma on each run.
(There's also magma-immune creatures, but for those one generally doesn't have to worry about bad thoughts at seeing their corpses.)
I used DF wiki to set pit up and I had same problems with pitting like you. I read on forums, I tried a lot of things. Some players were reporting they never hit this bug and they threw goblins down the pit always without accident. Not me. Then by accident I discovered something. I wrote a bug report on it and I hoped this issue was solved by now. It is not. Yesterday, when captured a goblin party I noticed the same thing, so I guess it is not fixed yet for some reason.
https://www.bay12games.com/dwarves/mantisbt/view.php?id=10564
Acknowledged, but still open.
The thing is a still suspiciously blinking war dog on chain after siege ended. Normally war dogs don't blink. Pasturing it and then retying it back to chain fixes issue with pit escaping prisoners. Like a magic.
Though, I build my pit (size 9x9 with 9 hatches) underground. My pit has 2 floors depth and on lowest floor I have 10x9 bridge. Also I have no mud around hatches on my pit or other slippery spills. Hatches are forbidden and not pet passable. Call me paranoid, but my pit works now 100% all the time.
I looked at your dog with dfhack. It's not just the troll-bridge having a relation; the dog has pathing goal 1 tile to the south that somehow goes out of the south entrance, turns around outer wall SW corner to the north, then again NW corner to the west, and ends on 2. floor tile on its run hugging the fortress north side outside.
|
|
This square hereWalling off that square freezes the game(in 44.09), to the point of fpause not working (unlike with 1x1 tavern freeze).
Building a wall or placing obsidian with gui/liquids on exactly that square, and no others, stops the dog blinking and removes crash by raising the bridge. However, Snang still escapes, regardless if bridge is raised first or second.
Digging a ramp next to the chain so dog has alternate theoretical unchained path to the square makes it stand on the ramp, and allows safely closing the bridge. Snang escapes in this case too.
(Unintuitively, it's not where the dog goes when placed to pasture then let go - in that case they'll sniff a pond near the south end of map before sniffing around dwarves and going to dining room on 2nd floor.)
The case with the dog seems rather similar to animals getting stuck on pet-sealable doors. Indeed, disabling pet-passability on doors built in the way has no effect, while forbidding them either way stops the game.
To stop the pathing, one needs to set chained units' idle area to their current position. So wrote a script to this fix (once, or periodically with repeat plugin):
--Fixes all chained units that want to idle elsewhere.
local chainfixes = 0
function checkPathing(unit, unitChain)
if unitChain.z ~= unit.idle_area.z or math.abs(unitChain.x1-unit.idle_area.x)>1 or math.abs(unitChain.y1-unit.idle_area.y)>1 then
unit.idle_area.x, unit.idle_area.y, unit.idle_area.z = unit.pos.x, unit.pos.y, unit.pos.z
chainfixes = chainfixes + 1
print("Fixed unit " .. unit.id .. " attempting to idle outside chained area.")
end
end
for i, chain in pairs (df.global.world.buildings.other.CHAIN) do
if chain.assigned and chain.assigned == chain.chained then
checkPathing(chain.chained, chain)
end
end
if chainfixes ~= 0 then print("Fixed " .. chainfixes .. " chained units idling.") end
I'd save it in hack/scripts/fix and run it with repeat -time 1 -timeUnits days -command [ fix/pathchain ] -name pathchain in onMapLoad.init
Whether this approach could solve other fps freezing issues or cause others on their own I don't know.
PS: Btw, seems like the lone doggo made your fort take around 15% longer for next five days, based on like two tests.
PPS: As for Snang, I got interrupts both by pasturing and rechaining and even butchering the dog. Couldn't figure out how to make them behave like other trolls, either.