Andirz.com
The Sims 4 Modding · Text & Localization

Learn how game text is stored, referenced and localized.

Most tuning does not store player-facing text directly. Instead, resources reference localized strings stored in STBL resources. Understanding keys, locale tables and runtime tokens makes traits, buffs, interactions, careers, objects and UI much easier to edit safely.

Understand STBL resources and string keys Understand runtime tokens and their indices Know all supported game locales Build safe English and translated fallback tables

1. The big picture

The Sims 4 separates most player-facing text from gameplay tuning.

A trait, buff or interaction can contain a reference to a string key, while the actual localized text lives inside an STBL resource.

Tuning

Defines the gameplay resource and contains fields that reference localized text.

String key

A numeric identifier that points to a localized string.

STBL

A String Table resource containing keys and their text for one locale.

Locale

The language/region version of that string table.

Mental modelTuning usually says “show string X.” The active locale's STBL says what string X actually displays.

2. What is an STBL?

STBL means String Table. It stores localized text entries as key/value pairs.

Conceptually:

0x12345678 → "Certified Mechanic"
0x23456789 → "This Sim knows their way around an engine."
0x34567890 → "Repair Vehicle"

The visible text is not identified by its wording. It is identified by its key.

That allows one tuning resource to display different text depending on the player’s game language.

Trait tuning
  → display name key 0x12345678
  → EN: "Certified Mechanic"
  → DE: "Zertifizierter Mechaniker"
  → ES: "Mecánico certificado"
  → RU: "Сертифицированный механик"
  → JA: "認定メカニック"

3. Localization keys

A localization key or string key is the identifier used to find a text entry in an STBL.

Key firstThe key identifies the semantic string. Every locale should reuse that same key and provide its own text value.

Same key, different language

Key 0x12345678
EN → "Certified Mechanic"
DE → "Zertifizierter Mechaniker"
ES → "Mecánico certificado"
RU → "Сертифицированный механик"
JA → "認定メカニック"

Do not create a new key just because you are translating a string. New keys are for genuinely new strings.

4. String tokens and placeholders

Some STBL values are not complete static sentences. They contain tokens that the game replaces with runtime values such as a Sim name, number, amount of money or another string.

Hello, {0.SimFirstName}!

If token slot 0 contains Bella Goth, the displayed text can become:

Hello, Bella!

Common forms include:

Token Meaning
{0.SimFirstName} First name of a Sim/value supplied in token slot 0
{0.SimName} Full Sim name from slot 0
{0.SimLastName} Last name from slot 0
{1.SimFirstName} First name from token slot 1
{0.Number} Number supplied in slot 0
{0.Money} Money value supplied in slot 0
{0.String} Another dynamic/localized string supplied in slot 0

What do 0, 1, 2… mean?

The number is the token argument index.

0 = first supplied token
1 = second supplied token
2 = third supplied token
3 = fourth supplied token
…

For example:

{0.SimFirstName} greeted {1.SimFirstName}.

If slot 0 contains Bella and slot 1 contains Mortimer, the result is:

Bella greeted Mortimer.
0 does not automatically mean Actor, and 1 does not automatically mean TargetSim.
The system displaying the string decides which runtime values are placed into token slots 0, 1, 2 and so on. The mapping must be read from the caller/context.

The same index is used by grammatical branches:

{M0.He}{F0.She} → gender of token slot 0
{M1.He}{F1.She} → gender of token slot 1
{M2.He}{F2.She} → gender of token slot 2

Changing the number changes the runtime value that controls the branch.

Index ruleIf a word describes token 1, its gender/pronoun branch must also refer to token 1. M1/F1 is not interchangeable with M0/F0.

Gender branches: M and F

Gender branches allow one string to contain alternative text for a Sim token.

{M0.actor}{F0.actress}

The letter selects the branch; the number selects whose gender controls it.

M0 / F0 → token 0
M1 / F1 → token 1
M2 / F2 → token 2

Branch only the part that changes

A branch does not need to contain a whole word. If two forms share a stem, keep the common text outside the token and put only the changing ending inside it.

Language Example What changes?
English {0.SimFirstName} is ready. No gender branch needed in this sentence.
German {0.SimFirstName} ist bereit. No gender branch needed in this sentence.
Spanish {0.SimFirstName} está cansad{M0.o}{F0.a}. The adjective ending changes.
Russian {0.SimFirstName} устал{F0.а}. The feminine ending is added to the base form.
Japanese {0.SimFirstName}は準備ができている。 No grammatical male/female branch is needed.

Use a whole word or phrase only when the forms differ enough that a shared stem is no longer practical.

Best practiceKeep shared text outside the branch and branch only the smallest readable part that actually changes.

Singular and plural branches

S and P are used for singular/plural logic, not for English custom pronouns.

Craft {0.Number} {S.candle}{P.candles}

Do not confuse P1 with “pronoun 1”. The P prefix belongs to pluralization syntax; English pronoun tokens use forms such as {1.SimPronounSubjective}.

English custom-pronoun tokens

English has special dynamic pronoun placeholders because Sims can use He/Him, She/Her, They/Them or custom pronouns.

Token Role
{0.SimPronounSubjective} subject pronoun
{0.SimPronounObjective} object pronoun
{0.SimPronounPossessiveDependent} possessive before a noun
{0.SimPronounPossessiveIndependent} standalone possessive
{0.SimPronounReflexive} reflexive pronoun

The leading number still means the token index:

{0.SimPronounSubjective} → pronoun for token 0
{1.SimPronounSubjective} → pronoun for token 1

Other locales often use M/F branches or rewrite the sentence instead of reproducing the English custom-pronoun system directly.

Tokens and Participants are related, but not identical.
Participants & Resolvers explains roles such as Actor and TargetSim. The caller decides which of those values, if any, are supplied as token 0, token 1, token 2 and so on.

5. How tuning connects to text

Many tuning classes expose localized string fields such as display names, descriptions, interaction names, tooltips, notification text, picker titles, career titles and buff/trait text.

The exact field name depends on the tuning class.

Example

A custom trait can contain a display-name field pointing to string key 0x12345678. If the English STBL contains that key with the value Certified Mechanic, that is what an English game displays.

Missing strings

If the active locale does not contain the expected key/value, the player can see missing or blank text, a placeholder, raw-looking output or other fallback behavior depending on the UI path.

Separate gameplay bugs from localization bugs.
If an interaction executes correctly but its label is empty, inspect the string reference and locale STBL before changing the gameplay tuning.

6. Supported languages and locale codes

The Sims 4 supports 18 game locales.

Language Locale code
English (US) en_US
German de_DE
French (France) fr_FR
Russian ru_RU
Polish pl_PL
Swedish sv_SE
Spanish (Spain) es_ES
Italian it_IT
Dutch nl_NL
Norwegian nb_NO
Danish da_DK
Finnish fi_FI
Portuguese (Brazil) pt_BR
Czech cs_CZ
Chinese (Traditional) zh_TW
Chinese (Simplified) zh_CN
Japanese ja_JP
Korean ko_KR
English is the source language.
For custom Sims 4 mods, author the original strings in the English (`en_US`) STBL. Do not treat the source/primary language as an arbitrary choice when building a normal multilingual mod.

7. English fallback for untranslated locales

Every locale resource should contain a usable value for every string key your mod exposes to players.

If you do not yet have a translation for a language, copy the English text into that locale’s STBL instead of leaving the value empty.

For example:

Key 0x12345678
EN → "Certified Mechanic"
DE → "Zertifizierter Mechaniker"
ES → "Certified Mechanic"        ← English fallback
RU → "Certified Mechanic"        ← English fallback
JA → "認定メカニック"

The player may see English for an untranslated string, but they will not see a deliberately empty label.

Fallback ruleMissing translation = copy the English value. Do not create empty locale entries.

STBL Studio vs Sims 4 Studio

Frankk’s Online STBL Studio handles this fallback workflow for you when creating localization projects: untranslated language entries can be populated from the English source instead of being left blank.

If you build or maintain STBL resources manually in Sims 4 Studio, you need to ensure this yourself. Create the locale STBL and copy the corresponding English values for every key that has not yet been translated.

A locale table should not be a half-empty skeleton.
Keeping all keys synchronized across English and every other shipped locale also makes later translation updates much easier to audit.

8. Localizing and translating mods

There are two related but different jobs:

Localization-aware modding

Create stable string keys, author the English source text, reference those keys from tuning and ship synchronized locale STBLs.

Translation

Take those existing keys and replace the English fallback value with equivalent text for another supported locale.

A translator normally should not need to edit gameplay tuning. The task is to preserve every key and token relationship while translating the text values.

Practical translation guide
For the screenshot-based workflow in STBL Studio and language-specific grammar guidance, see Translating Sims 4 Mods.

9. Overrides, conflicts and custom strings

Custom string

A custom mod normally uses its own stable string keys. This avoids replacing EA text and keeps the mod self-contained.

String override

If a package provides a different value for an existing EA string key in the same locale, it can replace the displayed text wherever that key is used.

One key may be reused in more places than you expect.
Before overriding an EA string, check where the key is referenced. Changing a shared string can alter text in multiple unrelated interfaces.

Key collisions

Two custom mods using the same custom string key for different text can conflict. Good tooling and consistent key-generation practices reduce this risk.

10. A practical localization workflow

1
Create the English source

Author the original string in the English en_US STBL.

2
Reference its key

Use the same stable string key from tuning.

3
Mirror the key to every locale

Use a real translation where available; otherwise copy the English value.

4
Preserve tokens and indices

Keep runtime argument numbers and grammatical relationships intact.

5
Test actual game locales

Check names, descriptions, tooltips, notifications, picker text and token-heavy strings in game.

Common beginner mistakes

1Using a non-English locale as the source instead of authoring the original string in en_US.
2Leaving untranslated locale values empty instead of copying the English fallback.
3Creating a new key for a translation instead of reusing the English key.
4Changing token indices such as 0/1/2 and accidentally making grammar depend on the wrong runtime value.
5Changing an EA key without checking where else it is used.
6Assuming a blank UI label means the gameplay tuning itself is broken.

Quick reference

Term Meaning
STBL String Table resource containing localized text
String key Identifier shared across locale versions of the same string
English STBL Source/original text for a normal custom mod (en_US)
Locale Language/region version of an STBL
Token index Runtime argument slot: 0, 1, 2…
M/F Gender-dependent branches tied to a token index
S/P Singular/plural branch syntax
English fallback English text copied into a locale until a real translation exists
Override Replacing the value of an existing key
Key collision Two unrelated resources unintentionally using the same key
The core idea
Gameplay tuning references a key; English defines the source text; every shipped locale provides a value for that same key; and tokens insert runtime data into the final sentence.