If a Blueprint asset contains a function call node for which the referenced function context is set to 'self', if the "Target" pin is connected to a type that equates to the owning Blueprint asset (other than a reference to self - e.g. a variable of the same type), then duplicating the Blueprint will result in a compiler error in the duplicated asset.
When duplicated, the function node's reference context will now reference the duplicated Blueprint class (as that is the new 'self'), but the connected pin will remain set to the original Blueprint type, so the two sides are no longer type-compatible and will fail validation at compile time. This is the source of the error that occurs.
Workaround: Drag off the variable pin in the duplicated Blueprint asset and re-select the function. This will create a new function call node with a calling context set to the source Blueprint's class, and that Target pin can then be connected to the variable's output pin. Then delete the original function call node that it was previously connected to.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-177975 in the post.
|Component||UE - Gameplay - Blueprint Editor|
|Affects Versions||4.27, 5.0, 5.1|
|Created||Feb 21, 2023|
|Updated||Mar 26, 2023|