Disable steam networking

I am trying to connect to a none Steam session (either dedicated or other none Steam client), with no success.
The DefaultEngine.ini I’ve added are:

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

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

[OnlineSubsystemSteam]
bUseSteamNetworking=false

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.

Thank you!

Still not resolved, Help!

I have struggled with this too no results so far, I think the only way would be to not use subsystem and implement sdk yourself

Hello. I´m having the same issue and i can solve it. In the end, did you solve it swap between online 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.

That’s interesting. We are using bUseSteamNetworking=false in our 4.22.3 project but the client seems to determined to use SteamNetDriver_0 instead of the default net driver IpNetDriver_0. More details here: Server welcomes game client but client restarts the handshake process, then times out - Platform & Builds - Epic Developer Community Forums

Would you mind sharing your DefaultEngine.ini? Maybe we are missing something

Any solution for this? We are facing the same issue.

In order to connect via raw IP I had to remove all steam net definitions in the DefaultEngine.ini

[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 THESE SECTIONS
[PacketHandlerComponents]
[/Script/OnlineSubsystemSteam.SteamNetDriver]

After doing that and making sure I

  1. Restarted the Editor after modifying the ini
  2. 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.

1 Like

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.

The parts that work for me in 5.1 are to set up WindowsEngine.ini with the following

[OnlineSubsystem]
DefaultPlatformService=Null

[OnlineSubsystemSteam]
bEnabled=true
bUseSteamNetworking=false
SteamDevAppId=480
AppId=480
ModDir=spacewar
GameServerQueryPort=27015
GameVersion=1.0.0.0

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName=“GameNetDriver”,DriverClassName=“OnlineSubsystemUtils.IpNetDriver”,DriverClassNameFallback=“OnlineSubsystemUtils.IpNetDriver”)

if you forget to set bUseSteamNetworking=false here then even if you disable SteamSockets plugin in your project it will attempt to use the SteamSockets driver to connect to a server and will fail. Using this setup above I can run a server manually or deploy it to Amazon and connect to it from a client which is using Steam for authentication purposes but not for networking.

1 Like