Is there a way to have a shared table (between all games under a universe)

Is there any possible way (without using HttpService, PackageLinks) to have a linked table between all games under a universe?

I have 2 games, the lobby and the actual game; The lobby has a shop with a list of all the classes but the issue is, If i wanted to change an ability name I’d have to go to the actual game, change it and then go back to ther lobby and change it.

The only issue I have with HttpService: This takes sometime to send the request and it’s limited to 500 requests per minute.

The issue I have with Packages: whenever you actually update the package, you have to go to the other place (with the package) and publish it, instead of it being automatically published.

Thanks, please provide ideas!

2 Likes

If i didn’t misunderstand what you mean, you can enable auto update for packages so you dont need to do it manually

1 Like

Yeah, I do have auto-update on; it still requires you to publish for the changes to go through, it only updates on the studio and doesn’t publish.

1 Like

You can try using a data store or MemoryStoreService. Or MessagingService. It depends how often it updates.

1 Like

Yeah, uh; that’s not gonna work.

1 Like

Why not? Why can’t you just have it update through a MessagingService message? Is there a specific structure preventing that?

1 Like

I want something that’s fixed and that I can just index whenever I want, using MessagingService each time I teleport a player to get data is even slower than HttpService considering that I wouldn’t even know if the server got made yet for the people teleporting…

1 Like

Publish the module to the creator store and require it by the ID

1 Like

well smart i guess but i’ll consider it

1 Like

you dont get it, when I said messaging service I mean send a message whenever the value changes and store the result in a variable, you can also update a data store / memory store (depending on change frequency) for new servers to retrieve the value (and store it in a variable).

To simplify this process even further, you can create one script that controls it all through OpenCloud using an API key. (If you do this the extra script wouldn’t be in the Roblox game).

1 Like

You simply want a database, i can only imagine using firebase, supabase, making a server with mysql or postgresql, you want a thing that is not only using a simple command or 5 lines of scripts to get, its more complex than u think, but its still free and 24h per day if you have knowledge.

But, if you REALLY dont want to use httpservice, you can use the property _G of the roblox, this is a table that is shared between the entire game, so for example:

At script 1, you place:

if player:GetAttribute("Alone") then 
 _G[player.Name] = "Alone" 
end

and at script 2 you do:

if _G[player] == "Alone" then 
 print("Alone person") 
end

it WILL script “Alone person”, because the _G is a table thats shared between the scripts with the same context

With this you can simplify the communication between the games.

so, u can make options for the table, for example:

Game 1:
_G[1239122312] = {}
Game 2:
_G[1671254156] = {}
Game 3:
_G[9234627134] = {}

With this and using messagingservice, you can get the same variable names inside the games, and using them with a default script, keeping it updated with datastoreservice to the “Data Player”, that wont need to join or leave

And update the table when joining if theres no server available, so if theres a server online, dont update the table when a server is created, you do this with messaging service

Each game would have their own data player that saves the _G table of the game, and not the entire

With this, u can divide the work of the _G table, that will be working for every game, getting what you want and not losing anything.

1 Like

An easy way to do this is to store the table in the universe datastore under a single key of your choice. All places under the universe share the same datastore, and thus the same table. The maximum data you can save under a single key is 4MB or approximately 2^22 characters. When you save a table, the datastore json encodes it, so you can use that function to estimate the size(by calling len on the encoded string result).

I guess this is the only viable solution there is.