Level must be "visible" on server for client to walk on it?

I’m prototyping a co-op multi-room game, where each player can only see the room that they are in. Currently I’m doing this using sub-levels - so when a player goes through a door, I turn off “Should be visible” for the room/level they just left, and turn it on for the room they just entered (on the client only).

However it seems like the client will fall through the floor in the new room, unless I also toggle “Should be visible” for the new room on the server (or just have all levels visible on server all the time). Is this intended behavior?

It’s no problem to have the level visible on the server when using a dedicated server (since no one cares what it sees) - the problem comes on a listen server, since the listen host then has the other players’ rooms visible.

I can see two ways around this (outside messing with code):

  • Don’t change level visibility - hide the geometry in each room through other means
  • Don’t support a listen server (if a player hosts locally, just run a dedicated server and a client instance)

For now I’ll probably look into the first option, but any other suggestions?