Now, I haven’t made a DevForum post in a while so forgive me if I have forgotten something then let me know and I will be sure to correct it anywho, I’ll let you get into the post.
If you are too lazy or crunched for time to read the post below, here is a TL;DR (provided by ChatGPT):
I want to create a game-state plugin for Roblox that allows developers to save and load workspace configurations. This plugin would significantly reduce project setup time and increase productivity. Feedback is needed on feasibility, security risks, and technical aspects like using DataStore or third-party storage for large templates.
In my years of Roblox, one issue I have noticed when developing is a quick way to set up a game space. Obviously, you can add folders, insert all your modules from your saved toolbox selection, and set up an invisible spawn location, whatever the matter is. But, that can take anywhere from 5 minutes up to half an hour depending on how advanced your system structure is. This has made me begin to ponder a possible plugin, but also how possible it is (which is why I have put this post in #help-and-feedback:scripting-support as I am looking for technical feedback/suggestions)
This game-state plugin, as I will refer to it, will basically treat your workspace like a state that can be saved, altered, and loaded in. All the user will have to do to set up is go through your process of prepping your workspace once, adding your modules, folders, whatever, then simply save it into the plugin. Then, from any baseplate, you can observe various “templates” that you have made (most likely a cap of 5, but can be discussed) and load them in. Hypothetically, it could increase the time to start a project substantially and allow developers to have their whole environment set up specifically to their liking within a few seconds of opening Studio.
Another feature it may have would be akin to a structure quick-save if you wanted to save a certain file structure per-se (you may be moving your modules around in folders and reorganizing and then realize you do actually like it) without creating a whole separate state-save. Then all you would do is select the parent of the structure (it may be a service if you i.e. wanted to save your ReplicatedStorage folder structure, which in that case wouldn’t replace your service but rather clear it out and then insert what you saved). This sub-feature could also be very important and allow you to load in a template, then choose from your various quick-saves and choose the structure that you believe would be ideal for the project you are beginning (based on the needs of that project). For safety, the files that would be replaced can be toggled to either be moved into a secure folder of your choice in your templates (having a folder in server-storage set as your automatic replacement storage, to which the plugin while place anything replaced by a quick-save in).
With all of this explained, now comes the reason for this post and what I am leaving up to you guys to assist me in figuring out; How feasible is this? Could saving a workspace as a project template to help you begin actually help? Does this pose security risks? Would saving whole templates be too much for the DataStore to take on, can you even use DataStore in plugins or would a third-party data store be needed in which case again would the data be too much?