The Widget's OnChange event fires on begin with no reason.

I have to implement this in every place:

Check is it because you change default text.

I assigned a default text via the Designer Tab. But I find it weird that it shoots a blueprint event that was meant for the user to add functionality.

I worked with UMG quite a lot, and never encountered this, and I don’t quite understand why there’s a delay node at construct (I assume it is in UMG graph)… unlike normal BP, UMG’s Event Construct is not Event Begin Play.

I think so, seems like it by design, very annoying and weird design.

It makes no sense that I have to block it in every place to avoid problems, it should be changed!

It’s a problem with the order of operations used to construct the underlying SEditableTextBox, it’s not by design, just a bug. Not entirely sure why this is such a big problem, your logic should be largely unaffected by the text simply changing. You should be more focused on the text being committed.

When they user is inserting something to a certain field it causes some other functions to work that shouldn’t be working on the beginning of game.