Tool grip inside the arm?

Sup, I’m making a bar fight game that includes a wide range of weapons.
I want to try giving the weapons better animations using Motor6D, since most of my weapon animations look pretty bland without it.
I already made the animations, scripted them into the tool so it replaces the RightGrip Motor with a Motor6D.

The tool kinda works and kinda plays the animations how intended, but the tool is inside the arm instead of the hand (I use R6 for this not R15, I said hand cuz I don’t know any other way to describe that very position)

This is where the tool goes when placed inside a Dummy (It does that automatically):

This is what happens to the player:

I already tried looking for a solution in a different topic with a similar name to this, but it simply said that this is an unfixable bug coming from Roblox which I doubt.

This is the script creating the motor6D inside the player:

tool.Equipped:Connect(function()
	wait(.0000001)
	local animationTrack = humanoid:LoadAnimation(animation) --Equip  Animation--
	animationTrack:Play() --Plays equip animation
	char["Right Arm"].RightGrip:Destroy() --Destroys the motor that's inside the player's arm
	local motor6D = Instance.new("Motor6D", char["Right Arm"]) --Replaces the motor with a Motor6D so the tool animations could play
	motor6D.Name = "RightGrip"
	motor6D.Part0 = char["Right Arm"]
	motor6D.Part1 = tool.Handle
end)

tool.Unequipped:Connect(function()
	char["Right Arm"].RightGrip:Destroy() --Destroys the Motor6D once unequipped so it doesn't stay there
end)

Not asking anyone to rewrite anything.
If any more details are needed then let me know.

1 Like

the problem here is in the script, you create a motor6d inside the right arm and there’s nothing to do with it, however, what i think incorrect here is you just create it, you never did put a location where it supposed to go to. new motor6d you create has C0 and C1 at 0,0,0 which is in the center. the solution here is probably set C1 to a specific location.

motor6d.C1 = CFrame.new(0,1,0)

by executing the line above, the motor6d has a specific location to locate at

Hey, sorry for taking so long to respond, my city had a major power outage due to weather.

I tried your fix but the tool still remains in the arm. I tried to rotate it using CFrame.angles, but just messed up the animations.
Then I tried to change the tools position and rotation in the animation editor but it still remained in the arm.

Also I made a test animation making the tool rotate up and down and I found out that the Motor6D makes the tool rotate from the top instead of the handle.

This is what it’s meant to do:

robloxapp-20230716-1625052.wmv (239.7 KB)

This is what it does:

robloxapp-20230716-1624495.wmv (364.7 KB)

this problem could either be incorrect motor6d connections or some weird animation issue that im not capable of,

so try changing motor6d connections to the right order like this, you possibly accidentally set part0 to tool.Handle and part1 to Right Arm for the dummy that you use to animate

motor6D.Part0 = char[Right Arm]
motor6D.Part1 = tool.Handle

but if Part0 and Part1 is set to order, you can check those properties of the motor6d :
image
however, if the Orientation remain 0,0,0, then your issues is not into my knowledge

Also, off topic but motor6d work best when you set its Part0 to player’s torso, it might be hard to animate for now but when you get to used of it, it’s extremely easy to adjust scriptings and animate