If the download links on this page are missing, please download the SDK from https://www.renpy.org/dl/6.4.0/. Or click here to download the latest version of Ren'Py.

Ren'Py 6.4.0 "Character Actor"

Ren'Py 6.4.0 "Character Actor" was released on November 14, 2007. The main distributions are:

Each of these files contains the full Ren'Py development environment, which is enough to allow you to develop Ren'Py games on Windows 98 and up, Mac OS X 10.4 and up, and Linux x86. The development environment contains the files needed to produce games for all three platforms. It also includes a text editor and sample games.

Ren'Py is licensed under a very liberal license, that allows for free commercial and non-commercial use. Read the full license for details, but a short summary is that you can distribute Ren'Py games however you want, as long as you include LICENSE.txt.

For your convenience, we've posted the Release Announcement and Changelog.

Known Issues

2007-11-22: There is an issue that causes crashing when a character having a ctc indicator says a line containing the {w} text tag. It can be fixed by replacing renpy-6.4.0/renpy/character.py with character.py.

2007-12-10: There is an issue that prevents image prediction from working in many cases. It can be fixed by replacing renpy-6.4.0/renpy/character.py with character.py.

2007-12-16: The "Build Distributions" command of the launcher can produce corrupt zip files in some case. Please replace renpy-6.4.0/data/distribute.rpy with distribute.rpy to fix this problem.

2007-12-18: The 2007-12-16 distribute.rpy was incorrect. Use distribute.rpy instead.

Release Announcement

I've released Ren'Py 6.4.0 "Character Actor", the latest and greatest release of Ren'Py. This release focuses on the in-game experience. The Character class has been rewritten, adding a number of new features. One can now define adv or nvl characters, and have those defaults used by future characters. There's now a new name_only character, which controls how say statements with string names are shown. We've also made it so that one can use different click-to-continue indicators for pauses and nvl-mode page ends.

Other improvements include the ability to control mouse visibility, an At function that provides an easy way to apply Move and friends to displayables, functions that can check if images have been seen and audio files have been played, and more. We've also fixed several bugs, including a long-standing one that prevented unicode window titles from working on Windows.

Downloads and a full release announcement can be found at:


To migrate your game from Ren'Py 5.6.2 or later, copy the directory containing your game into the directory containing the new Ren'Py. Please see the 5.6.2 release notes for information about migrating from older releases.

CHANGELOG for Ren'Py 6.4.0

Rewrote the way in which dialogue is handled. This has a number of repercussions, although it should be mostly backwards-compatible for existing games.

The first change is that is now a function, rather than a class. It can create instances of the new ADVCharacter and NVLCharacter classes, which are the classes responsible for managing dialogue.

The Character function takes a new kind argument. This argument takes another character object that is used as a template for the object being created. It defaults to the adv character object when a Character or ADVCharacter is being created, and the nvl character object when an NVLCharacter is being created. The new preferred way to create an NVLCharacter is to write:

    $ envl = Character("Eileen", kind=nvl)

By defining a new adv or nvl character, it's possible to change the behavior of all characters of the given kind defined after that one.

The default narrator is now a character. There is also a new character object, unknown, which is copied and used when an unknown character (that is, one with a string for a name) speaks.

Characters now take a new ctc_pause argument. If supplied, it gives a click-to-continue indicator that is used when the {p} or {w} text tags cause the display of dialogue to be paused.

Added and . If set, these override the ctc and ctc_position parameters of a character during dialogue when the next statement is "nvl clear".

Added a new variable, , that controls if the mouse should be visible at any given moment.

and now take a clear argument, which controls if the transient layer is cleared at the end of a transition or interaction.

The new function provides a nicer syntax for applying position objects (the result of Position, Move, etc.) to displayables.

Added as an alias for .

Added the new and functions, which keep track of the images that have been seen and the audio that has been played, respectively.

Added , which is the counterpart of .

The screenshot displayables returned from and are now image manipulators, which means that other image manipulators can be applied to them. For example, one can apply to a screenshot to sepia-tone it. The new _file_picker_process_screenshot function can be overridden by the user to change the look of the game in the current menus.

The variable is a map that allows one label to be overridden by another.

Modified the behavior of return so that it evaluates the return expression with the values of dynamic variables found inside the function that has been called.

Fixed viewports so that they properly block access to buttons that are outside the viewport.

Patched SDL so that it can properly set non-ascii window titles on Microsoft windows.

Upgraded the version of Python used in the Windows build of Ren'Py to 2.3.5. (Shockingly, we had been at 2.3.3 all this time.)


This release is dedicated to the memory of Sindu (1992-2007).

Other Downloads

The following downloads may be useful if you want to run a windows-only Ren'Py program on other platforms, or if you plan to port Ren'Py to a new platform. Recent versions of Ren'Py default to producing distributions for all three supported platforms, making these programs rarely necessary.