Breaking bones and their children

So this is something I’ve been trying to figure out for a few days now. I have the player in control of a ship that is a skeletal mesh. For the sake of testing, the ship itself is 5 pieces put together in Blender to make a skeletal mesh and the interaction is based on what I click. What I want to happen is to have a piece get destroyed, broken, or detached in some way from the main ship. I’ve been successful (thanks to [this][1] post) in making a piece of the mesh set its own physics and break away, but I have not found a way to get the bone/piece that is attached to it to also be removed. Am I missing something regarding detaching bones from the skeleton?

This is the ship after I have told the piece (1) to detach by clicking on it. It collides with the other meshes and floats around as it should. The other piece (2) is still attached to the skeleton and moves around with the ship.

84923-brokenship.png

This is how I have the Blueprint set up to handle the breaking. Clicking on all of the individual pieces of the ship does work, but I want each bone/mesh to be told to break off if its parent does so.

And Here is the mesh inside Blender. It’s very simple, with the center armature holding the global parent.

Here’s an update. Since posting I tried importing the mesh with the “Combine Mesh” unchecked. This gave me all 5 pieces as static meshes. I set it up in a blueprint so that they are all there, with the parent/child relationships as they should be. From here I figured out a way to detach the individual pieces from the blueprint, but now I can’t get them to simulate any physics or interact with the world. The detached pieces remain motionless with no collision or physics enabled, and I can’t change any of those values because the GetChildComponent and GetChildrenComponents nodes output Scene Components, which is the target for DetachFromParent node but is incompatible with basically anything else that would be useful to me.

TL;DR
I can get stuff to detach, but I can’t do anything with them.

I’ve found a mostly functionional solution/workaround. Will post it as the answer after I clean up the blueprints

Ok, so I’m going to try running through this as best I can.

I changed the ship actor so that it no longer has mesh components or child actors. I imported the entire ship as uncombined meshes, so it came in 5 pieces. On BeginPlay, the ship spawns all of the modules needed, attaches them to the ship actor, tells each module what other module it is attached to in a variable, and adds them to an array. When a module is told to be destroyed, it runs through a ForEachLoop of the array and checks for any modules that have their AttachedTo variable set to the module being destroyed. From there, the attached module spawns a copy of itself, runs a check to see if it also has anything attached to it, and destroys itself. Every time the whole process is completed, the ship actor resets the ship array to remove any destroyed modules. This will probably end up working better for me, giving me more options for each module’s functionality.

The biggest limitation I found is with the AttachActorToActor node. It has a checkbox for WeldSimulatedBodies that locks the child actor to its parent. This is great for moving around and rotating etc, but when the child actor is detached, it does NOT simulate physics or collide with anything. It just sits there, stationary. Hence spawning a replacement actor. The blueprint looks like a pile of spaghetti, but it’s functional.