As of 12/30/2022(UE5.1) Use the below code also make sure you change the onbeginoverlap for the second AddDynamic. I just copied and pasted and took me 15 minutes to figure out I missed changing this. Also putting them in begin play worked form me instead of the constructor and I am not getting any kind of double messages.
/** called when something enters the sphere component */
UFUNCTION()
void OnOverlapBegin(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult);
/** called when something leaves the sphere component */
UFUNCTION()
void OnOverlapEnd(class UPrimitiveComponent* OverlappedComp, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, int32 OtherBodyIndex);
PS. Using Visual Studio Code with some plugins really streamlines the definition creation and other QOL.