local camera = workspace.CurrentCamera
local position = Vector3.new(0, 1, 0)
local screenPos = camera:WorldToViewportPoint(position)
local ray = camera:ViewportPointToRay(screenPos.X, screenPos.Y)
ray = Ray.new(ray.Origin, ray.Direction * screenPos.Z)
local newPosition = ray.Origin + ray.Direction
assert(position == newPosition) -- fails