Do I need multiple "On Component Begin Overlap" events for each item I want to interact with?

I’m very new to UE5 so this is probably an easy one. I cannot seem to figure out how to duplicate a collision overlap event within the same Event Graph or at least add a way for the “On Component Begin Overlap” event to check which object it’s colliding with so that I can have it perform the proper action. Like damaging the player vs healing the playing on collision or adding other effects.

For example, my character runs into different objects for different power ups. I assumed I could just drag off the event box white arrow and “cast to” my BP_SpeedBoost or BP_HealingOrb as if it were a “if collided with” But it will only connect to one or the other.

I’m trying to do all of this from within my main character BP because all the variables are there for me to easily call upon. What is the easiest way for me to set this up?

Dragging from the arrow will not get you anything, because you don’t have ‘context’, so try dragging from the ‘other actor’ pin, then you can cast

I know this must look idiotic and I’m probably doing several things wrong or insufficiently. I feel like it would be common since to be able to have multiple “On Component Begin Overlap (CapsuleComponent)” events so that I could “Cast To BP_item” and perform my actions. But because you can only have one per Event Graph I’m trying to figure out how UE5 wants me to work around it.

In the snapshot I’ve casted to a healing object > player contacts it and heals or if it fails > it must have hit a “Soul Orb” which is like a currency object that is collected in-game. This had worked perfectly fine for me but now that I want to add another item to the game “an object that temporarily adds increased player movement” I can’t seem to get it to fire because I cannot power it up so to speak. Simply put, I need the overlap event to identify what it’s overlapping out of several objects. Thank you for any guidance and patience.

The problem you’re having here, is that you need one of these events inside each of the things the player can overlap. So you don’t have any in the player…

Actually your approach should be working, besides the speed boost which is not connected.

However, I suggest you an improvement. Think about creating a Blueprint Interface called “BPI_Pickup” or something. Give that interface a method “OnPlayerOverlap”. Now in each pickup class implement that interface and overwrite the “OnPlayerOverlap” with your desired functionality (possibly calling your player characters functionality). In your player character, instead of casting on overlap, simply call the interfaces method in the overlapping actor. It will have a small letter icon on it’s node.

The great thing now is that for new pickups you will not have to touch your player characters class. Also it’s easier to separate game logic. If you collide with any actor that doesn’t implement the interface the call will simply be ignored.yl