How to create a blueprint function or node that only runs once per node instance?

To be clear, I was suggesting a static local variable and not a global. But it’s true that the threading issues for those two things are very similar. But also, blueprints don’t/can’t run multi-threaded so it shouldn’t be a real problem. If you’re really, really concerned about it you could always add a mutex. Again, realistically this node should never be getting called in the first place and not at a frequency that any of these things should have a negative impact on your game. And it’s way simpiler to write/maintain than a custom node.