This mod, in short, makes it so you no longer have to spend story points in order to build hull mods into your ships. NPC fleets can have built-in hull mods, so they aren’t really as exceptional as, say, being able to disengage freely or “making improvements” to colonies.
By default, cost increases by 2 for each build-in slot, but it can be configured to either increase by or be mulitplied by a specified number.
Could you make default to match vanilla? When you use story points to increase industry it doubles the next upgrade. So 1, 2, 4, 8,…, (smods-1)^2.
Also a screenshot of your picker delegate in action would be great.
Could you make default to match vanilla? When you use story points to increase industry it doubles the next upgrade. So 1, 2, 4, 8,…, (smods-1)^2.
Also a screenshot of your picker delegate in action would be great.
Thanks for the feedback, I actually had the SP point cost set to grow exponentially for a long time, then changed it to linear just to test it and never bothered to change it back. I’ll go back to doubling it, but since it’s literally changing one character in mod_settings.json, I’ll wait for more substantial modifications before pushing out a new version.
And good call on the screenshots, I’ll add those.
Now it could be because I chose a pirate run this time around and been stuck with bad ships but around the start, the xp gain is so slow it’s not even funny. I haven’t been able to smod even 1 hullmod in because the xp gain is so damn slow.
My recommendation is that:
1. Double the xp gains
2. Give all ships a percentage of xp gains in a battle not just civilian ships, you can give civilian ships a even bigger percentage
Also I believe the xp cost for hullmods be the same for all ships of a class.
I added this mod because it seems a interesting take on building in smods. But the xp gains are slow as hell.
Now it could be because I chose a pirate run this time around and been stuck with bad ships but around the start, the xp gain is so slow it’s not even funny. I haven’t been able to smod even 1 hullmod in because the xp gain is so damn slow.
My recommendation is that:
1. Double the xp gains
2. Give all ships a percentage of xp gains in a battle not just civilian ships, you can give civilian ships a even bigger percentageAlso I believe the xp cost for hullmods be the same for all ships of a class.
Thanks for the feedback! I’m a bit concerned about the “so slow it’s not even funny” comment since my experience wasn’t the same at all — I actually thought the XP gain rate might be a bit too fast, at least for larger ships. My flagship in my current playthrough is floating 150k or so XP with nothing to spend it on, though granted it is a SO modded ship that has temporal shell so it’s probably a bit OP. My other AI piloted ships (besides Radiant) have 2 or 3 S-mods each, which they were able to obtain after several battles. Some things to consider:
- Are your ships dealing hull damage to the enemy ship? The combat results API only tracks hull damage, so hitting shields and armor doesn’t count.
- Are you fighting heavily D-modded ships? The XP gain is based on the supply recovery cost of the enemy ship, so for example a 5 D-modded ship will only give ~30% of the XP of a pristine one.
I like your second suggestion, since I do find that a lot of ships like to play the support role where they don’t really do a lot of hull damage. But I think being able to have a combat ship idle in your fleet gaining XP without even being deployed is a bit much.
Right now it’s 36 XP per DP worth of damage, so for example you would be able to build in a ~1k cost hull mod (cost of flux distributor on a wolf) after dealing about 30 DP worth of damage. Hmm… 30 DP may be a bit much for a frigate. Ok, I think I’ll make the following changes:
- I’ll substantially lower the XP costs for frigates and less substantially lower the costs for destroyers.
- I’ll add a minimum contribution fraction — if a ship even scratches the hull of an enemy ship, it will gain XP as if it had done 15% of that ship’s hull as damage.
- I’ll make it so enemy ships will give at least 60% of their base deployment cost’s worth of XP regardless of how many D-mods they have.
As for your last point, I’m not sure if it’s meant to be a suggestion or bug report? The reason the XP costs are scaled by DP cost is mainly for smaller ships. A kite, for example, shouldn’t need the same amount of XP to build in a hull mod as a hyperion, even though they are technically both frigates. This is why flux distributor costs 400 XP on a kite but 3000 XP on a hyperion.
I added this mod because it seems a interesting take on building in smods. But the xp gains are slow as hell.
Now it could be because I chose a pirate run this time around and been stuck with bad ships but around the start, the xp gain is so slow it’s not even funny. I haven’t been able to smod even 1 hullmod in because the xp gain is so damn slow.
My recommendation is that:
1. Double the xp gains
2. Give all ships a percentage of xp gains in a battle not just civilian ships, you can give civilian ships a even bigger percentageAlso I believe the xp cost for hullmods be the same for all ships of a class.
Thanks for the feedback! I’m a bit concerned about the “so slow it’s not even funny” comment since my experience wasn’t the same at all — I actually thought the XP gain rate might be a bit too fast, at least for larger ships. My flagship in my current playthrough is floating 150k or so XP with nothing to spend it on, though granted it is a SO modded ship that has temporal shell so it’s probably a bit OP. My other AI piloted ships (besides Radiant) have 2 or 3 S-mods each, which they were able to obtain after several battles. Some things to consider:
- Are your ships dealing hull damage to the enemy ship? The combat results API only tracks hull damage, so hitting shields and armor doesn’t count.
- Are you fighting heavily D-modded ships? The XP gain is based on the supply recovery cost of the enemy ship, so for example a 5 D-modded ship will only give ~30% of the XP of a pristine one.
I like your second suggestion, since I do find that a lot of ships like to play the support role where they don’t really do a lot of hull damage. But I think being able to have a combat ship idle in your fleet gaining XP without even being deployed is a bit much.
Right now it’s 36 XP per DP worth of damage, so for example you would be able to build in a ~1k cost hull mod (cost of flux distributor on a wolf) after dealing about 30 DP worth of damage. Hmm… 30 DP may be a bit much for a frigate. Ok, I think I’ll make the following changes:
- I’ll substantially lower the XP costs for frigates and less substantially lower the costs for destroyers.
- I’ll add a minimum contribution fraction — if a ship even scratches the hull of an enemy ship, it will gain XP as if it had done 15% of that ship’s hull as damage.
- I’ll make it so enemy ships will give at least 60% of their base deployment cost’s worth of XP regardless of how many D-mods they have.
As for your last point, I’m not sure if it’s meant to be a suggestion or bug report? The reason the XP costs are scaled by DP cost is mainly for smaller ships. A kite, for example, shouldn’t need the same amount of XP to build in a hull mod as a hyperion, even though they are technically both frigates. This is why flux distributor costs 400 XP on a kite but 3000 XP on a hyperion.
Yes, Ships that can get kills will have a way easier time getting the xp (Especially a SO temporal shell ship/Radiant) However, since you explained how it tracks hull dmg for xp. That explains a whole lot and honestly, a glaring flaw.
If it only counts hull dmg, that means only the ships that can reliably secure the kills will get most of the xp, Meaning more supporter fitted ships or ships that cant get the kills as often will have a much harder time getting the xp needed to even get 1 smod. Meanwhile those who can get the xp will be stuck with more xp than they know what to do with If you dont want to put so many story points into expanding the number of smods a ship can have beyond 3 (With the skill)
I wasn’t fighting too many heavily dmodded fleets, if anything, most of the fleets I was fighting maybe had between 0-3 dmods on average.
It really isn’t, depending on the combat ship, it might be the only way for the ship to get xp needed to smod the hullmods needed for them to become good enough to use in actual combat. Like, Have you tried using some of the Junker/ Shieldless ships? Maybe a extreme example but I tried using the mongrel from underworld and it could not secure a single kill even with makeshift shield gen installed so it couldn’t get anywhere near enough xp for it to get even 1 smod. I imagine frigates/ some destroyers going into the endgame would also struggle to get the xp needed also.
That said, The changes you made might help alleviate this to some degree.
It was a suggestion since it made more sense for it to be the same all around rather than some needing way more than others. Sure it would make adding a smod onto ships like the kite cost slightly more but it would help every other frigate.
Also another suggestion, since you mentioned that some of your ships had more xp than you knew what to do with, would it be possible to add a one or 2 time xp option way of expanding the smod limit?
I’m not familiar with how combat analytics works, but would it be possible to split hull damage XP between all friendly ships within a certain range, regardless of who made the shot? This would allow support ships to level at about the same speed as damage dealers, while still discouraging deploying ships to soak up xp (as they would both need to be close to danger to level and take xp away from other ships). Flagships would also still level faster than the rest because they are usually somewhat isolated.
I think this would in theory be possible, just not using the CombatDamageData API. I would have to create an EveryFrameCombatPlugin and collect the damage data manually. The benefit of this is of course much more versatility, but other than being a lot of extra work, there is another major drawback.
Right now since I’m using an engagement result listener there is no additional computation being done during combat — only after the end of an engagement. Now suppose I were to change this to an EveryFrameCombatPlugin. There are mods that already use EveryFrameCombatPlugins to collect damage data, i.e Starship Legends, Detailed Combat Results, and possibly Fleet Action History. If you add all of them, including this mod and the base game combat tracker you’d end up with 4 or 5 combat analytics plugins, each one doing some variant of the same thing. That’s a lot of unnecessary computation in the part of the game that most desperately needs to be optimized.
Then again it’s possible this additional computation is negligible compared to all the stuff the base game is already doing during combat. Perhaps someone who’s profiled their own EveryFrameCombatPlugin damage tracker can let me know exactly how much extra computation it adds.
Now, to make your mod not dependent on all of those mods, I’d abstract out data fetching in the form of an interface, and build a tiny jar that implements said interface using one of the listeners from the mods you’ve mentioned.
This complicates the mod distribution as you’d be distributing main mod + data fetching submods and the player would need to pick the correct jars (or you could bundle and default to your in-house implementation and let implementation swapping be optional).
There is probably a better way, which is to all those mods as dependencies at compile time only. On application load check which mods are load, and instantiate appropriate wrapper class (each implementing same interface) or register your own listener. JRE will load classes as they are demanded, so unused implementations that depends on not-loaded mods will not crash the game.
2. The other way is to just bundle your own listener. Performance of your listener shouldn’t be an issue as you will be only incrementing values in some small, transient map (ship, stats).
1. One way to do it would be: check if mod A is present, if yes get its listener and take info from it. If not present, try another mod that provides a listener. If none are present, register and use the own listener.
Now, to make your mod not dependent on all of those mods, I’d abstract out data fetching in the form of an interface, and build a tiny jar that implements said interface using one of the listeners from the mods you’ve mentioned.This complicates the mod distribution as you’d be distributing main mod + data fetching submods and the player would need to pick the correct jars (or you could bundle and default to your in-house implementation and let implementation swapping be optional).
There is probably a better way, which is to all those mods as dependencies at compile time only. On application load check which mods are load, and instantiate appropriate wrapper class (each implementing same interface) or register your own listener. JRE will load classes as they are demanded, so unused implementations that depends on not-loaded mods will not crash the game.
2. The other way is to just bundle your own listener. Performance of your listener shouldn’t be an issue as you will be only incrementing values in some small, transient map (ship, stats).
Yeah I think that’s a bit overkill especially since I would have to write my own listeners anyway. And some of the other mods don’t have publicly available code, so I’d still be limited in what I’d be able to do with them. Ideally I’d like to give XP for attack, support, and defensive roles, so it seems like the next step for this mod is to do just that.
Also another suggestion, since you mentioned that some of your ships had more xp than you knew what to do with, would it be possible to add a one or 2 time xp option way of expanding the smod limit?
Ahh I missed this suggestion, my bad. The reason for requiring SP to expand the S-Mod limit is because going over the limit is something that I would consider an “exceptional action” in the context of the game, which is in line with other SP options. Although, I am considering similar ideas, such as starting the build-in limit at 0 (1 with special modifications) and having to pay XP to unlock the first 2 slots. Or having to pay both XP and SP to unlock slots past the limit. Or increasing the XP cost with each subsequent unlock (but reducing the base costs to compensate), but that’s functionally identical to paying both XP and SP to unlock additional slots.
is there a limited number of choices when you choose a smod? like the screen when you choose the officer skill on level up? or can you choose from all of the hullmods you have available?
You can choose from all of the hull mods you have unlocked (and are applicable to the ship in question). If you’re wondering why the selection in the screenshot is so small, it’s because by default the build-in interface only shows you the hull mods that are already installed on the ship. In the latest version you can click “show all” to select from all the hull mods you have unlocked, so hopefully that clears up some confusion if there was any.
Edit: I’ve modified the screenshots to the newest version.
My Ed’s shipyard’s Dalmatian, Basenji
Diable’s Shears
and base game’s Phantoms
all are not ships but none of them will ever go into battle.
I mean, unless we really need to commit to some ramming maneuvers with our phantoms…
reminds me a lot of stuff like Hero Mechs in battletech, nigh legendary mechs slowly but surely customized in such a way the mech took on a life and legend of its own
anyways, will try…