Whats the advantages of using ProfileStore

Hello devs!

ive always wondered whats worth using more.

PROFILE STORE
or
your own datastore saving script

2 Likes

That depends on your use cases, I recommend you use your own to learn more on how it works and later on you can always use ProfileStore, or any other module that fits your needs.

Realistically you should use ProfileStore, but feel free to learn the basics of datastores! You could use datastores directly if you need to do something very specific that ProfileStore isn’t fit for, like when dealing with non-user data.

1 Like

A key selling point of ProfileStore is session locking. This means that the player cannot access their data from within multiple servers, which can be exploited in trading systems. You can read the website here.

In my own words, here are benefits/downsides of ProfileStore and writing your own module:

ProfileStore

Advantages Disadvantages
Built-in features (profiles, session locking, etc.) Many features make it confusing and possibly performance-costing on the server
Designed to be usable in every game Complex setup (you write your own interface (module with get(), update(), etc) + no client replication!)

Custom

Advantages Disadvantages
Tailor made for your game(s) → No excess memory & visual clutter from unused functions/features You do the developing, maintaining, & bug fixing
Developing it yourself helps you understand more about DataStore practices You still have to manage interface & client replication

Currently, I use ProfileStore with my own data manager module and client replication method, and I recommend you do the same.

If you want to learn, I recommend you make your own data systems before making the switch to using datastore libraries as I did. There’s a lot of knowledge carryover to ProfileStore anyway.

Finally, I just want to say that it depends on your game. If you’re making small games/prototypes with no plans of it getting big, then a simple datastore system will do the job over ProfileStore’s setup (unless you already have a system in place for that).

Hope this helps.

1 Like

If you want to make a team based system, use DataStore
Datastore also has a lot of plugins to debug and or for testing, profilestore cannot do that there are no plugins

None except maybe inspiration
Write your own system, cut ze fluff and remove the noise
OPTIMIZE it for your game specifically
Use metadata of save timestamp os.time() and game.JobId for session locking
Use UpdateAsync unless for joining, when a player joins you have to get their data, write their new metadata through SetAsync, and for the rest use UpdateAsync and verify metadata’s legitimacy.
Cut ze fluff, eat ze bug :raised_fist:

its literally the same thing
Its just a library to abstract logic away (which you should never do by the way)

No, you absolutely can use datastore tools. profileservice is just a datastore wrapper to make it 1. easier and 2. safer for devs using

He’s correcting your (accidental) misinformation which is very important to know? Datastore plugins can be used with almost any datastore module.

2 Likes

It’s just a ready code to help you save time on saving. Using templates in case if data isn’t synced, has sessions, and is pretty much efficient. By no means you use it all times, but if you know how data stores works, this conveniently saves you time. you always can make datastores script just to learn, or even create a better profile store. But famous games likes grow a garden use it as means to make your life easier as a scripter.