I have a simple solution for this which requires a minor recode... have the plugin use the Action Groups editor to highlight the part you would have selected/dragged and save from there. It seems to work in keeping the struts and fuel lines intact. The only problem with this fix is it breaks the way the plugin checks for the selected part's attachability (if that's a word) which I kinda find useless anyway. The following code is where I applied the fix. All changes are towards the beginning of the OnGUI method and each line that is edited/added is wrapped with comments to be made obvious... Example: //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ <edited/added code> ///////////////////////////////////////////////////// private void OnGUI() { if(HighLogic.LoadedScene == GameScenes.EDITOR || HighLogic.LoadedScene == GameScenes.SPH) { if (EditorLogic.fetch == null) { return; } //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ EditorLogic editor = EditorLogic.fetch; EditorActionGroups editorActionGroups = EditorActionGroups.Instance; // using the action groups part of the VAB to save subassemblies ///////////////////////////////////////////////////// GUI.skin = HighLogic.Skin; if (EditorLogic.softLock) // if the editor's softlock is on, then we're almost certainly in a situation where the user shouldn't be able to click our Load/Save button. { GUI.Box(_subAsmButtonRect, ""); } //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //else if (EditorLogic.SelectedPart == null) else if (editor.editorScreen == EditorLogic.EditorScreen.Parts) // are we in the "Parts" editor ///////////////////////////////////////////////////// { if (GUI.Button(_subAsmButtonRect, "Load Sub")) { // Lock the editor so that the user can't do anything silly while the browser is up. EditorLogic.fetch.Lock(true, true, true); CreateCategoryBrowser(OnChooseLoadFolder); _mode = Mode.LoadBrowseForCategory; } } //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ else if (editor.editorScreen == EditorLogic.EditorScreen.Actions) // are we in the "Action Groups" editor ///////////////////////////////////////////////////// { //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ if (GUI.Button(_subAsmButtonRect, "Save Sub") && editorActionGroups.GetSelectedParts().Count == 1) // button was clicked AND there's a highlighted part ///////////////////////////////////////////////////// { // Lock the editor so that the user can't do anything silly while the browser is up. EditorLogic.fetch.Lock(true, true, true); //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // Save the currently dragged part now, otherwise we'll have trouble getting it later. //_selectedPart = EditorLogic.fetch.PartSelected; // get the highlighted part: // we have to move once through the enumerator to get to the part (I couldn't find an easier way) List<Part>.Enumerator partsEnum = editorActionGroups.GetSelectedParts().GetEnumerator(); partsEnum.MoveNext(); _selectedPart = partsEnum.Current; ///////////////////////////////////////////////////// if (IsAttachable(_selectedPart)) { CreateCategoryBrowser(OnChooseSaveFolder); _mode = Mode.SaveBrowseForCategory; } else { _mode = Mode.SaveWarnUnattachable; } } } ... } Since TheUndeadFish is doing such a great job with this, I am no longer going to make my own version of the Subassembly plugin. So I hope he includes this fix because it also helps those of us who have an issue with clicks ignoring the button and clicking behind it losing grip on the assembly which I still don't understand how this happens but I have had it happen to me before with the original plugin and this one. (I also have some very strut/fuel line intensive assemblies and I don't want to have to keep jury-rigging the plugin with every new release ).