Actor to Level Blueprint events fire multiple times

Hi, I’m having some issues regarding an actor that sends an event to the level blueprint.

No matter what I do, event dispatchers, game instance or blueprint interface, the output event that exists in the level blueprint seems to fire 3 times instead of only once. After debugging with print strings it is this event only that fires more than once.

Moreover, none of the flow control nodes that should force it to fire only once seem to be working.

My plan with this is working around another issues in which the same level blueprint output event doesn’t want to fire in a packaged game, although everything is fine in PIE.

This has been gnawing on me for about 3 weeks, and I’m not sure what else I can try to fix.

i dont think if this can be solved with just this much info
mind adding a bit more info on how you set up the event and how do you call,etc, and did you try “DoOnce” node on the levelBP event?

I’ll post some pics. This first one is the actor bp where I’m testing an event dispatcher that sits in a game instance. Unhooked you’ll see the previous setup using a blueprint interface. Both have the same result.

This is the level bp. Here both the custom event that is dispatched and the event send from the blueprint interface fire off 3 times. As mentioned in my first post no flow control node makes them fire only once.

if it is being fired 3 times then there are probably 3 different actors/objects in the world, ingame, who are calling the event dispatcher
if you want the event to only fire once, use doOnce on the event

I converted this comment to an answer since it most likely solves the problem, and the user will not be able to Accept this as a comment.

DoOnce and DoN don’t work and currently I only have a single actor that contains this logic.
Both the event dispatcher and BPI event fire multiple times.

I can try making a new actor with this setup and try again, maybe this instance is somehow bugged. I’ll return with the results.

Thank you. Keep us posted. Good luck!

Made a new actor with the same logic, in it I added some more print strings before and after the the level blueprint event is being called.

Works fine until the dispatched event fires, again 3 times.
DoOnce lets these 3 events through, after which it blocks further events.

The conclusion is pretty much the same as before, dispatched or BPI events in the level bp get fire off more times than they should when called from an actor.

well,
upload that actor to drive.
wont mind taking a look at the mysterious actor myself…

How do I properly upload the actor so you can see everything you need? Does it need to have all its dependencies or is just the actor bp enough? Not exactly sure how to do this.

Are you casting 3 times to the same game instance?
no need to cast again and a gain. Do it once and save a reference to your game instance as a variable.

just copy all .uasset files without changing folder structure that is required for it to reproduce

Don’t think I can do that with the output event living in the level bp. And I have references going to the main playable actor too. I can post the complete actor setup though.

In the ‘fix I tried’ setup I have the event dispatcher living in the game instance and calling the event in the level bp.
In the original setup I use a normal bp interface to call the event in the level bp.

Both ways fire the event in the level bp 3 times.

Updating the issue: I have not been able to find out what triggers the bpi output event 3 times in the level blueprint. However, I did manage to find a workaround that works in both the editor and packaged game.

Remembered from some tutorials that gameplay logic should not be usually living in the level bp, so I took the part after the bpi event and placed it in a new blueprint which I’ve put into the level (don’t sure if this is necessary though).

This is basically a moral compass that assigns values based on left or right click. After tweaking all my actors to work with the lmb/rmb bool which is now in a game instance (probably also not needed, I tried it as a potential fix for this issue where this was previously living in the playable character bp), all good in the editor and packaged game.

If anyone can offer some insight on why this event bp would fire more times than called in the level bp, I’d be very curious to find out, this issue took me like 3 weeks to figure out.

did you call the event dispatcher on input(LMB, RMB, etc) inside an actor, if so than check if that input event consumes input ( in details panel).
if you have multiple LMB events who doesnt consume input, all of them will be fired on a single click

Nothing was called on the input, and I only had one instance for LMB and RMB.