BP Interface or BP Communication. Which one is better?

I wanted to ask this question for some time. I use Blueprint communication heavily on my RTS Example Game but it takes some time to PIE because it compiles when i hit play. And sometimes it even crashes UE4 without any error messages. It also marks other Blueprint as dirty (so it need to recompile) when i hit compile. For example i communicate with HUD BP from my PlayerController BP so when i hit compile in my PlayerController BP, it marks HUD BP as dirty. Then I go back to HUD BP and press compile and then it marks PlayerController BP as dirty. So everytime, few BP’s always remain dirty and requires re-compile. Another issue is when the engine starts up HUD BP compile always fails. I have to manually re-compile it everytime i start the editor. Then only i can play.

The last time i used BP Interface was while beta testing and when there was no BP comm. From the day BP comm was added, i stopped using BP Interface but now i think i should start using it again.

So which one is better and recommended workflow? Blueprint Interface or Blueprint Communication? I would like to know the Pros and Cons of both.

I’d say BP comms is better if you can, because it’s simpler (no interface to manage). So id use it if you can, and only use an interface when needed (multiple BPs will be using it!)

By BP Comm you mean Cast, or is there another method that I have missed?

What is “BP communication method”?

Obtaining one blueprint object in another blueprint, with some method (trace result, overlap, directly referencing, other events).

Oh yeah, I had forgotten about that method. I don’t think I got it working very well so I moved on to other things like Cast and Interface.

Don’t know what it’s called, I just make a new variable that point’s to the blueprint i want to communicate with. This way I can get all the date I want to share with and share all data from the blueprint to the blueprint referenced in the variable

blueprint_com.png&stc=1

blueprint_com2.png&stc=1

That’s how I do it. Just be sure the blueprint you reference is in your view port and has the blueprint you want to communicate set.

blueprint_com3.png&stc=1

This is the most easy way (at least for me it is)

Yup…BP comms is the easiest way and thats why i’ve been using it. But since the editor rarely crashes while compiling Blueprints i thought maybe BP comms had some issues and it was better to use Interfaces.