Hello!
I’m having problems understanding something I thought I’d already understood. Basically, for some reason, my Server Reliable RPC is being called on the client. My player controller establishes 2 functions. The first one (TryAssignPlayerSeat) is called on the client from the input system (confirmed by the VS debug break as Role_AutonomousProxy), however the second one (Server_TryAssignPlayerSeat) is ALSO called on the client and not on the server.
Header
UCLASS()
class AFirstProjectPlayerController : public APlayerController
{
GENERATED_BODY()
public:
AFirstProjectPlayerController();
UFUNCTION(BlueprintCallable)
void TryAssignPlayerSeat(int32 PlayerSeatIndex);
UFUNCTION(Server, Reliable)
void Server_TryAssignPlayerSeat(int32 PlayerSeatIndex);
...
};
CPP
void AFirstProjectPlayerController::TryAssignPlayerSeat(int32 PlayerSeatIndex)
{
Server_TryAssignPlayerSeat(PlayerSeatIndex);
}
void AFirstProjectPlayerController::Server_TryAssignPlayerSeat_Implementation(int32 PlayerSeatIndex)
{
//Called... on client? Why?
}
I thought this was pretty much boilerplate vanilla RPC stuff, with nothing very funky going on. What am I missing?
I also have the same behavior with fully blueprinted events:
Notice top left specifies this is happening on the client. Additionally, no other breaks are triggered.
I’m debugging with PIE as Play as Client with 1 Client.