I’ve had this thought for a while now; so for example: I have this Server Script that inserts a Folder in the Player, which also inserts all kinds of Values in said Folder. What it is for and what it does is not relevant, but if you must know; to put it simple, it’s like session data, kind of like leaderstats in a way.
Anyway, I like the idea of making systems such as this (among others obviously) into a Module, so when you need to add a new Value or say a new Folder for instance all you would have to do is in another Server Script elsewhere (referring to said Module) .newValue()/.newFolder() or something.
But my point is… Is that really necessary? Since we technically already have this kind of system; the “Instance” Global; so, create said Value or a Folder, set it’s Properties, done, right? – So this whole system could just be done inside a Server Script anyway with the associated RemoteEvents to get and set Values, right? Because the way I see it is, converting this whole system into a Module would just be like making another Instance Global, you see what I mean, no?
However, as I said; I have these functions that get and set a Value in the Sever Script that can be called via a RemoteEvent, or a BindableRemoteEvent if done on the Server. But in a Module, all I would have to do is require it, and call :get(aValue)/:set(aValue), right?
But of course, there are quite a few security flaws… With both; with the Server Script way: Any Exploiter could just Fire the RemoteEvent to the Server and set a Value… No good. With the Module way: The client would still have to Fire a RemoteEvent to set a Value, since setting it on the client is no good for the Server, plus I don’t think you can use a Module for both sides and nor would I want to.
I may sound silly with this, but it’s just a thought I had for a while, and haven’t really thought it through, so, some insight would be very helpful!
I hope this explains it well, I would really appreciate some feedback. Any questions, please don’t hesitate to let me know!