I'm pleased to announce the release of Ren'Py 4.6 "Start your Engines!". This release contains a few bug fixes, and a few new features that I forgot to add to 4.5, that I had promised to people on the forum. It adds support for layers, independently specifying margin and padding for the top, bottom, left and right sides of a window, and an activated state for widgets. It also includes a number of bug fixes over 4.5.
As always, you can get it from:
Upgrading from 4.5 to 4.6 can be accomplished by simply copying over the game directory.
I'm hoping that, once it's tested, the 4.6 branch will be what people use to release their NaNoRenO/IntRenAiMo games.
As 4.5 was only out for a few days, people might want to check out the announcement of it here
New in 4.6
The demo was updated to show some of the new features listed below.
There's now a third state that hovered widgets can go into. The activate state is enabled when a button is clicked or a menu choice is selected. The activate state can only be seen when a transition occurs immediately after a button is clicked or a menu choice is selected.
The margin and padding properties have been broken up, so it's now possible to specify margin and padding for the left, right, top, and bottom of a windows.
The biggest internal change in this version is the introduction of a layer system in Ren'Py. Transitions can now work on an individual layer (as well as the previous behavior of the whole screen), so it's possible to do things like sliding in and out the dialogue box.
It's now possible to use transitions when entering and leaving the game menu, by assigning a transition object to library.enter_transition and library.exit_transition, respectively.
The preferences screen can now be entered from user code, and is now part of the main menu.
Character objects now support an interact argument when called directly. If it's False, then no interaction occurs. This lets a character window become part of a larger screen.
Two new extras have been added:
- button_menu.rpy changes the way menus are displayed. Each menu choice is displayed in its own button, roughly centered on the screen. A single menu caption is displayed as narration, if such a caption exists.
- overlay_menu.rpy changes the behavior of right click from showing the game menu to showing a bank of buttons that, when clicked, bring the user to the game menu.
The overlay code was overhauled. It's now not possible for an overlay function to return a list of widgets. Instead, the overlay functions are expected to add widgets to the screen using the ui functions. Calling the new function renpy.restart_interaction will, among other things, cause the overlay functions to be called again, if one wants to replace the overlay on the screen.
A new variable, config.overlay_during_wait, controls if overlays are shown during the execution of wait statements.
Init blocks of the same priority are now assured to run in the order that they appear in a script file.
The renpy.interact() function has been eliminated. Use ui.interact() instead, as it performs more error checking.
Fixed a bug in which some redraws were ignored, and another in which the input widget failed to eat characters. (So typing 'f' in an input widget would be passed through, and eventually cause the game to go to fullscreen mode. No longer.)
4.5's demo script had a bug that cause it to crash, after playing the MPEG-1 movie. It was a bug in the demo script, and not in Ren'Py proper. It's fixed.