If you know C++ and are comfortable with it you should prefer it over Blueprints whereever possible in my opinion, for these reasons:
- C++ is much faster (there is nativization for blueprints, but it still isn’t as optimized as hand written code, plus I don’t know how reliable it is)
- In C++ you don’t have to spend time arranging nodes to make them readable
- Blueprint compile times get much slower the more complex your game becomes
- C++ can do anything Blueprints can do, only a fraction of the C++ functionality is exposed to Blueprints
My rule of thumb is, do all the core gameplay code in C++, do cosmetic level props and UI with Blueprints. However if your UI is rather complex you might want to do as much as possible in C++ parent classes as well, I moved my in game editor UI from C++ to Blueprint for faster iteration a while back, now Blueprint execution time is the bottleneck of my editor.