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.
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
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
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.