Attempting to bind a custom event to a server-only delegate property currently fails to validate after compiling a Blueprint.
Steps to Reproduce
Create a new (blank) C++ project.
Add a new C++ class based on Actor (MyActor).
In Visual Studio, edit MyActor.h so that it appears as follows:
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FActorSpawnedEvent, AActor*, Spawner);
class AMyActor : public AActor
// Sets default values forthis actor's properties
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick(float DeltaTime) override;
Recompile the editor and reload (or hot reload, either way is fine).
Create a new Blueprint class based on MyActor (MyActorBP).
In the Blueprint editor, switch to the Event graph.
Drag off of the BeginPlay event and select to create a "Bind Event to OnActorSpawned" node.
Drag off the Event pin and add a custom event.
Compile. Note that an error results "CustomEvent_0 Signature Error: The selected function/event ('CustomEvent_0') is not compatible with this delegate (the delegate is server-only) - try marking the function/event AuthorityOnly." even though the event appears to be server-only due to the icon in the top-right.
Have Comments or More Details?
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-75153 in the post.