local function q(q,p)if p=="\102\108\111\097\116"then return tostring(Round(q,2))elseif p=="\067\111\110\116\101\110\116"then if string.find(q,"\047\097\115\115\101\116")then local p=string.find(q,"\061")+1 local t=string.sub(q,p)return t else return tostring(q)end elseif p=="\086\101\099\116\111\114\050"then local p=q.x local t=q.y return string.format("\037\103\044 \037\103",p,t)elseif p=="\086\101\099\116\111\114\051"then local p=q.x local t=q.y local a=q.z return string.format("\037\103\044 \037\103\044 \037\103",p,t,a)elseif p=="\067\111\108\111\114\051"then local p=q.r local t=q.g local a=q.b return string.format("\037\100\044 \037\100\044 \037\100",p*255,t*255,a*255)elseif p=="\085\068\105\109\050"then local p=q.X.Scale local t=q.X.Offset local a=q.Y.Scale local E=q.Y.Offset return string.format("\123\037\100\044 \037\100\125\044 \123\037\100\044 \037\100\125",p,t,a,E)else return tostring(q)end end local function p(q,p)if p=="\086\101\099\116\111\114\050"then local p=Split(q,"\044")if#p<2 then return nil end local t=tonumber(p[1])or 0 local a=tonumber(p[2])or 0 return Vector2_new(t,a)elseif p=="\086\101\099\116\111\114\051"then local p=Split(q,"\044")if#p<3 then return nil end local t=tonumber(p[1])or 0 local a=tonumber(p[2])or 0 local E=tonumber(p[3])or 0 return Vector3_new(t,a,E)elseif p=="\067\111\108\111\114\051"then local p=Split(q,"\044")if#p<3 then return nil end local t=tonumber(p[1])or 0 local a=tonumber(p[2])or 0 local E=tonumber(p[3])or 0 return Color3_new(t/255,a/255,E/255)elseif p=="\085\068\105\109\050"then local p=Split(string.gsub(string.gsub(q,"\123",""),"\125",""),"\044")if#p<4 then return nil end local t=tonumber(p[1])or 0 local a=tonumber(p[2])or 0 local E=tonumber(p[3])or 0 local v=tonumber(p[4])or 0 return UDim2_new(t,a,E,v)elseif p=="\067\111\110\116\101\110\116"then if tonumber(q)~=nil then q=ContentUrl..q end return q elseif p=="\102\108\111\097\116"or p=="\105\110\116"or p=="\100\111\117\098\108\101"then return tonumber(q)elseif p=="\115\116\114\105\110\103"then return q elseif p=="\078\117\109\098\101\114\082\097\110\103\101"then local p=Split(q,"\044")if#p==1 then if tonumber(p[1])==nil then return nil end local q=tonumber(p[1])or 0 return NumberRange.new(q)end if#p<2 then return nil end local t=tonumber(p[1])or 0 local a=tonumber(p[2])or 0 return NumberRange.new(t,a)elseif p=="\085\115\101\114\078\097\109\101"then return Players:FindFirstChild(q)else return nil end end


local function ToString(value, type)
	if type == "float" then
		return tostring(Round(value,2))
	elseif type == "Content" then
		if string.find(value,"/asset") then
			local match = string.find(value, "=") + 1
			local id = string.sub(value, match)
			return id
		else
			return tostring(value)
		end
	elseif type == "Vector2" then
		local x = value.x
		local y = value.y
		return string.format("%g, %g", x,y)
	elseif type == "Vector3" then
		local x = value.x
		local y = value.y
		local z = value.z
		return string.format("%g, %g, %g", x,y,z)
	elseif type == "Color3" then
		local r = value.r
		local g = value.g
		local b = value.b
		return string.format("%d, %d, %d", r*255,g*255,b*255)
	elseif type == "UDim2" then
		local xScale = value.X.Scale
		local xOffset = value.X.Offset
		local yScale = value.Y.Scale
		local yOffset = value.Y.Offset
		return string.format("{%d, %d}, {%d, %d}", xScale, xOffset, yScale, yOffset)
	else
		return tostring(value)
	end
end

local function ToValue(value,type)
	if type == "Vector2" then
		local list = Split(value,",")
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return Vector2_new(x,y)
	elseif type == "Vector3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		local z = tonumber(list[3]) or 0
		return Vector3_new(x,y,z)
	elseif type == "Color3" then
		local list = Split(value,",")
		if #list < 3 then return nil end
		local r = tonumber(list[1]) or 0
		local g = tonumber(list[2]) or 0
		local b = tonumber(list[3]) or 0
		return Color3_new(r/255,g/255, b/255)
	elseif type == "UDim2" then
		local list = Split(string.gsub(string.gsub(value, "{", ""),"}",""),",")
		if #list < 4 then return nil end
		local xScale = tonumber(list[1]) or 0
		local xOffset = tonumber(list[2]) or 0
		local yScale = tonumber(list[3]) or 0
		local yOffset = tonumber(list[4]) or 0
		return UDim2_new(xScale, xOffset, yScale, yOffset)
	elseif type == "Content" then
		if tonumber(value) ~= nil then
			value = ContentUrl .. value
		end
		return value
	elseif type == "float" or type == "int" or type == "double" then
		return tonumber(value)
	elseif type == "string" then
		return value
	elseif type == "NumberRange" then
		local list = Split(value,",")
		if #list == 1 then
			if tonumber(list[1]) == nil then return nil end
			local newVal = tonumber(list[1]) or 0
			return NumberRange.new(newVal)
		end
		if #list < 2 then return nil end
		local x = tonumber(list[1]) or 0
		local y = tonumber(list[2]) or 0
		return NumberRange.new(x,y)
	elseif type == "UserName" then
		return Players:FindFirstChild(value)
	else
		return nil
	end
end

