« Back to Glossary Index

If something in a program is implicit, it means that it’s done without the programmer specifically telling the program to do so. By contrast, if something is explicit, it means the programmer has specifically told the program to do something. For example, consider the following code:

define x = Character("Xia")

Now when you write dialogue with the character x, Xia’s name will appear on-screen as the speaker of the dialogue. By default, the name has several properties – it has a colour, a font, and a size. These are added to the Character definition implicitly. Ren’Py will assign these properties to the character even if they are not provided, so it can display Xia’s name to the player. If you wanted to use a different colour for Xia’s name in particular, for example, you would have to explicitly specify this with the who_color argument e.g.

define x = Character("Xia", who_color="#ff0000")

This explicitly declares that Xia’s name should appear in red (“#ff0000”).

Some other common behaviours that are implicit in Ren’Py:

  • If you reach the end of the file without a jump, call, or return, the program will behave as though there was a return line at the end of the file.
  • If you reach the end of a label without a jump, call, or return, Ren’Py will continue on to any labels defined beneath the currently executing one, as if that label had been jumped to.
  • Anything that isn’t given a transition (but could have one), like dialogue, showing character sprites, or showing screens, is implicitly given the transition with None. This basically acts like the absence of a transition.
« Back to Glossary Index