Download

Blueprint inheritance issue with cook-on-the-fly

Hi folks,
I currently have trouble with some problems related to blueprint inheritance. A typical inheritance graph for one of our game objects looks like this:

AActor
AGunBase (C++)
BP_Gun_Base_C (BP base class not actually used in game)
BP_Gun_Standard_C (BP used in game)
BP_Gun_Special_C (BP used in game)

When running the game with the editor with on-the-fly-coocking such a setup triggers following assertion in the editor:


[2017.03.29-08.13.39:543]  0]LogWindows:Error: Assertion failed: ((UObject*)ContainerPtr)->IsA((UClass*)GetOuter()) [File:C:\src\uwp\EngineUWP\Engine\Source\Runtime\CoreUObject\Public\UObject\UnrealType.h] [Line: 333]
[2017.03.29-08.13.39:549]  0]LogWindows:Error: 'Default__BP_Gun_Special_C' is of class 'BP_Gun_Special_C' however property 'UberGraphFrame' belongs to class 'BP_Gun_Base_C'

The command line used for the editor is:


UE4Editor-cmd.exe %PROJECT_PATH% -run=cook -targetplatform=UWP -cookonthefly -iterate

This crash seems to be related to the second inheritance step between blueprints. So we worked around this issue so far by deriving ‘standard’ and ‘special’ blueprints directly from the blueprint base class. But in the end this approach is bad design and finds its limit where it leads to duplication of logic.
Also this problem occurs only when running with cook-on-the-fly file server, but not when playing in editor or starting the game from the final package.
Cleaning the derived data cache or even the workspace and rebuilding the whole project does not fix the error.
In the attachment I uploaded a stack trace of the crashed editor

Has anyone else experienced this or a similar problem and can give me some advice?
Thanks in advance for any hints or help.

Kind regards
J. Mueller