Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!

simler90's Gameplay Core Mod

SCREENSHOTS
92,289 Downloads 1,400 Thanks  Thanks 466 Favourited 295,616 Views
Uploaded: 6th Sep 2021 at 11:36 AM
Updated: 5th Jun 2023 at 8:54 PM
UPDATE 197: This update fixes an EA oversight that prevents newly married sims from writing thank you cards to sims who send them gifts. You can write thank you cards by clicking on a mailbox after receiving wedding gifts. Thanks to Ubercuber123 for notifying me.
Method: Misc.Gift::OnRemovalFromMailbox

UPDATE 196:
- EA didn't add any specific barstool animation for when the sim eats spicy food, so this update makes sims who eat spicy food on a barstool stand and then perform the standing animation.
- When a butler serves a group meal, only sims who have half or less hunger motive will be automatically pushed to eat.
Method: CookingObjects.ServingContainerGroup.CallToMeal::GetCallToMealInteractionForEveryone

UPDATE 195:
- Whenever a sim finishes eating a meal that gives the Spicy or Too Spicy buff, the game forces the sim to get up from their seat if they were seated, then makes them perform a unique animation with smoke coming from their ears. However, the issue is that the game forces the sim to perform the seated animation even though they are standing. This update fixes this issue by making the sim perform the seated animation if seated, and the standing animation if standing.
- This update adds a new tunable feature that is disabled by default which makes every inactive toddler who is not cared for by an active daycare sim roll a chance to learn a toddler skill every day. Thanks to zachjohnunlimited for notifying me.
Tuning: Set InactiveToddlersLearnSkills to True to enable this feature.
Method: ActorSystems.BuffSpicy::OnAddition
ActorSystems.BuffTooSpicy::OnAddition
Objects.CookingObjects.EatHeldFood::Run

UPDATE 194: The game is supposed to stop a sim from snubbing another sim in certain situations, such as when one of the sims ages up, or if a certain amount of time has passed since the game made an inactive sim snub another sim. However, there is an issue that causes the sim to permanently snub the other sim. This is now fixed. Existing sims who are suffering from this issue won't be fixed.
Method: ChildAndTeenUpdates.SnubManager::OnSnubTimeout
ChildAndTeenUpdates.SnubManager::OnSimAgeTransition

UPDATE 193: Whenever sims consider sleeping in a bed, the game prevents them from considering this if the sim has an owned bed, the target bed is not their owned bed and their owned bed is on their current lot or on their home lot. What makes no sense is that the game prevents sims from sleeping if their owned bed is not on their current lot, but on their home lot, because in a fully patched game, there are many situations in which sims should be allowed to sleep in such a bed. This update allows sims to sleep if they are allowed to stay over on their current lot, or if they are a guest at a wild party, or if they are a firefighter and the target bed is on a fire station, or if the target bed is on a resort they have checked into. However, note that EA made it so that in such a situation, the game still decreases the likelihood of the sim choosing to sleep in a bed. This doesn't make much sense to me, so you may want to make an XML tuning mod that modifies the BedSleep_0xae29aadc36ba8672 resource in GameplayData.package, and set kAutonomyScoreMultiplierForBedAwayFromOwnedBed to a higher value, such as 0.5 or 0.75.

UPDATE 192:
- Whenever a sim routes to a bed, they always choose the closest side even if they have a claimed side. This update makes it so that sims who have claimed a side will prefer routing to that side. Some players may want to ensure that if they are clicking on a particular side of a bed for the sim to use, then sims should route to that side. However, this is not possible. Note that EA made it so that sims still have a small chance to route to their non-preferred side whenever they interact with multi-part objects.
- Whenever a sim joins another sim's dream in a dream pod, the sim doesn't switch into their sleepwear. This is an EA oversight and it is now fixed.
Method: Beds.EnterSleeping::Route
Beds.EnterRelaxing::Route
Beds.EnterRelaxing::ShouldChangeIntoSleepwear

UPDATE 191: There is a rare issue in the game that can sometimes cause a bed to become stuck which then causes sims who attempt to use it to throw a route failure tantrum. This is fixed.
Method: Beds.BedMakeBed::Route

UPDATE 190: Whenever the game sets the bed ownership on a double bed and if the sim has a partner in the same household, the game attempts to set the other side as the sim's partner's bed, but fails to set an important attribute which prevents the partner from considering that bed as their own bed. This is now fixed. Speaking of beds, you may have realized that sims don't respect bed ownership when they consider sleeping in a dream pod from ITF. If you want to fix this, you need to make an ITUN mod that overrides the DreamPodSleep_BedDreamPod resource in GameplayData.package, and set the following line to look like this:
<ScoringFunction alwaysChooseBest="True" name="BedSleepScoringFunction" specificCommodity="None" />
Method: Beds.BedMultiPart::ClaimOwnership

UPDATE 189: Whenever the game attempts to make a sim get a job in any way, the game will now only consider retired sims if the sim in question is retired from a self-employed career, or if the sim is retired at level 5 or below and their household is currently broke. This should make retired sims much more resistant to becoming employed again.
Method: Socializing.SocialComponent::FindSimsOfRelationshipType
ActiveCareer.ActiveCareers.NPCShowManager::BasicNPCTest
PerformanceObjects.ShowStage::ValidPerformer

UPDATE 188:
- Story Progression will no longer try to change the fatness and fitness of robots.
- In an unmodded game, whenever Story Progression adds a plumbot to an inactive household, the game doesn't bother to add any trait chips to the plumbot. This is fixed. Thanks to tacic92664 for notifying me.
Method: StoryProgression.ChangeFitness::IsValid
StoryProgression.AddServoBot::Execute

UPDATE 187: The game has a feature where if an inactive baby or toddler is a certain distance away from all of their family members while in a random place in the world without a lot, the game is supposed to send the baby/toddler back home. However, the game also performs this distance check if the baby/toddler is on an actual lot, meaning that if all of their family members route a small distance away from them, the game immediately sends them home. This is an EA oversight and it is now fixed.
Method: ActorSystems.Children.CaregiverRoutingMonitor::CountBabiesToddlersAndCaregivers(Household household, Lot lot, Dictionary<Sim, Vector3> lastOnLotPositions, out int babyToddlerCount, out int caregiverCount, out int routingCaregiverCount, out Sim arbitraryBabyOrToddler, bool countServicesAsCaregiversEvenWithoutToddlers)

UPDATE 186: There is an issue that regularly causes the game to reset all the sims in a dive lot whenever a sim tries to go inside an underwater cave. This is now fixed.
Method: Miscellaneous.UnderwaterCave::TentacleWaveUpdate
Miscellaneous.UnderwaterCave::TentacleWaveCallback

UPDATE 185: Bonehilda can drink from a bar from time to time, which is then supposed to create a puddle where she stands. This feature works well if the player doesn't have Late Night installed. However, if Late Night is installed, the glass immediately disappears from her hand after she makes it. This is now fixed. This update also prevents her from making multiple drinks, as this is necessary to make this interaction compatible with Late Night. You may also want to know that EA originally wanted to make it so that she doesn't try to interact with a bar after she makes a drink. However, this feature doesn't really work that well. You may want to make an ITUN override mod that modifies the MakeDrink_Bar resource, and set the advertised value of the BeBonehildaGoofOff motive to 0.
Method: Counters.Bar.MakeDrink::Run
Counters.Bar.MakeDrinks.Definition::Test

UPDATE 184: In an unmodded game, whenever a sim starts drinking from a glass, they can attempt to watch TV. However, the sim doesn't bother routing within the vision cone of the TV, and the game allows them to watch TV even from a different room or floor. In addition, whenever the game pushes the sim to take a sip from their drink, the sim turns off the TV. These issues are now fixed.
Method: Electronics.TV.WatchTV::Run
CookingObjects.Glass::OnDrink

UPDATE 183: This is a very important update, as it incorporates the GameplayObjects.dll into the mod. I mentioned how I would release my Gameplay Objects Core Mod soon, and I finally decided to merge the two mods. I also renamed the mod to "simler90's Gameplay Core Mod". Merging them will make it much easier for me to fix the issues in the game. Here are all the fixes contained in this update:
- In an unmodded game, non-plumbots can roll the wish to scan sims. This is fixed.
- In an unmodded game, many kiss interactions from expansion packs do not fulfill the wish to kiss. This is fixed.
- The barista bar object from the University Life expansion is a broken object in an unmodded game. There are way too many issues such as interactions constantly dropping, purchased objects disappearing after the customer is charged, and so on. These are all fixed. Sims will now stand in queue while trying to purchase something. Every such object has a defined maximum number of sims allowed in queue, and EA set the value to 3 for this object, which is actually the default value they use for most queues. This is very low for this object, and I increased it to 8. However, existing barista bars in your worlds will only be updated to this value if you delete and repurchase them. EA placed three barista bars in the University world, which are on the pool, java hut and rebel hangout lots.
- The juice keg object from University Life constantly causes sims to throw a route failure tantrum for a number of reasons. These are fixed. Sims will now not consider using a juice keg which is already in use, and if you order your sims to use a juice keg that is in use, they will wait for their turn. Don't forget that if something else takes a sim out of the queue, or if the sim times out, they will still throw a route failure tantrum, which is part of the queue system.
- There is an issue that sometimes affects microwaves that prevents sims from using them. In such a situation, the sim waits for a bit and then throws a route failure tantrum. This is fixed. Existing microwaves that are suffering from this issue won't be fixed. Sell and repurchase them.
- If Pets is installed, the game rolls a chance to create dog dig spots in places where it would create a rock, metal or gem. However, it also creates dog dig spots in destination worlds which shouldn't be allowed, because pets can't travel. This is fixed.
- When the game chooses an inactive teen to send one of your sims a prom call, the game will now only pick a sim who has gender preference for the target.
- There is a small chance every day for inactive sims to send an active sim an invitation call. When a homeless sim sends such a call, the player can choose the option "At My Place", which then pushes the caller to visit your house. However, if the homeless sim is uninstantiated, nothing happens. This is fixed, and the game will now only allow instantiated sims to call. If a housed sim sends such a call, the player can choose the option "I'll Come Over". However, nothing happens when this button is pressed, because EA didn't add any code to it. This update makes your sim visit the caller's house when you select this option.
- When the player attempts to play online directly on a console, the interaction is immediately dropped. This is fixed. Thanks to Kiananah for notifying me.
- There is a feature in the game that causes a performer to lose relationship with the audience if the performer doesn't perform a trick requested by the audience within a certain time. The issue is that the game causes sims to lose relationship even if the audience doesn't request any tricks. This is fixed.
- When a sim plays a game at the stadium, they will always lose if the stadium is a combo rabbit hole, such as the one in Appaloosa Plains. This is fixed.
- When a sim gets a tattoo at the tattoo chair or salon, or gets plastic surgery at the hospital, the game resets the sim's age. This is fixed.
- When a sim interacts with the chemistry station from Generations, the game adds a lab coat outfit to the sim's career outfits, but fails to remove the outfit after the sim finishes their interaction. This can cause the sim to accumulate an infinite number of lab coats. This is fixed.
- Sims who have an assigned bed cannot autonomously sleep in beds which are on a resort they are checked into. This is fixed.
- The game will no longer show a notification to the player every time an inactive sim gossips with a magic mirror.
- Sims will now only consider dancing on a counter or table which is in the same room. This is because the game only allows sims to dance if the sim has the Enjoying Music buff, but it is very likely the counter or table chosen won't be in a room that gives this buff, which quickly stops sims from dancing.
- If the sim has achieved the Firefly Collector challenge, they will now be more likely to catch all kinds of insects. In addition, the Beetle Collector challenge now only guarantees a catch if the sim is trying to catch a butterfly or beetle as the description suggests. This way both the Beetle Collector and Firefly Collector challenges are relevant.
- In an unmodded game, only active sims can try to bribe or sneak their way into a VIP area blocked by velvet ropes. This update allows inactive sims to roll a chance to bribe the bouncer or sneak into a VIP area.
- My SetSameZodiac tunable feature is now enabled by default.
Method: DreamsAndPromises.DreamsAndPromisesDelegateFunctions::RobotScanCheckFunction
DreamsAndPromises.DreamsAndPromisesDelegateFunctions::KissSimFeedbackFunction
ChallengeDelegates.ChallengeDelegateFunctions::KissSimFeedbackFunction
Appliances.BaristaBar::BaristaBar
Appliances.BaristaBar.BuySnackFromBar::Run
Appliances.BaristaBar.BuyDrinkFromBar::Run
Appliances.BaristaBar.BuySnackFromBar::Cleanup
Appliances.BaristaBar.BuyDrinkFromBar::Cleanup
Appliances.Microwave::PutInMicrowave
Appliances.Microwave::GetToMicrowaveToPutHeldObjectInOrOrDrop
FoodObjects.JuiceKeg.KegStand::Run
FoodObjects.JuiceKeg.PourJuice::Run
FoodObjects.JuiceKeg.KegStand.Definition::Test
FoodObjects.JuiceKeg.PourJuice.Definition::Test
Spawners.RockGemMetalSpawner::SpawnObject
Electronics.Phone::FindCallParticipants
Electronics.Phone.RandomInvitationCall::OnAnswered
Electronics.VideoGameSystemBase.PlayVideoGameSystemOnline::Run
PerformanceObjects.ShowStage::ResetAudienceCanRequestTrickTimeoutAlarm
RabbitHoles.Stadium::PlayerWinPercentage
RabbitHoles.Hospital.PlasticSurgery::OnDisplayCAS
HobbiesSkills.TattooChair::DisplayCAS
HobbiesSkills.ChemistryLab.MakePotionBase::Cleanup
HobbiesSkills.ChemistryLab.DiscoverPotion::Run
HobbiesSkills.ChemistryLab.MakePotion::Run
Beds.BedSleep::BedSleepScoringFunction
Decorations.MagicMirror.Gossip::Run
Insect.InsectJig.CatchInsect::Run
Insect.InsectJig.CatchAndEat::Run
Counters.DanceOnCounterOrTable.Definition::Test
Miscellaneous.VelvetRopes.EmergencyExit::Run
Socializing.SocialCallback::BouncerBribeFailure
Socializing.SocialCallback::BouncerAskToGetInFailure

UPDATE 182:
- There is a feature in the game that chooses a lot as the main teen hangout for a few weeks. Teens in the world become very likely to get together on this lot. However, the game can choose dive lots and ports from Island Paradise which shouldn't be allowed. This is fixed.
- Whenever the game instantiates a homeless performance sim to perform a show or perform for tips, it can potentially attempt to instantiate them on a dive lot which also shouldn't be allowed. This is fixed.
- The game rolls a chance from time to time to push a performance sim to perform for tips on a random lot. However, the game fails to push the sim to perform for tips most of the time. If it succeeds in pushing the sim, then the sim starts performing on the lot where they are located, instead of the target lot that is chosen. Finally, the game can choose dive lots and ports as the target lot. These issues are now fixed.
Method: Core.LotManager::ChooseNewTeenHangout
ActiveCareer.ActiveCareers.NPCShowManager::GetRandomNPC
ActiveCareer.ActiveCareers.NPCShowManager::CreateNPCTipsPerformer
ActiveCareer.ActiveCareers.PerformanceCareer.PerformerPerformForTips.Definition::Test

UPDATE 181: There is an issue in the game that causes a script error and resets the sims whenever the player attempts to move in a sim who is in the Tourist household and whose household members back in their homeworld are supposed to age up on instantiation. In such a situation, the game cannot age the sims in question and causes a script error. Many players might have come across this, and most likely didn't think it was serious as attempting to move in the sim a second time works. However, the error is harmful to the game in that the target sim's household members end up becoming a permanent part of the current world, because the game cannot send them back. This update fixes this issue by instantiating such sims before the game shows the move-in dialog.
Method: Socializing.SocialCallback::OnAskToMoveInAccepted
Socializing.SocialCallback::OnMoveInWith

UPDATE 180: If a sim's career outfit index happens to be out of range whenever they try to switch into their career outfit to go to work, the game now sets their career outfit index to their default outfit. This should completely fix the case where sims switch to naked while going to work.
Method: Actors.Sim::GetCategoryAndIndexToUse

UPDATE 179: This update fixes a script error that can occur while a sim is routing, especially upon loading a world.
Method: ObjectComponents.RoutingComponent::DoRoute

UPDATE 178:
- This update adds a new tunable feature that is disabled by default. If you enable it, the game will show you a notification whenever Story Progression performs a story action. If you are making a Story Progression tuning mod for yourself, you can use this to better understand how Story Progression works with its current tuning.
- When a roommate leaves their household, the game may create a new household for them, but EA forgot to name the newly created household. This is fixed.
Method: StoryProgression.StoryProgressionService::TryOneAction
StoryProgression.AddHorse::ToString
StoryProgression.AddPet::ToString
StoryProgression.AddServoBot::ToString
StoryProgression.AddSim::ToString
StoryProgression.EmigrateHousehold::ToString
StoryProgression.MergeHouseholds::ToString
StoryProgression.SplitHousehold::ToString
Tuning: Set StoryProgressionShowNotifications to True to enable this feature.

UPDATE 177: It is not possible to complete the Firefly Collector skill challenge in an unmodded game. This is now fixed. Note that the description of the challenge says that completing it will make it easier for your sim to catch fireflies and other insects, but EA forgot to add such a feature. In other words, the challenge is useless. My Gameplay Objects Core Mod, which I will release soon, will fix this.
Method: Skills.Collecting::IsGlowBugCollector

UPDATE 176: When the game creates identical twins/triplets, they will now have the same genetic hair style. They may have different hair styles until they grow up to teens because of the way genetic hair styles work.

UPDATE 175: When the player changes their sim's hair style, the game will not update the hair style of a firefighter's auxiliary outfit, because they have helmets.

UPDATE 174:
- When the player changes their sim's hair style or colour, the game doesn't update the sim's martial arts and auxiliary career outfits. This is fixed. Don't forget that CAS checks all the CAS parts your sim is wearing, and if it finds any CAS parts that are not enabled for the category they are being worn in, the game replaces the part with one that is enabled for that category. This is why when the player takes a Lifeguard to CAS, the game replaces the outfit bottom they are wearing, because EA forgot to enable the base-game swimwear bottom for the career category. Many hairstyles are not enabled for the career, auxiliary career (known as "Firefighting" in CASP) or martial arts categories. You can fix these by making CASP overrides.
- When a sim wakes another sim with a megaphone, the sim ends up permanently running. This is fixed. Existing sims who are permanently running won't be fixed.
Method: CAS.CASLogic::PropagatePhysicalProperties
Actors.Sim.WakeWithMegaphone::Run

UPDATE 173:
- There is a rare issue in the game that can cause a random sim to join the player's household if there is at least one dormitory or apartment lot in the world. This is fixed.
- This update fixes a script error that occurs whenever a homeless streaker or street artist gets arrested by the police.
Method: ActorSystems.RoommateManager::PutRoommateInTowniePool
Situations.CaughtSituation.CreateCopAndRoute::OnCompletion

UPDATE 172:
- There is an issue in the game that can sometimes cause sims to constantly capture the moment with their phones. This should now be fixed. Existing sims who are suffering from this issue won't be fixed, but if they become involved in a protest, they should be fixed at the end of it.
- There are multiple situations in the game that can cause the police to abandon their vehicles. This update fixes as many such situations as I could find.
- When the police decide to break up a juice kegger party, they have a high chance of joining the party. However, EA made a mistake that still makes the police break up the party, which leads to the party continuing without any guests. This is fixed.
Method: Situations.ImprovedProtestSituation.BaseProtest::CleanUp
Situations.ImprovedProtestSituation.ProtestOutcomeBrokenUpByPolice::Init
Situations.SimArrestSituation.CreateCopAndRoute::Init
Situations.PoliceBreakTeenPartySituation.CreateCopAndRoute::Init
Situations.PoliceBreakJuiceKeggerPartySituation.CreateCopAndRoute::Init
Situations.PoliceBreakJuiceKeggerPartySituation.RouteToStudentAndComplain::OnScoldCompletion
Situations.PoliceBreakJuiceKeggerPartySituation.RouteToStudentAndComplain::OnWarningCompletion

UPDATE 171:
- My MarriageLastNameCheck feature will now also affect Story Progression's regular relationship story action.
- This update fixes a few script errors in the game that can sometimes cause abnormal behaviour, especially if the error happens while travelling.
- If Story Progression kills a sim who has a significant relationship with an active family member in a world without a mausoleum, the game is unable to properly delete the sim. This is fixed.
Method: StoryProgression.ChangeRelationship::HandleMarriage
Academics.AcademicCareer::RemoveStudent
Academics.AcademicCareer::RemoveProfessor
Socializing.LongTermRelationship::CalculateLTRState

UPDATE 170:
- Whenever the player changes a sim into a different outfit, the game sets that outfit as the sim's default outfit for that category, but this feature is not enabled for career outfits, because the code is mostly base-game code and it was not updated for multiple career outfits. This is now fixed, and when you tell your sims to switch into a different career outfit, or tell them to put on a uniform on the dresser, the game will now set the picked outfit as the sim's default career outfit.
- Story Progression will not consider moving a household to a smaller house when their current house has more bed spots than they require, if the house costs more than the rich threshold and if the household's family funds is above one third of the rich threshold.
Method: Actors.Sim::MarkUserDirectedClothingChange
StoryProgression.MoveToSmallerHouse::IsInBigHouse

UPDATE 169: There is an issue in the game that sometimes causes sims to switch to naked whenever they attempt to switch into their career outfit. This occurs when the sim is wearing one of their non-default career outfits and the game ages the sim up, or whenever the game attempts to change the sim's default career outfit. I believe I have identified the cause of this issue and this update fixes it.
Method: ActorSystems.SimBuilderTask::ReconstructCareerOutfit
Careers.Occupation::ApplyOccupationUniform

UPDATE 168: I found an issue that can cause sims to abandon their cars right on the road. This issue can also cause them to abandon their boats. This update fixes this issue.
Method: Vehicles.CarOwnable::DoReset
Vehicles.BoatOwnable::DoReset

UPDATE 167: My SimulateLifetimeHappinessForInactives, InactivesPurchaseRewardTraits and RandomizeUndecidedGenderPreference features will now affect active roommates. They won't purchase the Inheritance reward.

UPDATE 166: There is an EA oversight that prevents builders from selecting the Make NPC Door interaction on a door that is facing the original outside room while building a Late Night apartment. This is now fixed. Don't forget that the Make NPC Door interaction won't appear on a door if the door in question is set as the front door, or if no doors have been set as the front door and the game's internal calculation comes to consider the door as the front door.
Method: Abstracts.Door.MakeNPCDoor.Definition::Test

UPDATE 165: Sims who are in their swimwear won't be considered to be inappropriately dressed if there is at least one hot tub on their current lot, and sims who are indoors in their sleepwear won't be considered to be inappropriately dressed if they are currently on an owned residential lot or in a resort they have checked into.

UPDATE 164: EA intended to prevent the Kraken from attacking a boat that has an occupant with the Friend of the Kraken reward trait, but they made a mistake which sometimes allows the Kraken to attack such a boat if the game finds an occupant with the Sailor trait.
Method: Controllers.KrakenManager::KrakenAttackEndAlarmCallback

UPDATE 163: I came across an EA oversight that causes the game to prematurely roll the chance to kill elder vacation and university locals from old age whenever the game advances the age of all sims at midnight while the current world is the homeworld. This is now fixed.
Method: ActorSystems.AgingManager::SimIsOldEnoughToTransition(MiniSimDescription msd)

UPDATE 162: In an unmodded game, whenever a sim who is currently swimming in the ocean attempts to route onto a docked houseboat, such as when the player tells them to go back home and their home is a docked houseboat, the game prevents the sim from routing on water and forces the sim onto land, but doesn't properly transition the sim out of the ocean, and the sim ends up swimming through land. This update fixes these issues.
Method: Actors.SimRoutingComponent::EnterHouseboatThroughGangway

UPDATE 161: Sims cannot autonomously play in sand. This update fixes this. If you don't have Island Paradise, then only children can play in sand, but Island Paradise also enables this interaction for older sims. However, EA's tuning prevents older sims from autonomously playing in sand, so if you want older sims to be able to play in sand autonomously as well, you need to make a tuning mod that modifies the "AutonomousPlayInSand_Sim" resource in GameplayData.package, and change the line <AgeSpeciesAvail AgeSpeciesValue="C" /> to <AgeSpeciesAvail AgeSpeciesValue="C,T,Y,A,E" />.
Method: Core.Terrain.PlayInSand.Definition::Test(Sim a, Terrain target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)

UPDATE 160: This update fixes two potential script errors that can happen when a sim in a Showtime career performs a trick, and when a Lifeguard initiates the Give CPR interaction while swimming.
Method: ActiveCareer.ActiveCareers.PerformanceCareer.PerformanceTrick::Run
ActiveCareer.ActiveCareers.Lifeguard.GiveCPR::Cleanup()

UPDATE 159: There is an issue with the Ask About Major interaction. You are only supposed to be able to ask a sim about their major if the sim has at least one incomplete degree. However, EA made a mistake which now only allows the player to initiate this interaction towards sims who have completed a degree. This is now fixed, and the interaction works as intended, and when you succeed, the sim will show a thought balloon of a random incomplete degree that they have.
Method: Academics.AskAboutDegree.MajorDefinition::Test

UPDATE 158:
- If a sim joins your household in a destination world, such as by being born into your household, the sim loses track of those sims left behind in the homeworld. This is fixed.
- This update fixes a potential script error that can occur whenever an active sim dies in the future world.
Method: CAS.Household::Add
TimeTravel.FutureDescendantService::InvalidateHouseholdsForSimDesc(ulong simDescriptionId)

UPDATE 157:
- When the player moves in a new sim into their household by asking them to move in or by marrying them in a destination world, the game doesn't add the newly added sims to the list of travelling sims which is used internally to perform certain important functions. Additionally, if a sim moves into the player's household through marriage in such a situation, the moving sim loses track of those sims the player left behind in the homeworld, which causes unexpected game behaviour such as allowing the player to move in more sims than possible if the first sim in the sim selection panel ends up being one of the sims who moved in. If the sim moves into the player's household without a marriage, then every sim loses track of those sims the player left behind in the homeworld, which is even worse. This update fixes these issues.
- UPDATE 2 fixed an issue with the Kiss and Make Up interaction. This update fixes a similar issue with Rebound Kiss.
Method: Moving.GameplayMovingModel::Apply
Socializing.SocialCallback::OnReboundKiss

UPDATE 156:
- UPDATE 70 fixed a serious issue which causes the game to continuously create career vehicles for sims who are at a high level in certain careers, which then makes the game unplayable. I fixed this by adding the tunable option AllowCareerCars which prevented the game from giving such vehicles to sims. Now, I found out what was causing the game to create these vehicles continuously in the first place, and this update completely fixes this issue. Now that this issue is fixed, I set the default value of AllowCareerCars to True, so that sims can get their limousines or tour buses and so on. I am leaving this tuning in, so that you can still set it to False if you don't like those vehicles.
- When a sim is at a certain celebrity level, they are given a limousine to ride in if they don't have any other vehicles. However, the game makes the sim stop and enter any subway stations that may be on the way to the sim's destination even if the sim is inside such a limousine. This is an EA oversight, and it is fixed now.
Method: Skills.LearnToDriveSkill::TryGetCarForLearnToDrive
Routing.GetInUFORouteAction::PerformAction
Actors.SimRoutingComponent::CheckAndUpdateRouteForStations

UPDATE 155: There is an EA oversight that causes the game to invalidate a descendant household if the player opens the time almanac in any way in a destination world and if the descendant household's ancestors were left behind in the homeworld. This causes the game to delete such descendant households and create a brand new descendant household the next time the player travels to the future. This is now fixed.
Method: TimeTravel.FutureDescendantService::BuildDescendantHouseholdSpecs

UPDATE 154:
- If you have my SocialGroupGiveTrait feature enabled, inactive sims in the university world will receive their social group trait if they have achieved level 8 or higher in a social group at the end of the term.
- There is a feature in the game that sometimes makes inactive sims go out to their yard if they are currently inside their house, so that they can spend time outside on their home lots. However, EA forgot to prevent active roommates from performing this interaction, which regularly causes your roommates, such as in university dormitories, to go out to the front door for no reason. This is fixed.
Method: Core.GoOutToYard.Definition::Test

UPDATE 153:
- If a sim travels to a destination world for the first time, the game preserves the sim's career history, but doesn't add the sim's current career to the career history panel, which causes sims to lose certain abilities that depend on career data, such as how to wade and swim fast after reaching level 6 in the Lifeguard profession. This is fixed.
- If a sim travels to a destination world, and then returns back home, then travels back to that same destination, the game cannot update the sim's career history and any new entries or changes since then are lost. This is also fixed.
- If a teen or younger sim travels to a destination world, and then returns back home, then travels back to that same destination after graduating from high school, the game cannot update the sim's career history with their graduation information. This is fixed.
- The game cannot preserve regular career entries in the career history panel while travelling to the future world. This is fixed.
- Retired sims are able to receive their pension in destination worlds which is an EA oversight. This is fixed, and now they will only receive their pension in the homeworld and the future world.
- There is a situation that can sometimes cause a script error whenever a sim quits their Firefighter profession. This is fixed.
Method: Careers.CareerManager::OnLoadFixup
Careers.CareerManager::ImportContent
Careers.Career::OnLoadFixup
CAS.SimDescription::MergeTravelInformation
ActiveCareer.ActiveCareers.ActiveFireFighter::LeaveJobNow

UPDATE 152:
- If a sim, who achieves level 6 or higher in the Lifeguard profession, quits and then becomes a Lifeguard again, the sim would forget how to wade and swim fast. This update fixes this, and it should now be impossible for sims to forget this ability.
- I found out that inactive university students can graduate at the end of the term. This update makes it so that if you enable this mod's AcademicsDegreeGiveTrait feature, then they will receive their graduate trait the moment they graduate.
- UPDATE 5 prevented the dress code of an NPC party from being set to swimwear if the host lot didn't have a pool. However, I found out that there are certain special parties that use their own code that would ignore this fix. These are all special party types from University Life and also the seasonal parties from Seasons. This update applies this fix to every single NPC party in the game.
- Sims who have sneaked into their current lot won't perform phone idles.
- In an unmodded game, whenever the player successfully uses the styling station, or creates a new uniform for their resort staff, the game resets the target sim's age. This update fixes these two issues. However, there are two additional situations in which the game still resets the sim's age, and that is when the sim gets a tattoo on the tattoo chair or in the salon, or when the sim gets plastic surgery in the hospital. It is not possible for this mod to fix these two issues, because the problematic code is in the GameplayObjects.dll. I already made a Gameplay Objects Core Mod for myself and fixed these issues and many others, but I haven't released it yet. I may release it soon.
Method: CAS.Household::OneDayPassedUniversityUpdates
Situations.NpcParty::ScheduleUniversityWelcomeParty
Situations.NpcBonfireParty::StartNpcBonfireParty
Situations.NpcFeastParty::StartNpcFeastParty
Situations.NpcHouseParty::StartNpcHouseParty
Situations.NpcJuiceKeggerParty::StartNpcJuiceKeggerParty
Situations.NpcMasqueradeBallParty::StartNpcMasqueradeBallParty
Situations.NpcTailgatingParty::StartNpcTailgatingParty
Situations.NpcVictoryParty::StartNpcVictoryParty
Situations.NpcVideoGameLANParty::StartNpcVideoGameLANParty
Skills.Styling::DisplayCAS
Actors.Sim.PlanResortUniform::Run
ObjectComponents.ResortStaffedObjectComponent.PlanResortUniform::Run

UPDATE 151: When a sim reaches level 6 of the Lifeguard profession, they learn how to wade and swim really fast. However, they lose this ability when they retire or quit their profession. This update fixes this, and now the game allows sims to swim like that if they have ever reached level 6 of the Lifeguard profession.
Method: ActiveCareer.ActiveCareers.Lifeguard::ShouldUseRescueSwimWade

UPDATE 150: In an unmodded game, whenever the game gets two inactive sims married, it has a 50% chance of picking either sim's last name as the new family name. This update adds a new tunable feature, which is disabled by default, that makes it so that, instead of rolling a 50% chance, the game performs a large number of checks on both of the sims in order to pick the new family name. I made it so that the game has a very high base chance of picking the male sim's last name if the sims are an opposite-sex couple.
Tuning: Set MarriageLastNameCheck to True to enable this feature. Set to False to revert to original EA behaviour.
Method: CAS.SimUtils.SimCreationSpec::ChooseRandomLastName

UPDATE 149: EA wanted to make it so that loyal dogs would be more likely to follow their BFF or most liked sim. However, they made a mistake that makes it so that loyal dogs are more likely to follow any sim as long as the dog is on the same lot as their BFF or most liked sim. This is now fixed.
Method: Actors.Sim.PetFollow::PetFollowScoringFunction

UPDATE 148: Sims in the Firefighter profession won't perform phone idles during an ongoing emergency, and sims in the Ghost Hunter profession won't perform phone idles if they are currently on the target lot of one of their available jobs.

UPDATE 147:
- Story Progression won't move a sim with their partner or merge households if the target household is residing in a fraternity/sorority and the gender of one of the moving sims conflicts with the target lot.
- Sims won't switch into outerwear if they are part of a wedding ceremony.

UPDATE 146: UPDATE 136 fixed an important issue in the game that would prevent the game from properly giving your sims opportunities. However, this fix would prevent the game from giving your sims an opportunity if the opportunity chain it was part of included an opportunity whose target world was different from the original opportunity. This issue is now completely fixed. Thanks to sonshu, vitorantoniog and vaddish for bringing this to my attention in the comments section.

UPDATE 145: In an unmodded game, inactive sims in France can only use four vehicles: bicycle, Kenspa, Sloppy Jalopy and Wornado Triage. It makes no sense to only allow sims to drive two cars. In addition, tourists can also drive these cars, which also doesn't make much sense. This update now allows the game to give inactive French locals many more cars, similar to UPDATE 132, and allows tourists and explorers to only ride the bicycle/Kenspa. The game won't give certain types of vehicles in France, such as Rockabilly, F1 or classic cars.
Method: Vehicles.Car::IsPermittedForNPCUseInCurrentWorld

UPDATE 144:
- UPDATE 97 added funds checks to many story actions that can move a household into a new house, but these checks could mean that when the game wanted to move a homeless household into a house, the game could fail to find an eligible lot if the family had lower funds than the cost of the cheapest eligible lot. So, this update makes it so that if the game fails to find an eligible lot for a homeless household as a result of a lack of funds, the game will now be allowed to move the household into the cheapest eligible lot found.
- Story Progression can now kill teen and older sims from transmutation if Supernatural is installed, and if the sim is either a witch or has some alchemy skill.

UPDATE 143: I came across a rare, but serious situation in the game that sometimes causes the game to fail to properly transition a household to the destination world while travelling. In such a situation, the player arrives at the destination world in Edit Town mode, and their travelling family is lost. This should now be fixed.
Method: Socializing.Genealogy::IsMotherSideUncle
Socializing.Genealogy::IsFatherSideUncle

UPDATE 142: In an unmodded game, Story Progression can move a household with a horse into a house with no box stalls, which is a bad idea. This is now fixed, and the destination house needs to have at least one box stall in such a situation.

UPDATE 141: UPDATE 132 made it so that inactive sims could be given all kinds of different cars, but it only updated the non-future worlds with this feature. The future world also has cars of its own and many of them cannot be given to sims because of EA's code. This update now allows the game to give all of the future cars to inactive sims depending on similar checks from UPDATE 132.

UPDATE 140: This update reverts a change from UPDATE 10. In an unmodded game, when a group of sims attempt to route to a location in China, Egypt or the University world, if the main sim uses a bicycle, the game can make the main sim wait for other sims to get on the bike even though bicycles do not allow multiple passengers. After a while, the game makes each sim route on their own. The fix I added made the main sim route right away on their own, but ended up cancelling the interactions of the remaining sims. Neither situation is ideal, but it is better to revert the change.

UPDATE 139: In an unmodded game, whenever an inactive, housed sim ages up or dies, if the sim in question has recently used a vehicle, the game sells the vehicle, but then goes ahead and credits the active household with the sale price. This is why players sometimes receive a seemingly random amount of money out of nowhere. This update fixes this issue.
Method: Vehicles.Bicycle::OnReservingSimDisposed
Vehicles.CarOwnable::OnReservingSimDisposed
Vehicles.BoatOwnable::OnReservingSimDisposed

UPDATE 138: Pets can perform an interaction called Skittish about Full Moon, but EA forgot to add a night time and full moon check to this interaction which allows pets to perform this interaction at all times. This update fixes this issue.
Method: Actors.Sim.BeSkittishAboutFullMoon.Definition::Test

UPDATE 137: There is an issue in the game that most of the time prevents celebrities and sims with the Loner trait from successfully checking into resorts. This update fixes this issue.

UPDATE 136: There is an issue in the game that prevents the game from giving your sims opportunities if the current world is not the Future world and Into the Future is installed. This update fixes this issue, so you can now receive opportunities properly. Thanks to hira0 for bringing this to my attention in the comments section. If you are using Opportunity phone call fix, you don't need that mod any more.
Method: Opportunities.Opportunity::CheckAllRequirements

UPDATE 135: I found out why sims abandon their boats and this update fixes this issue.
Method: Actors.Sim::Dispose

UPDATE 134: This update makes the Merge Households story action more consistent.

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 feature. 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.

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. 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 or GameplayObjects.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.