Event bindings are incorrectly copied on duplicate of an actor

Hi there,

Found a serious bug in BPs to do with event bindings:

  • Create an actor BP
  • Add a trigger box property to this BP and make it editable
  • Add an event handler for actor overlap for this new property
  • Place this new actor in level
  • Create a trigger for it and set that trigger on player
  • Duplicate actor and create another new trigger
  • Assign this new trigger to newly duplicated actor
  • Now move another player controlled actor between triggers
  • Note that first trigger calls first BP actor and duplicated one.
  • duplicated actor retains binding to original trigger not matter what you do

I believe this is a bug.

Hi TommyBear,

I haven’t been able to reproduce this in 4.7.2. Which version of engine are you using? Can you post a screenshot of your BP Event Graph so I can make sure I’m following along correctly? Thanks!

Hi TommyBear,

We haven’t heard back from you in a while, so I’m resolving this post for tracking purposes. Please let us know if you’re still experiencing this issue with information requested above, and we can continue investigating. Thanks!

I’m going to try to get a repro project for you . Sorry been a bit busy!

Sounds good, thanks!

Okay I have a repro! Uploading to my dropbox now. Will share link ASAP. So here are distilled steps:

  • I used third person project type with no content
  • Create an empty actor and place it somewhere in level (ActorA)
  • Create a Box Trigger (TriggerA) and place it in your level
  • Create a BP on actorA (create/edit BP button on actor)
  • Save this BP somewhere in your project
  • Create a new property of type BoxTrigger on your actor BP and make it editable
  • Call it MyBoxTrigger
  • In properties for MyBoxTrigger, click green “+” button for OnActorBeginOverlap
  • Connect node up to notify you on screen. I used this (note that my boxtrigger propery was call MyTriggerVolume):

  • Save
  • In your level, assign triggerA to MyBoxTrigger property on actorA’s details
  • Run game and run character over trigger
  • You should get a message like “Player blah triggered triggerA”
  • Now alt-drag actorA somewhere to duplicate it, rename it to actorB
  • alt-drag triggerA somewhere to duplicate it and rename it triggerB
  • Click on actorB, and set that MyBoxTrigger property to point to triggerB
  • Run game and run over to trigger B, you get something like “Player has triggered triggerB”, perfect
  • Now run over to triggerA, notice that you get two messages! “Player triggered triggerA” followed by “Player triggered triggerB”
  • That is bug :slight_smile:

Here is link to repro:

Well, after opening project I first tested your original repro steps with, it looks like I’m seeing same bug. Maybe it has something to do with closing/reopening project? I’m going to test with your new repro steps as well, and then check in our main internal branch. I’ll get back to you when I have some more information. Thanks!

Awesome! Thanks!

Hey TommyBear,

Thanks for detailed repro steps! I was able to reproduce this both in 4.7.2 and in our main internal build, and I have entered a bug report for it (UE-11819). I’ll let you know when I see an update on it. For now, dropping a new BP instance into level (rather than duplicating an existing one) seems to avoid this bug. Thanks again!

Hey ! Awesome news. Thank you very much for confirming bug, glad you can see it internally!

I just experienced this bug myself in 4.10.1 so it’s still not fixed. I think this is a rather serious bug because you spend a lot of time to find out what’s actually going wrong.

Hi ,

I just tested this again in 4.10.2, and bug no longer occurs using steps described above. This was marked as fixed in 4.8, so it hasn’t been happening for a while. Can you give me some detailed steps to follow that reproduces bug for you? Thanks!

Thank you for your fast reply.
I uploaded a project for you to easily reproduce bug:

http://we.tl/iTSOGzoIif

Notice that events broadcasted are arriving in all actors, not just in one that broadcasted it. I included owner as a parameter to easily see that wrong event is arriving. Like original bug mentioned in this thread this only happens if you duplicate actors.

Also important: This only happens if base class which holds component is a C++ class.
Maybe bug also occurs if you leave out one level of inheritance but I reconstructed it way it is in our project.

Thanks again and good luck with bug hunting!

Hi ,

This appears to be a separate bug, as what was fixed involved a simple variable reference. They may be related, so I’ll reference fixed bug report in new one when I enter it. If you wouldn’t mind, please create a new post with this information and this same link, so I can follow up with it there. Please also include specific steps you took to reproduce in a fresh project. I’ll attempt same here and see what we get. Thank you!

OK, I did so:

Excellent, thank you! I’ve got someone assigned to it, and we’ll post there if we have any follow-up questions and let you know if we enter a bug report. Thanks!