Every time latent node is executed, it create new proxy object

Which is understandable, because it works trough static function.

But I’d like to have one proxy object per single node, as sometimes I want to execute this node few times, ie. player must press input button few times, one for action begin and one to confirm it. While wires are connect to single node (call it WaitForInputConfirm), it will create multiple proxy objects, which right now does break anything, but I’d also like to create proxy object which will need to track their internal state, and if old object will be simply replaced by new one I will lost everything.
For example, simple state machine contained within single node, node which will work based on timers to create combos.

My problem here is that play can press input keys as many times as desires, and all that input is redirected to ability with tasks. I can prevent input when ability executes, but in some cases I don’t want to do it (like channeled ability), I’d rather have task, which will track how many times user pressed input and make action based on it. (ie. second press - cancel).

Other thing for example I would like to store some state inside them (ie, max delay time, checked by timer, for user to confirm action), which currently would work, as new object have no idea about old object timers.

Is there any good way to, to make sure only one proxy object will be created per node, and it will be reused for the entire life time of said node ?

If you want to execute the node a few times, then couldn’t you have a single object that those proxies trigger? If the system requires one proxy per execution, then don’t change the system – work within it!

I think the behavior you want is similar to UKismetSystemLibrary::RetriggerableDelay. Maybe looking at that implementation will help.