Humanoid:Move with vector containing extremely small components (1e-23) destroys all parts in character

Issue Type: Other
Impact: Moderate
Frequency: Constantly

Reproduction Steps:
Run something like this in the command bar:
workspace.PeZsmistic.Humanoid:Move(Vector3.new(1e-23,0,0), false)
Most of the time this will repro. If it does not, try running it from the server instead of the client, multiple times.

Expected Behavior:
The character should not move any appreciable amount since the vector’s magnitude is very small. Roblox should check if the magnitude of the parameter vector is close enough to zero that it can treat the vector as zero and do nothing.

Actual Behavior:
Every part in the character is moved to (NaN,NaN,NaN) and is subsequently destroyed.
This issue causes non-obvious bugs with developer code.

Workaround:
You must manually check if the magnitude of the vector passed to Move is sufficiently close to 0, and pass a zero vector instead, which incurs overhead and code clutter.

12 Likes

Thanks for the report! We will be looking into this.

3 Likes

The fix will be included in the next release. Thanks for reporting!

5 Likes