This is for all users(Client and a none dedicated client “Server”)
I want to connect to supposedly “Null” subsystem game (Via IP) with a client that has Steam Overlay.
How can I pull this off?
I want to have the Steam overlay on Client but to use the Null subsystem.
You can now (since 4.22) use bUseSteamNetworking=false inside of [OnlineSubsystemSteam] - this fixes it for me! Steam overlay on clients works, dedicated server uses default net driver, client joins via default net driver.
[OnlineSubsystem]
DefaultPlatformService=Steam
… other stuff
DO NOT HAVE THESE SECTIONS
[PacketHandlerComponents]
[/Script/OnlineSubsystemSteam.SteamNetDriver]
After doing that and making sure I
Restarted the Editor after modifying the ini
Recompiled BOTH the server and client so they have the same subsystem
I was getting disconnected due to incompatible_unique_net_id
So I then had to hack the engine in PendingNetGame.cpp by commenting out the following line
//Connection->PlayerId = LocalPlayer->GetPreferredUniqueNetId();
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. However since the id was simply Steam : DisplayName the value is not actually unique anyway.
Thanks for this! Setting bUseSteamNetworking=false did not work on its own for me, but commenting out all references to SteamNetConnection and SteamAuthComponentModuleInterface in DefaultEngine.ini worked (while leaving DefaultPlatformService=Steam and OnlineSubsystemSteam bEnabled=true). Packaging a LinuxServer with these settings will still initialize the Steam OnlineSubsystem when the server starts up, but it will accept connections with default UE networking stack using IpNetDriver.