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

simler90's Gameplay Systems Core Mod

by simler90 Posted 6th Sep 2021 at 11:36 AM - Updated 22nd Oct 2021 at 2:44 PM by simler90
156 Thanks  Thanks     56 Favourited
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

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

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

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

- 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

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

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

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

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


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

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: 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:: ClearlLitterInNeighborhood
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

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: Mailbox::CreateRegularBillForHousehold Autonomy::OnceADayCallback
Tuning: Change the SimulateBudgetForInactives value to False to completely disable this feature. Set to True to enable it again.

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

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

Requirements: This mod was made on Patch 1.67, and I can only guarantee that it will work on that patch.

Archive: simler90GameplaySystemsCoreMod-UPDATE14.rar
No metadata could be extracted from this file

Download files

Filename Size Downloads Date

Size: 5.96 MB · Downloads: 2,041 · 22nd Oct 2021
5.96 MB 2,041 22nd Oct 2021

Key: - File was updated after upload was posted
Tip: You can click the magnifying glass to see the archive contents

Need help with downloading or installing content? Click here!
Archive: simler90GameplaySystemsCoreMod-UPDATE14.rar
No metadata could be extracted from this file
42 Comments / Replies (Who?)

Expansion/Stuff packs required:
Sims 3

42 Comments / replies (Who?)



Type: Fixed

Tags: #Core Mod, #Gameplay Systems, #Fix, #Glitch, #Oversight, #Social, #Firefighter, #Alarm, #Small Fire, #Active Career, #Genetics, #Randomize, #Face, #Voice, #Budget, #Funds, #Economy, #Pool Lounger, #Relax, #Punishment, #Grounded, #Sneaking, #Teen, #Child, #Inventory, #Vampire, #Skill, #Pet Adoption, #Butler, #NPC