IsLocalController works differently on Client vs (Listen) Server because of RemoteRole. Checking IsLocalController on client(listen server) is enough.
bool AController::IsLocalController() const
{
const ENetMode NetMode = GetNetMode();
if (NetMode == NM_Standalone)
{
// Not networked.
return true;
}
if (NetMode == NM_Client && Role == ROLE_AutonomousProxy)
{
// Networked client in control.
return true;
}
if (GetRemoteRole() != ROLE_AutonomousProxy && Role == ROLE_Authority)
{
// Local authority in control.
return true;
}
return false;
}
https://docs.unrealengine.com/en-US/…les/index.html
Changing bShowMouseCursor on server does not replicated to client. Using local controller pointer is ok but make sure replication.
More reads
https://wiki.unrealengine.com/Replication
http://cedric-neukirchen.net/Downloa…Neukirchen.pdf