GameStorage Service

###User Story:
As a developer, it is currently painful and time-consuming to sync shared resources between places in a universe.

###Elaboration:
Say I need to have ScriptA synced between all places. To accomplish this, I create a LinkedSource from it, and then manually copy and paste ScriptA into every place in the universe. ScriptA is effortlessly synced between all places because of LinkedSource, but to set up that syncing is very painful, and if there are a lot of places, time-consuming.

Now, say I not only have ScriptA, but ScriptA depends on Modules A,B, and C. These are instances parented to ScriptA. To sync these, I have to create four separate LinkedSources: ScriptA, ModuleA, ModuleB, and ModuleC. After that, like with just ScriptA, I have to manually copy them to all existing places. However, syncing starts to break apart here. If I change the parent structure in one place (e.g. parent ModuleB to ModuleA) and update the LinkedSource to reflect that, I have to go to every place and manually make that parent change as well since instances donā€™t sync ā€“ LinkedSource does.

That wasnā€™t as bad as it could get though. The Modulesā€™ contents at least synced, but if I have non-script dependencies (e.g. a union), I canā€™t even sync that between places. If I change the color, I have to manually make that change in all places ā€“ itā€™s not just parent changes I have to update now. My only solution at this point is to publish it as a model and insert it at runtime, the problem with this being itā€™s a pain in the butt to edit this model every time I want to make changes, as I have to manually insert it and republish as it doesnā€™t appear in the explorer.

###Use Cases:

  • Add module dependencies to a synced script
  • Add a union or other non-script asset to a synced script
  • Sync a common tileset between places
  • Sync player tools/equipment between places
  • Sync frameworks between places
  • etc

###A Solution:
GameStorage. GameStorage would be a service that appeared in the explorer and could have any type of instance parented to it. If I add/remove to/from GameStorage or modify the properties of its contents in Edit mode, the changes made will sync to all places when the game is published (or automatically?). In other words, if I insert a few scripts and unions into GameStorage, publish, and open up another place in the universe, those scripts/unions will be in that placeā€™s GameStorage as well in the same hierarchy and with the same properties. If I change the parent structure in this place, it updates in the other places as well.

Changes made to GameStorage in test mode (PlaySolo, StartServer, etc) or in-game do not replicate to the universe. Server scripts run in GameStorage in order to avoid boilerplate scripts which re-parent all scripts in GameStorage and have to be manually updated across all places.

Edit: Another thing that may need attention is replication. Some content I may want replicated to clients, while other content I may want only visible to the server.

89 Likes

Please Iā€™ve been wanting this for years.

This is the #1 thing holding me back from ever wanting to use universes.
LinkedSource and modules are alright, but what about if I wanted to share game models? I donā€™t want to open every place file and reupdate ServerStorage everytime I make an update to a game.

The only other solution is insertservice and Iā€™ve heard that things on insertservice replicate to clients and Iā€™d rather not have my entire serverstorage stolen.

9 Likes

This is something a lot of people have wanted for a while, I made a thread a while back concerning this as well, and it was put onto the Features Trello but after that not much was said about it. Last time I checked the Trello was made private however.

1 Like

Yes please!! This is what holds me back from touching the universe system.

1 Like

Very much needed.

Though i would do it this way:
Have 2 storages, one GameStorage, and one GameServerStorage, or just subfolders to separate them.

1 Like

You have my support, and another 9000 of them on top of that. A feature like this would especially be nice to remove the script copypaste across all places. Itā€™s one of the drawbacks I see to using universes, and this feature will fix said drawback.

1 Like

Ohhhh MAN this would be perfect. Support, support, support. This is whatā€™s missing from bigger games on Roblox.

7 Likes

Support. I really like the idea of the universe feature and I want to make optimal use of it.

Harvest Season would benefit from this! Currently models are built and scripted in a differant place from the actual game and itā€™s a huge pain to make sure the models are all updated. This would fix that issue without me having to mess with the insert service and would really simplify the process.

Synced prefabs

3 Likes

Even a new project with only three places is a hassle to sync :confused: Having to copy+paste the whole of ReplicatedStorage every time I make a change to even one of these items:

1 Like

InsertService does replicate, it just isnā€™t displayed in Studio.

Yes, thatā€™s the problem (for SnakeWorl at least). If heā€™s inserting things into ServerStorage which doesnā€™t replicate, he may as well be inserting into ReplicatedStorage since inserted items replicate.

My main problem with InsertService is that I canā€™t easily edit the assets. I have to insert them into the game, edit, and publish each time I want to make a change (which can be a lot even for a new place).

1 Like

I think for my game Iā€™m just going to keep everything in the same place and have the framework look at the place ID to determine what happens etc. GameStoragw would be a lot better though since itā€™s all synced BUT then itā€™s on the ROBLOX servers and I like everything to be on file :confused:

You canā€™t have universes on-file, so Iā€™m not sure what use GameStorage would be on-file.

I mean the assets. For universes you are still able to publish from a save file, for game storage it would already be on the ROBLOX servers like team create is if Iā€™m reading it correctly

Correct. Not sure why anyone would be keeping an existing, on-site game on their PC, making changes, and then re-uploading to ROBLOX instead of just editing the game to begin with though ĀÆ\_(惄)_/ĀÆ

Iā€™ve got ā€œIā€™m going to loose all my work if itā€™s not on fileā€ syndrome

Same. You also canā€™t press CTRL+S every 10 seconds while editing an online copy of a game and that drives me mad.

Support. This is a good idea, whatever makes universe games much more common.