Possibiility to copy/paste variables, functions, etc between Blueprints

First of all, as with all my recent Feature Requests, I would like to say “thank you” to Epic Games and the Unreal Engine team for providing me and others with such a great tool, as well as its source. I hope my feedback can help improve it.

One of the downsides in using BP currently, as opposed to code, is that copy/pasting variables, functions, event dispatchers between BPs isn’t possible.

In code, you just select some text, copy, paste into a different .cpp file, done. Maybe for some functions also change the namespace by copy-pasting the class name. That’s it, takes ~2 seconds, even for very complex and long functions.

For migrating a variable to a different blueprint, it’s necessary to:

  • Create every variable manually

  • Name it

  • Set the type from a drop-down list

  • Set single/array/set/map

  • Set default value

For functions it’s even worse, as you need to:

  • create the function

  • manually add each input pin, same as vars you have to:

    • name them

    • manually set type from drop down

    • set array/set/map/by-ref

    • set default value

  • manually create each local variable

    • name them

    • manually set type from drop down

    • set array/set/map

    • set default value

  • copy-paste nodes

  • manually reconnect each input pin, checking that you haven’t missed any connections

  • done? oh no, compile errors. why? ah yes…

  • you need to *manually replace all the get/set nodes for all local variables, *as BP doesn’t recognize them from copy-pasted nodes even if they’re the same name and type

Surely this process is way too obtuse, prone to user error, and can easily by optimised. A simple right click -> copy variable/function/dispatcher, right click -> paste would save so much time.

Moreso, there is literally a free open source plugin with its that does this: https://www.unrealengine.com/marketp…-transfer-tool. That means most of the work on the functionality is already there. It’s left just to tie it to a simple UI element in the right-click menu within the editor. The batch migrate window can also be made a part of the editor.

The plugin works very well, and supports all latest engine versions. The feedback is all positive, and there’s a lot of reviews, meaning a lot of people needed this enough to search for it. There are probably way more that needed this, didn’t know a plugin like that existed, and just wasted their time re-creating variables and functions manually. For example, me, until today.

Why not merge the functionality from it into the main editor? I don’t see why this base level ease-of-use stuff isn’t considered essential.

It doesn’t seem like a humongous task, and will make a big part of the user base happy. Please make this a part of the editor by default.

I would gladly give away ownership of the plug-in to be permanently added built-in to the Editor if Epic would say they want it.

That is very generous of you! Thank you. I really hope this can happen.

4.26 comes with “blueprint refactoring tools”.

Trello card doesn’t explain anything, but dev-framework branch got changelists for Cut/Copy/Paste for variables, functions and macros. AFAIK also a method to move variables to parent blueprint :slight_smile:

Great news if that’s going to be the case. High hopes then, will be waiting for 4.26 release.

Did something like this feature get added for copying object attributes in the world outliner? Sometimes I want to copy the same object location values (XY&Z) and apply it to a duplicated object that I am going to offset in the world.