Save your player data with ProfileService! (DataStore Module)

There is only slightly more things to write, but this module includes session locking. Something that should exist in the Built-in DatastoreService but isn’t.

Heh yeah in all honesty I’d rather wait for Roblox to implement native session locking than having to tinker with ProfileService any more than I have to because that’s all it does - provide session locking and periodic saving. It’s been almost 4 years… But maybe! Just maybe Roblox can do it!

3 Likes

Speaking of session locking and ProfileService, I have been having quite an issue with ProfileService’s session locking, as seen in this post:
ProfileService Fails to Load for Small Percentage of My Players - Help and Feedback / Scripting Support - Developer Forum | Roblox

It seems like when a player gets disconnected, their profile gets “stuck” in the dead session, and when they join a new session, it says their profile is already loaded in that new session… Which makes no sense.

Using “Steal” does not appear to really fix this either.

You are releasing the profile when the player is leaving right?

Yes. If I didn’t, this glitch would happen infinitely more frequently.

I’m having issues similar to this when using profile service to handle products purchases.

Issue with ProfileService dev products handling

@loleris do you have ideas on how to fix the error “receipt… alr being processed”?

Regarding this, the API for ProfileService does not mention anything about the error.

I made a youtube video about this concept hope you guys will enjoy How to Properly Save your data with Profile Service

How many Update requests per minute per player does the Profile service send?
Is it possible to cause Throttle errors?

How do you get all the profiles (keys) in a profile store? (if you have a statsProfileStore eg: userID = { Cash = 10, Exp = 100}, how to get all the userIDs in the statsProfileStore?)

Ok, this isn’t very easy… And it’s very hard to remember some aspects too.

1 Like

Does anyone know how I’d go about making some sort of ‘save slot’ system?


Does anyone know why i’m getting this error whenever my game hits around 300-400 concurrent?

Anyone have data from a past session always set the data to the current session, when the player joins when using profileservice. Despite it being known for having sessionlocking, every data key that has table as a value with values that are tables does not save resulting in data regression.

I’m trying to save my emotes but my changes won’t save in my game to their initialization(the list of emotes). I tried adding placeholders to test the issue but it just added extra clutter into the game that couldn’t be deleted.

Would a updated callback function ever be added as I had to implement my own which I am sure is a lot less efficient than an actual implementation would be

profile service hasnt been updated for 3 years but its still up (loleris should defo look over the code theres no way hes still at the same level after 3 years)

2 Likes

Its a module that has efficiently saved the data of thousands if not more roblox experiences for years without issues, why would there be a need to change something that is not broken?

you never know what you couldve done better after 4 years so worth a shot

This is awesome, i was using Datastore2 (the module) and was having issues so eventually i looked for a solution and found this, i’ve been using ProfileService in the games im working on and i’d like to say that IT IS AWESOME!

After few years of using this module, I haven’t been more frustrated than ever. For some odd reason my data has been regressed when loading into another place. I have no idea what caused it but I have set the first and last name for profile.Data.Slots[1]. After that I have released profile and teleported player using the ListenToHopReady function. However, despite all that, despite profile names being set in it (checked with print) it still didnt save for some odd reason.

I have checked and I did everything correctly, like I was instructed to.