How to Integrate Your Mod with Language Barriers

Sims 4 Modding

Frankk
4 min readSep 9, 2021

Language Barriers restricts which social interactions are available to sims who do not share a common language. So, when LB is installed with other mods that have their own social interactions, it might feel incomplete, or it may get in the way of their gameplay. This is where mod integrations come in — if you have social interactions in your mod that you don’t want LB to touch, or if you want them to unlock at a certain level, you can create a mod integration to tell LB what to do. This tutorial will show you how to do that.

How to set up your integration snippet

The first step is to create a snippet, just as you would any other snippet (a new resource with a type of 7DF2169C). When you’ve created this file, you can paste the following contents into it.

Integration Snippet Skeleton Code

First, change the name of the file using the “Data” tab of S4S, to something likefrankk_LB:interactionLocking_MODNAME_CREATORNAME , where MODNAME is the name of the mod you are making the integration for, and CREATORNAME is your name. Ensure that your file’s name and tuning ID as they appear in the Data tab match the n= and s= in XML.

Next, edit the values of mod_name and creator to be, unsurprisingly, the name of your mod and your name. This information is needed for error logging, so that I can identify if any integrations are causing issues.

What the properties mean

In the skeleton code, you’ll notice there are five properties that define interaction locking. They are:

  1. pie_menu_locking = Tells LB to apply test set to all interactions within a common pie menu category. LB uses this for the friendly, mean, mischief, romance, and funny pie menu categories, but you can use this for your own CC categories.
  2. nonverbal_interactions = Tells LB which of your interactions are nonverbal, and should never be locked or lead to communication events*. Examples include hugging or giving gifts.
  3. interaction_whitelist = Tells LB which of your interactions are indeed social, but shouldn’t be locked because it would get in the way of gameplay. Examples include adopting a child or talking to a coworker at an active career.
  4. affordance_list_whitelist = This is shorthand for adding a bunch of interactions to interaction_whitelist , if you happen to already have affordance lists containing your interactions.
  5. interaction_locking = Tells LB which specific interactions should unlock at specific language levels.

A couple of things to note:

  • At the moment, nonverbal_interactions and interaction_whitelist do the exact same thing. Interactions that appear in nonverbal_interactions will lead to communication events, but I will patch this at some point.
  • If you don’t end up needing a particular property, just delete it from your integration file. Do not leave it in there with the skeleton code.
  • Locking by pie menu has least priority, and if an interaction is whitelisted or included in interaction_locking , it will ignore the test set for its pie menu category.

How to add your interactions

As long as you know how to make tuning mods, you should be comfortable filling in the blanks of the skeleton code. Just add in a reference to one of my test sets (listed below) wherever you see test_set , and include your interactions wherever you see a list, and that’s about it.

If you have any trouble setting up your integration, feel free to reference the frankk_LB:interactionLocking_Core file in the CombinedTuning package of LB, as well as the any of the mod integrations available for download.

One thing that might confuse you is the lock_super_interactions option for pie_menu locking — this tells LB whether or not it should add the test set to super interactions in the pie menu. The reason I make this distinction is because super interactions can stage mixer interactions, so adding the test set to SIs may indirectly affect other mixers. I recommend keeping this set to False , but if your pie menu only contains interactions and super interactions that you’re 100% sure you want to lock, you can set it to True .

Below are the test set references you can use. Please note that there are test sets for levels 6–10, but I ask that you do not use them.

12559674465984958889<!--frankk_LB:languageTestSet_SharesLevel2-->
12559674465984958888<!--frankk_LB:languageTestSet_SharesLevel3-->
12559674465984958895<!--frankk_LB:languageTestSet_SharesLevel4-->
12559674465984958894<!--frankk_LB:languageTestSet_SharesLevel5-->

My rules and guidelines

  1. Do not lock/whitelist vanilla interactions without consulting me. I went through thousands of interactions, picking out which ones I want to lock, and which ones I want to whitelist. If you think I missed something, or have good reason for changing a vanilla interaction, talk to me about it.
  2. Do not lock/whitelist any interactions from other mods. This should go without saying, but only use mod integrations for mods you made, unless you have received consent from its creator first.
  3. Do not use any test sets other than the four I have listed in the previous section. I do not want interactions unlocked at any higher levels, nor do I want you creating test sets with your own conditions added on. If you feel you must do this for your integration to work for some reason, please talk to me first.
  4. Give some thought to what level your interactions unlock at. Think about how hard it would be to perform a particular interaction in a language you are learning, and rank it with levels 2–5 accordingly. It wouldn’t make much sense for a deep conversation to unlock at level 2, and a simple “how are you?” to unlock at level 5, for example.

--

--