Fractal Softworks Forum
March 23, 2017, 05:04:41 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Updated in-dev patch notes for Starsector 0.8a; New blog post: Building Better Worlds (2/21/17)
 
   Home   Help Search Login Register  
Pages: [1] 2 3 ... 84
  Print  
Author Topic: [0.7.2a] Nexerelin v0.7.7 "Period Without an Update" (update 2017-03-18)  (Read 258064 times)
Histidine
Admiral
*****
Posts: 1357



View Profile Email
« on: March 07, 2015, 12:40:41 AM »


(explanation)

Nexerelin v0.7.7
an update of Exerelin

Requires LazyLib
Omnifactory Integrated
Supports Version Checker
Compatible with Starsector Plus, DynaSector, Ship/Weapon Pack, Underworld

Download (full version)
Patch (0.7.6d -> 0.7.7)
Previous downloads


Make sure to delete your old Nexerelin folder before installing a new full version!

Having problems?  Visit the Mod Troubleshooting Guide!

Features
  • 4X game features in Starsector
  • Factions will wage war against each other and try to conquer their enemies
  • Diplomacy events see faction relationships changing over time
  • Join a faction to gain useful support and represent them in war and peace, or start your own
  • Mine planets and asteroids for useful resources for trade, or some treasure
  • Play in a randomly generated Sector, or travel the star systems seen in vanilla and other mods

Changelog
Code:
v0.7.7
* Gameplay
    * Add dialog options to control followers faction alliances
    * Separate Templar invasion handling
        * There are Templar invasion and counter-invasion points, separate from the regular invasion points
        * When Templar invasion points are filled up, Templars invade one of their enemies
        * When Templar counter-invasion points are filled, one of Templars' enemies invade them
    * Add revenge fleets (first iteration)
        * After the player kills enough fleets or their faction captures enough markets, an enemy faction will send a powerful invasion fleet at player
        * See config file for options
    * Bonus prisoner drops from killing ships with officers (base prisoner drop rate reduced to compensate)
    * Don't exclude a pirate faction from victory check if player is a member
    * Mining base accident chance 0.5 -> 0.4
    * Agent raise relations effect range 0.8-0.14 (was 0.9-0.14)
    * Prism: Only carry ships from IBBs we've actually killed, not just accepted the mission for
    * Asteroid belt around star always spawns if nebula not present
    * Add morality tag for factions (currently only affects reputation changes from selling slaves)
* GUI
    * Faction join/leave now done by talking to market officials
        * For most factions this is the station commander or military base commander
        * For pirates and Templars it can be anyone except the quartermaster/supply officer (or mercs)
    * Reorganize start options menu a bit to prevent overflow
* Console commands
    * SetRelationship now automatically syncs faction relationships to player relationships
    * CreateDiplomacyEvent can create a specific event
    * Remove some unused commands
* Bugfixes
    * Fix procurement mission crash if pirates were wiped out
    * Fix some free start effects persisting into new game with another faction within the same application run
    * Actually start at level 16 (instead of 15) on SS+ commander start
    * Fix a money-farming exploit involving agents
    * Fix crew loot from battles
    * Preferential targeting of player markets in Starfarer mode now actually works
    * Fix some stat tracker bugs
    * Validate random starting ships (must have at least one member that is not a fighter wing and has nonzero cargo/fuel capacity)
    * Crash safety for mining fleet spawn
* Miscellaneous
    * ORA support
    * Full support for rules.csv directory/faction joining entries on faction mod side
    * Remove support for Starsector+ pre-3.4.0

Note on using Save Transfer (and other console commands)
You may want to use the ResetRelationships command to start with fresh faction relationships (particularly if some factions died in the last run).

The SetMarketOwner <market_or_location_name> <faction> command can be used to give a market to another faction (including one not currently alive in the sector).

Known bugs
Consider using the Bitbucket issue tracker for bug reports, it makes them less likely to be lost/forgotten.
  • Text can get cut off at bottom of faction directory (just click the button again to displace it up)
  • Faction relationships with factions that have an alliance may not be reset properly if the player leaves their current faction

Quick help
Alliances
Mining

FAQ
What is this?
This is my personal fork of Exerelin, given its own thread because I wanted to be able to maintain my own OP. It is essentially a reimplementation of Zaphide's project (and in fact uses it as a codebase), but updated for Starsector 0.7.

What are the new features over the original Exerelin?
Aside from all the new stuff in the newer Starsector versions, there’s:
  • Corvus mode: Battle for supremacy in the original Corvus cluster from vanilla (including mod systems and planets)!
  • Smoother market capture: No more needing to tow a superfreighter around, or manually hugging stations like a little girl with her teddy bear in order to capture stations. Simple dialog box with information, spend a day of ingame time waiting for the result, that’s it. Of course, that leads to…
  • Response fleets: Markets maintain a reserve force that regenerates over time. If you try to capture someone’s station or planet, be ready for a fight.
  • Insurance: Your faction will pay credits to cover your ship losses in battle (currently half the base sale cost).
  • Diplomacy events: Faction relationships change over time, and the player is notified accordingly. Hear the latest gossip about acts of terror, abuse of diplomatic immunity, extradition treaties and celebrity marriages.
  • More special powers: Agents can destabilize a market; saboteurs can weaken response fleets or torch food supplies; prisoners can be ransomed for cash - or sold as slaves.
  • Faction directory: Find out quickly which factions control what planets where.
  • The Prism Freeport: Sells top weapons and ships from all the factions in the game to anyone... for a price.
  • Custom planet names: Open data/config/exerelin/planetNames.json to name the stars and planets after your favorite animals, fictional planets, waifus, anything you please!

What was in the original Exerelin that is currently missing here?
  • No fancy fleet economics or spawning behavior, it mostly works the same as vanilla.

What faction mods work with this?
The following mods are supported (later versions of any of these should work as well):

Remember that only DynaSector integrated factions will fully benefit from DS features!

How do I win the game?
You win when all the other factions are either friendly or better towards your own… or dead.
Other factions can also win in the same way; you get an ally victory if you're at least friendly with whoever wins.

How do I remove a vanilla faction?
Open its faction config in data/config/exerelinFactionConfig and set the playable tag to false.

How do I customize the followers faction?
Faction name, logos and portraits are defined in Nexerelin/data/world/factions/player_npc.json. (Portrait Pack doesn't affect them at present)
Ship variant choices for non-DynaSector are also stored there.

For DynaSector, you can have the followers automatically use different tech from the DS-integrated factions with DynaSector/nexerelinOptions.json.
If you're really hardcore you can achieve full control over the ship choices by editing player_npc.json, ship_roles.csv and weapon_categories.csv DynaSector\data\factions

To change the dialogue lines, go to mods/Exerelin/data/campaign/rules.csv and look for the section "# Player fleet greeting lines"

How do I make my mod compatible with Nexerelin?
There are a few things you need to do.
(note:  add needed files and csv entries in your own mod, so you don't need a new Nexerelin release before your mod is Nexerelin compatible)
1) Stop it from crashing
Your sector generation code should have something like this:

Code: (java)

    public void onNewGame()
    {
        try {
            //Got Nexerelin, so load Nexerelin
            Class<?> def = Global.getSettings().getScriptClassLoader().loadClass("exerelin.campaign.SectorManager");
            Method method;
            try {
                method = def.getMethod("getCorvusMode");
                Object result = method.invoke(def);
                if ((Boolean)result == true)
                {
                    // Nexerelin running in Corvus mode, go ahead and generate our sector
                    new MySectorGen().generate(Global.getSector());
                }
            } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException |
                     InvocationTargetException ex) {
                // check failed, do nothing
            }
            
        } catch (ClassNotFoundException ex) {
            // Nexerelin not found so continue and run normal generation code
            new MySectorGen().generate(Global.getSector());
        }
        // IMPORTANT: Make sure your addParticipatingFaction call gets called regardless of whether the sector generator runs or not!
        SharedData.getData().getPersonBountyEventData().addParticipatingFaction("myFactionId");
    }

Note: This code will fail if you let Janino compile your mod plugin at runtime instead of having your IDE compile it into a .jar. You can do one of three things:

1) Compile the plugin into a .jar

2) Replace the NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex with an Exception ex

3) Spit the multi-catch block:
Code: (java)

// check failed, do nothing  
catch (NoSuchMethodException ex) {
}
catch (SecurityException ex) {
}
catch (IllegalAccessException) ex {
}
catch (IllegalArgumentException) ex {
}
catch (InvocationTargetException) ex) {  
}

Be careful with any code that targets a specific planet or star system by name! Make sure you disable it in non-Corvus mode, and don't assume a given planet will always belong to its original owner.

2) Add your faction to the list
Open data/config/exerelinFactionConfig and make a .json file with the name of your faction. Actually, copypaste one of the existing ones, like Templars, because it’s faster that way.

Now open your new file. The particular things you should pay attention to:
  • uniqueModClassName: This should point to a Java class that exists in your mod, so Nexerelin can check to see if it exists. probably not needed any more, just make sure it's not blank
  • corvusCompatible: Is this faction compatible with Corvus mode? (If you follow all the instructions here, it will be)
  • pirateFaction: Set to true to mark this as a pirate faction. Pirate factions start hostile to almost everyone, have fewer diplomacy event types, don’t engage in covert ops by themselves, don’t pay ransom for prisoners, and don’t participate in invasions by default (you can still capture their markets yourself).
  • isPirateNeutral: If true, pirates will not be hostile to this faction at start
  • factionsLiked: Start welcoming to this faction.
  • factionsDisliked: Start hostile to this faction.
  • factionsNeutral: Start neutral to this faction (used for hostile-to-all factions like the Luddic Path)
  • spawnPatrols: You can turn this off to make the faction not spawn patrols (which makes them much weaker). Only works if the faction is also set to not spawn patrols in the .faction file as well!

There are also a few other interesting options, look around for them.

Now open data/config/exerelinFactionConfig/mod_factions.csv and add your faction to the list.

3) Add your faction to rules.csv
There are two things to do here: the start faction selection option and faction directory (the latter lets the player find your faction’s planets and stations). The entries here should be self-explanatory, so just go ahead and copypaste + edit your own as appropriate.

Note: This can be done in the faction's rules.csv instead of the Nexerelin one, but will require two separate copies of rules.csv (one with the Nexerelin entries and one without) to avoid crashes. You can work around this by replicating the relevant rulescmd methods in your own mod, but it may be easier to just wait for me to update Nexerelin.

4) Corvus mode support
Open data/config/exerelin/corvus_capitals.csv and corvus_spawnpoints.csv and add the appropriate entries for your faction. This tells Nexerelin where to spawn the player at start, and which planet or station changes the system relay's faction when captured.

Where can I find the source code?
It’s included in the download, or you can look in Bitbucket here.

My wishlist
Revamped capture system
Economy development
(note: doing any of this depends on whether I still want to work on stuff at that point; none of this may ever get done)

Credits
Zaphide: the original Exerelin
Dark.Revenant: much coding help; SS+ compatibility
Psiyon: backgrounds
Tartiflette: Prism Freeport
The SS mod community: various tips, pointers and feedback
Alex, David, Ivaylo, StianStark: Starsector, what keeps us here
And lastly you, for playing this
« Last Edit: March 18, 2017, 03:41:55 AM by Histidine » Logged

Tartiflette
Admiral
*****
Posts: 1986


Kickstarter is not a magic spring of free money!


View Profile Email
« Reply #1 on: March 07, 2015, 02:53:31 AM »

Nice to see (N)exerelin back, good work Histidine. I'll have to release a Scy update to make it compatible, but in the meantime here's an updated faction file: the current one is lacking a lot of new stuff.

Since it didn't worked in Exerelin, would it be possible to use ships instead of wings to mine too? I made a mining destroyer that beg to be put to good use, and should be more efficient than a wing since it's quite bigger. I already commented out the corresponding entry for when it become possible (unless you already changed that in this case thank you).

Well, gotta get back working on that update then.

[attachment deleted by admin]
Logged

 
HELMUT
Admiral
*****
Posts: 1231



View Profile
« Reply #2 on: March 07, 2015, 05:11:40 AM »

Bug when i launched the campaign, after distributing my skill points at the character creation.

Code:
106480 [Thread-5] ERROR com.fs.starfarer.combat.O0OO  - java.lang.RuntimeException: Texture [urban03] from category [illustrations] not found
java.lang.RuntimeException: Texture [urban03] from category [illustrations] not found
at com.fs.starfarer.settings.StarfarerSettings.Ó00000(Unknown Source)
at com.fs.starfarer.campaign.BaseCampaignEntity.setInteractionImage(Unknown Source)
at data.scripts.world.ExerelinSectorGen.pickEntityInteractionImage$(ExerelinSectorGen.java:173)
at data.scripts.world.ExerelinSectorGen.buildSystem(ExerelinSectorGen.java:684)
at data.scripts.world.ExerelinSectorGen.generate(ExerelinSectorGen.java:383)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.OoOO.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.do.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.O0oO.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.O0oO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.i.o00000(Unknown Source)
at com.fs.starfarer.ui.OooO.processInput(Unknown Source)
at com.fs.starfarer.ui.V.o00000(Unknown Source)
at com.fs.starfarer.B.null.class$super(Unknown Source)
at com.fs.super.A.new(Unknown Source)
at com.fs.starfarer.combat.O0OO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Tried a few times with just Lazylibs, Shaderlibs and common radar. Most of the [urban] textures seems to be missing or something.
Logged

HELMUT's sprites factory:

Histidine
Admiral
*****
Posts: 1357



View Profile Email
« Reply #3 on: March 07, 2015, 05:41:37 AM »

Bug when i launched the campaign, after distributing my skill points at the character creation.

Code:
106480 [Thread-5] ERROR com.fs.starfarer.combat.O0OO  - java.lang.RuntimeException: Texture [urban03] from category [illustrations] not found
java.lang.RuntimeException: Texture [urban03] from category [illustrations] not found
at com.fs.starfarer.settings.StarfarerSettings.Ó00000(Unknown Source)
at com.fs.starfarer.campaign.BaseCampaignEntity.setInteractionImage(Unknown Source)
at data.scripts.world.ExerelinSectorGen.pickEntityInteractionImage$(ExerelinSectorGen.java:173)
at data.scripts.world.ExerelinSectorGen.buildSystem(ExerelinSectorGen.java:684)
at data.scripts.world.ExerelinSectorGen.generate(ExerelinSectorGen.java:383)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.OoOO.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.do.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.O0oO.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.O0oO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.i.o00000(Unknown Source)
at com.fs.starfarer.ui.OooO.processInput(Unknown Source)
at com.fs.starfarer.ui.V.o00000(Unknown Source)
at com.fs.starfarer.B.null.class$super(Unknown Source)
at com.fs.super.A.new(Unknown Source)
at com.fs.starfarer.combat.O0OO.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Tried a few times with just Lazylibs, Shaderlibs and common radar. Most of the [urban] textures seems to be missing or something.
Hmm, that's odd.

What OS? I'm wondering if the Linux/Mac installers don't have the (unused in vanilla, AFAIK) urban graphics included.
Vanilla folder graphics\illustrations should contain files urban_0[1-3].jpg, with the corresponding entries in settings.json->illustrations:
Code:
"urban00":"graphics/illustrations/urban00.jpg",
"urban01":"graphics/illustrations/urban01.jpg",
"urban02":"graphics/illustrations/urban02.jpg",
"urban03":"graphics/illustrations/urban03.jpg",

But I want to push another bugfix soon anyway, so I'll probably just take them out for the time being.
To do this locally: comment out lines 150-153 in data/scripts/world/ExerelinSectorGen.java

would it be possible to use ships instead of wings to mine too?
I don't actually have any plans to implement mining for now, but if I do I'll keep that in mind!
« Last Edit: March 07, 2015, 05:45:40 AM by Histidine » Logged

Ahne
Captain
****
Posts: 289



View Profile
« Reply #4 on: March 07, 2015, 06:45:50 AM »

Awesome man!

If this mod gets compatible with SS+ my life is complete!

Hahaha, great work indeed!

greetings
Ahne
Logged

HELMUT
Admiral
*****
Posts: 1231



View Profile
« Reply #5 on: March 07, 2015, 08:36:15 AM »

Hmm, that's odd.

Actually nevermind. I'm just a braindead idiot that forgot to update his game to RC2. God i feel so bad...

Anyway, congrats on updating (N)Exerelin to 0.65.2, i'm sure a lot of people will be happy to see this mod working again.
Logged

HELMUT's sprites factory:

gruberscomplete
Commander
***
Posts: 216



View Profile
« Reply #6 on: March 07, 2015, 08:47:51 AM »

Thank you I appreciate this.
Also this should be moved to the mods thread instead of hiding in the modding area.
After adding all the mods you mentioned, and after making a character, when it is starting the game by "creating trade fleets", it crashes, saying something like
: out of bounds:10.

UPDATE:
after reinstalling SS and all mods it worked. Thanks.
another update
After doing the above and starting with a crystantite ship, picked a fight with a one-ship fleet of "neutral" faction, defeated it, took more cargo than could carry, GAME CRASHED:
427339 [Thread-5] INFO  com.fs.starfarer.combat.CombatEngine  - FP1: 5, FP2: 5, maxFP1: 200, maxFP2: 200
470935 [Thread-5] INFO  exerelin.world.InvasionFleetManager  - Get reserve size - failed to get key fake_market
475523 [Thread-5] ERROR com.fs.starfarer.combat.D  - java.lang.NullPointerException
java.lang.NullPointerException
   at exerelin.campaign.DiplomacyManager.reportBattleOccurred(DiplomacyManager.java:445)
   at com.fs.starfarer.campaign.CampaignEngine.reportBattleOccurred(Unknown Source)
« Last Edit: March 07, 2015, 03:21:49 PM by gruberscomplete » Logged

Midnight Kitsune
Admiral
*****
Posts: 1522


Your Friendly Forum Furry!


View Profile
« Reply #7 on: March 07, 2015, 10:16:15 AM »

Dude, why isn't Exi in here? They were around in 54 and especially in 62!
Logged

Stop trying to balance the game around a few minmaxers...
Programming is like sex:
One mistake and you have to support it for the rest of your life.

Tired of having your game crash because of out of date mods? Then click here!
Get Version Checker today! Now with 90% less hassle! Simply toss it into your mod folder, activate the mod like a normal one and BINGO you will now be informed of any and all updates when you start SS campaign up!
Histidine
Admiral
*****
Posts: 1357



View Profile Email
« Reply #8 on: March 07, 2015, 07:56:46 PM »

Nexerelin v0.2.2
Download

Code:
v0.2.2
- Compatibility with Exigency, II and Templars (once they're updated)
-- SCY too, but I forgot to uncomment the lines in rules.csv so you'll have to do it manually unless I update again by then
- Fix crash after fighting with independents
- Agents, prisoners, saboteurs less common
- Reduce reserve damage from saboteur action
- Lower chances of detection from destroying food
- NPC covert action interval increased 30 days -> 45
- Don't change storage submarket faction on market capture

After doing the above and starting with a crystantite ship, picked a fight with a one-ship fleet of "neutral" faction, defeated it, took more cargo than could carry, GAME CRASHED:
427339 [Thread-5] INFO  com.fs.starfarer.combat.CombatEngine  - FP1: 5, FP2: 5, maxFP1: 200, maxFP2: 200
470935 [Thread-5] INFO  exerelin.world.InvasionFleetManager  - Get reserve size - failed to get key fake_market
475523 [Thread-5] ERROR com.fs.starfarer.combat.D  - java.lang.NullPointerException
java.lang.NullPointerException
   at exerelin.campaign.DiplomacyManager.reportBattleOccurred(DiplomacyManager.java:445)
   at com.fs.starfarer.campaign.CampaignEngine.reportBattleOccurred(Unknown Source)
Thanks for report, fixed.

Dude, why isn't Exi in here? They were around in 54 and especially in 62!
'cos it crashes (on account of not keeping Exerelin compatibility in mind during the recent updates)
Don't worry, it'll be updated in time.
Logged

xenoargh
Admiral
*****
Posts: 3352


View Profile
« Reply #9 on: March 07, 2015, 08:01:57 PM »

Hey, this great, looking forward to seeing it get done.  It's so boring not having a conquer-the-Sector mod atm Smiley
Logged
Dark.Revenant
Admiral
*****
Posts: 2069



View Profile WWW Email
« Reply #10 on: March 07, 2015, 10:34:16 PM »

Starting templar ship really needs to be the _sal variant.  The current one is the support one, making it nigh impossible to fight properly.
Logged

Histidine
Admiral
*****
Posts: 1357



View Profile Email
« Reply #11 on: March 08, 2015, 01:39:30 AM »

Nexerelin v0.2.3
Download

Code:
v0.2.3
- Fix misreporting of market captures
- Fix SCY support
- Fix Mayorate being listed in the wrong category
- Change starting Templar Martyr variant to Saltare
- Reduce default star/planet/station count
- Remove size 2 stations
Logged

MesoTroniK
Admiral
*****
Posts: 981


I am going to destroy your ships


View Profile
« Reply #12 on: March 08, 2015, 01:43:47 AM »

Histidine, since you are updating this very often (appreciated!) I might suggest utilizing Version Checker here Smiley
Logged

Tartiflette
Admiral
*****
Posts: 1986


Kickstarter is not a magic spring of free money!


View Profile Email
« Reply #13 on: March 08, 2015, 01:48:48 AM »

Hum, Scy will need an update on my end to be compatible, since I removed the "Exerelin" check. But at least it should work as soon as I release something.
Logged

 
Nicke535
Commander
***
Posts: 132


What do you want, human?


View Profile Email
« Reply #14 on: March 08, 2015, 10:08:27 AM »

Huh, i did not even realize i made my mod (N)exerelin compatible. Oh well. Time to stomp some stations with the Rebirth-class.
Logged

Pages: [1] 2 3 ... 84
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2011, Simple Machines
Simple Audio Video Embedder
Valid XHTML 1.0! Valid CSS!