What is Blueprint to Blueprint Communication, or how do I call functions or get variables from other Blueprints, in Unreal Engine 4? Source Files: github.com/MWa...
Thank you so much for this. Understanding things like BP communication is very hard from original UE4 documentation. I am so grateful that UE4 comunity members like you, do this tutorials to help the newbies in UE4. Keep up the good work! Cheers.
this is the real answer: forums.unrealengine.com/development-discussion/blueprint-visual-scripting/1342469-communicate-between-a-widget-and-a-blueprint-actor
@@HyperCazual Doesn't "Get All Actors of Class" cost more to use though?? I saw a tutorial (That is private now, for some reason) that said it was a bit data heavy and have been a bit timid about using it. It is the simplest way, that I've found anyway but I'm not sure.
What if you want to cast to something that isn't related to the player controller, character, pawn, or state tho? There's a float I would like to communicate to several BluePrints but I don't know how to cast it over.
More easy and right way 1. In BadPickup in overlap call Interface with Deal Damage 2. In Character this Interface make a damage in Character 3. In Character call UI Widget and update health or binding health in UI Widget But in this case you must now about Interafaces Already this way in video must be useful to understand connection between Blueprint like say in name of he video Blueprint to Blueprint Communication
How does this work when there's nothing to plug into the object slot? Example: I have two blueprints. One blueprint for my player (BP_Player) holds the variable IsCurrentlyJumping. Any time my player jumps, IsCurrentlyJumping gets set to true, and when he lands it gets set to false. My other blueprint is for a ladder (BP_Ladder). In this blueprint I have a simple box collision for the player to climb. This is what I want: If IsCurrentlyJumping is set to true, I want the collision on my ladder to be set to No Collision. If IsCurrentlyJumping is set to false, I want the collision on my ladder to be set to Collision On (or some variant of this) The problem is that I have no idea what to connect to the object plug. There is no "Other Actor" pin or anything of the sort. There's nothing I can plug into Object.
idk ive watched 3 tutorials and they all use firstpersoncharacter or thirdpersoncharacter. Someone should make a tutorial on how to communicate between any two objects, not just those two T-T
One option would be to "Get all actors of class", the class being the ladder you've created. You'd then use a "for each" loop and cast to each ladder. You could also look into blueprint interfaces: after implementing the interface, you'd use "Get all actors with Interface" and call the implemented event/function for each
Hello sir. Your videos are my goto place when I want to know what something is. I am uncertain how to decide which wildcard to use. I am talking about the pin you put the player character node on. I understand that specific casting because I have done it many times but if I was casting to a door or a pickup or some other object how do I determine what to plug in there. I often use 'getallactors' of class and then from the loop check for matching 'enum' to set variables at begin play but I am sure there are more efficient ways. Thank you very much, Eddie
this is driving me nuts! i need the solution to such a simple task but i cant find it. i have an enemy with a hit box on its head. i want my main character to jump extra high when jumping on the enemies head, or basically hits this hitbox. enemy BP has the hitbox, main character BP has the jump ability. i want to create a variable on the enemy BP that says to jump high when overlapping the hitbox that the main characters BP can read and know to jump higher. why is such a simple task so difficult!?
What if I want to create two communications, Player+BadPickUp and Player+goodPickUp, instead of only Player+BadPickUp ? It would not work trying to wire the flow execution pin to two or more "Cast To ...", so how should I do to allow my character to have 'BeginOverlap' interactions with multiples blueprints ?
Hello ! I have a simple question, I think you will have the answer. I have the blueprint of a platform that appears when the actor touches the colllision box. But the problem is that it only one platfrome is visible. How can I do so, when a platform appears, all the palteforme of this blueprint in my level appear at the same time? =/
Ok but... When to use EventDispatcher and blueprint to blueprint communication? Thanks for your tutorials :) Do you know a good reference about "create a pro game architecture" with unreal, please?
Hi, great tutorial! I have question, in my level I have a door whose parent class is Static Mesh Actor. I have a button that has a function that is called when it is hit by a Line Trace from the player. How do I communicate with my door BP from the button BP? Thanks!
If both of your items are in the level, in the world outliner, then you can reference them at design time. If you go into your button Blueprint and create a variable that is the same class as your Door Blueprint and then make it Editable this will allow it to be edited in the Editor (World Outliner Details). You can then click on your Button Blueprint that is in your level, in the details panel it should have a slot for your Door Blueprint now (the one you made editable) that you can select the door in your level from. This lets you access the door that you have selected in the editor as a variable in your blueprint.
How do I communicate between spawned actors without relying on collision? Say for example to let a summoner know that his spawned creature has died. Or letting another spawned actor trigger an event of another spawned actor. Unfortunately all the tutorials and documentation show how player to actor communication works, but when the actors are both not the player, this method isn't effective (especially if I don't want to use collision to plug into the object pin of the Cast To node).
I think you can get a reference to a spawned instance of a class using the Spawn Node which has an Output Pin for instances it spawns to be accessed, which then allows you to reference a specific spawned object, so no need for world collision or trace responses. You'll have to research how though which is what I'm currently doing.
Actually I figured out. You have to right click on "Return value" of the node "Create Widget" and click "Promote to variable". It will automatically create a new variable with the right type.
I'm trying to communicate a variable from the level blueprint to the widget and i'm doing the connection inside the level blueprint but it doesn't work, it doesn't equal a variable inside the level with one inside the widget. i.imgur.com/ToVwZAI.png What can i do to solve this?
The problem with the level blueprint is it is hard to get and set items inside of it. It is an older legacy item from before UE4 had the individual blueprint system. With that said when you create your widget, wherever that is, the output of the create widget node allows you to save that widget reference as a variable. If this is inside your player you can easily Get the player character from your level blueprint and then you have access to the UMG widget you created. Basically you need to find a way to store a reference inside a variable when you create the widget and then have that be easy to find from you level blueprint. I would suggest trying to move items out of the level blueprint as well as that is not recommended to be used anymore.
I created everything inside the level blueprint because on reddit people said that was usefull because it starts on launch. Basically, inside the level i have a timeline that starts when i press t. If I create everything inside my player the timeline will still work? I saw your video about timelines and you said they don't work everywhere. Also do you have a video where you explain how to do the player correctly?
If you created everything in your level blueprint then you have you reference to your UMG widget already. After you create the widget, in the output pin, promote it to a variable and you can use that to access it later.
Thank you so much for this. Understanding things like BP communication is very hard from original UE4 documentation. I am so grateful that UE4 comunity members like you, do this tutorials to help the newbies in UE4.
Keep up the good work! Cheers.
Amen over 9000
how do i get a specific object in another blueprint? which is not thirdperson character
Nobody ever shows that. Literally ever example I find just shows how to do it with a thirdperson character
Create a actor variable, and select the object you want.
@@Key_C0de but does it HAVE TO use the level blueprint instead of the character then?
this is the real answer:
forums.unrealengine.com/development-discussion/blueprint-visual-scripting/1342469-communicate-between-a-widget-and-a-blueprint-actor
@@HyperCazual Doesn't "Get All Actors of Class" cost more to use though?? I saw a tutorial (That is private now, for some reason) that said it was a bit data heavy and have been a bit timid about using it. It is the simplest way, that I've found anyway but I'm not sure.
What if you want to cast to something that isn't related to the player controller, character, pawn, or state tho?
There's a float I would like to communicate to several BluePrints but I don't know how to cast it over.
I'm sure you know this, but you are an amazing teacher.
Trait to the point, easy to understand. Thank you Mathew!
Wow, after years of trying to understand B2B communication, this 5 minute video explains it perfectly.
+Edward Melville Glad to hear it was helpful =) That is the goal I am aiming for!
+Mathew Wadstein Do you think you can cover replication in 2016? And Merry Christmas!
+Edward Melville I am hoping I can cover networking in 2016 as I work towards learning the smaller details of that over the next bit of time.
You really made the worst most confusing names for everything. But it's a good tutorial.
More easy and right way
1. In BadPickup in overlap call Interface with Deal Damage
2. In Character this Interface make a damage in Character
3. In Character call UI Widget and update health or binding health in UI Widget
But in this case you must now about Interafaces
Already this way in video must be useful to understand connection between Blueprint like say in name of he video Blueprint to Blueprint Communication
What a flipping genius, love you bro.
This guy dispenses knowledge like cookies from a jar
Thank you brother
Just the video I needed to watch, thx! :-)
How does this work when there's nothing to plug into the object slot?
Example:
I have two blueprints.
One blueprint for my player (BP_Player) holds the variable IsCurrentlyJumping. Any time my player jumps, IsCurrentlyJumping gets set to true, and when he lands it gets set to false.
My other blueprint is for a ladder (BP_Ladder). In this blueprint I have a simple box collision for the player to climb.
This is what I want:
If IsCurrentlyJumping is set to true, I want the collision on my ladder to be set to No Collision.
If IsCurrentlyJumping is set to false, I want the collision on my ladder to be set to Collision On (or some variant of this)
The problem is that I have no idea what to connect to the object plug. There is no "Other Actor" pin or anything of the sort. There's nothing I can plug into Object.
idk ive watched 3 tutorials and they all use firstpersoncharacter or thirdpersoncharacter. Someone should make a tutorial on how to communicate between any two objects, not just those two T-T
One option would be to "Get all actors of class", the class being the ladder you've created. You'd then use a "for each" loop and cast to each ladder. You could also look into blueprint interfaces: after implementing the interface, you'd use "Get all actors with Interface" and call the implemented event/function for each
THANK YOU SOOOOOOO MUCH
1:57
So what if I don't have a player character? What if I need to do this with chess pieces? There's no generic Actor node that I can Get
Great video, helped me out real quick!
Blueprint to blueprint communication is maybe the most ennoying thing in Unreal I've encounter so far... Thx for the video
Hello sir. Your videos are my goto place when I want to know what something is. I am uncertain how to decide which wildcard to use. I am talking about the pin you put the player character node on. I understand that specific casting because I have done it many times but if I was casting to a door or a pickup or some other object how do I determine what to plug in there. I often use 'getallactors' of class and then from the loop check for matching 'enum' to set variables at begin play but I am sure there are more efficient ways. Thank you very much, Eddie
Because dragging and dropping the variable was too much straight forward. Thanks Unreal
ok what do i do if its not begin overlap though
this is driving me nuts! i need the solution to such a simple task but i cant find it. i have an enemy with a hit box on its head. i want my main character to jump extra high when jumping on the enemies head, or basically hits this hitbox. enemy BP has the hitbox, main character BP has the jump ability. i want to create a variable on the enemy BP that says to jump high when overlapping the hitbox that the main characters BP can read and know to jump higher. why is such a simple task so difficult!?
What if I want to create two communications, Player+BadPickUp and Player+goodPickUp, instead of only Player+BadPickUp ? It would not work trying to wire the flow execution pin to two or more "Cast To ...", so how should I do to allow my character to have 'BeginOverlap' interactions with multiples blueprints ?
What type of variable is UI Casting??? boolian ?? it looks like some sort of array
Hello !
I have a simple question, I think you will have the answer. I have the blueprint of a platform that appears when the actor touches the colllision box. But the problem is that it only one platfrome is visible. How can I do so, when a platform appears, all the palteforme of this blueprint in my level appear at the same time? =/
Ok but... When to use EventDispatcher and blueprint to blueprint communication? Thanks for your tutorials :)
Do you know a good reference about "create a pro game architecture" with unreal, please?
Short and good explicated, magnifico
Thanks for this
mclovin?
Hi, great tutorial! I have question, in my level I have a door whose parent class is Static Mesh Actor. I have a button that has a function that is called when it is hit by a Line Trace from the player. How do I communicate with my door BP from the button BP? Thanks!
If both of your items are in the level, in the world outliner, then you can reference them at design time. If you go into your button Blueprint and create a variable that is the same class as your Door Blueprint and then make it Editable this will allow it to be edited in the Editor (World Outliner Details). You can then click on your Button Blueprint that is in your level, in the details panel it should have a slot for your Door Blueprint now (the one you made editable) that you can select the door in your level from. This lets you access the door that you have selected in the editor as a variable in your blueprint.
Thank you! I actually figured it out yesterday, but I pretty much did what u just said. Looking forward to more videos.
How do I communicate between spawned actors without relying on collision? Say for example to let a summoner know that his spawned creature has died. Or letting another spawned actor trigger an event of another spawned actor. Unfortunately all the tutorials and documentation show how player to actor communication works, but when the actors are both not the player, this method isn't effective (especially if I don't want to use collision to plug into the object pin of the Cast To node).
Did you ever found how to do this? It's literally impossible to find a real communication not some overlappin thingy...
I think you can get a reference to a spawned instance of a class using the Spawn Node which has an Output Pin for instances it spawns to be accessed, which then allows you to reference a specific spawned object, so no need for world collision or trace responses. You'll have to research how though which is what I'm currently doing.
What is the type of the variable UI-Widget please?
Thank very much, I'll finally be able to create my inventory system. :)
This..I cannot find the right type either. Any ideas?
Actually I figured out. You have to right click on "Return value" of the node "Create Widget" and click "Promote to variable". It will automatically create a new variable with the right type.
So you need to drag out the 'Return Value' on the Create UI casting, select Promote to Variable, then rename it. I think this is the way to do it.
Cheers.!
Maybe better way make communication thru gameinstance?
thanks alot
I'm trying to communicate a variable from the level blueprint to the widget and i'm doing the connection inside the level blueprint but it doesn't work, it doesn't equal a variable inside the level with one inside the widget. i.imgur.com/ToVwZAI.png
What can i do to solve this?
The problem with the level blueprint is it is hard to get and set items inside of it. It is an older legacy item from before UE4 had the individual blueprint system. With that said when you create your widget, wherever that is, the output of the create widget node allows you to save that widget reference as a variable. If this is inside your player you can easily Get the player character from your level blueprint and then you have access to the UMG widget you created. Basically you need to find a way to store a reference inside a variable when you create the widget and then have that be easy to find from you level blueprint.
I would suggest trying to move items out of the level blueprint as well as that is not recommended to be used anymore.
I created everything inside the level blueprint because on reddit people said that was usefull because it starts on launch. Basically, inside the level i have a timeline that starts when i press t. If I create everything inside my player the timeline will still work? I saw your video about timelines and you said they don't work everywhere. Also do you have a video where you explain how to do the player correctly?
If you created everything in your level blueprint then you have you reference to your UMG widget already. After you create the widget, in the output pin, promote it to a variable and you can use that to access it later.
Way too specific, we need something more general.