I have tried countless things, and none of them seem to work, I have been messing around with this script for a couple hours now trying to get the color3 to save and nothing has worked, the closest I got was changing it to a table, but even that didn't work
local function SerializeColor(colorValue) return {colorValue.R, colorValue.G, colorValue.B} end local function DeserializeColor(colorTable) return Color3.new(unpack(colorTable)) end function save(plr) local s = {} for i, v in pairs(plr:WaitForChild("Data"):GetChildren())do s[i] = {[v.Name] = v.Value} end DSS:SetAsync(plr.UserId,http:JSONEncode(s)) end game.Players.PlayerAdded:Connect(function(Player) local folder = Instance.new("Folder", Player) folder.Name = "Data" local firsthair = Instance.new("StringValue", folder) firsthair.Name = "FirstHair" firsthair.Value = "Hair1" local hair1Color = Instance.new("Color3Value", folder) hair1Color.Name = "Hair1Color" SerializeColor(hair1Color.Value) hair1Color.Value = Color3.new(1, 0.321569, 0.560784) local success, errorm = pcall(function() local loaded = http:JSONDecode(DSS:GetAsync(Player.UserId)) if loaded then print(loaded) for i, v in pairs(loaded)do for i2, v2 in pairs(v)do if folder:FindFirstChild(i2) then folder:FindFirstChild(i2).Value = v2 end end end end end) if workspace.Dummy.Head:FindFirstChild("face") then workspace.Dummy.Head:FindFirstChild("face"):Destroy() workspace.Dummy.Head.face.Texture = face.Value end local x = script.Parent.Hair1[firsthair.Value]:Clone() x.Name = "FirstHair" x.Handle.Color = Color3.new(hair1Color.Value.R,hair1Color.Value.G,hair1Color.Value.B) x.Parent = workspace.Dummy