Hi @ClockworkOcean, Thanks for taking the time to look at my code. This was a strange thing! I converted the second pin in the multiply node to a variable and gave it the value of 10000. But when I created a new variable in the variable section on the left and then added that to the pin, everything worked correctly. I tried this several times and got the same result.
It must be some compilation thing.
As for the forward vector from the camera, if I took it from the gun, it would not point at the centre of the screen where the cross-hair is, would it? But as you suggest I will try that too.