Yay, I've managed to get back to some more godot c# gamedev. So here's another short progress video. Collectable loot / gold. Also (not on the video), procedural dungeons can now be vast multi levelled explorations with some rather fun spiral staircases joining the levels.
I'm using a lot of node swapping (add/remove child processing) in and out of the tree now to keep frame rate up (100's / 1000's of nodes when level's and props are procgen'ed). I'm guessing this is normal as I can't see another sound way of telling the engine to ignore nodes from main thread processing when not relevant.
Also, I notice the engine pauses a little when new relatively complex node scenes are instantiated. I've developed some instance caching abstractions (A cache library of packed scenes and subsequent instances marked as reusable). So a re-use node from the cache is much quicker than a new packed instance one. But I'm at a bit of a loss on how to avoid or tune new instance load when adding to scene tree. You can see it a bit in the video just after the start. The cauldron's that appear are quite complex and the game engine pauses while it instantiates them from a preloaded packed scene (they are cached there after so once dead, the instance can be reused with better performance).