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)
