I moved our discussion, since it is more general and would flood the thread!
(: I guess you can understand that.
A dedicated server is not more than a player without visuals. So you might be able to check in the “Init” function of the GameInstance,
if the Game is a Dedicated Server. Like i said, i have not yet done this, but i guess this is how you do it. I wouldn’t think that much about
getting the dedicated server to work, because this is not that huge step.
In Blueprints, there are Session Nodes that handle this. The server might use the “CreateSession” and “Openlevel XYZ?listen” the same way
as the Client would as a listen host. At least it can’t be much harder.
There are also Nodes to Search and Join Sessions, as well as destroying them. They are a bit limited, but you can use the Plugin that someone
wrote here in the forums to extend the options. Or you use C++, i wrote a Wiki entry with the real basics on how to get a SessionGame running
The questions regarding the OnlineSubsystem:
Unreal Engine 4 uses functions that are so called “Wrapper functions”. They are used to simplify the whole setup for you.
If you are not using a subsystem, you use the “NULL” subsystem, which is a placeholder to get LAN to work.
If your setup works here, it will eventually work with a subsystem, because UE4 will just use the matching Steam functions
instead of the placeholder ones. As soon as you add Steam to the Game and have a valid AppID, your game will just work
with Steam out of the box.
Back to the other questions:
ServerTravel is a function from C++ and can be used in Blueprints via the “Execute Console Command” line. You call it on the Server
with the map you want to travel to and the rest just works. (Should also work with Steam and other supported Subsystems).
I can only recommend you to use Steam if you need a Subsystem. Writing your own is not what you want to look for (not that you can’t, but this
would take so much time and way more than Blueprints and C++).
Your last question with the multiple servers:
Yes, one Server can only have one Map Instance. If you ServerTravel, you move ALL clients.
If you want to have multiple dedicated Servers that start and are used for specific players groups, you will have to use C++.
This is not something that works in Blueprints, because you are simply missing the functions (and you need to write your own functions).