Motor6D Animation Appearing Weird

Does anyone know why my animations keep doing this thing where the tool Rotates, Moves around and does weird stuff even when I didn’t want it to?

Video Of What’s Happening:

I made this tool with HeadStackk’s “How to animate Tool Parts” guide, using welds and Motor6Ds, I followed the guide with no errors or unexpected outputs, The Dummy I used to animate can replicate the animations perfectly fine before I put the animations on the gun, This is what the animations are intended to look like:

I assume it might be because of how I handle my animation / Motor6Ds?
This is how I do my shoot, reload and idle animations

local function shoot()
	if not canShoot or ammo <= 0 or reloading then return end
	canShoot = false
	ammo -= 1

	local origin = camera.CFrame.Position
	local dir = addSpread(camera.CFrame.LookVector)

	applyRecoil()
	tracer(origin, origin + dir * Settings.Range)

	fireSound:Play()
	if fireAnim then fireAnim:Play() end

	FireEvent:FireServer(origin, dir)

	task.delay(Settings.DelayBetweenShots, function()
		canShoot = true
	end)
end
local function reload()
	if reloading or ammo == Settings.MagazineSize then return end
	reloading = true
	if reloadAnim then reloadAnim:Play() end

	task.delay(0.4, function()
		if reloading then magOutSound:Play() end
	end)

	task.delay(1.37, function()
		if reloading then magInSound:Play() end
	end)

	task.delay(Settings.ReloadTime, function()
		ammo = Settings.MagazineSize
		reloading = false
	end)
end
tool.Equipped:Connect(function()
	if idleAnim then idleAnim:Play() end
end)

tool.Unequipped:Connect(function()
	if idleAnim then idleAnim:Stop() end
end)

And Here is where I apply the “Motor6D” to any new characters that are joining:

function WeaponHandler:ApplyMotor6D(Player: Player)
	local Character = Player.Character or Player.CharacterAdded:Wait()
	local M6D = Instance.new("Motor6D", Character["Right Arm"])
	M6D.Name = "ToolGrip"
	
	Character.ChildAdded:Connect(function(child)
		if child:IsA("Tool") and child:FindFirstChild("BodyAttatch") then
			M6D.Part0 = Character["Right Arm"]
			M6D.Part1 = child.BodyAttatch
		end
	end)
end

Any help would be greatly appreciated

2 Likes

I think of Position and Orienation in Motor6D.

This is might be issue with using Motor6D incorrectly.

I don’t think weld causing this unless it’s being used incorrectly