We have a bunch of blueprint classes derived from a single C++ class. We also have some code that inspects CDOs in editor in order to check what components a given class uses.
It appears that if a component is removed from C++ class, CDOs for all of blueprints remain unchanged and still contain component that was removed even though instances of blueprint do not. If I manually recompile and save each of these blueprints, CDO is successfully updated.
How can I fix this? Can I at least force these blueprints to regenerate their CDO from code? How is this best accomplished?
I’ve worked around this by doing a FKismetEditorUtilities::CompileBlueprint( blueprint ); before I inspect particular blueprint’s CDO, but this should really be invalidated in first place by code change to parent class. It’s not greatest from a performance point of view to have to recompile blueprint so frequently just because I can’t trust that it’s CDO is up to date.
Thanks for your report! We’ve brought this to attention of developers who are investigating possible causes (UE-14592). I’ll let you know as soon as I see an update on issue.
Can you give this a try in 4.8 Preview 2? This should be fixed internally, and I believe fix made it into Preview build. Let me know if you still experience this issue. Thanks!
As mentioned in this post, I believe we are experiencing this issue here. We are on 4.8, and upgrading to a newer version of unreal isnt possible at this time.
Is there any work around, or a specific CL I could pull to get this fix?
I think your issue may actually be a little bit different from issue described here. I moved your post into Bug Reports section, and we will have someone take a look at what is going on.