Data Storing Help

Hello! I’m trying to figure out which data store is the best and why.
I’ve come across the following options: Profile Service, Lyra, Lapis, Profile Store, and Document Service.
Which one should I use, and why?

2 Likes

suphis datastore module​​​​​​​​​​​​​​​​​​​​​​​​​​

1 Like

at the end of the day all of these will work and you most likely wont face any problem, try them out and pick the one you are most comfortable with

I prefer SDM because it just has the most features and uses more modern methods

As far as I know, the Profile Service is no longer supported, so it’s somewhat outdated. I tried using it and wanted to set up a replica service for the Profile Service, but I found it quite confusing. What I need is a reliable data store where I can send data to the client, so that I can update the text label when a certain value in the data store changes.

AFAIK ProfileService was superseded by ProfileStore and uses a very similar API.

In my opinion, these faux services are often more work than is necessary; you can use regular remotes to do what you want. If the data change is done on a different server, check out MessagingService.

(That is, throw MessagingService:PublishAsync("TextLabelUpdate", newMessage) in your data update code and listen for messages.)

1 Like

All of these data store modules have undergone excessive testing to ensure high reliability and stability. I can’t tell you which one is the “best”. But like @ethamcker, I am gonna go with ProfileStore as, based on the DevForum post explaining it, it’s used by two most famous Roblox games at this point of time now. In order to make the most out of these modules, it all comes down to how you use its existing functions and features to satisfy your game needs.

Hello, thanks for letting me know. I already using ProfileStore, but I have question about it.

That’s how I’m adding coins

local coinsValue = player:FindFirstChild("playersDataFolder"):FindFirstChild("Coins")
coinsValue.Value = coinsValue.Value + valueToAdd
			
DataManager.AddCoins(player, coinsValue)

But once the add coins is called it says in output

ServerScriptService.Data.DataManager:12: attempt to perform arithmetic (add) on number and Instance

Either valueToAdd is an instance, not a number, or it should be DataManager.AddCoins(player, coinsValue.Value).

Also, I recommend storing your sensitive data in either server-side SharedTables or ServerStorage. Although exploiters can’t just LocalPlayer.playersDataFolder.Coins.Value = 10000000000, as it won’t replicate to the server, storing the data on only the server-side will force you to program everything in a way that the server validates every change in Coins.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.