Why is there no on possessed event for client?

Hi,

EDIT: my answer only works for controller changed, not as a substitute of OnPossessed. For that you should use Restart as mentioned.

There are several options to let the client know when a Pawn has been possessed.

You can either use the BlueprintImplementableEvent “ReceiveControllerChanged”, bind to the Delegate “ReceiveControllerChangedDelegate” or override “NotifyControllerChanged”.


	/** Event called after a pawn's controller has changed, on the server and owning client. This will happen at the same time as the delegate on GameInstance */
	UFUNCTION(BlueprintImplementableEvent)
	void ReceiveControllerChanged(AController* OldController, AController* NewController);

	/** Event called after a pawn's controller has changed, on the server and owning client. This will happen at the same time as the delegate on GameInstance */
	UPROPERTY(BlueprintAssignable, Category = Pawn)
	FPawnControllerChangedSignature ReceiveControllerChangedDelegate;

	/** Call to notify about a change in controller, on both the server and owning client. This calls the above event and delegate */
	virtual void NotifyControllerChanged();
3 Likes