A couple of people had this NPE when colonizing a planet, after confirming the planet name. Not the same planet between the two games; other planets in the respective save games work fine.
Is this from the player faction being set to null somehow?
[Thread-2] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.campaign.Faction.getBrightUIColor()" because the return value of "com.fs.starfarer.rpg.Person.getFaction()" is null
java.lang.NullPointerException: Cannot invoke "com.fs.starfarer.campaign.Faction.getBrightUIColor()" because the return value of "com.fs.starfarer.rpg.Person.getFaction()" is null
at com.fs.starfarer.coreui.OOoo.sizeChanged(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.L.set(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.m.o00000(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.o0O0.advanceImpl(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.thissuper.advance(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.o000.advanceImpl(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.campaign.ui.marketinfo.OO00.advanceImpl(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.thissuper.advance(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.ui.o000.advanceImpl(Unknown Source) ~[port_obf.jar:?]
at com.fs.starfarer.campaign.ui.marketinfo.intsuper.advanceImpl(Unknown Source) ~[port_obf.jar:?]
Thank you for posting this one, it's the only indexed result on google and the responses attached helped me debug my own save file.
Exploring my own save file: (Starsector/saves/.../campaign.xml):
The Person.Getfaction() null in my case turned out to be related to the planet condition:
<MCon z="2326" i="rat_rampant_military_core" u="b5afb4df-401b-4c5d-b918-70bd6c512d9d" s="false"> (Random Assortment of Things addon).
which is a condition that is HIDDEN and DISABLED on the planet, but still generates a lot of code related to a military_core_person (administrator) that does not seem to exist, i.e.:
<st>$rat_military_core_person</st>
<Person z="2262" id="p_f9cc0cba-d2af-4251-802e-6f6e5e813439" pid="steady" spr="graphics/portraits/cores/rat_military_core.png" pst="administrator" wTCRC="0" cW="1.0" fid="neutral" a="true" im="MEDIUM">
<n z="2263" f="Military Core" l="" g="ANY"></n>
The problem here being the strange id="" field: i.e,
id="p_f9cc0cba-d2af-4251-802e-6f6e5e813439"compared to a world that has this same military core condition, but was generated with s="true":
id="p_545f5"Testing this theory, going around and colonizing any planet with this same <Mcon... s="false"> line crashed my game with this NullPointerException, while planets with <s="true"> (which actually showed the military core condition), colonized successfully.
My solution here was to enable this Mcon on the planet in question and to steal the <Person id=""...> line from a working planet with the same condition.
Result: Success! my game works again!
And yes, I am using the updated java addon, so it seems likely an issue with how java 20-something handles long strings in the ID field. Or something like that. Maybe.