I've been playing around with Social Event modding, and was actually shocked at how easy it is. Creating a new social event is as simple as copying the XML file with a new instance and making changes. Using that method, I created the Destination Party social event, which is a clone of House Party for community lots:
After successfully creating that event, I looked further in to see what else is moddable, and I wasn't disappointed. It gets more complicated from there, but still well
within reach of the tools we have.
Using Sims4XmlExtractor and checking "Create subfolders for instance types" allows you to extract and categorize the XML files. These are the categories that control events:
- situation - The events themselves are in this folder. To get started with creating a new event, just clone one of the files in this folder (for example House Party) and chance the instance name. The new event will immediately appear in the game with no extra effort. The references to the other types (goals, goal sets and jobs) are in this file.
- situation_goal - These are the goals for the event. They are referenced by a numeric ID that can be changed in clones. All that seems to matter is that the ID is unique. This seems complicated at the moment, but changing the amount of times something is required as well as the roles it should be done by or done on can be changed.
- situation_goal_set - It's just a list of goals that can be referenced by the main "situation" file, seems fairly simple to me. Once again, referenced by a numeric ID.
- situation_job - These are the roles that can be assigned to events, for example "Host", "Guest", "Mixologist" etc. It is possible to create your own custom roles, and these can be utilized by custom goals. Again, they're referenced by a numeric ID.
You'll also need to create an STBL file if you want custom text strings.
I personally recommend planning what goals and jobs your event will have before you begin creating it, so you won't leave yourself frustrated and confused.