Pronouns
Status: read + display only (MVP). There is currently no in-game control for a player (or your mod) to let someone change a pronoun through a Core-provided UI — only to read the current one and set it programmatically. If your mod wants to offer pronoun editing, you're building that UI yourself against setPronoun() below; Core doesn't provide one yet.
Reading the current pronoun in your own prose
Use the (bmft_pronoun:) macro from your own Twee content instead of hardcoding "she/he" — including the subject pronoun itself, not just object/possessive:
($caps:(bmft_pronoun:"subject")) looks (bmft_pronoun:"possessive") way and grins.
-> renders: "She looks her way and grins." or "He looks his way and grins.",
depending on the current pronoun.(bmft_pronoun:) always returns lowercase ("she", "his", ...), same as the base game's own pronoun-adjacent text — wrap it in ($caps:...) (the base game's own capitalization macro, project/twee/10-systems/utility/create utility macros.twee:168) any time it starts a sentence, the same way you'd capitalize any other variable-driven sentence opener.
part is one of "subject" (he/she/they), "object" (him/her/them), or "possessive" (his/her/their).
This always works — it's always registered, and if pronoun tracking is turned off inside Core, it silently returns plain base-game-standard he/him/his or she/her/her (matching whatever the base game's own (is_fem:)/(is_male:) would already show) instead of whatever custom value might otherwise apply. You never get an "unknown macro" error and never need to check anything first.
Reading a pronoun from your own JS
const subject = window.BMFT.Identity.pronounText("subject");Same macro, same fallback guarantee, callable directly from JS if you're not in a Twee passage.
Whose pronoun, exactly
The pronoun (bmft_pronoun:) returns is always the player character's currently active one — whichever pill is active (or the player's base gender, if none is) — not a specific NPC's. There is currently no per-NPC equivalent; this system only tracks the player character.
Setting a pronoun programmatically
window.BMFT.Identity.setPronoun("Base Gender", "they_them");- First argument is a dictionary key:
BMFT.Identity.BASE_GENDER_KEY(the constant, equal to the string"Base Gender") for the player's real-gender pronoun, or a specific pill's id string to override that one pill's pronoun independently. - Second argument is one of
"he_him","she_her","they_them"— throws if you pass anything else (a real caller mistake, not a state you should ever see in normal use). - Has no effect on what
(bmft_pronoun:)displays if the pronoun feature is currently disabled inside Core — the write still happens (so it's there once re-enabled), but reads ignore it until then, per the fallback guarantee above.
What to check after using this
- If you're calling this from Twee content, run
validate_modagainst your mod (the X-Lifestyle MCPvalidate_modtool if you have it, or Core's ownmcp/CLAUDE.md-documented process) to confirm(bmft_pronoun:)resolves as a real macro. - There's nothing else to verify on your end — you don't need to check whether the pronoun feature is enabled before calling any of the above; that's handled for you.