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

Ren'Py 6.6.0 "Layouts and themes and bears, oh my."

Ren'Py 6.6.0 "Layouts and themes and bears, oh my." was released on February 10, 2008. The main distributions are:

(The final release is internally known as 6.6.0e.)

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

../6.6.1/ fixes a memory leak in 6.6.0. We suggest delaying game releases until 6.6.1 has been officially released.

Release Announcement

I'm pleased to announce the release of Ren'Py 6.6.0 "Layouts and themes and bears, oh my." This release features a rewrite of the out-of-game menus, separating them into themes that control the look of menus, and layouts that control the feel of these menus. The is one new theme (outline), and a number of new layouts. More importantly, themes and layouts are now documented, allowing one to create new themes and layouts. Hopefully, this release will begin to lead to more diversity in the look of Ren'Py games.

Other new features include:

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.

You may need to make some changes to your game for it to work properly in 6.6.0. Ren'Py now requires that each game call one of the theme functions. While most modern games call a theme from options.rpy, not every game does. You'll want to add a call to , , or to any gamer that does not already call a theme.

The newly rewritten out-of-game menus now require the use of styles (or custom layouts) to change the position of elements, where as previously these were optionally controlled by configuration variables. In general, the new layouts may not be 100% identical with the 6.5.0 menus.

While we recommend all new games use the new themes and layouts found in 6.6, we recognize that there has been substantial investment in customizing games, and that it may not be easy to port all customizations to 6.6. In that case, call () to enable 6.5.0 compatibility mode.

CHANGELOG for Ren'Py 6.6.0

This release features a total rewrite of the out-of-game menus, which divide these menus into themes which control the look of the menus, and layouts which control the feel (layout and functionality) of the menu components.

Writing new layouts and themes has been made much easier by documentation listing what is required for each. There are also a number of new layouts, one new theme (outline).

Games are now required to select a theme before they can operate properly. The implicit theme from the previous version of Ren'Py has now been turned into the ancient theme.

Finally, to ensure older games can operate in this new version of Ren'Py, a compatibility mode has been added. This mode is engaged automatically if config.script_version is set to (6, 5, 0) or less.

This release features a new developer menu. Hit Shift+D to access it.

Ren'Py now supports modules which can be loaded with the function. Modules are stored in .rpym files, which get compiled down to .rpymc files.

The order of style inheritance has been changed when nested styles are involved. Now, assuming that style.child inherits from style.parent, then style.child['index'] inherits from, in order:

This makes it possible to define imagebuttons and imagelabels in the style.button and style.label styles, rather than in all sorts of different styles.

Windows and Buttons now take a new size_group style property. This property, when not None, should be a string giving the name of the size group the window or button is in. All windows and buttons belonging to the same size_group are treated as if they had a minimum width equal to the width of the widest button in the group.

The Begin Skipping command has been moved from the game menu navigation to the preferences screen.

A new variable has been added. This variable suppresses the display of overlay functions when set to true. It's automatically set to true when entering the menus.

The default underlay now is compatible with menus. This makes it possible to do things like take screenshots while in a menu.

Applied Hentai Senshi's patch that adds a variables. The default editor will no longer clobber changed files if they are opened twice, while the transient editor will.

Frame now supports a bilinear argument, which controls if bilinear scaling is used.

Ren'Py now uses an improved multi-step bilinear scaling algorithm that is more correct when scaling by a factor of less that 1/2.

Save thumbnails now use bilinear scaling.

Made more syntax errors display the proper line number.

The Windows build now uses directsound for sound playback, where available. This should noticably reduce sound latency on systems that support it.

Fixed a regression that caused the performance of dissolve to be substantially degraded.

Fixed some bugs in imouto-mode.

The changes to the reference manual can be found in :Category:New in 6.6.0 and :Category:Changed in 6.6.0.

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.