Reference to a blueprint based on a custom class will break if changes are made to the parent class and a hot reload is performed. Error Displayed added to Callstack section.

Compiling the blueprint with the reference will update it and allow the reference to function normally.

Yes - in binary 4.10.4, the room name would still print as expected after a hot reload.

Steps to Reproduce
  1. Open UE4 Editor (Third Person Template)
  2. Add code to project based on Actor (MyActor)
  3. Add the following to MyActor.h
    UPROPERTY(Category = "Room properties", EditAnywhere, BlueprintReadWrite)
    		FString RoomName;
  1. Compile
  2. Create a blueprint based on MyActor (MyActorBP) and add to the level
  3. In the instance detail panel, enter a name for RoomName
  4. Open ThirdPersonCharacter blueprint
  5. Add new variable reference to MyActorBP and make it public
  6. From reference node, create a Get RoomName node
  7. From the Get node output, add a Print String node
  8. Wire Print String into key press event
  9. Select the ThirdPersonCharacter in the level and set the room reference to MyActorBP 
  10. PIE and press the designated key
    • Room name is printed to the screen
  11. Open the solution and add a comment above the previously added code
  12. Compile again
  13. After hot reload, PIE and press designated key again

Room name is not printed and error detailed in Callstack section is printed to the Output Log

Room name is printed after a hot reload of the associated class.

Repro Rate:


PIE:Error: Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_ThirdPersonCharacter' from node: Print String in graph: EventGraph in object: ThirdPersonCharacter

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

Login to Vote

ComponentGameplay - Blueprint
Affects Versions4.114.20
CreatedApr 21, 2016
UpdatedJul 6, 2018