Is it possible to have a multiplayer game with LAN, Internet and Steam hosting at the same time?

I’ve been following the BluePrint multiplayer video tutorials as well as looking at the ShooterGame C++ project and the Multiplayer Shootout BP projects and I am still confused about the online subsystems.

Basically, I want to make a demo that can run either in LAN or internet without Steam or Internet with Steam.
But it seems that I have to choose at startup if I am going to use the null subsystem or the steam one, or the playstation one, etc.

From what I understand, if I want LAN or Internet without Steam I have to use the Null system but if I want Steam I have to use the Steam one. So how could I allow all three modes mentioned above?

Yes, we have a plugin for steam MP and a plugin for non-steam MP. The only thing to keep in mind is that if you want to run MP without steam you will need to create your own master server that tracks and lists all of the available MP servers currently being hosted… There’s a lot of functionality built into steam that you yourself will have to manually create or setup if you want to go that route

But with the null system for instance, the listen server works more or less out of the box. Are you referring to something else?

I just want to be able to have the player who is also listen server be able to select between lan, internet and steam to put it some way. Does that make sense? Maybe I am missunderstanding the Steam functionality.

As a side question, even if the plugins panel shows online NULL and online Steam as enabled, do I still need to manually add the online subsystems in the build cs file to use them from C++ or is the plugins menu inside the editor enough?

You should able to do it, if im not mistaken you can even use more of them at once, keep in mind that OnlineSubsystem is only to tie your game to game social services. it doesn’t change way game server works…

If you reference SteamOnlineSubsystem and any code from that mdoule in your code you need to include it to build.cs as it’s needed for compilation configuration so compiler will know to where link your module to.

Ahh ok so maybe I had gotten it wrong.1. - So you are saying that the whole session mechanism is either lan or internet regardless of steam or anything? And that the only aspect where the different services come in (i.e. Steam) is to provide the “social” on top of the session? And 2- about still having to add it to the cs build file… that is what I’ve done so far but I just don’t understand why I need to enable the plugin in the editor and then also manually add the dependencies in the cs file. I would expect that enabling the plugin would modify the cs file or anything else the code needs to compile with the dependencies included.