I've been working on a datastore script to save character customization data, but nothing's saving as it should, and no problems are displayed in studio, how can I fix it?
local Data_Store = game:GetService("DataStoreService")
local Character_Data = Data_Store:GetDataStore("Character")
local Players = game:GetService("Players")
local function Data_Values(Player)
--Creating the values
local Folder = Instance.new("Folder", Player)
Folder.Name = (Player.Name.."Values")
local SkinTone = Instance.new("IntValue", Folder)
SkinTone.Name = "SkinTone"
local HairOne = Instance.new("IntValue", Folder)
HairOne.Name = "HairOne"
local HairTwo = Instance.new("IntValue", Folder)
HairTwo.Name = "HairTwo"
local HairColour = Instance.new("IntValue", Folder)
HairColour.Name = "HairColour"
local Shirt = Instance.new("IntValue", Folder)
Shirt.Name = "Shirt"
local Pants = Instance.new("IntValue", Folder)
Pants.Name = "Pants"
local New = Instance.new("BoolValue", Folder)
New.Name = "NewPlayer"
end
local function Get_Data(Player)
local Key = (Player.Name.."Character")
local Folder = Player[Player.Name.."Values"]
local Data = Character_Data:GetAsync(Key)
if Data then
Folder.SkinTone.Value = Data[1]
Folder.HairOne.Value = Data[2]
Folder.HairTwo.Value = Data[3]
Folder.HairColour.Value = Data[4]
Folder.Shirt.Value = Data[5]
Folder.Pants.Value = Data[6]
else
Folder.NewPlayer.Value = true
Folder.SkinTone.Value = 1
Folder.HairOne.Value = 1
Folder.HairTwo.Value = 1
Folder.HairColour.Value = 1
Folder.Shirt.Value = 1
Folder.Pants.Value = 1
local SaveValues = {
Folder.SkinTone.Value, Folder.HairOne.Value, Folder.HairTwo.Value,
Folder.HairColour.Value, Folder.Shirt.Value, Folder.Pants.Value
}
local s, e pcall(function()
Character_Data:SetAsync(Key, SaveValues)
end)
if s then
print("New player's data has been saved.")
else
warn("Problem with saving new player's data")
end
end
end
local function Save_Data(Player)
local Key = (Player.Name.."Character")
local Folder = Player[Player.Name.."Values"]
local Save_Table = {
Folder.SkinTone.Value, Folder.HairOne.Value, Folder.HairTwo.Value,
Folder.HairColour.Value, Folder.Shirt.Value, Folder.Pants.Value
}
end
Players.PlayerAdded:Connect(function(Player)
Data_Values(Player)
Get_Data(Player)
end)
Players.PlayerRemoving:Connect(function(Player)
Save_Data(Player)
end)
game:BindToClose(function()
for _, v in pairs(Players:GetChildren()) do
Save_Data(v)
end
end)
