The answer to all of them is that they’re the same as Vector3.new(0, 0, 0).
Any non-number input (including nil) is just treated like a 0. This is insane and I’m sure has lead to countless wastes of time, especially for learners.
Because erroring on these misuses would be backward incompatible, and no doubt these mistakes live in many front page games, I am suggesting the use just causes a warning, something like
expected number as ‘x’ argument to Vector3.new, but got Vector3
Only the three-number Vector3.new(number, number, number), the zero-argument Vector3.new(), and possibly the three-nil Vector3.new(nil, nil, nil) constructors should be spared the warning.
I don’t think Vector3.new(x, y) should be spared the warning. That’s most likely the result of a typo omitting one of the axis – and not necessarily the z. It is not too laborious to fix your code to use Vector3.new(x, y, 0) or otherwise just live with the warning.
For example, the Wiki only documents the no-argument and three-argument constructor. I don’t think there’s any official basis to believe that a two argument constructor should have any particular meaning