Using the meta specifier MustImplement will cause the associated dropdown to only list classes/blueprints that implement the provided interface. If a blueprint has not been opened/loaded in the editor it does not appear in the dropdown selection
Ex: right click & Create Child Blueprint class
Workaround:
Opening the blueprint or right clicking on it will add it to the dropdown
Regression
No, same behavior occurs in 4.16.3
UPROPERTY(EditAnywhere, meta = (MustImplement = "MyInterface"))
TSubclassOf<AActor> UsingMustImplement;
#include "MyInterface.generated.h" UINTERFACE(Blueprintable) class UMyInterface : public UInterface { GENERATED_BODY() }; class IMyInterface { GENERATED_BODY() public: /** React to a trigger volume activating this object. Return true if the reaction succeeds. */ UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category = "Trigger Reaction") bool ReactToTrigger() const; };
Result:
ParentBP will show up in the dropdown list but ChildBP doesn't. Opening ChildBP or right clicking on it will cause it to show in the list
Expected:
Blueprints with the given interface appear in the dropdown by default.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-51321 in the post.