"PostInitializeComponents" for editor actors?

I need to run some code on actors which have been placed in editor.

However, the Actor Lifecycle (Actor Lifecycle | Unreal Engine Documentation) document doesn’t cover actors in editor.

Does anyone know of any functions which are called on actors placed in a level when the editor starts or they are placed in a level? I’m talking about the actual editor edit mode, not PIE or anything. I’m basically looking for the equivalent of PostInitializeComponents, except I need it to run in the editor.

Specifically, I have some decal actors whose textures are rendered from a userwidget. In order to accurately place the decal actors, light the scene, etc, I need to render the widget in editor so the decal has something to display. However, PostInitializeComponents doesn’t run on editor actors. I can’t run this stuff on the constructor or the widget renderer complains, and the data I need to render is on the actor’s components anyway.

The only option I can think of is enable actor ticking in editor and do it there, but that seems like a mess, since these actors don’t even need to tick in game.


Despite the description seeming to indicate otherwise (“Called when an instance of this class is placed (in editor) or spawned.”), AActor::OnConstruction fires when the editor level opens for instances which have already been placed in the level not just when they are placed, and seems to run at a time after components are initialized and available.