GEngine* is null when actors instantiate during editor startup?

(…Continued)

But really, none of the constructor matters. Everything fails during editor startup, where trying to retrieve the Gamedata Singleton always aborts with the “Global data could not be found due to GEngine being null.” error. (The one that is just checking to see if the GEngine pointer is valid.) So most of my code never runs. The constructor fires, it tries to get the UEngine object, but the pointer is null so I can’t get the GameData Singleton, so I can’t get the class type of the component, so I can’t create the component.

If I open up the blueprint class from the content explorer, and hit the “compile” button, everything works fine, because GEngine is valid at that point, and my code works. If I drag an instance of the object into the level, it creates itself with the correct components. It’s just during editor startup that everything breaks due to the GEngine pointer not being set.

In the meantime I’ve just given up on being able to have actors create their own components in code. That seemed like the least critical part of the workflow. But it seems like a major hole in native->blueprint compatibility in the engine.