Actually I had some issues with the construction script sometimes not re-running when the actor is dragged. There’s a checkbox in blueprints to do this, but I couldn’t find a better way to do this in C++. There’s probably a better way to solve this, but this works pretty well:
.h
#if WITH_EDITOR
virtual void EditorApplyTranslation(const FVector& DeltaTranslation, bool bAltDown, bool bShiftDown, bool bCtrlDown) override;
#endif
.cpp
#if WITH_EDITOR
void ASomeActor::EditorApplyTranslation(const FVector& DeltaTranslation, bool bAltDown, bool bShiftDown, bool bCtrlDown) {
Super::EditorApplyTranslation(DeltaTranslation, bAltDown, bShiftDown, bCtrlDown);
this->RerunConstructionScripts();
}
#endif