This issue has been mentioned for several times. The thing is this is not the proper way in dealing with a widget, in fact, casting to a widget is being used to get values not to set them (get values from widget functions). You’d better do the same things from the widget side and cast to the blueprints from there if you planned to set a value. Actually you CAN set a value of a widget from another BP, but it will affect all the children, that’s why I don’t recommend it. So go to the widget BP > bound function and start from there. Note that there is no any hit, overlap … events inside the widget BP, so if you’re gonna call a widget to change something on a specific event, you can create a variable (like a bool) and try to read the variable from the widget BP by a simple casting node. Hope this help.
If it’s your pawn, use ‘get player pawn’ as cast object inside the widget graph. If its game state, player controller … get them in the same way. If not, you must put the variable in one of the get-able blueprints. Unfortunately you can’t set a BP as a reference variable inside a widget (as far as I know). Because it won’t allow you to choose an initial value for that.