Intro to ProfileService DataStore Module: Basic Usage (Roblox Studio)

Part 2 (Global Updates): • Global Updates: Profil...
DevForum Post: devforum.roblox.com/t/save-yo...
API on GitHub: madstudioroblox.github.io/Pro...
In this tutorial we take an introductory look into ProfileService, a data storing module by loleris, the features it has, and the basics on how to get started using it.
My Discord Server: / discord
Thumbnail Abstract vector created by fullvector - freepik.com

Пікірлер: 122

  • @AdamHatmaker
    @AdamHatmaker2 жыл бұрын

    Amazing what a few months of learning does. Cant wait to implement this. Your tutorials have helped me learn alot and come pretty far.

  • @iggydeveloper
    @iggydeveloper3 жыл бұрын

    Great tutorial! I mostly prefer video's explaining something rather than a text, so I was happy to see that you made this video!

  • @lukkan4131
    @lukkan41313 жыл бұрын

    He's alive :D. Thanks for making epic tutorials!

  • @Matt-cn7wi
    @Matt-cn7wi3 жыл бұрын

    Really good tutorial. Thanks for doing this! Also, good to know you are back!

  • @howdo7278
    @howdo7278 Жыл бұрын

    TYSM for making this tutorial!! I was having a ton of trouble understanding how to properly grab the player data once it was loaded, lol.

  • @rsre1911
    @rsre19113 жыл бұрын

    the hero came back when i finally got back into scripting... you are a god man (: no seriously, this is detailed as hell. i wish i could do more to support you.

  • @Kitsune_Dev
    @Kitsune_Dev3 жыл бұрын

    Never seen your channel until now, good work pal

  • @daconday
    @daconday2 жыл бұрын

    I finally understanted this code after 2 days (not saying u explain badly you did well without this I would never had learned profile service this fast thx)

  • @yellowbannana8989
    @yellowbannana89892 жыл бұрын

    Hey okeanskiy! Thanks a lot for this tutorial, you're like the Brackeys of Roblox! Keep it up! -Cheers, Yellow

  • @MwSama
    @MwSama2 жыл бұрын

    Thanks for the tutorial, this visually explains how this works! Honestly, just reading the profile service github page wasn't enough for me to actually understand how it works.

  • @okeanskiy

    @okeanskiy

    2 жыл бұрын

    Yeah, me neither. i had to read up discussions on it and ask the developer questions, but eventually i got it 👍

  • @jackiem6125
    @jackiem61253 жыл бұрын

    Very informed and understandable video! 👍

  • @bruhifyssoldier3091
    @bruhifyssoldier30913 жыл бұрын

    YOU'RE FINALLY BACK!

  • @artkek
    @artkek3 жыл бұрын

    Epic video. I really appreciate that

  • @thetomatoplanet
    @thetomatoplanet3 жыл бұрын

    Thanks for this video, it helped me a lot!

  • @ye1916
    @ye19163 жыл бұрын

    I WAS WAITING FOR THIS THX SO MUCH

  • @rashy15
    @rashy153 жыл бұрын

    okeanskiy without knowing also teaches me how to make a Daily Reward System.

  • @mjddev
    @mjddev3 жыл бұрын

    Looks useful, I'll check it out :)

  • @Disobeyedcrab
    @Disobeyedcrab3 жыл бұрын

    I love ProfileService!

  • @encodedlua5811
    @encodedlua58113 жыл бұрын

    Great tutorial! I was hoping this module would get more attention as it seems to be pretty robust.

  • @okeanskiy

    @okeanskiy

    3 жыл бұрын

    thanks EncodedLua!

  • @Unknown-bi7wf
    @Unknown-bi7wf3 жыл бұрын

    "very beginner friendly", proceeds to teach us hebrew

  • @Sejdkkk

    @Sejdkkk

    Жыл бұрын

    True 😂😂😂😂 loool❤

  • @Varsitelle
    @Varsitelle3 жыл бұрын

    I don't get it, the whole thing works but sometimes I get nil values back from the module script. I'm reading and writing from the DataManager multiple times, is that a bad thing?

  • @greythekittenstudios5176
    @greythekittenstudios51763 жыл бұрын

    He is Alive!!!!

  • @Vortex-qb2se
    @Vortex-qb2se10 ай бұрын

    Is there a particular reason why your datastore is in replicated storage where exploiters can see and manipulate it?

  • @corotyest
    @corotyest3 жыл бұрын

    The concept is good, everything is fine except because using it if there are things safer than it. It is also not very effective to detect players with a part. Same very good video.

  • @TurtleMouse
    @TurtleMouse5 ай бұрын

    I'm having a problem where profileservice will fail to load is there a way to force it to keep trying until it succeeds?

  • @siwachsaeoung8935
    @siwachsaeoung89352 жыл бұрын

    is there a way to get player profile when that player is not in the server? i want to make ban and unban system

  • @breadboardman
    @breadboardman3 жыл бұрын

    Great video bro

  • @ayxhiria
    @ayxhiria3 жыл бұрын

    broo this so epic!!

  • @dev_neptune
    @dev_neptune3 жыл бұрын

    When you were making this was the server shutdown in profileservice? I'm working on a playtime script and trying to access one of my values but it says BindToClose can only be called on the server.

  • @rbux

    @rbux

    2 жыл бұрын

    Bindtoclose functions only execute when the server is closing. It’s used to protect the last player leavings data as well as all player data during power outages

  • @cat3rd130
    @cat3rd1303 жыл бұрын

    He’s back!!!

  • @infinitemaze5912
    @infinitemaze59123 жыл бұрын

    BRuh this mans to helpful.

  • @sancho_nacho
    @sancho_nacho2 ай бұрын

    One simple question: can PS store tables? Like, if i want to store all tools in my inventory and then load them back?

  • @calamixy
    @calamixy3 жыл бұрын

    Nice video. 😎

  • @devsuper
    @devsuper3 жыл бұрын

    YESSSSSSSSSSSSSSS ANOTHER ONEEEEEE

  • @yousefsaleh3562
    @yousefsaleh35625 ай бұрын

    Does profile service auto update the data when I change any value inside the profile.Data?

  • @radwl
    @radwl Жыл бұрын

    EDIT: Fixed! I was calling the GetProfileStore() function with a colon instead of a dot which adds the self parameter... Hello! Awesome tutorial, but i am encountering a really odd error which stops every other script that uses the DataManager: "[profileservice]: missing or invalid "name" parameter " I tried debugging and it seems that the error occurs when the ProfileService.GetProfileStore() is called. Looking into the code for profile service and where it throws the error, i am only supposed to get this error when the first parameter is neither a string nor a table. But i have written that piece of code just as you did, and the parameter is clearly a string ( "Profile" ). do you have any idea what else could cause this error?

  • @alykofi8799
    @alykofi87993 жыл бұрын

    can this be used to save a players outfit they made once they rejoin the game?

  • @sonusales4480
    @sonusales44803 жыл бұрын

    if your money script do i have to do the os part or it is COMPLETLY optional

  • @spyonmebaby
    @spyonmebaby3 жыл бұрын

    tha man is back awesome

  • @invisible_bacon4085
    @invisible_bacon40859 ай бұрын

    i did everything right, no error scripts but when i walk onto the part i dont get anything, is there a way to fix this?

  • @theiconicexploiter
    @theiconicexploiter2 жыл бұрын

    I need help when I try changing stat it goes back to original stat num how do I make that stop looping?

  • @obz_1370
    @obz_13703 жыл бұрын

    Does the auto saving also save the players position in the game?

  • @okeanskiy

    @okeanskiy

    3 жыл бұрын

    No it saves only what you put in the Profile.Data, which you could put an XYZ table of their position

  • @obz_1370

    @obz_1370

    3 жыл бұрын

    @@okeanskiy thx.

  • @Jonesloto
    @Jonesloto3 жыл бұрын

    Maybe I should use this rather than datastore2...

  • @LXT_RBLXDev
    @LXT_RBLXDev3 жыл бұрын

    One thing that confuses me is the fact you put a player joining/removing event inside of a the module script. I thought that events inside of module scripts can’t be fired itself, they can only be fired if a server or a client script calls it. I’ve tried doing player added/removing on a sample module script, but as expected, the event listener didn’t fire when I tried testing it.

  • @finger8556

    @finger8556

    3 жыл бұрын

    loop through game.Players:GetPlayers() with a for i,v in ipairs loop and call the PlayerAdded(or whatever function you connected to game.Players.PlayerAdded) on v

  • @LXT_RBLXDev

    @LXT_RBLXDev

    3 жыл бұрын

    @@finger8556 I’ve already figured this out myself. Your comment did not answer my question nor did it have anything to do with it, but thanks.

  • @richanhegamer3696

    @richanhegamer3696

    Жыл бұрын

    I didn't understood this either

  • @JayedGaming
    @JayedGaming3 жыл бұрын

    Hey there! How would this work when saving items in your inventory w/ their own stats? For example, a Sword and the Sword has Durability #

  • @rbux

    @rbux

    2 жыл бұрын

    Hm. Depending how on you store the sword if it’s a table you could go something like local ownedWeapons = {Sword={4, 1, 3}, Hammer = {7, 5, 4}} -example: sword level 4, durability level 1, strength level 3 and so on for all your weapons and their stats

  • @alexander8597
    @alexander8597 Жыл бұрын

    HI, is there anyway to make a leaderstats system I try to make it but It didn’t work.

  • @inyaynm6484
    @inyaynm64843 жыл бұрын

    Y E S

  • @Amritss664
    @Amritss6644 ай бұрын

    man i'm so confused i don't get it, can u please explain to me? :(

  • @RATE.LIMITED
    @RATE.LIMITED2 жыл бұрын

    How could I read this information from another script (ex. to display the amount of time left)? Thanks for the tutorial!

  • @rbux

    @rbux

    2 жыл бұрын

    Create a module function that returns player values, call the function from the script where you want it. Alternatively physical values can be stored somewhere just note to never update your data from the values only update the values from your data otherwise it’s easy to for exploiters to manipuslte

  • @astec9051
    @astec90513 жыл бұрын

    hey so what if i wanted to for example save how the player looks (Im making a demon slayer styled game and upon completion of a mission and outfit is change) does this do that and if so how also can i use this to save player tools and skills gained and again how would this be done?

  • @betrayedpickle291

    @betrayedpickle291

    2 жыл бұрын

    You could have something like Hair1, Hair2, Shirt1, Shirt2, etc. Then save the names of the clothing item in the players profile ("Hair1", "Hair2", "Shirt1", "Shirt2"). Then when you load the profile, handle the data. So if they have Hair1 saved, then put Hair1 on the players body.

  • @coloredglass2246
    @coloredglass2246 Жыл бұрын

    How do I write the MoneyPart I cant find it

  • @navalofficer1
    @navalofficer12 жыл бұрын

    I'm not a Lua guru or anything, and I'm not sure of how vulnerable these modules are to exploiters, but I figured it would be the safest to keep them in ServerScriptService instead of ReplicatedStorage so that the client can't access them, or know their methods. Since they cannot be modified from a client script in the first place I don't see much of a point in having them in replicated storage. Yes, they're open-sourced, but if they are in ServerScriptService an exploiter will not know what datastore service or module you're using, and therefore they have no way of exploiting it. Exploiters can see anything that is in ReplicatedStorage, but not ServerStorage or ServerScriptService.

  • @flabbo6469

    @flabbo6469

    2 жыл бұрын

    You're right, I'm pretty sure the API for ProfileService says the best place to put it is ServerScriptService. Definitely more secure that way.

  • @bubbado3667

    @bubbado3667

    2 жыл бұрын

    Anything Server wise should be stored in ServerScriptService (if possible) there is no way for exploiters to see anything in it along with ServerStorage as well

  • @dextutorials8201
    @dextutorials82013 жыл бұрын

    It’s funny how people dislike videos just to be the first to do that

  • @parthkapadia9435
    @parthkapadia94353 жыл бұрын

    Can someone link that mesh editor plugin you have?

  • @okeanskiy

    @okeanskiy

    3 жыл бұрын

    www.roblox.com/library/3076076256/Mesh-Editor

  • @parthkapadia9435

    @parthkapadia9435

    3 жыл бұрын

    Thanks!

  • @alexander8597
    @alexander8597 Жыл бұрын

    Hi I did it a few days ago and it worked but now when I try to save another thing like Gems it return me nil. Can you help me please?

  • @okeanskiy

    @okeanskiy

    Жыл бұрын

    hey, so this happens when you add a new entry (like 'gems') to the profile template after a player already had some data. the template wont be copied if the profile already has data, so it still has the old template. to resolve this, you can either 1 - use the profile:Reconcile() function: madstudioroblox.github.io/ProfileService/api/#profilereconcile or 2 - do a nil check: (right after profile creation) if profile.data.gems == nil then profile.data.gems = template.gems end

  • @360sauce7
    @360sauce7 Жыл бұрын

    How do we make it save the players tools?

  • @vdev3161
    @vdev31612 жыл бұрын

    how would you do multiple values?

  • @SciPunk
    @SciPunk3 жыл бұрын

    How would you make the values of the Data readable in a local script?

  • @whereIsKlumz

    @whereIsKlumz

    2 жыл бұрын

    u need to use ReplicaService, which is a module and not a built-in service

  • @bboyanimations7175
    @bboyanimations71753 жыл бұрын

    is API safe to turn on? I've been getting mixed results from people and I would like to know if my game will be fine.

  • @ultimate8673

    @ultimate8673

    3 жыл бұрын

    It always depends on you, if you are braindead and just drop every free model into your game you shouldnt even make a game lol, and dont trust anybody without a contract since they can just screw your game, the answer is YES everything is safe asfar as you use it the right way otherwise roblox wouldnt include such a feature.

  • @bboyanimations7175

    @bboyanimations7175

    3 жыл бұрын

    ​@@ultimate8673 thanks! free model are bad I've been learning scripting

  • @ultimate8673

    @ultimate8673

    3 жыл бұрын

    @@bboyanimations7175 You can use Free models, but always look for scripts inside of them, im putting the model i wanna look at into a new baseplate and look through it, and if its clean i can use it. :)

  • @alexander8597
    @alexander8597 Жыл бұрын

    Hi, I did everything but I have an error the error is “ReplicatedStorage.ProfileService:2209: [ProfileService]: Missing or invalid “Name” parameter” I hope you can help me!

  • @alexander8597

    @alexander8597

    Жыл бұрын

    Oh, I just fixed it thanks for the tutorial!

  • @okeanskiy

    @okeanskiy

    Жыл бұрын

    Look at the call stack the comes with the error and it will tell you what function is erroring. However my guess is that you are using ProfileService.GetProfileStore() wrong. The first parameter is "Name" and you need to give it a string for example "StoreName" or "PlayerStore". madstudioroblox.github.io/ProfileService/api/#profileservicegetprofilestore

  • @n1qro
    @n1qro3 жыл бұрын

    6:20 - Get the pepa off there! cmon

  • @masterdiagnose2453
    @masterdiagnose24533 жыл бұрын

    Can you make car color saving please?

  • @7har

    @7har

    3 жыл бұрын

    Just use the module and insert the color (1,1,1) into the data and have a script grab it or something.

  • @miffclick3358
    @miffclick3358 Жыл бұрын

    y did u put them in replicated storage

  • @normalperson397

    @normalperson397

    Жыл бұрын

    It's common to put modules or assets within Replicated Storage, simply because both the client and the server can access them.

  • @miffclick3358

    @miffclick3358

    Жыл бұрын

    @@normalperson397 cant exploiters manipulate it then.

  • @normalperson397

    @normalperson397

    Жыл бұрын

    @@miffclick3358 Yes they can, but it won't be easy nor worth it.

  • @Tamla1959
    @Tamla195910 ай бұрын

    what about datastore2, which is better?

  • @okeanskiy

    @okeanskiy

    10 ай бұрын

    i use datastore2 for most things because its easier/simpler. but the moment i need session locking i use/migrate to profile service. also profile service works really well with the other madwork framework replica service, which i am a huge user of.

  • @Tamla1959

    @Tamla1959

    10 ай бұрын

    @@okeanskiy ok thanks, also i didnt know you where still active, you havent made a video/tutorial in ages. Plan on coming back?

  • @okeanskiy

    @okeanskiy

    10 ай бұрын

    @@Tamla1959 plan on it yeah. dont know when.

  • @Tamla1959

    @Tamla1959

    10 ай бұрын

    @@okeanskiy ok, good to know, in your own time of course. :)

  • @un4039
    @un40393 жыл бұрын

    I'm not sure if this is just incompatible or due to some error on my end, but I kept getting errors thrown when I tried it with a localscript, with the error being about the BindToClose() function in the profileservice script. Obviously not trying to change any data locally, but there's a lot of data that i'd like to be able to have the client be able to read that doesn't seem to be possible with this module. Any help would be appreciated.

  • @grandtheftautoexpert2040

    @grandtheftautoexpert2040

    3 жыл бұрын

    use a remote where the serverscript gets a fireserver from a clientscript that requests to read a value, which it will extract and return on a serverscript

  • @7har

    @7har

    3 жыл бұрын

    yeah create a remote function that when invoked has a command and have a local script listening for it and then u can change a gui or something since u never want to handle data on the local scripts, then you can check each time if its owned when they joined for example if u had a sell button or something. Make sure to get the data from the module each time u call the remote so it can grab the data incase it has been changed or something to prevent for example double buying or something.

  • @whereIsKlumz

    @whereIsKlumz

    2 жыл бұрын

    you'd need to use a module called ReplicaService. Remote events and functions don't work with ProfileService; the client will just get nil, so ReplicaService should be used with ProfileService if you plan on sending any data to the client.

  • @hendrikjanbroekhuijze8108
    @hendrikjanbroekhuijze81083 жыл бұрын

    Me: Watching the video 3 mins later Also me: Hold up where is the link for the profileservice

  • @hendrikjanbroekhuijze8108

    @hendrikjanbroekhuijze8108

    3 жыл бұрын

    I found it and here is the link web.roblox.com/library/5331689994/ProfileService

  • @hendrikjanbroekhuijze8108

    @hendrikjanbroekhuijze8108

    3 жыл бұрын

    5:50 so i know where i was

  • @hendrikjanbroekhuijze8108

    @hendrikjanbroekhuijze8108

    3 жыл бұрын

    9:30

  • @yorshcyt
    @yorshcyt3 жыл бұрын

    A Question which one you think is better/safer? DS2 Or PS

  • @waslucids6023

    @waslucids6023

    3 жыл бұрын

    if i merge both datastorage modules i will create the ultimate data store system. nobody really knows which is better since both have different use intentions

  • @polarcat0156

    @polarcat0156

    3 жыл бұрын

    @@waslucids6023 FBI! This guy right here! Contain them!

  • @mars5255
    @mars52553 жыл бұрын

    I hate the fact that alvinblox is so bad, he’s terrible. He needs to be taught proper scripting and not be money hungry to receive my acknowledgement/forgiveness.

  • @polarcat0156

    @polarcat0156

    3 жыл бұрын

    And you are?

  • @joeaaa8125
    @joeaaa81252 жыл бұрын

    11:41

  • @360sauce7
    @360sauce7 Жыл бұрын

    12:30

  • @paranoidPhantom
    @paranoidPhantom3 жыл бұрын

  • @tehbeanz5062
    @tehbeanz50623 жыл бұрын

    Alvin Blox: makes crappy old tutorials ignores his fans and just frustrates beginner scripters Okeanskiy: makes epic scripting vids which ACTUALLY WORK and is epic Also Alvinblox: is featured roblox educator *hold up, wait a minute* (Like if u agree)

  • @conradpierce8994

    @conradpierce8994

    3 жыл бұрын

    I disagree honestly. Lately he's been making good tutorials. He is much more active. Okeanskiy is awesome, I'm not saying he's not. But AlvinBlox has been upping the quality of tutorials. His old ones were crappy. And no he doesn't ignore fans, he listens to suggestions and does it. I'm not a blind fan in any means, just had to call out misinformation about not listening to his fans.

  • @okeanskiy

    @okeanskiy

    3 жыл бұрын

    i think that alvinblox is just improving as a programmer as a person now that he has a lot of good people around him, and his videos are a reflection of that

  • @MatteoP04ita

    @MatteoP04ita

    3 жыл бұрын

    Alvin has taught me scripting in the easiest way possible. He's clear and makes good examples. You can't find better

  • @seabass15

    @seabass15

    3 жыл бұрын

    Bruh he doesn't 'ignore' his fans and his tutorials work? If someone puts a comment down asking for help, there is no guarantee he can see that, as he has thousands of people commenting. Even if he does, he needs to sleep eat and do work/other things. He can't script all day every day for people like you. Other than that this KZreadr made a good video.

  • @roraspace
    @roraspace3 жыл бұрын

    Too fast and confusing.

  • @rbux

    @rbux

    2 жыл бұрын

    Negative, your just incompetent

  • @Explodeom
    @Explodeom Жыл бұрын

    Wondering if i could get some help. i have had this error for a bit and it happened after I copied my game into baseplate 2021 since it had new lighting, ([ProfileService]: DataStore API error [Store:"Players";Key:"Player_460244548"] - "509: Data Store operations blocked while running on a Personal RCC to prevent possible data corruption") -- the error I have been getting, I need help D: