Which is the best way to let rooms load if the player enters it?

So, I have a huge building with alot of meshes. This building is laggy and I want to make a system which only loads the room if their is a players in. Which is the best way to do that? Parenting the whole room to the ServerStorage and then parenting the whole room to the Workspace if the player enters the room?

1 Like

This isn’t necessarily a good solution, but how about when the player enters the room, it teleports them to the full room to give the illusion that they just entered it? Not sure if it’d reduce lag though

Yes having the room in server storage, and when the player is about to enter, have a loading screen, that allows the room to move into the Workspace.

You can clone the room from replicated storage and put it into workspace as @SpeedySanikJr said.

Take a look at this game by @cxmeels:

Yep, so basically the rooms are stored in ServerStorage and when the player enters the room, it’s cloned into the PlayerGui (which is only visible to the server and LocalPlayer). The LocalPlayer then has a script which reparents it into the workspace. This prevents other players from seeing it.

Once the player leaves the room, the server just destroys the instance from the PlayerGui (as the room was reparented on the client, so the reparent wasn’t replicated to the server).

It’s how I’ve done it in rotopia too, if you want to see a live example. The only difference between rotopia and the demo place linked is that rotopia doesn’t use ZonePlus, but a custom controller on the client using the Knit framework.


Edit: I should note that it’s open source and available on GitHub too.

2 Likes