Description

When moving a member variable from a child class to the parent, then deleting the child class, blueprints that reference the member variable will fail to compile until the node is removed and re-added.

Attaching project from Licensee that shows end result.

Steps to Reproduce
  1. Create a new c++ class derived from Actor (MyActor) and then create a new class inheriting from the one you created (MyMyActor)
  2. Add a reflected member variable on MyMyActor. public:UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
    float ConeLength;
  3. Create a new level and in the level blueprint create a new function with a local variable of type MyActor. Cast it to MyMyActor, Get the ConeLength variable, and pass it to a PrintString.
  4. Shutdown the editor and then move the ConeLength variable to MyActor and rebuild
  5. Reopen the editor, remove the cast to MyMyActor, and resave the blueprint
  6. Close the editor, delete the MyMyActor class and recompile

Result: Reopen the editor and the blueprint now fails to compile

Expected: Blueprint compiles successfully

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-55113 in the post.

2
Login to Vote

Won't Fix
ComponentUE - Gameplay
Affects Versions4.18.34.194.20
CreatedFeb 12, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021