Blueprint Interface isn't being called

I created a Blueprint interface function called BPI_XP_interface. Then, to test the XP, I created a box trigger to help with the testing. For some reason, the Blueprint interface is not being called. I made sure to add the required interfaces, and plugged every thing in. If anyone knows, help would be much appreciated! Thanks



youre calling it on the component not the actor

But I made the function on the component and then added it to the actor. How do I change that?

What kind of component is it, though? Does it have collision? Base Actor Components do not. Note:

image

The above is the component that was overlapped - most likely a mesh or some collision volume, not the XP component. Print its Display Name here to find out which component of the actor was overlapped.


You’d need to send this message to the Other Actor (who also seems to implement this interface judging by the script - you query it, at least). This actor can then propagate it (directly or via an interface) to one of its components.

image
I made it on a xp componenet but the thing that was printed is weird. It
said “trigger”

Why is it weird? That’s precisely what was overlapped. What did you think was overlapped? Again, the XP component does not have collision, most likely.

Oh I get it

Should I enable collsion?

Actor Components do not have collision. Please read my initial post. What kind of component is the XP comp?

Hmmmm then what should I do

You should read my initial answer. In any case:

image

These belong to the actor that overlapped this trigger. The very top IS the trigger itself.


As mentioned above, send the message to the Other Actor, have it propagate to the desired component.

I did add it to the character. This is on the character

Are you messaging the Actor?

So wait I shoulkd put the message on the add xp function inside the componenet?

I’ve already explained it twice. Just read the posts :innocent:. But no, the component technically does not need an interface in such setup, but it can be used if convenient.

Dude your a genious Im just an idiot. ALL I had to do was change the target in the interface from overlapped component to other actor. Dude ur so smart thanks

1 Like

Here’s another way:

This way you can only have the interface inside the component, the actor simply returns it first.