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
.uprojectmode - Using UnrealLink / RiderLink
- Live Coding disabled
Any explanation of how Unreal handles C++ constructor defaults, CDOs, and existing Blueprint defaults would be greatly appreciated.