Apply Instance Changes to Blueprint with UObject references

Yeah, i’ve just been testing different cases. Looks like this is not supported through pure BP. I kept playing around and with

Snippet
UPROPERTY(Instanced, EditAnywhere, BlueprintReadOnly) TArray<UTestClass*> UObjectArray;

and

Snippet
UCLASS(DefaultToInstanced, EditInlineNew, Blueprintable, BlueprintType) class UTestClass : public UObject

It does work as you explain. However: UObject instances are completely and entirely ignored by “Apply Changes to Blueprint” telling me
image

After digging into it somewhat, it turns out that the process in CopyActorProperties is deliberately skipped for instanced variables.

Interesting also:
If I create a USTRUCT(), obviously all properties can be modified and propagated to the BP with Apply Changes. But as soon as an instance of a UObject is added to the struct, none of the values are considered for copying. Weird that. But since that’s not my use-case I didn’t investigate further.

My next Attempt was to create a new Blueprint asset (based on the UObjects class) from the instanced object to generate a sort of prefab, but turns out I’m running into the same problem here. I’ll have to manually go into the Blueprint Asset and change the properties using reflection. I’m currently looking into how to do that. There doesn’t seem to be a good comprehensive guide or document on how to work with FProperties, and the forums are full of threads with loose snippets… Difficult topic to get a grasp on x)