Pronoun Tool for Ren'Py
A downloadable tool
This is Pronoun Tool, a simple tool to select and display pronouns in your Ren'Py game. (For an example of a game using a simpler version of this tool, take a look at TOMATO CLINIC.) It was made in Ren'Py 7.3.5.606 but has support for the extra self-voicing options available in Ren'Py 7.4.
Features:
- Player-selectable pronouns (3 by default but more can be added)
- Menu to select pronouns using a screen and using a dialogue choice menu
- Text tags to change what text is displayed depending on the pronouns selected
- e.g., This is {0}Mr{/0}{1}Ms{/1}{2}Mx{/2} Parrot.
- Pronouns as variables (with note re: extra work required for translation)
- e.g., [they!t!c] went to the supermarket with [their!t] friend.
- Display pronouns on-screen when a character is speaking (toggleable)
- Guide to show how these functions work in-game
To use this tool, follow these steps:
- Copy the file named pronountool.rpy from the game folder into the game folder of your own game.
- Follow the instructions in pronountool.rpy to implement it in your game.
You can also play the guide by launching the tool through Ren'Py if you put the folder into your Ren'Py project directory. It gives examples of how to use each of the features.
The code in this tool can be used in any way you like! If you use this tool, I would appreciate it if you credit Pronoun Tool or npckc (https://npckc.site or https://npckc.itch.io) in some way, but it isn't required.
~
sign up for my newsletter to get an email when i release a new game 🎁
join my patreon for secret updates, a monthly digital postcard & early access to my games!
~
updates:
- 2020/12/13 updated text tag names to avoid any potential conflict with default ren'py
- 2020/12/12 full release
- 2020/12/09 early access for patrons
Status | Released |
Category | Tool |
Rating | Rated 4.8 out of 5 stars (42 total ratings) |
Author | npckc |
Genre | Visual Novel |
Made with | Clip Studio Paint, Ren'Py |
Tags | gender-inclusive, inclusive, pronouns, Ren'Py |
Code license | MIT License |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse, Gamepad (any), Touchscreen |
Accessibility | Color-blind friendly, Subtitles, Interactive tutorial |
Links | Homepage, Twitter/X, Patreon |
Download
Click download now to get access to the following files:
Development log
- Pronoun Tool released!Dec 11, 2020
Comments
Log in with itch.io to leave a comment.
Thank you for an excellent tool. It is very useful for our game!
Useful x2
Hello! First of all THANK YOU SO MUCH I literally started coding last month I know next to nothing about it and this is so well explained thanks a lot! I'm having an issue tho:
i write in french and with the never ending gendered words i only use the text tags, and when running in the game:
"{0}blabla il{/0}"
"{1}blabla elle{/1}"
"{2}blabla iel{/2}"
The chosen option appears but the unchosen ones also do, with nothing written. Just blank. I guess its because its not chosen it display nothing? So how do i make it skip it and not just show me nothingness?
hmmm i think for french what i would suggest is having them all in one tag even if it makes one text look a bit long, like
"{0}blabla il{/0}{1}blabla elle{/1}{2}blabla iel{/2}"
in this case only the relevant text would show up!
however since french is very gendered it might be tedious to type so often so using the pronouns as variables option might be a bit easier for you. the example i have in the tool is for english but you could do something like
default iel = [
__("il"), #0
__("elle"), #1
__("iel"), #2
]
default e = [
__(""), #0
__("e"), #1
__(".e"), #2
]
and in game type something like "[iel] est mon ami[e]" and it would show up as either "il est mon ami", "elle est mon amie" or "iel est mon ami.e" depending on the current pronoun (and adding other variables as necessary)
*if you want to translate you would need to use [iel!t!c] &c. but if you have no plans just typing it like [iel] would be sufficient
Hi there, I have run into an issue while trying to implement this into my game. The problem is that I still couldn't get the hang of modifying verbs like "to be" into "were" for they/them or "was" for she or he. Can you please help me with this?
You should use text tags.
Copying example text from above:
Text tags to change what text is displayed depending on the pronouns selected
e.g., This is {0}Mr{/0}{1}Ms{/1}{2}Mx{/2} Parrot.
pronountools.rpy also suggests a different method if you don't plan on localising.
Hey! I'm getting this error whenever I try to make the mc talk (I'm referring to mc as aka):
```
File "game/script.rpy", line 52, in script
aka "Ugh..."
TypeError: Unexpected keyword arguments: 'pronouns'
Thanks for making this! I am getting the following error:
File "game/pronountool/game/screens.rpy", line 426: keyword argument 'xpos' is incompatible with 'xalign'.
xpos gui.dialogue_xpos
^
I'm fairly new to Renpy. Any advice on how to fix this? Do I just remove this one keyword?
Hi! I've been trying to implement the Pronoun Tool, but instead of a talk choice ("menu") I wanted to offer buttons, with something vbox like:
textbutton "he / him":
text_style "button" align(0.5, 0.5) action SetVariable("pronoun", 0), Jump("scene_next")
But whatever pronouns are picked, it is always set to default "they/them". I am very new to this, but... do you have any hints where/what to look for so I could fix it? I thought that maybe it's the same thing prikarin had problems with, but I am unsure if that's true or what variables they copied.
If your code is the way it is in your shared snippet, it shouldn't work at all because you don't have [] around the multiple actions for your button.
Other than that I would make sure you are calling the required code from pronounselection to actually implement the selected pronoun after the action.
it's just a small portion of that code. Would it be ok if I sent you bigger chunk? Only to implement the tool, the buttons work, so I think I may be missing something rather small.
EDIT: I think I managed to fix it! I will continue checking if it's wrong, I will ask again, if that's ok with you. I also donated few $. Even if it's not much, I wanted to say thank you in some way :)
Hey, I'm having the similar problem. It always chooses they/them, no matter what I choose. Do you mind sharing how you fixed it?
Oh my, it was a couple of months ago... I think I was lacking code that would actually call the pronouns. I think I was missing these -- after the custom buttons I made... I think.
$ selectedpronouns = pronounlist[pronoun]
$ they = theylist[pronoun]
$ them = themlist[pronoun]
$ their = theirlist[pronoun]
$ theirs = theirslist[pronoun]
$ s = slist[pronoun]
$ es = eslist[pronoun]
$ are = arelist[pronoun]
Or something like that. Sorry I cannot be more specific, I am still learning...
This is great, thank you! Is there a way to have mixed pronouns for a character, ie. she/they? I was thinking maybe it's possible to have a new pronoun set for those options and then somehow make it 50-50 which pronoun list gets used each time... not sure how to do that though, I'll try and work it out!
i think what you could try doing is calling renpy.random every time the pronoun is used to randomise the pronoun, but i think that's not an ideal application and it would probably be better to alter this tool a lot to fit your needs or just use it as a base to make a tool of your own.
i love how she creates helpful games. thanks!
Oh my gosh this is super helpful, thank you so much!!
Edit: My friend helped me out! I just had to copy the variables from the pronountool.rpy and paste them on the script.rpy after the selected pronouns line, hehe. Thanks again for this wonderful tool!
I just wanted to ask a question, if it's alright. I'm reading the instructions to implement the tool and it worked for me when I used the pronoun text tags but I'm having trouble making the pronoun variable work; it goes to "they/them" by default.
Is there something we need to add to the script.rpy or any of the other rpy files to make the variable work when you're typing dialogue? Sorry about this, I'm a bit of a beginner with Ren'Py and coding 💦
glad it worked out! i'll go over that part and see if i can make it more clear in the explanation.
oh man, thank you so much for this tool. i use ren'py a lot and pronouns suck to program in. 10/10, good job!
Mx Parrot explained things very clearly and sweetly, and I was enthused when I understood how the {0}{1}{2} tags work! Super cool!
Thank you so much, npckc <3
i'm glad the explanation was clear! (:
Hello! First, huge thank you for developing this, it is so incredibly helpful. I am new to Ren'py and Python in general, so I think I'm messing something up, but I can't figure out what it is.
It's weird because I'm able to get the preferences menu working and the player can choose their pronouns, but I think I'm typing this part in particular incorrectly because the error keeps coming up as "Exception: Unknown keyword arguments: pronouns". I haven't made any changes to the actual pronountool script, so I feel like it's probably just something I'm mistyping in this space.
Thank you for your help in advance, and sorry if this has a really simple solution that I'm just overlooking. ^^;
hello! unfortunately i can't tell what the error is just from that. i think ren'py should give you a more detailed traceback.txt, but would you be able to copy/paste that into a comment here (or send it to me @ https://npckc.site#contact)?
Oh, okay, will do! Thank you!
I'm getting this error too... did you ever find a solution?
Hello, first of all, thank you for creating this. I was wondering if there's a way to incorporate this into imagemap. Thanks a lot!
hmm, i think you could do it if you add a screen for your imagemap and show that in the pronounselection label instead of the choice menu that currently appears.
Yep, I tried doing that with the screen variable but I keep having errors for some reason. How would you recommend the correct approach?
unfortunately without actually looking at your code i can't say anything more specific. i don't think you should be using screen variables though - the screen you create should be using the variables specified in pronounselection so that it can change the variables directly.
Sorry, it was SetVariable, not Screen Variables. Anyway, the code is this.
I managed to work around it somehow. Thanks for the help regardless.
this is a really nice tool and I like it a lot!!! it'd be really cool if custom pronouns were available too
the tool has 3 pronouns by default but more can be added, as stated in the summary.
I know about that but I mean like when the player gets asked what pronouns they have and they choose their own custom set
if that's something you want to do, you could set it up by asking the user for input in renpy. it would cause issues with translation though, so it hasn't been included in this tool.
oh ok!! thank you for responding!!