ok its definatly a bug just did the exact same setup in my other project and it works fine
inside widget
inside custom playerstate
and when i run the game and press the button it calls the custom function and prints the message
i guess umg in 4.14 is bugged will have to upgrade to 4.15
thanks anyway guys