Not sure if this is the best way of doing it, I made it in about 2 minutes really quickly. In the UMG, I made 3 variables, an integer (TempScore), float (ScoreTickTimer) and bool (IncrementScore). All defaulted to 0, 0.0 and false.
On Begin Play, set the Increment Score to true.
On Tick, check if Increment Score = true, if it does then create a simple timer by getting DeltaTime + ScoreTimer. If this value is >= 0.05 (You can change this value to be however fast you want the value to increment in seconds. For example; in this image, the score will increase every 0.05 seconds. If you change this to 1.0, then the score will increment by 1 every second.) Then if the value is greater than 0.05 we want to reset it so that it can start incrementing again from 0.
Then we increment TempScore by +1 and check if this TempScore is equal to the Player’s score. If it is equal then we don’t want to increment anymore so set IncrementScore to false. Otherwise if it’s not equal, we want to set the text element on the HUD to be the TempScore.
Note: To get the player, on BeginPlay you can “GetOwningPlayerPawn”, cast this to your character and promote it to a variable.