Features:
- adds custom log messages (requires the requires
Console Commands mod)
- adds intel entries for discovered cryosleepers and salvageables (e.g. derelict probes, equipment caches, derelict stations)
- adds intel entries for all surveyed planets with unsearched ruins
- adds intel entries noting the presence of ruins for unsurveyed planets seen with orbital debris visuals (only works for planets seen while mod is active)
Also adds console commands for:
- adding vanilla-style stable points to current star system
- deleting all vanilla fleet log entries
- deleting all intel entries added by this mod
To write custom log messages, enter into the command console:
CaptainsLog [message]
This is safe[ to add to existing saves already in progress, but not safe to remove from savegames unless all Captain’s Log related intel entries (salvageable, ruins, custom log entries) have been removed.
Changelog:
0.1.6 – 2022-02-07
Bugfixes:
– Fixed crash to desktop when hiding icons on a message intel
0.1.5 – 2022-01-06
Features:
– Added intel reports noting the presence of ruins on unsurveyed planets with orbital debris visuals (PR from Jaghaimo)
– Added lay in course button and shortcuts to intel reports (PR from Jaghaimo)
– Added data/config/settings.json key captains_log_enable_automatic_logging for controlling whether automated reports are generated for salvageables and ruins.
Bugfixes:
– Inconsistent date calculation fixed
0.1.4 – 2021-04-13
Fixes:
– Nexerelin museum ships should not generate salvageable intels. Thanks to Avanitia for the report.
– Unexplored systems should not generate intel reports (fixes Seeker issue). Thanks to island and niko on Discord for their reports.
Usability improvements
– Will no longer generate the same damn instructional log entry on every new game, since the forum topic exists now
– All Captain’s Log custom messages are set important on creation.
– All Captain’s Log intel entries (ruins/salvageables/captain’s log entries) are no longer in default fleet log intel category
0.1.3 – 2021-03-30
– Fixes concurrent modification error when loading savegame with an older version of CaptainsLog
0.1.2 – 2021-03-30
– Actually include the correct .jar file this time
– Fix crash with addstablepoint (thanks to JRG for reporting)
0.1.1 – 2021-03-29
– Change the build process to actually put the `config` and `console` folders inside the data folder when making a download zip file this time
0.1.0 – 2021-03-29
– Fixed bug which caused saves to not be portable across different OSes (thanks to Alex for this)
– Temporarily removed support for deleting vanilla fleet logs that could not otherwise be removed (pending check that this logic is still needed/still all correct)
– Update to confirm 0.95a compatibility
0.0.1 – 2019-09-08
– Discord beta
29481 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain - java.lang.RuntimeException: Texture [captains_log] from category [intel] not found
java.lang.RuntimeException: Texture [captains_log] from category [intel] not found
at com.fs.starfarer.settings.StarfarerSettings.new(Unknown Source)
at com.fs.starfarer.settings.StarfarerSettings$1.getSpriteName(Unknown Source)
at CaptainsLog.campaign.intel.CustomMessageIntel.getIcon(CustomMessageIntel.java:123)
at com.fs.starfarer.campaign.comms.Object.(Unknown Source)
at com.fs.starfarer.campaign.comms.oOOO.addMessage(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.addMessage(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.IntelManager.addIntel(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.IntelManager.addIntel(Unknown Source)
at com.fs.starfarer.campaign.comms.v2.IntelManager.addIntel(Unknown Source)
at CaptainsLog.CaptainsLogModPlugin.onEnabled(CaptainsLogModPlugin.java:14)
at com.fs.starfarer.campaign.ModAndPluginData.notifyRunningWithMod(Unknown Source)
at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.menuItemSelected(Unknown Source)
at com.fs.starfarer.title.ooOO.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.int.Ò00000(Unknown Source)
at com.fs.starfarer.ui.int.processInput(Unknown Source)
at com.fs.starfarer.ui.Stringsuper.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.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Crashing for me. Either for new game or loading save.
Fixed. Zip file wasn’t packing some subfolders inside the data folder; changed it to actually do that.
0.1.1
– Change the build process to actually put the `config` and `console` folders inside the data folder when making a download zip file this time
This mod has existed on Discord for year(s), and holy cow, it’s one of the must have staples.
You can jot down notes if you found a good system for colonisation, bosses, or interesting things.
You can check if you forgot a ruin somewhere.
You can use it to auto navigate to that piece of crap weapons cache the radar told you you found but that’s completely invisible on the map.
You can write up what it was you wanted to do before passing out for the night, to have it in game when you boot it up the next time.
No more sticky notes!
It’s the best.
People of the forums, rejoice, for you have been blessed.
This mod has existed on Discord for year(s), and holy cow, it’s one of the must have staples.
You can jot down notes if you found a good system for colonisation, bosses, or interesting things.
You can check if you forgot a ruin somewhere.
You can use it to auto navigate to that piece of crap weapons cache the radar told you you found but that’s completely invisible on the map.
You can write up what it was you wanted to do before passing out for the night, to have it in game when you boot it up the next time.No more sticky notes!
It’s the best.
Aww, thanks
The internet also suggests using a different decompression program that’s able to extract partial contents from truncated zip files, which I’ve done, and the mod seems to be working fine after that… but I’d feel better if I could verify that the archive I’m working from is correct.
Do you have a checksum for your zip file? I’m getting a weird issue where it ‘decompresses’ into a .cpgz file, and a quick google on that extension suggests that this can crop up if the original zip got truncated somehow.
The internet also suggests using a different decompression program that’s able to extract partial contents from truncated zip files, which I’ve done, and the mod seems to be working fine after that… but I’d feel better if I could verify that the archive I’m working from is correct.
SHA256: 2e32dd7992d31f21d8e93f0e04dcefcf027b463ef8ef1f4d931458c9319786eb
Welp, that matches alright. Thanks!
I’ll have a look at why the archiver might be producing truncated zip files; let me know if you’re still getting this .cgpz issue next version.
Yup, gotta reinstall than gem.
Code
0706 [Thread-3] ERROR com.fs.starfarer.campaign.save.CampaignGameManager -
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : com.fs.starfarer.loading.T
class : CaptainsLog.campaign.intel.RuinsIntel
required-type : CaptainsLog.campaign.intel.RuinsIntel
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 315069
class[1] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2] : com.fs.util.container.repo.ObjectRepository
class[3] : com.fs.starfarer.campaign.comms.v2.IntelManager
class[4] : com.fs.starfarer.campaign.CampaignEngine
converter-type[2] : com.fs.starfarer.campaign.save.I
version : not available
-------------------------------
com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : com.fs.starfarer.loading.T
class : CaptainsLog.campaign.intel.RuinsIntel
required-type : CaptainsLog.campaign.intel.RuinsIntel
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
line number : 315069
class[1] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2] : com.fs.util.container.repo.ObjectRepository
class[3] : com.fs.starfarer.campaign.comms.v2.IntelManager
class[4] : com.fs.starfarer.campaign.CampaignEngine
converter-type[2] : com.fs.starfarer.campaign.save.I
version : not available
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:73)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:98)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:91)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:85)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:80)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:503)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:429)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:70)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1486)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1466)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1346)
at com.fs.starfarer.campaign.save.CampaignGameManager.o00000(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.N.dismiss(Unknown Source)
at com.fs.starfarer.ui.impl.K.dismiss(Unknown Source)
at com.fs.starfarer.campaign.save.LoadGameDialog.actionPerformed(Unknown Source)
at com.fs.starfarer.ui.k.buttonPressed(Unknown Source)
at com.fs.starfarer.ui.oooO.new(Unknown Source)
at com.fs.starfarer.ui.oooO.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.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: com.fs.starfarer.loading.T
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:81)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.SecurityMapper.realClass(SecurityMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:125)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:47)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:424)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:281)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
... 50 more
I get this error when loading a save after updating from 0.1.1 to 0.1.3.
Did you also upgrade Starsector to a new hotfix version at the same time? There was a save serialization issue for savegames made with 0.1.1 which makes it not portable across different versions of Starsector, which includes the hotfixes. This is fixed if you save the game with Captain’s Log 0.1.3 first.
What you need to do is install the version of Starsector you were on when you made the save, load up the game but with Captain’s Log 0.1.3, save that savegame again but with 0.1.3 (which fixes the serialization issue), at which point it should load okay and you can upgrade Starsector back up to the most recent version.
EDIT: For anyone reading, the download hyperlinks for old versions of hotfix installers have been replaced with the newest one, but the actual hosted files are still available from e.g.
https://s3.amazonaws.com/fractalsoftworks/starsector/starsector_install-0.95a-RC12.exe
But with whichever RC number you need.
This was from version 0.1.1. I haven’t tried the newest update but this is for a heads up just in case.