RunService:BindToRenderStep takes a function to call on the render loop. A dt parameter for the amount of time elapsed since the last render loop iteration should be passed to this function. I find myself computing dt manually almost every time I use BindToRenderStep.
The RunService.RenderStepped event passes dt to its listener but, as you probably know, it’s much more limited than BindToRenderStep since you can’t specify priority.
Say I want to animate something with a varying, unpredictable velocity. For example, gun recoil. Every time the player shoots the gun, its velocity changes. I need a function to update the gun’s CFrame every render loop. This function needs to know dt to know how much to displace the gun.
In general, dt is essential to almost all physically based animation.
In one of my upcoming projects, I’m handling all animations and effects locally to keep space for the server and network to do more important things. This means that animations can be handled at different speeds for each user which isn’t very desirable. Right now i’m using a self-made delta time method to size, position, and animate things correctly based on the time between the last frame and the current frame.
I believe having a built in system for delta time would be a lot more useful reliable.