Tutorial: Custom Club Activity


In this tutorial, I am going to go over how to make your own custom club activity for your clubs in The Sims 4. 

In this tutorial, I am making a custom activity for Srsly's Complete Cooking Overhaul to "Buy Cookbooks". 

This will allow any sims that buy cookbooks with the custom group activity to earn "Club Bucks".


What you need: 

Sims 4 Studio (Account Required for Download)

Not sure how to install or use S4S? Check out my Sims4Studio tutorial.


Step 1

Open up Sims 4 Studio.

Put in your "creator name" in the bottom right if you have not done so already.


Step 2

Navigate to "Tools > Create Empty Package".


Give your new .package file a name and save it inside your mods folder.

[Mods Folder Location: Documents/Electronic Arts/The Sims 4/Mods]


Step 3

You should now have an empty window in your new .package

Navigate to: "Tools > Extract Tuning"

This will open up a new window called "Export Tuning..."

At the top of the "Export Tuning" window, type "Club_interaction_group/clubinteractiongroup" in the search bar. 

These are all of the club activities in the game. 

Choose one activity to work from. I picked "clubInteractionGroup_SkillBuilding_Baking" as I am making an activity that is food & drink related.

Then click "Export". Then close the "Export Tuning..." window.

You should now have 2 files in your .package with the following "Type":

  • Club Interaction Group Tuning
  • Sim Data


Step 3.A

Next, we need to give our file a unique name. This way it does not override anything else.

Click on the "Club Interaction Group Tuning" and then click on the "Data" tab on the right.

In the "Name" section, give your activity a unique name.

Example: SrslySims:ClubInteractions_BuyCookbooks

[Note: You always want to start a new name with "CreatorName:" Followed by what you want it to say. This way a new unique "Tuning ID" is automatically assigned when you click anywhere in your package.]


Step 4

Next, copy the unique name you typed on the "Name" line. 

Click on the "Sim Data" instead of the "Club Interaction Group Tuning" and click on the "XML" tab.

On the 4th line paste in the unique name.


This will make the file names the same for both the "Sim Data" and "Club Interaction Group Tuning".


Step 4.A

Go back to the "Club Interaction Group Tuning" and click on the "Data" tab.

Copy the "Instance" number. 

Go back to the "Sim Data" and click on the "Data" tab

Replace the EA "Instance" with the new unique one you copied from your "Club Interaction Group Tuning"

Both your "Sim Data" and "Club Interaction Group Tuning" should both now have the same tuning file name and the same instance number.


Step 5

Now we get to the fun part, making our new group activity!

Go to the "Club Interaction Group Tuning" and click on the "XML" tab.

Under this XML there are a few different sections. We will start at the top with "affordances".

This tells you what interactions in the game will flag as an activity for your group.

Example: The EA baking activity has the following

    <T>31030<!--fridge_BakeCake_Autonomously--></T>
    <T>112479<!--cupcakeMachine_StartBakingAutonomously--></T>
    <T>112476<!--fridge_StartBakingAutonomously--></T>
    <T>112288<!--cupcakeFactory_MakeBakingRecipe_Staging_Basic--></T>
    <T>114609<!--counter_MakeRecipe_Staging_Baking--></T>
    <T>108665<!--fridge_Bake_StartCrafting--></T>
    <T>108243<!--stove_Bake_StartCrafting--></T>
    <T>112202<!--cupcakemaker_StartBaking--></T>
    <T>109489<!--si_BakingSkill_DecorateCake--></T>
    <T>109491<!--si_BakingSkill_DecorateCookie--></T>
    <T>109490<!--si_BakingSkill_DecorateCupCake--></T>
    <T>13770<!--oven_MakeFood_Staging_Basic--></T>
    <T>13287<!--crafting_resume--></T>
    <T>13852<!--Put_Away_Item--></T>

So the first interaction for the baking activity is "Fridge_BakeCake_Autonomously" this is an EA "Affordance" on the fridge object_tuning. So if I was to "Export Tuning" for object_fridge and search for the word "affordance" this would show up. 

So depending on what you want the activities in your group to be, you will need to find the "affordances" for the interaction you want.

Since I am making an activity for buying cookbooks, I only need 1 affordance.

I will be using a custom "SuperInteraction" affordance from my mod and delete all the extra affordances I don't need.


Step 5.A

Next is "Category". This is the category that shows in-game. 


Since I want my buy cookbook activity I am going to leave my category as "FOOD_AND_DRINK".

I recommend "Extract Tuning" and looking at other EA "Club Interaction Group Tuning" to get the correct names for each category. 

If you change the "Category" name in the "Club Interaction Group Tuning" you also have to change the line for "Category" in the "Sim Data".


Once again, if you are unsure of what the number is here. Open the "Sim Data" of the EA interaction that has the category you want to use and change the number.

Step 5.B


Next is your icon for the activity. If you already have an instance number of an EA icon that you would like to use input it on the "Category_Icon" line. (don't worry about the blue text that links to a .png you don't need to mess with this. It does nothing)


If you want to use a custom icon, there are a few more steps that need to be done. 

Your icon must be .png and 128px x 128px 

First, navigate to "Tools > Hash Generator"

We need to make a new custom instance ID that will not override anything else for our icon. 

In the "Text" section of the "Hash Generator" type in the following:

  • CreatorName:DSTImage_NameOfImage

Example: SrslySims:DSTImage_BuyCookbooksActivity

Next, copy the "FNV64 Hexadecimal" aka "Instance ID".


Next, back in your new .package click on "Add" on the bottom left of the window.

In the "Type" drop-down window find "DST Image". This is the type of image file TS4 uses for icons.

Make sure the "Group" number is all 0's (00000000).

Then on the "Instance" line paste in the custom instance, you made in your "Hash Generator"

Next on the window on the right, select you "DST Image". It will be empty on the left-hand window.

Click the "Import" button on the bottom right and import your custom icon.


Next, open up the "Club Interaction Group Tuning" and click on the "XML" tab.

Paste your custom "Instance ID" instead of the EA "Catalog Icon" Instance.

It should look like this:  2f7d0004:00000000:7FE9EF9AAB383130

  • 7FE9EF9AAB383130 being my custom instance number.

Next, open the "Sim Data" and do the same thing. Place your new custom instance instead of the EA "Catalog_Icon"


Step 5.C

Next, we are going to open up a new instance of Sims 4 Studio

We are going to make a separate package to add our strings. I find this easier than adding them to a package I am currently working with. So I can go between the two packages quickly to copy and paste what I need.

Again we will go to "Tools > Create Empty Package"

Give this .package a unique name with the word "STRINGS"

Example: SrslySims_CustomClubActivity_BuyCookbooks-STRINGS

This way you know this is the package that has the stings for your file. 

In the new empty package click "Add" at the bottom. 

Go over to your "Hash Generator" that we used before and change your "Text" section to: 

  • CreatorName:StringTable_ModName

Example: SrslySims:StringTable_BuyCookbooksClub


Once again copy the new unique "FNV 64 Hexadecimal" instance ID.

Next in your "Strings .Package" click "Add" in the bottom left corner.

In the drop-down window find "String Table".

Just as before paste in your new unique instance ID in the "Instance" section. But change the first 2 numbers to "00" as this tells the string you want it in English. If you want another language check another package with strings to see what 2 numbers your language starts with.

  • My instance: 7FE9EF9AAB383130
  • My String Instance: 00E9EF9AAB383130

Once you are done click "Ok" to add it. If you did it correctly you will see "String Table" with the flag of the language you are using.

Next, open up your "Hash Generator" again.

Now it is time to make unique strings that will be used as the "Name" and "Do/Don't" text for the activity.

As before, in the "Text" section type in:

CreatorName:Strings_TextHere

Example: SrslySims:Strings_BuyCookbooksClubActivity

Copy the "FNV 32" number generated, this is your "Hex Key" value. 

Click on your "String Table" and on the window on the right click "Edit Items"

Click "Add".

Change the "Key" to the "FNV 32" you copied in your "Hash Generator".

Under "Value" type in what you want that number to say.

Example: Buy Cookbooks 

Next, we need to add the "Do/Dont" strings. Since in clubs you can flag an activity to give positive or negative reactions to your group. 

Follow the same steps as before and make a string for:

  • "Do ___ activity"
  • "Don't ___ activity"

Example: Do buy cookbooks, Don't buy cookbooks.

Add your new strings via the "Add" button in the "Edit Items" window. 

Click "Save" on the "Edit Items" window to save the strings. 

To add other language strings, go up to "Tools > Modding > Copy String Tables to all Languages"

This will take your language strings and make one for each other language the sims uses. 

You will see a bunch of "String Tables" added with the flag for each language. 

Then click "Save" again on the bottom right side of your package to save your package.

Step 5.D


In your Strings .package, click "Edit Items" and open up your string table to see your strings.

Copy the string "Key" for your Activity Name

Go to your "Club Interaction Group Tuning" and on the "name" line add in your "key value".

Example: 0xB7AC60A5

[Note: 0x must always be in front of your string key value.]

You can change the green text in the line to make a note that you changed this

Example:

<T n="name">0xB7AC60A5<!--SrslySims:BuyCookbooks--></T>


And again, since you changed it in the "Club Interaction Group Tuning" you need to also change the "name" value in the "Sim Data".



Step 5.E 


Once again, go into your Strings .package and copy the "key" value for your "Do activity" text, 

Open up your "Club Interaction Group Tuning" and paste it in for the "tooltip_template" line.


Go to your "Sim Data" and do the same. 



Step 5.F


Last one! Go get your "Dont activity" string from your String Package and you will be pasting it in the "tooltip_template_negative" line in your "Club Interaction Group Tuning".


Paste the string for "tooltip_template_negative" in the "Sim Data" as well.


Click "Save" in the bottom right to save your custom club activity mod. 

Click "Save" in the bottom right to save your Strings.

Step 6


Now that we are done with that. We no longer need 2 packages for our mod. 
There are two things you can do.

1. Merge the package files using Sims4Studio

"Content Management > Merge Packages"

Then drag and drop the 2 package files then save the new merged file and give it a name.

or 

2. Click on the first string table

Hold shift and then click the last table, so all of the tables are highlighted.

Click "Batch Export" at the bottom

A window will pop up, don't type anything just click "Save". Save these to your desktop.

Go over to your mod .package and click "Batch Import" find all of the string tables you just exported to your desktop (you can shift+click to add them all in one go.)

After you add them to the mod package click "Save" again to save your mod.

Step 7


All done! 

Go test out your new activity in-game!!