Server forcing players to level stream in levels when they join a multiplayer server

A few months back, my team implemented level streaming in the hopes of improving performance on our largest map, and in the hopes of improving loading times as they were getting excessive on HDD’s. However, although it helped performance, loading times were just as long.

Our system works by making several of our sub-levels load in through blueprint. Now, in order to make it work on a multiplayer server, when the level starts up the dedicated server loads in those maps (otherwise players do not collide with geometry). It does this successfully, however when a player joins, they will see themselves spawn, and then seemingly freeze again waiting for all the levels that the server has loaded. This wouldn’t be such an issue if it didn’t block during the levels loading, but it does, and after its done loading we have had to force the clients to then unload the levels again to help get that performance increase.

We tried to prevent this from happening by forcing the blueprint we do level streaming on to only ever run the loading of levels through the server and nothing else. But this didn’t seem to work, and potentially may not even be connected to our problem.

Ideally for us, players should have some control on what levels load for them, and should only load levels if the server asks them to specifically, or when they enter the triggers we have provided. If I’m correct, I believe the server is just forcing any client that joins to load the levels it has loaded, and it would be great to know if there is any work around for this, or anything we could potentially be doing wrong that could fix our issue?

Thanks in advance.