Crash when reparenting Blueprint from BP to C++ base

Child BP class previously had it’s parent a BP too; i’m reworking the base class to C++, and now when trying to reparent to the new C++ base class, the engine crashes.

  • creating a new BP subclass from the C++ base works well.
  • stripping all the variables, functions and graphs from the subclass (completely emptying) still crashes on reparent attempt
  • reparenting to a dummy (new empty) BP class doesn’t crash, but if trying to reparent to C++ afterwards, crash appears.
  • sticking another BP class in middle of the hierarchy doesn’t work too. (in other words Child_BP → DummyBase_BP → Base_CPP )

basically it feels like these blueprints have HIV/AIDS.

of course i could rewrite all the hierarchy from zero, but it’s a huge pile of stuff. do you lads know how to bypass that bug?

■■■■■■ workaround i’ve found:

if you need to get this effect:
Child_BP implements Father_CPP

that’s how i’ve achieved this:

  1. create Dummy_BP (which will subclass from Actor)
  2. reparent Child_BP to sub Dummy_BP
  3. reparent Dummy_BP to sub Father_CPP
  4. reparent Child_BP ro sub Father_CPP
  5. works without a crash.

hope you will succeed too, ill also be happy to hear a better option,

note: don’t forget to fill yout UCLASS() macro with “Blueprintable” flag. UCLASS(Blueprintable).