[Class] does not inherit from HOTRELOADED [class] (Cast To [class] would always fail)

What does this warning mean? And why are there two different types? And what can I do to resolve this issue? Or is this not possible in blueprints?

The blueprint class is derived from a custom C++ class. The method that acts as an event is declared with the following macro.

UFUNCTION(BlueprintImplementableEvent)

Yeaaahhhh… sometimes, when you do a Hot Reload (compiling in the editor), your classes may just split into two classes, one of which is called “HOTRELOADED*”.

If you restart the editor, it should go back to normal.

You’re not doing anything wrong, it just sometimes happens. It happens the most when you modify your header files. If you close the editor, and then compile from your IDE, it won’t happen.

1 Like

Oh, it’s that kind of an issue. I’ve experienced something similar where restarting the editor cleaned things up a bit (e.g. renaming a class and the old class temporarily remained as residue). I didn’t think that would extend this far, especially since the way I recompile is through the modules panel, which the editor says that it refreshed the hot reloads. Restarting the editor even helped me reduce my blueprint (i.e. I don’t need to cast anymore). Problem solved.

From my experience, every time you modify a class (eg: add new variables, change UPROPERTY / UFUNCTION, rename function etc) you have to restart the editor. However, if you are modifying code in existing functions, you don’t have to.