Property Transfer Tool

  1. When listing properties, would it be possible to show those in a tree view grouped by Categories?
    Preferably with the option to select all properties in a category at once.

  2. I ran into a situation, where I wanted to move a large function (with lots of local variables and in/outputs) from BP_A1 to BP_B1
    But it was essential to have that function also in the target’s parent (BP_B0).

What I currently do is, I transfer the function to the parent, then override it in the child and manually move the content from parent to child, which leaves me with inputs/outputs disconnected and local variables needing to be recreated (with default values etc.).

I wonder if there is a better way or if the tool could be modified to accept a parent as Source and a child as Target and then transfer functions by way of creating an override in the child with the parent’s content.

It doesn’t make distinction between parent / children classes. It only see local variables.
If your function uses variables from parent class, they might end up as missing variables on transfer result.

Local Component variables will not be transferred (because the tool will not spawn to attach any component instances).

​​​​​It’s possible to group them by category, but that involves too much code to add and unfortunately I’m out of free time to do that.

Not sure if this is a bug report or a feature request: Function transfer to or from Blueprint Interfaces does not work.
Currently, a BPI can be selected as Target (or Source) and the tool goes through all the motions (Apply, Save) but the functions don’t get transferred.

Desired result: function with inputs/outputs transferred to or from Blueprint Interface class.

Interface functions have no “body” to be copied.
They are Blueprints, but their functions have nothing inside.

Or course. I’m aware that interfaces have no such definition, but I’m referring to the declaration, or “header” - i.e. name, return and input parameters.

If someone do the other way around, copy from Blueprint to Interface a function with a body, that’s the problem.

This is why I blocked Interfaces.

I see (it’s a bit confusing that they don’t get blocked from being selected and there is no info on the failure state).
If you find some time for that plugin, will you consider limiting it to copy just the header without the body for interfaces instead of blocking it outright?

Yes, I don’t know if it’s possible, but I will see what I can do…
I can’t block them from being picked, because they are valid Blueprint assets; but maybe there’s some flags I could check for that, I don’t know for now.

I have intention to make experiments with Interfaces and Function Libraries this next week, if things go as planned I can add some code to unblock at least copy of Interface Functions → Blueprints.

I still have no plans to add support for duplication of Components between Blueprints… Because they must be registered and etc, lots of shenanigans around them for duplication.

To be honest, I’m especially curious if the transfer would be a way to add Delegates to blueprint interfaces.

Let me elaborate. There is no option to select a delegate as a new input for a function (regular blueprint or interface),
but it is possible to create one by dragging the wire of an event binding onto the function (258155-.
This obviously doesn’t work for Interfaces as there are no wires to be dragged.

The tool does transfer such functions between two blueprints already,
now if that worked for Blueprint->Interface as well, it would add some interesting functionality to Blueprint Interfaces.

I have completed function transfers to and from Interface Blueprints.
Epic should process updates next week.

I just had to “clean up” the function graph, leaving only entry/result nodes, before sending a copy of any normal functions to an Interface Blueprint.


** Epic pushed the update to the marketplace already.

Beautiful. Finally event bindings without the need to reference classes.

Unfortunately, Nativization raises error “BPI1__pf1244761869.h(14) : Error: Delegate Declaration is not allowed here”

File: BPI1__pf1244761869.h

#pragma once
#include "Blueprint/BlueprintSupport.h"
#include "BPI1__pf1244761869.generated.h"
UINTERFACE(Blueprintable, meta=(ReplaceConverted="/Game/BPIDelegates/BPI1.BPI1_C", OverrideNativeName="BPI1_C"))
class UBPI1_C : public UInterface
{
    GENERATED_BODY()
};
class IBPI1_C
{
public:
    GENERATED_BODY()
    UDELEGATE(meta=(OverrideNativeName="Test__DelegateSignature"))
    DECLARE_DYNAMIC_DELEGATE_OneParam(FTest__pf__BP_Test2_C__pf__SinglecastDelegate , AActor* , bpp__Actor__pf);
    UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, meta=(Category, OverrideNativeName="Delegate Test"))
    void bpf__DelegatexTest__pfT(const FTest__pf__BP_Test2_C__pf__SinglecastDelegate& bpp__Event__pf__const);
public:
};

Submitted version compatible with Unreal 4.22 for review.

Hey great plugin, i only have one question when i set the editor to use small icons your transfer properties icon doesnt show, is there a fix for this? Id rather have small icons than the big old clunky ones.

-iStudios Team

I didn’t include small icons for this plugin.

The button is still there - it’s just super narrow and …invisible, but it can be clicked nevertheless.
Would be nice if that was fixed.

Is the tool accessible by any alternative means? Shortcut or from a different menu?

I submitted for Unreal 4.22:

is 4.22 more stable than 4.21 or are there still bugs present? Can someone acknowledge this?

That is question hard to answer.
Anyway, I will port the changes to previous engines when I can. (4.20 and 4.21)

Bruno, you’re a saint.