I’m trying to find the angle between these two angles. Does anyone have an idea about what to use? I’ve been thinking about using Vector3:Cross() or Vector3:Dot() but I don’t know which one to use I guess. Or maybe CFrame?

The Dot product would be used for this, as the equation for the dot product of two vectors is:

```
va.vb = |a|*|b|*cos(theta)
```

assuming both vectors are unit vectors, the dot product between the two would be

```
cos(theta)
```

where theta is the angle between the two vectors.

After that you can use

```
acos(a.b)
```

to get the angle as long as it is between -90 and 90 degrees

final result:

```
local function getAngleFromUnitVectors(a,b)
local dot = a:Dot(b)
return math.acos(dot)
end
```

Although theking’s response is valid, if you need an angle in the range -pi to pi (that is, the entire circle such that the quadrant is preserved) you can utilize the `atan2`

function of the `math`

library. Just like regular inverse tangent, it expects the opposite and adjacent sides, but as separate arguments.

@theking48989987’s answer is perfect! But there is actually another way to find the angle between 2 vectors, using the dot product as well.

It turns out that

```
cos(theta) = u.v/|u|.|v|
```

So, to find theta we would have to use arcos

```
theta = arcos(u.v/|u|.|v|)
```

```
function angleBetweenVectord(u, v)
return math.acos(u:Dot(v)/u.magnitude*v.magnitude)
end
```

Another way of finding the angle between 2 vectors is the cosine rule. I recommend you check it out