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

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.9.1 "Rest Stop"


You only need to download one of these three files. Each of these files contains the full Ren'Py software development kit, containing everything needed to develop Ren'Py games for Windows 2000 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. Each file also includes the jEdit text editor, the Ren'Py demo, and "The Question", an example game.

Java Requirement. Java 1.5 or later is required to run the jEdit text editor. If it's not installed on your computer, you'll need to download it from java.com. Java is not required to run Ren'Py games, only to develop your own.

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

Release History and Updates

A regression that causes a massive slowdown of the Dissolve and ImageDissolve transitions can be fixed by downloading a new version of renpy-6.9.1/.
Updated release (6.9.1h). This fixes a major bug that prevented Ren'Py from working on some national version of Windows XP (such as Italian), when East Asian language support was installed. This also includes the previous fix. This fixes a bug that it is very hard for testing to catch, so I very strongly encourage you to upgrade, if you have an earlier release of 6.9.1.
There has been a bug reported with icon scaling on windows. This can be fixed by downloading an updated version of renpy-6.9.1/.
Final release (6.9.1g). This fixes a bug with save game thumbnails.
Updated pre-release (6.9.1f). This improves the quality of scaling, fixes a bug with scaling tiled images, fixes a bug with multiple fullscreen images, and fixes a memory leak when playing invalid audio files.
Updated pre-release (6.9.1e). This fixes one library bug, and works around another.
Updated pre-release (6.9.1d). This fixes a number of bugs, including major bugs in scaling. It also adds a way to return to a specific main menu screen, and to disable rollback in a region of script.
Updated pre-release (6.9.1c). This adds automatic scaling on small screens, and improves the quality of scaling. It also fixes a memory leak, fixes help on imagemap menus, and allows movies to play back while muted.
Updated pre-release (6.9.1b). This removes some debugging code that was preventing nvl-mode from working, fixes a problem with image-based fonts being clipped, updates renpy.sh to work on a Mac, and improves sound looping and sample-rate conversion.
Initial pre-release (6.9.1a).

Release Announcement

I'm pleased to announce the release of Ren'Py 6.9.1 "Rest Stop". This release focuses on fixing bugs, and generally improving the behavior of Ren'Py. The biggest change is the new ffmpeg-based sound, music, and movie code. This rewrite improves the range of files we support, and increases the quality and compatibility of that support. This release also includes new "window show" and "window hide" statements, which are now the preferred way of keeping the dialogue window show outside of say statements. The use of game menu imagemaps has been simplified, as it's possible to include navigation elements on the various screens. This release automatically scales the game down when it is too large for the screen. Finally, this release fixes all bugs that I know about.

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


Bugs in Ren'Py itself (as opposed to questions about using Ren'Py) should be reported to the new bug tracker:


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

Changelog for Ren'Py 6.9.1

The music and video playback code has been completely rewritten. The new implementation uses the ffmpeg library. It includes the following features:

As part of this rewrite, we have eliminated support for mod formats, as they are not supported by ffmpeg.

Please read the reference manual documentation for Audio and Movies to learn the new interface.

The new code requires some changes in the saved data. As a result, loading a file saved with a prior version of Ren'Py may lead to a lack of music until the next track is played.

The new window statement allows one to control if an empty window is shown when no character is speaking. Specifically, the

window show [transition]

statement shows the window, and the

window hide [transition]

statement hides it. Both can take an optional transition. is responsible for displaying the window, while and are default transitions. The state of the window can be determined by testing . The function can be called to suppress displaying the empty window, and is called automatically when characters speak.

Hotspots for the game menu buttons can be defined as part of , , and . Doing so prevents layout.navigation from being called for that screen. It also allows opaque imagemaps to be used, rather than forcing them to be transparent to allow the navigation to show through.

There is a new variable, that lets one set the window icon for Windows separately from Mac OS X and Linux.

Ren'Py now automatically scales itself down when it detects that the game window is too large for the screen.

The function can now pass keyword arguments to the moves it creates. The most useful thing with this is to pass subpixel=True, in order to create subpixel move transitions.

The (including and ), , , and displayables now use the style.motion style, which now has xanchor and yanchor both set to 0. This gives these movements the same semantics when used inside an image clause as they have outside one.

and now take properties, so they can be positioned.

The new function returns information about the placement of displayables.

Improved the render management code, so there should no longer be any leaks reported during shutdown.

Deal with the case where a bmfont has a negative offset for the first character in a string.

Added more verbose diagnostics when illegal statements are run in the init phase.

Added , which controls if rollback is enabled.

Added a target parameter to , which allows the main menu screen to be selected after a restart.

Fixed a bug that caused to call a label even though there was a button with the same name.

Fixed a bug that prevented from working in non-bilinear mode.

Fixed a bug that could cause buttons not not consume events when using an imagemap main menu.

Fixed a bug that caused to produce an incorrectly-sized render.

Fixed a bug that could cause crashing when rolling back to a with an after_child.

Fixed a bug that could cause segfaults when saving overly-complicated images.

Other Downloads

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