I feel like this is quite a big issue. Actors are always spawned and if they were not meant to, they are immediately destroyed.
Line 416 of LevelActor.cpp (UE 4.15) - is supposed to check whether a spawned actor would encroach blocking geometry based on it’s Default Object - but this check always passes. I’ve tried with different actor classes and plenty of collision settings, but it does absolutely nothing. Even though actor spawning should fail, it never does.
When PostActorConstruction() runs on an actor, it checks for encroaching geometry there and destroys itself if it’s supposed to. This is a big deal when you’re conscious of memory use. My Spawn Point system tries to respawn it’s object a few times in short succession if the original spawn fails, but all that means is that it’s creating several actors in a short space of time that are just filling up valuable memory. Since Actor Spawning is an expensive operation, I think this needs refactoring or fixing.