if you store things like Udim2 or Color3, you could create a function to conver that to string. As a matter of fact, i am currently working on a game that requires saving data which includes Udim2 and Color3 which unfortunately cannot be stored by datastore so i created encoding and decoding functions for them.
this is one of my encoding and decoding functions:
module.ConvertToNum = function(val)
if typeof(val) == "string" then
return tonumber(val)
end
local return_tab = {}
for i,v in ipairs(val) do
return_tab[i] = tonumber(v)
end
return return_tab
end
module.EncodeColor = function(color)
local tab = {red = (color.R * 255), green = (color.G * 255), blue = (color.B * 255) }
return tab["red"]..",".. tab["green"]..",".. tab["blue"]
end
module.DecodeColor = function(color)
local tab = module.ConvertToNum(string.split(color, ","))
return Color3.fromRGB(tab[1] , tab[2], tab[3] )
end
this probably wont work for ur case but it gives a basic idea of encode data and things like that into other format like table and string.