It is not costly and it will not affect performance. There’s nothing wrong with Tick. You see folks demonise its use, and rightly so but it relates to using it when not necessary.
- if you need for something to happen once, do not put in tick
- if you need to cast during tick, see if you get away with an event-based cast and use a direct reference or another form of blueprint communications
- if you need something to happen in x amount of time, use a Timeline instead of Tick
You can use a switch instead of a gate if you need several paths of execution; you can switch on enumerators, indexes, even strings. In this case, only one output will be active:
