Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How Would I Save NumberValues In A Folder To DataStore?

Asked by
Aepeus 59
6 years ago
Edited 6 years ago

The script I am trying to do is, the script will clone the stats which is in a folder, which is then saved into the player if they leave, its also supposed to load the stats. I am trying to use table.insert instead of saving every value in the folder manually like valuesToSave = {1.value,2.value,.........}

--Player Joins

local DataStore = game:GetService("DataStoreService"):GetDataStore("PlayerStats")

game.Players.PlayerAdded:Connect(function(player)

    local pstats = Instance.new("Folder", player)
    pstats.Name = "PlayerStats"

    for index, child in pairs(game.Workspace.DataStore.Values:GetChildren()) do
        print(child,child.Value,index)
        local stat = child:Clone()
        stat.Parent = pstats
    end

    local key = "player-"..player.userId

    local savedValues = DataStore:GetAsync(key) 

    for  index, child in pairs(game.Workspace.DataStore.Values:GetChildren()) do
    child.Value = savedValues[index]
    end

    local valuesToSave = {}

    local children = game.Workspace.DataStore.Values:GetChildren()
    for i = 1,#children do
        table.insert(valuesToSave,i,children.Value)
    end

    DataStore:SetAsync(key, valuesToSave)
    print(table.concat(valuesToSave,''))
end)


--Player leaves

local DataStore = game:GetService("DataStoreService"):GetDataStore("PlayerStats")

game.Players.PlayerRemoving:Connect(function(player)


    local key = "player-"..player.userId

    local valuesToSave = {}

    local children = game.Workspace.DataStore.Values:GetChildren()
    for i = 1,#children do
        table.insert(valuesToSave,i,children.Value)
    end 

    DataStore:SetAsync(key, valuesToSave)
end)

Answer this question