Dragging Tool | Welding inconsistent between Studio and Player

Hey everyone! I’ve got quite a fiasco going on right now…

I’m creating a retro style game that’s recreating “Work at a Pizza Place” but in a 2010-2012 style.

Currently, I’m experiencing an issue with CloneTrooper1019’s move tool, specifically it not welding in Roblox Studio, but then welding while in the Roblox Player.

CloneTrooper1019’s Original Building Tools: https://www.roblox.com/library/1148735607/Classic-Build-Tools

So basically, every time you let go of a part after dragging it, it welds automatically to the part it was dragged onto. So to counteract this, I created a script that detects when a weld is added to the part, and it then removes it.

-- AntiJoints script
local RunService = game:GetService("RunService")

local mainPart = script.Parent

mainPart.ChildAdded:Connect(function(part)
	RunService.Heartbeat:Wait()
	
	if part:IsA("Weld") then
		mainPart:BreakJoints() -- Destroys the weld
	end
end)

The odd thing is, this works in Studio as seen here:

But while in the Roblox Player, it doesn’t work, as seen here:

I honestly have no idea what’s going on.

I’ve tried multiple remedies, such as printing the part’s current joints using :GetConnectedParts() repeatedly, which was to no avail.
I also messed around with the material type and surfaces to see if that changed anything; it did not.

My theory, however, is since these building tools use the Dragger class, I feel that the :MouseUp() event in some way is welding these parts in a way that’s unchangeable or perhaps not replicated to the client or server while in the Roblox Player.

Though, I don’t see how this could be as I tested this in studio on a local 1 player server and it worked fine on both the client and server ends.

Thanks in advance to any help!

Despite no one replying, I’ve done a bit more digging into this problem and I discovered this:

Apparently the part is falling down on the server side, but it’s not being replicated on the client side if we look at the positions.

Not 100% sure why this is happening, considering the AntiJoints script is a script that runs on the server. Not to mention it works fine on Studio, meaning it updates on both the server and client.

1 Like