For NonSteam, there is C++ way
.h
TSharedPtr<const FUniqueNetId> CreateUniqueIdFromString(const FString& StringId) const;
.cpp
TSharedPtr<const FUniqueNetId> UMyClass::CreateUniqueIdFromString(const FString& StringId) const
{
if (OnlineSubsystem)
{
const IOnlineIdentityPtr IdentityInterface = OnlineSubsystem->GetIdentityInterface();
if (IdentityInterface.IsValid())
{
return IdentityInterface->CreateUniquePlayerId(StringId);
}
}
return nullptr;
}
Online subsystem should be available using this code
IOnlineSubsystem* OnlineSubsystem= IOnlineSubsystem::Get();