Attach/detach Actor with SimulatePhysics to skeletal mesh

Hi all,

I’m having trouble with something that seems like it should be should be simple, but just isn’t working.

What I’m trying to do is have a weapon laying on the ground that has SimulatePhysics enabled - so it can be kicked, shot at, pushed around, etc., that I can pick up and use. When I use it (handled by a different BP+Interface), it should attach to my player model (with SimulatePhysics disabled) so I can fire it. When I drop it, I want it to go back to the state of being a prop - so I can kick it once again. However, this is not what’s going on at all. I just can’t get it to attach to my player for some reason, and it definitely has something to do with the fact that it’s simulating physics; when I duplicated it and disabled SimulatePhysics, it behaved as expected, bar the fact that it just floats in air instead.

Above is the portion of the BP that is responsible for the attachment. I’ve even tried disabling physics directly before it attaches, but it simply won’t attach. Any idea what I’m doing wrong here?

1 Like

Well, this was an unexpected but easy fix - too bad it took me most of the day to figure out.

Make sure the StaticMesh is the Root of the Actor you’re trying to attach, that fixed it for me.

1 Like

I ran into this issue a couple of times as well. The gotcha is that when you set simulate physics on a component, it detaches that component from its parent. So when you pick it up again, make sure you reattach that component to the root of the actor.

1 Like

Im having the exact same issue today, can you show me how you solved it if you still have the project please?

I’m trying to do the same, but I can’t enable Simulate Physics on my static mesh component. The option is just grayed out. How did you fix that?

If simulate physics is greyed out, it is most likely because the mesh you are using doesn’t have any collision. You have to open the mesh (the actual mesh, not the blueprint) and at the top of the window you will see “Collision.” You’ll have some options there to add collision to the mesh. If I recall correctly, the default meshes that come with the started content do not have any collision so you must do this first or the simulate physics box will be greyed out. I spent hours and hours on this before and was ■■■■■■ to find out it was something so simple.

If simulate physics is greyed out, it is most likely because the mesh you are using doesn’t have any collision. You have to open the mesh (the actual mesh, not the blueprint) and at the top of the window you will see “Collision.” You’ll have some options there to add collision to the mesh. If I recall correctly, the default meshes that come with the started content do not have any collision so you must do this first or the simulate physics box will be greyed out. I spent hours and hours on this before and was ■■■■■■ to find out it was something so simple.

Years later lol, but based of your comment, I can tell you, you are 100% correct. The work around is (if not making the static mesh the root as this answer) attach component to component remaking your root the parent and then disable simulate physics. Then visa versa if you want to “pick up” the actor again