Hey, thanks for the feedback! With default settings the loyalty system can certainly be harsh for tactics and fleet compositions that involve frequently having your ships disabled. For playthroughs like that I recommend adjusting the loyalty settings to be more forgiving, or perhaps disabling the loyalty system alltogether. LunaLib makes it easy to do either.
The PL blockade is a tough one. I hope you emerge victorious!
Funnily enough I came here to give feedback and this is exactly what I was thinking about.
I started a new playthrough and have been enjoying it a lot excepting the what feels like disproportionate loyalty loss when I'm pretty much always running Blast Doors and Reinforced Bulkheads.
I did notice that it does scale with crew casualty reductions. If it's something you are interested in addressing, maybe scale down the loyalty loss with higher recovery chance as well?
I'm not sure how stock settings math out, but it does leave me feeling like I can have my crew getting livid with me because I got disabled once out of two dozen battles over 5 years.
Edit: This is a few days later, but after playing a lot more with it, it has started freezing my game for several seconds every interaction dialog and will display well over 100 instances of the fleet commander in the interaction dialog; I tried counting but after I reached 30 I realized I was less than a tenth of the way down.
Edit 2: I butchered together an IntelliJ project for SL to add a duplicate counter.
https://github.com/MildlyFootwear/SLButcheredUnfortunately it looks like mostly the fault of my mod (BetterSaves); I'm guessing saving consecutively without sparing a frame results in a duplicate listener. That is the behavior I observed, at least.
Changing the function in SL to
void removeScripts() {
Global.getSector().removeScriptsOfClass(script);
Util.removeRepHullmodFromAutoFitGoalVariants();
}
would fix it (so would making the listeners true transient listeners with the boolean overload) but I'm probably better off spacing out the saves to make sure the beforeGameSave and afterGameSave overrides are executed properly. Don't really think I can make that work with save and exit, though...