Allow sub-places of experiences to be fully independent games that still share the universe's data

As a Roblox developer, it is currently impossible to create multiple standalone spin-off games that all refer to the same data (DataStore, not sure if MemoryStore, MessagingService are shared) in the same universe.

My grand vision for my entire “franchise” is to have a series of independent off-shoot games with shared data. I want players in my games to be able to unlock customization options for my custom alien characters in different games, and be able to customize their characters and use them between any of my games.

E.g. I have a roleplay game where you can be your character and interact socially, and right now I’m working on a silly toy physics game in this same universe where you can be your character of a certain alien species, and cook other aliens into food. I want players to be able to use their customization data from the roleplay game, but I also want them to be able to discover this cooking game separately from the roleplay game.

Basically, I want to make something like a metaverse within the Roblox metaverse.


However, I cannot do this at all because the only way for a place to have access to the same datastores as another place is to use sub-places. I would need to have one experience that contains all of my games as sub-places. The problem with this is that I need to mark a “start place”, and this place becomes the exclusive and sole entry point for the entire experience. None of the sub-places get their own game details page. You cannot join a sub-place directly, you cannot see the name of a sub-place, you cannot see thumbnails and icons for sub-places. They are completely stripped down to only redirect to the start place.

  • I want to be able to make sub-places into fully independent games that all refer to the same experience-level data.

  • Or, I want to be able to set independent experiences to use the experience-level data for another experience that I own.

“Experience-level data” referring to DataStores, and if they’re also shared, MemoryStores, MessagingService, etc.

Start places seem pointless. This shouldn’t be a core construct at all; we should be able to mark sub-places as hidden to get the current behavior, while the default is to treat them like any other game, just simply attached to a greater universe. Perhaps experiences/universes should get their own details page, and hidden places can simply redirect here.


Right now if I want to do this, I have to have a single hub-place for all of my games, which creates huge friction for players to join a specific game, totally destroys searchability for games that are likely to be of wildly varying genres, and makes it super hard for players to share my games with their friends. I also have no idea how private servers are supposed to work like this since you cannot even visit the game details page.

This simply does not work.

I now have to publish this new game I’m working on as a separate experience, and resign to throw away everyone’s data in the future if I ever get the ability to link it to the greater universe.


See this thread from 2014 also:

31 Likes

Is this not currently possible with the HTTP Service and an off-platform API like an external database or web service owned and operated by yourself?

I wouldn’t say it’s “impossible” but it definitely has a learning curve. Are you not referring to a way to allow access to universe data without the need of HTTP Service? If so, would there be any benefits towards using something like this versus operating your own external services?

I will not pay for an external service to do this when Roblox already offers all of this for free as part of the platform, simply locked away by an outdated way to interface with experiences/universes. That defeats the purpose of building games on Roblox in the first place.

16 Likes

With that being said, If Roblox allowed a way to poll Roblox Services with things such as web sockets or web hooks. Would you consider using an external service?

I’m not against this feature request, while it definitely works on-platform. I don’t really see the use for it for those who do operate external servers. ( I understand that those that may operate external servers are a minority here) As well as considering you can already achieve this behavior without changes to universes and places. I’m not quite sure I understand your use case. Could you perhaps include an example of how this would work in your point of view?

Edit: Would this be something like GetDataStoreFromUniverseAsync(GameId, DataStoreName) and then it operates as usual with datastore service?

As I have clearly said, no. I will not pay for an external service. It is clearly not possible to achieve this behavior without paying for an external service as I have already explained. If you are paying for an external service to manage your data, this feature request is irrelevant to you unless you would like to stop paying for an external service.

Roblox developers should never need to go off platform to be able to manage their data, especially not when Roblox already provides data storage and cross-place data access.

I do not care how exactly Roblox implements this. API would be fine. Rewiring data sources would also be fine (and perhaps more portable).

Here is a diagram of how this currently works.

Here is a diagram of how I want this to work.

14 Likes

Full support. It’s just going to make games more immersive. I don’t get why this simple feature isn’t already implemented.

2 Likes