Autonomous Ships
Downloads (https://github.com/NightKev/autonomous-ships/releases/)
Description
This mod adds new hullmods that allow the player to set predefined battle commands for AI-piloted ships in their fleet.
e.g. The Auto retreat command hullmod will force the ship to retreat when below a certain hull integrity level.
The command hullmods cost 0 ordnance points.
Current features
- Automatically retreat
- when the ship is below a certain hull integrity level. (3 different thresholds that can be customized via config file)
- when the ship has no missile left. (The ship will only retreat if it has at least one missile weapon slot)
- when the ship has exceeded its peak performance time.
- when the ship is below a certain CR level. (60% or 40%)
- when the ship doesn't have any order to follow. (Only takes effect after the enemy has been first encountered)
- Change the personality of ships without an officer to be more or less aggressive.
Installation
Just download the mod and unpack the ZIP file into your mods folder.
Extra information
- To customize the retreat command hull integrity thresholds, edit data/config/autonomous-ships.json.
- The retreat commands won't work in the simulator nor on the flagship (the ship you're piloting) even if it's on autopilot.
- The source code is packaged with each release. There is also a repository on Github (https://github.com/NightKev/autonomous-ships) (the repo from the previous author is here (https://github.com/herve-quiroz/autonomous-ships)).
- The mod supports Version Checker (http://fractalsoftworks.com/forum/index.php?topic=8181.0).
Future plans
- Escort?
- Capture all navigation points?
- Suggestions welcome!
Credits
- HELMUT (icons)
- hqz (original author)
Version history
Spoiler
0.6.1 (https://github.com/NightKev/autonomous-ships/releases/tag/v0.6.1)- Added the "Direct Retreat" hullmod which changes the automatic retreat type (for ships with one of the retreat hullmods) from a standard defensive retreat to the "get the hell out of here" direct retreat.
0.6.0 (https://github.com/NightKev/autonomous-ships/releases/tag/v0.6.0)- Added hullmods to change the personality of a ship (ships default to Steady in vanilla). Doesn't work on ships with officers or the flagship.
0.5.1 (https://github.com/NightKev/autonomous-ships/releases/tag/v0.5.1)- Updated Version Checker support
- Fixed the bug where removing non-AS hullmods would cause the hull- and cr-related AS hullmods to also be removed.
0.5.0 (https://github.com/NightKev/autonomous-ships/releases/tag/v0.5.0)- Updated for Starsector 0.8.1a
- "Attack Fighters" command removed due to vanilla fighter changes.
- Removed LazyLib requirement for now (it was required by the now-removed fighter command).
0.4.1 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.4.1.zip)- Fixed a crash with the "attack fighter" command.
0.4.0 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.4.0.zip)- New command: retreat when the ship has no order to follow.
- New command: attack the nearest fighter wing when the ship has no other order to follow.
- Changed the icons for the hullmods, using a new set of icons from HELMUT.
0.3.1 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.3.1.zip)- Added support for Version Checker.
0.3.0 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.3.0.zip)- New command: retreat when exceeded peak performance time.
- New commands: retreat when below 40% or 60% CR.
- Changed the icons for the hullmods again, this time using the ones made by HELMUT.
0.2.0 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.2.0.zip)- New command: retreat when no missiles left.
- Changed the icons for the hullmods.
0.1.0 (http://download.trancecode.org.s3.amazonaws.com/starsector/autonomous-ships/autonomous-ships-0.1.0.zip)- Initial release.
- New commands: auto retreat below hull integrity level. (3 levels)
License
Note that the mod is licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Something consistent I have noticed with Autonomous Ship hullmods is often the mods highlighted in brackets don't work right away, often leaving it until way too late to do so.
[Retreat on severe hull damage] - Spoiler
A pretty big example, eg; When a rare ship or ship you want to keep alive doesn't retreat until 2% hull remaining, while Harpoons or whatever missile is incoming, THEN they decide to retreat. By that time it's too late for them to retreat and they promptly suffer the consequences.
[Retreat on possible malfunction] - Spoiler
Also another example, in a different instance, with ships that are prone to failures. EG; Afflictors, Shades, GMDA ships refuse to retreat until their engines die at 0% CR, in which then their defences are down or the abilities won't work
Just notifying for future notice. Although at the same time it may be on Alex's side as well. May be addressed in future patches.
I believe your mod is crashing my game sometimes when I go to refit one of my ships, because the line before it is to do with Autonomous Ships.
Spoiler
266785 [Thread-4] INFO org.tc.autonomous.AutonomousBasePlugin - Applying personality [reckless] to ship [Adramelech]
613518 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.RuntimeException: Can't create nested lists using GLListManager
java.lang.RuntimeException: Can't create nested lists using GLListManager
at com.fs.graphics.util.GLListManager.beginList(Unknown Source)
at com.fs.starfarer.combat.entities.Ship.render(Unknown Source)
at com.fs.starfarer.combat.entities.Ship.render(Unknown Source)
at com.fs.starfarer.title.ooOO.OO0O.super(Unknown Source)
at com.fs.starfarer.coreui.Oooo.super(Unknown Source)
at com.fs.starfarer.ui.j.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.e$Oo.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.ui.e.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.coreui.refit.oOoO.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.String.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Oo0O.renderImpl(Unknown Source)
at com.fs.starfarer.ui.newui.if.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.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.newui.newsuper.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.render(Unknown Source)
at com.fs.starfarer.ui.OO00.renderImpl(Unknown Source)
at com.fs.starfarer.ui.Q.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$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Currently on the latest edition, I've been finding an error. This happens on the Legion-Class Capital ship.
Spoiler
475328 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.combat.entities.ship.A.if.o00000(Unknown Source)
at com.fs.starfarer.combat.entities.ship.A.if.fireProjectile(Unknown Source)
at com.fs.starfarer.combat.entities.ship.trackers.OoOO.String.super(Unknown Source)
at com.fs.starfarer.combat.entities.ship.trackers.OoOO.super(Unknown Source)
at com.fs.starfarer.combat.entities.ship.trackers.D.super(Unknown Source)
at com.fs.starfarer.combat.entities.ship.trackers.D.super(Unknown Source)
at com.fs.starfarer.combat.entities.ship.trackers.OoOO.String(Unknown Source)
at com.fs.starfarer.combat.entities.ship.A.if.advance(Unknown Source)
at com.fs.starfarer.combat.systems.oOoO.advanceLinked(Unknown Source)
at com.fs.starfarer.combat.systems.oOoO.advance(Unknown Source)
at com.fs.starfarer.combat.entities.Ship.fire(Unknown Source)
at com.fs.starfarer.combat.entities.Ship.advance(Unknown Source)
at com.fs.starfarer.combat.CombatEngine.advanceInner(Unknown Source)
at com.fs.starfarer.combat.CombatEngine.advance(Unknown Source)
at com.fs.starfarer.combat.CombatState.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 am aware this mod hasn't ben updated in a long time or any new posts have been made, but i'm unsure of any other ways to contact aside from privately, and don't deem private messages neccesary unless actually neccesary.