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)