simler90's Gameplay Core Mod

SCREENSHOTS
Downloaded 229,090 times 2,318 Thanks 763 Favourited 607,774 Views
 Say Thanks!
UPDATE 207: Thanks to Ubercuber123 for notifying me about these issues.
- Whenever the player removes a roommate or ends active roommate services, the game is unable to remove the roommate relationship flags from any pet-to-roommate relationships in the household. This is fixed.
- Whenever an unselectable sim who is currently on a date attempts to group up with another sim, the game shows the player the "Three is a crowd for romance. You'd have to dial it down to make it a regular Group. Do you want to do so?" dialogue and asks them if they want to end the date. This is an EA oversight, as this dialogue should only be shown to the player if a selectable sim is involved. This is now fixed.
Method: ActorSystems.RoommateManager::RemoveRoommateInternal
Situations.GroupingSituation::StartGroupingSituation
Note: I also released platform-specific versions of the mod with this update. In addition, I added a new section to the bottom of the description of the mod called Interesting Finds where I talk about game issues that I have come across that this mod will not or cannot fix, but which the community should know, so that those of you willing can make your own mods to fix them. If I ever come across more issues, I will update that section. Note that I very rarely play this game anymore. Apart from real life, I also have a ridiculous backlog on multiple platforms that I need to go through.



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 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) Playable ghosts only appear in the relationship panel of your sims only when they are on the same lot as your sim. This is an EA oversight, as playable ghosts should always appear in the relationship panel. Playable ghosts who are in other worlds do appear in the panel by the way, only playable ghosts who are locals of the currently loaded world do not appear properly. How to fix: the method called Gameplay.UI.HudModel:CurrentRelationships in the UI.dll core file needs to be modified; the line if (createdSim2 != null && (createdSim2.IsSelectable || createdSim2.LotCurrent == mSavedCurrentSim.LotCurrent)) needs to be changed to if (createdSim2 != null && (createdSim2.IsSelectable || otherSimDescription.IsPlayableGhost || createdSim2.LotCurrent == mSavedCurrentSim.LotCurrent)).
2) 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
Advertisement:
Other Download Recommendations:
More downloads by simler90: See more