There is a certain process to how faction data is save
Firstly you have SavedWorldData, this contains all the factions and has methods to add, remove, get, create factions, as well as adding removing players, there is a few more functionalities that allow you to get a faction with a certain player, sim, ,or UUID
This Also controls when data from the factions are written to disk, when adding, removing a faction or player it uses the SetDirty() method which marks the data to be saved to disk, because we only ever modify the data from within the faction class this is never called, causing changes to the faction to not be saved
effects
this causes when sims get removed or data changed, that data change does not get changed causes a lot of issue such as
ghost sims that do not exist because they are dead,
Houses that have been removed or added not existing even if they are empty
unloaded sims not being marked as unloaded causing issues with getting their data
probably affecting the AI's After load Such as in #120
There is a certain process to how faction data is save
effects
this causes when sims get removed or data changed, that data change does not get changed causes a lot of issue such as