Basically it’s the code in tick that you want either move out of there and not do it every tick, or put it in C++.
There are a lot of posts on the forums right now from people thinking they need to abandon Blueprints and do everything in C++. Think of Blueprints like Java, it compiles to a byte code that runs on a virtual machine in the game engine, instead of being directly compiled to the users machine. But, if I understand it right that isn’t going to be the case completely as there’s an experimental feature to compile Blueprints to C++.
Actually run performance tests and see what is slowing your game down. For mine, textures size seem to be the biggest issue which has nothing to do with Blueprints. They have tons of tools built in to do that, looks through the docs on it. Start with View-Stat-Engine-Unit and View-FPS from the Editor window if you don’t know where to begin. Tick is in the game stat. Also, just unplug the wire coming out of the tick in the Blueprint and see if it makes a difference, it likely won’t and so anytime spent “optimizing” that Blueprint tick code into C++ will not give a return in performance, though you may be happier about doing it for other reasons such as maintainability. It’s a lot easier to read C++ than Blueprints, conversely it seems it’s faster to write Blueprints so they are great for prototyping.
For Behavior Trees, use the Blueprint editor for them. If there are Tasks or Services that have computation in them past a simple lookup and compare then you can make that specific task or service in C++, but still assign in in the Blueprint Editor.