I am trying to make a simple Datastore system that saves multiple NumberValues in a Data folder under the player, I am getting no errors and cannot figure out the issue.
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerDataStore")
game.Players.PlayerAdded:Connect(function(player)
local Data = Instance.new("Folder", player)
Data.Name = "Data"
local Level = Instance.new("NumberValue", Data)
Level.Name = "Level"
Level.Value = 1
local Leaves = Instance.new("NumberValue", Data)
Leaves.Name = "Leaves"
Leaves.Value = 0
local LPS = Instance.new("NumberValue", Data)
LPS.Name = "LPS"
LPS.Value = 0
local Fertilizer = Instance.new("NumberValue", Data)
Fertilizer.Name = "Fertilizer"
Fertilizer.Value = 0
local Soil = Instance.new("NumberValue", Data)
Soil.Name = "Soil"
Soil.Value = 0
local Wood = Instance.new("NumberValue", Data)
Wood.Name = "Wood"
Wood.Value = 0
local Water = Instance.new("NumberValue", Data)
Water.Name = "Water"
Water.Value = 0
local success, playerData = pcall(function()
return playerDataStore:GetAsync(player.UserId)
end)
if success and playerData then
Level.Value = playerData.Level or Level.Value
Leaves.Value = playerData.Leaves or Leaves.Value
LPS.Value = playerData.LPS or LPS.Value
Fertilizer.Value = playerData.Fertilizer or Fertilizer.Value
Soil.Value = playerData.Soil or Soil.Value
Wood.Value = playerData.Wood or Wood.Value
Water.Value = playerData.Water or Water.Value
end
end)
game.Players.PlayerRemoving:Connect(function(player)
local Data = player:FindFirstChild("Data")
if Data then
local playerData = {
Level = Data.Level.Value,
Leaves = Data.Leaves.Value,
LPS = Data.LPS.Value,
Fertilizer = Data.Fertilizer.Value,
Soil = Data.Soil.Value,
Wood = Data.Wood.Value,
Water = Data.Water.Value
}
local success, errorMessage = pcall(function()
playerDataStore:SetAsync(player.UserId, playerData)
end)
if not success then
warn("Error")
end
end
end)