Simulator Overhaul
Download version 1.4 (https://bitbucket.org/LazyWizard/simulator-overhaul/downloads/Simulator%20Overhaul%201.4.zip) (mirror (http://www.mediafire.com/file/afgajpyrvmcza00/Simulator_Overhaul_1.4.zip)) - requires LazyLib (http://fractalsoftworks.com/forum/index.php?topic=5444.0)
View source and progress on BitBucket (https://github.com/LazyWizard/simulator-overhaul)
Supports Version Checker (http://fractalsoftworks.com/forum/index.php?topic=8181)
Simulator opponent unlocking is disabled when playing with DynaSector due to that mod's randomized variants. All other features are still enabled, however.
This is a simple mod that changes the behavior of the refit simulator. With this mod installed, only ships you've personally fought against or alongside will be present in the campaign simulator, and simulation reserves are infinitely replenished for both sides in all simulator battles.
In addition, this mod provides several optional plugins that you can toggle in data/config/simulator/sim_settings.json, such as healing/restocking the player ship when all sim opponents are defeated, periodically deleting old hulks from the battle map, infinite CR for the player's ships and more.
Only stock variants will be added to the campaign simulator, and you must actively participate in a fight with them to unlock them. Merely having ships in a fleet doesn't give the simulator any useful combat data to work with. Gotta catch 'em all!
Please let me know if you find any bugs. :)
Changelog:
Spoiler
1.4 (June 21, 2017)
=====================
Blocked simlist opponents changed from unboardable ships to ones hidden in codex
Adjusted hulk cleaner plugin:
- Hulks are directly removed from the battle map instead of destroyed
- Ship pieces are cleaned up properly now
Added "includeHiddenInCodex" setting:
- Disabled by default, this setting will allow ships such as [REDACTED] to
be unlocked for simulator battles
Added "includeStations" setting:
- Disabled by default, allows stations to be unlocked for simulator battles
- Requires "includeHiddenInCodex" to be enabled
Default opponent CR bumped up to 70% (was 60%)
1.3 (June 06, 2017)
=====================
Updated to be compatible with Starsector 0.8.1a
Fighter wings are no longer supported:
- Renamed "id" column of starting_sim_opponents.csv to "variant id"; all mods
that include this file should change this (and also remove any wings)
Starting unlocked sim opponents changed to a Hound (P) and Kite (P)
Civilian ships are sorted at the end of their respective hull size categories
1.2c (March 16, 2017)
=======================
Switched version file hosting to Bitbucket
1.2b (April 28, 2016)
=======================
Compatibility patch for DynaSector
Added AllSimOpponents console command, unlocks all possible simulator opponents
1.2 (November 19, 2015)
=========================
Updated to be compatible with Starsector 0.7a
Combined unlocked ships and wings into one notification (less spammy)
Fixed issues with reserves not regenerating after using F8 in devmode
Changes to SimMaster:
- Added getDefaultOpponents(), returns starting sim list
- Added resetSimList(), resets list to only include default opponents
1.1b (October 23, 2015)
=========================
Fixed missing variant crash after using F8 in devmode
- Ships will still be missing from the list after using F8, just doesn't crash
1.1 (October 03, 2015)
========================
Rewrite of reserve respawning logic to be much more efficient
Unexported custom variants in player's fleet now respawn properly
Hulls are sorted at the very end of the sim opponent list
Moved configuration files to data/config/simulator
Added "cleanUpHulks" setting, deletes hulks in sim after 30 seconds if true
Added "infiniteCR" setting, gives ships in sim infinite combat readiness if true
Added "healOnVictory" setting, restores player ship when all enemies are dead
Added "includeHulls" setting, adds all known hulls to sim opponent list if true
Added "useVanillaSimListWithStarsector+" setting, defaults to true
Added starting_sim_opponents.csv:
- Allows other mods to add ships/wings to the starting sim list without having
to be unlocked by fighting them first
- Does nothing if Starsector+ is activated as unlocking is disabled with that
mod active
1.0c (November 11, 2014)
==========================
Re-enabled infinite reserves and sorted opponent lists for Starsector+
(ship unlocking is still disabled when playing SS+ due to its random variants)
1.0b (November 11, 2014)
==========================
Fix for crash when you allow your second in command to fight a battle
Use sim_opponents.csv and vanilla behavior when Starsector+ is installed
1.0 (November 11, 2014)
=========================
Renamed mod to Simulator Overhaul (was All Ships in Refit Battles)
Mod now requires LazyLib to function
Changes since alpha:
- Added config file sim_settings.json, can customize how the mod works here
- Newly unlocked campaign sim opponents will be announced after battle is over
- Full opponent list appears at the start of a simulation (you don't need to
close and reopen the opponents list for all known ships to show up)
- Allied reserves are infinitely respawnable in campaign simulations
(known bug: replacement allies don't benefit from fleet-wide skill effects)
(known bug: replacement allies have 60% CR regardless of original value)
- Mission simulation reserves now infinite, sorted, uses sim_opponents.csv
- Changed how persistent data is handled (will automatically import old data)
- Minor optimizations and code cleanup
Version 1.0 is up (and with a name change), get it here (http://www.mediafire.com/download/ubtce2dnbvrsbw1/Simulator_Overhaul_1.0.zip) (mirror (https://bitbucket.org/LazyWizard/simulator-overhaul/downloads/Simulator%20Overhaul%201.0.zip)). This mod now requires LazyLib (http://fractalsoftworks.com/forum/index.php?topic=5444.0) to function. It is backwards compatible with the old All Ships in Refit Battles alpha.
Spoiler
(http://i.imgur.com/xJrjuni.png)
If you bounced off of the old mod, I'd recommend trying it one more time. Changes in .65.1a made it possible for this mod to integrate virtually seamlessly with vanilla.
Changelog:
1.0 (November 11, 2014)
=========================
Renamed mod to Simulator Overhaul (was All Ships in Refit Battles)
Mod now requires LazyLib to function
Changes since alpha:
- Added config file sim_settings.json, can customize how the mod works here
- Newly unlocked campaign sim opponents will be announced after battle is over
- Full opponent list appears at the start of a simulation (you don't need to
close and reopen the opponents list for all known ships to show up)
- Allied reserves are infinitely respawnable in campaign simulations
(known bug: replacement allies don't benefit from fleet-wide skill effects)
(known bug: replacement allies have 60% CR regardless of original value)
- Mission simulation reserves now infinite, sorted, uses sim_opponents.csv
- Changed how persistent data is handled (will automatically import old data)
- Minor optimizations and code cleanup
Hmm, got a crash.
After a battle:
Maintain contact with the enemy
Pursue them
Order your second-in-command to handle it
And game crashes after clicking Ok.
Spoiler
215241 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - Checking whether to spawn trade fleet
215242 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - 91 out of a maximum 100 trade fleets in play
215242 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - Picked market [Citadel Arcadia] to spawn trade fleet from
215242 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - Will send trade fleet to market [Agreus]
215242 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - Delivering: [Hand Weapons], bringing back [Supplies,Crew,Heavy Machinery,Food]; volume: 2731
215243 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.FleetFactory - Creating smuggling fleet of tier 1 for market [Citadel Arcadia] (volume: 2731)
215244 [Thread-5] INFO com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetManager - Spawned 5 point trade fleet from [Citadel Arcadia] to [Agreus]
218888 [Thread-5] INFO com.fs.starfarer.combat.CombatEngine - FP1: 15, FP2: 78, maxFP1: 160, maxFP2: 240
443146 [Thread-5] ERROR com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO - java.lang.NullPointerException
java.lang.NullPointerException
at org.lazywizard.newsim.SimCampaignEventListener.reportPlayerEngagement(SimCampaignEventListener.java:64)
at com.fs.starfarer.campaign.CampaignEngine.reportPlayerEngagement(Unknown Source)
at com.fs.starfarer.api.impl.campaign.FleetEncounterContext.processEngagementResul ts(FleetEncounterContext.java:104)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.backFromEng agement(FleetInteractionDialogPluginImpl.java:157)
at com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl$1.pickedFleetMembers(FleetInteractionDialogPluginImpl.java:590)
at com.fs.starfarer.ui.String.oo0O.advance(Unknown Source)
at com.fs.starfarer.ui.s.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.oO0O.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.String.P.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.Q.advance(Unknown Source)
at com.fs.starfarer.ui.s.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.Q.advance(Unknown Source)
at com.fs.starfarer.campaign.C.super(Unknown Source)
at com.fs.starfarer.B.void.class$super(Unknown Source)
at com.fs.A.oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOO.Ò00000(Unknown Source)
at com.fs.starfarer.combat.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.super(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Mods: This one, LazyLib, Console Commands
Whenever I use F8 with this mod, exit the simulator, and try to go back into the simulator this error comes up:
Spoiler
31296 [Thread-5] ERROR com.fs.starfarer.combat.D - java.lang.RuntimeException: Ship hull variant [eagle_d_Hull] not found!
java.lang.RuntimeException: Ship hull variant [eagle_d_Hull] not found!
at com.fs.starfarer.loading.P.o00000(Unknown Source)
at com.fs.starfarer.loading.SpecStore.o00000(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.void.super$String(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.super(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.<init>(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.<init>(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.createFleetMember(Unknown Source)
at org.lazywizard.newsim.SimCombatPlugin.createFleetMember(SimCombatPlugin.java:65)
at org.lazywizard.newsim.SimCombatPlugin.checkReserves(SimCombatPlugin.java:175)
at org.lazywizard.newsim.SimCombatPlugin.generateReserveLists(SimCombatPlugin.java:143)
at org.lazywizard.newsim.SimCombatPlugin.init(SimCombatPlugin.java:275)
at com.fs.starfarer.title.ooOO.K$Oo.o00000(Unknown Source)
at com.fs.starfarer.combat.super.new.ô00000(Unknown Source)
at com.fs.starfarer.combat.CombatEngine.init(Unknown Source)
at com.fs.starfarer.coreui.refit.oO0O.super.String$super(Unknown Source)
at com.fs.starfarer.coreui.refit.oO0O.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.thisnew.super(Unknown Source)
at com.fs.starfarer.ui.H.processInput(Unknown Source)
at com.fs.starfarer.ui.thisnew.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.O0OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.I.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.coreui.while.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.do.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.ui.O0o0.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.O0o0.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.processInput(Unknown Source)
at com.fs.starfarer.title.OoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.super(Unknown Source)
at com.fs.starfarer.new.Òôo000(Unknown Source)
at com.fs.oOOO.oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.Ò00000(Unknown Source)
at com.fs.starfarer.combat.D.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I don't remember this happening in any other version of the mod. This error came up with only this and LazyLib 2.0b enabled.