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

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
