Download

Blueprint and map merging

Hello,

First of all I apologize if this feature has already been implemented. But I could not find anything about it. My request is the ability to merge Blueprints and levels the same way code is merged. This way two or more people could be working on the same maps and blueprints at the same time. I’ve seen this being a big time loss as there’s a big stagnation in progress because for example I’d simply have to wait for my team mate to push his changes and tell him to not make any changes before I can. I do not know if this is possible nor feasible.

What do you guys think?

We switched our project to Unity, and this was one of the reasons around 4.8. I don’t know if they ever implemented a solution, but one of our request was that blueprint assets became plain text. You CAN however copy and paste your nodes in a text file, just FYI. This isn’t a solution, but it is a working work-around. You can also copy that text and paste it in the blueprint editor. Example:

Copy and paste this into your blueprint with ctrl+v:

Begin Object Class=K2Node_AddComponent Name=“K2Node_AddComponent_62”
Begin Object Class=EdGraphPin Name=“EdGraphPin_18517”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18518”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18519”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18520”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18521”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18522”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18523”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_18524”
End Object
Begin Object Name=“EdGraphPin_18517”
PinName=“execute”
PinToolTip="
Exec"
PinType=(PinCategory=“exec”)
End Object
Begin Object Name=“EdGraphPin_18518”
PinName=“then”
PinToolTip="
Exec"
Direction=EGPD_Output
PinType=(PinCategory=“exec”)
LinkedTo(0)=EdGraphPin’K2Node_CallFunction_2246.EdGraphPin_21501’
End Object
Begin Object Name=“EdGraphPin_18519”
PinName=“self”
PinFriendlyName=“Target”
PinToolTip=“Target
Actor Reference”
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/Engine.Actor’)
End Object
Begin Object Name=“EdGraphPin_18520”
PinName=“TemplateName”
PinToolTip="Template Name
Name

The name of the Component Template to use."
PinType=(PinCategory=“name”)
DefaultValue=“Camera Component_0”
AutogeneratedDefaultValue=“None”
bHidden=True
bNotConnectable=True
bDefaultValueIsReadOnly=True
End Object
Begin Object Name=“EdGraphPin_18521”
PinName=“bManualAttachment”
PinToolTip="Manual Attachment
Boolean

Whether manual or automatic attachment is to be used"
PinType=(PinCategory=“bool”)
DefaultValue=“false”
AutogeneratedDefaultValue=“false”
End Object
Begin Object Name=“EdGraphPin_18522”
PinName=“RelativeTransform”
PinToolTip="Relative Transform
Transform

The relative transform between the new component and its attach parent (automatic only)"
PinType=(PinCategory=“struct”,PinSubCategoryObject=ScriptStruct’/Script/CoreUObject.Transform’,bIsConst=True)
bDefaultValueIsIgnored=True
End Object
Begin Object Name=“EdGraphPin_18523”
PinName=“ComponentTemplateContext”
PinToolTip="Component Template Context
Object Reference

Optional UBlueprintGeneratedClass reference to use to find the template in. If null (or not a BPGC), component is sought in this Actor’s class"
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/CoreUObject.Object’,bIsConst=True)
bHidden=True
bNotConnectable=True
End Object
Begin Object Name=“EdGraphPin_18524”
PinName=“ReturnValue”
PinToolTip=“Return Value
Camera Component Reference”
Direction=EGPD_Output
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/Engine.CameraComponent’)
End Object
TemplateBlueprint="/Game/Actor_Blueprint.Actor_Blueprint"
FunctionReference=(MemberName=“AddComponent”,bSelfContext=True)
Pins(0)=EdGraphPin’EdGraphPin_18517’
Pins(1)=EdGraphPin’EdGraphPin_18518’
Pins(2)=EdGraphPin’EdGraphPin_18519’
Pins(3)=EdGraphPin’EdGraphPin_18520’
Pins(4)=EdGraphPin’EdGraphPin_18521’
Pins(5)=EdGraphPin’EdGraphPin_18522’
Pins(6)=EdGraphPin’EdGraphPin_18523’
Pins(7)=EdGraphPin’EdGraphPin_18524’
NodePosX=608
NodePosY=128
NodeGuid=059CEF10403D9EFB7797109D719A6FA4
End Object
Begin Object Class=K2Node_CallFunction Name=“K2Node_CallFunction_2246”
Begin Object Class=EdGraphPin Name=“EdGraphPin_21501”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21502”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21503”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21504”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21505”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21506”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21507”
End Object
Begin Object Name=“EdGraphPin_21501”
PinName=“execute”
PinToolTip="
Exec"
PinType=(PinCategory=“exec”)
LinkedTo(0)=EdGraphPin’K2Node_AddComponent_62.EdGraphPin_18518’
End Object
Begin Object Name=“EdGraphPin_21502”
PinName=“then”
PinToolTip="
Exec"
Direction=EGPD_Output
PinType=(PinCategory=“exec”)
End Object
Begin Object Name=“EdGraphPin_21503”
PinName=“self”
PinFriendlyName=“Target”
PinToolTip=“Target
Gameplay Statics Reference”
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/Engine.GameplayStatics’)
DefaultObject=Default__GameplayStatics
bHidden=True
End Object
Begin Object Name=“EdGraphPin_21504”
PinName=“WorldContextObject”
PinToolTip=“World Context Object
Object Reference”
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/CoreUObject.Object’)
bHidden=True
End Object
Begin Object Name=“EdGraphPin_21505”
PinName=“Location”
PinToolTip="Location
Vector

The location to potentially play a sound at"
PinType=(PinCategory=“struct”,PinSubCategoryObject=ScriptStruct’/Script/CoreUObject.Vector’)
DefaultValue=“0, 0, 0”
AutogeneratedDefaultValue=“0, 0, 0”
LinkedTo(0)=EdGraphPin’K2Node_CallFunction_2247.EdGraphPin_21512’
End Object
Begin Object Name=“EdGraphPin_21506”
PinName=“MaximumRange”
PinToolTip="Maximum Range
Float

The maximum distance away from Location that a listener can be"
PinType=(PinCategory=“float”)
DefaultValue=“0.0”
AutogeneratedDefaultValue=“0.0”
End Object
Begin Object Name=“EdGraphPin_21507”
PinName=“ReturnValue”
PinToolTip=“Return Value
Boolean”
Direction=EGPD_Output
PinType=(PinCategory=“bool”)
DefaultValue=“false”
AutogeneratedDefaultValue=“false”
End Object
FunctionReference=(MemberParent=Class’/Script/Engine.GameplayStatics’,MemberName=“AreAnyListenersWithinRange”)
Pins(0)=EdGraphPin’EdGraphPin_21501’
Pins(1)=EdGraphPin’EdGraphPin_21502’
Pins(2)=EdGraphPin’EdGraphPin_21503’
Pins(3)=EdGraphPin’EdGraphPin_21504’
Pins(4)=EdGraphPin’EdGraphPin_21505’
Pins(5)=EdGraphPin’EdGraphPin_21506’
Pins(6)=EdGraphPin’EdGraphPin_21507’
NodePosX=1040
NodePosY=192
NodeGuid=E30275D54935F14CD51A91B06404C6D2
End Object
Begin Object Class=K2Node_CallFunction Name=“K2Node_CallFunction_2247”
Begin Object Class=EdGraphPin Name=“EdGraphPin_21508”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21509”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21510”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21511”
End Object
Begin Object Class=EdGraphPin Name=“EdGraphPin_21512”
End Object
Begin Object Name=“EdGraphPin_21508”
PinName=“self”
PinFriendlyName=“Target”
PinToolTip=“Target
Kismet Math Library Reference”
PinType=(PinCategory=“object”,PinSubCategoryObject=Class’/Script/Engine.KismetMathLibrary’)
DefaultObject=Default__KismetMathLibrary
bHidden=True
End Object
Begin Object Name=“EdGraphPin_21509”
PinName=“X”
PinToolTip=“X
Float”
PinType=(PinCategory=“float”)
DefaultValue=“0.0”
AutogeneratedDefaultValue=“0.0”
End Object
Begin Object Name=“EdGraphPin_21510”
PinName=“Y”
PinToolTip=“Y
Float”
PinType=(PinCategory=“float”)
DefaultValue=“0.0”
AutogeneratedDefaultValue=“0.0”
End Object
Begin Object Name=“EdGraphPin_21511”
PinName=“Z”
PinToolTip=“Z
Float”
PinType=(PinCategory=“float”)
DefaultValue=“0.0”
AutogeneratedDefaultValue=“0.0”
End Object
Begin Object Name=“EdGraphPin_21512”
PinName=“ReturnValue”
PinToolTip="Return Value
Vector "
Direction=EGPD_Output
PinType=(PinCategory=“struct”,PinSubCategoryObject=ScriptStruct’/Script/CoreUObject.Vector’)
AutogeneratedDefaultValue=“0, 0, 0”
LinkedTo(0)=EdGraphPin’K2Node_CallFunction_2246.EdGraphPin_21505’
End Object
bIsPureFunc=True
FunctionReference=(MemberParent=Class’/Script/Engine.KismetMathLibrary’,MemberName=“MakeVector”)
Pins(0)=EdGraphPin’EdGraphPin_21508’
Pins(1)=EdGraphPin’EdGraphPin_21509’
Pins(2)=EdGraphPin’EdGraphPin_21510’
Pins(3)=EdGraphPin’EdGraphPin_21511’
Pins(4)=EdGraphPin’EdGraphPin_21512’
NodePosX=1040
NodePosY=352
NodeGuid=77416D7B44FE92515D9509B2BEF846D6
End Object

Yes, the same works with maps. But I don’t think it’s possible to copy over functions etc.

Merge Blueprints is a must!!
+1