Spawn different players

I try spawn players in GameMode in HandleStartingNewPlayer, its have link on player controller. I set by UI players type in PlayerController and in HandleStartingNewPlayer its check type and spawn, but its work only for one player, others players spawn not what they selected, they spawn first player type. I dunno how i can get player data in HandleStartingNewPlayer.

Summary

void AGameLevelMode::HandleStartingNewPlayer_Implementation(APlayerController* NewPlayer)
{
Super::HandleStartingNewPlayer_Implementation(NewPlayer);

ACharacterAvatar* TempCharToCheck = Cast<ACharacterAvatar>(NewPlayer->GetPawn());
AMyAdvancedPlayerController *TempPlayerRef =  Cast<AMyAdvancedPlayerController>(NewPlayer);

if(TempCharToCheck)
{
	GEngine->AddOnScreenDebugMessage(-1, 30.0f, FColor::Red, TEXT("AGameModeCharacterEditor.cpp: TEMP EXIST"));
	return;
}

if(NewPlayer->GetPawn())
{
	NewPlayer->GetPawn()->Destroy();
}

UWorld* World = GetWorld();
FActorSpawnParameters SpawnInfo;
SpawnInfo.Owner = NewPlayer;
SpawnInfo.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AdjustIfPossibleButAlwaysSpawn;

//get avi presets
GetGenderAvatar =  TempPlayerRef->CharacterData.CharGender == EGender::EWS_Female? GetFemaleAvatar: GetMaleAvatar; //GetFemaleAvatar;

//if(GetFemaleAvatar)	{ GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Purple, TEXT("AGameModeCharacterEditor.cpp: BP_FEMALE EXIST"));}
//if(GetMaleAvatar) { GEngine->AddOnScreenDebugMessage(-1, 10.0f, FColor::Blue, TEXT("AGameModeCharacterEditor.cpp: BP_MALE EXIST")); }
//GEngine->AddOnScreenDebugMessage(-1, 30.0f, FColor::Red, TEXT("AGameModeCharacterEditor.cpp: TRY INSTANCE"));

if(GetGenderAvatar)
{
	UE_LOG(LogTemp, Warning, TEXT("AGameModeCharacterEditor.cpp: DO INSTANCE CHARACTER"));
	//GEngine->AddOnScreenDebugMessage(-1, 30.0f, FColor::Red, TEXT("AGameModeCharacterEditor.cpp: DO INSTANCE CHARACTER"));
	ACharacterAvatar* NewCustomDoll = World->SpawnActor<ACharacterAvatar>(GetGenderAvatar, SpawnLocation, SpawnRotation, SpawnInfo);

	//maybe need relocate this to character
	NewPlayer->Possess(NewCustomDoll);	
	NewPlayer->bShowMouseCursor = true;
}

}

IF YOU WANT A BLUEPRINT TUTORIAL, I HAVE THIS SPAWN CHARACTER ITEM IN MY INTERMEDIATE PLAYLIST

CHECK MY PF FOR LINKS

OTHERWISE THE UH… THE HANDLE STARTING NEW PLAYER WILL GIVE YOU THE NEW SERIALIZATION OF THE UH… PLAYER’S PLAYER CONTROLLER

SO YOU WANT TO GET THAT PLAYER CONTROLLER, AND USE IT FOR “POSSESS” THEORETICALLY, BUT THIS ISN’T HOW I DO IT RIGHT NOW

CYA

I not need blueprint. I work only with C++.

IM AN ELECTRICAL ENGINEER

ENGINEERs must use C++, blueprints more for designers.