simler90's Gameplay Core Mod

SCREENSHOTS
Downloaded 236,092 times 2,402 Thanks 779 Favourited 626,356 Views
 Say Thanks!
UPDATE 215:
- I found another issue with doors that can cause sims who are not part of a household (mostly unplayable ghosts) to throw errors. This particular issue would affect such sims constantly regardless of where they were, if there was a gender door on a resort lot somewhere in your world. This is fixed.
- I found yet another issue that causes sims who are not part of a household to throw errors, and this one would happen whenever such a sim considered going to a community lot. This is fixed.
- There is an issue in the game that sometimes prevents the game from greeting an active firefighter on a lot where there is an emergency. If that happens, you can neither enter the lot, nor see inside, so you can't finish the job. This should be fixed now.
- I have heavily decreased the chance Story Progression has to create adoptions in this update. I think the chance was a bit too high.
Method: DoorSingleGender::IsAllowedThrough
Situations.GroupingSituation::DoesGroupingSituationExistForFamily
ActiveCareers.FireFightingJob::SetupTasks

UPDATE 214:
- I identified another issue that causes homeless sims to abandon their cars and boats. This is fixed.
- There is an issue in the game that causes boats to get stuck in sim inventories. Sims can never use such boats, and you cannot sell or drag them out of the inventory, either. I believe I have fixed this issue in this update. Existing boats that are already stuck in inventories will not be fixed.
- When the game attempts to create a small or large fire job for active firefighters, the game will no longer pick residential lots that have a sim with the Fireproof Homestead reward trait living in them. Thanks to matthewst10 for notifying me about this issue.
- Inactive vacation locals will not be given a free camera just for being vacation locals anymore, as I don't think this makes sense. Only inactive tourists, explorers and sims with the Photographer's Eye trait are guaranteed to receive a camera when they are instantiated. Otherwise, most sims have a low chance, but University students have a higher chance, as nobody really is a local in the traditional sense of the word in that world.
- This update adds a new optional feature named InactivesChangeIntoEverydayFromCareer that is enabled by default. When enabled by being set to True, the game makes inactive sims who arrive home in their career outfit switch to their everyday outfit. This solves the issue of invisible sims, as most sims will never become invisible, and those rare few that do should be fixed within the same day. In addition, in an unmodded game, most sims who have jobs end up spending most of their days in their career outfit, as they never switch out of them. This issue is also naturally fixed. I recommend leaving this enabled.
Method: Vehicles.Bicycle::OnRouteFinished
Vehicles.MagicBroom::OnRouteFinished
Vehicles.CarOwnable::OnRouteFinished
Vehicles.BoatSingleOccupancy::OnRouteFinished
Vehicles.BoatMultipleOccupancy::OnRouteFinished
Vehicles.Motorcycle::OnRouteFinished
Routing.GetInBoatRouteAction::PerformAction
Occupation::IsJobValidForCreation
Core.GoHome::Cleanup

UPDATE 213:
- There is an issue in the game that causes sims to throw errors whenever a sim who was involved in locking a door is removed from the game. This issue can occur naturally through gameplay, so it is a serious problem. In such a case, you will get an error pointing towards the CommonDoor.IsAllowedThrough method as the culprit. EA basically didn't add enough null checks to this. This should not happen anymore.
- In one of the earlier updates, I fixed an issue that prevented the game from playing numerous unique idles for sims. In this update, I am adding a check that prevents the game from playing these idles if the sim in question is having a conversation. If you were annoyed by sims using their phone and ending your conversation, this will not happen anymore.
- There was an issue where the game would sometimes fail to properly calculate the revealing score of a sim's outfit. This is fixed.
- Unselectable sims in the Firefighter profession should no longer switch to outerwear when going to work when it is cold.
- Inactive teens should also be prevented from switching to outerwear when going to prom now.
- The following tunable features that affect committed sims will no longer affect sims who have the Commitment Issues trait: kActorCommittedBaseSocialMultiplier, kActorCommittedExtraFamilyOrientedSocialMultiplier, kActorCommittedExtraMyLoveBuffSocialMultiplier.
Method: Abstracts.CommonDoor::IsAllowedThrough(int srcRoomId, int destRoomId, Sim actor)
Actors.Sim::SwitchToOutfitWithoutSpin(OutfitCategories category, SimOutfit outfit, int index)



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
Note: There is a very old belief among Sims 3 players that changing the fire station lot or the lot where the fire is supposed to be in one way or another, such as by rotating it, or deleting/adding foundations/basements and so on, can fix this issue. I would like to tell you that it cannot. The reason fires get cancelled have nothing to do with the way the lot is built. It has to do with a ridiculous coding mistake EA made when they released Seasons, where they attempted to make it so that the game would not spawn any fire tiles on areas that are exposed to rain, but they failed. The way I fixed it is really the only proper way to fix it.

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 "simler90GameplayCoreMod" 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. Make sure that you download the proper version of this mod for your platform. So, if you have the Steam version, download the file for the Steam version.

Recommended Mods:
Retuned EA Story Progression: I mentioned multiple times while making this mod that this mod does fix numerous EA coding mistakes, but does not touch EA's tuning, because that is out of the scope of this mod. One of the areas that suffers the most from EA's tuning is Story Progression, which is very mechanical. I gave some guidance in the comments section of my mod on how you can change that, so you can fix the tuning yourselves by making tuning overrides. This mod by phantom99 makes it more random, and much less mechanical. I actually already made such a mod for myself long ago, but could not be bothered to release. Maybe, I will release it some time, but I do recommend that you check out their tuning, which definitely is much better than EA default. You can also modify it further to tune it more to your liking once you figure out what each setting does. Make sure to use the feature in my mod to show notifications for each story action performed by Story Progression, so that you can understand how it works with your current tuning.

Interesting Finds: In this section, I will write about EA issues that this mod does not fix. I do not know if other mods fix these issues, and if not, maybe some of you can fix them by making your own mods.
1) This mod fixes a large number of issues where the game modifies a sim's genetic fitness and weight values. The game should never modify these values, as they are genetic and should forever remain static. As far as I know, this mod fixes every such case, and makes the game properly change the sim's current fitness and weight. However, from my research, I have found one instance that still changes your sim's genetic weight, and that is the store object called Chocolate Fountain, which increases your sim's genetic weight when the sim drinks from it. To fix, the method Store.Objects.ChocolateFountain:ActorGainWeight needs to be changed; specifically the two instances of the line actor.SimDescription.ForceSetBodyShape need to be changed to actor.SimDescription.SetBodyShape.
2) When a werewolf transforms from their human form into their werewolf form, the game makes everyone around them react by getting scared/fainting and so on. However, EA originally planned to prevent other werewolves from reacting like this, which makes sense, but in the final tuning of the game, they decided to change this, and made it so that only other werewolves who are in their werewolf form do not react. This makes no sense to me whatsoever. It is not possible to play a werewolf family properly like this, it totally destroys the purpose. If you want to fix this, you need to make a tuning override mod that modifies the OccultWerewolf_0x66b106f5ff3f1712 file in GameplayData.package. In it, you need to change the parameter <kIgnoreTraitsForTerrified value="LycanthropyWerewolf"> to <kIgnoreTraitsForTerrified value="LycanthropyHuman">.
Advertisement:
Other Download Recommendations:
More downloads by simler90: See more