Motor6D object to hand not right?

Here’s how it’s rigged up (note I can’t move pick, or Motor6D gets removed)

Then the animation

However, in game it looks like so…
image

When I give the tool

local ClonedItem = Item:Clone()

-- Create Motor6D (for attachment)
local Motor6D = Instance.new("Motor6D")
Motor6D.Name = "ToolAttach"
Motor6D.Part0 = Character.RightHand
Motor6D.Part1 = ClonedItem

Motor6D.Parent = ClonedItem

ClonedItem.Name = "Item"

ClonedItem.Parent = Character

Please note, I DON’T want to use Roblox’s default tools. These have too many flaws (in particular the ability to unequip them) and even if there is a fix for that, I don’t want to use them for countless other reasons, not important to the question.

I’ve also looked at this, I don’t want to use accessories in anyway. Has to just use parts and in some cases, models with a primary part

Add an Attachment to the tool and use that for the Motor6D.Part1. The attachment will allow you to grip the tool with an offset and a different orientation.

I can’t set the Part1 of a Motor6D to an attachment though?


When I try setting it it just does nothing

Ensure that the motor6d on the dummy youre rigging and animating on has a C0 and C1 of CFrame.new() by doing:

motor6d.C0 = CFrame.new()
motor6d.C1 = CFrame.new()

If it changes position, simply reanimate it to the correct position and it should work in game

If it doesnt change position make sure the animation is looped and playing properly, and perhaps make sure the in game motor6d has a C0 and C1 of CFrame.new(), even though it doesnt look like youre setting it maybe another script is messing with it

Set them, and it didn’t change anything. Its pos didnt change as normal, and the animation still shows it in the right spot


image

Is the animation looped and is the priority set high enough, and are you sure its playing in the first place?

100% playing, otherwise the arm wouldnt be extended
image

If you rotate it 90 degrees from where it should be in the animation does that change translate to in game? That fact could eliminate multiple things it could be

Sure you’re rigging it right? I set mine up the same way and:

Equip code:

local Character = workspace.colbert2677
local Pickaxe = game:GetService("ReplicatedStorage").Pickaxe:Clone()
local Motor6D = Instance.new("Motor6D")
Motor6D.Name = "PickaxeWeld"
Motor6D.Part0 = Character.RightHand
Motor6D.Part1 = Pickaxe
Motor6D.Parent = Motor6D.Part0
Pickaxe.Parent = Character
Character.Humanoid.Animator:LoadAnimation(Pickaxe.PickaxeHold):Play()

Only had one problem and it’s that the server doesn’t see the pickaxe in the updated position immediately, rather whatever it was initially welded in:

I had to flick Part1 on and off of the pickaxe for the server to also see the updated position. Transform is still set on both ends but the server’s visual of it isn’t immediate I guess. Not sure how this looks to other clients because I’m using hash ids and they don’t work on local servers.

Just a side-note:

Only had one problem and it’s that the server doesn’t see the pickaxe in the updated position immediately, rather whatever it was initially welded in:

I heard that it’s some kind of ROBLOX-issue, Motor6d Animation not replicating! - #6 by tinyponds

Nothing you can really do about it.

1 Like