(http://i.imgur.com/6BByqcq.png)
(https://i.imgur.com/nR40UDj.png)
A mod that makes your ships harder-better-faster-stronger
(https://img.shields.io/github/v/release/Iridescens/ExtraSystemReloaded?label=download%20mod&style=for-the-badge) (https://github.com/Iridescens/ExtraSystemReloaded/releases/latest)
Thanks to Originem (http://fractalsoftworks.com/forum/index.php?action=profile;u=5117) for the original mod Extra System (http://fractalsoftworks.com/forum/index.php?topic=10578.0) and permission to continue his work!
Refactored and updated to 0.95a by presidentmattdamon (https://fractalsoftworks.com/forum/index.php?action=profile;u=15613) - Dude, you are awesome!
Special thanks to @Gryan on Discord for playtesting 0.95a version.
Requires LazyLib (https://fractalsoftworks.com/forum/index.php?topic=5444.0), Console Commands (https://fractalsoftworks.com/forum/index.php?topic=4106.0)
Supports Version Checker (http://fractalsoftworks.com/forum/index.php?topic=8181.0)
*****************
enableAIUpgrades may be reworked/reintroduced in upcoming releases. Hopefully Alex fixed that addIconFor bug.
*****************
+Added esr_getNearbyFleets to console commands for debugging and savefile fixing.
2 console commands (esr_) for debugging. Now disabling/enabling upgrades costs (both 'stats' and 'quality' simultaneously)
See how much your upgrades are affecting your ship with perma-hullmod with dynamic tooltips! Yeah, like in Sundog's Starship Legends (https://fractalsoftworks.com/forum/index.php?topic=15321)
Ship's quality can be upgraded! Seek markets with better industries for a bigger bang for your cred
Upgrades available on non-hostile market where you able to repair
WARNING! Having your upgraded ship disabled in battle will strip ALL buffs from it! You've been warned. (Now configurable!)
Upgrade your ships using basic resources like metals, volatiles, organics and heavy weaponry! Improve the quality of upgrades through the power of sheer credits, and pour millions into your favorite ship!
Added scaling settings for every single upgraded stat, and the diminishing returns curves!
Now with diminishing returns, a quality cap, and exploration rewards. Get special items from salvaging research stations that don't affect drops of existing industry items, and install one on your ship for a drastic change!
DroneLib is not required, but adds extra functionality to certain augments.
Each ship has a somewhat-random quality ranging 0.5~1.5 based on it's in-game ID. Quality decides the cost and the degree of upgrades.
+You can toggle "RNG" in settings and adjust base quality if toggled off.
Upgrade has about 40% (configurable) chance of success at the minimum.
+You can turn off failures in settings.json in data\config
+baseFailureMinFactor is now there to lessen your losses.
---Mechanics---
The efficiency step of upgrades are:
Frigate:10% Destroyer:6.66% Cruiser:5% Capital Ship:4%
With a total of steps (configurable!):
Frigate:10 Destroyer:15 Cruiser:20 Capital Ship:25
Which means that all sizes will receive full (or a little bit more) bonus mentioned below.
+You can control how many resources you wish to spend with dividingRatio parameter (higher is cheaper).
+upgradeCostMaxFactor and upgradeCostMinFactor (the latter will have much more impact on the cost to upgrade)
Coming next:
-To be populated
All sources can be found at ExtraSystemReloaded Github (https://github.com/Iridescens/ExtraSystemReloaded)
Changelog
[0.8.8] fixed nullpointer in hacked missile forge
[0.8.7] actually fixed spooled feeders this time
[0.8.6] fixed spooled feeders.
[0.8.5]
added Alpha Subcore augment which reduces OP costs
fixed modules not getting upgrades
fixed page pickers being broken
[0.8.3] augment item descriptions
-augments/upgrades no longer duplicate. i tested it this time.
-nerfed durability EMP resist
-nerfed hangarforge (everything)
-fixed plasma flux catalyst not decreasing CR (still broken in refit until switching to/from another ship)
-augment items now have their tooltip displayed in item
hotfix:
-committed the upgraded version
[0.8.2] augment item descriptions
-augments/upgrades no longer duplicate. i tested it this time.
-nerfed durability EMP resist
-nerfed hangarforge (everything)
-fixed plasma flux catalyst not decreasing CR (still broken in refit until switching to/from another ship)
-augment items now have their tooltip displayed in item description
[0.8.1] fixed a couple of bugs
-weapon flux cost in Weapons was positive
-shield upkeep in Technology was not displaying correct tooltip value
-magazine reload speed in Magazines now displays to two decimal points
-quality dialog repurchase now has highlighted quality text
-buffed magazine reload speed
-buffed fighter replacement time and replacement rate buffs
-nerfed technology shield flux/dam again
[0.8.0] Breaks saves.
DroneLib is not required, but adds additional functionality to certain augments.
OP cost augments replaced with more creative alternatives.
-- Spooled Feeders now has a toggleable omni-feeder subsystem if dronelib is installed. otherwise, it gives a firerate buff when a weapon is manually fired at an enemy.
-- Plasma Flux Grid now doubles vents and capacitor effectiveness, and reduces CR if more than half of the maximum is installed.
-- Fusion Missile Ignitor was renamed to the Drive Flux Vent. It increases vent speed by 30%, and gives a boost to forward momentum while venting and for a short time afterwards.
-- Phasefield Engine actually spawns now.
Credits costs in dialog updated to have comma separation.
Credit costs for upgrades are now correct.
Some upgrades are changed:
-- Magazines upgrade now buffs weapon rate of fire.
-- Weapons upgrade now buffs weapon flux cost reduction.
-- Hardcapped Technology shield flux/dam and phase upkeep to 90% reductions.
[0.7.8] OP cost augments no longer buggy, and upgrades work in simulations! you can uninstall augments now (but it destroys them)! new phasefield engine augment!
also fixes a bunch of bugs related to module ships, which a recent notable mod tends to have a lot of. note that child modules will not show their parent upgrades, but will still inherit their effects.
[0.7.6] Minor adjustments to github-actions
0.7.5 removed code that applied upgrades to every ship. ships no longer show upgrades in simulator.
0.7.4 minor refactors
upgrades work in simulations now
0.7.3 now definitely renamed Modules to Augments - minor fixes
0.7.2 renamed Modules to Augments NOT SAVE COMPATIBLE
this is probably the only non-savecompatible release for a while.
0.7.1: Diminishing returns curves have been completely reworked. The quality setting in the configuration will now actually do something!
For the most part, each upgrade will get around half of its full power from quality. There are a few exceptions, where quality is a straight-up multiplier, or not as effective at all.
Normalized final stat percent of upgrades to end with 0 or 5.
Credits purchasing actually costs credits now (wow!)
Range upgrade nerfed (again!)
Armor upgrade nerfed (for the first and probably last time!)
0.7.0: fixed upgrade scaling being way, way too high.
0.6.3: can buy upgrades with credits. the cost scales exponentially higher for each level of upgrade, which eventually dwarfs the price of going to get the resources yourself.
add config options for max levels per hullsize. the scaling buffs that each upgrade gives is based on the ship class that has the least (frigate by default has 10 and gets no scaling, while capitals have 25 levels and get a debuff of 0.4). what this means is that each ship class will, at max level (and at common denominators), have equal buffs no matter what you set the config to.
add config option for keeping levels on ship death.
nerfed magazines reload speed by a factor of 4 (1 before is now 0.25)
plasma flux catalyst and spooled feeders now increase flux costs of the opposite weapon type rather than increasing OP costs, which did not work
0.6.2 hotfix: Fixes an issue where player fleet could be null when loading a save.
0.6.1 hotfix: fixes Technology tooltips not upgrading, and Technology upgrades not applying modifiers correctly
0.6.0 heavy refactor and remaster of everything
added ship modules you can find from salvaging anything that has a nanoforge/some AI cores (not fleets)
** you can install a single one of these on any ship for a unique effect
** these drops do not affect existing drops of nanoforges and are generated procedurally based on the seed of the sector
put diminishing returns on most combat upgrades
added Magazines and Subsystems upgrades
removed Ordnance upgrade (not possible any more)
use ship picker dialog plugin API in Starsector GUI to pick ships
improved save compability!
thank you sooooo much! was actually waiting for this!
edit : i just had a crash i think its from this mod....
Spoiler
3762613 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.campaign.Es_ShipLevelFleetData.advance(Es_ShipLevelFleetData.java:168)
at com.fs.starfarer.campaign.BuffManager.advance(Unknown Source)
at com.fs.starfarer.api.impl.campaign.FleetEncounterContext.prepareShipForRecovery(FleetEncounterContext.java:1574)
at com.fs.starfarer.api.impl.campaign.FleetEncounterContext.getRecoverableShips(FleetEncounterContext.java:1421)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.winningPath(FleetInteractionDialogPluginImpl.java:1866)
at exerelin.campaign.battle.NexFleetInteractionDialogPluginImpl.winningPath(NexFleetInteractionDialogPluginImpl.java:299)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.goToEncount erEndPath(FleetInteractionDialogPluginImpl.java:1699)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.optionSelec ted(FleetInteractionDialogPluginImpl.java:1449)
at com.fs.starfarer.ui.newui.U$1.super(Unknown Source)
at com.fs.starfarer.ui.newui.oOOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.OoO0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.?0000(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.V.super(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)
Sorry, i should done it in the first place.
Spoiler
2061018 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.campaign.Es_ShipLevelFleetData.advance(Es_ShipLevelFleetData.java:168)
at com.fs.starfarer.campaign.BuffManager.advance(Unknown Source)
at com.fs.starfarer.api.impl.campaign.FleetEncounterContext.prepareShipForRecovery(FleetEncounterContext.java:1574)
at com.fs.starfarer.api.impl.campaign.FleetEncounterContext.getRecoverableShips(FleetEncounterContext.java:1421)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.winningPath(FleetInteractionDialogPluginImpl.java:1866)
at exerelin.campaign.battle.NexFleetInteractionDialogPluginImpl.winningPath(NexFleetInteractionDialogPluginImpl.java:299)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.goToEncount erEndPath(FleetInteractionDialogPluginImpl.java:1699)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.optionSelec ted(FleetInteractionDialogPluginImpl.java:1449)
at com.fs.starfarer.ui.newui.U$1.super(Unknown Source)
at com.fs.starfarer.ui.newui.oOOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.OoO0.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.?00000(Unknown Source)
at com.fs.starfarer.ui.oooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.processInput(Unknown Source)
at com.fs.starfarer.ui.V.super(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)
I put the Ordnance Point line in there, but Netbeans/IntelliJ can't find symbol/recognize it. Can you please help me to fix this issue?
member.getStats().getShipOrdnancePointBonus().modifyPercent(Es_LEVEL_FUNCTION_ID, hullSizeFactor*level*1.5f);
Output message error:
warning: [options] bootstrap class path not set in conjunction with -source 7
warning: [options] source value 7 is obsolete and will be removed in a future release
warning: [options] target value 7 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
C:\Program Files (x86)\Fractal Softworks\Starsector\mods\ExtraSystemReloaded\jars\src\data\scripts\campaign\Es_ShipLevelFleetData.java:129: error: cannot find symbol
member.getStats().getShipOrdnancePointBonus().modifyPercent(Es_LEVEL_FUNCTION_ID, hullSizeFactor*level*1.5f);
symbol: method getShipOrdnancePointBonus()
location: interface MutableShipStatsAPI
1 error
4 warnings
BUILD FAILED (total time: 1 second)
Thanks a lot!
Hi again,
I added the line that expands the ship's cargo and fuel. These lines work, but the game somehow cannot register/recognize these changes. Can you please tell me why it happens?
member.getStats().getFuelMod().modifyPercent(Es_LEVEL_FUNCTION_ID, hullSizeFactor*level*0.25f);
member.getStats().getCargoMod().modifyPercent(Es_LEVEL_FUNCTION_ID, hullSizeFactor*level*0.25f);
Got this in 0.4.3. Brand new game, went to the colony nearest me, and soon as I left, got this.
1130636 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at extrasystemreloaded.hullmods.ExtraSystemHM.applyEffectsBeforeShipCreation(ExtraSystemHM.java:31)
at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source)
at extrasystemreloaded.campaign.Es_ShipLevelFleetData.apply(Es_ShipLevelFleetData.java:133)
at com.fs.starfarer.campaign.BuffManager.applyBuffs(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.getCargo(Unknown Source)
at com.fs.starfarer.campaign.fleet.CampaignFleet.getCargo(Unknown Source)
at com.fs.starfarer.campaign.fleet.CampaignFleet.advance(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.StarSystem.advance(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Hello OP, I tried the new jar, and whilst it solved the crash I had with the previous version (same as the one above), a new crash occurred after a couple of minutes of gameplay :-(
259957 [Thread-4] ERROR ruthless_sector.ModPlugin - null
extrasystemreloaded.campaign.Es_ShipLevelFleetData.apply(Es_ShipLevelFleetData.java:108)
com.fs.starfarer.campaign.BuffManager.applyBuffs(Unknown Source)
com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
com.fs.starfarer.api.impl.campaign.fleets.DefaultFleetInflater.inflate(DefaultFleetInflater.java:431)
com.fs.starfarer.campaign.fleet.CampaignFleet.inflateIfNeeded(Unknown Source)
ruthless_sector.CampaignScript.advance(CampaignScript.java:65)
com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
com.fs.starfarer.BaseGameState.traverse(Unknown Source)
com.fs.state.AppDriver.begin(Unknown Source)
com.fs.starfarer.combat.CombatMain.main(Unknown Source)
com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
Patrol fleet intercepted me for a scan after some black market sales and ship upgrades on a planet, CTD when they reached me only a few seconds after I exited the market.
java.lang.NullPointerException
at extrasystemreloaded.campaign.Es_ShipLevelFleetData.apply(Es_ShipLevelFleetData.java:108)
at com.fs.starfarer.campaign.BuffManager.applyBuffs(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
at com.fs.starfarer.api.impl.campaign.fleets.DefaultFleetInflater.inflate(DefaultFleetInflater.java:431)
at com.fs.starfarer.campaign.fleet.CampaignFleet.inflateIfNeeded(Unknown Source)
at exerelin.campaign.battle.NexFleetInteractionDialogPluginImpl.pullInNearbyFleets(NexFleetInteractionDialogPluginImpl.java:536)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.init(FleetInteractionDialogPluginImpl.java:285)
at exerelin.campaign.battle.NexFleetInteractionDialogPluginImpl.init(NexFleetInteractionDialogPluginImpl.java:338)
at com.fs.starfarer.ui.newui.Objectsuper.Õô0000(Unknown Source)
at com.fs.starfarer.ui.newui.Objectsuper.<init>(Unknown Source)
at com.fs.starfarer.ui.newui.Objectsuper.<init>(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.startEncounterInvolvingPlayerFleet(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.StarSystem.advance(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I have bad news, Iridescens. I downloaded version 0.5.0, and when I'm getting near the orbital station (preferably Prism Freeport from another mod), I get this crash:
java.lang.RuntimeException: Hullmod es_shiplevelHM6 not found!
at com.fs.starfarer.loading.specs.HullVariantSpec.getAllMods(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source)
at extrasystemreloaded.campaign.Es_ShipLevelFleetData.apply(Es_ShipLevelFleetData.java:140)
at com.fs.starfarer.campaign.BuffManager.applyBuffs(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.syncIfNeeded(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetData.getCargo(Unknown Source)
at com.fs.starfarer.campaign.fleet.CampaignFleet.getCargo(Unknown Source)
at com.fs.starfarer.campaign.fleet.CampaignFleet.advance(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.StarSystem.advance(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Apparently it can't find hullmod es_shiplevelHM6, and your .csv contains only hullmods up to HM5, so I guess Sparrowhawk from Dassault-Mikoyan Engineering mod was too powerful a ship?
Still getting NPE error at the start of the game with AI upgrade on. Takes a couple of in game days for NPE. Version 0.5.1 with AI upgrade on. The game works fine if I turn AI upgrade off.
342192 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.ui.A.new.super(Unknown Source)
at com.fs.starfarer.ui.A.new.<init>(Unknown Source)
at com.fs.starfarer.campaign.ui.String.<init>(Unknown Source)
at com.fs.starfarer.ui.P.super(Unknown Source)
at com.fs.starfarer.campaign.ui.oOOo.addIconFor(Unknown Source)
at com.fs.starfarer.campaign.ui.oOOo.<init>(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2$9.public.float(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2$9.beforeShown(Unknown Source)
at com.fs.starfarer.campaign.C.o00000(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I player with this mod and Archean Order, and got some random crashes, not sure if it just bug or incompatibility between these two mods, but here two crashlogs which I got, they appear randomly during campaign, and both AO and ESR was older versions (because they both isn't save compatible with never versions), AO 1.4.0.2 and ESR 0.7.1.
Spoiler
5226396 [Thread-3]
ERROR com.fs.starfarer.combat.CombatMain - java.lang.ArrayIndexOutOfBoundsException: 4
java.lang.ArrayIndexOutOfBoundsException: 4
at com.fs.starfarer.campaign.fleet.FleetMemberStatus$ShipStatus.applyDamage(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMemberStatus.applyDamage(Unknown Source)
at com.fs.starfarer.api.util.Misc.applyDamage(Misc.java:5028)
at com.fs.starfarer.api.impl.campaign.terrain.AsteroidImpact.<init>(AsteroidImpact.java:67)
at com.fs.starfarer.api.impl.campaign.terrain.AsteroidBeltTerrainPlugin.applyEffec t(AsteroidBeltTerrainPlugin.java:185)
at com.fs.starfarer.api.impl.campaign.terrain.BaseTerrain.advance(BaseTerrain.java:85)
at com.fs.starfarer.api.impl.campaign.terrain.AsteroidBeltTerrainPlugin.advance(AsteroidBeltTerrainPlugin.java:100)
at com.fs.starfarer.api.impl.campaign.terrain.AsteroidFieldTerrainPlugin.advance(AsteroidFieldTerrainPlugin.java:110)
at com.fs.starfarer.campaign.CampaignTerrain.advance(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.StarSystem.advance(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
And older one:
2156034 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain - java.lang.ArrayIndexOutOfBoundsException: 4
java.lang.ArrayIndexOutOfBoundsException: 4
at com.fs.starfarer.campaign.fleet.FleetMemberStatus$ShipStatus.applyDamage(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMemberStatus.applyDamage(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMemberStatus.applyDamage(Unknown Source)
at com.fs.starfarer.api.impl.campaign.terrain.HyperspaceTerrainPlugin.applyStormSt rikes(HyperspaceTerrainPlugin.java:1256)
at com.fs.starfarer.api.impl.campaign.terrain.HyperspaceTerrainPlugin.applyEffect(HyperspaceTerrainPlugin.java:1162)
at com.fs.starfarer.api.impl.campaign.terrain.BaseTerrain.advance(BaseTerrain.java:85)
at com.fs.starfarer.api.impl.campaign.terrain.BaseTiledTerrain.advance(BaseTiledTerrain.java:454)
at com.fs.starfarer.api.impl.campaign.terrain.HyperspaceTerrainPlugin.advance(HyperspaceTerrainPlugin.java:582)
at com.fs.starfarer.campaign.CampaignTerrain.advance(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.advance(Unknown Source)
at com.fs.starfarer.campaign.Hyperspace.advance(Unknown Source)
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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Also about mod ideas, there already musch more room to customisation, but how about to move from code into settings.json scalars and multipliers too?
Also I think another good idea is Augment only upgrade, and give some unique augments for this mode which have same bonuses from non-augment upgrades, like Logistic, Durability and such.
I get a crash if I select a module to refit after upgrading the ship.
Spoiler
1847204 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at extrasystemreloaded.hullmods.ExtraSystemHM.advanceInCombat(ExtraSystemHM.java:71)
at com.fs.starfarer.combat.entities.Ship.advance(Unknown Source)
at com.fs.starfarer.coreui.refit.A.?00000(Unknown Source)
at com.fs.starfarer.coreui.refit.A.setFleetMember(Unknown Source)
at com.fs.starfarer.coreui.refit.O0Oo.setFleetMember(Unknown Source)
at com.fs.starfarer.coreui.refit.F.dialogDismissed(Unknown Source)
at com.fs.starfarer.coreui.refit.F.showMember(Unknown Source)
at com.fs.starfarer.coreui.refit.A.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.newnew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.coreui.refit.A.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.coreui.refit.A.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.coreui.refit.F.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.class.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.Oo0O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.K.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.Oo0O.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.Stringsuper.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(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)
Getting a null CTD when I click on a ship that has a Plasma Flux Catalyst in the fleet screen to move it in my fleet
124768 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at extrasystemreloaded.augments.impl.PlasmaFluxCatalyst.applyAugmentToShip(PlasmaFluxCatalyst.java:94)
at extrasystemreloaded.hullmods.ExtraSystemHM.applyEffectsAfterShipCreation(ExtraSystemHM.java:169)
at com.fs.starfarer.loading.specs.intsuper.super(Unknown Source)
at com.fs.starfarer.title.Object.M.o00000(Unknown Source)
at com.fs.starfarer.title.Object.M.render(Unknown Source)
at com.fs.starfarer.coreui.OO0o.super(Unknown Source)
at com.fs.starfarer.ui.newnew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.campaign.ui.fleet.FleetMemberView.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.coreui._.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.coreui.dosuper.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.coreui.V.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.class.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Oo0O.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.K.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.render(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)
Can I have your authorization to translate this mod into Chinese language and upload it to China Starsector forum?
yeah you can, might be difficult since i moved a lot of the strings to code. there's a more up-to-date version on the github master branch
i can put some time into it later today to move a lot of the strings to outside files that are more easily translatable
That would be very nice, cause I've tried to translate most java files outside "jar" folders, and only a very very small part of the translated text showed up in game, while others didn't work, and then I opened up "extrasystemcore" jar file, and I found out that there are exact same files/structures with almost the same original texts, so I was confused about which file really influence the texts showed in game. :-[
hello, i've updated the mod to v1.0.0 with every string in the mod being translatable. https://github.com/Iridescens/ExtraSystemReloaded/releases/download/v1.0.0/ExtraSystemReloaded-master-v1.0.0.zip
firstly, you can't rename any of the top-level object strings (which are the ones like "ResourceName":{ with the brackets after) because it is used to help the mod find the string.
the second-level strings are the ones you can feel free to translate
an example:
"longDescription": "*${augmentName}*: Increases vent speed by *${ventBonus}%%*. If venting is started while flux is *above ${speedThreshold}%%*, forward speed is increased by *${speedBonus}* while venting and for *${speedBonusTime} seconds* afterwards.",
this text is from the DriveFluxVent object. you can't change the "longDescription": part either, or any part with a colon after it, because it is used to let the mod find the string.
the part you can change is this:
"*${augmentName}*: Increases vent speed by *${ventBonus}%%*. If venting is started while flux is *above ${speedThreshold}%%*, forward speed is increased by *${speedBonus}* while venting and for *${speedBonusTime} seconds* afterwards."
any part in ${...} is filled in by the mod with the appropriate text. for example, in english ${augmentName} would be filled in with Drive Flux Vent, and ${ventBonus} would be filled in with 50, which is the default value for the venting bonus offered by the Drive Flux Vent augment.
any part surrounded by asterisks (*) will be highlighted in the tooltip.
i've underlined all of the parts that you can change. note that you can actually move around the parts in ${..}s to modify the resulting string, but you should make sure that they still exist in the resulting string.
"*${augmentName}*: Increases vent speed by *${ventBonus}%%*. If venting is started while flux is *above ${speedThreshold}%%*, forward speed is increased by *${speedBonus}* while venting and for *${speedBonusTime} seconds* afterwards."