thats the difference between exists and ready. unless you’re spawning dynamically all actors should exist at the time of BeginPlay, but they may not be ready.
on beginplay you can add an object to the load list, and after you’ve done whatever initialization you need you can remove it from a loadlist and call ready.
there are also world events you can use UWorld::SpawnActor
you can also just check for managers directly from your load manager. (make a list in editor)
you can bind to the ready signal for specific things, say you have a manager class that you need to know when ready.
you should also know whether its a first time load or load from save, this is likely handled in your Game Instance so it should be know before GameMode Beginplay. If you’re loading you may need something like GetAllActorsWithSaveGameInterface.