Hey CodeSpartan,
Multiple root levels aren’t the problem - when the client connects to a server or the server uses ServerTravel at any point, the client(s) will “know which root level the server is using” and follow accordingly.
The limitation however (mentioned here) is, that once the server streams sublevels, any clients connecting *after *that point, will start opening the root level with those streaming levels already active (i.e. at the time the game framework starts for the client and the Loading Screen System gets initialized, the level is already loaded).
While ServerTravel for all clients simultaneously would work, connecting individually to a (root) level that already has sublevels loaded server-side will not allow the asset to work at all for that transition.
The client would need to be able to connect to an empty root level with no streaming levels loaded yet, then handle streaming client-side for the levels already active on the server.
Thus far I haven’t been able to find a way to achieve that without desyncing the client from the server by creating separate, unreplicated level instances.
As it stands, when connecting to already existing worlds (server-side), there doesn’t seem to be any substitute for out-of-the-box TransitionMap / Seamless Travel.