There are a few options.
Firstly (and most common), you just add a
define unk1 = Character("Unknown Person #1")
style definition into the mix.
Because it's a
define
, it can appear
anywhere in the code. RenPy doesn't care. RenPy scans for certain statements during startup and processes them immediately,
define
is one of those statements. That said, I think most of us would suggest adding it to the same place as the other
Character()
definitions (i.e. probably at the top of the code). There's no technical reason, but it's still "neater" and what the majority of us would expect to see in well written code.
Secondly, there's the option that barely anyone even knows is possible, which is to not use a predefined character object at all.
Normally, you'd expect to see code like:
Python:
e "Hello and welcome to my game."
mc "Thanks."
s "Same, thanks. I'm [mc]'s sister."
But you can just hard code the name of the character instead of using a
Character()
. Like:
Python:
"Eileen" "Hello and welcome to my game."
mc "Thanks."
"Stacy" "Same, thanks. I'm [mc]'s sister."
It doesn't make much sense for main or primarily characters. Even secondary characters who speak a lot, usually do enough to warrant their own
Character()
definition.
But characters with only one or two lines, who will never be seen again... it might be worth it.
In your case, it might be something like:
Python:
"Barista" "What can I get for you today?"
Again, I think most of us would expect a
Character()
definition, even for a character with 2 lines. Mostly just due to familiarity. The other reason to always use
Character()
based characters is the customization options. Maybe it doesn't matter to you, but I tend to use colors to differentiate women from men or love interests from background characters. I also tend to use
what_prefix=
and
what_suffix=
a lot more than average to differentitate spoken dialogue, character thoughts and non-character narration. None of which can be done if you hard code the character name against each dialogue line.