I'm trying to save the hair color in a datastore but for some reason it would just delete all customization things like hair, face, skin color, accessories etc. I have no idea why, it all works before I try saving the hair color. The hair is put into a folder inside head. Heres the Script to save the data:
game.ReplicatedStorage.CustomizeDataEvents.CustomizeData.OnServerEvent:Connect(function(plr)
local char = plr.Character
local CurrentHair = char.Head.Hair:FindFirstChildOfClass("MeshPart") or char.Head.Hair:FindFirstChildOfClass("UnionOperation") or char.Head.Hair:FindFirstChildOfClass("Part")
local HairCol = CurrentHair.Color
local HairColData = {HairCol.R, HairCol.G, HairCol.B}
local data = {
AccessId = plr.CustomizeDataFolder.AccessoryId.Value;
FaceId = plr.CustomizeDataFolder.FaceId.Value;
HairId = plr.CustomizeDataFolder.HairId.Value;
SkinId = plr.CustomizeDataFolder.SkinId.Value;
HairColData;
}
local success, errormessage = pcall(function()
CustomizeDataStore:SetAsync("Player_"..plr.UserId, data)
end)
if success then
print("Data Successfully Saved")
else
print("Error Saving Data")
warn(errormessage)
end
end)
And this is the script to load the hair color:
game.Players.PlayerAdded:Connect(function(plr)
local char = plr.Character or plr.CharacterAdded:Wait()
local CurrentHair = char.Head.Hair:FindFirstChildOfClass("MeshPart") or char.Head.Hair:FindFirstChildOfClass("UnionOperation") or char.Head.Hair:FindFirstChildOfClass("Part")
local data
local success, errormessage = pcall(function()
data = CustomizeDataStore:GetAsync("Player_"..plr.UserId)
end)
if success then
print("Success Getting Hair Color Data")
if CurrentHair then
CurrentHair.Color = Color3.fromRGB(data.HairColData[1], data.HairColData[2], data.HairColData[3])
end
else
print("Error Getting Hair Color Data")
warn(errormessage)
end
end)
