Make MovementComponent Blueprintable

Hey there. I’d like to make my own MovementComponent. In BP.
But the MovementComponentClass is not listed if I want to create a new class.
Is there a possibility to make it blueprintable in the future?

Hi there, it looks like we may have a feature request in for that already here. Let me know if that’s not what you’re asking for and I’ll make sure a request is put in.

That’s a related, but separate thing Alex.

Support for blueprintable components was added a while back (I don’t remember if it’s still considered experimental or not), but a component still needs to be marked as Blueprintable, and the vast majority are not. This means in practice the blueprintable components feature is useless to the people who really need it - those working in blueprint alone.

It’s a very easy fix, just add the Blueprintable specifier to all engine components that people might want to extend. Since it’s just a metadata change, there is no potential for bad side effects.

The request you linked has been around pretty much forever and is much harder to implement. It’s possible @Raildex_ may need both in order to achieve what he’s intending, but still making this particular easy change would be very helpful in itself.

It’s not exactly what I want. kamrann explained it already. Simply extending the base MovementComponent in Blueprints.

According to the Source Code, Movement Components are already Blueprintable:

UCLASS(ClassGroup=Movement, abstract, BlueprintType)
class ENGINE_API UMovementComponent : public UActorComponent

This is in 4.12.

EDIT: Actually maybe the meta has to be ‘Blueprintable’ instead of ‘BlueprintType’ (which is for enums / structs). This might actually just be a typo…

I hope so. I really want to create my own MovementComponent but without C++ :smiley:

Meanwhile, you can create a component from scratch that adds its own collision hull and runs its own physics in Tick() (adding forces or moving the actor, depending on which approach you want.)
It’s more work, but can totally be done!

The movement component has a lot of more advanced code like moving along surfaces without penetrating surfaces etc, and there are more versions that interface with the nav system as well. Thing is that stuff is extremely difficult to use, and isn’t exposed to Blueprint anyway. I doubt most of it ever will be!

I hope MovementComponent will be extendable in the future though.

Yeah, BlueprintType isn’t what you need for that here :slight_smile:

To be fair, it needs to be more than blueprintable, you will also need to be able to override some of the native functionality, otherwise it’s still pretty useless.

I wonder why the base MovementComponent isn’t usable in BP at all…