On a humanoid character moving with walkspeed 16, the velocity magnitude should be around 32 when 2x scaling is performed. It actually ends up at around 4 million in practice, as shown here.
ScaleToHumanoidRepro.rbxl (53.1 KB)
This repro prints your walkspeed and velocity magnitude every frame, and cycles your scale every few seconds. Your character is anchored when rescaling to prevent you from being launched off the baseplate.
Expected behavior
When the character finishes scaling, their velocity magnitude should be WalkSpeed * Scale if they’re walking on the ground at full speed.
Oops, I figured out what went wrong here and will ship a fix.
What ScaleTo does right now works right for anchored stuff like conveyors but looks like it breaks down for assemblies with a lot of moving parts in them like characters.
I got a full fix in for this but it’s going to be a couple weeks before it gets onto production.
With the fix running a tight loop of while task.wait() do character:ScaleTo(x) end should work as expected (though note, if you do that on the server it comes with other perils due to creating a ton of network traffic).
Hey! I noticed this topic was re-opened. It’s been a few weeks now and it looks like the bug is still happening, despite the release notes for 598 saying a fix is live.