Mobile touch interface

I’m trying to have a mobile touch interface that only contains movement joysticks, which changes to a different interface that adds “Interact” button when I look at an interactable actor (using line trace).

To achieve that, I’m using line trace and branch, if I’m looking at the actor, then “Activate Touch Interface” where the interface has an interactable button.
If I’m not looking at the actor, then “Activate Touch Interface” where the interface has no buttons.

The problem I’m facing is the touch interface is being created by “Set Timer by Event” so it’s being created each 0.1 seconds (for example) over itself over and over again, making the joystick uncontrollable and spinning around when tested.

I tried to use “Is Valid” node but didn’t work for me, so I’m wondering what I should do to make my touch buttons show and hide without being created over and over again.

P.S. Widget buttons don’t work for my workflow, the buttons have to be coming from Mobile Touch Interface.

Thank you

You need to save a reference to the button in a variable and then check if that is valid before adding it again.

Can you please explain that further?
I just don’t know if this “Activate Touch Interface” node can work with the “Is Valid” one, if it does, it would be great if you can show a code for it.

I tried this and it’s still creating the interface over and over again:

You have this the wrong way round. If the interface is valid, you don’t need to add it again.

Thank you for your replies!
Unfortunately I did the right way like you said but still not working, I feel that the Activate Touch Interface is just different than a regular node:

I have never used Activate Touch Interface but I found this which may be relevant Hide touch interface - #7 by Bater