Help understanding the limits of a datastore and how to save large amounts of data


I am creating a very large in scope and very complex RPG game that plays similar to an MMO with the complexity of something like TES:Daggerfall that requires massive amounts of data to be saved, and uses the teleport service to travel between many different worlds along with many dungeons, and I am worried that I will not be able to save it all.

I have looked at the documentation and other forum posts, but I have heard a lot of conflicting information on how much datastores can save. I heard that the limit is 4MB per key however I am not sure how much that really gives me when it comes to saving data, and I want to know how much I can get away with saving.

Things I need to save:
Items and their amounts
Interdimensional Currency
Skills Unlocked
Skills Equipped (There are only 4 slots)
World Specific Event Triggers (Npcs that you have met and specific important information in dialogue with them)
Interdimensional Event triggers (In case I want Npcs to Reference things that happened in other worlds)
Honor (for a separate pvp game mode level)
World Specific Quests completed
Interdimensional Active Quests how far you are into them
World specific Active Quests and how far you are into them
Dungeons completed, how fast you completed them, and what difficulty
Factions Discovered
Reputations for each faction factions (number between -3000 to 3000)
vehicles and customization
owned hats and cosmetic stuff
Player customization
Where the player is located when they left the game and what world they were in

Most of this data only needs to loaded once when the player joins, and needs to be saved when they leave. However some specific data will only be accessed when the code specifically needs it. It will only be loaded once and put inside of a folder in the player so that I can be accessed later on without having to get the data again while in the place. Another thing to note is that there is specific data stored for specific worlds or parts of the game.

Ex: Dungeon Data is only saved while in a Dungeon and World Specific Quest are only loaded and saved when inside of that world.

Taking into account that everything is compressed and optimized to the best of my ability, and is only saved and loaded when needed. Could I get away with saving all this data? If you think its not feasible, are there any other workarounds that don’t Involve the HttpsService?

Thank you!

Using a converter, 4mb of data is 4,000,000 characters. I used this, and roblox might be different and off based on how they save it. But I know that 4mb is really hard to reach for usage. Tool I used: Characters to Megabytes Conversion Tool

I think your ok to use a normal data store, and connect it by via table. And using 2 datastores for dungeon and world data. Table example:

local Savedtable = {
["Level"] = 0,
["Xp"] = 0,

Short answer, very likely, yes. I am also making a big game that has tons of data, and I haven’t ran into an issue myself of too much data.

1 Like