Loading "Zones" (Server -> Client)

I’m attempting to create a loading system similar to that of Loomian Legacy.

I want to pass a “zone” (model) from the server to the client’s Workspace. My issue is that passing objects seems to return nil (via a RemoteFunction). This would normally lead me to believe that this simply isn’t possible, except that Loomian Legacy does seemingly just that.

From what I can tell, Loomian Legacy doesn’t have any of their zones saved in a client-visible location, so they must be passing it from the server to the client. I’m just uncertain as to how they’ve managed to do so.

Thanks

Update 1:
I’ve discovered that RemoteFunctions can pass objects to the client, but they are required to be parented to a client-accessible location. This is not ideal, though I’ll see what I can do about it.

Update 2:
The best thing I’ve been able to do is parent the clone (server-side) to ReplicatedStorage, then directly to nil. After which, I return the clone to the client to deal with the rest. I’m not actually sure if this is saving any performance on either end, but it at least appears to be working.

While that’s true, StreamingEnabled adds quite a lot of challenges for client-side scripting, as well as some possible visual issues. I don’t entirely mind that, but I’d prefer to have a zone-based loading system. I’m just lost as to how that would be done.

1 Like

I was about to make a thread asking about this, but then I realized I had already asked this before. I’m still wondering about what the best method for this would be. If an object is in ReplicatedStorage or parented to nil, is the client having to load anything, or is it just data at that point?

I’m essentially only wanting the client to load objects when they enter a zone that requires them. One solution I thought of could be having one of each asset exist in ReplicatedStorage, then have the client clone them and position them accordingly to build what the zone is supposed to look like. But is any of this really helping the client? How would I even test this?

Is there a way to pass objects in ServerStorage directly to a single client without other clients getting involved?