Lerping rotation with delta time still changes with framerate

Hello!

I’ve been working on a parkour system for quite some time now and I decided to switch from Roblox’s default humanoid to a CFrame based custom character controller. So far it’s going mostly alright, but I was checking how everything works just a few days ago and noticed that the new framerate unlocking feature Roblox added breaks only the lerp that rotates the character and nothing else. (I have other lerps that also use delta time and they behave correctly)

Here’s the line of code which rotates the character:

root_part.CFrame = CFrame.lookAlong(position, root_part.CFrame.LookVector:Lerp(move_direction, lerp_rotation * delta_time))

Proper behaviour at 60 fps:
fps60

Improper behaviour at 240 fps (anything above 60 essentially):
fps240

It might not look wrong at first glance, but I am trying to make sharp turns just like in the first gif yet the character is incapable of doing so. I tried a few things already but without much success unfortunately.

Thanks in advance! <3

I think it’s because you’re trying to interpolate the current root_part.CFrame instead of what root_part.CFrame was when the last move_direction changed

Could you try caching what root_part was upon the last “target” direction change (ie upon WAS or D being pressed/released) and using this for your interpolation instead of the actual current root_part.CFrame?

Let me know if this makes sense