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

Rather than linking to this page, please consider linking to the Download Ren'Py page, which will be updated when a new version of Ren'Py is released.

Ren'Py 6.7.0 "Splines or Skins"

Ren'Py 6.7.0 "Splines or Skins" was released on September 10, 2008. The main distributions are:

(The current release is internally known as 6.7.0c.)

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 game.

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


Bugs with the presplash and transition code forced a re-release. If you have 6.7.0b, please upgrade to 6.7.0c.

Release Announcement

I'm pleased to announce the release of Ren'Py 6.7.0 "Splines or Skins". This release is named after the two biggest new features: B├ęzier spline-based motions and the ability to use imagemaps to skin the game menu. This release also introduces saving to the user's home directory, allowing a game to be installed for all users of the system. This release also include a host of new features, simplifications, and bug fixes.

I'd like to thank Aenakume for contributing the new spline motion code. I'd also like to thank everyone who contributed to Ren'Py by editing the wiki, answering users' questions, reporting bugs, or requesting new features.

Downloads of 6.7.0 and a full release announcement can be found at:


To migrate your game from Ren'Py 6.6.0 or later, copy the directory containing your game into the directory containing the new Ren'Py. To support home directory saving, you'll want to add the following code to the start options.rpy.

python early:
    config.save_directory = "gamename-12345"

Replace gamename with the name of your game, and 12345 with a large random number, to ensure that the name is unique.

Please see the 6.6.0 release notes for information about migrating from older releases.

Changelog for Ren'Py 6.7.0

The new , , , and layouts allow one to use imagemaps to define the game menu. Together with the existing , the entire interface can now be themed with imagemaps. (except for the rarely-used joystick preferences)

The new motion function, contributed by Aenakume, allows motions to be specified using linear, quadratic, or cubic splines. This allows complex non-linear motions to be specified. A spline editor can be downloaded from: http://www.renpy.org/wiki/renpy/Spline_Editor

The new motion function allows displayables to be scaled to a specific size. Along with SizeZoom, the and functions get a new repeat argument that makes the zooms repeat.

If the new variable is set, Ren'Py will now try to save games and persistent data underneath the user's home directory. The precise directory saved to varies by platform:

Newly-created projects will have config.save_directory set to a value based on the project name.

Since finding the save directory is now more difficult, the launcher has gained an option that allows the user to easily delete a game's persistent data.

A new variable, nvl_variant, allows one to change the styles used by nvl-mode. For example, if nvl_variant is set to "foo", then style.nvl_window["foo"] will be used instead of style.nvl_window.

The function now takes an argument that lets one specify the label that will be restarted to. By calling renpy.full_restart(label="start"), one can start a new game.

Software-drawn mouse cursors are now hidden when the mouse leaves the window. Previously, the mouse cursor would be kept around in the same place until the mouse re-entered the window.

The \ character is now the universal quote character. One can use \% to prevent % from performing interpolation, and \{ to prevent { from starting a text tag.

Using stdin for the remote control didn't work on Windows, and could lead to errors in some cases. Instead, the remote control mode now uses a file, which gets deleted after processing the command.

Improved the numerical stability of interpolation. This fixes a problem where moves could wiggle from side to side for no good reason.

The archiver will now cowardly refuse to archive .ttf files. This is because reading those files out of an archive will crash on windows.

The new variable allows layers to be cleared out when entering the game and main menus.

Fixed style inheritance, which in some cases wouldn't pick up the style inherited from.

Fixed a bug that made image prediction fail when a hide statement was encountered.

Fixed a bug that prevented and from working with some images. Also improved the quality of im.AlphaMask, which was incorrectly blending fractional alphas with black.

Fixed a bug where style inheritance did not work properly.

Fixed a bug where the launcher could choke when launching non-English gamedirs.

Fixed a bug that prevented the style inspector from working on animated screens.

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.