This wiki is very out of date, and only exists for historical reasons. For more modern information, see the new documentation and cookbook forum.


From Ren'Py Visual Novel Engine

Jump to: navigation, search

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"


Ren'Py 6.9.1 "Rest Stop" was released on April 18, 2009. The main distributions are:

(The current release is internally known as 6.9.1h.)

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

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/renpy/display/transition.py (from here).
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/renpy/display/core.py (from here).
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:

  • Support for ogg, mp3, mp2, wav, and flac audio.
  • Support for theora, mpeg4 part 2 (including DivX and Xvid), mpeg2, and mpeg1 video.
  • Support for an arbitrary number of named channels, replacing the previous eight numbered channels.
  • Audio files are now automatically converted to the output samplingrate (by default, 44100hz). This prevents the problems that would previously crop up when playing audio sampled at other rates.
  • The play, queue, and stop statements now take a channel name as the second argument, which makes using user-defined channels easier.

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. config.empty_window is responsible for displaying the window, while config.window_show_transition and config.window_hide_transition are default transitions. The state of the window can be determined by testing _window. The renpy.shown_window 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 layout.imagemap_load_save, layout.imagemap_preferences, and layout.imagemap_yesno_prompt. 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 config.windows_icon 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 define.move_transitions 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 Motion (including Move and Pan), Zoom, RotoZoom, and FactorZoom 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.

im.Grayscale and im.Sepia now take properties, so they can be positioned.

The new renpy.get_placement 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 _rollback, which controls if rollback is enabled.

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

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

Fixed a bug that prevented Zoom 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 Transform to produce an incorrectly-sized render.

Fixed a bug that could cause crashing when rolling back to a Zoom 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.

Personal tools