Getting LightComponent->Intensity in construction script returns default value, not instance value

I have an actor with multiple light components (a point and a spot). I’m caching values on these lights for animation purposes.

In the construction script I get the component intensity using LightComponent->Intensity.

The value returned is the blueprint’s default values (5000) for those components. But I have edited the instance component intensity to other values (3000 and 9000), but LightComponent->Intensity always returns the default value (5000).

I changed the defaults in the blueprint editor, and tried again, and it returns the newly changed defaults, but never the instance value.

I’m getting the components in a function called in the blueprint’s construction script using:

	LightComponents.Empty();
	GetComponents<ULightComponent>(LightComponents);

I’m not sure what I’m doing wrong here. Is this returning the CDO components?

EDIT: So I found this old thread. Seems instance variables don’t actually exist until BeginPlay? How do you allow a construction script to respond to changes to component parameters? The modified values exist somewhere because the light intensity is changing in the editor viewport.