I've been recently trying to create a dataservice for saving the characters a player has to use, I do this by putting labeled boolvalues into a folder "CharactersUnlockedFolder" Though the script succesfully loads data, the script fails to save any data. There is unfortunately no errors or prints
local DSS = game:GetService("DataStoreService") local CharacterDataStore = DSS:GetDataStore("CDS") PlayersLeft = 0 local CharactersUnlockedFolder game.Players.PlayerAdded:Connect(function(Player) PlayersLeft = PlayersLeft+1 local Stats = Instance.new("Folder",Player) Stats.Name = "Stats" local Lives = Instance.new("IntValue",Stats) Lives.Name = "Lives" CharactersUnlockedFolder = Instance.new("Folder",Stats) CharactersUnlockedFolder.Name = "CharactersUnlocked" local Characters local success, errormessage = pcall(function() Characters = CharacterDataStore:GetAsync(Player.UserId.."-CharactersUnlocked") end) if success then print("Loaded data") else print("Error loading data") warn(errormessage) end if Characters ~= nil then for i,v in pairs(Characters) do print(v) local BoolValue = Instance.new("BoolValue",CharactersUnlockedFolder) BoolValue.Name = v.Name end end end) local BindableEvent = Instance.new("BindableEvent") game.Players.PlayerRemoving:Connect(function(Player) PlayersLeft = PlayersLeft-1 local success, errormessage = pcall(function() CharacterDataStore:SetAsync(Player.UserId.."-CharactersUnlocked",CharactersUnlockedFolder:GetChildren()) end) if success then print("Saved data") else print("Error saving") warn(errormessage) end BindableEvent:Fire() end) game:BindToClose(function() while PlayersLeft > 0 do BindableEvent.Event:Wait() end end)