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 - Histidine

Pages: [1] 2 3 ... 11
Bug Reports & Support (modded) / [0.95.1a-RC6] Campaign simulator crash
« on: November 01, 2022, 06:21:48 AM »
In my past two (heavily modded) Starsector playthroughs, running the simulator for a ship in my fleet after some time in campaign (perhaps any time after a battle has taken place) seems to cause a crash. This doesn't happen if the simulator is the first thing I do after loading into the save.

Recent error message I got (more detailed NPE messages thanks to Java 19, although I was only on Java 8 the previous playthrough):

1102998 [Thread-9] ERROR com.fs.starfarer.O0OO.OOoO  - Cannot invoke "com.fs.starfarer.loading.specs.o0oo.o00000()" because "this.Ò00000" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.loading.specs.o0oo.o00000()" because "this.Ò00000" is null
   at com.fs.starfarer.O0OO.Object.oO0000(Unknown Source)
   at com.fs.starfarer.O0OO.Object.Õ00000(Unknown Source)
   at com.fs.starfarer.O0OO.OOoO.Ò00000(Unknown Source)
   at com.fs.starfarer.O0OO.OOoO$ Source)
   at java.base/

(this message is repeated three more times in the log for some reason)

Suggestions / AI slips thread part 2
« on: September 24, 2022, 08:34:46 PM »
(continuation of this thread)

First item:
One thing you quickly notice after running enough sims: in a 1v1 (Standard Onslaught vs. Standard Onslaught should do it) one ship will sometimes raise its shield against the other even when said enemy ship is venting or overloaded, instead of dropping shields and getting rid of some of that hard flux.
"What if it's not a 1v1 scenario?" then consider the other enemy ship(s) as you would normally, but the overloaded/venting ship is no threat at all for the duration.

General Discussion / So there was a rant about the doritos
« on: September 14, 2022, 07:21:47 AM »
Summary of a group discussion thing on [redacted by COMSEC] earlier today. I think the proximate trigger was someone getting clapped by the Tesseracts and malding about it, but there may be some valid concerns nevertheless.
  • The Tesseracts are stat sticks
  • The AI interacts poorly with the Aspects
  • In some ways the encounter seems designed around the Ziggurat?

I'll just copy the Discord messages Nia wrote about this:
yeah tesseracts never feel fair
cause they just delete some ships
and there's nothing you can do
you either can tank the insane burst (which few ships can)
or you can evade most of it (which even fewer ships can)
(Histi's recommendation: consider consulting your nearest mod about a suitably overpowered supercapital)

At the same time you can just cheese them with a phase ship that has strong burst firepower: bait the Tess into using its temporal shell, wait it out in phase, then slag it. Nia's specific example (which "completely trivialised" the fight after a very difficult first attempt) was Ziggurat with AMBs and Reapers.

Apparently (I haven't watched them closely and can't personally verify this, but it seems consistent with the way my fleets end up in Omega fights):
Aspects screw with ship AI by herding them around and causing them to get separated. Ships try to back away from the Aspects, which may work with other fighters but not these ones because they aren't tethered to a carrier with limited engagement range and don't have to rearm. So you end up with a bunch of widely separated ships getting bitten to death. Only partly mitigated by defend order.

Also is "normal" ballistic PD any good against them? They seem to move way too fast for MG/Vulcan and equivalents to hit effectively.

Was the hypershunt encounter specifically designed for Zig? Aside from generally being a hugely powerful ship, this thing hardcounters Omega; it stunlocks one Tesseract and can nuke either if they overextend near it, and the motes are easily the most efficient way to swat Aspects.

It's hardly the only fleet combo that can beat the Tessies (there's a video of two Onslaught XIVs doing it) but I feel there may be an overly large gap between this and any other potential solution for comparable DP cost or player investment.

Suggestions / More useful error messages
« on: September 09, 2022, 08:25:28 AM »
(only one error message of concern right now, if I run into any more errors that could be improved I'll make further posts in this thread)

Missing file
So when the game looks for an image file and can't find it, it generates an error like this (actual example I just had to work with):

Error loading [graphics/weapons/Claris CN/pd_claris_cn_hardpoint_recoil.png] resource, not found in [/home/helena/Desktop/Stuff/Games/starsector/./mods/Adjusted Sector v0.4.2,/home/helena/Desktop/Stuff/Games/starsector/./mods/Arsenal Expansion 1.5.4a,/home/helena/Desktop/Stuff/Games/starsector/./mods/Better Colonies,/home/helena/Desktop/Stuff/Games/starsector/./mods/CaptainsLog,/home/helena/Desktop/Stuff/Games/starsector/./mods/Combat Alarm Sounds,/home/helena/Desktop/Stuff/Games/starsector/./mods/Combat Chatter,/home/helena/Desktop/Stuff/Games/starsector/./mods/Console Commands,/home/helena/Desktop/Stuff/Games/starsector/./mods/DIYPlanets,/home/helena/Desktop/Stuff/Games/starsector/./mods/Deluxe Player Flags,/home/helena/Desktop/Stuff/Games/starsector/./mods/ExtraSystemReloaded-master-v1.0.1,/home/helena/Desktop/Stuff/Games/starsector/./mods/fluffShipPack,/home/helena/Desktop/Stuff/Games/starsector/./mods/Fuel Siphoning,/home/helena/Desktop/Stuff/Games/starsector/./mods/Grand.Colonies1.0.d,/home/helena/Desktop/Stuff/Games/starsector/./mods/HMI,/home/helena/Desktop/Stuff/Games/starsector/./mods/Hegemony Expeditionary Auxiliary,/home/helena/Desktop/Stuff/Games/starsector/./mods/HTE,/home/helena/Desktop/Stuff/Games/starsector/./mods/Industrial.Evolution3.0.e,/home/helena/Desktop/Stuff/Games/starsector/./mods/Iron Shell,/home/helena/Desktop/Stuff/Games/starsector/./mods/LTA,/home/helena/Desktop/Stuff/Games/starsector/./mods/LazyLib,/home/helena/Desktop/Stuff/Games/starsector/./mods/Luddic_Enhancement,/home/helena/Desktop/Stuff/Games/starsector/./mods/MagicLib,/home/helena/Desktop/Stuff/Games/starsector/./mods/MakeParagonGreatAgain,/home/helena/Desktop/Stuff/Games/starsector/./mods/Nexerelin,/home/helena/Desktop/Stuff/Games/starsector/./mods/Progressive S-Mods,/home/helena/Desktop/Stuff/Games/starsector/./mods/Shielded Holds For All,/home/helena/Desktop/Stuff/Games/starsector/./mods/ShipDirectionMarker,/home/helena/Desktop/Stuff/Games/starsector/./mods/Ship and Weapon Pack,/home/helena/Desktop/Stuff/Games/starsector/./mods/SpeedUp,/home/helena/Desktop/Stuff/Games/starsector/./mods/Starship Legends,/home/helena/Desktop/Stuff/Games/starsector/./mods/stelnet,/home/helena/Desktop/Stuff/Games/starsector/./mods/Stop Gap Measure 1.2.2,/home/helena/Desktop/Stuff/Games/starsector/./mods/Superweapons Arsenal,/home/helena/Desktop/Stuff/Games/starsector/./mods/tahlan-shipworks,/home/helena/Desktop/Stuff/Games/starsector/./mods/Terraforming and Station Construction,/home/helena/Desktop/Stuff/Games/starsector/./mods/FED,/home/helena/Desktop/Stuff/Games/starsector/./mods/transpoffder,/home/helena/Desktop/Stuff/Games/starsector/./mods/UAF,/home/helena/Desktop/Stuff/Games/starsector/./mods/UnknownSkies,/home/helena/Desktop/Stuff/Games/starsector/./mods/WhichMod,/home/helena/Desktop/Stuff/Games/starsector/./mods/GraphicsLib,../starfarer.res/res,CLASSPATH]
The entire not found list is just a list of the directories of each mod, information which is available elsewhere in the log. As such, its main function is to confuse the user as to what is going on (why is it looking in all these folders?)

More useful would be to say what file, from which mod, was looking for that image (a .ship file? a .csv? settings.json?). Also maybe some OS-specific advice, i.e. if the user is on Linux mention case sensitivity.

(Also maybe it should write a warning for mod devs on Windows if the case doesn't match, so we don't have to wait for some Linux user's game to explode. But what would be a good way to display warnings that only show for the dev of the relevant mod? Have an idea for this, might make a separate thread later)

Suggestions / Shipboard bar
« on: August 21, 2022, 07:15:58 AM »
Something I thought of while writing a mod quest, involving a conversation with a specific named officer.

Presumably at least one ship on a fleet has a decently large lounge for the crew to kick back and consume (limited amounts of) booze. So let the player show up from time to time and have a talk with the crew and officers. One or two of them might have interesting leads we can follow, like rumors of <treasure> at <location> or some family business they need help with. Or maybe we can just make small talk, like with the historian (or perhaps even better; supply some dynamic info about the Sector here). This would also let us relate to the crew as something more than a commodity.

For a bonus, have the illustration image change depending on the size of the fleet's crew complement.

Today we had a couple of users on the Discord server whose Starsector is CTDing on game load, running only LazyLib and no other mods. Also happens with my test mod and no other mods.

The error looks like this:
33875 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Error loading [org.lazywizard.lazylib.LazyLib]
java.lang.RuntimeException: Error loading [org.lazywizard.lazylib.LazyLib]
   at com.fs.starfarer.loading.scripts.ScriptStore$ Source)
   at Source)
Caused by: java.lang.ClassNotFoundException: org.lazywizard.lazylib.LazyLib
   at org.codehaus.janino.JavaSourceClassLoader.findClass(
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   ... 2 more
26360 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Error loading [org.histidine.amino.plugins.AminoModPlugin]
java.lang.RuntimeException: Error loading [org.histidine.amino.plugins.AminoModPlugin]
   at com.fs.starfarer.loading.scripts.ScriptStore$ Source)
   at Source)
Caused by: java.lang.ClassNotFoundException: org.histidine.amino.plugins.AminoModPlugin
   at org.codehaus.janino.JavaSourceClassLoader.findClass(
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   ... 2 more

There were also a couple such reports on the LazyLib thread earlier this year.

Earlier, when it was a script in MagicLib that was failing to load (during rulecmd validation), I determined that (at least in the MagicLib case) the relevant mod .jar is where it should be, it's specified in the mod_info.json, and the .class file at the expected path in the .jar.

Is it possible that ScriptStore is silently failing to load the mod .jar and letting the game continue loading – until it needs to load the mod plugin class and the jig is up?
(Even though it logs "Getting ready to load jar file <path>" just fine)

Modding / Hub mission fleet sizing has a Problem
« on: July 13, 2022, 08:10:42 PM »
So, fleet sizes in hub missions are controlled by an enum that works off fractions of FactionAPI.getApproximateMaxFPPerFleet(). I'm not sure how the figure is computed beyond the javadoc explanation, but it seems to work okay for "normal" factions in vanilla.
* Used to figure out how many fleet points raids/expeditions etc divide out for each "large" fleet.
 * When going above 30 ships, fleets replace some smaller ships with larger ones. This FP limit is
 * where that still produces fleets that aren't *too* top-heavy.

There's just one problem with this function: A mod can easily screw with the values without even meaning to, by adding new ships that allow a fleet to "compress" more effectively. Case in point: one mod (The Star Federation) adds an Omega capital for a one-off bounty, and this makes the return value of getApproximateMaxFPPerFleet 5.4 times larger than what it is in vanilla (going from 576.58 to 3,126.49). This in turn led to a completely unrelated Omega fleet from my mod being about five times larger than it should have been under the circumstances it was generated, and about 2.5 times larger than what was ostensibly the maximum size specified in its fleet spawner.

Should hub missions have a more reliable sizing formula? (Why doesn't it let us just specify an arbitrary FP value directly, anyway?)

Suggestions / Simplify intel tag order
« on: June 16, 2022, 06:15:48 AM »
Current order of tags in the intel screen:
- New
- Important
- An arbitrary and impossible-to-remember sequence of tags, defined in tag_data.json
- Everything else, in alphabetical order

This makes finding some things take way longer than it should.

My suggestion is two-fold. First, what it should look like:
- New
- Important
- maybe Accepted, Local and/or Story
- Everything else in alphabetical order

Then, to keep things findable, perhaps some key tags (such as Colony threats and Story) could have highlight colors. Although it leads to colors in seemingly random places, so I'm not too sure about this (maybe only the box rather than the text should be colored).

Test with a lightly modded game

Alphabetical order, some light coloring:


Modding / No understand AI core loot from battles
« on: April 05, 2022, 03:51:44 AM »
How are AI core drops from combat with Remnants (and derelicts) calculated, exactly?

This question seems to crop up quite frequently on the Discord, e.g. someone just reported killing "20" capitals with "95%" alpha core officers, and getting zero alpha core items out of the deal. Then I've heard from another mod dev that there's a hidden (in obsfucated code?) bit where core drops from farming Remnants has diminishing returns.

Are the drop_prob_officer_alpha_core etc. values specified in settings.json and referenced in FleetEncounterContext actually used to calculate drops? Are there further modifiers on top of this?
EDIT: Also, could mods be having funny effects on the drops?

Bug Reports & Support (modded) / [0.95.1a-RC6] SlipstreamManager hang?
« on: December 29, 2021, 07:58:33 AM »
A number of people (two that I know of) on Discord have been reporting hangs in the middle of play. Both posted VisualVM thread dumps, which contained the following:

"Thread-3" #18 prio=5 os_prio=0 tid=0x0000021a8f187800 nid=0x33bc runnable [0x00000086589fe000]
   java.lang.Thread.State: RUNNABLE
        at com.fs.starfarer.api.util.CollisionGridUtil.addObject(
        at com.fs.starfarer.api.impl.campaign.velfield.SlipstreamManager.updateGrid(
        at com.fs.starfarer.api.impl.campaign.velfield.SlipstreamManager.checkIntersection sAndFadeSections(
        at com.fs.starfarer.api.impl.campaign.velfield.SlipstreamManager.addStream(
        at com.fs.starfarer.api.impl.campaign.velfield.SlipstreamManager.advance(
        at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
        at com.fs.starfarer.campaign.CampaignState.advance(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$ Source)

My eyeballing of the code involved has failed to notice any way this could even happen, and I need to go to bed, so I'll just leave this here for now.

Modding / [0.95.1a] Skip Story v1.0
« on: December 17, 2021, 06:08:27 PM »
Skip Story v1.0

What's this do?
The Academy quest chain is great, but after you've played it already, sometimes you just want to get to gating around the Sector. This mod lets you do that.

Full list of effects:
  • Enables gate travel at start of game
  • Puts all the Academy characters in the Academy, with some relevant flags set
  • Sets a certain flag needed for a certain quest in 0.95.1a
  • Unlocks Rayan Arroyo, Callisto Ibrahim and Horus Yaribay as potential contacts
  • Adds a fleet log intel item pointing to "the secret location"

This is the same as the "skip story" option already available in Nexerelin, separated out into its own mod. You do not need or want to use this mod with Nexerelin 0.10.3i or earlier; the effects of using both story skips at once is undefined. I may decide to remove the option from later Nexerelin versions.

Bug Reports & Support (modded) / [0.95.1a-RC5] Marine bar event XP bug
« on: December 16, 2021, 06:15:20 AM »
Someone on Discord reported that the marine bar event isn't giving elite marines like it's supposed to. When I encountered the event myself, I spaced all my existing (100% XP) marines and did the event. The resulting marines were at zero XP. (Similarly, keeping one of the original elite marines then doing the bar event resulted in the marine stack having only 1/N XP)

Bug Reports & Support (modded) / [0.95.1a-RC5] Bar NPEs
« on: December 15, 2021, 05:31:54 AM »
A starfarer walks into a bar, gets this error in dialog:
979413 [Thread-3] WARN  com.fs.starfarer.campaign.rules.A  - Problem with command of class com.fs.starfarer.api.impl.campaign.rulecmd.missions.BarCMD: null
at com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.pickLocationWithinArc(
at com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers$PickLocationAtInSystemJumpPointAction.doAction(
at com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.runStageTriggersReturnFleets(
at com.fs.starfarer.api.impl.campaign.missions.cb.BaseCustomBountyCreator.createFleet(
at com.fs.starfarer.api.impl.campaign.missions.cb.CBDerelict.createBounty(
at com.fs.starfarer.api.impl.campaign.missions.cb.BaseCustomBounty.create(
at com.fs.starfarer.api.impl.campaign.missions.cb.MilitaryCustomBounty.create(
at com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.createAndAbortIfFailed(
at com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionBarEventWrapper.addPromptAndOption(
at com.fs.starfarer.api.impl.campaign.rulecmd.missions.BarCMD.showOptions(
at com.fs.starfarer.api.impl.campaign.rulecmd.missions.BarCMD.execute(
at com.fs.starfarer.campaign.rules.A.execute(Unknown Source)
at com.fs.starfarer.campaign.rules.ooOO.runScript(Unknown Source)
at com.fs.starfarer.api.impl.campaign.rulecmd.FireBest.applyRule(
at com.fs.starfarer.api.impl.campaign.rulecmd.FireBest.execute(
at com.fs.starfarer.api.impl.campaign.RuleBasedInteractionDialogPluginImpl.fireBest(
at com.fs.starfarer.api.impl.campaign.RuleBasedInteractionDialogPluginImpl.optionSelected(
at com.fs.starfarer.ui.newui.W$1.o00000(Unknown Source)
at Source)
at com.fs.starfarer.ui.OoO0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.I.?00000(Unknown Source)
at com.fs.starfarer.ui.I.processInput(Unknown Source)
at com.fs.starfarer.ui.O0Oo.o00000(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.super(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$ Source)
at Source)
The "leave bar" dialog option is missing, but one of the bar events managed to generate its dialog option (specifically, the custom bounty from MagicLib). The starfarer clicks that option, but there are no bounties he wants to do, so he backs out of the dialog. This time it CTD's:

1102553 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
at com.fs.starfarer.ui.newui.W$1.o00000(Unknown Source)
at Source)
at com.fs.starfarer.ui.OoO0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.I.?00000(Unknown Source)
at com.fs.starfarer.ui.I.processInput(Unknown Source)
at com.fs.starfarer.ui.O0Oo.o00000(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.super(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$ Source)
at Source)

During the new game load process, every non-GUI element except the background (e.g. nebulas, planets and ships) flickers quite violently, as seen in this video:

[warning: see above description]

It could well be a health hazard, so would be good to get it fixed.

General Discussion / SOE quest thoughts [0.95.1a spoilers]
« on: December 11, 2021, 06:53:39 AM »
(If you don't know what the title refers to, that's good! Don't open the spoilers unless you want to be, well, spoiled.)

First, I should note that I didn't get the mission in a 'normal' playthrough; rather I started a new game with a modified version of Nexerelin's 'skip story' option, and a modified rules.csv row with the RollProbability call removed.

Okay, general impression: Wow, you're a pair of madlads, Alex and David! A minigame needing completely novel systems like this is definitely not something I expected to ever see.
The rest of the mission was fun, too. Nice to see more lore; interesting glimpse into the Eventide aristocracy and its origins, and House Rao. I liked the dialog choices (also I am inordinately amused by the 'DatingSim' option IDs).

Difficulty: Of the first four times I tried it, I only won the third time. Probably fine, it should be hard for a captain with zero fencing experience, and it's not like you lose anything by losing. Classic Prince of Persia controls (a game I've never played) felt a bit "stiff" at first.

Issues and things I thought could be better:
  • It's not save-compatible, right? Since the required persons are only generated on a new game.
  • The requirements to unlock the mission may be too strict. I'm not even sure RollProbability works as one might expect; I used the rule command in a Nexerelin mod mission for a while and it never seemed to show up.
    Also it requires Hegemony commission as if anyone would hold such a thing. (Unless every major faction is getting its own mission? Would be kind of cool.)
  • Caspian Sang is probably exactly as insufferable as he was meant to be. But in hindsight I kinda feel the narrative text criticizing him could be, hmm, more subtle. More show-don't-tell.
  • The tutorial description isn't fully clear on ripostes; I didn't know "a skilled fighter" meant it requires the story point option to work, until I looked at the code. It makes sense in hindsight and I'm not sure how else I'd word it, but maybe highlight that bit in the story point color?
    Also it's hard for me to tell in the first place whether I'm riposting or just doing a normal attack. It seems like ripostes have poor range, or is that just the opponent doing a "middle block"?

Random idea that just popped into my head: Neriene Rao contact when ;D
(maybe as a reward for winning and/or just getting along reasonably well with her)

Overall verdict: Thumbs up, positive review, would party and study the blade again.

Pages: [1] 2 3 ... 11