Defining Characters - Ren'Py Visual Novel Engine

documentation index

## Defining Characters

Characters in Ren'Py are very powerful objects, but in common practice they're very easy. (If you want to get into the really powerful stuff, check out the Defining Characters chapter of the reference manual.) (Please note through all of these examples that characters must be defined inside of an init block.)

The simplest way to define a character is:

    init:
        $ jane = Character("Jane")

In practice, this is a little too simple. You should choose a color for the character's name. You do this by a standard red-green-blue hex triplet: #rrggbb. To make Jane's name appear in medium green:

    init:
        $ jane = Character("Jane", color="#009900")

A useful color chart may be found here.

Still common, but less so, is to use an image in place of the name. To do this, instead of giving jane a name, you give the filename of an image (placed in the game directory of our Ren'Py project), and tell Ren'Py that the name is really an image:

    init:
        $ jane = Character("jane_label.png", image=True)

The other common thing that you might want to do with characters is to make the text that they say appear in a different color. This makes both the label and the text for whatever Jane says appear in medium green:

    init:
        $ jane = Character("Jane", color="#009900", what_color="#009900")

When defining characters with more than a few lines, it's a good idea to make the Ren'Py name of the character as short as possible. So rather than:

    init:
        $ jane = Character("Jane")

it's better to write:

    init:
        $ j = Character("Jane")

It will save you a lot of typing in the long run, and is usually just as readable when you're editing your story.

When definining more than one character, don't forget that they only have to be in an init block, you don't need an init block for each one:

    init:
        $ j = Character("Jane")
        $ a = Character("Adam")
        $ s = Character("Sara")

Previous: Ren'Py Script Structure | Ren'Py Web Tutorial | Next: Your First Dialogue

documentation index