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
Amazing what a few months of learning does. Cant wait to implement this. Your tutorials have helped me learn alot and come pretty far.
Great tutorial! I mostly prefer video's explaining something rather than a text, so I was happy to see that you made this video!
He's alive :D. Thanks for making epic tutorials!
Really good tutorial. Thanks for doing this! Also, good to know you are back!
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.
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.
Never seen your channel until now, good work pal
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)
Hey okeanskiy! Thanks a lot for this tutorial, you're like the Brackeys of Roblox! Keep it up! -Cheers, Yellow
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
2 жыл бұрын
Yeah, me neither. i had to read up discussions on it and ask the developer questions, but eventually i got it 👍
Very informed and understandable video! 👍
YOU'RE FINALLY BACK!
Epic video. I really appreciate that
Thanks for this video, it helped me a lot!
I WAS WAITING FOR THIS THX SO MUCH
okeanskiy without knowing also teaches me how to make a Daily Reward System.
Looks useful, I'll check it out :)
I love ProfileService!
Great tutorial! I was hoping this module would get more attention as it seems to be pretty robust.
@okeanskiy
3 жыл бұрын
thanks EncodedLua!
"very beginner friendly", proceeds to teach us hebrew
@Sejdkkk
Жыл бұрын
True 😂😂😂😂 loool❤
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?
He is Alive!!!!
Is there a particular reason why your datastore is in replicated storage where exploiters can see and manipulate it?
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.
I'm having a problem where profileservice will fail to load is there a way to force it to keep trying until it succeeds?
is there a way to get player profile when that player is not in the server? i want to make ban and unban system
Great video bro
broo this so epic!!
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
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
He’s back!!!
BRuh this mans to helpful.
One simple question: can PS store tables? Like, if i want to store all tools in my inventory and then load them back?
Nice video. 😎
YESSSSSSSSSSSSSSS ANOTHER ONEEEEEE
Does profile service auto update the data when I change any value inside the profile.Data?
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?
can this be used to save a players outfit they made once they rejoin the game?
if your money script do i have to do the os part or it is COMPLETLY optional
tha man is back awesome
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?
I need help when I try changing stat it goes back to original stat num how do I make that stop looping?
Does the auto saving also save the players position in the game?
@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
3 жыл бұрын
@@okeanskiy thx.
Maybe I should use this rather than datastore2...
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
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
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
Жыл бұрын
I didn't understood this either
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
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
HI, is there anyway to make a leaderstats system I try to make it but It didn’t work.
Y E S
man i'm so confused i don't get it, can u please explain to me? :(
How could I read this information from another script (ex. to display the amount of time left)? Thanks for the tutorial!
@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
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
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.
How do I write the MoneyPart I cant find it
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
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
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
It’s funny how people dislike videos just to be the first to do that
Can someone link that mesh editor plugin you have?
@okeanskiy
3 жыл бұрын
www.roblox.com/library/3076076256/Mesh-Editor
@parthkapadia9435
3 жыл бұрын
Thanks!
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
Жыл бұрын
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
How do we make it save the players tools?
how would you do multiple values?
How would you make the values of the Data readable in a local script?
@whereIsKlumz
2 жыл бұрын
u need to use ReplicaService, which is a module and not a built-in service
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
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
3 жыл бұрын
@@ultimate8673 thanks! free model are bad I've been learning scripting
@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. :)
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
Жыл бұрын
Oh, I just fixed it thanks for the tutorial!
@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
6:20 - Get the pepa off there! cmon
Can you make car color saving please?
@7har
3 жыл бұрын
Just use the module and insert the color (1,1,1) into the data and have a script grab it or something.
y did u put them in replicated storage
@normalperson397
Жыл бұрын
It's common to put modules or assets within Replicated Storage, simply because both the client and the server can access them.
@miffclick3358
Жыл бұрын
@@normalperson397 cant exploiters manipulate it then.
@normalperson397
Жыл бұрын
@@miffclick3358 Yes they can, but it won't be easy nor worth it.
what about datastore2, which is better?
@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
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
10 ай бұрын
@@Tamla1959 plan on it yeah. dont know when.
@Tamla1959
10 ай бұрын
@@okeanskiy ok, good to know, in your own time of course. :)
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
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
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
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.
Me: Watching the video 3 mins later Also me: Hold up where is the link for the profileservice
@hendrikjanbroekhuijze8108
3 жыл бұрын
I found it and here is the link web.roblox.com/library/5331689994/ProfileService
@hendrikjanbroekhuijze8108
3 жыл бұрын
5:50 so i know where i was
@hendrikjanbroekhuijze8108
3 жыл бұрын
9:30
A Question which one you think is better/safer? DS2 Or PS
@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
3 жыл бұрын
@@waslucids6023 FBI! This guy right here! Contain them!
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
3 жыл бұрын
And you are?
11:41
12:30
⠀
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
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
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
3 жыл бұрын
Alvin has taught me scripting in the easiest way possible. He's clear and makes good examples. You can't find better
@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.
Too fast and confusing.
@rbux
2 жыл бұрын
Negative, your just incompetent
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: