Welds not working, please help

so i’m trying to make a swaying nozzle by making its’ base part move and welding (by using f3x’s weld tool) the other parts to it, but for some reason only the base part would move and not the others


i have tried using weldconstraint but it also doesnt work
what should i do?

1 Like

Can you show what you’re doing to make them move?

Make sure your welded parts are not Anchored, and make sure you’re manipulating the BaseParts’ position by using BasePart.CFrame and not BasePart.Rotation or BasePart.Position, since CFrame is the only position Manipulator that doesnt break Welds.

1 Like

here’s the code that i used for moving the base part:

local RunService = game:GetService("RunService")
RunService.Heartbeat:Connect(function()
	script.Parent.Orientation = workspace.waltzesmove1.n6.Orientation
end)

here, script.Parent is the base part and waltzesmove1.n6 is the part that’s moving, what i’m doing is basically making the base part’s orientation the same as waltzesmove.n6

which part of the code should i replace?

Check if the non-moving parts are Anchored

Replace this with

local RunService = game:GetService("RunService")
RunService.Heartbeat:Connect(function()
    local AngularCFrame = CFrame.Angles(math.rad(workspace.waltzesmove1.n6.Orientation.X), math.rad(workspace.waltzesmove1.n6.Orientation.Y), math.rad(workspace.waltzesmove1.n6.Orientation.Z))
	script.Parent.CFrame = (script.Parent.CFrame *AngularCFrame)
end)


now the entire welded portion is stuck to the waltzesmove.n6

Im sorry i made an error, i edit the original post, try the edited version

Also, im a bit confused, is waltzesmove.n6 the welded part or is it the Part of which the welded part sways from?

basically that script i showed earlier was for making the base part rotate the same amount as the waltzesmove.n6, waltzesmove.n6 is a part that’s moved by something else (but it has no relation to this issue)

Ah okay, ive edited my post here, please try this instead.


now it’s like this

Sorry about that, I mistyped the script, it’s doing that because it’s multiplying the Rotation data of both models, we dont want that

local RunService = game:GetService("RunService")
RunService.Heartbeat:Connect(function()
	local AngularCFrame = CFrame.Angles(math.rad(workspace.waltzesmove1.n6.Orientation.X), math.rad(workspace.waltzesmove1.n6.Orientation.Y), math.rad(workspace.waltzesmove1.n6.Orientation.Z))
	script.Parent.CFrame = (CFrame.new(script.Parent.Position) *AngularCFrame)
end)

Try this instead, it removes that problem.

now it works! thanks so much

Glad i could help!

Keep in mind that Welded parts either wont move or Break when using Orientation or Position always move parts with welds using a CFrame :+1:

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.