Sorry for the late response but I figured it out - with help from the ShooterGame example. At the time - it had to be done in C++ it seems.
void AMultiplayerGameMode::RemoveSplitscreenPlayers()
{
const int MaxSplitScreenPlayers = 4;
ULocalPlayer* PlayersToRemove[MaxSplitScreenPlayers];
int RemIndex = 0;
for (FConstPlayerControllerIterator Iterator = GEngine->GameViewport->GetWorld()->GetPlayerControllerIterator(); Iterator; ++Iterator)
{
// Remove only local split screen players
APlayerController* Controller = *Iterator;
if (Controller && Controller->IsLocalController() && !Controller->IsPrimaryPlayer())
{
ULocalPlayer* ExPlayer = Cast<ULocalPlayer>(Controller->Player);
if (ExPlayer)
{
PlayersToRemove[RemIndex++] = ExPlayer;
Controller->PawnPendingDestroy(Controller->GetPawn());
}
}
}
for (int i = 0; i < RemIndex; ++i)
{
GEngine->GameViewport->RemovePlayer(PlayersToRemove[i]);
}
}