Hey there, in our project, we are using a character architecture that looks something like this, pretty basic:
[Image Removed]
A split between C++ base classes that define a basic component structure and Blueprint classes that specify actor-specific settings and behaviours.
As seen in the diagram, our base character defines a variable and a getter for a general MoverComponent, while the derived classes can implement their own specialisation of this component. This works somewhat ok, the only problem being the inability to specify a default value at the MyBaseCharacter level (that’s why it’s null and the derived class HAS to specify the implementation).
---
The issue I’m reporting is a “corruption” of the class tree structure when the base class renames its component. I have made a mistake of renaming “AnimalMovementComponent” -> “AnimalMoverComponent” in the class `AMyAnimalCharacter`, causing the component to get lost and not function properly. The side effect of this issue is an empty detail panel when selecting such a component in the derived Blueprint class (BP_GroundAnimal or lower).
[Image Removed]
I don’t think it’s the issue of the Mover component itself, but it’s the one that’s crashing in my case - the SharedSettings don’t get created, and the Walking mode calls ensure. Interestingly enough, the Walking mode still gets created even though the component itself is in a corrupted state, but the SharedSettings don’t. Maybe it has something to do with SharedSettings-refreshing being tied to PostLoad/PropertyChange. But that’s a different issue, I think.
I have noticed that this bug is pretty old and already being tracked https://issues.unrealengine.com/issue/UE\-115124 with forum posts spanning 2015.
Since the bug is already being tracked - I don’t want to hurry the fix (or yes, but you know), but rather how to fix a single occurrence of such a “corrupted” component? The only fix I managed to find is reparenting the BP to an Actor and back to our C++ class, but that obviously clears all the changes to the BP itself. I wouldn’t mind resetting changes to the MovementComponent (the corrupted one, it’s ok to throw it away), but resetting all the other components can get tedious with already created content in the game.
I was thinking about a simple script/editor utility, but I’m not sure where to locate this corrupted component.
Thanks a lot for your help!
[Attachment Removed]