Vector3 is a DataType. It is how you directly set the X Y Z of parts in roblox. You just made 3 values containing containing a table containing 3 numbers.
If you don’t want to use Vector3 or CFrame, you can try using tons of tables and nest them into each other to represent the axes. Only downside is that its really complicated to work with.
--use tostring() so you can use negative or decimal indexes
local t = {}
function setPos(x, y, z)
if not t[tostring(x)] then
t[tostring(x)] = {}
end
if not t[tostring(x)][tostring(z)] then
t[tostring(x)][tostring(z)] = {}
end
t[tostring(x)][tostring(z)][tostring(y)] = true --you can set it to anything
end
setPos(-36, 4.5, 33)
--in X, Z, Y order
print(t['-36']['33']['4.5']) --prints true