EOS with EOSPlus and Steam OnlineSubsystem

I’m trying to get EOSPlus working with only a Steam login. I’ve managed to get EOS working with only Epic signins, along with Epic and Steam signins (with account linking).

I don’t need achievements or other game services mirrored to EAS from Steam, I just want it to be cross-platform still (Steam users can play with Epic users).

I know it’ll be two separate configurations for packaging, one for Epic and one for Steam, but I can’t get it working for them separately yet. I’ve only tried Steam so far, so I’m not sure if getting Epic to work cross-platform is simply just EOS..

Here’s my login function (the part that matters..)

Credentials.Type = FString("steam");
Credentials.Id = FString("");
Credentials.Token = FString("");

Identity->OnLoginCompleteDelegates->AddUObject(this, &UEOSGameInstance::OnLoginComplete);
Identity->Login(0, Credentials);

And here’s the DefaultEngine.ini (the part that matters..)

[/Script/OnlineSubsystemEOS.EOSSettings]
CacheDir=CacheDir
DefaultArtifactName=nameofthegame
RTCBackgroundMode=
TickBudgetInMilliseconds=0
bEnableOverlay=true
bEnableSocialOverlay=True
bEnableEditorOverlay=true
TitleStorageReadChunkLength=0
+Artifacts=(ArtifactName="REDACTED",ClientId="REDACTED",ClientSecret="REDACTED",ProductId="REDACTED",SandboxId="REDACTED",DeploymentId="REDACTED",ClientEncryptionKey="REDACTED")
-AuthScopeFlags=BasicProfile
-AuthScopeFlags=FriendsList
-AuthScopeFlags=Presence
+AuthScopeFlags=BasicProfile
+AuthScopeFlags=FriendsList
+AuthScopeFlags=Presence
bPreferPersistentAuth=True
bUseEAS=false    
bUseEOSConnect=True
bUseEOSRTC=True    
bMirrorStatsToEOS=False
bMirrorAchievementsToEOS=False
bUseEOSSessions=True
bMirrorPresenceToEAS=False
bUseNewLoginFlow=False
SteamTokenType=WebApi:epiconlineservices
NintendoTokenType=NintendoServiceAccount

[OnlineSubsystemEOS]
bEnabled=true

[OnlineSubsystemEOSPlus]
bEnabled=true

[OnlineSubsystemSteam]
bEnabled=true
bUseSteamNetworking=false
SteamDevAppId=480
bInitServerOnClient=true

[OnlineSubsystem]
DefaultPlatformService=EOSPlus
NativePlatformService=Steam
 
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[/Script/OnlineSubsystemUtils.OnlineEngineInterfaceImpl]
+CompatibleUniqueNetIdTypes=EOS
+CompatibleUniqueNetIdTypes=EOSPlus
MappedUniqueNetIdTypes=(("EOSPlus","EOS"))

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

With this, I’m able to get on the game, but the login function gives this result..

[2025.10.21-23.46.23:087][ 37]LogEOSSDK: Warning: LogEOS: Error response received from backend. ServiceName=[EOSAuth], OperationName=[TokenGrant], Url=[<Redacted>], HttpStatus=[401], ErrorCode=[errors.com.epicgames.eos.auth.external.invalid_token], NumericErrorCode=[110013], ErrorMessage=[Invalid session ticket], CorrId=[EOS-<Redacted>]
[2025.10.21-23.46.23:107][ 38]LogOnline: Warning: EOS: ConnectLoginNoEAS(0) failed with EOS result code (EOS_Connect_ExternalTokenValidationFailed)
[2025.10.21-23.46.23:107][ 39]LogTemp: Error: Login failed: ConnectLoginNoEAS(0) failed with EOS result code (EOS_Connect_ExternalTokenValidationFailed)  

I was assuming that I’m missing passing/getting a token from Steam, but I read that EOSPlus is supposed to handle that.

Thanks.