void AMyGameMode::PostLogin(APlayerController* NewPlayer)
{
Super::PostLogin(NewPlayer);
// Get player's profile component
AMyCharacter* Character = Cast<AMyCharacter>(NewPlayer->GetPawn());
if (Character && Character->PlayerProfileComponent)
{
// Load saved data
USaveSubsystem* SaveSubsystem = GetWorld()->GetSubsystem<USaveSubsystem>();
FSaveRecord Record = SaveSubsystem->LoadRecord(
Character->PlayerProfileComponent->GetSaveGuid(),
Character->PlayerProfileComponent->GetSaveBucket()
);
if (Record.Bytes.Num() > 0)
{
// Apply saved data
Character->PlayerProfileComponent->ApplySaveRecord(Record);
}
else
{
// New player, give starting items
GiveStartingItems(Character);
}
}
}