Sorry late reply,
Well I’m not exactly a CFrame expert myself, so can’t exactly say for sure if matrix is useless (probably better in certain scenarios because it’s a feature).
If you’re curious tho, I suggest searching up how matrix works or asking a better scripter about it.
Personally all I use for CFrames are:
CFrame.new() – New CFrame
CFrame.lookAt() – New CFrame + Makes the object face another part
CFrame.Angles() – Angles thingy (honestly have no clue how this works besidesthat it uses radians instead of degrees
CFrame.LookVector() – Gives a Unit Vector in the direction of the CFrame (a bit hard to explain but it’s pretty simple and has alot of uses for creating projectiles, making movement.) Also has “UpVector” and “RightVector” counterparts
CFrame:Lerp(TargetCFrame, Alpha) – Basically it’s kinda like tweening. So it moves the CFrame towards the TargetCFrame by using Alpha. (Lets say Alpha is 0.5, then the function will return a CFrame that is in middle of the original CFrame and and TargetCFrame)
^^^ Great for slowing down an object when it approaches a certain position / rotation (If you want the formula for lerp (which is pretty basic), just search up: “Lerp Formula”)
and I also use the math formulas given by the developer page
These are usually my most frequently used CFrame stuff, as they are simple but can do so much with it
The other stuff are also super helpful too!
Example: CFrame:ToEulerAnglesYXZ() can convert the rotation value of a CFrame to orientation form, This is incredible for making objects face the direction of a camera or any other object but you don’t want it rotating up and down (Like a ship)