Fractal Softworks Forum

Please login or register.

Login with username, password and session length

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.

Messages - Morathar

Pages: 1 [2] 3 4 5
16
Modding / Re: How to add a visualy, a 'satellite' to a planet
« on: September 01, 2019, 07:40:18 AM »
The java code used to create the core systems is actually installed along with the game files. Check out the "starsector-core\data\scripts\world\systems" subfolder in your main Starsector folder and you should find a Hybrasil.java file. Search through that file and you'll discover an "Eochu Bres mirror system" section that shows exactly how the satellites are added (addCustomEntity) and then set to orbit the planet (setCircularOrbitPointingDown). That second method (setCircularOrbitPointingDown) is what controls the angle, orbit radius, and orbit speed of the satellite. That should be about all you need to add satellites to your planet...

17
Mods / Re: [0.9.1a] Unknown Skies v0.42 (2019/05/11)
« on: August 28, 2019, 02:44:27 PM »
FYI, there was a problem reported a few months back with save files bloating in size. Alex tracked it to one of the mods keeping static copies of the sector around using code like this:

private static final SectorAPI sector = Global.getSector();

Without going into all the details of static objects and their use/misuse, let's just say this code caused a bunch of extra data to get shoved into the save file that Starsector would normally not have saved. (For a more detailed explanation check https://fractalsoftworks.com/forum/index.php?topic=15635.msg252371#msg252371)

My guess is that one of the mods you have installed is doing something similar with a static object somewhere. For what it's worth, I don't see anything like this in Unknown Skies, so you might want to do a quick check of your other installed mods (or at least the ones that include source). It's possible that one of them is causing the save bloat problem, but it just wasn't obvious until all of the extra planet types and conditions were added to the game by this mod.

18
I was recently poking through all of my downloaded mods while trying to track down a sector generation issue and noticed that several of the mods (including this one) have a condition_gen_data.csv file that still uses the old 0.9a format. In the Starsector 0.9.1a release, the condition_gen_data.csv file was updated with several renamed column headers and a new cat_hab5 column. Obviously, I didn't expect that file to be up-to-date since your mod hasn't been officially updated for version 0.9.1a yet, but I just wanted to give you a heads up for if/when you do release an updated version.

19
I was recently poking through all of my downloaded mods while trying to track down a sector generation issue and noticed that several of the mods (including this one) have a condition_gen_data.csv file that still uses the old 0.9a format. In the Starsector 0.9.1a release, the condition_gen_data.csv file was updated with several renamed column headers and a new cat_hab5 column. Obviously, I didn't expect that file to be up-to-date since your mod hasn't been officially updated for version 0.9.1a yet, but I just wanted to give you a heads up for if/when you do release an updated version.

20
Mods / Re: [0.9.1a] Kadur Remnant v3.0.3 cleanup & bugfixes 2019-08-18
« on: August 27, 2019, 01:33:42 PM »
I was recently poking through all of my downloaded mods while trying to track down a sector generation issue and noticed that several of the mods (including this one) have a condition_gen_data.csv file that still uses the old 0.9a format. In the Starsector 0.9.1a release, the condition_gen_data.csv file was updated with several renamed column headers and a new cat_hab5 column. I don't think the outdated version of the file is currently causing any problems (or at least it wasn't related to bug I was tracking), but I figured I should let you know just in case...

21
I was recently poking through all of my downloaded mods while trying to track down a sector generation issue and noticed that several of the mods (including this one) have a condition_gen_data.csv file that still uses the old 0.9a format. In the Starsector 0.9.1a release, the condition_gen_data.csv file was updated with several renamed column headers and a new cat_hab5 column. I don't think the outdated version of the file is currently causing any problems (or at least it wasn't related to bug I was tracking), but I figured I should let you know just in case...

22
Mods / Re: [0.9.1a] Vayra's Sector v3.0.3 BOUNTY BUG FIXED 2019-08-20
« on: August 25, 2019, 02:08:32 PM »
I apologize for monopolizing your thread, but I think you'll probably like this post more than my last two. On second thought, "like" may not be the right word - you'll actually probably dislike the implications of what I've uncovered. Regardless, I hope you at least appreciate the information because I certainly appreciate all the effort you've put into making the various frameworks included in this mod...

Anyway, I believe I've discovered the cause of the issues mentioned in those other two posts. Here's my theory (hidden behind spoilers for those who don't care to read all the boring details):

Spoiler
None of the static member variables of classes like VayraRaiderBaseManager are getting initialized properly unless the onNewGameAfterTimePass() method is called first. This is why everything works properly during a new campaign (or when I start a temporary new campaign), but some things are broken if you just load the saved campaign in later gaming sessions. Why is this happening?

- First, from what I can tell, Starsector uses Java's serialization to preserve the state of various scripts (like VayraRaiderBaseManager) in campaign.xml.
- Second, static variables are not saved during serialization. This explains why members like the RAIDERS HashMap aren't getting saved with the other VayraRaiderBaseManager data stored in campaign.xml. Obviously, this isn't ideal, but it didn't seem like a problem because I thought they'd just get reloaded when the class constructor got called when reloading the saved campaign.
- Third, the class constructor is NOT called during the Java de-serialization process. From what I've read, Java only calls the constructor of the first non-serializable parent class, which I'm guessing isn't the VayraRaiderBaseManager class in this case. I suppose this makes sense given that the object is being recreated from the serialized data, but it's rather unfortunate in this specific case because it means the class never gets to call its loadData() method and never reloads the data from raider_factions.csv...

This theory explains the behavior I've seen in each of the following cases:

- VayraRaiderBaseManager: the RAIDERS HashMap and 'loaded' boolean are static and not serialized. Data is loaded in the class constructor (via the loadData() method). As a result, raider bases stop spawning in future gaming sessions because RAIDERS is empty and never reloaded.
SUGGESTED QUICK FIX: Add a method to VayraRaiderBaseManager that will always get called every game session (advance() perhaps?) and move the loadData() method there.

- VayraUniqueBountyManager: the BOUNTIES HashMap is static and not serialized. The 'loaded' boolean is NOT static and is serializable, so it gets saved to campaign.xml. Data is loaded once in the advance() method (via the loadBounties() method). At first glance this should work, but due to the mismatch between static (BOUNTIES) and non-static (loaded) data, the serialization process can result in those values being out of sync in future gaming sessions. (Basically, 'loaded' will be saved/reloaded as TRUE, but BOUNTIES will be empty and never reread from the file.) As a result, unique bounties stop spawning in future gaming sessions because BOUNTIES is empty.
SUGGESTED QUICK FIX: Make the 'loaded' boolean static as well. This should cause the entire BOUNTIES HashMap to be reloaded in future gaming sessions, and I think your purgeBountiesIfNeeded() method will remove those that are already completed.

Now, this is the part you'll probably dislike - the implications if my theory is correct. Basically, any script that uses a static HashMap, HashSet, ArrayList, etc. is at risk of suffering from this issue to some degree. At some point, you'll probably want to go through all of them and double-check that their static data is properly loaded/reloaded and that none of their constructors do anything that doesn't get saved somewhere.
[close]

Edit: OK, I don't feel so bad about "monopolizing" the thread since three posts were made while I was writing my book/post. Please go ahead and ignore that comment...

23
Mods / Re: [0.9.1a] Vayra's Sector v3.0.3 BOUNTY BUG FIXED 2019-08-20
« on: August 23, 2019, 01:33:39 PM »
Hmm, I think the unique bounties may have the same strange save/load issue across gaming sessions as well. After setting the uniqueBountySpawnChance to 1.0 (instead of the default 0.15), the Crow/Black Talon bounty reliably shows up after a month or so into a new campaign as long as it's the same gaming session where I started the campaign. However, if I've restarted Starsector, then I can go months without the bounty ever appearing.

The same workaround (of creating a temporary campaign to reload the values) seems to work here as well, but I wonder if it might cause problems if I'd already completed the bounty. (The same Crow/Black Talon bounty might show up over and over using this goofy trick...)

24
Mods / Re: [0.9.1a] Vayra's Sector v3.0.3 BOUNTY BUG FIXED 2019-08-20
« on: August 23, 2019, 07:39:00 AM »
I didn't want to post anything until I did more testing, but now that I've played around with it for a few hours, I'm fairly certain that the raider base information isn't getting saved/loaded properly. From what I can tell, raider bases only spawn properly in a new campaign during your initial gaming session. (For reference purposes, I'm considering a "gaming session" to be running/exiting the Starsector executable itself - not simply exiting a campaign back to the main menu and then loading a saved campaign.)

Rather than go into a rambling summary of all the different things I tried that led me to this conclusion, let me just give a quick series of steps that should reproduce the issue:
Spoiler
- Start a new campaign with Kadur Remnant, Vayra's Sector, Nexerelin, and whatever other mods you desire enabled.
- Save the game once you've started flying around after sector generation. (Do NOT save again after this point...)
- Use Nex's faction directory feature (defaults to 'z' key - not sure if you can change it) to see which markets Kadur owns.
- Speed up time with the 'shift' key until a month or two passes.
- Check the faction directory again - it should indicate that Kadur now has 1 Hidden market (i.e. the raider base).
- Exit the campaign and shut down Starsector completely WITHOUT saving.
- Restart the game and load/continue the save.
- From this point forward, month after month will pass without ever spawning a Kadur raider base.
[close]
There are probably much more efficient ways of reproducing this problem, but I wasn't sure if using something like the vayraDebug flag in the settings file would mess with the results.

Normally, this is the point where I'd try to suggest a fix (or at least some spot in the code to look at), but I'm really not sure how Starsector decides what to save/load. I can suggest a really silly workaround for players that seems to temporarily fix the problem though. Due to the VayraRaiderBaseManager class storing the raider data as a static member, you could start a brand new campaign, immediately exit (and delete) that new campaign after sector generation, and then load your previously saved campaign. This little trick should keep the raider data in memory (and allow them to spawn bases as expected) for the rest of the gaming session...

25
Mods / Re: [0.9.1a] Nexerelin v0.9.3b (fixes 2019-08-17)
« on: August 23, 2019, 06:06:06 AM »

Im not sure what could cause this but every time i generate a new sector there it is, in the farthest place sometimes left and some right, a goddamit luddic church planet.
What i have to change in the configs to stop npcs expanding?
Disable for one faction: open its config file (vanilla factions have theirs in Nexerelin/data/config/exerelinFactionConfig) and delete the colonyExpeditionChance line, or set it to zero
Disable for all factions: Nexerelin/exerelin_config.json, set colonyExpeditionInterval to 99999

FYI, that Luddic Church colony may not actually be coming from this mod. Do you happen to have Vayra's Sector mod enabled? As an example of how to use its procgen entity feature, that mod adds a Luddic Church station named Blessed Reach to a random system when creating a new game. So, if the station that's annoying you is named "Blessed Reach" then disabling Nexerelin's colony expeditions won't help...

26
Mods / Re: [0.9.1a] Vayra's Sector v3.0.3 BOUNTY BUG FIXED 2019-08-20
« on: August 21, 2019, 01:01:13 PM »
I ran into an issue caused by the recent mod split. Basically, if you try to start a new Nexerelin campaign with one of the colonial competitor factions/fleets (Warhawk Republic, Ashen Keepers, etc.), then you will crash to desktop.

The source of the problem is that the blueprints for all the colonial competitor factions are still defined in the Kadur Remnant mod's special_items.csv file. So, when Nexerelin tries to give you the freebie blueprint to start your campaign, it can't find it unless you also have the Kadur Remnant mod enabled.

Anyway, it should be a fairly straightforward fix if I'm understanding the problem correctly (i.e. just move the colonial competitor blueprint entries from the Kadur Remnant mod to a new special_items.csv file for this mod). Until then, the simplest workaround is to just keep both mods enabled (or just don't try to start a game with one of the colonial competitor faction fleets)...

27
Unfortunately, this problem doesn't appear to be limited to pirate stations. Based on these other two threads - https://fractalsoftworks.com/forum/index.php?topic=15734.0 and https://fractalsoftworks.com/forum/index.php?topic=15681.0 - it looks like this crash has been seen at non-pirate markets as well...

For what it's worth, I don't think this problem is related to the game music. Based on your log (and the ones in the other threads), it appears to be an issue with the game trying to modify the combat readiness of some ship at the market in question (the exception is thrown by the applyMaxCRCrewModifiers() method).

Out of curiosity, which mods do you have enabled? If we can narrow down the list of mods involved in all the cases then it might help to pinpoint the issue. For reference, these are the mods that all the previous reports (including my own) had in common:

"raccoonarms",
"blackrock_driveyards",
"lw_console",
"istl_dam",
"DisassembleReassemble",
"Imperium",
"lw_lazylib",
"luddenhance",
"MagicLib",
"Mayasuran Navy",
"nexerelin",
"shadow_ships",
"swp",
"tahlan",
"underworld",
"vayrasector",
"shaderLib"


28
Bug Reports & Support (modded) / Re: Crash when accessing Volturn
« on: July 15, 2019, 03:34:15 PM »
I ran into this same error the other day when trying to visit a pirate base to "discuss" their harassment of my colonies:

Spoiler
4888564 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
   at com.fs.starfarer.api.impl.combat.CRPluginImpl.applyMaxCRCrewModifiers(CRPluginImpl.java:48)
   at com.fs.starfarer.campaign.fleet.FleetMember.updateStatsBasedOnCrew(Unknown Source)
   at com.fs.starfarer.campaign.fleet.FleetMember.updateOnlyStatsThatCanRelyOnCROrCre w(Unknown Source)
   at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
   at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
   at com.fs.starfarer.campaign.fleet.FleetData.sort(Unknown Source)
   at com.fs.starfarer.campaign.fleet.CargoData.sort(Unknown Source)
   at com.fs.starfarer.campaign.fleet.CargoData.sort(Unknown Source)
   at com.fs.starfarer.api.impl.campaign.submarkets.OpenMarketPlugin.updateCargoPrePl ayerInteraction(OpenMarketPlugin.java:87)
   at com.fs.starfarer.campaign.ui.o0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.<init>(Unknown Source)
   at com.fs.starfarer.coreui.o00o.<init>(Unknown Source)
   at com.fs.starfarer.coreui.o00o.<init>(Unknown Source)
   at com.fs.starfarer.ui.newui.O0oO$5.actionPerformed(Unknown Source)
   at com.fs.starfarer.ui.newui.O0oO.setCurrentTab(Unknown Source)
   at com.fs.starfarer.ui.newui.O0oO.setCurrentTab(Unknown Source)
   at com.fs.starfarer.ui.newui.Objectsuper.showCoreInternal(Unknown Source)
   at com.fs.starfarer.ui.newui.Objectsuper.showCore(Unknown Source)
   at com.fs.starfarer.api.impl.campaign.rulecmd.OpenCoreTab.execute(OpenCoreTab.java:40)
   at com.fs.starfarer.ui.newui.super.actionPerformed(Unknown Source)
   at com.fs.starfarer.ui.newnew.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$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
[close]

After restarting the game I was able to travel back to the pirate station, buy some fuel/supplies from them, and then destroy the base without further incident. I'm not really sure what I did differently the first time to cause the crash (maybe I hit different storms or fought different patrols on the way?), but I've visited several other markets (including one or two pirate bases) since then without any other issues...

29
You can find the Gridfire Submunition blueprint by raiding Blackrock markets. Not the missile weapon, the submunition that it splits into.

On a somewhat related note, if you manually add brdy_wep_bp to the blackrock_driveyards.faction file (as described in an earlier post), then you can occasionally find "Gridfire Submunition" weapons for sale in Blackrock markets. The "weapon" has no image and cannot be equipped (as far as I know), but it looks like you could purchase one if you really wanted to...

30
It looks like I've discovered another station duplication bug in the latest version - this time with the procgen entities. Unlike the earlier communist_cloud station issue (which seemed to continuously create new stations during my campaign) this one just potentially creates extra copies at the start of a new campaign. The number of extra copies is based on how many times you've started a new campaign during the current gaming session.

For example, when I started my latest campaign, I actually started a new game twice because I didn't like the first sector that was generated. (I'm using Nexerelin's random sector, which can sometimes spread the starting colonies way beyond the core if the random core constellation it generates doesn't contain enough viable systems...) The end result of my starting a new game twice is that I have two "Blessed Reach" stations in my game. And had I tried a few more new games before getting a sector I liked, then I would have had that many more "Blessed Reach" stations.

I believe the problem is related to the static ENTITY_DATA List in VayraProcgenEntityFramework.java. Because it's static, it only gets cleared/reinitialized when the Starsector application itself is restarted. And because it's a simple List of complex objects (rather than a Map or some other collection with a key), it only appends new copies of the entity entries to the list (rather than updating existing entries) every time a new game is started. Anyway, if my theory is correct, then fixing the problem should just be a matter of either removing the static keyword on ENTITY_DATA or using a Map/HashMap (with the entity id string as a key) instead of a List.

Pages: 1 [2] 3 4 5