DynamicOutputType & DynamicOutputParam

Hey,

when searching for a full list of all MetaData flags, I found the header file EdGraphSchema_K2.

There were two names MD_DynamicOutputType and MD_DynamicOutputParam. with the wollowing declaration:

/** Metadata that flags function params that govern what type of object the function returns */
static const FName MD_DynamicOutputType;
/** Metadata that flags the function output param that will be controlled by the "MD_DynamicOutputType" pin */
static const FName MD_DynamicOutputParam;

and the following definition:

const FName FBlueprintMetadata::MD_DynamicOutputType(TEXT("DeterminesOutputType"));
const FName FBlueprintMetadata::MD_DynamicOutputParam(TEXT("DynamicOutputParam"));

I hoped, that this MetaData would allow me to adapt the return type, like the CreateWIdget Blueprint Node does. But my first experiments looked, like it has no effect:

UFUNCTION(BlueprintCallable, Category = "Singletons", meta = (HideSelfPin = "true", DefaultToSelf = "Target", DeterminesOutputType ="Type", DynamicOutputParam = "SingletonComponent"))
static void GetSingletonComponent(AActor* Target, TSubclassOf<UActorComponent> Class, UActorComponent*& SingletonComponent);

Are the metadata arguments DynamicOutputType and DynamicOutputParam actually used metadata arguments? Is there a full list of all metadata parameters?

This is an older question, but if anyone comes across it, DeterminesOutputType in this case should be = “Class”. The TSubclassOf parameter that will determine the output type.

2 Likes