How to Make Working Datastores in 10 MINUTES | Roblox ProfileService Tutorial (Part 1)
DOWNLOAD THE CODE FROM THE TUTORIAL: www.patreon.com/user?u=86199064
Read our daily threads - / playvectorthree
ProfileService - create.roblox.com/marketplace...
How to use Module Scripts - • Learn Module Scripts i...
In this tutorial, learn to program with ProfileService, which has the primary benefit of session locking over DataStore2! Making Datastores is SUPER easy with this module and tons of the most popular games on Roblox use it. Rather than having to learn DataStoreService, you can quickly implement the code in this video and NEVER worry about data again...
ProfileService is made by Loleris, the creator of the Mad Murderer! Using this tool, you can learn how to save a player's data to make coin saving systems or save an inventory. This programming tutorial shows you how to make that process easy and how to quickly program datastore for all future games!
Subscribe to learn how to program and how to make games on Roblox!
Read more about ProfileService here- madstudioroblox.github.io/Pro...
VectorThree is an innovative company expanding the Roblox development education space. Want to work with us? Email!
jake@vectorthree.dev
Пікірлер: 279
What tutorial do you want to see next?
@pruzae
Жыл бұрын
Good camera bobbing tutorial
@uxbyadrian
Жыл бұрын
Follow up to this video but how to make an inventory which shows your items and lets you drop them
@playDotProduct
Жыл бұрын
@@uxbyadrian We have a tutorial on it using Datastore2 as our first upload, we'll likely release an updated version soon!
@HeIlcatSRT
Жыл бұрын
Wipe player data please
@MattRussellphotoshop
Жыл бұрын
Would love to see how you build a tool shop with profileservice. So purchase a tool, update inventory, then clone the inventory back when player rejoins. Would also love to see how profileservice works with pet hatching.
Bro, continue your amazing content. You have absolutely no clue how rare it is to come across such a great tutorial like this one.
Thanks for the well put together tutorial, I managed to revamp my existing implementation with this method and I can't be any happier knowing the player data will be there 😎
always impressed by how streamlined and easy to understand your videos are ! will definitely be looking into more complex methods for data organization :)
@playDotProduct
Жыл бұрын
Thank you for the kind words!
@Ellttox
6 ай бұрын
@@playDotProductI think you forgot to say how you make the data load, cuz for me it only saves, but doesn’t load
@Ellttox
6 ай бұрын
and what if I have other values other than cash? How do I have those?
@fjnv
3 ай бұрын
@@playDotProduct i think that was sarcasm
@AntiNuke_
2 ай бұрын
this dude doesnt explain anything, he's literally only saying what to do.
Great work, done much better than a lot of the tutorials out there.
I remember I used to watch your development streams on Twitch. Great to see you helping other developers like me with these tutorials!
This man needs to be paid alot for this work lmao. I knew nothing, absolutely nothing. I didnt even knew what "string" or "print" ment but thanks to this video i know alot more!
Thank you SO MUCH it healped me a LOT
You singlehandedly spoonfed me 5 hours worth of testing
Thank you so much! it really works and you explained it very clearly💥💥
AMAZING!! Thank you so much! Also question, is there a way for inventories that I can add a subcategory to the item for the level of that item? Thanks!
Bro, never liked DevKing cuz he doesn't really know how to script and always get confused in his explanation, but, like only he had a lot of tutorials. Finally, found a nice replacement - it's you. Very nice explained and feels like you have an experience!
@Jmq123
11 ай бұрын
he is good at coding he is probably just not the best teacher
@not4eyesdev
3 ай бұрын
@@Jmq123 lol no he got everything off of dev resources and barely understood what he was doing himself. Might be different now but during his tutorial days they were most definitely just being straight up read off of dev resources
@Jmq123
3 ай бұрын
@@not4eyesdev good point
@ItzZoriun
2 ай бұрын
@@not4eyesdev idk what you've been seening but from all tdk's tutorials ive learned ALOT of scripting mostly using his advanced so tbh speak for urself
@not4eyesdev
2 ай бұрын
@@ItzZoriun Nah I definitely learned a lot from him too, in fact I've watched both the beginners and advanced series when I first started out, several times. But compared to other tutorials, his are really bad and stretched out. He made mistakes and barely knew what he's talking about. Simple errors took him way too long to figure out. If I remember correctly, he literally mentioned he just quoted stuff off of dev resources in some of his videos.
This is really good because if you better at C++ than lua u can chance the terms like C++
Thanks for your good tutorials. What's script's in your ServerStorage folder? Same names as in ServerScriptService. More explanation and examples for ProfileService saving method please.
Any idea if you would do a video on DataStore*2*? I am currently learning it as it seems more reliable, but I can't find a straightforward tutorial by searching, so I think it would help some people (including me). Aside from the question, good video! Your voice is very understandable and clear, and there's no cases of having to rewind to understand a word that you said. Keep going
@HowManySmall
Жыл бұрын
it's not don't use it anymore
@playDotProduct
Жыл бұрын
Thanks for the kind words! We'll get to work on that vid!
@playDotProduct
Жыл бұрын
ProfileService does service its purpose quite well and has never had any reliability issues for myself
Silly question possibly, but I am having trouble sending data over to the client to recieve and update. How would I go about that?
Dude u just save me a headace, thank you
Is there a way I can call these from a different place? I want to make a kind of collectible that when you find it appears on the main menu. This really helped with other things though! Thanks!
How would i add to the dataTemplate using another script? Like, adding a new variable, how would one go about adding "Cash" to that list, without it being there initially? So i can take an external table of items and add them to the dataTemplate as the user collects them?
This is perfect, just what I was looking for. A few questions about the type checking: Are Datastore values not able to be changed to different types? (such as changing var = 123 to var = "xyz") Does it also assert an error when overwriting a nil value? (changing var = nil to var = "xyz") I think I'd personally prefer to use that type checking within the Update() method to allow more freedom with the Set() method Also, is the getProfile() function in the Update() method necessary?
Hi @VectorThree, thank you for exposing me to the ProfileService module. It looks like a big improvement over what I have been experimenting with so far. I am struggling to make client-side calls to the ProfileService functions. Do I need to create a remote event to pull data for a GUI? im still trying to learn how a client-side script is supposed to get server-side data. If they are strictly local then do I need to create a local folder under the player that contains the data? I have successfully done it this way but it feels like it isn't secure. Any advice would be appreciated. thank you.
@Lowkey_Magiic
10 ай бұрын
yes, use a remote event
@limeconez1074
10 ай бұрын
I suggest making folders for individual players the replicated storage and add the data in the string values (By JSONencode) and it is easily accessible through the client.
I like how you created a Players variable but never used lmao. Anyways, good tutorial lol.
you can explain how to do team database please ?
How would I store Tool objects for instance a hammer a character picks up, And would I place the tools in ServerStorage or ReplicatedStorage.
Hi! First of all, great tutorial and this works really well! How would you :Get() and :Set() a profile with a player's UserId? My use case is that a player in my game might leave, and I need to record in their data that they have lost a match by forfeiting.
ik this video is 5 months old but do I have to understand all the code in the PlayerDataHandler or just understand how to use it?
where do u put the profileserver script the link you put under your vedio and for what is it? '
im pretty bad at smth like this i have a question how can i save clothing so if i create my avatar and leave that it will save for the next time
I have been searching for a working tutorial the whole day already, non of the tutorials worked, in till I found this one! Thanks Edit: I have one question tho, you never said how to make the data load when the player joins the game so really all this data store does is save the data, but doesn’t load it. So could you pls make a vid on the other half of this tutorial?
How would i save folders and the items inside?
if i want to save for example a clan do i save it on a number that holds value?
Is there somehow to get all the registered players from the ProfileStore?
i wish there was a similar tool for ordered data stores
How would I make an if statement using this? would it be something like if PlayerDataHandler(player, "Coins") == 0 then PlayerDataHandler:Set(player, "Coins", 100) end
@SadlekAski
Ай бұрын
Just use get profile function Get the player profile like function something(player) local profile = DataHandler.GetProfile(player) (or its DataHandler:GetProfile(player), I dont remembr) if profile then profile.Data.Coins = profile.Data.Coins + 100 end end
I need help So I want to know how to display the values on a text label but dont know how
Hey! awesome video. learned alot from this! But i have a question, could i use the playerdatahandler in localscripts?
@janjoestar8757
Жыл бұрын
did you find out?
@Kysuto
Жыл бұрын
no, localscripts are only client sided so they dont store the data as safely
Thanks father
i like that this doesnt use any instances and only tables :)
thanks man
I have been looking for a good datastore for my new RPG and this one seems to be the right one.. I just finished typing the entire script and tomorrow I'll test out what this custom module can really do.
@0tt869
8 ай бұрын
Update: Now I have a fully setup ProfileService as well with a ton of custom functions necessary for my game (but I had to use another tutorial since I was unfortunately struggling with this one for some reason) would recommend.
theres so many datastores is hard to figure out which one would be the go-to, you got "DataStore2" "Profile Service" "Suphis Data Store" and "Ordered DataStore", its very confusing, all i want is the one thats the best but not too hard to set up, for what i remember i think datastore2 handles all the player adding and removing and stuff compair to profile sevrer.
I've been using Datastore2 for quite a few years. I was wondering which module, in your opinion, is the better of the two.
@ajbeaver25
Жыл бұрын
ProfileService is better as it is safer to use and more up to date
nice, but how do you change the look of ur studio?
idk if i need to put inventory cuz i haven't implemented a pet system on my first clicking game yet so yes feel free to reply
Yoooooo how do you change the buttons?????
i followed your instruction but when i tried to play i get a message that i have been kick
Alright so basically everything works ,except the fact that Ive no clue how to script a textlabel by using ProfileService to display the specified variable. For example a text to display the 'cash' value.
Yo, I’ve been trying to make a shotgun that gets the position of the mouse and makes a linearVelocity to the player to bounce them back in the opposite direction in which they clicked….. And I don’t want to use the camera lookVector because it’s a side platformer and camera is locked to one position. Its not exactly working could you help or make a video???
@MwSama
Жыл бұрын
I recommend u use mouse position and character position. Do (mousePosition - characterPosition).Unit to get the direction from mouse position to character position, like look vector. From there u can multiply it by negative 1 and use that value inside body velocity or something
Is there a way to make it so you earn cash when your vehicle parks fully in a highlighted area or even just touches a sertain part? If so could you please explain how? Or if possible could you make a tutorial video on it?
@ICM9
10 ай бұрын
Have a script that checks if all wheels of the vehicle are touching the area. While it is, make it loop every second, add 1 to whatever you are using to store your cash value.
@ICM9
10 ай бұрын
Could use front and back of the vehicle as well, rather than wheels. Any parts so that when they’re within the boundary, it means the whole vehicle is.
@robloxthomasrandoms573
10 ай бұрын
@@ICM9 alright thanks 👍
i got an problem I need to change the coin script to if you kill someone PLS
hey why am I getting kicked even though it says data will be saved, and it doesn't print
my get function some times gives an error and sometimes not any ideas?
hello i made a new dataTemplate and named it Keybinds I'm haveing some issues because when I add a key to Keybinds I get an error in output saying ServerScriptService.PlayerDataHandler:85: Data does not exist for key: Jump
@KoreanLobster
7 ай бұрын
i also added Keybinds to the profilestore local ProfileStore = ProfileService.GetProfileStore( "PlayerProfile", dataTemplate, Keybinds ) local dataTemplate = { Cash = 0, Inventory = {}, } local Keybinds = { Jump = "Enum.KeyCode.W" }
how do i display the amount of cash on a gui?
Could you do a Profile Service with saving items? I've looked everywhere and even tried doing it on my own( I looped though a player's backpack and put it inside a table) but failed.
@ImmortalSpelldagger
Жыл бұрын
Save The Items names as an Array Table, and when the player joins get the array and loop through it and duplicate the items and put it in the player backpack, make sure to add warns if player item isnt in the itemduplicates folder then redo it for respawning, while leaving Loop through player backpack, So like have a empty table and do table inserts with the item name and set it in player data (idk how to script it lol so im using text)
@SwiftlySev
Жыл бұрын
@@ImmortalSpelldagger just use for i,v in pairs with the data saved and also the folder where all items are stored. Make the for i,v check for items with the same name, and duplicate those items placing them into the backpack.
@ImmortalSpelldagger
Жыл бұрын
@@SwiftlySev thats what i said bruh
@360sauce7
Жыл бұрын
that doesnt work :(
@ImmortalSpelldagger
Жыл бұрын
@@360sauce7 skill issue
how would u detect changes? say you wanted a coins gui how would you know when to update the coins for the client
@jstarandomdude
3 ай бұрын
im no scripting pro but im sure it has to do with something like coin.changed or sum
Can I add two of the values together?
How can we reset data?
Hi! can you do a tutorial on MemoryService. I'm struguling to do a matchmaking thing
@playDotProduct
Жыл бұрын
We will get to work!!
@Boeufplume6771
Жыл бұрын
@@playDotProduct Tysm!
I got an error "ServerScriptService.PlayerDataHandler:19: attempt to index nil with 'UserId' - Server - PlayerDataHandler:19". How do I fix this?
@manicbot
2 ай бұрын
hey just checking if you've been able to fix it, getting the same problem rn
@xzuao4308
2 ай бұрын
@@manicbot what did you write on that specific line of code that caused the error?
Can you please show how to do this but with a button GUI?
i'm really tired.what should i do if instead of my player's UserId, i get returned nil? console show up the error ServerScriptService.PlayerDataHandler:63: invalid argument #2 to 'format' (string expected, got nil) . i tried to print my player's userId, it also sent me nil
@capeknows9804
Жыл бұрын
what does your script look like
i know im hella later, but can you pleasee make a tutorial on invoke server so you can display it on a text label? im subbed pls?
@Stas-ON
9 ай бұрын
nevermind i already made it, its honesly really easy and thank you you are the best
@user-rg7fx6yc1s
Ай бұрын
@@Stas-ON how do you display it on a text label,i cant access the module in a local script
How would you save a the value of a Part of a Table like : Cool = { Yes = 1, No = 2, }, PlayerDataHandler:Set(player,"Cool".Yes,10) ??????????????? that doesnt seem to work
@0tt869
11 ай бұрын
Hey there It looked like in the video he added {} to the items that he wanted to put to the Inventory
Thx 🙏🏻🖖🏻
Hi, Im confused. The data does save but I want it to become a leaderstat. How should I go about doing that?
@jstarandomdude
21 күн бұрын
make a leaderstat script as usual but for the values just get the value from the profile service
How can i change string values inside it?
Bruh, if it wasn't for this tutorial, I probably wouldn't have even known this was a thing
how would i use leaderstats with this?
im confused on how i use this with my leaderstats i have made
how do I integrate this w/ leaderstats
Hello,on line 36 when it prints, it does not print the table but the key.
@furniture2322
Жыл бұрын
Same here. Any chance you found a fix for this?
you better make own system.The best practise is to auto save data of each player with 7 seconds delay and loop through each player then repeat again
how to i get the module from local script
Why would my GetProfile function be throwing nil? This video came out while ago is it just outdated if the profiles aren't being applied to new players ServerScriptService.PlayerDataHandler:54: attempt to index nil with 'UserId' - Server - PlayerDataHandler:54 13:42:46.153 Stack Begin - Studio 13:42:46.153 Script 'ServerScriptService.PlayerDataHandler', Line 54 - function GetProfile - Studio - PlayerDataHandler:54 13:42:46.153 Script 'ServerScriptService.PlayerDataHandler', Line 62 - function Get - Studio - PlayerDataHandler:62 13:42:46.153 Stack End - Studio
@panorocks1819
Жыл бұрын
same
@universalgames2901
8 ай бұрын
theres a comment up there to fix it. its not outdated just an error in his script
Nice video😁😁👌👌
Hello everyone, I have a question, since this module script is in the ServerScriptService, how do I do if I want for example display the players gold in a GUI ? Tanks in advance for your help
@thejadeflame8429
10 ай бұрын
I am trying to do exactly that! Let me know if you figured it out please.
@0tt869
10 ай бұрын
U can run a runservice on a separate serverscript, basically setting your intvalue to your current gold then do the scripting in the gui to check for the int value thats what i did using profileservice its just my setup is different
@Jay-qd7ib
6 ай бұрын
Well usually your gold is a leaderstat. So you would just set the gold to always be the value of the leaderstat
My profile apparently doesn't exist while playtesting in Studio. Is this the ProfileService module's fault?
@playDotProduct
9 ай бұрын
Game Settings -> Enable studio access to api services
@Cyrus_04
9 ай бұрын
@@playDotProduct already was on to begin with
I got the base working but when I try to make a table of items in data and add items every time I rejoin all my stats reset
@subscheme
Жыл бұрын
nevermind i just had the studio datastore thing off thanks for the tutorial the system works great!!
@subscheme
Жыл бұрын
hey I made this function for playerdatahandler function PlayerDataHandler:Reset(player) Profiles[player].Data = dataTemplate end for some reason when I call it the first time it works but after that it just doesn't work even though the function gets called
How would you make a value increment up by 1 every second?
@devshark1
Жыл бұрын
while wait(1) do ModuleName:Update(player, "ValueName", function(currentValue) return currentValue + 1 end) end should work, only works in script and not local script
I've been stuck for days on trying to save Inventory = { Coins = 1,} for example. I've figured out tons of ways to modify the value, but it NEVER saves the value. It always reverts to the default value. profile.Data.Values.Coins += amount changes it and i can see that if i print the data table, but when i leave and rejoin it goes back to the default value of when profiles are initialized
@Thelittlesthoboson
Ай бұрын
oh my goodness. so i decided to look through the ProfileService and at the top i noticed... My tables were mixed due to messing around with values saving and such for fun.... So if your table values aren't saving! this is probably why :) I feel so silly now lol ! Do not create mixed tables (some values indexed by number and others by string key), as only the data indexed by number will be replicated.
@cjtimel.
24 күн бұрын
@@Thelittlesthobosondo you know how to make it a leadersrat?
Should I store playerdatamodule in replicatedstorage? localscripts cant acess the module in serverscript service.
@playDotProduct
6 ай бұрын
Local scripts should not be able to change/access the true data module
@heinzdoof8310
6 ай бұрын
@@playDotProduct How should I change it? Should I use a Remote Event that Passes The "Item", and the Quantity to a serverscript and update it through there?
@playDotProduct
6 ай бұрын
You can update values on the server (such as Intvalue) to represent the data as a readonly option on the client, or you can use remote events/invoke remote functions@@heinzdoof8310
While adding values to table, I want to add them like { -- Some random pet id = pet name 63826383 = Monkey, 53736387 = Lion, 63826386 = Lion, } How can I do that? I don't wanna use table.insert()
@resurrection4449
Жыл бұрын
You can do something like this: local monkeyID = 63826383 local table = {} table["Monkey} = monkeyID This will insert a new value into the table without using table.insert()
I just finished typing this out and it didn't, work can someone please copy and paste for me please because I think it was just my code
for the errors n shit i js used if Profiles[player] then -- start of every function end -- after the return or whatever end of the function local function getProfile(player) if Profiles[player] then assert(Profiles[player], "Profile does not exist ".. player.UserId) return Profiles[player] else print("player left? function = getProfile(player)") end end u dont need the else print("player left? function = getProfile(player)")
How to extract items tho
I need help. Everytime i join my data gets loaded but it doesn't show on the leaderstats so I tried creating a function that gets called when the profile is created or loaded for a player. Tho for some reason this doesn't work. I tried using another script that creates the leaderstats but it says that the profile doesn't exist but maybe it is because it gets activated before the PlayerDataHandler does, so i tried delaying the activation but it simply cannot find the functions Set, Get and Update inside PlayerDataHandler and I cannot get my data. I even have another issue. When I use an Update function, to add coins as an example, it works but for some reason when I leave the game I get the error: "Profile does not exist for [player id]". Please I just want to load my data to the leaderboard when the player joins but I cannot do that apparently. P.S: Apparently every PlayerAdded script cannot use PlayerDataHandler functions and gives me only errors. I can activate them only with Touched events or Proximity Prompts.
@Fujui
5 ай бұрын
Loop thru the plrs and run the func
@stefanopiani9135
5 ай бұрын
@@Fujui Oh thank you, tho i already found a way for this. I used the template from the delevoper forum and transformed it into a module and I added a function for the leaderboard. It works fine now.
How to reset data like lets say i wanna reset everyones data, in datastores id just change the name of the datastore its saving too
@bikereh8333
2 ай бұрын
yes
This is more harder than other databases bruh 💀💀💀
Init is not a valid number of a ModuleScript :(
Could I have some help. my code keeps on spewing out this error everytime I try and run it ServerScriptService.PlayerDataHandler:18: attempt to index nil with 'UserId'. the specific line of code is : local profile = ProfileStore:LoadProfileAsync("Player_"..player.UserId). any help would be greatly appreciated
@Generic_person
Жыл бұрын
this is my full code: local PlayerDataHandler = {} local dataTemplate = { Points = 0, } local ProfileService = require(game.ServerScriptService.ProfileService) local Players = game:GetService("Players") local ProfileStore = ProfileService.GetProfileStore( "PlayerProfile", dataTemplate ) local Profiles = {} local function playerAdded(player) local profile = ProfileStore:LoadProfileAsync("Player_"..player.UserId) if profile then profile:AddUserId(player.UserId) profile:Reconcile() profile:ListenToRelease(function() Profiles[profile] = nil player:Kick() end) if not player:IsDecendentOf(Players) then profile:Release() else Profiles[player] = profile print(Profiles[player].Data) end else player.Kick() end end function PlayerDataHandler:Init() for _,player in game.Players:GetPlayers() do task.spawn(playerAdded, player) end game.Players.PlayerAdded:Connect(playerAdded()) game.Players.PlayerRemoving:Connect(function(player) if Profiles[player] then Profiles[player]:Release() end end) end local function getProfile(player) assert(Profiles[player], string.format("Profile doesn't exist for %s", player.UserId)) return Profiles[player] end -- getter/setter methods function PlayerDataHandler:Get(player, key) local profile = getProfile(player) assert(profile.Data[key],string.format("Data doesn't exist for key: %s", key)) return profile.Data[key] end function PlayerDataHandler:Set(player, key, Value) local profile = getProfile(player) assert(profile.Data[key],string.format("Data doesn't exist for key: %s", key)) assert(type(profile.Data[key])==type(Value), string.format("Key %s is of type %s, and can't be set to to %s of type %s",profile.Data[key],type(profile.Data[key]),Value,type(Value))) profile.Data[key] = Value end function PlayerDataHandler:Update(player, key, callback) local profile = getProfile(player) local oldData = self:Get(player, key) local newData = callback(oldData) self:Set(player, key, newData) end return PlayerDataHandler
@MaskedFacez
Жыл бұрын
You may have identified the player improperly if it does not recognize it
@NoNameStudios327
9 ай бұрын
check smth about line 48 game.Players.PlayerAdded:Connect(playerAdded) is the correct line
@electroncat
9 ай бұрын
@@NoNameStudios327 OMG Thanks, you fixed my code!
How would I make it so the script checks if the coin is already in the inventory before giving cash? Like if you own a coin in your inventory you won't get cash when you collect it, but if you do not own the coin you will get cash when collecting it
@playDotProduct
Жыл бұрын
Use table.find (create.roblox.com/docs/reference/engine/libraries/table) to see if the "Coin" string is in PlayerDataHandler:Get(player, "Inventory") and if it is then you won't get the cash!
@missapplecider4506
Жыл бұрын
@@playDotProduct thank you so much you're a life saver!!!
@ImmortalSpelldagger
Жыл бұрын
@@playDotProduct dont do it, use dictonary table so it wont get clogged up example: inventory = { ["Coins"] = { ["Amount"] = 586 } } while giving player coins check if player has coins in table using if inventory["Coins"] then end
@0tt869
11 ай бұрын
@@ImmortalSpelldagger how would you get the table from another script?
@reminderIknows
11 ай бұрын
@@0tt869 Make a new script: If the script is server-sided: local player = nil local profileservice = require(game.ServerScriptService.PlayerDataHandler) game.Players.PlayerAdded:Connect(function(player) plr = player end) repeat wait() until player ~= nil local table = profileservice:Get(player, "Inventory") --this is the table ______________________ If the script is client-sided: local player = game.Players.LocalPlayer local profileservice = require(game.ServerScriptService.PlayerDataHandler) local table = profileservice:Get(player, "Inventory") --this is the table
what is a key
How do you make a display for the currency?
@Kysuto
Жыл бұрын
call the script and the data you want displayed then put it into said textbox
@reminderIknows
11 ай бұрын
Make a gui with a textlabel and customise then make a localscript within the textlabel Script: local profileservice = require(game.ServerScriptService.PlayerDataHandler) while wait() do script.Parent.Text = profileservice:Get(player, "Cash") end
@zMoonlight
8 ай бұрын
@@reminderIknows you can use :GetPropertyChangedSignal() instead of wait() for performance
Didn’t work for me unfortunately. Not sure where I went wrong either. I’ll try again with a different tutorial ig 😭
Mines not saving it’s stuck at 300
how to i add another Currency like gems to it after making and using the script because ive added it and it says its not part of the profile
@playDotProduct
Жыл бұрын
You put it in the datatemplate table we make in the beginning
@Harlisimms16
Жыл бұрын
@@playDotProduct it still say that Gems isn’t part of the profile
@playDotProduct
Жыл бұрын
@@Harlisimms16 Send the code for your dataTemplate. Did you call the Reconcile() function on line 23 in PlayerAdded?
@Harlisimms16
Жыл бұрын
@@playDotProduct turns out it was in the Gem code it’s self. I put Gem instead of Gems. But after that it all worked thank you.
@RangoTheMango
Жыл бұрын
@@playDotProduct i have this issue as well
Why is your addition to the script so long? You say it's very simple for a large number of DataStores.Thanks anyway, me need to save StrValues...
I’m sorry but I don’t like to use module script cause’ I can edit it and can get outdated. But I still appreciate that work on making saving data easier.
@user-lb6fs2rj7d
3 ай бұрын
Also I wanted to be professional
im getting this error - ServerScriptService.PlayerDataHandler:69: attempt to index nil with 'Data'
@playDotProduct
Жыл бұрын
Send your line of code for line 69!
@Harlisimms16
Жыл бұрын
@@playDotProduct just checked the code and I checked yours and I missed out return profiles[player] on the function getProfile
@subscheme
Жыл бұрын
@@Harlisimms16 I missed the exact same thing LOL