Prevent Level Streaming Replicating to Client (Multiplayer)

On the (listen) server, whenever the player triggers a new level to stream, this is replicated in the client. Is there a way to stop this?

My use case is an online co-op open world game. I want the server and each client to use level streaming independently of one another. Currently, when the server streams a new level, all clients do so as well. This is impractical as each client now has two sets of levels streamed, one around their location and one around the server’s. I’d like to stop the replication from happening, and use the persistent level to handle the rest (such as collisions so client’s don’t fall through the floor, navmeshs for AI away from server player, etc.)

Ideally, each player only loads the static meshes they need around them via level streaming while gameplay/AI etc. is handled on the persistent level.

Any advice would be much appreciated.

Currently assessing whether to use UE4 for this project and this has proved a show stopper so far. If anyone can provide some guidance it would be most welcome!

I’m using C++ to stream the levels and handle replication, perhaps there’s some way in Blueprints to prevent level streaming from automatically replicating to clients? My main concern is whether this is how the engine is designed.

Based on a staff post on AnswerHub from 2014, level streaming replication from the host/server to all clients is hard coded into the engine and cannot be turned off:

They provide a Blueprint workaround, though it doesn’t seem to work with a Listen Server on my end. However, using a dedicated server seems to do the trick. I’ll investigate architecting the project via that route.

1 Like