If you dont want to deal with doing all of the serializing yourself,
I have another solution! it can be done in two lines instead of alot! My module RBXLSerialize allows you to save entire instances, including a folder that holds all of the values in one string!:
local RBLXSerialize = require(script.Parent.RBLXSerialize)
local data = Instance.new("Folder", player)
data.Name = "cars"
local corvan = Instance.new("IntValue", data)
corvan.Name = "oldvan"
local corvancolor = Instance.new("Color3Value", data)
corvancolor.Name = "oldvancolor"
local vans = Instance.new("IntValue", data)
vans.Name = "van"
local vancolor = Instance.new("Color3Value", data)
vancolor.Name = "vancolor"
local sedan = Instance.new("IntValue", data)
sedan.Name = "sedan"
local sedancolor = Instance.new("Color3Value", data)
sedancolor.Name = "sedancolor"
local musclecar = Instance.new("IntValue", data)
musclecar.Name = "musclecar"
local musclecarcolor = Instance.new("Color3Value", data)
musclecarcolor.Name = "musclecarcolor"
local suv = Instance.new("IntValue", data)
suv.Name = "suv"
local suvcolor = Instance.new("Color3Value", data)
suvcolor.Name = "suvcolor"
local sportscar = Instance.new("IntValue", data)
sportscar.Name = "sportscar"
local sportscarcolor = Instance.new("Color3Value", data)
sportscarcolor.Name = "sportscarcolor"
local supercar = Instance.new("IntValue", data)
supercar.Name = "supercar"
local supercarcolor = Instance.new("Color3Value", data)
supercarcolor.Name = "supercarcolor"
local truck = Instance.new("IntValue", data)
truck.Name = "truck"
local truckcolor = Instance.new("Color3Value", data)
truckcolor.Name = "truckcolor"
local lightutilityvehicle = Instance.new("IntValue", data)
lightutilityvehicle.Name = "lightutilityvehicle"
local lightutilityvehiclecolor = Instance.new("Color3Value", data)
lightutilityvehiclecolor.Name = "lightutilityvehiclecolor"
local dunebuggy = Instance.new("IntValue", data)
dunebuggy.Name = "dunebuggy"
local dunebuggycolor = Instance.new("Color3Value", data)
dunebuggycolor.Name = "dunebuggycolor"
-- stores the entire folder in one string!
local Encoded = RBXLSerialize.Encode(data)
-- to decode
local dataFolder = RBXLSerialize.Decode(Encoded)