Custom accessory added to character not moving with character?

ive tried to make a custom sheathe and sword accessory using this tutorial, however, when adding it to the character it simply spawns at where it was in the workspace and then acts like a simple model/part

image

as you can see above all the things necessary for the accessory is there, so im confused on what is going on here, and why when it is added to the character, it doesn’t appear on the character?

image
the character ^^^
image
the sheath and sword (one is the actual accessory in the workspace, the other is the accessory which was cloned into the character), as you can see it spawns at the same place with the workspace accessory

2 Likes

Maybe the handle is anchored? Or it gets anchored after the character loads?

1 Like

nope, the handle is not anchored. it also drops to the ground (where it is at the workspace, not at the character) after it has been cloned and added to the character so that verifies it.

Can I see the script that clones the accessory and puts it in the character?

humanoid:AddAccessory(game.Workspace:WaitForChild("SheatheAccessory"):Clone())

Is the screenshot of the accessory before you test or after?

it is after i press the play button

1 Like

I think you forgot to weld the other parts of the accessory to the handle

1 Like

nope, i have verified that it is all connected to the handle, and even if it wasnt the handle would still appear beside me like an accessory, but that does not happen so im sure that isn’t the case

This would take me a long time to solve since I can’t open my studio so please bear with me.

  • What are the BT Welds?
  • Do you automatically add it after the player loads? If so, try to add a character added event and add an additional wait().
  • Try to make all the parts in the accessory cancollide to false.
  • Try to add a weld constraint to the other parts in the accessory to the handle just to be sure.
  • While testing, find if there is an attachment called “WaistCenterAttachment” in the character.
1 Like
  1. BT Welds are welds that are created by the F3X building tool plugin which welds the MeshParts together.
  2. The script used to add the accessory is placed in a characteradded event, what do you mean by add an additional wait()?
  3. I’ve tried that, and it doesn’t seem to work either.
  4. As said, I am sure that it is welded together properly.
  5. As you can see below, there is an attachment called “WaistCenterAttachment” in the character’s torso.
    image

edit: accidentally said tools instead of MeshParts

1 Like

You can try setting up the accessory manually, Then just adjust the rotation. ( It would be helpful if you send a screenshot once you run it. Maybe also an error )

local torso = character:WaitForChild("Torso")
local bodyAttach = torso:WaitForChild("WaistCenterAttachment")
local rotation = CFrame.Angles(math.rad(), math.rad(), math.rad())
local accessory = workspace:WaitForChild("SheatheAccessory"):Clone()
accessory.Handle.CFrame = CFrame.new(bodyAttach.WorldPosition) * rotation
local WC = Instance.new("WeldConstraint")
WC.Part0 = accessory.Handle
WC.Part1 = torso
WC.Parent = accessory.Handle
accessory.Parent = characte

image
great! it works. however… as you can see, it’s not at the position i intend it to be at. i intend for it to be at the left waist, but looks like its in the crotch right now, how would i move the position to the left waist?

use this code to position it

local accessoryWeld = Instance.new("Weld")
accessoryWeld.Name = "AccessoryWeld"
accessoryWeld.Part0 = YOUR_ACCESSORY_HANDLE
accessoryWeld.Part1 = LIMB_TO_ATTACH_TO
accessoryWeld.C0 = accessoryWeld.Part0.ATTACHMENT_NAME.CFrame
accessoryWeld.C1 = accessoryWeld.Part1.ATTACHMENT_NAME.CFrame
accessoryWeld.Parent = accessoryWeld.Part0
1 Like
local torso = character:WaitForChild("Torso")
local bodyAttach = torso:WaitForChild("WaistCenterAttachment")
local rotation = CFrame.Angles(math.rad(), math.rad(), math.rad())
local offset = CFrame.new(-1,0,0)
local accessory = workspace:WaitForChild("SheatheAccessory"):Clone()
accessory.Handle.CFrame = CFrame.new(bodyAttach.WorldPosition) * rotation * offset
local WC = Instance.new("WeldConstraint")
WC.Part0 = accessory.Handle
WC.Part1 = torso
WC.Parent = accessory.Handle
accessory.Parent = characte```