Image Source

Fonts are surely one of the most important elements of a good visual novel. Ren’Py, a commonly used application to build visual novels, supports several TrueType, OpenType as well as Image-Based fonts. As a creator, it is only natural that you would want to experiment with different fonts before picking the best-suited one for your visual novel. This article discusses the detailed steps on how to change font in Ren’Py. We will also walk you through installing Ren’Py and in exploring different fonts online.

Basics of Ren’Py

Ren’Py is an open-source game engine that has been developed in the programming language of Python. It has a very simple syntax and can be easily used by people with even no knowledge of programming. Ren’Py uses a highly customizable Graphic User Interface (GUI) based platform, that adds to the ease of use. Changing fonts in Ren’Py is considered to be an Intermediate-level GUI customization.

How to change font in Ren’Py: Basic Overview

Location of the font files

When wondering how to change font in Ren’Py, the most important thing to remember is the location in which you should add the font file. The font file must always be present in the game directory. The game directory will almost always be named “game” and can be found in the level beneath your base directory. All the files that are used by your game can be found in this game directory. You will want to ensure that your desired font file is present in this particular directory. We talk about this in more detail in the ‘Installing Ren’Py’ section of this article.

Format of the font files

Most creators tend to use font files of the .ttf format, which is the TrueType format. However, Ren’Py also supports OpenType (.otf) and Image-based formats, in addition to the TrueType format. TrueType format requires only one file, that is often supplemented by separate files for each of the font styles (normal, italic, bold etc). On the other hand, OpenType format supports an expanded character set that includes alternate styles, ligatures, glyphs and so on.

How to change font in Ren’Py: Detailed Steps

Category 1: TextType font and OpenType font

Different GUI variables can be made use of when trying to change the font in Ren’Py. In the case of TrueType font and OpenType font, they can be specified by mentioning the name of the files. Let us take a look at some variables that we can use to specify and change fonts in Ren’Py. For our example’s sake, let us consider the font file to be of the name “FontFile.ttf”. This font file must be added in the game directory of your project.

define gui.text_font = “FontFile.ttf”

By specifying the font using the gui.text_font variable, you can set the font for menus, dialogue texts, in-game texts, and inputs.

define gui.interface_text_font = “FontFile.ttf”

The gui.interface_text_font variable allows you to set the font of the text that is used on user interface elements like buttons, main menus, and game menus.

define gui.glyph_font = “FontFile.ttf”

The gui.glyph_font variable can be used when you want certain glyphs for your font. For example, the arrow glyph that is used by the skip indicator. Ren’Py’s default font for glyphs is DejaVuSans. This default font is automatically included in every new Ren’Py project that you create.

These font variables are often used in combination with other style variables like text color, text size, idle color, accent color, hover color, selected color muted color and so on.

Category 2: Image-Based font

Image-Based fonts have to be registered before you can specify them. You can register an Image-Based font by calling any of Ren’Py’s registration functions. You will have to mention the name, boldness, size, italicness, and underline when registering the Image-based font. We have shared examples of a couple of Ren’Py’s registration functions below.

renpy.register_bmfont(name=None, size=None, bold=False, italics=False, underline=False, filename=None)

This particular registration function is used to register a BMFont. General and Latin punctuation are recommended as a part of the BMFont to avoid any potential issues with Ren’Py’s rendering. The size, bold, underline, and italics parameters are all optional and have no effect on the appearance of the font.

renpy.register_sfont(name=None, size=None, bold=False, italics=False, underline=False, filename=None, spacewidth=10, baseline=None, default_kern=0, kerns={}, charset=u’!”#$%&'()*+, -./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_’abcdefghijklmnopqrstuvwxyz{|}~’)

This registration function is used to register an SFont. The size, bold, underline, and italics parameters are all optional and have no effect on the appearance of the font. The baseline parameter refers to the distance between the top of the font from its baseline.

renpy.register_mudgefont(name=None, size=None, bold=False, italics=False, underline=False, filename=None, xml=None, spacewidth=10, default_kern=0, kerns={})

This registration function is used to register a MudgeFont. The size, bold, underline, and italics parameters are all optional and have no effect on the appearance of the font. Ren’Py ignores the negative character codes from the MudgeFont xml file. Moreover, it assumes that all character codes are Unicode character numbers.

Installing Ren’Py

Step 1: Download the latest version (currently 7.4.11 – Lucky Beckoning Cat) from here. It will get downloaded in the form of a zip folder.

Step 2: Unzip the downloaded Ren’Py folder and move it to any folder or path of your choice.

Step 3: Open your terminal. Mac users can search for ‘Terminal’ from their Launchpad. Windows users can search for ‘Terminal’ using the Windows Search or the WinX menu. Alternatively, they can use the Run window and open the terminal by typing wt and clicking ‘Ok’.

Step 4: In the terminal, move to the directory of the downloaded folder. This can be achieved using the ‘cd’ command followed by the path of the downloaded directory.

Step 5: Once the terminal has been set to your downloaded directory, run ‘’. Linux users will have to enter ‘./’. This command will run the Ren’Py launcher.

New projects can be created using the “+ Create New Project Option”. Whenever you create a new project, a folder will automatically get added within the Ren’Py folder. The game directory that we spoke about in the beginning can be found in this newly added Project folder. It is the same game directory that should contain all the font files that you wish to use in this particular project.

Image Source

How to find fonts online

Now that we have covered in detail how one can change fonts in Ren’Py, let us look at how you can go about finding fonts on the Internet. It is easy to find a wide range of fonts online and many are often free to use. However, some may require a small fee. We have listed a few websites below where you can get access to numerous fonts. Do keep in mind that you will need to have the necessary license in case you are downloading fonts for personal use. If you are using fonts for your personal project and not for commercial use, then you should easily be able to find many free-to-use fonts. Make sure to download the font files in either the TrueType format or the OpenType format as these are the ones that are compatible with Ren’Py.

  1. Google Fonts: Google Fonts is one of the most popular resources for exploring and downloading fonts. It is an open-source library and is home to more than 980 fonts across 100+ languages. What’s more, you can get them all for free.
  2. Font Squirrel: Font Squirrel is another great resource to discover new and interesting fonts. They also have their own Font Identifier that will help you match a font by using an image.
  3. Fontspace: Fontspace is another widely-used resource and consists of more than 64,000 fonts. All the fonts are categorized as per your requirements. They also share additional information about each of their fonts.
  4. DaFont: DaFont is a great resource for free fonts and is available in six languages. Their categorization is admirable, making it easy for you to find a specific type of font for your projects.
  5. Befonts: Another popular resource among creators is Befonts. You can find free fonts for both personal as well as commercial use on this platform. Befonts also shows you a preview of a selected font family in action. They also link information to the source website and the author, enabling you to explore more.

Adding the font file to your project

Step 1: Explore these resources to find an appropriate font for your visual game or project.

Step 2: Be sure to download the font file in one of the TrueType, OpenType or Image-Based formats that are compatible with Ren’Py.

Step 3: Move the font file to your game directory.

Some of these steps may seem intimidating for complete beginners. However, Ren’Py is very easy to use and accessible for people in different age groups, irrespective of their programming knowledge. You can quickly get started and use the fonts that are best-suited for your visual novel, all for free! You can easily change the fonts depending on your interface elements and characters. So if you haven’t already, you can get started with your storyline and explore Ren’Py!