Replicated Tsubclass in PlayerController causes Player State not syncing

Hey guys, I have a really strange problem here that I don’t seem to find a way to solve.
Basically, I have a PlayerController class with replicated TSubclass.
MyPlayerController.h

    UPROPERTY(Replicated)
    TSubclassOf<APawn> MyClass;

MyPlayerController.cpp

void AMyPlayerController::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
	DOREPLIFETIME(AMyPlayerController, MyClass);
}

And then when I play test, with print string every tick from the player controller blueprint inherited class - print the playerstate name, playerstate is null from the client and still valid on the server.

If I do the samething with blueprint, everything works fine. I don’t know whether this is a bug or I have done something wrong :frowning:

A PlayerController can only be replicated to the owner so perhaps you are looking at the Server Character? Client1 will never know what is on the server player controller.

You got point. After doing some more research, found out that like you said, the replicated variable only replicated to the owner aka local controller not server controller. So therefore I have moved that variable to playerstate since playerstate is visible to all clients :smiley: Thanks for your hint.