A new C++ property added and built in MSDev does not show in the component detail pane after a hot reload?

Tepid Reload, more like.

Now, if you close the editor and reopen the new property is there as expected.

!!!BUT!!! And this is the worst of it. If, following Tepid Reload the user happens to save the asset in the blueprint editor the asset saves, but what it saves is not right.

Close the editor. Open the editor. Double click the blueprint and bam, editor crashes.

Assertion failed: InSCSNode->ComponentTemplate != NULL

To me, smells like the save in the intermediate state lays down the updated class’s guid/timestamp/checksum without writing out the correct data structure, so when the editor reloads and registers the class with the correct data layout the headers checkout but the data is wrong. Or something like that anyway.

This is a pretty catastrophic problem since it renders any blueprint subject to it unusable. The only option is to restore from an earlier state or rebuild from scratch. Neither option is acceptable in the year 2014.

Branch:
Launcher. 4.5.1

Version:
4.5.1-2336687+++depot+UE4-Releases+4.5

Repro (100%):

1/. Add code to project. Show all classes. New class with ActorComponent as base, called “CrashComponent”

2/. Edit code. In CrashComponent.h, change UCLASS() to UCLASS(meta = (BlueprintSpawnableComponent)) so it can be added in a blueprint.

3/. Save/Build. Observe the hot reload in UE4.

4/. In UE4 make a new Actor blueprint called “CrashActor”

5/. Double click “CrashActor” to edit. Switch to Components. Click “Add Component” and choose “Crash”

6/. You should have Crash1 as a component. Compile and save.

7/. Back to MSDev. Just before the end of the class declaration, whack in the following:

“public: UPROPERTY(Category = “Crasher”, BlueprintReadWrite, EditAnywhere) float CrashFloat;”

8/. Save/build. Watch the hot reload in UE4. Observe how CrashFloat is not visible in in the detail view for the CrashComponent. Tepid Reload

9/. CLICK ON SAVE IN THE BLUEPRINT! Don’t forget: this is the essential step.

10/. Exit UE4.

11/. Relaunch UE4.

12/. Double click on “CrashActor”.

13/. POW! Right in the kisser.

Here’s the error in full:

Unknown exception - code 00000001 (first/second chance not available)

Assertion failed: InSCSNode->ComponentTemplate != NULL [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.5\Engine\Source\Editor\Kismet\Private\SSCSEditor.cpp] [Line: 3081]

KERNELBASE + 24684 bytes
UE4Editor_Core + 3174852 bytes
UE4Editor_Core + 1677512 bytes
UE4Editor_Core + 1566866 bytes
UE4Editor_Kismet + 3128916 bytes
UE4Editor_Kismet + 3949080 bytes
UE4Editor_Kismet + 3235295 bytes
UE4Editor_Kismet + 551991 bytes
UE4Editor_Kismet + 752287 bytes
UE4Editor_Kismet + 670633 bytes
UE4Editor_Kismet + 1129173 bytes
UE4Editor_Kismet + 2149318 bytes
UE4Editor_AssetTools + 1021261 bytes
UE4Editor_UnrealEd + 10642690 bytes
UE4Editor_AssetTools + 530329 bytes
UE4Editor_ContentBrowser + 1736388 bytes
UE4Editor_ContentBrowser + 1255123 bytes
UE4Editor_ContentBrowser + 1294632 bytes
UE4Editor_ContentBrowser + 1784182 bytes
UE4Editor_ContentBrowser + 1227254 bytes
UE4Editor_ContentBrowser + 1286539 bytes
UE4Editor_ContentBrowser + 1276022 bytes
UE4Editor_ContentBrowser + 1869215 bytes
UE4Editor_ContentBrowser + 1784767 bytes
UE4Editor_Slate + 818133 bytes
UE4Editor_Slate + 754699 bytes
UE4Editor_Core + 2505996 bytes
UE4Editor_Core + 2450091 bytes
UE4Editor_Core + 2510873 bytes
UE4Editor_Core + 2438466 bytes
user32 + 9268 bytes
user32 + 8855 bytes
UE4Editor_Core + 3157718 bytes
UE4Editor!FEngineLoop::Tick() + 3106 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.5\engine\source\runtime\launch\private\launchengineloop.cpp:2111]
UE4Editor!GuardedMain() + 479 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.5\engine\source\runtime\launch\private\launch.cpp:133]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.5\engine\source\runtime\launch\private\windows\launchwindows.cpp:125]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.5\engine\source\runtime\launch\private\windows\launchwindows.cpp:201]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Hey -

Which version of Visual Studios are you working in? The editor is meant to run with VS2013 (the express version is fine). Also, instead of clicking save in the blueprint do you get the same behavior if you use the File->Save All feature? This should save the blueprint as well.

Cheers

Hi , thanks for your reply.

Yep, I’m using 2013 Premium. I don’t know if Save All exhibits the same behaviour. We could find out though - my repro steps are right here :wink:

Hey -

I’ve reproduced this crash on my machine and have submitted it to our internal tracking system for further investigation. For the time being, if you close and reopen the editor after the second hot reload, you should be able to access the blueprint without the crash.

Cheers

Was this ever fixed…? This is happening to me.