ReferenceReference

Participant functions

Reference participant numbering, gender, pronoun, body, sexuality, identity, count, and matching helpers.

Participant numbers begin at 1. Participant 1 is always the JOI using the Item action or Boop. When a participant function receives no numbers, it checks every participant.

Gender

gender(gender, participant1, participant2...)

Returns true when every selected participant matches WOMAN, MAN, or NON_BINARY.

gender("WOMAN", 1, 2)

Gender shortcuts

woman(participant1, participant2...)
man(participant1, participant2...)
nonbinary(participant1, participant2...)

Each shortcut returns true when every selected participant matches that gender. With no indexes, it checks everyone.

Body

genitals(value, participant1, participant2...)

Supported values are PUSSY, COCK, BOTH, FLUID, and NONE.

When checking PUSSY, participants with PUSSY, BOTH, or FLUID match. When checking COCK, participants with COCK, BOTH, or FLUID match. Other values require an exact match.

Body shortcuts

pussy(participant1, participant2...)
cock(participant1, participant2...)

These use the inclusive matching behavior described above.

Sexuality

sexuality(value1, value2..., participant1, participant2...)

Returns true when every selected participant has all requested sexuality values.

sexuality("BI", "POLY", 1, 2)
anySexuality(value1, value2..., participant1, participant2...)

Returns true when every selected participant has at least one of the requested values.

Supported values:

STRAIGHT, GAY, LES, BI, BI_CURIOUS, POLY, ASEXUAL, DEMI, PAN, QUEER, ARO, ANDRO, SKO, QUEST

Participant indexes must come after the sexuality values.

Sexuality shortcuts

straight(participant1, participant2...)
gay(participant1, participant2...)
lesbian(participant1, participant2...)
bi(participant1, participant2...)

gay() matches GAY or LES. lesbian() matches LES. The other shortcuts match their same-named value.

Gender identity

genderIdentity(value1, value2..., participant1, participant2...)

Returns true when every selected participant has all requested identities.

anyGenderIdentity(value1, value2..., participant1, participant2...)

Returns true when every selected participant has at least one requested identity.

Supported values:

AGENDER, ANDROGYNE, ANDROGYNOUS, BIGENDER, FTM, GENDERQUEER, QUESTION, NONCON, VARIANT, MTF, NEUTROIS, TRANS, TRANSGENDER, TRANSSEXUAL, PAN

Identity shortcut

trans(participant1, participant2...)

Matches TRANS, TRANSGENDER, or TRANSSEXUAL.

Pronouns

Pronouns on Joi

Every Joi provides these lowercase string properties:

ACTOR.they
ACTOR.them
ACTOR.their
ACTOR.theirs
ACTOR.themselves
ACTOR.is
ACTOR.was
ACTOR.has
ACTOR.does

They are available on all Joi values, including selected JOIs and Seat.joi.

Pronoun values

Pronoun::fromGender(gender)
Pronoun::of(participantOrJoiOrSeat)

Pronoun::fromGender() accepts "WOMAN", "MAN", or "NON_BINARY". Pronoun::of() accepts one participant number, Joi, or Seat; an explicit participant number must exist.

Both functions return a Pronoun with the same pronoun and agreement properties exposed by Joi:

PropertyWomanManNon-binary
theyshehethey
themherhimthem
theirherhistheir
theirshershistheirs
themselvesherselfhimselfthemselves
isisisare
waswaswaswere
hashashashave
doesdoesdoesdo

Use agree(singular, plural) for other verbs:

let p = Pronoun::of(2);
let attempt = p.agree("tries", "try");
text "{p.they} {attempt} again.";

Standalone helpers

they(participant)
them(participant)
their(participant)
theirs(participant)
themselves(participant)

Each helper defaults to participant 1.

HelperWomanManNon-binary or unknown
they()shehethey
them()herhimthem
their()herhistheir
theirs()hershistheirs
themselves()herselfhimselfthemselves

count()

count()
count(match, participant1, participant2...)

With no arguments, returns the total participant count. With a match string, returns how many selected participants match.

Simple matches:

woman, man, nonbinary, pussy, cock, straight, gay, lesbian, bi, trans

Structured matches:

count("genitals:BOTH")
count("sexuality:BI,POLY")
count("genderIdentity:TRANS,FTM")

The optional participant indexes follow the match string.

any()

any(match, participant1, participant2...)

Returns true when at least one selected participant matches. It accepts the same match strings as count().

count() == 3 and count("man") == 2 and any("woman")

Missing participants

Configure the action’s minimum participant count for every number your code requires. Direct plural checks return false when a requested participant does not exist. Lore functions report an error for a missing participant number.