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:

47 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.

18 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.

image

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

image

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.

3 Likes

Sorry for bumping this thread, but is there an update to this feature request?
I really don’t get it why this isn’t already implemented.


I give my full support on this, I really want to create an universe which hosts many smaller games/experiences (not places) which all have their own website page and share the same universe data, unfortunately that is not possible at the moment and I am restricted to having only one entry point to the universe and I am restricted to having only starter place’s website page.

It would be great if they add something like shown in the image below.

Concept Image

An additional label should be placed on the top of the page that tells the user that the experience that they are viewing is a part of an universe.

5 Likes

Having a Game Setting to allow joining sub-places directly when a place’s Play button is clicked would be much appreciated. There are lots of creatively based reasons for this feature, but there are also examples for it that are rooted in common sense:

I have an experience where all places other than the experience’s Start Place serve administrative purposes. Examples include staging code, developing the physical build, and even things like general administration, like managing DataStores in a non-Studio perspective, sandboxed, safe environment.

These are places that only members of development and staff can access, and these places need to have access to an experience’s shared data and shared services.

Right now, the only way to access these places is joining the Start Place of the experience and joining the sub-place via TeleportService.

I have spent weeks confused as to why it seemed like publishing a sub-place wasn’t working. Only after printing the game’s PlaceId via the developer console did I learn I was in an experience’s Start Place, and not the sub-place that I tried to join via the Play button from the sub-place’s web page.

The way things are done currently are a hindrance to development, as there is no information to tell me that I was joining a different place than the one whose Play button I clicked on the website.

3 Likes

Bumping this up again after this feature released. It’s a great step in the right direction for universes, but there’s still a lot to be desired from them.

Being able to have any number of active places under a universe and ditching the “start place” requirement would allow for many grand scale experiences to flourish. It’s still possible to do this today, but as the original post describes, it comes with a lot of friction and a forced “hub” place.

This completely prevents independent discovery of any places within the universe and can cause greater issues with joining these sub-places (as TeleportService may fail).

An alternative to this would be a way to “link” universes together so that DataStores, MemoryStores, MessagingService and other features may work across them.

4 Likes