Non-Binary Pronoun Discussion [TADS Adv3Lite]

EDIT: The GitHub repo for this extension can be found here!



@pieartsy might be interested to know that I’m cutting through the jungles of Adv3Lite to create a flexible gender/pronoun system.

In theory, this was supposed to be easy. I’m finding comments in parts of the library which plainly say “To add more pronouns, simply create the necessary objects and grammars”.

However, it (obviously) turns out to be a lot more involved than this. Quite a few parts of the library heavily depend on the assumption of known, finite pronouns being used, and these pronouns being known and standardized across the entire language.

So, I have my standard for supporting author-designated genders and custom pronouns (including “noun-self” pronouns like “bun/bunself”, which turned out to be the easiest challenge). Using this standard, I’ve tried to reduce the complexity of adding new pronouns to a minimum. Unfortunately, this system doesn’t easily allow an author to assign pronouns in the vocab string; you’ll need to use the new pronouns property instead (for Actors), and manually set the plural and ambiguouslyPlural properties for any applicable plural inanimate objects.

Again, I’m trying to make this as simple as I can for authors, but there are just some things that simply had to be gutted.

This system will also be able to handle characters with multiple pronouns (such as “they/he”, “she/they”, “it/he”, “ze/they”, etc).

Again, a lot of the challenges here come from this: Despite promising easy addition of pronouns, a lot of Adv3/Adv3Lite really doesn’t make it so easy, so I’m trying to make it comfortable with more unknowns, and streamline this process for authors.

The main scope limitation is I’m only promising this can work for English Adv3Lite.

I’ll make this open source in a while and post updates here.


Oh my gosh, thank you!! I’m excited to see.

1 Like

Okay, I’m pretty sure I’ve figured it out.

There’s a chance there could be bugs, but I’m also not completely versed in all the ways that pronouns and conjugation get used in Adv3Lite. At least, I’m not confident I am.

I did a library-wide search for “isHim”, to figure out what parts of the code were using binary genders, and I rewrote them to handle a customizable spectrum, while using the same input-output logic. However, I more understood them as individual units, according to the documentation and comments, and I don’t have the entirety of Adv3Lite in my brain. I’m not entirely sure what use-cases these sections would get caused.

So I’d really appreciate some testing and feedback.

Currently, I’m writing up the documentation, and will post a GitHub link shortly.


Kind of off-topic, but why would a character have multiple pronouns?

1 Like

There are a few reasons.

Some people just have multiple pronouns. I go by any pronouns at all, so I’d have a sizeable list if I were to put myself in the game. Some people have a preferred set of pronouns, but will also go by another set. Some people have a specific list of pronouns that they are equally-comfortable with, so any of them could be used at random.

Additionally, if you have a character who is transitioning, then you might want to recognize their desired pronouns for players who have played the game before, but the printed pronouns might be another set in the list that they go by publicly, until they trust the player enough to request different pronouns be used instead, at which point the game will change the listed pronouns, and potentially the list as well.



The GitHub repo for this extension can be found here!

I’m pretty sure everything works, but if anyone wants to stress-test it, then I’d really appreciate it!


side point (I’m from Southern Italy, former Great Greece) non-binary can be simplified in ternary ?

I’ll explain: classical Greek has three genres (male, female and “mixed” and three numbers (singular, dual and plural) so, at least for couples, all basic bases are covered (male dual, female dual and mixed dual)

Best regards from Italy,
dott. Piergiorgio.

1 Like

Non-binary refers to a single person’s gender identity in this case, which can be basically anything (or nothing), by definition. That’s why I implemented this as a list and streamlined the creation of custom pronouns and such. It’s not really something that could reliably be simplified to ternary, because it cannot be guaranteed to stay within those boundaries or combinations.


Nonbinary refers to any gender identity that is outside of the Western-typical male/female gender binary. It is not just a single 3rd gender.

Personal pronouns (ie 3rd person singular pronouns used to refer to a person) are one of the many ways of expressing a gender identity to the world. Just as most English-speaking men feel like he/him is a pronoun that expresses their binary male gender identity and most English-speaking women feel similarly with she/her and binary female, nonbinary people can feel similarly about the personal pronouns they use.

Because nonbinary genders can be anything (other than only and always a binary gender), any pronouns can be used, and many nonbinary people feel like multiple pronoun sets are a better way of presenting their gender to the world over just one set.

Speaking for myself, I use “se/er” (a neopronoun set) preferentially and “she/her” when around people who don’t know what neopronouns are.

So my first test for this library might be attempting to have different pronouns used for the same person depending on who they’re around.


Very curious to see how you implement this! :grin:

1 Like

I am too! I have no idea how to do anything yet!


There’s also the older reason, which is that many things that aren’t people can be referred to either as “it” or “he/she” in English. For example, a player being introduced to a fluffy cat might reasonably type either PET IT or PET HIM. Similarly for a ship, which sailors might call HER and non-sailors might call IT.

There’s also the classic IF trope of a mysterious figure that you never see in any detail; if you don’t specify anything, you don’t know whether players will X HIM, X HER, or X THEM. (Or a mysterious figure that you do see in detail but the game avoids ever using third-person pronouns for, like Black in Jigsaw. I don’t actually know what pronouns the game sets for them. I should check that.)

EDIT: Or even X IT, if the player sees a mysterious shadow that may or may not be a person. That seems like a place where literally any third-person pronoun would make sense.

In the classical account (i.e. Dionysius Thrax), there are five! Masculine, feminine, neuter, epicene, and common.


This sounds really awesome! Although it makes me somewhat afraid of what I’m going to have to do to get adv3lite to accept neopronouns for one of the NPCs in my story.


Well, the extension I made should handle that! :grin:


Have you looked into Adv3? Is it much harder, or just another equivalent swag of work and you prefer adv3lite?

1 Like

Adv3, in my experience, seems to be the result of a hyper-detailed brainstorming session, where someone tried to figure out every possible thing to put into the library up-front. The problem, though, is if you want to do things differently, then you have roughly 10 times more stuff to rewire and cut out and move aside. This is assuming you’re knowledgeable in every subsystem enough to know what applies to your plan and what doesn’t.

I tend to use Adv3Lite because it’s not only actively maintained, but Eric seems to design it with the idea that things only need to be introduced or become more specific if you want them to be. This means it’s much easier to figure out what needs removing, replacing, or rearranging to get what you want.

It’s very possible that this extension works as-is for Adv3, as a lot of the code I was working around seemed to be from Mike’s original Adv3 library, and I don’t think I actually poked at much Adv3Lite stuff. I could be wrong, though. Frankly, I’m only 99% sure I covered every base in Adv3Lite, so I would really appreciate people testing this in actual games. Nothing I make is character-driven enough, so I didn’t have a test environment handy. I usually do more with environment mechanics.

But if I’m only 99% sure about Adv3Lite, then I can only be maybe 40% sure about Adv3, as far as this extension is concerned.

EDIT: Primarily, I use Adv3Lite (in general, not just for this extension) because very very few of my game ideas follow conventional formulas enough for Adv3 to be convenient for me. I’m going to probably gut 60% of any standard library before my projects are done, and that means a lot less work in Adv3Lite.


Joey, I’m not sure about your estimated 10:1 ratio of “stuff to reroute and or move aside”, because I haven’t seriously coded in a3lite, but, in my serious coding with adv3, with results like abusing the candle class into an easier-to handle short-time fuse, turning the <<…>> adprose into a micro-script language (ex. increasing/decreasing variables with an abuse of the ternary operator:

<<first time>><<var++ ? "" : "">><<only>>

&.c &c. I can’t say if the ratio is 10:1, and albeit I have only done a quick reconnaissance of your source, I can’t truly compare the coding effort between adv3 and a3lite.

Best regards from Italy,
dott. Piergiorgio.

1 Like

I think the candle class might also be in Adv3Lite, and the <<...>> trick definitely works there.

What I mean is: Consider a game that doesn’t have the usual parser game mechanics. As in, rooms as a concept might not exist in your game, or work completely differently. Or how you would change the way the game considers something “in reach”.

Adv3 has a very large amount of useful tools that come standard, but they all assume you’re making a “room-door-item” style of parser game.

I’m not saying that Adv3 always requires 10:1 effort. I’m saying that I personally like making really weird stuff, which means that I do not have a use for the majority of features in Adv3, and because there are so many of them (which all interconnect with each other), it takes me 10:1 effort to remove and work around them.

Adv3Lite is comparatively simpler, and a lot of the functions similar to Adv3 are left to optional extensions. Because Adv3Lite is so much simpler, I would need to put in a lot of effort to recreate Adv3, but if I’m going in the opposite direction (making a game that has little overlap with Adv3 or Adv3Lite), then Adv3Lite is easier to break apart into the bare essentials that I still need.


FWIW, the candle-like class in adv3Lite is FueledLightSource, and it’s located in the “fueled” extension packaged with it.


if you appreciate the easiness of removing unneeded features of a3lite, I assume that you actually started from the more barebones a3liter configuration (that is, a3lite minus actors, attachables, events, event lists, exits, extras, gadgets, menu system, hint system, path finding, sense connections, scenes, scoring, topics thoughts instructions, newbie helping…) drastically reducing the features to remove/rebuilt as wanted.
(I still don’t have fooled around a3liter…)

Best regards from Italy,
dott. Piergiorgio.