How do i fix angle of this cloned tool for dual wielding appearance

what i want
image

what is happening
image

the culprit in question (script)
the script I tried using rotation and it won’t fix it, the clone is just lodged inside of the arm and not rotating

	local leftGripAttachment = leftArm:FindFirstChild("LeftGripAttachment")
	daggerClone = daggerModel:Clone()
	local handle = daggerClone:FindFirstChild("Handle")
	daggerClone.Parent = character
	local weld = Instance.new("Weld")
	weld.Part0 = leftArm
	weld.Part1 = handle
	weld.C0 = leftGripAttachment.CFrame
	weld.Parent = leftArm
	handle.Anchored = false

i tried rotating cframe it didn’t work

	local rotatedCFrame = CFrame.Angles(0, math.rad(90), math.rad(20))
	local weld = Instance.new("Weld")
	weld.Part0 = leftArm
	weld.Part1 = handle
	weld.C0 = leftGripAttachment.CFrame
	weld.Parent = leftArm
	handle.CFrame = leftGripAttachment.CFrame * rotatedCFrame
	handle.Anchored = false

image

I think I got it working by adjusting the cframe with a different method. : D

That beats, it was solved for those, but I just don’t know what I’m doing wrong still a day later :frowning:
image


	daggerModel.Handle.CFrame = leftGripAttachment.CFrame

	local weld = Instance.new("Weld")
	weld.Part0 = leftArm
	weld.Part1 = handle
	weld.C0 = CFrame.new(0,0,0) * CFrame.Angles(math.rad(180),math.rad(-180),math.rad(180))
	weld.Parent = leftArm
	handle.Anchored = false

I got something working:

Ill post the code in a second, but I’ll discuss the main changes.
The biggest change is using a “WeldConstraint” rather than a “Weld”, this is only because I’m more familiar with these than the older deprecated(?) Welds, but I got it working nonetheless.

The script in it’s entirety. (Its a normal script with its parent being the tool)

local tool = script.Parent
local character

local mainDagger = tool.Handle
local secondaryDagger = nil

--== Functions ==--
function createSecondaryDagger()
	secondaryDagger = mainDagger:Clone()

	secondaryDagger.Parent = character
end
function deleteSecondaryDagger()
	secondaryDagger:Destroy()
end
function positionSecondaryDagger()
	local leftArm = character:WaitForChild("Left Arm")

	local weld = Instance.new("WeldConstraint")
	weld.Part0 = secondaryDagger
	weld.Part1 = leftArm
	secondaryDagger.CFrame = leftArm.CFrame * CFrame.Angles(math.rad(90), 0, 0) * CFrame.new(0,-2,1)
	weld.Parent = secondaryDagger
end

function toolEquipped()
	character = tool.Parent
	createSecondaryDagger()
	positionSecondaryDagger()
end
function toolUnequipped()
	deleteSecondaryDagger()
end


-- Events
tool.Equipped:Connect(toolEquipped)
tool.Unequipped:Connect(toolUnequipped)

The most important bit is the “positionSecondaryDagger” function.
See how we’re not using welds but weldconstraints.
image

In addition, I’ve swapped the part0 and part1 around, so now the secondaryDagger is being welded to the left arm.
image

The important bit, you’ll have to tinker with the CFrame.Angles arguments as well as the cframe.new in order to position the dagger exactly where you need it.

Sorry if the changes I made makes this version somehow incompatible with you’re game, any issues just bring them up.

Here is the RBLX file:
DualWieldingDagger.rbxl (54.4 KB)