My Datastore is organized like:Datastore Name>Scope>PlayerId as key>Actual Data. So Key for each players data is their Id.
I know that When you set the key like I do it creates an empty list. What I'm having trouble with is reading this data and rewriting it.
I tried using Http Service and JSONDecode, JSONEncode but that way it saves one string and to access that you have to Decode and then take values from table manually. I just need help to know how to save tables correctly and do it in best way
This is my script which doesn't even work properly.
local datastore = game:GetService("DataStoreService")
hs = game:GetService("HttpService")
default_data = {["Money"] = 4000,
["Houses"] = {
["Standard"] = false,
["Normal"] = false,
["High"] = false,
["Lux"] = false
}
}
game.Players.PlayerAdded:connect(function(plr)
ds1 = datastore:GetDataStore("GameData123","01")
local leaderstats = Instance.new("Folder",plr)
leaderstats.Name = "leaderstats"
local money = Instance.new("IntValue", leaderstats)
money.Name = "Coins"
money.Value = ds1:GetAsync(tostring(plr.UserId))[1] or 0
if money.Value == 0 then
moneyy.Value = 4000
ds1:SetAsync(tostring(plr.UserId), default_data)
end
player_money = ds1:GetAsync(tostring(plr.UserId))[1]--I try to get money
player_houses = ds1:GetAsync(tostring(plr.UserId))[2]--I try to get Houses as table
function Update(money, standard, normal, high, lux)
money = money.Value
local new_value = {
["Money"] = money,
["Houses"] = {
["Standard"] = standard,
["Normal"] = normal,
["High"] = high,
["Lux"] = lux
}
}
return new_value
end
moneyy.Changed:connect(function()
print("Changed")
ds1:UpdateAsync(tostring(plr.UserId), Update(player_money, player_houses[1], player_houses[2], player_houses[3], player_houses[4]))--Then I use this values here.
end)
end)
