MTS has all free content, all the time. Find out how YOU can help to keep it running. Tell me how...

simler90's Gameplay Systems Core Mod

by simler90 Posted 6th Sep 2021 at 11:36 AM - Updated 29th Nov 2022 at 9:21 PM by simler90
208 Comments / replies (Who?) - 8 Feedback Posts, 1 Thanks Posts
UPDATE 133: This update adds a new tunable feature that is disabled by default. If you enable it, and if Generations is installed, every inactive teen in the world who has not learned to drive will roll a chance depending on their traits to gain a skill level in driving. This allows inactive teens to have a chance at learning to drive sooner or later.
Tuning: Set InactiveTeensLearnToDrive to True to enable this featue. Set to False to revert to original EA behaviour and prevent inactive teens from learning to drive.

UPDATE 132: In an unmodded game, whenever an inactive sim wants to use a car to get to a destination, the game has a very high chance of giving the sim a vehicle. The game determines which vehicle to give the sim by checking the sim's current career level. The game can give sims either the Sloppy Jalopy or Big Lemon if their career level is low, either the Yomoshoto Evasion or Tofunda Wagon if their career level is neither low nor high, otherwise the VFN Kompensator or Margaret Vaguester if their career level is high. I don't like this, so this update changes the way this works. Now, the game first compares the sim's current career level with their retired career level if any, and if the retired career level is higher, the game uses that in its checks. Here is how it works now:
- If the sim's career level is low and celebrity level is lower than 2 and if the sim is not rich, the game can give the sim one of the following vehicles: Sloppy Jalopy, Big Lemon, Vorn P328, Wornado Triage.
- If the sim's career level is neither low nor high, and celebrity level is lower than 4, the game can give the sim one of the following vehicles: Yomoshoto Evasion, Tofunda Wagon, Wornado Triage, 4-Everything Van. In addition, if FLS is installed and either if the sim has the Vehicle Enthusiast or Rebellious trait, or if the sim's favourite music genre is Rockabilly, then the game can also give the sim the following vehicles: Heartbreak Hot Rod, Rock Town 3000. In addition, if FLS is installed and either if the sim has the Vehicle Enthusiast or Daredevil trait, then the game can also give the sim The Fitzgerald.
- Else, the game can give the sim one of the following vehicles: VFN Kompensator, Margaret Vaguester, Bwan Speedster YL. In addition, if FLS is installed, then the game can also give the sim the following vehicles: La Matea, The Empire Eidolon, Requiescence. If FLS is installed and either if the sim has the Vehicle Enthusiast trait or if the sim's favourite music genre is Rockabilly, then the game can also give the sim the Summertime Souped-Up Ride. In addition, if FLS is installed and either if the sim has the Vehicle Enthusiast or Daredevil trait, then the game can also give the sim The Velocity. If Generations is installed, and either if the sim has the Vehicle Enthusiast trait or if the sim passes a 50% chance roll, then the game can also give the sim the following vehicles: Ernatto Beratti M81 Covert Edition, Vistoso Speed Machine. If the sim has the Proper trait, then the game can give the sim the Classic Convertible or Anachronous Automobile if FLS is installed, and the Sylvan Motor Carriage if Supernatural is installed. If Showtime is installed, and either if the sim's celebrity level is above 3 or if the sim's current career happens to be a Showtime career and the sim's current career level is above 5, then the game can give them the Electrol 3X. If Late Night is installed and the sim's celebrity level is 5 and if the sim passes a 10% chance roll, the game can give them the Extravagator 5000.

UPDATE 131: In UPDATE 127, I fixed an issue with idles and said that EA had disabled certain idles with phones and cameras. I took a closer look at this, and realized that this EA mistake disabled numerous idles in the game. Some players might have seen these idles if they played the game before the patch that disabled them, but the patch also disabled any new idles added by later expansions. So, if you have been playing the game since UPDATE 127, you might have seen these re-enabled idles once again. Some of these idles are drinking from a canteen in Egypt, or Chinese locals using a fan, looking at a map in tomb rooms, phone idles, camera idle, a large number of plumbot idles depending on trait chips and many more. In addition, this update adds a few extra checks to phone idles, and makes it so that sims who have the Technophobe trait, or who are a SimBot, zombie, mummy or unplayable ghost, or who are in a tomb room, cannot perform phone idles.
Method: ActorSystems.IdleTest::TestSmartPhone
ActorSystems.IdleTest::TestFuturePhone

UPDATE 130: I found out why sims keep abandoning their cars after parking them, and this update fixes this issue. This EA oversight affected both resident and homeless sims. However, I found out that there is another EA oversight that affects only homeless sims that still causes them to abandon their cars, and this issue cannot be easily fixed. Thus, this update now prevents homeless sims from parking their vehicles. Homeless sims don't really have permanent vehicles, as their inventories and vehicles get deleted whenever they are sent home every day.
Method: Actors.Sim::GetNpcVehicle
Actors.Sim::GetNpcBoat
Actors.Sim::GrantUFOsToAliens
Vehicles.CarOwnable::Park

UPDATE 129: I came across a serious issue. When the active household already has descendant households in the future world, and when the active household travels from the present world to the future world, the game can change the current home lot of descendant households depending on whether something in the present world changed the financial status of these descendants. If the game decides to update the home lot of a descendant household, the game doesn't bother to first move out the descendant household from their current house, and immediately moves them into their new house. This causes the household to occupy two separate lots and can lead to strange game behaviour such as duplicate sims and so on. In addition, if the destination house already has a household in it, the game moves the residents out and makes them go to a random community lot, but babies and toddlers can't go, and this causes them to be stuck inside their previous house. This update fixes all these issues. Existing descendant households that are affected by this glitch won't be fixed.
Method: TimeTravel.FutureDescendantService::UpdateHouseholdHomeLot

UPDATE 128: When the game performs its Merge Households story action, if there is a stranded couple between these households in addition to any kind of blood relation, the game will now allow the households to merge without requiring the merging household to be broke when neither household is rich. If there is no such relation, then the merging household needs to be broke, and if they are housed, the worth of their house now needs to be below half of the rich threshold as opposed to one fifth of the rich threshold.

UPDATE 127: There is an issue in the game that causes sims in the Tourist household to cause a script error. The issue is that sims used to be able to perform a camera idle if they had a camera in their inventory. They take out their camera and look like they are looking for a subject. I believe EA made a mistake in a patch and accidentally disabled this idle, and also a few other idles with smartphones and holophones where the sim sends a text, which is separate from the actual Send a Text interaction. This update fixes this script error. The fix also enables these idles again. I also found out why cameras in inventories sometimes get stuck, and this update fixes this issue as well. Now that this issue is fixed, sims will now roll a chance to receive the medium-quality camera whenever they are instantiated into the world. This includes sims in the active household whenever you start a new world and choose a household to play. Sims in the Tourist household or World Adventures vacation locals will always receive a camera, and Future sims will never be given a camera. Other sims have a low chance, but the chance is increased a bit if they are a university local, and is increased greatly if they have the Photographer's Eye trait. Finally, if you don't like any of these idles, the proper way to disable them or make them less frequent is to make a tuning mod that modifies the "Idles" XML in GameplayData.package. For the smartphone text idle, search for "SmartPhoneIdles", for the holophone text idle search for "FuturePhoneIdles", and for the camera idle, search for "Photography_idle". Then change the "AnimationProbability" line from whatever it is to a lower number to make the idle less frequent. Setting this value to 0 disables the idle.
Method: Actors.Sim::SeedNPCInventory
Actors.Sim::PlayCustomIdle
Actors.Sim.CustomIdle.Definition::Test
ActorSystems.IdleTest::TestCameraSpecificIdle

UPDATE 126: EA made a mistake that causes sims in non-Downtown worlds to act as if they are in a Downtown world and causes sims in Downtown worlds to act as if they are in a non-Downtown world when they consider visiting a lot. Sims are more likely to visit certain lot types in Downtown worlds as opposed to non-Downtown worlds, and this update fixes this issue. I also fixed another issue related to this feature that makes unplayable ghosts reset and cause a script error.
Method: Autonomy.MetaAutonomyTuning::GetIntensity

UPDATE 125: There is an issue in the game that affects laundry. The game is supposed to give sims the fresh clothing and clean sheets buff for a few days whenever they switch to their regular outfits or sleep in a bed after a sim successfully does laundry. However, the game ends up setting the duration sims should be given these buffs to a very high value depending on how many hours have passed since the player started playing the world for the first time. This more or less makes doing laundry irrelevant. Worse yet, the game prevents sims from autonomously doing laundry if the game is still giving them the laundry-related buffs, and because this issue causes them to receive these buffs almost infinitely, all the hampers end up getting full, because nobody does laundry on their own. This update fixes this issue. Lots that are currently affected by this issue won't be fixed. You can get the Infinite Laundry Buffs Fix mod to fix them. However, you won't need that mod as long as you are using this mod and if you are starting a new game, or after you have fixed any affected lots in your current save.
Method: Controllers.LaundryManager::AddCleanSheetsBuff
Controllers.LaundryManager::OnDryerCycleFinished

UPDATE 124: I fixed an issue with how the game checks sims' genealogies while adopting in UPDATE 110, but made a mistake that made the social worker freeze while bringing the adopted sim. This is fixed. Thanks to Bibe10 in the comments section for informing me.

UPDATE 123: Whenever a sim dies in a destination world and when the player returns back to the homeworld, the game can't properly end the dead sim's romantic relationships back in the homeworld if none of the returning sims have a heartbroken/mourning debuff, which is an EA oversight. In addition, if the player leaves the dead sim's urn/tombstone in the destination world, then the game reverts the finalized relationships within the homeworld to what they were in the destination world before the loading screen. These are fixed.
Method: GameStates::PostTravelingFixUp

UPDATE 122: There is an issue in the game that makes the game force unplayable ghosts to go home which makes them get into a vehicle, go to a random lot and disappear. In addition, EA seems to have made a mistake that now prevents homeless sims from becoming more likely to go home under certain conditions. These issues are fixed.
Method: Actors.Sim.GoToVirtualHomeMeta.Definition::CalculateScore

UPDATE 121: Whenever a sim is on a residential lot and if all the residents are out of the house, the game pushes the sim to go home. However, EA forgot to prevent the game from excluding sims who have sneaked onto the lot, such as private investigators who can break into houses depending on their current case. This is fixed.
Method: Situations.VisitSituation.GuestLeftAlone::AddInteractionToGoOutside

UPDATE 120:
- When the game considers merging two households, if it finds that one of the households has more bed spots than the other, it merges the one with fewer bed spots into the one with more bed spots. This update makes it so that this feature will also need to pass my new checks for this story action from UPDATE 34.
- If you have Supernatural installed, Story Progression can now kill teen and older sims from jelly bean. The chance is very low.
Method: StoryProgression.MergeHouseholds::MergeHouseholds

UPDATE 119:
- When a sim travels to a destination world and dies there, and if the player puts their urn/tombstone into the household inventory or an active sim's inventory, the game will permanently delete the urn/tombstone and the dead sim upon arriving in the homeworld. This is fixed.
- When a playable ghost travels to a destination world and ages up there, the game will permanently delete the sim upon arriving in the homeworld. This is fixed.
- This update reverts certain changes from UPDATE 108 and 110 related to modifying hidden, local copies of sims in destination worlds. The proper way to fix the relationship-related issues here is to probably modify the relationship code itself, which I may do in a future update.
Method: Urnstone::ImportUrnstone

UPDATE 118: If there are unadopted pets left at the end of a neighborhood pet adoption, the game will no longer permanently delete these pets and remove them from family trees. They will now remain in family trees. This is more reliable as otherwise family trees have a higher likelihood to get corrupted. They will still not appear in relationship panels as they will be properly set to uncontactable. You can imagine a household from another town adopted these pets.

UPDATE 117:
- When a playable ghost returns to the netherworld, the game doesn't end the sim's romantic relationships. This is fixed.
- When the game decides to kill an uninstantiated vacation local from old age, it creates an alarm that kills the sim in 12 to 24 hours. However, it resets the number of days elapsed in the sim's elder age stage before adding the alarm. If the sim happens to be instantiated in the world when the alarm actually tries to kill the sim, it can't kill the sim, and because the sim is back to the beginning of their elder age stage, the game won't try to kill them again. This update fixes this and makes it so that the game only resets the sim's age stage if the game successfully kills the sim.
Method: ActorSystems.AgingManager::AgeVacationWorldSims

UPDATE 116: There is a possibility that when the game emigrates a household, it may fail to set all of the sims as uncontactable which would potentially allow the player to contact emigrated sims which should not be possible. This is fixed.

UPDATE 115: When the game emigrates a household, the game doesn't remove any romantic relationships the emigrated sims may have. This update fixes this issue.

UPDATE 114:
- When a sim dies, the game removes the sim's committed relationships, but EA forgot to make the game remove the sim's non-committed romantic relationships. This update fixes this.
- Before this update, if you had my SimulateLifetimeHappinessForInactives feature enabled, the game would increase destination locals' lifetime happiness during the loading screen while travelling to a vacation destination or university by only a fraction of how much it should have increased it. This update fixes this.

UPDATE 113: This mod had earlier prevented the game from getting two sims married if they were not part of the same household. This update allows them to get married if the game is creating offspring for them even if they are in different households.

UPDATE 112: In an unmodded game, when the game attempts to perform its Add Sim or Have Baby story action, the game picks a household, then picks an eligible sim who already knows a sim to create a pregnancy with. If all the sims within the household are ineligible or if they don't already know another eligible sim, the story action cannot do anything. This mod had changed this earlier and made it so that the game only picked a household if at least one eligible member was found beforehand, but this had a negative effect on performance, and also made the game usually focus on a few households if not many sims had eligible relationships in the world, which would especially be the case while travelling to a destination world for the first time. This update solves all these issues by making the game pick any eligible sim in the world if the game fails at finding an eligible, existing relationship. So, the game first checks the sim's partner, and picks the partner if the partner is eligible, or if not eligible, creates an adoption. If the sim has no partner, then the game checks the sim's romantic relationships first, then any eligible sims already known. If the game still can't find an eligible sim, then it picks any eligible sim not yet met. Additionally, I also made it so that this story action is now more likely to create offspring within resident households.

UPDATE 111: In UPDATE 109, I fixed an EA mistake that caused the game to age up uninstantiated vacation and university locals twice in a row while travelling to a destination world, even though they were supposed to age up only once. However, this fix was flawed and caused the game to go into an infinite loading screen if the sim was actually supposed to age up more than once. If you encountered an infinite loading screen while travelling to a destination world since UPDATE 109, this was most likely the cause of it. This update fixes this entire thing properly.

UPDATE 110:
- Whenever the game creates a committed relationship or ends one during the loading screen while travelling to a vacation destination or university, the game is unable to genealogically link/unlink the sims. This could prevent the game from finding the sim's partner when the game attempts to create an adoption. This is fixed.
- When a sim who has a romantic relationship in the homeworld travels to a destination world and dies there, when the player returns back to the homeworld, the game can't end any such relationship properly and will cause the remaining sim to still have an active romance. This is fixed.
- When a sim who has a blog travels to a destination world and then returns, the game can't preserve the type of blog the sim has. This is fixed.
- The game will no longer decay the blog followers of inactive sims.
Method: SimUtils.HouseholdCreationSpec::InitializeRomance
Skills.SocialNetworkingSkill::DecayFollowers

UPDATE 109: In an unmodded game, the game checks to see if any locals are supposed to age up during the loading screen while travelling to a vacation destination or university. The game properly ages up sims who are currently in the world, but ends up aging sims who are currently not instantiated (mostly homeless sims) twice in a row. So, if a sim is supposed to age up from young adult to adult, they end up aging up to elder if they are not instantiated. This is fixed.
Method: ActorSystems.AgingState::MergeTravelInformation(MiniSimDescription msd)

UPDATE 108: When a sim travels to a destination world and then returns, the game keeps a hidden, local copy of the travelling sim within the destination world. When another sim, who was in a romantic relationship with a sim whose local copy is still being kept by the game within the destination world, travels to that destination world, the game still will consider the two sims in a romantic relationship even though they are not. This causes their romantic reputations to be ruined. In addition, if the travelling sim was in a committed relationship with the other sim when they last travelled to that world, and if the travelling sim is currently not in a committed relationship, the game will put the travelling sim back into a committed relationship with the other sim which makes no sense. These issues are fixed.
Method: GameStates::ImportTravellingHousehold
GameStates::PostTravelingFixUp

UPDATE 107: I came across a very serious issue. This game has a maintenance routine that is run at 00:05 every night which attempts to purge sims' distant genealogy relations. This feature is very flawed and has the potential to genealogically unlink sims that it shouldn't unlink. Moreover, this routine was written with only base-game in mind and doesn't take into consideration how the game works with destination worlds and uninstantiated sims. This is why it regularly causes family trees to become corrupted as a result of travelling. In this update, I have added a very important check that now only allows the game to purge the distant genealogies of those sims whose homeworld happens to be the current world. This prevents it from corrupting family trees. However, as I said earlier, it can still unlink sims from each other even when it shouldn't. For this reason, I have added a new tunable feature, which is enabled by default, that allows the player to completely shut down this routine.
Method: Socializing.Genealogy::Expand
Tuning: When PurgeDistantGenealogyRelations is set to False, the game will be completely prevented from purging the family trees of sims. Recommended setting is False. You can set this to True to revert to original EA behaviour, but you will still get my fix from above which will prevent it from affecting non-locals. Finally, if you do set this to True, you will most definitely want to make a tuning mod for yourself which modifies the "SimDescription_0x2f781fbc26bb4d8a" XML within GameplayData.package. In it, you want to set "kPreservedGenealogyLinksForLivingSims" to a higher number, then set "kPreservedGenealogyLinksForDeadSims" to a higher number that is lower than "kPreservedGenealogyLinksForLivingSims". I recommend setting "kPreservedGenealogyLinksForLivingSims" to 10, and "kPreservedGenealogyLinksForDeadSims" to 5. This should allow it to work properly most of the time.

UPDATE 106:
- Story Progression is now allowed to demote plumbots who don't have the Office Drone chip.
- When aging is enabled and the game decides to kill a vacation local from old age while the player is in the home world, the game assigns an alarm that kills the vacation local in 12 to 24 hours. The problem is that if the vacation local happens to be instantiated in the home world, for example as a tourist or explorer, the game still tries to kill the sim even though it is not supposed to. This is fixed.
- When a firefighter successfully completes a job, one of the victims may call them to thank them. However, pets are also allowed to call, because EA forgot to add a check for pets when they released the Pets expansion. This is fixed. In addition, EA made it so that only child and older sims for whom the firefighter has gender preference can call, which is a problem especially if the game picks a child or teen to call the firefighter. This update gets rid of this unnecessary gender preference check. Any non-pet victim who is a child or older may call now.
Method: ActiveCareer.ActiveCareers.ActiveFireFighter::StartGratefulSimAlarm

UPDATE 105:
- When the game creates a Neighbourhood Pet Adoption, the game won't pick a female pet as the mother if the pet has a partner who is a member of the active household. Before this update, the game could pick such a pet, but then it wouldn't be able to create a pet adoption.
- When an inactive household adopts an unadopted horse at the end of a pet adoption, the game will give some riding skill to a random teen or older member of the adopting household if the adopting household doesn't have at least one sim with some riding skill. This is just like what EA's Add Horse story action does when it adds a horse to a household.

UPDATE 104: I found out that playable ghosts who return to the netherworld continue to age which is an EA oversight. This is now fixed. The only ghosts who should age are playable ghosts who are members of housed families as they are a part of the living world. Unplayable ghosts only appear temporarily to haunt, thus they are never supposed to age.
Method: Urnstone.ReturnToGrave::Run

UPDATE 103: In an unmodded game, babysitters and Bonehilda can get a quick meal for a hungry child even if the child is asleep. In addition, Bonehilda has the ability to put away leftovers which most of the time causes her to put away a quick meal that she has just taken out of the fridge. The only other NPC that can both serve food and put away leftovers is the butler, and EA added a specific check for butlers and prevented them from putting away leftovers that had not been out in the world for at least one and a half sim-hour. This update fixes these issues and makes it so that babysitters and Bonehilda will only consider how hungry a child is either if the child is awake, or if it is within 30 sim-minutes of the child's default wake-up time. This is just like the butler, except that the butler is pushed to cook about two sim-hours before the sim's wake-up time, because they actually cook. Babysitters and Bonehilda don't cook, so a half-hour check is enough for them. In addition, I have added the necessary check for Bonehilda so that she will only put away leftovers after the food has been out of the fridge for at least one and a half sim-hour.
Method: Services.Babysitter::AttendToNeedsOfSim
Services.Babysitter::ShouldCountSimAsHungry
ObjectComponents.CleanableComponent::PutAwayLeftOversScoringFunction

UPDATE 102: When a sim travels, the game can't preserve the type of 5 star blogs the sim has sold, and the number of mushrooms the sim has collected. These are fixed.
Method: Skills.SocialNetworkingSkill::ExportContent
Skills.SocialNetworkingSkill::ImportContent
Skills.SocialNetworkingSkill::MergeTravelData
Skills.Collecting::ExportContent
Skills.Collecting::ImportContent
Skills.Collecting::MergeTravelData

UPDATE 101:
- When a sim travels, the game can't preserve the sim's gender preference. This is fixed.
- When a sim travels, if the sim was adopted, the game loses track of this information. This is now fixed. This "adopted" flag seems to be used by wish-generation and nothing else. However, there is another place where it should've been used. When an offspring is created, the offspring has a chance to inherit their hair colour, eye colour, wing colour and wing shape from one of their grandparents, but the game allows the sim to inherit these features even from a grandparent who adopted the offspring's parent. This update fixes this and sims won't be able to inherit from those grandparents any more.
Method: SimDescription::ExportContent(ResKeyTable resKeyTable, ObjectIdTable objIdTable, IPropertyStreamWriter writer)
SimDescription::ImportContent(ResKeyTable resKeyTable, ObjectIdTable objIdTable, IPropertyStreamReader reader)
Genetics::InheritWings

UPDATE 100: When a sim travels, the game can't preserve the number of food recipes the sim has programmed into food synthesizers, and also the number of jumping competitions the sim has won. These are fixed.
Method: Skills.FutureSkill::MergeTravelData
Skills.RidingSkill::ImportContent

UPDATE 99:
- In an unmodded game, when the game creates a new random household, the game always creates the family with around 20000 simoleons in their family funds. This update makes it so that the game will randomize their family funds so that you can now get a good assortment of low/medium/high-wealth families in your worlds.
- In an unmodded game, there is an issue which may cause the game to mutate the eye colour of an offspring even if it shouldn't. If the offspring has grandparents on their family tree, the offspring has a chance to inherit their eye colour, hair colour and a few other features from one of their grandparents. However, the game can only make the sim inherit from a grandparent whose data is currently accessible in the current world, and the game has proper checks for this in all of its inheritance code, except eye colour where EA forgot to add the check. This causes the following problem: if the sim has at least one grandparent who is inaccessible in the current world, and the chance to inherit eye colour from a grandparent succeeds and the game picks the inaccessible grandparent, the game instead mutates the eye colour. This issue is now fixed and will not occur again.
- In an unmodded game, if a sim who is currently in their homeworld travels to a destination world, and then completes any number of the Photography photo collections within the destination world, the game becomes unable to preserve the number of these completed photo collections when the sim returns to their homeworld. The game instead reverts the number of the sim's completed photo collections to what it was when the sim was in their homeworld before travelling. This is fixed.
Method: Genetics::InheritEyeColor
Skills.Photography::MergeTravelData

UPDATE 98:
- When a household moves out of their current residential lot in the university world, they will not sell the house, because families cannot own lots in the university world, they rent them. When a household considers moving into an empty house in the university world, the game now checks to see if their family funds is equal or greater than the university rental cost of the destination house. The cost of the household's current house, if any, is not part of the check as the house is not theirs. When a household moves into an empty house in the university world, they will now pay the university rental cost of the house rather than the regular cost.
- This update adds a check that prevents the game from assigning newly created pure-blood aliens Chinese or Egyptian facial blends if the game is creating the alien in those worlds. Normally, aliens are disabled in vacation worlds, but the check should be added in case you have a mod that allows pure-blood aliens to be created in vacation worlds.

UPDATE 97:
- This update modifies many story actions that have the ability to move/merge sims and households, and adds finance-related features to them. When a household attempts to move to an empty house, the game now only allows them to move to a house that they can afford. A household can afford a house if the sum of their family funds and cost of their residential lot (non-Apartment and non-Dorm), if any, is equal or greater than the cost of the house they want to move to. In addition, if a household is moved out of their current residential lot (non-Apartment and non-Dorm) for any reason, they will actually sell the house and the cost of the house will be added to their family funds. If a sim is moved out of a household and there are sims left behind in that household, the leaving household will be given a percentage of the family funds of the original household, and they won't get free 20000 simoleons as their starting funds.
- This update adds a tunable value, which is enabled by default, that allows the player to enable/disable the feature of this mod that randomizes the face, muscle definition and breast size of randomly generated sims, in case they want to use a non-core mod. However, there are certain things you need to know. A non-core mod fixes this issue by checking to see if the sim's sliders are set to 0 and then randomizes these features. This works well in most cases, but there is one case where it doesn't: when the game creates a Chinese or Egyptian vacation local, the sim has a very high chance to be assigned specific facial blends set by EA so that they look like a local from that world. This means that these sims do not have zero-slider faces, so non-core mods skip them. However, it is not guaranteed that the sim will be assigned a location-specific facial blend for all facial regions, thus the sim may still end up with most of their sliders at zero. The proper thing to do is to randomize the sim's face completely and then roll the chance to assign location specific features, which is what this mod already does. For this reason, I recommend that you leave the tuning at True.
Method: StoryProgression.MoveInHousehold::MoveInHousehold
StoryProgression.MoveInHousehold::Execute
StoryProgression.MergeHouseholds::Execute
StoryProgression.MoveInWithPartner::Execute
StoryProgression.MoveToLargerHouse::Execute
StoryProgression.MoveToSmallerHouse::Execute
Tuning: Set RandomizeSimFeatures to True to allow the game to randomize the face, muscle definition and breast size of randomly generated sims. Set to False to disable this feature. Recommended setting is True.

UPDATE 96:
- Bonehilda can't do laundry in an unmodded game, because EA forgot to add a check for her in their laundry code. She can now do laundry. Don't forget that all sims are prevented from autonomously doing laundry if laundry has been recently done on the lot and sims are getting fresh clothing buffs and so on, but they can still autonomously put clothing piles into hampers.
- This update changes my feature that allows elders to dye their hair. Now there are two tunable values based on gender: MaleEldersDyeHair controls whether male elder sims are allowed to dye their hair, and FemaleEldersDyeHair controls whether female elder sims are allowed to dye their hair. This update also prevents elders from dyeing their hair their genetic hair colour, as I think this leads to the impression that their hair didn't turn grey at all. Finally, when a sim decides to dye their hair, there will be a chance for their root colour to show their elder hair colour.
Method: Controllers.LaundryManager::IsAllowedToDoLaundryOnResidentialLot

UPDATE 95:
- The game could allow sims to adopt younger than young adult sims in the university world. This is fixed.
- In an unmodded game, when sims return from any destination world, the game gives them a topic about having attended university which allows them to reminisce about university even if they were returning from a vacation world or the future world. This is fixed.
Method: Visa.ReturnHomeBehaviorInHomeWorld::SetupReturnHomeInteractions
Visa.ReturnHomeBehaviorInHomeWorld::ScatterEarlyDepartureSim

UPDATE 94: This update fixes Bonehilda. In an unmodded game, she is unable to pick up or care for babies and toddlers even though she is allowed to initiate the interaction. When Supernatural was first released, this was not an issue, but EA decided to streamline a line of code in a patch (potentially 1.50) where they made a mistake which now prevents Bonehilda from interacting with babies and toddlers properly. Note that she is quite obsessed with interacting with toddlers when she has nothing else to do.
Method: SocialInteractionA.Definition::CanSocializeWith(string social, Sim actor, Sim target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback, bool bAllowOnToddlers, bool interactionHasAlreadyStarted, bool isSyncCheck)

UPDATE 93:
- EA's story actions are now much less likely to create adoptions.
- Sims who are going to a high-school graduation will not switch into outerwear if the temperature is low enough.

UPDATE 92:
- In an umodded game, when a paparazzi sim finishes their shift at 1am and if they are on a residential lot, they will most likely try to ring the bell if they can reach the front door. This update makes paparazzi sims go home if they finish their shift on a residential lot so that they don't ring the bell.
- In an unmodded game, there is a feature that makes it so that whenever the game creates an offspring in any way, the offspring's alien DNA percentage may be modified by a percentage value ranging from -5 to 5. The issue here is that the game applies this modification even if both of the parents are pure-blood humans or aliens. So, if two pure-blood humans with 0% alien DNA have an offspring, the offspring may have up to 5% alien DNA. Similarly, if two pure-blood aliens with 100% alien DNA have an offspring, the offspring may have anywhere from 95% to 100% alien DNA. This makes no sense. So, this update prevents the game from applying this effect if the parents are both pure-blood aliens or if they are both pure-blood humans. The game is now also prevented from applying this effect if the game is creating an offspring by using one parent and the parent happens to be a pure-blood human.
- There is a hair colour mutation chance in this game, which makes it so that offspring's hair mutates to a random genetic human colour. This update makes it so that if the offspring has two parents, and the parents are both pure-blood aliens, then there won't be a chance for mutation.
- In an unmodded game, when the game creates a pure-blood elder alien, the game can't assign the sim their genetic alien hair color. This is fixed. In addition, whenever a sim who has alien skin ages up to elder, the game gives the sim a human elder hair color. Now, the game will give the sim an alien elder hair color.
- This update adds a new feature, which is disabled by default, that makes it so that whenever the game creates an elder sim, or whenever an inactive sim ages up to elder, the sim will have a chance to dye their hair.
Tuning: Set EldersDyeHair to True to make it so that newly created elder sims and inactive sims who age up to elder will roll a chance to dye their hair. The chance depends on their gender, homeworld, some of their traits and so on. Male sims are very unlikely to dye their hair. If the chance succeeds, then male sims will have a 90% chance and female sims a 50% chance to dye their hair their genetic hair colour, otherwise they will randomly pick a colour.
Method: Roles.RolePaparazzi::EndRole
SimDescription::GetAlienDNAPercentage
Genetics::InheritHairColor

UPDATE 91:
- EA's own Add Sim/Have Baby/Generate Offspring actions can now create adoptions, allow Plantsims to create Plantsim babies and allow sims in the Future World to engineer babies.
- In an unmodded game, the game only rolls for twins/triplets if the game is finalizing an actual pregnancy. However, there are many other situations in which the game skips the pregnancy and creates the offspring immediately. EA didn't add twin/triplet code to these features. There is no identical twin/triplet code in the unmodded game, but I added such a feature in UPDATE 86, and now it is required that the game should be able to create twins/triplets in all situations, so that it can also roll for identical twins/triplets. This update does precisely that. Whenever the game creates an offspring in any way by skipping pregnancies, the game will now have a chance to create twins/triplets. The chance is the same as in regular pregnancies. This includes situations such as whenever the game creates a brand new household for any reason, or whenever the game performs an Add Sim/Have Baby/Generate Offspring story action which also allows vacation and university locals to have twins/triplets. It also includes the situation when you travel to the Future World and the game creates your sims' descendants, or when you travel to the Future World and the game decides to add new descendants to your sims' existing descendant households.
Method: StoryProgression.AddSim::IsValid
StoryProgression.GenerateOffspring::IsValid
StoryProgression.GenerateOffspring::PossiblyGenerateOffspring
FutureDescendantHouseholdInfo::CreateAndAddDescendant
SimUtils.HouseholdCreationSpec::Instantiate(WorldName homeWorld, List<SimDescription> ancestors)

UPDATE 90:
- This update adds a new feature, which is disabled by default, that allows inactive resident pets to make progress towards earning/losing traits. In an unmodded game, it is very unlikely for an inactive pet to learn trained traits.
- In an umodded game, inactive sims employed in active careers with a weekly stipend can't be paid their stipend, as EA controls such payouts through an alarm which is only assigned to active sims. This update makes it so that if you have my SimulateBudgetForInactives feature enabled, then inactive sims will receive their weekly stipend at 00:05 on Monday. Technically, the day they receive their stipend will be the day after the regular stipend payout day which is set to Sunday by EA. Thanks to jivicxd in the comments section for informing me.
Tuning: Set InactivePetsLearnTrainedTraits to True to enable this feature which makes inactive resident pets roll a low chance once a day to make progress towards earning/losing traits.

UPDATE 89:
- Sims who are going to prom won't switch into outerwear when the temperature is low enough.
- This update adds a new feature, which is disabled by default, that allows inactive sims to purchase reward traits with their accumulated Lifetime Happiness points.
Tuning: Set InactivesPurchaseRewardTraits to True to enable this feature which makes every inactive sim/pet roll a low chance once a day to spend their accumulated Lifetime Happiness points to purchase a reward that they can afford. They will not purchase object-based rewards. Don't forget that certain rewards don't add a trait and have a different effect, such as Inheritance and Honorary Degree.

UPDATE 88:
- The game sometimes gives inactive elders canes, especially when loading a world for the first time and when an inactive sim ages up to elder. This update prevents the game from giving canes to aliens.
- If you have already been to the university world, the next time you go there after spending at least one day in the home world, the game simulates the degree progress of the inactive population of the university world depending on how many days have elapsed in the home world. This is how inactive sims earn degrees in the university world. This update makes it so that my AcademicsDegreeGiveTrait feature from the previous update also affects this feature, so if you have it enabled, those sims who receive a degree or who have already received a degree during the loading screen while travelling to the university world will also receive a graduate trait if they don't have such a trait already.
Method: Actors.Sim::GrantAgeSpecificObjects
Visa.TravelUtil::SpecialStoryProgressionAtUniversity

UPDATE 87:
- Whenever Story Progression increases an inactive sim's social group level to 10, the game will no longer show the social group career offer window to the player.
- This update adds two new features, which are disabled by default, that allow inactive sims who are given completed university degrees or who have one of their social group levels increased to 8 or higher by Story Progression to receive their reward traits on their own.
Method: Skills.InfluenceSkill::ShowInfluenceDreamJobs
StoryProgression.AddAcademicsDegree::Execute
StoryProgression.ChangeSocialGroupInfluence::Execute
Tuning: If you set AcademicsDegreeGiveTrait to True, the game will give a university graduate trait to any sim who is given a university degree by Story Progression and who doesn't already have such a trait. If you set SocialGroupGiveTrait to True, then the game will give a social group trait to any sim who has one of their social group levels increased to 8 or higher by Story Progression, and who doesn't already have such a trait.

UPDATE 86: EA never added dedicated code for identical twins and triplets in this game, so it is more or less impossible to have identical twins/triplets. This update adds this feature. I have set the default chance of this happening to 30%, but you can tune the value to whatever you want. Whenever a proper pregnancy is finalized, the game creates the firstborn normally. If the game then decides to create twins and triplets, each subsequent baby will roll the kPregnancyChanceIdenticalTwinsTriplets chance. If it succeeds, and if the game is creating the second baby, it will become identical to the firstborn, but if the game is creating the third baby, it will have a 50/50 chance of being identical to either the firstborn or secondborn. This means that if you are having twins, they will have a chance to be either identical or fraternal twins. If you are having triplets, then all babies may be identical, all may be fraternal, or two of them may be identical and one fraternal. There are a few extra things you may want to know. I made it so that identical babies will have slightly different body shapes (fatness, fitness, muscle definition and breast size). Note that I made it so that identical babies will indeed have the same supernatural state if they have one, all the way to wing shape and colour for fairies. Importantly, if one parent is a ghost and the other is not, each baby separately inherits this, as this is how EA designed this feature. Ghost-inheritance is separate from supernatural-state inheritance.
Tuning: Set kPregnancyChanceIdenticalTwinsTriplets to the percentage chance you want for twins and triplets to be identical. Set to 0 to disable this feature and revert to original EA behaviour of not having identical twins/triplets in the game.

UPDATE 85: When the game is generating offspring for any dying vacation locals while the player is travelling to a vacation destination, it can also generate offspring for any tourists who are supposed to die from old age. This is an oversight, as the game is only supposed to generate offspring for the locals of the destination world. This is fixed.

UPDATE 84: I found out that when the game creates a regular family with offspring in the University world, the game can't link the offspring to their parents which is an oversight by EA. This update fixes this issue.
Method: CAS.SimUtils.SimCreationSpec::Instantiate(List<SimDescription> potentialParents, out SimDescription dad, out SimDescription mom)

UPDATE 83: I came across a serious issue with Story Progression. If a sim who is part of a household is somehow in a committed relationship with a sim who is not part of a household, whenever the game attempts to create a Have Baby/Add Sim action, Story Progression is stopped completely and is prevented from performing any actions. Normally, sims are not supposed to be in a committed relationship with sims who are not part of a household. Sims who don't have households are usually unplayable ghosts. However, certain EA worlds already have pre-made EA sims who are suffering from this issue. Isla Paradiso has one such sim, and I think Barnacle Bay also has one. This update fixes this issue, so Story Progression will work correctly in such worlds now. I still recommend that you end such relationships if there are any in your world, as other parts of the game may also not work correctly in such situations.

UPDATE 82: I found some serious issues with a resort feature from Island Paradise. If a resort has a wedding arch placed in it, the game tries to make an inactive, homeless couple get married every day. However, the game can pick robots, or sims who don't have gender preference for each other, who are already married or already have a different partner. If the game picks a sim who already has a different partner, the sim ends up with multiple partners. All of these issues are now fixed. Existing sims who have been put into a committed relationship with someone for whom they have no gender preference, or who have ended up with multiple partners won't be fixed.
Method: Controllers.ResortManager::TryHaveWedding
Controllers.ResortManager::CanBeWedAtResort(SimDescription simDesc, bool checkPartner)

UPDATE 81:
- I found out that when the game is performing its Story Progression actions during the loading screen while travelling to a World Adventures or University world, the game is unable to properly set the partner flag between two sims. This can cause the game to consider one or both of the sims as not partnered even when they are. This is now fixed. Existing sims who are suffering from this issue won't be fixed.
- I found another issue with the aging of werewolves. If the game ages a werewolf up to an elder, the game is unable to apply the sim's new elder hair colour to the sim's werewolf form if it exists. It is actually able to apply the new elder hair colour to the werewolf form as a result of a side effect, only if the game decides to change the sim's hair style for the sim's werewolf form. This issue is now fixed, and the game will always properly apply the new colour to all of the sim's outfits. Existing sims suffering from this issue won't be fixed.
Method: ActorSystems.SimBuilderTask::UpdateSimOutfitsOnAgeUp

UPDATE 80: Story Progression has two ways of adding an offspring to a family, and these are the Have Baby and Add Sim story actions. There are certain things I dislike about the Add Sim action. In an unmodded game, the game randomly determines the age of the offspring that the Add Sim action creates. The offspring may be an elder, and may be older than his/her parents. This update fixes that, and now the Add Sim action can only create a baby/toddler/child/teen in the Home world and Future world, and either a child or teen in World Adventures destinations. The way this action works in the University world is not changed, because there is nothing wrong with it. The game creates a young adult offspring in the University world, as that is the youngest age that is allowed there, but the game can only pick adult parents in such a world, so the offspring is already guaranteed to be younger.

UPDATE 79:
- I came across some serious issues with Story Progression. If the player has any of the expansion packs that allow certain Story Progression options to be disabled in the Menu, and the player disables some of them, Story Progression becomes very likely to become unable to do anything at all in the game. This is because it can still draw one of these options even if it is disabled, and then the game prevents Story Progression from doing anything with that option, but in the process Story Progression wastes one of its limited demographic draws. This update fixes this issue, so you can feel free to disable anything you want in the Story Progression options in the Menu. I also added a new tunable feature to the Tuning file that allows the player to disable Mermaids, as EA forgot to add such an option to the Menu. In addition, Story Progression will not pick the horse population demographic, even if it is enabled in the Menu, if there are no households in your game with at least one box stall in their house, as Story Progression can't do anything if there are no box stalls. Story Progression will also not pick the roommates population demographic if there are no apartments or dorms in your world, as again it can't do anything if the world has no such lots. This way it doesn't waste one of its demographic draws on a demographic it can't do anything with. There is one last thing you need to know: EA tuned Story Progression to pick the most optimal demographic. For example, it is almost always obsessed with increasing/decreasing social group levels, wasting almost all of its demographic draws and actions in this way, because most sims in your world won't have a social group level at the beginning of the game, thus it considers that action a priority. If you don't like this mechanical approach and want Story Progression to be a bit more random, you need to make a tuning mod for yourself that modifies the "Demographics_0x0915b951121e2690" file in GameplayData.package, and changes the "kDemographicChoiceTemperature" value to a much higher number, preferably 250. You may also want to change the "kActionsScoreFriction" to "0,0", because otherwise certain actions that the game doesn't consider a priority are outright dropped from the list of potential actions. Setting the "kSelectedDemographicAttenuation" value to something like 0.25 will also make the game more likely to pick a wider range of demographics. Changing the "kNumDemographicDraws" to 15 or 20 will also make the game pick a wider range of demographics, but don't increase it any further as it will have a negative effect on performance when Story Progression is activated at 1am every day.
- In an unmodded game, whenever Story Progression is attempting to perform its "Have Baby/Add Sim" action, it first randomly picks a household, then finds an eligible sim as a parent. However, if there are no eligible sims in the household, it ends up not being able to do anything. This update fixes that and now the game will only consider picking a household that has an eligible parent in it.
- This update adds a new tunable feature, which is disabled by default, that assigns a random gender preference to inactive, teen and older sims in your world who have no gender preference. The game has a 90% chance of assigning opposite-sex gender preference, and a 10% chance of assigning same-sex gender preference.
Method: StoryProgression.Demographics::GetBadDemographic
StoryProgression.AddSim::AddSim
StoryProgression.Demographics.MermaidPopulationDemographic::IsEnabledInOptions
Tuning:
- Set StoryProgressionAllowMermaids to True to allow Story Progression to turn random residents and townies into mermaids. I have set the default value for this to False, as I don't like random mermaids in my game. Don't forget that the game will always create NPC mermaids for you to interact with if you have dive spots in your world. NPC mermaids are completely separate from Story Progression mermaids.
- Set RandomizeUndecidedGenderPreference to True to make the game assign a gender preference to inactive, teen or older sims with no gender preference in your game once a day.

UPDATE 78: This update fixes an issue that would allow Story Progression to pick an ineligible sim while creating a romance. It will always pick proper sims now.
Method: StoryProgression.ChangeRelationship::IsRomanceCandidate

UPDATE 77: This update adds a few additional checks to two story actions which are Move to Larger and Smaller House. In an umodded game, the game can move a rich household into a very cheap house as long as it has more/fewer bed spots than the household's current house depending on whether the game is performing the Move to Larger or Smaller House action. I have made it so that when the game considers moving a household to a different house, the game checks to see if the household is rich and not broke, if so, it only allows them to move to a house which would still make the game consider the household as rich. If the household is rich, but broke, then the game only allows them to move to a house that costs less than half the rich threshold. If the household is broke, but not rich, then they can only move to a house that costs less than 25% of the rich threshold. If the household is neither broke nor rich, they can only move to a house that costs less than the sum of the cost of the household's current house and current funds.
Method: StoryProgression.MoveToLargerHouse::MoveToLargerHouse
StoryProgression.MoveToSmallerHouse::MoveToSmallerHouse

UPDATE 76: Story Progression has a feature which changes the relationship value and type between two sims. The game can either pick an existing relationship to change or form a brand new relationship between two sims who don't know each other. Both forms of this story action work fine if the game is trying to form a friendly/enemy type relationship, but it fails if it is trying to form a romantic relationship between two sims who don't know each other as a result of an EA oversight. This is fixed.
Method: StoryProgression.ChangeRelationship::ChangeRelationship
StoryProgression.ChangeRelationship.SimSearchContext::IsValid

UPDATE 75: In an unmodded game when a child-aged imaginary friend becomes real, the game can assign the sim the third voice type which is unavailable to children. This causes the sim to become mute until they age up to teen. This is fixed.
Method: ActorSystems.OccultImaginaryFriend::MakeReal

UPDATE 74: I found an issue with the Vampire Hunt interaction. When a vampire initiates this interaction, the game applies a heat-vision visual override to all the non-household sims on the lot who the vampire can drink from. Every few seconds, the game removes this visual override from a random sim until only one sim is left. However, if a sim who currently has a heat-vision override leaves the current lot, the game doesn't remove the visual override, and the sim ends up stuck in heat-vision for the rest of the game until a vampire initiates the Hunt interaction again on a lot where that sim currently is. This update fixes this issue.
Method: ActorSystems.OccultVampire.VampireHunt::LoopDel

UPDATE 73: In an unmodded game, the game can't age up werewolves who are currently in their werewolf form. This makes sense for active sims, but not for inactive sims, as the way the game ages up inactive sims makes whether the sim is in their werewolf form or not irrelevant. This update fixes this issue, so that werewolves can now age up properly.
Method: ActorSystems.AgeUp::Execute

UPDATE 72: I came across a serious issue with playable ghosts. In an unmodded game, the game permanently deletes inactive, playable ghosts who are aging up. In addition, the game has a caregiver monitor feature which temporarily dematerializes inactive babies and toddlers who are left home alone, and rematerializes them when a teen or older member returns. However, if the baby/toddler happens to be a playable ghost, the game permanently deletes them from the game. This update fixes these issues.
Method: Sim.Placeholder::DoDematerialize()
Sim.Placeholder::Rematerialize()

UPDATE 71: When my pregnancy feature creates a pregnancy, the game will now roll a chance to move the sims together into one household. The chance depends on the sims' traits, but the sims also need to pass the usual move-in checks of the game. So, if Sim A is a housed, player-protected sim, then Sim A can't move into other households. Before this update, there were too many engagements being formed, but now that sims can move into the same household, the game will have a much higher chance of getting the sims married. I also made it so that if the sims decide not to move in together, and the chance to get married succeeds, the game will have an equal chance of getting the sims engaged or in a steady relationship, instead of always making them get engaged.

UPDATE 70:
- Story Progression can now move sims into their partner's household regardless of whether the partner is player-protected. In addition, player-protected, homeless sims are also allowed to move into their partner's household. The game now only prevents player-protected, housed sims from moving into other households.
- There is a very serious issue in the game which causes the game to continuously create limousines and tour buses for sims who are at a certain career level in the Business, Political, Criminal, Fortune Teller, Music, Magician, Singer and Acrobat careers. If gameplay gradually starts feeling slow and laggy over an extended period, your game is most likely suffering from this issue. I have not been able to find out why exactly this happens, but I know that the game won't stop creating these vehicles once it starts, and eventually the game will become unplayable as a result of your processor being constantly occupied. The only way to fix this currently is to prevent the game from giving such career cars to sims in the first place. In this update, I added a tunable feature which prevents the game from giving these vehicles to sims who are in these careers. Note that I am not talking about the limousines created for proms or boarding schools, or the limousine given to celebrity sims. There is nothing wrong with them. The issue only affects the vehicles given to sims who are at a high level in the aforementioned careers.
Tuning: AllowCareerCars is set to False by default which will prevent the game from creating these vehicles, fixing this glitch. You can set it to True to enable these vehicles and revert to EA original behaviour, but this is not recommended.
Method: Sim::GetCareerCar
ActiveCareers.PerformanceCareer::GetCareerCar

UPDATE 69: Before this update, my pregnancy feature would omit homeless female sims. They are now included. In this situation, the game skips the pregnancy and adds the offspring into the housed parent's household which in this case will be the father's household.

UPDATE 68:
- Story Progression cannot kill teen and older mermaids from drowning any more.
- The feature to set the same zodiac sign for twins and triplets from UPDATE 64 now also affects destination local pregnancies which are separate from regular pregnancies.
Method: ActorSystems.Pregnancy::CreateNewbornsBeforePacking

UPDATE 67:
- I found further issues with the Talk About Joys of Children interaction. When a sim successfully performs this interaction, the game attempts to make the target sim conceive a pregnancy or adopt after 24 hours. However, it doesn't perform certain important checks on the target at that time to see if the target should still be eligible. This update makes the game check to see if the target is not a robot, is not selectable, is not pregnant, is not part of a special household, and is not in a committed relationship with a sim who is pregnant or who is a member of the active household. In addition, if the target decides to adopt, they will adopt child-aged sims if the current world is a vacation destination, as EA doesn't like babies and toddlers in such worlds. Finally, this interaction won't have an effect in the University world any more, as pregnancies aren't allowed.
- The game normally prevents sims from switching into outerwear under certain conditions, but I found out that EA forgot to add checks for streaking (University Life) and for performing a show on a stage (Showtime). In an unmodded game, sims will streak in their outerwear if the game picks a destination that is outside and the temperature is cold enough. Similarly, sims are made to switch to their outerwear while trying to perform a show on a stage that is outside even though they should be in their career outfit. These are fixed.
- In UPDATE 33, I added a feature that ages up homeless babies and toddlers who are supposed to age up, as the game never instantiates them into the world which causes their aging to get stuck. I have now found out that children and teens also suffer from this issue, so this update extends this feature to children and teens as well.
- In the previous update, I made it so that when a destination local dies, the game would give the debuffs to the sims in the current world at 80% of their usual strength. I am reverting this, and the debuffs will be given at their normal strength now.
Method: Actors.Sim::CanSwitchToOuterwear

UPDATE 66: In an unmodded game, when a destination local dies from old age when you are in your homeworld, the game doesn't give any mourning/heartbroken debuffs to sims in the current world. When the player eventually travels to the destination world in question, then the game gives the relevant debuffs. This is why half the destination world will be crying upon the player's arrival even if the player travels hundreds of days after the sim's death. This update changes the way this works. Now, the game will give the debuffs immediately upon the destination local's death. I made it so that the debuffs will be given at 80% of their usual strength, because the player can't mourn their loss or move their urnstone into a mausoleum in their current world. When the player travels to the destination world, the game won't give any debuffs to anybody, meaning that destination locals would have already mourned the deceased.
Method: ActorSystems.AgingManager.MiniSimDescriptionDeathHelper::Callback

UPDATE 65:
- When a sim who has a robot partner adopts a baby/toddler/child, the game won't genealogically link the adopted sim to the partner any more.
- When Story Progression makes a Plantsim have a Plantsim baby, the game will instead create a Plantsim child if the current world is a vacation destination, because EA doesn't like babies and toddlers in these worlds.
- Story Progression cannot kill a vampire from old age if the vampire has the Immortal lifetime reward. I have also made it so that Story Progression is less likely to kill sims without the Rebellious and Avant-Garde traits from ranting.
Method: SocialWorkerAdoptionSituation.InstantiateNewKid::OnAdoptionDialogCompletion

UPDATE 64:
- It looks like EA made a mistake with the ITF patch and removed the Toddler-Chat interaction from the game. This is now fixed and sims can chat with toddlers who have been taught to talk.
- The budget simulation of inactive households now also affects homeless households.
- There is a new tunable feature, which is disabled by default, that simulates the lifetime happiness points of inactive sims. Inactive sims will earn a certain amount of lifetime happiness every day depending on a few checks on their traits and families. In addition, this feature will also simulate the lifetime happiness earnings of destination locals in non-Future worlds during the loading screen while travelling, depending on the number of days that have elapsed in the homeworld since the last time the destination world has been played.
Tuning: Set SimulateLifetimeHappinessForInactives to True to enable this feature. Set to False to disable.
- There is a new tunable feature, which is disabled by default, that makes it so that newborn twins and triplets will be given the same zodiac sign.
Tuning: Set PregnancySetSameZodiac to True to enable this feature. Set to False to disable.
Method: Sim::AddInteractions

UPDATE 63:
- The game normally increases your bills by a percentage of the worth of all the vacation homes that your household owns. This is fine, but I found out that future homes are considered as vacation homes in this calculation. Future homes should obviously have no effect on your present-day bills. This is fixed.
- When the game generates offspring for any dying vacation locals during the loading screen while travelling to a destination world, the game will now be allowed to make the chosen parents marry even if they are in different households. Normally, sims who are not in the same household should not be allowed to marry, but it is fine to allow dying vacation locals to marry in this case, because the game will kill at least one of the parents any way. I made it so that after the game gets them married and sets their last names to the chosen family name, the game then will scan all the members of both of the sims' households and set the last names of any teen and younger offspring found to the new family name, so that it is all consistent.
- I found out that when the player travels to the Future World and if there are any descendant households already in the world and the game decides to add an additional descendant to such a household as a result of changing circumstances of the present world and if the game decides not to change the home lot of the descendant household, the game cannot properly instantiate the newly added descendant into the world. This means that the descendant appears in your relationship panel and in the family thumbnail in town-view, but is nowhere to be found. This update fixes this, and the descendant will now be properly instantiated into the world.
Method: Mailbox::CreateRegularBillForHousehold

UPDATE 62: Story Progression can now make inactive Plantsims have Plantsim babies on their own. Don't forget that Plantsims can't get pregnant, and the only way for them to have offspring is by planting, cultivating and harvesting a forbidden fruit which produces a baby that more or less looks identical to the sim who harvests the plant. EA also made it so that the offspring is only linked to the sim who harvests. I made it so that Story Progression uses these same rules.

UPDATE 61:
- I found out that non-robots cannot propose marriage to robots, but robots can. It looks like EA made a mistake and forgot to prevent robots from proposing marriage as well. This is fixed.
- Story Progression will no longer be able to pick a Plantsim while creating a pregnancy/offspring, as Plantsims can't get pregnant.
- When a sim gets promoted to level 5 of the Daycare profession, they are given a unique social interaction called Talk About Joys of Children. When you perform this interaction successfully, there is an 80% chance the game will try to make the target sim conceive a pregnancy, or if the target is ineligible, to make the target adopt a baby/toddler/child. The problem is that if the target adopts, the game doesn't genealogically link the adopted sim to the target's partner if there is one. This is fixed.
- I found out that the game allows robots to be considered as inappropriately dressed if there is a social event with a dress code, even though robots can only be in their everyday outfit. This is fixed. In addition, I decided to add an extra check to this inappropriate outfit code. If a sim is in their outerwear and seasons is enabled in the current world and the outside temperature is cold enough, then the game won't consider that sim as inappropriately dressed any more.
Method: Socializing.SocialTest::TestProposeMarriage
ActiveCareer.ActiveCareers.Daycare.JoysOfChildrenSuccess::MakeChild

UPDATE 60:
- Story Progression can now make a vampire die of starvation as long as the vampire is a teen, as they still have the Hunger motive and are not fully fledged vampires. Story Progression cannot make a child die of starvation any more. In order for Story Progression to kill a sim of starvation, the sim now needs to pass certain checks. If the sim's household funds is not below 1000, then they can't die of starvation any more. Otherwise, the chance is reduced if the sim is a mooch or is living in a moderate or high-valued lot and so on.
- Story Progression can now also make a sim die of a shark attack or scuba-diving as long as Island Paradise is installed, the sim is teen or older and not a mermaid, mummy or robot, and the world has at least one dive spot.
- Story Progression can now also make a sim die of ranting if the sim is young adult or older.
- EA deletes certain Travel-related features when the homeworld is loaded, but they only do this if the homeworld is a base-type homeworld. They seem to have forgotten to add a check for downtown-type homeworlds. This is fixed.
Method: InWorldState::Startup

UPDATE 59:
- EA's Career code cannot pick Plumbots who don't have the Office Drone trait chip as coworkers of an active sim any more.
- There is a potential issue in the game when an inactive sim dies in a destination world. If the dying sim has a significant relationship with either a currently selectable sim, or with a member of the active household that remained in the homeworld, the game is supposed to put their urnstone in a mausoleum, so that the player gets to decide whether to delete them or not. However, sometimes the game cannot check the relationships properly, and ends up deleting the dying sim even if they have a significant relationship with the player's sims. This update fixes this issue.
- Story Progression cannot make vampires die of starvation any more.
Method: Careers.Occupation::AddCoworker()
Careers.Career::ChooseBoss
StoryProgression.KillSim::KillSimExecute(SimDescription target)
StoryProgression.KillSim::KillSimExecute(SimDescription target, SimDescription.DeathType deathStyle)
StoryProgression.KillRoommate::KillSimExecute(SimDescription target)
StoryProgression.KillRoommate::KillSimExecute(SimDescription target, SimDescription.DeathType deathStyle)

UPDATE 58:
- Story Progression will not attempt to give a job to or promote/demote a Plumbot if the Plumbot doesn't have the Office Drone trait chip.
- When the game creates a household in the Future World, it won't be able to pick Plumbots as the potential parent of any children the game may create within the household.
Method: StoryProgression.GetJob.SimSearchContext::IsValid
StoryProgression.PromoteDemote.SimSearchContext::IsValid
SimUtils.SimCreationSpec::ChooseParents

UPDATE 57: Story Progression will not attempt to give a sim in the Future World a job that is not available in the future.
Method: StoryProgression.GetJob::ChooseRandomCareer

UPDATE 56:
- Sims can't send love letters if the current world is the Future World and the target is in a different world, or if the current world is not the Future World and the target sim is in the Future World.
- I found out that Story Progression is able to create romances even if one of the picked sims is a Plumbot who does not have the Capacity to Love trait chip. Story Progression is also able to create engagements and marriages even if one of the picked sims is a Plumbot or Simbot. These are fixed.
Method: Mailbox.WriteLoveLetterMailboxInteraction.Definition::CanWriteLetterTo
SimDescription::CanHaveAutonomousRomance

UPDATE 55:
- In an unmodded game, when the game creates an offspring by skipping the pregnancy such as when it generates offspring for vacation locals or when it creates your Future Descendant household, the created offspring cannot properly inherit their genetic body shape (fatness and fitness) from one of their parents, and instead the game randomizes these attributes. This update fixes this issue. I made it so that the game will still randomize the offspring's current body shape, which is fine, because over time the sim will revert back to their original genetic fatness and fitness values. Additionally, I found out that when Story Progression performs its Change Fitness story action, the game actually changes both the genetic and current body shape of the sim. This is also fixed, and now Story Progression will only affect the current fatness and fitness values of the sim.
Method: SimUtils.SimCreationSpec::Instantiate(SimDescription dad, SimDescription mom, bool updateGenealogy, WorldName homeWorld)
StoryProgression.ChangeFitness::Execute
- When the game resets and extends a sim's aging days, such as when a sim eats ambrosia, the game doesn't cancel any aging alarms which the sim may have. This causes the sim to go ahead and age up later in the day despite having their aging days reset. This is fixed.
Method: ActorSystems.AgingState::ResetAndExtendAgingStage

UPDATE 54: The game could still pick a sim from a special household while generating an offspring for any dying vacation locals during the loading screen while travelling. This is fixed.

UPDATE 53: In an unmodded game, sims who are in special households are allowed to send attraction date calls, gifts and are also allowed to ask the player if their child can play with children in the active household. Additionally, when the game attempts to generate a pregnancy while the picked sim doesn't have a partner, the game can pick a partner who is in a special household. None of this should be allowed, because sims such as tomb mummies, tourists and members of the household that travelled to the current destination world before your current household are all part of special households which can cause strange behaviour. These are fixed.
Method: AttractionNPCBehaviorController::IsValidRelationship
PlayDateManager::OnDailyPlayDateCheckAlarm

UPDATE 52:
- In an unmodded game, when a sim travels to/from a destination world, the game can't preserve the amount of money and the highest-valued sculpture the sim has made from the sculpting skill. This is fixed.
Method: SculptingSkill::MergeTravelData
- This update adds a new tunable feature, which is enabled by default, that makes the game recover any inactive, housed sims that have gone unexpectedly missing. Housed babies and toddlers seem to be especially affected by this situation.
Tuning: Set MaintenanceFixMissingSims to False to disable this feature.

UPDATE 51: In an unmodded game, Story Progression can give sims younger than young adult completed university degrees which should not be allowed. This is fixed.
Method: StoryProgression.AddAcademicsDegree.SimSearchContext::IsValid

UPDATE 50: This update changes the way my butler fix from UPDATE 4 works. It shouldn't be necessary for the player to dismiss and rehire any butlers who are already hired in their games when they start using this mod.
Method: Babysitting::CheckForChild

UPDATE 49: Inactive sims may now adopt a baby, toddler or child as part of my pregnancy generation feature from UPDATE 17. Sims will not adopt if they are in a committed relationship and they can conceive a baby. Otherwise, they will roll a chance to be allowed to adopt, and the chance depends on their traits, their age and how many children they already have (adopted or not) and so on. Inactive sims in vacation destinations will only be allowed to adopt children, because EA never allows babies or toddlers in these worlds. Finally, if the current world is the Future World, then the sim will have a chance to engineer a baby, rather than adopt, as long as the sim is in a committed relationship and they can engineer a baby with their partner.

UPDATE 48: This update fixes quite a few serious issues with the Daycare profession.
- In an unmodded game, whenever the game tries to determine which sim should carry a toddler to/from your daycare, it initially tries to find an eligible sim from the toddler's household. This is fine, but if it can't find an eligible sim at that time, it always creates a brand new teen babysitter NPC to carry the toddler. I see that EA considered picking a babysitter NPC who had already been created in the game, but they disabled this feature for no reason, and because of this, the game bloats your world with potentially hundreds of babysitters who can't be interacted with. This update fixes this issue, and now the game will try to pick a babysitter NPC who already exists in your game.
- When there are no longer any active sims who are in the Daycare profession, the game then checks all the babysitter NPCs who had been created to carry toddlers to the Daycare lots in your world, and then deletes them. However, it doesn't delete their relationships, if there are any, which causes the relationship panel to get bloated and lag. This is now fixed, and the game will permanently delete these babysitters. If your game is already full of babysitter NPCs as a result of playing a Daycare for a long time, you can do a few things to get the game to delete these sims for you. If all the active sims who are in the Daycare profession quit their jobs, the game will delete all those NPCs. If you don't want to do this, then I believe your only option is to switch to another household which doesn't have any sims in the Daycare profession, then save and reload your world. The reloading will get the game to delete the babysitter NPCs.
Method: ActiveCareers.DaycareToddlerTransportSituation::GetTownieBabysitterForChild
ActiveCareers.DaycareToddlerTransportSituation::DisposeBabysitterPermanently
ActiveCareers.DaycareToddlerTransportSituation::DeleteBabysitter

UPDATE 47:
- In an unmodded game, if the game ages up a homeless sim by instantiating them, there is a high likelihood it sometimes ages them up again the next day. This especially affected younger sims. This issue is now fixed.
- In an unmodded game, when the social worker arrives to collect any abandoned/neglected humans/pets, the game removes the collected sims' relationship flags and also disables their aging. This causes pets to lose their litter-mates flags, as it is a relationship flag. The removed relationship flags are lost forever, but if the player saves and reloads their game, the game will re-enable the aging of any collected sims. This update fixes these issues, and now the game will not remove any relationship flags, and will not disable the aging of any collected sims, so you don't need to save and reload your game now.
Method: AgingState::DeathTransitionStarted
SocialWorkerChildAbuseSituation.WaitToRoute::Init

UPDATE 46: In an unmodded game, whenever the game adds multiple pets to a household, if these pets are being added within 2 sim-minutes of each other, the game assigns the litter-mates relationship flag to the pets. This is why if you create pets in CAS, they all end up litter-mates with each other, even if they are different species. This update adds more checks to this feature which fixes these issues. The game can now only assign the litter-mates flag to any two pets as long as the pets are baby animals and they are siblings of each other. The litter-mates flag is not a genealogical flag, it is a simple relationship flag which actually has no effect on gameplay.
Method: Household::Add

UPDATE 45: In an unmodded game, Story Progression can kill roommates in dormitories/apartments without checking to see if the sim in question can even be killed. This causes the game to kill babies/toddlers or plumbots and so on. This is fixed. In addition, Story Progression can kill unlucky sims, but unlucky sims can only die from old age in the Sims 3. This update prevents Story Progression from killing unlucky sims. They have to live through their entire lifetime and die from old age.
Method: StoryProgression.KillRoommate::SelectTarget

UPDATE 44:
- I came across another situation in which the game inefficiently deletes a pregnant or ghost pet when the social worker arrives on a lot after all teen and older human sims in a household die. This has been fixed.
- When the game considers moving Sim A into their partner Sim B's household now, if Sim A is rich and Sim B is not, the game prevents Sim A from moving if Sim A has the Snob trait. If Sim A doesn't have that trait, then the game allows Sim A to move if Sim A's current household has at least one sim who happens to be Sim A's parent, grandparent or great-grandparent.
Method: SocialWorkerChildAbuseSituation::MoveSimDescriptionToNewHousehold
SocialWorkerChildAbuseSituation.DestroySimsHelper::DeleteSims

UPDATE 43: This update now prevents sims from moving in with their partner if the leaving sim is rich and the destination family is not. In such a case, the other sim will move in with the originally picked sim. This way sims who live in a large house don't just leave it to move into a homeless household.

UPDATE 42:
- I found out that this mod would cause the game to crash under a rare situation when a social worker attempted to put an abandoned pet, or a pet that has been put up for adoption by the player, into the adoption pool and if the adoption pool was full. This has been fixed. I may as well give a tip about core modding here. If you are modifying on IL level, make sure that you correctly set the maxstack declaration at the top of any method that you modify. If your modified method has a higher stack size than EA's original, you need to increase the maxstack to the appropriate value. If you don't do this, the game crashes if it attempts to run the part of the code that uses that higher stack size. In my case, in UPDATE 33, I fixed an issue where the game inefficiently deleted pets which the game was trying to put into the adoption pool, causing the family trees of related pets to get corrupted. However, that fix involved adding code that increased the stack size to 4 from EA's 2. I didn't increase the maxstack to 4, so the game crashed in that particular case. If you don't know how to count the stack size, or if you are not sure, you may want to recreate the method in C#, and then ildasm your DLL and take a look at what the maxstack was set to there.
- I came across other situations in which the game inefficiently deletes pets which cause the family trees of related pets to get corrupted. The game randomly removes pets from the adoption pool at midnight every day, but doesn't delete them just yet. The next time you load your game, the game then inefficiently deletes those pets, causing a very serious UI corruption if the player ever selects a pet that is blood-related to the deleted pet, preventing the player from playing the game. This is now fixed. Existing pets that are suffering from this issue won't be fixed. In addition, if the player tries to sell a horse at the Equestrian Centre, if the Buy Horse pool is full and the game can't remove a pet to make room for the horse that is being sold, the game then also inefficiently deletes the pet. This has also been fixed.
- The game will now end a Neighborhood Pet Adoption on a lot when the last teen or older human member of the household on the lot dies and before the social worker arrives to get the pets. Before this update, the game ended the event at the end of the social worker situation. It's better to end it before, so that the social worker doesn't spend time trying to get the baby animals who are supposed to be either deleted or adopted by another family anyway.
Method: PetPool:RandomRemovePet
PetPool:ClearAllPets
RabbitHole.RabbitHoleInteraction::AdjustPosture
GrimReaperSituation::ScheduleSocialWorkerOrSitterIfNecessary

UPDATE 41:
- In an unmodded game, if the game creates a future descendant household with the matriarchs/patriarchs being a same-sex couple, if the game adds an offspring to this couple, the game does not link the offspring to both of the parents, and instead only uses one parent to generate the offspring. This is an oversight caused by EA's use of their already-existing code to handle a unique situation like this, as sims in the Future World can engineer a baby, and same-sex couples can have genetically related offspring. This is fixed.
- This update also fixes an EA coding mistake which may cause a script error while the game is trying to remove a future descendant as a result of causality.
Method: FutureDescendantHouseholdInfo::ChooseSimToFadeFromTimeLine

UPDATE 40:
- I came across some serious issues with this game's genetics system. Whenever the game creates a random elder sim, the game always assigns the dark brown hair colour as the sim's genetic hair color, and then sets the sim's active hair colour to a random grey shade. This update changes this and makes it so that the game sets the sim's genetic hair colour to a random natural hair colour. In addition, whenever the game generates an elder offspring, the offspring cannot inherit their genetic hair colour from their parents. Instead, the game sets the sim's elder grey colour as the sim's genetic hair colour, which is why non-elder future descendants whose parents are elders end up having grey hair. This update fixes all of these issues. Existing sims who are already suffering from these issues won't be fixed.
- When the game creates a future descendant household, the game can create a child or teen offspring for any young adult or older member of the household. If the household member is adult or older, it can additionally create a young adult offspring. However, if the game creates a young adult offspring, it is unable to genealogically link the sim to their parents, which is a serious issue. This is now fixed. Existing sims who are already suffering from this issue won't be fixed.
Method: FutureDescendantHouseholdInfo::Instantiate
FutureDescendantHouseholdInfo::CreateAndAddDescendant
Genetics::MakeSim(CASAgeGenderFlags age, CASAgeGenderFlags gender, WorldName homeWorld, uint outfitCategoriesToBuild)
Genetics::MakeDescendant(SimDescription dad, SimDescription mom, CASAgeGenderFlags age, CASAgeGenderFlags gender, float averageMood, Random pregoRandom, bool interactive, bool updateGenealogy, bool setName, WorldName homeWorld, bool plantSimBaby, Pregnancy.BabyCustomizeData customizeData)

UPDATE 39: I found out that when an imaginary friend is made real, the game sets the sim's voice pitch to the middle of the slider. This is now fixed, and the game will randomize the voice pitch.
Method: OccultImaginaryFriend::MakeReal

UPDATE 38:
- In an unmodded game, whenever the player initiates the Customize Collar and Coats interaction on a pet, and if they change anything in the following CAS screen, the game changes a pure-breed pet's breed name to Mixed. This is fixed.
- In an unmodded game, if two pure-breed pets with identical breeds conceive an offspring, the game assigns the Mixed breed to the offspring, rather than the breed of the parents. This is also fixed. Note that breed name has no effect on gameplay. It is only used when you are adopting a pet from a shelter or when you are putting a pet up for adoption. It is still good to fix these issues, though.
Method: Sim::CustomizeCollarAndCoats
GeneticsPet::CreateAndModifyBabyPetSimDescription

UPDATE 37: This update adds a few more checks to Neighborhood Pet Adoption. The game will not create a Neighborhood Pet Adoption if the mom-to-be has a partner who is a member of the active household. In addition, when the game tries to find a candidate father, if the candidate has a partner who is a member of the active household, then the game can't pick that pet as a father any more. This way, the player will have more control over their pets.

UPDATE 36: This update adds a new tunable feature, which is disabled by default, that makes it so that the game doesn't age inactive babies born through a regular pregnancy to toddlers in one day.
Method: ActorSystems.Pregnancy::PregnancyComplete
Tuning: Set BabyInactiveAllowImmediateAging to False to prevent the game from aging inactive babies born through a regular pregnancy to toddlers in one day. Set to True, which is the default value, to revert to original EA behaviour.

UPDATE 35:
- Merge Households was not able to merge the households if neither Household A nor B was rich and they were blood-related to each other, but without a friendly/romantic relationship, because the game still checked for a friendly/romantic relationship even if the households had a blood-relation. The requirement in such a case is that there is either a blood-relation, or a friendly/romantic relation between the households. This is fixed.
- When the game generates a pregnancy, it will more properly set the relationship bits between the sims now.

UPDATE 34: I dislike EA's Merge Households story action. It has very few checks and is able to more or less randomly merge households. This update adds many more checks to this feature. Now, whenever the game attempts to merge Household A into Household B, it first checks to see if at least one teen or older human member of Household A has an Ex or Enemy type relationship with at least one teen or older human member of Household B, and if so, prevents the merging. If not, and at least one human member of Household A is blood-related to at least one human member of Household B, then the game allows the households to merge if Household B is rich, or if not rich, if Household A is not rich. Don't forget that homeless households are not considered as rich by the game. Finally, if there are no blood-related sims between these households, then the game requires that there is at least one friendly or romantic relationship between them, and if so, allows the households to merge as long as Household A has less than 1000 simoleons in their household funds, has no house or has a house that is worth less than one fifth of the Rich threshold. The Rich threshold for non-Future worlds is 100000, and for the Future world it is 500000 simoleons.
Method: StoryProgression.MergeHouseholds::IsValid
StoryProgression.MergeHouseholds.HouseholdDelegateHelper::IsSecondaryValid

UPDATE 33:
- I found out that whenever a sim is supposed to age up to the next age stage, the game can only make the sim age up if the sim in question is instantiated in the world. However, homeless human babies and toddlers, and pets in regular homeless households are never instantiated, meaning that they end up not being able to age up while their housed counterparts continue to age normally. This update makes it so that the game properly ages up such sims by instantiating them temporarily at 3am every day.
- I found out that when the game attempts to put a pet into the adoption pool, if the adoption pool happens to be full and if the game can't remove any of the pets which are already in the pool, the game inefficiently deletes the pet, which ends up corrupting the family trees of related pets. This update fixes that.
- The game will not create a Neighborhood Pet Adoption event any more if it can't find an eligible father pet.
Method: PetAdoption::PutPetBackToPool

UPDATE 32:
- This update adds two new tunable features, which are enabled by default, that make the game turn off electronic objects on inactive lots, and also send baby or toddler human sims and baby animals who do not have a teen or older human family member on their current lot to their homes at 3am every day. Stereos, TVs and other electronic objects should be turned off to prevent bloat, and human baby/toddlers and baby animals can't use stairs, so they end up stuck when trying to go home and cause the game to lag, not to mention that they should be home at that time any way.
- When an inactive household adopts an unadopted baby animal at the end of a Neighborhood Pet Adoption event, the game will immediately teleport the animals to their new homes, as otherwise they end up stuck on their current lots if the lot has a foundation and stairs.
Method: LotManager::CleanUpLotsAndInventories
Tuning:
- Set MaintenanceTurnOffElectronics to False to prevent the game from turning off electronic objects on inactive lots at 3am.
- Set MaintenanceSendYoungstersHome to False to prevent the game from sending unsupervised human baby/toddlers and baby animals to their homes at 3am.

UPDATE 31: Whenever a sim dies, the game is supposed to give the Heartbroken debuff to remaining sims who have a positive, romantic relationship with the dying sim, or the Mourning debuff to sims who are in the same household as the dying sim. The Heartbroken debuff is given properly, but there are some problems with the Mourning debuff. If Story Progression kills a sim or pet, the game is unable to give the Mourning debuff to sims in the same household. This is now fixed. In addition, the game is also supposed to give the Mourning debuff to sims who have a good relationship with the dying sim even if the sims are not in the same household. EA intended to make it so that if sims have a relationship of 20, then they would be given the Mourning debuff. However, in the tuning, they set this value to 101, which disables this feature, because relationship values range from -100 to 100. If you want to fix this, you need to make a tuning mod for yourself which modifies the "Urnstone_0x8332d3edece83e1e" XML in GameplayData, and set the value for kMinLikingAddMourning to a lower value. I recommend that you set this to 40, 60 or 80. Finally, I dislike the fact that there is no relative check for the Mourning debuff. Sims who have a familial relationship with the dying sim should always be given this debuff as long as they know each other and regardless of their household or relationship, and this update adds this feature.
Method: KillSim::KillSimExecute
KillRoommmate::KillSimExecute
RemovePet::Execute
Urnstone::FinalizeSimDeathRelationships

UPDATE 30:
- This update adds a new tunable feature, which is enabled by default, that randomizes the voice type of a sim whenever they age up to child from toddler, or to teen from child. In an unmodded game, babies and toddlers only have access to the first voice type, and children have access to the first two voice types, which means that sims born in-game will all have the same voice type. This feature guarantees that all sims have a chance at having a different voice type.
Method: AgingState::AgeTransitionCompleted
Tuning: Set AgeUpRandomizeChildandTeenVoice to False to disable this feature.
- I have added long-distance partner checks to the prom fixes from UPDATE 17.
- I came across a serious issue. In an unmodded game, whenever all teen and older human sims in a homeless household die, the game inefficiently deletes the remaining pets and children and younger human sims, corrupting the family trees of remaining sims who are related to the deleted sims. Normally, if the household has a house, the game creates a brand new, random household for each child and younger human sim, and makes that household adopt the sim. On the other hand, pets are put into the adoption pool. So, this update makes it so that the game will also perform this same routine for homeless abandoned children and pets. If the game cannot find a household for a particular sim at all, then the game will properly delete the sim in question without corrupting family trees.
Method: Urnstone::CheckForAbandonedChildren

UPDATE 29:
- In an unmodded game, when EA's Story Progression attempts to generate an offspring for a dying vacation local during the loading screen while travelling, the game can pick one of the travelling sims as a potential parent which should never be allowed. This is fixed.
- In an unmodded game, when EA's Story Progression attempts to generate a new romance or a new pregnancy, it is allowed to pick sims who have a long-distance partner, because Story Progression doesn't properly check long-distance partners. This is fixed, and sims who have a long-distance partner cannot be a part of such story actions any more.
- I found out that the game doesn't randomize the muscle definition and breast size of adopted babies. This is fixed.
- When the game splits a household, in addition to changing the last names of any leaving offspring to that of the leaving parent, the game will now also change the last names of the remaining offspring to that of the remaining parent.

UPDATE 28: In an unmodded game, if a sim initiates the Ask To Watch The Stars interaction autonomously, the game can't actually push the sims to watch the stars and the interaction comes to an abrupt end. This is fixed. In addition, housed families in destination worlds were still going bankrupt very quickly, so I have added more checks to better simulate their earnings and losses.
Method: SocialCallback::WatchTheStarsSuccess

UPDATE 27: There is an issue in the game whenever the game generates a pregnancy. EA uses their household creation code in order to get the parents into a committed relationship, but the code doesn't really suit the Story Progression action. In an unmodded game, the game can get the parents married even if they are in different households. This should never be allowed, because then if Story Progression moves the sims into the same household, the game will not be able to change the last names of any existing offspring to the new family name. In addition, if a regular pregnancy is created, the game is normally very likely to make the sims marry, but the code doesn't work properly. Now, if the parents are members of the same household, the game will be very likely to make them marry, and if they are in different households, it will be very likely to make them get engaged. Don't forget that Story Progression can then go ahead and move the sims together, and then the sims may get married on their own and so on.

UPDATE 26:
- Sims were still able to sometimes laugh at a particular sim for outfit inappropriateness over and over again on random lots. This update should fix this.
- In an unmodded game, Story Progression can make teens get engaged or married, which should not be possible. This is now fixed. In addition, Story Progression is unable to break sims up as a result of an EA oversight, this is now also fixed.
Method: StoryProgression.ChangeRelationship::Execute
- When Story Progression attempts to perform the Move In With Partner action, the game allows sims who have teen or younger offspring in their household to leave their children behind. In addition, it allows teens to move in with their partner and it also allows sims who are currently protected to move in with their partner. Now, the game properly checks to see if the sim has any children in the same household and prevents the sim from moving in with their partner in such a case. Teens are now only allowed to move in with their partner if they don't have any blood-related sims in their current household. Protected sims cannot move in with their partner any more.
Method: StoryProgression.MoveInWithPartner::MoveInWithPartner
StoryProgression.MoveInWithPartner::NotLivingWithPartner
- When Story Progression performs the Split Household action, the game allows the picked sim to leave their teen or younger offspring behind, and if the leaving sim happens to have a partner who stays in the original household, the game attempts to break the sims up, but doesn't do it properly. This update makes it so that the game now checks to see if the leaving sim has any teen or younger offspring and if so, attempts to move the offspring into the newly created, splitting household. I made it so that the game checks to see if the offspring in question has their other parent in the original household, and if so, rolls a 50% chance to be moved into the new household with the picked parent. If the original household doesn't contain the other parent, the offspring is moved into the newly created household. If that happens, the game changes the offspring's last name to that of the picked parent, if it isn't the same already. Now, the game also properly breaks sims up if they end up in different households, as EA originally intended. Finally, EA added a feature with the Pets expansion where the leaving sim is able to take their favourite pets along with them. Normally, the new household would be guaranteed to have space for the pets, but now that sims are smart enough to take their children with them, the game should check to see if the new household can support the number of pets being moved in. So, now the game will also check to see if the new household has enough room for each pet being moved in.
Method: StoryProgression.SplitHousehold::Execute

UPDATE 25:
- In an unmodded game, the game can give an alien baby a voice type that is unavailable to babies, causing the sim to become mute until they age up to either child or teen depending on the voice type that is given. This update fixes this.
- I found out that the game doesn't randomize the voice pitch of newly generated pets, causing all pets to sound the same. This is also fixed.
Method: Public GeneticsPet::MakePet(CASAgeGenderFlags age, CASAgeGenderFlags gender, CASAgeGenderFlags species, ResourceKey outfitKey)
Private GeneticsPet::MakePet(SimBuilder builder, CASAgeGenderFlags age, CASAgeGenderFlags gender, CASAgeGenderFlags species, SpeciesSpecificData speciesData, WorldName homeWorld)
Genetics::MakeAlien

UPDATE 24: This update makes it so that if an inactive household adopts one of the remaining baby animals at the end of a Neighborhood Pet Adoption event, the game will set the pet's last name to that of a random member of the adopting household. Plumbots are skipped.

UPDATE 23: This update makes it so that if an inactive household adopts one of the remaining baby animals at the end of a Neighborhood Pet Adoption event, the game will remove the protection flags that it initially applies to the baby animal. This is necessary, otherwise EA's Story Progression will consider both the household and the pet as protected even if there are no other members of that household who are protected, and won't be able to perform certain actions on them. If the household in question already has members who are protected, then Story Progression will still properly consider the household and the relevant sims as protected anyway.

UPDATE 22: This update adds a new feature to Neighborhood Pet Adoption which makes it so that if there are any unadopted pets remaining at the end of the adoption event, each unadopted pet will roll a chance to be adopted by a random, inactive household.
Tuning: I have set the chance to 50 by default, but you can change this percentage value to whatever you want by modifying the kNeighborUnadoptedPetChanceToBeAdopted value. Set to 0 to disable this feature.

UPDATE 21: This is just a small text fix for the description of the SortInteractionListForSim within the mod.

UPDATE 20: This update adds a new tunable feature to the mod that prevents the game from sorting the pie-menu interaction list when the player clicks on a sim, completely getting rid of pie-menu lag. Thanks to LazyDuchess for notifying me.
Method: Sim::GetAllInteractionsForActor
Tuning: Setting SortInteractionListForSim to False, which is the default setting in the mod, prevents the game from sorting the pie-menu interaction list, getting rid of pie-menu lag. The order in which the game will show pie-menu interactions in this case will be different from the order you may be used to. Set to True to revert to EA original behaviour with pie-menu lag.

UPDATE 19: This update fixes further issues with Neighborhood Pet Adoption. In an unmodded game, Neighborhood Pet Adoption can make a horse give birth to multiple foals, which should never be allowed. Regular horse pregnancy already prevents this, so this is fixed. In addition, if the game succeeds in finding a father pet, this update now makes it so that cats and dogs can give birth to same-egg descendants depending on EA's chance rolls, and when a large and small dog produce a litter, some of the descendants may be of their father's species, and some may be of their mother's species. The code is the same as EA's regular pregnancy code, this update simply adds these necessary features to Neighborhood Pet Adoption.

UPDATE 18:
- This update fixes a large number of outstanding issues with Neighborhood Pet Adoption. In an unmodded game, whenever the game emigrates, merges or moves out a household, or whenever the last non-pet member of a household is removed from the household for any reason, the game is unable to end the neighborhood pet adoption if it exists in that household, which causes the event to get stuck forever. This is now fixed. In addition, this update now makes the game actually find an eligible father pet for the mom-to-be. The game will only create a neighborhood pet adoption without a father pet if it can't find an eligible father pet at all. I made it so that the game will always pick the mom-to-be's partner if it has one, and if not, it will find an eligible housed pet in your world. The game has a higher chance of picking a father pet from the same household as the mom pet, or a father pet that the mom pet already knows, otherwise the game will pick any eligible, housed pet in your world. If the game succeeds in finding a father pet, then the game will make the two pets partners. If the mom-to-be doesn't have a partner, but the father pet does, then the chance for that candidate father to be picked is heavily reduced.
Method: StoryProgression.EmigrateHousehold::Execute
StoryProgression.MergeHouseholds::Execute
StoryProgression.MoveOutHousehold::Execute
- I came across some serious issues with EA's Story Progression. In an unmodded game, EA's Story Progression is able to kill human sims of any age, including babies and toddlers. However, babies and toddlers can't die in the Sims 3. In addition, if you enable the Pets option under Story Progression, the game is able to create and add pets to households, but also kill pets. The issue is that the game is allowed to kill pets aged baby or adult, which should never be allowed, because pets can only die from old age in the Sims 3. Finally, there is a Story Progression action called Move in with Partner, which causes a sim to move into the household of their partner if they have one. The game properly checks to see if the leaving sim's household has any human sims aged children or below, and if so, requires that at least a teen or older sim gets left behind in order to allow the sim to leave the household. However, the game should also check to see if the household has any pets, in addition to checking human sims children or younger. It looks like EA forgot to add this important check with the Pets expansion. These are all fixed now.
Method: StoryProgression.KillSim::CanKillSim
StoryProgression.RemovePet::CanRemovePet
StoryProgression.MoveInWithPartner::NotLivingWithPartner
StoryProgression.MoveInWithPartner::CanRemoveSimFromHousehold

UPDATE 17:
- In an unmodded game, when the game adds a new pet to an existing household, or creates a new household with a pet, the game doesn't give a proper last name to the pet, and simply sets the pet's last name to the name of their species. This update fixes this, and makes the game set the pet's last name to that of a random member of the pet's household.
Method: StoryProgression::AddPet
StoryProgression::AddHorse
StoryProgression::CreateHousehold
- There is an issue in the game where if Sim A and B go to prom together, the game still is able to trigger the First Kiss and Make Commitment events between the sims even if Sim B has a different partner. EA added a partner check to Sim A to prevent these events, but forgot to add the same checks to Sim B. This is now fixed.
Method: PromSituation::HasNoDateOrDateIsNotPartner
- In an unmodded game, when the game generates a pregnancy, it sets the parents' relationship to steady/engaged/married based on a chance roll. If the game makes the sims marry, and if the game creates a proper pregnancy without skipping it, then the game always sets the father's last name to the mother's last name. This update fixes this and now the game has a 50% chance of choosing either the mother's or the father's last name.
- Previous updates fixed an issue with EA's Story Progression not being able to create a pregnancy in the game. However, it seems that it is very rare for the game to consider creating a pregnancy, which mostly depends on population density and so on. This update adds a new feature to EA's Story Progression which makes the game roll a chance to create a pregnancy once a day. I have made it so that this particular feature is not enabled in the University world. Don't forget that if the game creates a pregnancy in a vacation world, the game actually skips the pregnancy and creates a child offspring and adds the sim to their parents' household immediately. In addition, you should know that both this feature and EA's pregnancy feature work in such a way that if one or both of the parents aren't currently instantiated for whatever reason, or if the female sim doesn't have a house, the game then also skips the pregnancy, and creates a baby sim and immediately puts the sim in the household that was picked by the game initially. This feature only picks households which already have a house, but EA's Story Progression can pick a homeless household and put the baby there. There is nothing wrong with that, but you will not be able to easily tell that the game has generated an offspring in such a case.
Method: StoryProgressionService::DoOneDayOfActions
Tuning: I have set the chance to 10 by default, but you can tune this percentage chance by changing the kPossiblyGeneratePregnancy value to whatever you want. Set to 0 to disable this feature.

UPDATE 16: This update fixes further oversights with EA's Story Progression. I found out that when the game attempts to generate an offspring, it has the potential to sometimes pick a potential parent who may not be valid. This sometimes causes the game to pick teen or younger sims as a potential parent when generating offspring for any dying vacation locals while traveling to a destination world during the loading screen, or picking elder females as a potential parent while already in the world. These are fixed. In addition, I found out that when EA's Story Progression generates an offspring, the game unfortunately doesn't genealogically link the sim to their parents if the game is creating an offspring who is young adult or older. This especially affects vacation destinations, because it is possible for the player to visit a particular world after a long time of playing in the homeworld with aging enabled, which will cause many sims in that world to die from old age, which in turn will cause the game to generate offspring for these dying sims when the player travels to that destination. These issues are all fixed now.
Method: StoryProgression.AddSim::Execute
StoryProgression.GenerateOffspring::Execute

UPDATE 15: EA also forgot to add a SimBot check to their Story Progression Generate Offspring feature which is run when the player travels to a destination world. This update adds this necessary check. I also came across a serious issue which causes the game to age destination sims (China, Egypt, France, University) while the player is in the Future World. It looks like EA forgot to add a Future World check to this feature with Into the Future. While you are in the Future World, only sims in the Future World should age. In addition, I found out that if the player has University Life installed without World Adventures, the game can't age any destination sims (University in this case). This update fixes these issues.
Method: AgingManager::DayPassedCallback
StoryProgression.GenerateOffspring::GenerateOffspring
StoryProgression.GenerateOffspring::FindPartner

UPDATE 14: I found out that EA made a mistake in a certain patch which now prevents EA's story progression from generating offspring for inactive sims. This means that your world will sooner or later stagnate. In addition, I found out that when the game attempts to generate an offspring, the game can pick SimBots as a potential parent, which should never be allowed. EA added a check for Plumbots from Into the Future, but not SimBots from Ambitions. These are all fixed.
Method: StoryProgression.AddSim::CanParticipateInPregnancy
StoryProgression.AddSim::FindPartner

UPDATE 13: I came across another issue which causes the game to accidentally increase the skilling rate of teen vampires whenever the game removes the Sleepy buff from them. This is now fixed, and I believe this mod now fixes all vampire-related fast-skilling issues. Existing teen vampires who are affected by this glitch won't be fixed.
Method: BuffSleepy::OnRemoval

UPDATE 12: I found out that when the game generates a random sim, the game doesn't randomize the sim's muscle definition and breast size. This update fixes this.

UPDATE 11: I found out that in an unmodded game, when you are in a vacation destination, all inactive households will slowly go bankrupt as you keep playing, because they can't make any money. So, this mod does not modify the Mailbox::CreateRegularBillForHousehold method any more, but instead modifies the Autonomy::OnceADayCallback method and simulates the budgets of inactive households in every world, not just in the homeworld. In addition, I realized that EA forgot to add a null check to the preferred vehicle code, so this update fixes that, too.

UPDATE 10: This update fixes an EA mistake which sometimes causes sims to be unable to choose one of their preferred vehicles when they consider routing. In addition, it also fixes an EA oversight that causes sims to consider using a generated-for-free bicycle or scooter when they consider using a vehicle while they have sims following them. This is an issue you will come across in vacation and university worlds, where a sim routes to the road and gets on their bicycle and waits for others, but when the other followers arrive, they can't get on the bicycle/scooter, because those vehicles do not allow multiple passengers. These are all fixed.
Method: Sim::GetOwnedAndUsableVehicle
Vehicles.GoHereWithSituation::ShouldCarBeUsed

UPDATE 9: In an unmodded game, whenever an active sim receives a memory on an active lot, the game takes a screenshot and assigns it to the memory. This causes the save to slowly become bloated, as even irrelevant or regularly given memories are given screenshots. In addition, most of the screenshots do not really portray or describe the memory properly anyway. This update adds a new feature that allows the player to prevent the game from automatically taking and assigning screenshots to memories. This feature is disabled by default. You can enable it by changing the MemoryAutomaticScreenshotsAllowed value to False.
Method: LifeEventManager::GetScreenshot

UPDATE 8: This update fixes an important oversight by EA. Even though the issue is important, it was difficult for the individual player to see what was wrong in the game. There is a feature in the game where each CAS part can have a IsRevealing flag assigned to it. This flag is used by the game in two situations. Whenever a sim who is in their sleepwear considers going from one room to another during non-sleeping hours, and if the sim is wearing at least one CAS part which is revealing, then the game makes the sim switch out of their sleepwear into their everyday clothes as long as there is one sim in their household who is not their partner. This prevents sims from walking around in their revealing underwear during daytime. In addition, if the sim is currently wearing inappropriate clothing (such as wearing swimwear on a non-beach lot without a pool, or everyday in a formal party and so on), when other sims consider reacting to the sim's inappropriate clothing, if the sim is wearing revealing clothes and if the other sim has gender preference for the sim, then the other sim reacts by cheering or pining. There is a serious issue here. EA forgot to add proper romance-capability checks, and only added gender preference checks to this feature. This causes teens to cheer/pine for older sims if the older sim is wearing revealing clothing. Worse yet, it causes teen and older sims to cheer/pine for children who are wearing revealing clothing. This issue is now fixed, and the game will only allow sims to cheer/pine if they are truly romance-capable with the other sim. Finally, I have added an extra feature to the game which makes it so that when Sim A considers initiating an autonomous romantic interaction towards Sim B, the game increases Sim A's likelihood to initiate such an interaction if Sim B is wearing revealing clothing. This feature is disabled by default, you should read the Tuning section below to see how to change it. There is one more thing you need to know about the IsRevealing flag. EA added this feature to the game, but did a very poor job properly assigning this flag to relevant CAS parts. The only EA outfits I have come across which have this flag are in base game, and I believe one outfit is in Island Paradise. The problem is that there are many other outfits in base game, EPs and store content that are supposed to be revealing, but EA didn't add the necessary flag to those outfits. It looks like it is a half-finished feature that they left in the game. It has to be fixed, though. So, how do you fix it? Well, every player will need to go through their entire CAS content (base game + EPs + store + CC), and set the IsRevealing flag on tops, bottoms and full-body outfits which are for children and older. There is no need to set this flag for toddlers or babies, but it should be set for children's clothes, so that they know to switch out of revealing sleepwear during non-sleeping hours. It's up to you what you consider as revealing.
Method: Sim::ConsiderReactingtoClothing
Tuning: Set the kRevealingOutfitRomanticSocialMultiplier value to any float number above 1 to enable this feature and make Sim A more likely to initiate autonomous romantic socials towards Sim B if Sim B is wearing a revealing outfit. For example, setting it to 1.05 makes Sim A 5% more likely to initiate such an interaction, or setting it to 1.15 makes Sim A 15% more likely. It's up to you which value you choose, but I would recommend a value between 1.05 and 1.3. You should probably only enable this feature if you have gone through your entire CAS content and set the relevant CAS parts as revealing.

UPDATE 7: This update fixes a few lingering issues with parties. When a player-started party ends as a great party in an unmodded game, the game has a chance to guarantee that an NPC party will be held the next day, and will show the player that it was their party that made the NPC throw the party. However, the new party results from UL are not checked, meaning that amazing, killer or raging parties can't trigger this event. This is fixed. There is another issue with Campaign Fundraisers in that if such a party ends as an amazing, killer or raging party, the game shows the normal party-end notification, and not the great party-end notification it should show. This is also fixed.
Method: HouseParty::OnStartedPartyFinishes
CampaignFundraiser::ShowPartyEndTNS

UPDATE 6: This update fixes issues with parties and wishes. There are wishes such as Throw a Great Party in the game, but if you have University Life installed, the game does not satisfy those wishes if the party score happens to be above great. Before UL, there were three party levels: bad, neutral and great. UL added three more: amazing, killer and raging. These new party score levels are not considered as "great" by the game, so related wishes are not fulfilled by the game. In addition, EA made a mistake which makes it so that your regular parties can't result in a bad party score unless you host the party in the university world. Finally, if the host has the Legendary Host reward, the game always sets the party result to great, even if the party ends as amazing, killer or raging, which prevents the host from being given better rewards from those better party results. All of these issues are now fixed.
Method: HouseParty::GetPartyOutcome
HouseParty::GetPartyOutcomeForSim
HouseParty::get_IsGreatParty
NpcParty::get_IsGreatParty

UPDATE 5:
- When the game generates an NPC party in an unmodded game, the game can set the dress code to swimwear even if the host's house doesn't have a pool. This causes sims to negatively react to each other throughout the party by booing and so on. This update adds a check to see if the host has a pool, and if not sets the dress code to everyday.
- The game has a feature where sims react to other sims' outfit appropriateness depending on a large number of checks. One of these checks is to see if the sim's current lot has a pool, and if not and if the sim is in their swimwear, other sims can negatively react to them. However, the game considers fountains as pools, which is a problem. So, this mod makes it so that the game now properly checks swimming pool tiles and not fountain tiles.
- There is another issue in the game which sometimes causes sims to constantly negatively react to a certain sim by booing or laughing at them. This update should fix this issue.
Method: NpcParty::StartNpcParty
Sim::ConsiderStartingClothingReactionBroadcaster

UPDATE 4: This update fixes the butler NPC. They used to be fine until EA modified the babysitting code in a patch, which in turn broke the butler. In an unmodded game, the butler's cooking is very erratic. You will see that they will keep leaving cooking bowls all over the kitchen, interrupting themselves while cooking. If you hire a butler for a household, then switch to another household, and then visit the butler's household a few days later, their kitchen will be full of cooking bowls. In addition, the butler cannot cook for sims who are older than child in an unmodded game. All of these issues are fixed now. You may need to dismiss and rehire all the butlers who are already hired in your game.
Method: ButlerCook::BeginCooking
Babysitting::Init

UPDATE 3: This update fixes further issues with Neighborhood Pet Adoption, and also corrects some of the tuning numbers in the Tuning file.
- In an unmodded game, whenever the game creates a Neighborhood Pet Adoption event, the game doesn't link the baby animals to their mother genealogically, which I dislike. Moreover, the game deletes the remaining baby animals at the end of the event, but unfortunately doesn't delete their relationships which causes them to appear greyed-out in the relationship panels of sims who had met them. This causes the relationship panel to become bloated and lag. This update fixes these issues. Now, the game links the baby animals to their mother, their litter mates, and even to their previously-adopted brothers and sisters. Those baby animals which are unadopted at the end of the event will be properly deleted now and won't occupy any space on sims' relationship panels.
- There were a few issues with the tuning numbers in the Tuning file. For example, if you want to change the kNeighborPetAdoptionPercentChance value, just change the number from 25 to whatever you want, don't set it to say 25f or 10f.

UPDATE 2: This update fixes certain issues with social interactions:
- When Sim A successfully performs the "Kiss and Make Up" Friendly social towards Sim B, if the sims are in a committed relationship, the game removes their committed relationship types and reverts them to Romance (red heart) relationship, which is a mistake by EA. This update fixes that, and now the game will only set the Romance relationship type if the sims are not in a committed relationship already.
- I found out that if Sim A has neither the Inappropriate nor the Insane trait, the game only allows Sim A to autonomously kiss Sim B if they are in a committed relationship with each other. It doesn't matter if they are single or have the Romance relationship type, they can't kiss each other whatsoever. This prevents sims from becoming romantic through regular gameplay. This mod now allows Sim A to autonomously initiate all Kiss interactions towards Sim B, as long as Sim A is not in a committed relationship with Sim C. I have also added this exact same check to the Woohoo and Try for Baby interactions, as they also need the same checks. However, don't forget that EA prevents sims from autonomously initiating the Woohoo and Try for Baby interactions. You need an XML tuning mod which modifies the relevant interactions found in the SocialData XMLs to change this. I made such a mod for myself long ago, and also added many more checks that allow sims to better consider their committed relationships as well. I may release that mod here soon. Finally, Juiced Kiss/MakeOut/Woohoo are not affected by these changes, as EA made them Friendly interactions and sims can already autonomously initiate them.
Method: SocialCallback::OnKissMakeup
SocialTest::TestKissBase
SocialTest::TestWooHoo
SocialTest::TestTryforBaby

UPDATE 1:
- I have added a few more checks to my Simulate Budget For Inactives feature.
- In an unmodded game, when the game attempts to create a descendant whose homeworld happens to be a vacation location with preset facial features (these are China and Egypt), the game still rolls a chance to assign those facial features to the new offspring, which should never happen, as the new sim is supposed to inherit these features from their parents. This update fixes this issue.
- I have added an important new feature to Neighborhood Pet Adoption. In an unmodded game, the game tries to create such a situation every day if there is no Pet Adoption going on in the world. This is a problem, because this mod only allows the game to create a Pet Adoption from households which already own an adult female pet. If your world has very few households with such a pet, then the game will create a Pet Adoption in the exact same households. This update adds a new feature which adds a chance roll requirement to this event which solves this issue. The game now has to pass a 25% chance roll to be allowed to create a Neighborhood Pet Adoption event, meaning that your world may sometimes have such events very often, but at times they may be rare. You can tune this value by modifying kNeighborPetAdoptionPercentChance. I recommend not setting this higher than 50, but if for some reason you want to revert to EA original, then set this to 100.

ORIGINAL DESCRIPTION

This is my core mod for Sims 3 which I made initially about a year ago, and have been building on it as I play the game now and then. The mod is mostly about fixing EA mistakes and oversights, but it also comes with certain small features that I really wanted the game to have. Below, I will describe what this mod does in detail. You can also see the methods modified by this mod and also see how you can tune a feature if it is tunable, so you can easily compare this mod's code with EA's original to see the differences, and also customize the mod. Here is what this mod does:

1) There is an extremely annoying glitch/mistake with the Firefighter active career from Ambitions. This career more or less worked fine before EA modified the code and broke the career in a patch (not sure which one). Basically, EA made a mistake which makes it very likely for the Respond to Emergency interaction to fail and cancel the current job, especially if the emergency is a small fire. This mod fixes this glitch, so you can play the Firefighter career properly now. Ever since I fixed this glitch, the only time I came across a small fire that got cancelled was on a rainy day. It is possible, but very rare that rain may extinguish fires placed outside by the game.
Method: FireFightingJob::FindIsolatedFirePosition

2) There is a glitch that causes Vampires to attain extremely fast skill-gain modifiers if the player saves and quits the game at night-time and then loads that save-game again. If you've ever seen a vampire max out a skill in a matter of seconds, it was caused by this glitch. This is fixed now. If you have vampires already affected by this glitch in existing worlds, they won't be fixed.
Method: OccultVampire::SunsetCallback

3) There is an oversight in the game if you have both World Adventures and University Life installed. You might have realized that the game adds the medium-quality camera to all sims when you first enter a world in such a setup. This free camera usually ends up stuck in inventories, too. However, the game is not supposed to give this camera to sims like that, as it is a glitch. This mod prevents this behaviour. If you want that camera, you can go and buy it from a vacation location, or maybe you can find one at the consignment store.
Method: Photography::OnSkillAddition

4) There is a very annoying glitch with the Punishment system added with Generations. If a child/teen is grounded, but is trying to go to school or work, the game considers this as sneaking out and causes the child/teen to sneak. At the same time, it causes adult and older sims to scold the child/teen, which causes the sim to end up sneaking permanently. EA actually added code to prevent this if the child/teen was trying to go to school or work, but their check doesn't include the Go To School/Work in Carpool interaction and also the Go Home Ownable Vehicle interaction which is what children and teens are engaged in while going to school/work or coming back from school/work. This mod fixes this oversight. Sims who are currently permanently sneaking because of this glitch won't be fixed.
Method: Punishment::IsSimGoingToSchoolOrWorkOrTraveling
Punishment::ShouldApplySnuckOutMoodlet

5) There is an oversight in the game which prevents sims from properly relaxing on pool loungers. You will see that they will spend like 2 or 3 seconds on a lounger and then will find something else to do right away. This mod fixes this oversight and now sims can properly use pool loungers.
Method: Pools.PoolLounger.LoungerRelax.Definition::Test

6) Nectar skill "combinations made" data does not get lost while travelling any more.
Method: NectarSkill::ImportContent

7) Neighborhood Pet Adoption can now only occur in households which already own an adult female pet. The adult female pet needs to be really part of the household for the event to occur. The game cannot create a temporary adult female pet in random households for adoption purposes any more.
Method: PetAdoption::CreatePetInNeighbor
PetAdoption::CreatePetByMom
PetAdoption:: ClearLitterInNeighborhood
Tuning: Set kNeighborPetAdotionPercentChance to whatever percentage value you want. Set it to 10 to make it so that the game has a 10% chance to start such an event. Set it to 100 to revert to EA original. Set it to 0 to completely disable Neighborhood Pet Adoption.

8) When the game generates a new sim who is not supposed to inherit any facial features in an unmodded game, such as when creating new townies and NPCs, the game creates the sim with the exact same face with almost all sliders at zero, and also gives the sim the exact same voice type and pitch. This mod fixes this and now the new sim's face and voice will be properly randomized. I have made it so that the sim's face will only be randomized if the sim is not assigned any predetermined facial features by the game. The game applies such predetermined facial features when the game generates the offspring of existing sims, or when it generates an alien NPC, and so on. In other words, the game will randomize the sim's face and voice only if they need to be randomized.
Method: Genetics::MakeSim(SimBuilder builder, CASAgeGenderFlags age, CASAgeGenderFlags gender, ResourceKey skinTone, float skinToneIndex, Color[] hairColors, WorldName homeWorld, uint outfitCategoriesToBuild, bool isAlien)

9) When Sim A initiates a social interaction towards Sim B, the game checks the relationship between Sim A and B and also Sim B's mood. These are the values the game uses to determine whether Sim B accepts the social. EA made it so that the game increases the effective relationship between Sim A and B +20 if they are attracted, but they unfortunately didn't add any code that increases Sim B's effective mood as well. This mod adds this missing feature which increases Sim B's effective mood by +20, so that attraction is a bit more relevant.
Method: Conversation::GetAdjustedRelationshipValues
Tuning: Change the kTargetSimMoodBonusforAttracted value to whatever you want. Set to 0 to revert to EA original.

10) When Sim A considers initiating an autonomous romantic interaction towards Sim B, if Sim A is in a committed relationship with Sim C, and if the social context between Sim A and B is not amorous, then Sim A now becomes less likely to initiate such an interaction. In such a situation, if Sim A also happens to have the Family-Oriented trait and/or the My Love buff, then Sim A becomes even less likely to initiate such an interaction. In the unmodded game, sims are not aware of their committed relationships when they consider initiating a romantic interaction, which really doesn't make any sense. This mod fixes this issue.
Method: Autonomy::CalculateScoreForSocial
Tuning: Modify the kActorCommittedBaseSocialMultiplier value to change the base likelihood which is applied to Sim A all the time. Modify the kActorCommittedExtraFamilyOrientedSocialMultiplier value to further change the likelihood if Sim A is Family-Oriented. Modify the kActorCommittedExtraMyLoveBuffSocialMultiplier value to further change the likelihood if Sim A currently has the My Love buff. Speaking of the My Love buff, Sim A receives this buff if Sim C is somewhere close to them, and if it has been fewer than 3 days since their marriage and if their relationship is above 0. Set all of these to 1 to revert to EA original.

11) The game will now simulate the budgets of inactive households. In an unmodded game, inactive sims end up earning a lot of money from their careers and professions, because they don't pay bills, and they are almost never charged for anything. I considered allowing them to pay their bills, but came to the conclusion that this is a bad idea, because inactive lots do not depreciate, which makes it difficult to balance their budgets. I also dislike the idea of depreciating inactive lots. Instead, this mod modifies inactive households' budgets twice a week effectively simulating their earnings and losses. It is fairly detailed, and inactive households may lose or potentially even gain money depending on the traits, skills and careers of household members. Don't forget that EA has a feature which checks every day to see if an inactive household has less than 500 simoleons, and if so, sets their funds to 500. So, this is the lowest funds you will probably see if you are looking at inactive households. You can easily change this value if you don't like it by making an XML tuning mod. I believe the XML resource was called "Household".
Method: Autonomy::OnceADayCallback
Tuning: Change the SimulateBudgetForInactives value to False to completely disable this feature. Set to True to enable it again.

Installation: Extract the archive and put the package file called "simler90GameplaySystemsCoreMod" to your Mods/Packages folder in Documents.

Compatibility: This mod is not compatible with any other mod that also modifies the GameplaySystems.dll.

Requirements: Game version 1.67 or later is required. If you are running a non-retail version of the game, you will get a notification saying that you have an out-of-date mod, but the mod is compatible with your game and the notification can be safely dismissed.

You must have the expansion or stuff packs listed below installed to use this custom content. Please see the post text for any exceptions.

Key: - File was updated after upload was posted
Filename - Tip: You can click the magnifying glass to see the archive contents Size Downloads Date
simler90GameplaySystemsCoreMod-UPDATE133.rar

Size: 6.02 MB · Downloads: 37,617 · 29th Nov 2022
Download
6.02 MB 37,617 29th Nov 2022
Don't forget to Thank the creator after downloading! Use the Thanks button located above the screenshots above.
Basic Download and Install Instructions:

See: Game Help:TS3 CC Basicswiki for a full guide!
 
208 Comments / Replies (Who?) - 154 Feedback Posts, 47 Thanks Posts
Hide Thanks Posts for this thread (Show only feedback)
Page 9 of 9
Test Subject
THANKS POST
#201 Old 13th Nov 2022 at 1:03 AM
Thank you to fixed the Investigator.
Mad Poster
#202 Old 14th Nov 2022 at 1:53 PM
Theorist
#203 Old 16th Nov 2022 at 6:56 PM
Just happened to come across this mod and read a little of what it does. With how much this mod changes and fixes, it made me wonder if it would conflict with mods like Nraas Master controller or Story Progression. Those two mods I couldn't play without but I like some of the fixes this mod does but worried that it will counteract the settings I have set up with several of my Nraas mods. Thank you.

For help with my mods please join my discord HERE

**********If you like my builds, mods or videos you can support me at Patreon! **********

*****Thank you for all of your support!*****
Test Subject
#204 Old 17th Nov 2022 at 9:44 AM
Hello, I really like your mod, but since the 108th (?) update I can't adopt anymore. I call the agency but when they arrive the social worker is stuck. Would you like to fix this issue please?
Test Subject
#205 Old 20th Nov 2022 at 8:59 PM
Quote:
Originally Posted by PolarBearSims
Just happened to come across this mod and read a little of what it does. With how much this mod changes and fixes, it made me wonder if it would conflict with mods like Nraas Master controller or Story Progression. Those two mods I couldn't play without but I like some of the fixes this mod does but worried that it will counteract the settings I have set up with several of my Nraas mods. Thank you.


I’d like to know the same
Test Subject
#206 Old 21st Nov 2022 at 6:34 AM
Quote:
Originally Posted by PolarBearSims
Just happened to come across this mod and read a little of what it does. With how much this mod changes and fixes, it made me wonder if it would conflict with mods like Nraas Master controller or Story Progression. Those two mods I couldn't play without but I like some of the fixes this mod does but worried that it will counteract the settings I have set up with several of my Nraas mods. Thank you.


Follow this guide here Step 4 will make it compatible with Nraas story progression https://steamcommunity.com/sharedfi.../?id=1131162350
Forum Resident
#207 Old 23rd Nov 2022 at 7:11 PM Last edited by echoweaver : 29th Nov 2022 at 8:12 PM.
Quote:
Originally Posted by PolarBearSims
Just happened to come across this mod and read a little of what it does. With how much this mod changes and fixes, it made me wonder if it would conflict with mods like Nraas Master controller or Story Progression. Those two mods I couldn't play without but I like some of the fixes this mod does but worried that it will counteract the settings I have set up with several of my Nraas mods. Thank you.


Most NRaas mods are pure scripting mods and have no explicit conflicts. The exception is ErrorTrap, and I think there's another one. i'd have to look it up. However, ErrorTrap doesn't conflict with this core mod either. I've seen a lot of reports of people using NRaas mods successfully with this one.

That said, a big point of this mod is to make EA's Story Progression actually work, so it's worth giving some thought to what NRaas mods you want to use. I'm in my modding-not-playing cycle, but when I start up a game with this mod, I want to do it with no NRaas SP.

If you do run with SP, you probably want to turn off the budget simulation in this mod (there's a tuning). If you run with NRaas Overwatch, then you'll find that it and simler's mod try to do several almost-identical things at the same time (see Updates 32 and 33). I'd be shocked if that didn't cause trouble. Simler's does offer tunings to turn off checks on its side, and NRaas is kind of legendarily configurable, so you ought to be able to turn off the conflicting checks on one side or the other. It might be worth just going without Overwatch and seeing how it goes, though Overwatch does more stuff and I'd be inclined to keep it.

Quote:
Originally Posted by leahmay74
Follow this guide here Step 4 will make it compatible with Nraas story progression https://steamcommunity.com/sharedfi.../?id=1131162350


Huh. I'll have to take a look at those tuning files and see what they do.

Echo Weaver's Simblr: http://echoweaver.tumblr.com/
A portrait in stubbornness - Playing the same legacy since 2009
Sample a Brave Legacy: http://sims3sample.illation.net
Lab Assistant
#208 Old 29th Nov 2022 at 6:19 PM
Incredible, tremendous, extraordinary, specific is too little to say, moreover, I would like to ask if this mod does modifies some of the parameters of the NPCs, such as having romance by themselves or similar? Thanks to anyone who wants to answer!
Test Subject
#209 Old 30th Nov 2022 at 4:15 AM
I love the 132 patch, can you make a tunable or a version where regardless of career level or celebrity level, can every sim own any type of car? That would be nice!!!
Page 9 of 9