Hello, I am confused about what `CFrame:Inverse()`

is, please explain or provide any links that I can read. Thanks.

CFrames are represented by an underlying transformation matrix, and calling CFrame:Inverse() just returns the inverse of the matrix

Usage of the inverse is subjective, but an important fact you should know is that a CFrame multiplied by its inverse ALWAYS returns the Identity CFrame (CFrame.new()).

Think of `CFrame1 * CFrame2`

as `A + B`

and `CFrame1 * CFrame2:inverse()`

as `A - B`

. The difference is simply addition and subtraction.

To elaborate; if `CFrame2`

was something like `CFrame.new( 2, -3, 4)`

then the `:inverse`

of `CFrame2`

would be equivalent to `CFrame.new( -2, 3, -4)`

.

Amazing and simple explanation! Thank you!

Wow that’s the simplest way to think about and it should work most of the time.

(Simple relative to the long maths of the dev article)

https://developer.roblox.com/en-us/articles/CFrame-Math-Operations

However, we have to remind ourselves that CFrames are not commutative contrary to the multiplication and the addition symbols in the math portray.

Yeah…check my post history in scripting support for some CFrame failures…

Edit: Specifically this one lol, be wary of the CFrame rotation you obtained if it is relative to object terms or world terms, I got it relative to world terms.

It only works when the rotation is the identity matrix, which is the default for `CFrame.new`

:

```
1 0 0
0 1 0
0 0 1
```

Otherwise, the inverse CFrame’s position isn’t just `-CFrame.Position`