-
I need help with saving data
-
Data in the form of dictionaries is saved only once
-
I looked for solutions in the developer center, tried JSONncode and JSONdecode (useless)
local DSS = game:GetService('DataStoreService')
local PlayerData = DSS:GetDataStore('PlayerData')
local MoneyData = DSS:GetDataStore('Coins')
local duration = 0.7
local AutoSavingDuration = 5
local function CheckMoneyData(plr:Player)
local currency = Instance.new('NumberValue')
currency.Name = 'bloxxercoins'
currency.Value = 0
currency.Parent = plr
local id = plr.UserId
local coins = ''
local suc, msg = pcall(function()
coins = MoneyData:GetAsync(id)
end)
if suc == false then
repeat
task.wait(1)
coins = MoneyData:GetAsync(id)
until type(coins) == string or coins == nil
end
if coins == nil then
MoneyData:SetAsync(id, 0)
else
currency.Value = coins
end
print(coins)
end
local function SaveMoneyData(plr:Player)
local id = plr.UserId
local coins = plr.bloxxercoins.Value
MoneyData:SetAsync(id, coins)
end
game.Players.PlayerAdded:Connect(function(plr)
CheckMoneyData(plr)
local inventory = script.Inventory:Clone()
inventory.Parent = plr
local inventoryIn = require(inventory)
local iventoryNew = require(plr.Inventory)
local id = plr.UserId
local DataDict = ''
local function GetData()
print(PlayerData:GetAsync(id))
return PlayerData:GetAsync(id)
end
local suc, msg = pcall(function()
DataDict = GetData()
end)
if suc == false then
while true do
local suc2, msg2 = pcall(function()
task.wait(duration)
DataDict = GetData()
end)
if suc2 == true then
break
end
end
end
local function MembersCount()
local count = 0
for _, i in pairs(DataDict) do
count += #i
end
print(DataDict)
return count
end
print(MembersCount())
if MembersCount() == 0 then
PlayerData:SetAsync(id, inventoryIn)
print(inventoryIn)
print('sus')
else
iventoryNew = DataDict
end
end)
game.Players.PlayerRemoving:Connect(function(plr)
local id = plr.UserId
print(require(plr.Inventory))
PlayerData:SetAsync(id, require(plr.Inventory))
local succ, msg = pcall(function()
SaveMoneyData(plr)
end)
print(succ)
end)