APlayerController / AController issue

I’m currently experiencing an odd issue with multiplayer replication where my server can move although the clients can not. I have found an odd way of getting around the issue although it’s not really ideal. Just trying to see if I could get some help with sorting out the root of this issue?

HomagePlayer.h

// Called when the character changes controller or gets a new one
virtual void PossessedBy(AController* NewController);

HomagePlayer.cpp

void AHomagePlayer::PossessedBy(AController* NewController)
{
	// Assign the new controller
	Controller = NewController;
}

If I go ahead and change the override type in the PossessedBy function to:

APlayerController* NewController

Instead of the current AController type the clients are able to move and everything is replicated as I would expect, although the compiler spits out quite a few errors due to the change in type (but still compiles).

Any suggestions on what the best course of action is here?

Thats Intelisense bugging out, it’s a know issue since very beginning and it due fact that UE4 do some tricks in C++ that confusing it. It can’t be really fixed because that how UE4 was coded. Don’t relay on error tab, if compiler compiles then it’s ok.

Also call Super::PossessedBy(NewController), because by overriding it you blocking the code in ACharacter (which is impotent and make you character bugged on runtime) and oyu need to call parent function to execute it. Also you can always grab Controller using GetController() in any APawn.