Changing dynamic material instance parameters in blueprint ONLY working when run as Standalone Game

In my project, I have a dynamic material instance set up to change the colour of a laser sight when locking onto a target. Weirdly enough, it works perfectly when I launch the game as Standalone Game, but in any other way (including when the game is packaged), the particle doesn’t change colour.

When run as standalone game:

When run from packaged executable:

Construction script where the dynamic material instance is defined:

Event graph where the colour parameter is changed:

Solved by moving the definition to trigger on BeginPlay; I guess construction scripts are only triggered in-editor