I think I read recently somewhere that having a lot of assets stored on the client (in replicated storage) can cause longer load times for the game . (Lets say that all of these assets are necessary for the client to view)
So , I was considering making a replication system, but I am wondering if it is a good idea for performance. Basically the server will be cloning items from ServerStorage to the player’s PlayerGui to replicate them.
However, would this cause any issues on the server regarding performance if it had all these cloned assets that were stored in multiple different client PlayerGuis? (And if it could, is this replication system even worth it then?)
I so far have not seen any significant performance impacts on the server with lots of parts, but I want to be sure. Also, to clarify, I am wondering about performance impacts of just having a lot of cloned parts stored in PlayerGuis, not about the cloning itself.
But i believe you should try it yourself, to ensure it does effect loading speeds.
How i see it is they aren’t being rendered, therefore the client doesn’t need to render it.
Same would go for a modulescript, I am most likely wrong here but if a modulescript isnt required the client wont compile it.
If you are worried about the performance issues you can simply make a folder and just reparent it into your desired location (Server)
I have definitely seen a bit of loading time increase if i put a bunch of things into ReplicatedStorage. They aren’t being rendered but I think the client needs to load them some other way
The problem with this is that the clients need to access the assets, so I was thinking of a replication system .
Yeah , that was my idea. The player requests what they need and the server clones it in. I am less worries about the clientside, but rather the load on the server of having all these items. I think it is fine though - I did more tests and there seems to be minimal performance impact
youd be doing what roblox already does but at a far slower rate, just use streamingenabled and :WaitForChild() for your assets. if they’re in ReplicatedStorage, its fine, thats actually more performant than workspace by far – its what its made for.
as for cloning parts, im unsure why you’re storing them at all in PlayerGui, as that causes server build up (PlayerGui is replicated, you’re not “giving” it to the player, you still have the parts, which will jam up your server memory)
tldr do not overcomplicate this, be normal until you spot problems and then reconsider why you have so many parts in replicatedstorage in the first place, and assess from there
It is the only way I know of to replicate an instance to clients individually
I was looking into this because I was curious what some alternatives might be to storing a lot of assets in the replicated storage . There are some occasions where storing them somewhere else simply isn’t an option
My thought was that maybe the client could clone the items once they recieve it, and then the server would just go and destroy it on their end to prevent any memory buildup. I also haven’t really seen any evidence of significant serversided memory increases due to a lot of assets being placed in the player guis, but I could be wrong
Yes, I am aware of that - but a lot of them also suffer from long loading times for weaker devices. I am wary of the amount of instances that I have but sometimes it is simply not possible to decrease the count further, especially as a game grows if the client needs to see various assets . .
to replicate to individual clients and not cause server buildup, the clients need to do the :clone()'ing
as for the playergui thing, I’m just not gonna recommend doing that because its not scalable fundamentally. my point is really, without trying to sound dismissive, rather I’m trying to be reassuring; I think you have a non-problem. replicatedstorage wont jack up your loading time unless you’re cramming 200,000+ instances in there and doing :WaitForChild(). there’s nothing about replicatedstorage that’ll increase loading times on smaller devices unless their internet is crap or they’re somehow significantly CPU bound, because there’s nothing being rendered.