ProfileService vs Making Your own Datastore?

I need helping weighing the pros and cons of using Profile Service.

I made my own datastore that ensures that data will only save if the data has loaded successfully in the server, and if it hasn’t loaded successfully then it will continue retrying until success or eventually kick the player.

I cannot think of another possibility of Dataloss occurring other than overwriting player data with false data which my datastore already accounts for… right?

Are there other things that I should watch out for that ProfileService accounts for?

I think the biggest advantage of ProfileService is how the data can be handled by scripts, other than that it’s just a module that you might use for simplicity.

However, I’m pretty sure that ProfileService and other Datastores modules were built around an idea by @Quenty, where you also save data to an OrderedDatastore with the key being the current os.time(), this way, if data fails to load, you can retrieve it later by organizing the datastore in descending order.

One of the key features of ProfileStore is the session locking.

Using a basic data store system and you quickly leave one server and join another there is a risk that the most recent data isn’t the data you get when you join the second server. This can be exploited to cause things like trade item duplication.

1 Like