RPC function vs RoleAuthority check?

BeginPlay is called on every instance of that Actor. I don’t know what Actor you used there, but as an example:

The PlayerCharacter in a Multiplayer Game with 2 Players (ListenHost and Client).

The Server has a PlayerCharacter. This one exists on the Server and replicated on the Client.

The Client has a PlayerCharacter. This one also exists on the Server and replicated to the Client who owns it.

So in total, there are 2 copies of the Server PlayerCharacter and 2 copies of the Client PlayerCharacter.

BeginPlay is called 4 times at this point. You limit it to the Authority (Server). That means you get 2 calls, one
for the Server Version of the Servers PlayerCharacter and one for the Server Version of the Clients PlayerCharacter.