How can I attach a Static Mesh to a Skeletal Mesh Socket of an NPC?

I want to attach an static mesh ( of a shoe ) to an Skeletal Mesh Socket of a non-player Character (Bot). I inserted the socket to the skeletal hierarchy bone and placed the mesh (movable) in the level. In the level blueprint I tried to attach the mesh to the character. (see image) The shoe is now attached to the center of the character and not to the socket.

How is this done ?

See my levelblueprint image.

I tried the same thing using the default MyCharacter from Third Person example game and it works properly. I am currently running the 4.3 preview build.

I get the same result if my InSocketName is not actually a valid name of a bone/socket.

What engine version are you using?

Are you certain the socket exists? Whenever a skeletal mesh is queried for a particular socket, and the socket doesn’t exist, it returns the origin of the skeletal mesh. If you do not have a socket with the exact name “FootSocket” then this would definitely be the issue.

When I use the default player character from the ThirtPerson example the result is ok. My reference in the level blueprint is “Get player character” the result is fine. When the character is not the player is does not work anymore.
Thavlik:The socket does exist. Tried different exact names. No result.
I am using version 4.2.1 now.

I tried this in 4.2.1 and it still seems to work for me. I have tried attaching it to the current pawn using MyCharacter as my pawn as well as dragging MyCharacter (which i just the name of the Character Blueprint) into the world and attaching it without it being possessed.

Have you tried changing the name to a different bone in case there is a problem with your socket?

Oh also, verify the component you are passing in is the actual skeletalmesh component as sometimes naming may be confusing and you may be picking some other component.

Hello it the shoe a static mesh or blueprint or skeletal mesh because I am trying to attach something to my sockets I am having a hard time doing it I know I am missing something easy.


You will want to make your Mesh a component of a Blueprint (Actor Blueprint is a good choice). Then you can attach it. Here is an example of how I set up a Bo Staff weapon in a Character:

I am spawning it in at Begin Play. This way, the object doesn’t need to be in the level in the first place. This creates the illusion that the character was already holding the Staff. Let me know if this helps.


What’s that node between get actor location and the spawn transform

It’s a “Convert To” node. It takes the vertex info and adds a 0,0,0 rotation and 1,1,1 scale to turn it into a transform.

If you drag from the yellow vector pin “Return Value” on the “Get actor location” node to the orange “Spawn Transform” pin it will automatically appear and attach.

I’m attempting to do something similar except my NPC is in a blueprint and I’m getting a reference to it and the object as they’re already placed in the world (I’ve tested this and you don’t need to spawn the object to be held if it’s a skeletal mesh it seems).
I’m having the same problem where the object attaches to the center of the BP and not the socket named. If I test this with just a skeletal mesh for the character, it works fine but if I try to get a reference to the skeletal mesh from inside the BP and then plug that into the In Parent Actor, it says that skeletal mesh component is not compatible. I’m quite confused.

Here’s a screenshot of my setup:

Hi TorQueMoD,

I attempted this on my end but everything seemed to be working as intended. Do you have any additional steps I can take to recreate this on my end?