The subsystems need to match. If you do NULL on both sides, you need to connect via raw IP, if you do steam on both sides, then you need to connect using the command line open SteamID
[OnlineSubsystemSteam]
bUseSteamNetworking=false
… other stuff
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
NetDriverDefinitions=(DefName=“GameNetDriver”,DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
+NetDriverDefinitions=(DefName=“DemoNetDriver”,DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")
[OnlineSubsystem]
DefaultPlatformService=Steam
… other stuff
DO NOT HAVE
[PacketHandlerComponents]
[/Script/OnlineSubsystemSteam.SteamNetDriver
I then had to hack the engine in PendingNetGame.cpp by commenting out the following line
//Connection->PlayerId = LocalPlayer->GetPreferredUniqueNetId();
In order to fix the incompatible_unique_net_id disconnect.
WARNING: I have zero clue what other ramifications there are having a default PlayerId, but I know that’s whats happening if you run the game via editor or run the game without the steam client running.