[Starsector Mods][0.95a] Gacha S-Mods v1.5.0

  • Post category:Mods
  • Post comments:0 Comments

Download here!

Fixes all design issues with s-modding, 94% guaranteed. Ü

Core Features

  • Creates two dummy 0 cost hullmods:
    • {Random S-Mod}: When built into the ship, adds a random hullmod as an s-mod. No effect otherwise.
    • {Remove S-Mod}: When built into the ship, removes a random number of s-mods (default up to 3; configurable). Story points are not refunded. No effect otherwise.
  • Blocks building in all other hullmods by default (configurable). So if you want s-mods, they have to be randomized.
  • Three possible selection modes:
    • Classic: Hullmods are selected with uniform probability of selection.
    • Proportional: Hullmods are selected with weight = 1/OP, with an adjustable increase for free/hidden hullmods.
    • True Gacha: Hullmods are split into 4 categories (d-mods, cheap mods, standard mods, hidden mods), with each category being allocated an adjustable weight.
  • Customization options available in data/settings/json.

Other gameplay changes

  • S-modding will grant a random amount of bonus XP so you can’t predict what hullmod you’re going to get from that.
  • I added a hullmod category so you can find the hullmod easier (it defaults to sitting at the bottom). it’s kinda ugly but what can you do.
  • Expect a mild amount of jank as required to workaround various UI limitations. I did my best, I swear.

Options (found in settings.json)

  • No Save Scumming: ships will roll the same s-mods and bonus xp every time until you’ve confirmed your choice.
  • Use Online Blacklist: will also check the latest blacklist from the GitHub source

Disable/Enable Features

  • Disable Random S-Mods: hides the Random S-Mod hullmod and allows regular s-modding.
  • Disable Remove S-Mods: as god intended.
  • Allow Standard S-Mods: allows regular s-modding but does not affect the two hullmods added by the mod.

Random S-Mod Options

  • Selection Mode: choose between the three modes described above
  • True Random Mode: will randomly choose (almost) any non-hiddenEverywhere hullmod for s-modding. (Maybe you get Targeting Supercomputer, maybe you get Axial Rotation, thems the works.)
  • Only Known Hullmods: will only roll hullmods known by the player (off by default because then why would you learn Shield Shunt/High Scatter Amp
  • Only Not Hidden Hullmods: will only roll hullmods that can be learned by the player (the usual modular ones)
  • Only Applicable Hullmods: will only roll hullmods that are normally applicable on the ship (so no Safety Overrides for capital ships)
  • Respect “no_build_in”: will not roll hullmods that have the no_build_in tag (e.g. Safety Overrides)

Selection Mode Options

  • Adjust the rarity of free and hidden hullmods in Proportional Mode.
  • Adjust the weights for the different categories in True Gacha Mode, and what counts as a “cheap” hullmod.

Remove S-Mod Options

  • Min Removed S-Mods: Sets the minimum number of s-mods that can be randomly removed whenever Remove S-Mods is built in (set it to 0, coward)
  • Max Removed S-Mods: Sets the maximum number of s-mods that can be randomly removed whenever Remove S-Mods is built in

Blacklist Options

  • Blacklisted Hullmods: Want to not roll specific hullmods? Add their hullmod IDs here.
  • Use Greylist: will prevent loading any hullmods in greylistedHullmods.json (an optional, uncurated set of additional hullmods others have told me to not include)

Should be safe to remove at any point!

Source and changelogs: https://github.com/RustyCabbage/GachaSMods

Poke me if you have a feature request or you notice things missing/broken. You can also find me on the Unofficial Starsector Discord @rubi#0864.

tim & selkie for OP formatting advice

Mayu for making super sekrit

Ahahahahahaha I love it. I can feel the rage, salt, cries of joy, and screen shots of utter insane BS all the way from here.

Has science gone too far?

CTD on save after building in Mayasuran Readiness and Stealth Minefield to my Haze (TrueRandom is awesome!).

   at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(Unknown Source)
   at java.util.LinkedHashMap$KeyIterator.next(Unknown Source)
   at data.scripts.GachaSMods_ModPlugin.beforeGameSave(GachaSMods_ModPlugin.java:92)
   at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
   at com.fs.starfarer.campaign.CampaignState.processInput(Unknown Source)
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher.o00000(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)

Edit: It seems to only crash if I try to save with the 0-Cost {Random S-Mod} still installed, manually removing it after building in lets me proceed with the insanity.

CTD on save after building in Mayasuran Readiness and Stealth Minefield to my Haze (TrueRandom is awesome!).

Thanks! I can’t easily make a test case to confirm, but I believe I fixed the issue, along with a few other goodies:

Gacha S-Mods v1.2.2

-Fixed an NPE, thanks Dave!
-Fixed several bugs with the remove s-mods feature and discovered 2 more that weren’t fixed (they’re honestly not worth the time to fix and I bet you won’t even notice them)
-Added settings to:
    -disable the random s-mods hullmod (instead allowing standard s-modding), which kinda makes this whole mod moot but whatever maybe you just want s-mod removing features
    -disable the remove s-mods hullmod, as god intended (still default false)
    -allow standard s-modding mechanics (which can be used in conjunction with random s-modding)
    -set min number of s-mods to remove
    -set max number of s-mods to remove

I honestly wouldn’t be surprised if stealth minefields on a ship crashed the game, because it’s literally a condition meant only for markets lol.

Really, I can’t wait to try this mod and get a ship with s-modded Vast Bulk. Have fun trying to kill me now game crashes

I thought the same, so I tested with getting ‘normal’ hullmods at first.  Now that we know that isn’t the issue, I can confirm that Stealth Minefield works fantastically on a ship.  It truly mulches Explorarium drones. 

Really, I can’t wait to try this mod and get a ship with s-modded Vast Bulk. Have fun trying to kill me now game crashes

Unfortunately for you, I disabled rolling Vast Bulk. Can’t let the pl*yers have too much fun. :p

Whenever I become not-lazy I’ll do some stuff to make the roll-able hullmods configurable.

Gacha S-Mods v1.3.0

-Fixed crash when rolling a hidden Diable hullmod (thanks Juan)
-Added two new hullmod selection methods: Proportional and True Gacha
-Revamped settings.json file:
-Added an array for blacklisted hullmods to settings.json

-Added settings to configure the two new provided modes
-Fixed sort order for placeholder hullmod (now comes first so all the real hullmods are in a row)
-Fixed a(nother) bug with s-mods being removed randomly instead of according to seed
-Fixed it being possible to waste story points s-modding the {Remove S-Mods} hullmod when only placeholders were available
-Fixed issue with Remove S-Mods removing different s-mods when s-modding process was cancelled repeatedly
-Improved descriptions for Random and Remove S-Mod hullmods, including support for the new selection modes

I’ll push out a new settings.json whenever I’m informed of a hullmod that causes crashes when randomly s-modded. I guess they’ll be labelled with letters & version checker updates. E.g. if any future update has version 1.3.0b then you can simply overwrite settings.json instead of redownloading the mod.

Could you add the autmated commands hullmods from this mod to the black list of mods that can’t get randomly added?

They don’t cause a crash as far as I can tell but they aren’t ment to be built in.

As long as it doesn’t crash, that’s half the fun of true random mode ;)

(you can of course add it on your own copy, just add the hullmod ids as an entry to the relevant array in settings.json)

As long as it doesn’t crash, that’s half the fun of true random mode ;)

(you can of course add it on your own copy, just add the hullmod ids as an entry to the relevant array in settings.json)

Already did so.
It’s nicely implemented and easy to do.

Gacha S-Mods v1.3.1

-Added new setting: respectNoBuildIn to not roll hullmods that have the no_build_in tag. Default true (since it handles a bunch of problematic stuff).
-Settings are now reloaded upon loading a game, instead of requiring a Starsector restart
-Added error message to hullmod descriptions if settings.json failed to load something
-Added greylistedHullmods.txt for hullmods that people say don’t do anything or otherwise shouldn’t be rolled. Must be manually inputed into blacklistedHullmods, but it’s there
-Added several new crash-causing hullmods to the blacklist
-Fixed it being possible to roll hiddenEverywhere hullmods, which I have no plans to implement in the future
-Fixed the remove s-mod feature not being randomized in true random mode
-Improved the description of the remove s-mods hullmod, providing info on some “emergent gameplay” (and totally not bugs that I can’t figure out how to fix)

Okay, for some ungodly reason, despite me having set “GachaSMods_allowStandardSMods” to true, I’m still unable to actually use normal s-mods at all. Any idea what’s up with that?

Out of curiosity how tough would this be to set up: You have the normal S-Mod set up, but you also have the Gacha alongside it which will max out your S-Mods (ie give you more than one S-Mod) but will only give you random results. That way using the gacha is cheaper but will theoretically give you more for a single Story Point, the manual version is expensive but will guarantee the results?

Just some random thoughts.

Leave a Reply