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?
suphis datastore module
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.)
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.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.