Collision Problem: Cashed overlap list isnt updated after Spawn Actor

The problem is the following:
I have a sphere collision, and I spawn an actor inside it with Spawn Actor from class.

Then the sphere colision’s cached overlap list isnt refreshed, and Get Overlapping Actors node returns with a 0 length array.


Then if I make some transformation with the spawned actor, then the Get Overlapping Actors node returns with that actor what was spawned, and was unrecognised before.

Is it a bug, or there is some correct solution for this problem? (I would like to keep the project blueprint only, so the c++ collision update isnt a choise unfortunatelly)

whenever you call spawn actor it is put into an engine action queue with a 1 frame delay.

you are most likely requesting the overlap for something that doesn’t exist yet. like sending out an email, and expecting a response within the millisecond.

so it won’t exist until the next tick(), so to capture the next tick, put in a Delay(.01) which will trigger on the next tick() after its InitializeComponent() and BeginPlay() can be executed.

Thank you for your answer!

The problem is that, I have tried it before and it still return with 0 length array, until I dont make a transformation with the spawned actor

my only thought is that the actor is either asleep in regards to physics (this should only happen after like 30 seconds of no motion), or it is to far away from the playerController (in the vast majority of games that will just be the PlayerCharacter)

is this actor being spawned at world start, or at an arbitrary point after the first round of BeginPlay()

if the actor is meant to be in a collider when it spawns, then you can have the actor check for if it was overlapping in its own BeginPlay() that way it will be fully instantiated, and fully in the world.

I made a fresh project, and the good news:
The way I would like to use the collision, it is working right.
Bad news:
In this case I mess something up in my main project.

Thank you for your answers, and if you interested in share the solution (after I have found it), it would be a pleasure of mine to share it with you

it might be a bit embarrassing, but this forum is meant to help not just the person asking the question now, but those that have the same or similar question in the future as well (presuming the engine doesn’t change enough to invalidate the answer)

it would be helpful if you would include the part that was incorrect, and your solution and mark it as the answer.