Can anyone tell me why the variable goes into the negatives instead of aborting the substraction and creating the widget?

I’ve been over this a hundred times and I can’t reproduce the problem.
I’m not going to try to duplicate your reroutes to see where those might be causing it, but doing it cleanly does not have the issue so I am going to say that is where your problem lies.

This works 100% of the time for me.

In my version the character doesn’t change so I’m getting a reference to it in the blueprint’s BeginPlay.

I even tried a few variations on how you might be using this to see if I could find a similar problem… they all worked fine.

It must be in all of those excessive reroutes.

This is what I was testing with. [Diamonds][4]
If you can break it the same way we’ll know where the problem is.