C++ changes are not reflected in existing Blueprint properties after compiling with Rider

I’m using Unreal Engine 5.7 with Rider 2026.2.1, and my project is opened directly in .uproject mode.

I’m currently not using Live Coding. When I create a new C++ class, I normally use Rider’s Unreal integration / UnrealLink to trigger a build, because the new C++ class sometimes does not appear in the Content Browser’s C++ Classes section until the project has been compiled.

However, I noticed a different issue when working with a Character Blueprint.

For example, suppose I create a camera component in my C++ Character class and set its relative location in the constructor:

Camera->SetRelativeLocation(FVector(0, 0, 100));

Then I compile the project from Rider and change it to:

Camera->SetRelativeLocation(FVector(0, 0, 150));

The C++ code definitely compiles successfully, but the existing Blueprint derived from this C++ class still shows the old camera location (Z = 100).

Restarting Unreal Editor does not seem to change it either.

However, if I manually change the transform in the Blueprint, or use Restore to Default, the new C++ value (Z = 150) can appear.

Interestingly, if I have a move (such as “Create a new Cam Component”) from the same C++ class after compiling, it correctly refresh the new component.

So I’m wondering:

Is this expected Unreal Engine behavior?

Does an existing Blueprint store its own serialized/default property values, so changes made in the parent C++ constructor are not automatically propagated to the existing Blueprint?

Or could this be related to Rider’s UnrealLink/RiderLink integration or the fact that I’m not using Live Coding?

Environment:

  • Unreal Engine 5.7
  • Rider 2026.2.1
  • Project opened in .uproject mode
  • Using UnrealLink / RiderLink
  • Live Coding disabled

Any explanation of how Unreal handles C++ constructor defaults, CDOs, and existing Blueprint defaults would be greatly appreciated.