How can I fix this world-to-screen point system? Points arrow in wrong directions at certain areas

Hi, so I have a system here where its suppose to rotate/point an arrow in the direction where the character is in, relative to the local player, in the world space–but its faulty at times, I’ve tried to pinpoint the issue to no avail so I’m posting it here in hopes someone can help me solve it. Hopefully someone with experience with this can help
Compass.rbxl (54.8 KB)

Particularly when the local player is oppositely looking away from the other player, it will say that the other player is straight ahead, which actually is incorrect. There are other situations where if you get close to the other player, your arrow will also point in an incorrect direction

For testing these mechanics, please utilize a 2 player test within studio

within the sample video, the player is directly to my right but looking in the opposite way make the direction messed up.