Issue with creating Mover Shared settings in editor UI

Summary

Creating a new shared setting for within the MoverComponent details panel will create an invalid shared settings class.

What Type of Bug are you experiencing?

UI / Tools

Steps to Reproduce

1: Add Mover plugin to project
2: Create a pawn
3: Add DefaultCharacterMoverComponent to pawn
4: Select DefaultCharacterMovementComponent in Components tab
5: In details tab, create a movement mode, just take the default Walking mode as an example
6: Name the walking mode
7: Click arrow to next to this movement mode to display categories of variables you can change here in details panel, you will see the Mover category
8: Expand Mover Category
9: Click the plus icon next to Shared Settings Classes
10: Pick folder and name for the Shared Settings Class you are trying to create, i just put under Contents folder directly, named SharedSettingsTest.
11: Observe log for bunch of warnings about SharedSettingsTest being invalid and set to null because of it
12: Try blueprint compiling the pawn, and as warned in step 11, those invalid references have been set to null and blueprint fails to compile.

Expected Result

You will have created an invalid Shared Settings class. Can’t compile the blueprint.

Observed Result

I think it just inherits from UObject, and not also from UMovementSettingsInterface, which is necessary for a shared settings class to be valid.

Observe one of the functioning shared settings class that comes with the plugin, called UCommonLegacyMovementSettings, which looks like this in source:

UCLASS(MinimalAPI, BlueprintType)
class UCommonLegacyMovementSettings : public UObject, public IMovementSettingsInterface
{
GENERATED_BODY()

virtual FString GetDisplayName() const override { return GetName(); }

//        Bunch of variables here
}

I think specifically since we create a blueprint class when we press the plus, and blueprint classes can’t ‘double inherit’ or whatever it’s called like this functioning cpp class that inherits from both UObject and IMovementSettingsInterface, we end up creating a blueprint class that does not have the necessary interface to work here.

Affects Versions

5.8

Platform(s)

Windows

Additional Notes

The best outcome would be fixing this such that one can create shared settings for movement modes right within blueprint. Would be great for easy workflow.

Right now one should be able to work around this issue by making shared settings within cpp, similar to UCommonLegacyMovementSettings.

Tested on 5.7 and 5.8, Windows 7