Quick answer: Reparented Blueprints preserve their old overrides. Open Class Defaults; click Reset to Default on each property that should take the new parent value. Save and recompile.
Here is how to fix Unreal Blueprint defaults drifting from the new parent after reparenting. Overrides survive the move; you must reset to re-inherit.
The Symptom
You reparent BP_Goblin from AEnemyBase to AOgreBase. AOgreBase has DefaultHealth=200; BP_Goblin still shows 100 (from old parent override).
What Causes This
Override snapshot. When DefaultHealth was set on the original BP_Goblin, an override was stored. Reparenting does not clear it.
Per-property reset needed. No bulk reset; walk Class Defaults and reset each.
The Fix
Step 1: Open Class Defaults after reparent. Class Defaults panel shows yellow arrow icons next to overridden properties.
Step 2: Click Reset to Default per property. Each click re-inherits from the new parent. Save the BP after.
Step 3: Use editor scripting for batch reset.
# Python: reset all defaults to parent
import unreal
bp_path = "/Game/Blueprints/BP_Goblin"
asset = unreal.load_asset(bp_path)
cdo = unreal.get_class_default_object(asset.generated_class())
# For each UPROPERTY, set to the parent CDO's value
Useful for many BPs needing the same reparent treatment.
Step 4: Recompile and verify. File → Compile All Blueprints. Check derived BPs that inherit from the reparented one to ensure their defaults track correctly.
Step 5: Commit before reparenting. Reparent is hard to undo cleanly; have version control to roll back if needed.
“Yellow-arrow reset per property. Recompile. Defaults align to new parent.”
Related Issues
For child default inheritance, see Child Default. For data table runtime, see DataTable Runtime.
Reset to default. Recompile. Save. Defaults match new parent.