Just wondering as the title says, can I store like 100-200 models in there without there causing lag because of this? Thanks.
Might consider looking at this
Why not just store those models in ServerStorage in a folder or something, as then it wont affect the client. Also, storing them in ServerStorage is safer than ReplicatedStorage, because exploiters/hackers will be able to steal the models if they are in ReplicatedStorage, as those are “Replicated” to the client.
(Replied to wrong person) This post is a reply to @crossbar
Is that true, they can steal my models in ReplicatedStorage even if i’m using Filtering Enabled? Why then do a lot of people use ReplicatedStorage and even I think Roblox Wiki promotes it, while ServerStorage is more of a less popular option? Do you guys use ServerStorage? Then what’s the point of ReplicatedStorage if it isn’t good at storing stuff without it getting stolen? Thanks, and I hope this complicated string of questions are solved eventually!
ReplicatedStorage and ServerStorage have different use cases. As each name implies, one is replicated, while the other is simply stored on the server. If you have models that you wish would not be replicated to the client, use ServerStorage. In many cases, however, you need the client to be able to access models. Then you would use ReplicatedStorage.
Yeah I need the client to access the stuff I put in it- i’m sure a lot of other devs do. Is there some reason why their models cannot be replicated into the client by an exploiting script? Does FE help?
FilteringEnabled simply prevents client-side changes from replicating to the server automatically. For example, if the client deletes a part in workspace, it will remain on the server. An exploiter can steal almost anything that the client has access to. This includes: models, local scripts, module scripts, and other assets.
Edit: There is virtually no way to prevent asset stealing (in the case that the client needs to access said assets).
Then what should I do if the client needs access to those models, but at the same time I want to keep my content to myself only?
Yes this is true. Its “Replicated” hence the name, to the client, anything on the client can be eploited/stolen.
I don’t know why.
Yes, I for one, do use server storage for my models/parts/meshes, Its safer that way from exploiters who try stealing assets.
Also you can clone models/parts/meshes/unions from ServerStorage as well, so I dont know why people use ReplicatedStorage over ServerStorage.
Well I wish I knew this before making my game- but how do you access something from ServerStorage, is it the same way as ReplicatedStorage- you just use ServerStorage:FindFirstChild(“etc.”), thanks!
This means that you should just structure your game in a way that things required by the client are replicated, as asset stealing is (as far as I know) unpreventable.
I explained the use cases in one of my replies earlier on. ServerStorage cloning should be only things accessed by server scripts (since local scripts can’t access them), whereas ReplicatedStorage is used for instances shared by both the client and the server.
Yes, this is correct. Keep in mind local scripts have no way to identify instances parented under ServerStorage.
Yes, its exactly the same:
local ServerStorage = game:GetService("ServerStorage")
local part = ServerStorage:FindFirstChild("part")
local clone = part:Clone()
clone.Parent = workspace
Thanks for the info! I guess I learn something new everyday.
And both localscripts and normal scripts can access ServerStorage this way? I need to access it mainly from the client.
ReplicatedStorage is the storage you use for client access. Clients can not access ServerStorage at all.
Why not use a server script to clone what you need?
Because only server scripts can access ServerStorage.
Also another use for ReplicatedStorage is the directory for Remote Events.
He is accessing said models from the client. Cloning models on the server (for the client to use only) is pointless and just an extra, unnecessary step to make things more difficult.
Could I call a RemoteFunction() from the client, in order to get a copy of the model for me and pass it back to me? Would that work- can models be passed this way?
Yes, you could use a Remote function from a local script to trigger a server script that will clone the Model.
This way you could clone the one specific model to ReplicatedStorage, and the other models stay safe from exploiters/hackers
Thanks, I might do it. I’ll seriously consider it and look further into it tomorrow. And by doing this that makes the model in client client-only or only their computer or does it make it public?