Problems with behavior in dragging connected parts

Recent Roblox updates – most likely ones involving welds with anchored parts – have unfortunately broken the custom dragging system in my game.
I’ve fixed most of the issues, yet can’t seem to fix one:

I have, say, two 2x2x2 parts with studs+inlets on top+bottom as standard, stacked on top of each other, with the bottom part connected to either another identical part or an anchored baseplate (identical part would also be connected to this baseplate).
Dragging away any part below the top one causes the top parts to seemingly glitch out. If you were to drag away the bottom part of a 2-part tower, then the top part becomes embedded below wherever the first part used to be.

My current theory is that it’s due to persisting joints between the parts and whatever the tower is connected to.

But I can’t fix this. I’ve tried breaking joints in a large variety of ways, and I’ve tried breaking joints of connected parts or even removing the part being dragged from the workspace briefly. None of it works. At best some of the solutions can sometimes cause the top part to not embed itself in the ground, but it only works 10% of the time and when it does it still acts in a distinctly glitchy way (top part disappearing, then reappearing on the ground).

For a better example, take this picture.
Example
The red and blue parts have top studs and bottom inlets. They’re not anchored. They’re not welded to anything. They’re connected to each other, and the red part is connected to the ground below it, which is anchored.

Dragging out the red part causes the blue part to embed itself into the ground, as if it were connected to the bottom of the red part before it was moved.

Does anyone have any idea what would be causing this?
(For context, my dragging system is fairly simple and works by updating CFrame + using MoveTo() on models. I’ve heard from others that they’ve experienced similar issues with the roblox Dragger)

2 Likes

Here’s some more information regarding the problem:

Part A (blue) has a Snap; Snap’s Part0 is Part A, with Part1 being Part B.
Part B (red) has a Snap; Snap’s Part0 is Part B, with the anchored ground acting as Part1.

This is what happens when you try to drag Part B away.

Part A most commonly ends up in the ground directly below where Part B used to be. It does not appear to have any connections when checked after the fact.

According to this you should try anchoring the blue part aswell. Although I am not sure if that helps in your case.

If you are just using MoveTo or CFrame to move a part that is welded (directly or indirectly) to an anchored part we did change the behavior there.

Previously parts directly welded to an anchored part formed a separate assembly and ignored the weld. Now they don’t and those welds are always honored. You’ll need to break this weld first or update the weld C0/C1 to move the part after this change.

The thread Dysche linked describes the change and the reasoning behind it.

1 Like