Forced to re-place an Actor in the Scene to make the changes effective

I wanted to report a very common issue with Unreal Engine… I specificied UE 4.17 but this has been happening since forever.

I created a class deriving from Actor which has a UBoxComponent and two functions OnBoxOverlapBegin() and OnBoxOverlapEnd()

Before these functions could work, I had to dynamically bind them to the BoxComponent

_box->OnComponentBeginOverlap.AddDynamic(this, &AMyTriggerBox::OnBoxOverlapBegin);

I compiled, but as you can see I forgot to dynamically bind the second function: OnBoxOverlapEnd()

I dragged the C++ class into the scene and started the game.

The OnBoxOverlapEnd() was not triggering, as expected.

So I came back to my code and added the second bind

_box->OnComponentEndOverlap.AddDynamic(this, &AMyTriggerBox::OnBoxOverlapEnd);

I compiled, ran the game and… it was not working! Even if I had added the second bind!

I was getting crazy until I on this forum (through some researches) of someone having the same problem, and solved it by deleting the Actor from the scene and re-placing it.

How can an Engine like this fall into this banality?

Why has it to be like that?

Will it be ever solved?

Hey -

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here Unreal Engine Issues and Bug Tracker (UE-50911) . You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Cheers