Placing a UI on a user's mouse from input began?

I am trying to play an ui on the players mouse relative to the 3d world and been using this to convert but it is off screen. I am trying to mark where the user clicked, since I have their camera frozen to the side like it is 2d.

function WorldToScreen(Pos) --This function gets a World Position (Pos) and returns a Vector2 value of the screen coordinates
	local point = camera.CoordinateFrame:pointToObjectSpace(Pos)
	local aspectRatio = mouse.ViewSizeX / mouse.ViewSizeY
	local hfactor = math.tan(math.rad(camera.FieldOfView) / 2)
	local wfactor = aspectRatio*hfactor

	local x = (point.x/point.z) / -wfactor
	local y = (point.y/point.z) /  hfactor

	return Vector2.new(mouse.ViewSizeX * (0.5 + 0.5 * x), mouse.ViewSizeY * (0.5 + 0.5 * y))
end

Something like this?
https://gyazo.com/bf70ff0dabaf9f859aaefb854b30609c

local players = game:GetService("Players")
local player = players.LocalPlayer
local mouse = player:GetMouse()

local screenGui = script.Parent
local image = script:WaitForChild("ImageLabel")

mouse.Button1Down:Connect(function()
	local imageClone = image:Clone()
	imageClone.Position = UDim2.new(0, mouse.X, 0, mouse.Y)
	imageClone.Parent = screenGui
	task.wait(3)
	imageClone:Destroy()
end)

image

Here’s the model file so you can check it out yourself.
repro.rbxm (3.1 KB)

I am trying to use user input service, they are looking at a 2d few like this:

The user will click and I will put an x on their screen where they clicked and I need to save the 3d world space version. Which I have already so I was going to convert Edit: I accidentally got it working