{"id":"joshuaclarkelua/profileservice","name":"profileservice","scope":"joshuaclarkelua","platform":"roblox","description":"Mirrored from the Wally registry.","version":"1.1.1","latest":"1.1.1","versions":["0.1.0","1.0.0","1.0.1","1.1.0","1.1.1"],"license":"Apache-2.0","licenseRating":"safe","licenseCaveats":["Modified files must carry a notice of changes. If the package ships a NOTICE file, its attributions must be preserved.","License identified from the packaged LICENSE file; the manifest declared none."],"licenseVerified":true,"dependencies":{},"integrity":"9c73375ba8242e397af4f890914b1e089caa4b0445a54ce0a08d8c3396306920","likes":0,"downloads":0,"install":"forest install joshuaclarkelua/profileservice","url":"https://forest.dev/p/roblox/joshuaclarkelua/profileservice","files":"https://api.forest.dev/ai/package/roblox/joshuaclarkelua/profileservice/files","readme":"# Madwork - ProfileService\n\nProfileService is a stand-alone ModuleScript that specialises in loading and auto-saving\nDataStore profiles.\n\nA DataStore `Profile` (Later referred to as just `Profile`) is a set of data which is meant to be loaded up\n**only once** inside a Roblox server and then written to and read from locally on that server\n(With no delays associated with talking with the DataStore every time data changes) whilst being\nperiodically auto-saved and saved immediately once after the server finishes working with the `Profile`.\n\nThe benefits of using ProfileService for your game's profiles are:\n\n- **Easy to learn, and eventually forget** - ProfileService does not give you any data getter or setter functions. It gives you the freedom to write your own data interface.\n\n- **Built for massive scalability** - low resource footprint, no excessive type checking. Great for 100+ player servers. ProfileService automatically spreads the DataStore API calls evenly within the auto-save loop timeframe.\n\n- **Already does the things you wouldn't dare script yourself (but should)** - session-locking is essential to keeping your data protected from multiple server editing - this is a potential cause of item loss or item duplication loopholes. ProfileService offers a very comprehensive and short API for handling session-locking yourself or just letting ProfileService do it automatically for you.\n\n- **Future-proof** - with features like `MetaTags` and `GlobalUpdates`, you will always be able to add new functionality to your profiles without headaches.\n\n- **Made for ambitious projects** - ProfileService is a **profile object abstraction** detached from the `Player` instance - this allows the developer to create profiles for entities other than players, such as: group-owned houses, savable multiplayer game instances, etc.\n\n---\n*ProfileService is part of the **Madwork** framework*\n*Developed by [loleris](https://twitter.com/LM_loleris)*\n\n***It's documented:***\n**[ProfileService wiki](https://madstudioroblox.github.io/ProfileService/)**\n\n***It's open source:***\n[Roblox library](https://www.roblox.com/library/5331689994/ProfileService)\n\n**Watch while you eat pizza on the couch - YouTube tutorials:**  \n**[ProfileService tutorial playlist](https://www.youtube.com/playlist?list=PLUUm0OvGDjJ8_e8co48ngMJC4XwCaUIIH)** by @okeanskiy  \n**[Session-locking explained and savable leaderstats](https://youtu.be/P5NuM0gPmew)** by @EncodedLua  \n(Will add new tutorials as they come)\n","readmeTruncated":false}