Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  


Starsector 0.95.1a is out! (12/10/21); Blog post: Hyperspace Topography (10/12/22)

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - ShadowDragon8685

Pages: [1]
Modding / [0.9.1a] Autoloaders
« on: May 07, 2020, 08:59:28 PM »

Get it here.

My Autoloaders mod;

Inspired by the excellent Missiles and Sundries by DaltonKallandor, I felt the need to re-implement the whole "missiles auto-load during combat" thing. In some cases, I disagreed with DK's loading rate, in others I wanted only ordnance weapons, and in the end I realized I was basically rebuilding the mod, so I just went whole-hog and did exactly that.

In general:

No ordnance weapon should reload slower than once every minute, except for the beastly Reaper torpedoes and similar enormo-huge booms.
The antimatter blaster likewise reloads shots, albeit slowly.
No weapon reloads less than one salvo at a time.

Strike craft do not use reloading ordnance, since then bombers would just loiter around the target doing nothing for two minutes waiting for another shot to generate. That would be undesirable.

Stretch Goals (IE, not implemented now): Retuning all the weapons that fire the same missile (just more or less of them) to have the same refire time, so that if, say, you mount both an Annihlator launcher and an Annihilator pod, they fire in sync.

Modding / [0.9.1a] Advanced Hullmods
« on: May 07, 2020, 08:47:32 PM »
So, since I've been working on hullmod-related mods lately, and I decided to just roll all of my previous hullmod-related mods into one mod.

So here it is;

Advanced Hullmods

Get it here.

What's in it?

Several new mods, most of which I made because I absolutely loathe paying twice for something. I'll pay in Ordnance Points or I'll pay in drawbacks, but not both!Seriously that's why I tossed Shadowrun 5 in the bin.
Armored Weapon Mounts (Advanced)
Like the idea of armored weapons but find yourself not installing the armored weapons hullmod because you don't like the downside? This Advanced form of Armored Weapons has 75% of the efficacy of the vanilla hullmod, and 0% of the drawbacks. Not compatible with conventional Armored Weapon Mounts.

Augmented Drive Field (Tweaked)
Do you ever find yourself with a ship that only needs +1 Burn, and begrudging the extra Ordnance Points spent on Burn you can't actually make use of? Then Tweaked Augmented Drive Fields are for you! Half the Ordnance Points cost, half the Burn! Not compatible with Augmented Drive Field or the (Detuned) version from this mod.

Augmented Drive Field (Detuned)
Conversely, do you ever find yourself with ships that go faster than the slowest ship you plan to keep around, and wish you could shed that excess Burn capacity for something "nice" (not thrilling, but... "nice"), like, say, fuel economy? For the princely sum of zero (0) Ordnance Points, even on a capital ship, you can voluntarily shed one (1) Burn rating in exchange for a thirty percent (30%) fuel economy boost! Not compatible with Augmented Drive Field or the (Tweaked) version from this mod.

Heavy Armor (Advanced)
Like the idea of extra armor, but find yourself never installing it because you don't like the downside? This Advanced form of Heavy Armor has 75% of the efficacy of the vanilla hullmod, and 0% of the drawbacks. Not compatible with conventional Heavy Armor, or Dassault-Mikoyan Engineering monobloc construction.

Logistic Capacity Increase
If you're like me, you gotta have more Logistic mods. All the Logistic mods! For a price in Ordnance Points, you can have one (1) more Logistic hullmod on your ship.

Unstable Injector (Advanced)
Like the idea of SPEEED, but find yourself not installing an Unstable Injector because you don't like the downside? This Advanced form of Unstable Injector has 75% of the efficacy of the vanilla hullmod, and 0% of the drawbacks. Not compatible with conventional Unstable Injectors, nor with Safety Overrides.

Some vanilla hullmods have been modified
Solar Shielding has been revamped in-line with my original Sundiving mod, as much as Starsector will actually let me. Due to the way a Starsector class is coded, making it prevent starts from hellaciously gobbling up your CR is not possible, but this still reduces the rate at which the coronal environments degrade your Combat Readiness by 90%. So you may be out of supplies, but you won't be out of CR when you jump those guys lurking on the other side of your star. Solar Shielding was also recategorized as not-a-logistics hullmod.

Militarized Subsystems is no longer a Logistics hullmod.

Lastly, Relaxed and Eased Logistics have been incorporated in the form of extra hull_mods.csv files. Change the filenames to hull_mods.csv to change the Logistics hullmods' costs:

Relaxed Logistics are 50% cheaper.

If that's too much cheaper for you,

Eased Logistics are 20% cheaper.

Will not be fully compatible with any mods that change of the above-mentioned vanilla mods. Very strange things may occur if you try. Or you may not even notice if something has been changed out-of-spec with this mod by another.

Stretch goals: non-crappy recolor/pathetic modified hullmod icons, if I can sweet-talk an artist into making me something.

So, I've just had a devil of a time troubleshooting a problem I had: I wanted to make a set of Logistics hullmods, alternative implementations to the vanilla Augmented Drive Field hullmod. They needed to be incompatible with one another and the vanilla Augmented Drive Field, as well as counting-as Logistics hullmods.

What I discovered, after considerable trial-and-error, was that the way vanilla hullmod incompatibilities are handled, and the way vanilla Logistic hullmods being rejected for the ship already having too many Logistic hullmods, was the same implementation; an @override, specifically something like this:

public boolean isApplicableToShip(ShipAPI ship) {...};
public String getUnapplicableReason(ShipAPI ship) {...};

Thus, when I implemented the hullmod incompatibility checks (so you couldn't detune the engines at the cost of Burn for fuel-efficiency, and then retune them for speed,) it, well, overrode the vanilla "Too Many Logistics Hullmods!" check, and would let me install those hullmods when there were too many Logistics hullmods, which then kicked off another Logistics hullmod the way the shipyard normally does.

So it didn't actually let you build an illegal ship, but it didn't give good feedback about what it was doing.

It would be nice if, instead of this current system, you had something like, I dunno... Pardon my arse-pulled psuedocode here because I'm very much not-a-coder working with things I barely understand, but...


public class mySuperAwesomeHullMod extends BaseHullMod {...

public boolean conflictsWithHullmods(ShipAPI ship) {
if !ship.getVariant().getHullMods().contains("hullmod 1");
String text = "mySuperAwesomeHullMod conflicts with hullmod 1...";
if !ship.getVariant().getHullMods().contains("hullmod 2");
String text = "mySuperAwesomeHullMod conflicts with hullmod 2...";
if !ship.getVariant().getHullMods().contains("hullmod 3");
String text = "mySuperAwesomeHullMod conflicts with hullmod 3...";
else return null

For extra rigor, it might or might not be desirable to spin-off the "too many Logistics hullmod checking" from the same

public boolean isApplicableToShip(ShipAPI ship) {...}

into something like, I dunno,

	public boolean isTooManyLogisticsHullmods(ShipAPI ship) {...}

So it would be significantly less likely for a modder to accidentally override it when attempting to render a hullmod incompatible for another reason.

Modding / [0.9.1a] Relaxed Logistics.
« on: June 25, 2019, 06:33:52 AM »
Do you ever find it annoying and unfun that the AI does not have to worry about logistic concerns?

I did. Frankly, I got tired of it when I noticed that the AI never, ever, spends so much as one OP on a Logistic mod like Expanded Fuel Tanks, or Augmented Drive Field. They certainly don't bother to strap Surveying Gear onto their ships. They don't actually have fuel concerns; you will never actually escape a determined AI fleet by outspending them in fuel. Ever wondered how a bounty hunter ever chased you into the outer rim with two Paragons and an entire fleet of cruisers and destroyers with one Dram tanker?

It's because they have literally no logistical concerns. They spawn, and make a beeline for you like some kind of implacable ghost fleet. Well, that bugs the hell out of me, because it means I either have to handicap my non-combat game, or handicap my combat game.

At least, I thought, I could relax things a little, so I made this handy-dandy little mod. Well, actually it's two mods:

Relaxed Logistics halves the OP cost of all Logistics modifications; Eased Logistics reduces them by 20%. In both of them, Frigates and Destroyers round uneven numbers down, while Cruisers and up round up.

This mod incorporates Sundiving 1.1, meaning that it recategorizes Solar Shielding as not-a-logistics mod, which reduces CR damage from being in a Coronal environment to nothing. As it is not-a-logistics-mod, it no longer occupies one of two precious Logistics Mods hullmod slots, but also receives no price break.

This mod also recategorizes Militarized Subsystems as not-a-logistics-mod; as with Solar Shielding, this means it no longer occupies one of two precious Logistics Mods hullmod slots, but also receives no price break.

I checked some of the more popular mods (well, the ones I use, anyway,) and this should not be incompatible with any of them. It's also unlikely to matter for AI fleet comp, since as I said, they do not actually fit any of these mods that I have ever seen. If some mod causes that to happen, what most likely will happen is that the AI will receive the same OP cost break the player does, and will autofit themselves to suit.

[attachment deleted by admin]

This has thoroughly broiled my noodle; having made some discoveries, I figured they might be useful to others.

Just the observance:

My observance is that Starsector loads mods strictly in descending alphabetical order, A to Z, by the mod's displayed name in the mod list. IE, the "name":"foo", field. It locks in mods, meaning that, for example, if you have a weapon_data.csv with a name of Silverjohn and an ID of mp_silverjohn in two mods; say, one which is named Mighty Pirates and one which is named Overpowered Mighty Pirates, it will lock in the data from the first-loaded weapon_data.csv and discard the later one; in this case, it will ignore your extension-mod Overpowered Mighty Pirates because Overpowered comes later in the alphabet than Mighty.

The general fix for this would be to make the mod name begin with something that comes before M; 0verpowered Mighty Pirates (note that I have used the numeral zero instead of the letter O) would work, or you could also name it 11 Mighty Pirates: Overpowered or any such thing.

The full explanation:

I'm trying to make some very, very tiny (for personal use) mod-mods that modify the behavior of other content-extension mods to make those mods' ordnance weapons behave like the vanilla weapons modified by Missiles & Sundries.

I was getting outright inconsistent results. The method I've used, in each case, has been:

Make a mod folder, with a mod_info.json. Into that goes a data/weapons folder. Into that folder, I copy the original mod's weapon_data.csv, and open it up with LibreOffice Calc.

I then highlight and delete the whole lines of anything that is not an ordnance weapon receiving a modification, make such number changes as seem appropriate to retarget limited-use-per-deployment ordnance weapons to the Missiles & Sundries regenerating missiles numbers, and save the mod. Then activate both mods.

This method worked to modify the Ship and Weapon Pack and Sylphon R&D weapons, but it faied to modify Mayasuran Navy and Arsenal Expansion weapons.

This is an example of the mod_info.json:

"name":"Reloadable Missiles: Mayasuran Navy",
    "utility": "true",
"description":"Revamps the missiles from Mayasuran Navy to auto-reload in-combat, in the same manner as those from Missiles & Sundries. NOT WORKING AT PRESENT; modified Mayasuran Navy mod directly",

I had thought that mods were loaded in the order of "id":"foo", with later mods by id name overwriting newer ones, but this is demonstrably not the case. I then thought that it was a matter of alphabetical order in the file structure with the first mods' lines "locking-in" and later ones being ignored; I've been naming my folders "sd_foo" to keep all mine together. That comes previous to Ship and Weapon Pack and Sylphon R&D, but after Arsenal Expansion and Mayasuran Navy, so I tried renaming the folder and ID for my override for Aresenal Expansion to "AA_SD_foo" and even "11_SD_foo" didn't work.

Aaaaand just now, I have tried changing the mod name.

"name":"1 Reloadable Missiles: Arsenal Expansion",
    "utility": "true",
"description":"Revamps the missiles from Arsenal Expansion to auto-reload in-combat, in the same manner as those from Missiles & Sundries. NOT WORKING AT PRESENT; modified Arsenal Expansion directly.",

This appears earlier in the mod-list than

"name": "Arsenal Expansion",

My current working hypothesis is thus that Starsector is loading mods strictly in descending alphabetical order, A->Z, with earlier entrants which feature a line "locking in" their entry and ignoring later lines with the same ID.

Modding / [0.9.1a] Boardable Unboardables.
« on: June 16, 2019, 12:03:15 AM »
Boardable Unboardables

Boardable Unboardables may now be downloaded externally, here.

Hello! Back again with another utility mod.

This one is called Boardable Unboardables. This bonehead simple utility mod simply overrides the UNBOARDABLE tag on the vanilla ships that have it by removing it. This means that, pending your ability to beat them down in combat and your luck with RNGesus, you too may wind up flying with various [REDACTED] in your fleet.

How are you actually commanding these ships? How does your character have the expertise to salvage them? That's up to you! For my money, I just say that either their stock flight controller was rewritten by an Alpha Core friendly to me that I'm carrying with me, or, if I assign an officer, we vacuum-seal them into a skintight spacesuit full of nanites and liquid breathing medium which we seal into a pod on the [REDACTED] somewhere and they operate the ship Shadowrun Rigger-style.

Anyway, this mod is surely to slightly abrade a lore purist's sense of purism since I have implemented absolutely nothing in the way of required extra skills or resources to salvage and repurpose these ships, and it'll probably not do great things for a balance purist's sense of balance. If you're fine with that and just want to plug yourself into a [REDACTED] flight-deck cruiser and go blow ships up... This mod may be for you.

Mods / [0.9.1a] Sundiving 1.1
« on: June 10, 2019, 12:45:06 AM »
Sundiving is a depricated mod!

Sundiving is Depricated. It does not work as-advertised, and it cannot work as advertised, on the current iteration of Starsector. Alex is aware of this issue and since it stems from something else he thinks is also an issue, he will be correcting the way Solar Shielding works in the next iteration, in such a manner that will enable Sundiving to work.

Having said that, some modifications made by the Sundiving mod still retain some utility. Sundiving is incorporated into my current-gen mod Advanced Hullmods, so get it there!

This very simple, very small and kind of blunt-force mod originated when I was attempting to use the rather swanky Fuel Siphoning mod by Sundog, and found it to be absolutely useless, since my supplies evaporated before my eyes the moment I dipped into the corona of a red giant, even before I switched on the fuel siphon.

The problem was the Coronal environment's CR damage. Even though every ship in my fleet had Solar Shielding, my Supplies usage jumped an order of magnitude, from 2.5/day to ~35 a day. That being with the Solar Shielding hullmod that reduced coronal damage by 75%, I shuddered to think of what hell would have awaited me if I'd dipped a toe in without it! It also, in my estimation, makes lurking within a coronal environment (say, to escape a foe/ambush same,) a losing proposition. I learned after asking if this was intended behavior that it was, and that the Solar Shielding mod was mostly used for 20% energy damage reduction in combat and storm-surfing in hyperspace. No more!

I made this Sundiving mod. This simple and brute-force mod simply causes the Solar Shielding mod to negate Combat Readiness damage from being in a solar coronal environment, so as to allow a fleet fully-equipped with such to lurk where other ships dare not travel. As a side effect it also negates the damage from being caught in a storm in hyperspace, but that damage was minuscule with the mod anyways, and I can't separate the effects.

I made this mod for me, but I hope others find it useful too.

[attachment deleted by admin]

Pages: [1]