I created this build tool and whenever I use it parts tend to change position on the client. At first I thought something was wrong with the tool. However, I tested this out using the tools roblox studios provides and the same thing happens. This is what I did step by step.
open a new “Baseplate” place.
hit test->start (local server. 1 player.)
insert a truss and change each surface from “Smooth” to “Universal”
toggle “Collisions” to on.
select the truss you inserted and keep duplicating it (ctrl + D) until you have made about 200 duplicates or until your finger hurts.
Check the position of the top truss for the client and the server.
This is what i got:
Position on server: -2, 627, 4
Position on client: 2.263, 626.952, -1.269
However, I don’t think any sane person would duplicate hundreds of trusts (or any part) into one position and expect it to physically function and interact normally with anything else lol.
lol. Sadly I can’t create topics in that category. But basically I have this build tool and when I use it to clone a bunch of parts, it has the same positioning problem on the client.
Oh! I think I know whats happening (for my building tool at least). Am not sure if I can explain this well but ill try. Image FilteringEnabled is on and your trying to weld a block, block1, to another block, block2, and block1 has a different position on the client than on the server. When you weld them together, the position of block2 is based on block1’s position. That means block2 will have a different position on the server than the client because block1’s position differs. Because my tool uses the client to base where the position should be on the server, the slightest difference in position could cause the difference to grow more and more.
I’ve changed the tool so that it passes the cframe of where the part should be relative to the part the mouse is on. Somthing like,
partMouseIsOn.CFrame:toObjectSpace(newCFrame)
instead of just,
newCFrame
The tool seems to work much better now. But ill keep testing around with it to make sure. However, am still not sure why this same thing happens in studios for the example I posted.