So i've been trying to make a material system but since im not entirely that good at scripting, i decided to save the materials that the player has collected throughout their play session to a leaderstats - like Folder (made specifically so it won't show up on the upper right corner, where the player list is) and i used DataStoreService (by following a tutorial of course) and after testing it TONS of times, it seemed to work. When i went to work on the game today though, some of the values were completely zero. What went wrong? Heres the script
local DataStore = game:GetService("DataStoreService"):GetDataStore("DataStore") local ErrorMessage = "get noob no save lol" game.Players.PlayerAdded:Connect(function(Player) local StatFolder = Instance.new("Folder") StatFolder.Name = "StatFolder" StatFolder.Parent = Player local Coal = Instance.new("IntValue") Coal.Name = "Coal" Coal.Parent = StatFolder local Iron = Instance.new("IntValue") Iron.Name = "Iron" Iron.Parent = StatFolder local Gold = Instance.new("IntValue") Gold.Name = "Gold" Gold.Parent = StatFolder local Norzium = Instance.new("IntValue") Norzium.Name = "Norzium" Norzium.Parent = StatFolder local OakWood = Instance.new("IntValue") OakWood.Name = "OakWood" OakWood.Parent = StatFolder local Copper = Instance.new("IntValue") Copper.Name = "Copper" Copper.Parent = StatFolder local CoalData local IronData local GoldData local NorzData local OakData local CopperData local Success, ErrorMessage = pcall(function() CoalData = DataStore:GetAsync(Player.UserId.."-CoalData") IronData = DataStore:GetAsync(Player.UserId.."-IronData") GoldData = DataStore:GetAsync(Player.UserId.."-GoldData") NorzData = DataStore:GetAsync(Player.UserId.."-NorzData") OakData = DataStore:GetAsync(Player.UserId.."-OakData") CopperData = DataStore:GetAsync(Player.UserId.."-CopperData") end) if not Success then print(ErrorMessage) end if CoalData ~= nil then Coal.Value = CoalData else Coal.Value = 0 end if CopperData ~= nil then Copper.Value = CopperData else Copper.Value = 0 end if OakData ~= nil then OakWood.Value = OakData else OakWood.Value = 0 end if NorzData ~= nil then Norzium.Value = NorzData else Norzium.Value = 0 end if GoldData ~= nil then Gold.Value = GoldData else Gold.Value = 0 end if IronData ~= nil then Iron.Value = IronData else Iron.Value = 0 end end) game.Players.PlayerRemoving:Connect(function(Player) pcall(function() DataStore:SetAsync(Player.UserId.."-CoalData", Player.StatFolder.Coal.Value) DataStore:SetAsync(Player.UserId.."-IronData", Player.StatFolder.Iron.Value) DataStore:SetAsync(Player.UserId.."-GoldData", Player.StatFolder.Gold.Value) DataStore:SetAsync(Player.UserId.."-NorzData", Player.StatFolder.Norzium.Value) DataStore:SetAsync(Player.UserId.."-OakData", Player.StatFolder.OakWood.Value) DataStore:SetAsync(Player.UserId.."-CopperData", Player.StatFolder.Copper.Value) end) end)
I hope someone answers this. Anyway, cheers!