Issue with multicast RPC

Hi devs i got a small issue , I got multicast rpc on the character , which runs when this character got eliminated , and i want to print on the screen of ONLY eliminated player a message , but this message got printed on all clients and server as well , Why ?
void ABlasterCharacter::Eliminated_Implementation()
{
if(this->GetLocalRole() == ENetRole::ROLE_AutonomousProxy)
{
GEngine->AddOnScreenDebugMessage(-1, 14.f, FColor::Blue, “You are eliminated”);
}
bEliminated = true;
PlayEliminationMontage();
}

You can cast to the your player state to speak directly to the eliminated player from off your damage event when applying damage. Otherwise you’ll just print on everyone or have weird stuff going on.

You can discern between the eliminated and eliminator by getting the controller from the instigator to get the damage causer and get it’s player controller to get it’s player state to cast to and talk to that player directly lol. It’s confusing at first but once you get it there’s no more confusion about who you’re talking to.

I can elaborate in more detail if that doesn’t make sense if you want. Basically speaking you’ll never talk to the correct player on a multicast event in the character blueprint by itself. I don’t have this set up on C++, but I’m sure it works the same.

Are you not being mistaken by the fact that AddOnScreenDebugMessage prints the message to every viewport? That does not mean the code executes on every machine at runtime.

I suggest using UKismetSystemLibrary::PrintString instead, which is the underlying method for blueprints Print String. While it also uses AddOnScreenDebugMessage internally, the big advantage is that it automatically adds who (ie. which machine) executed the print code, for each message.