Moving Position Issue

Hello!
I ran into an issue while building something in Roblox Studio. When I used any increment, 1, 5, etc, and move a part eventually the object gets a .0999 added to its position. Even when the position was a whole number, and there are no decimals involved.

I am somewhat sure this is a bug due to a recent update. I’m posting this here just in case this isn’t a bug though.

Video:

If you have any advice on how to solve this please reply!

2 Likes

Okay, I’m curious…

What happens when you change the Move value to 10.001?
opera_P4v6zuDUmM

2 Likes

It’s called floating point error.
Computers use a base 8 binary system of representing numbers which doesn’t work well with base 10 decimal numbers. So as you move something it will continuously get further and further out of sync. Small changes don’t cause issues, but if you do it as you have been you’ll notice it.

Moving items by .125, .25, .375, .50, .625, .75 or .875 (all 1/8 increments) usually fixes that issue since those values convert to base 8 values perfectly.

Same reason why 0 degrees of Rotation sometimes displays as -0.

You can actually move items by .0001 in Studio by entering that value in the Position of a Part.
It will get rounded to the nearest .001 value since that is what is displayed.

If you put a value of 1.0001 in the Move window and drag a Part from the 0 axis 5 times (5.0005 studs) you should see the the Part’s Position round up to 5.001. If you move it another 5 times it will be at 10.001 since it is still rounding. Keep going and every time you move it 10 times you should see it increase the decimal by .001 studs

1 Like

This bug feels more prevalent than ever in recent. Noticing this with Join Surfaces toggled on, or calling MakeJoints() on a model. Parts would offset by .001 somehow and normally this would happen rarely in previous updates. Building models with this is extremely frustrating.

1 Like