Don’t understand why the intervals between the changes in the different positions are so small… anything under 0.03 defaults to 0.03, so honestly just do wait() if you’re so eager about it!
First, what everyone else said is true. The character takes time to load + while using char will work, you shouldn’t use keywords as variable names. The default time for waiting is (1/30), which is ~0.033333.... That’s because you can’t wait shorter than a frame, and the wait function runs at 30fps.
Secondly, changing the position will have almost exactly the same effect. What you should do is modify the Motor6Ds instead, which controls a character’s parts. An animation does this automatically, which makes stuff like this so much easier to use.