How do I use the Steam net driver?

We have a network game working with the NULL onlinesubsystem so now I’m attempting to get Steam working for master server listing, but I’ve hit a problem during initialisation on the server.

The OnlineSubsystemSteam module is being initialised but when UWorld::Listen() calls NetDriver->InitListen() it fails because (at least this is my intepretation of what occurs) the NetDriver is the regular IpNetDriver which creates a BSD socket, but when it tries to bind it, it has called the socket subsystem to get the local bind address and the steam socket subsystem has returned a FInternetAddrSteam object, which the IpNetDriver then tries to cast to a FInternetAddrBSD.

I have tried various permutations of the +NetDriverDefinitions line in DefaultEngine.ini but it never seems to make any difference. This isn’t helped by struggling to understand at this stage how the dozens of INI files interact with each other - within the Config folders in both the game project folder and the engine, not to mention the Saved config folders.

Any suggestions gratefully received.

I have the EXACT same problem… I hope someone help us

I found the answer at last, after many permutations and I also had to check the BaseEngine.ini

My defaultEngine.ini looks like this:

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

I added /Script/ where I was missing

I also have the
[OnlineSubsystem]
DefaultPlatformService=Steam

And

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=“/Script/OnlineSubsystemSteam.SteamNetConnection”
AllowDownloads=false

This was driving me crazy, now my sockets are properly initialized

Thanks exAntares - I thought I’d tried that - but obviously not quite that combination of paths and so forth. Now working! Well, working a bit more at least :slight_smile:

Thank you sir!