Why is Cframe.new(pos, lookat) depreacated?

This is a pretty convenient constructor. Does it produce unreliable results or something?

Wiki says “in favor of using Cframe.fromMatrix()” but this requires a rightvector and an upvector which is a lot more steps.


I agree that CFrame.new(pos, lookat) was a lot easier to use. I think it’s stupid that they’ve deprecated something that a lot of people relied on with both complex and basic camera manipulation.

Although I do think that CFrame.fromMatrix can be a lot more powerful and give creators more control over movement and positioning if done correctly.


In a related note to this, I have found that if you use CFrame.new(pos, lookat) where pos == lookat, it returns with the position of the cframe as some math.huge type value.

1 Like

Would recommend reading the replies in this thread:

i don’t think anyone really knows why it is truly “deprecated” other than CFrame.fromMatrix is more “powerful”. i personally still use the constructor all the time but if you are worried of the fact that it is “deprecated” creating a custom look at function with from matrix isn’t too hard. Also i doubt that this constructor will be removed or completely superseded anytime soon, due to so many games and things relying on it, and even loads of the documentation on the wiki still use it, but like i said creating a custom look at function is always an option.

Btw, if you do want a custom function, i’m pretty sure the function on the wiki (still) has edge case problems so you’ll probably want to use a better function, like the one ego moose provided in the link above.

1 Like

The CFrame.new constructor was overloaded to hell so Roblox was probably tired of overloading it so they just decided to deprecate that specific overload.

1 Like

Please don’t make assumptions. Doing so is not contributive and just misleading.


I realize so. In this specific context it is obvious I am referring to the specific overload.

1 Like