Ren'Py 8.4.0 Prerelease Updated
Added 2025-07-06 03:40:14 +0000 UTCI've updated the Ren'Py 8.4.0 prerelease to version 8.4.0.25070513.
Downloads of Ren'Py 8.4.0 can be found at:
https://www.renpy.org/release/8.4.0
A full list of changes to Ren'Py can be found at:
https://www.renpy.org/dev-doc/html/changelog.html
A list of changes that may require you to update your game can be found at:
https://www.renpy.org/dev-doc/html/incompatible.html
The big change in this prerelease is an overhaul of Layered Image 2.0, based on feedback from the community.The if_attr clause is now known as when, and instead of set operators like |, &, and !, the new when clause uses the more Pythonic "or", "and", and "not" operators to specify which attributes to match.
This release also reverts the mipmap change. Mipmaps are now generated for all images by default, with auto mode now something a game's creator needs to opt into. This was after feedback from the community indicated that the auto mode was leading to unexpected results.
Other changes include:
Ren'Py's updater can now defer file deletions and renames until the game has been restarted, preventing issues caused by updating files in use.
Creator-defined statements can now update init priority without being recompiled, and creator-defined statements (and some statements implemented internally as such, like play/show/stop) no longer execute init code if not required.
Lint will now report incorrect calls to the translation functions _, __, ___, and _p, when they are called with the wrong number of arguments.
Loading large images and then restarting the game no longer causes texture leaks.
The input caret now pauses blinking when moved.
Ren'Py now repairs a save signing token.
When a module is imported from the game directory, the __file__ variable is set to the relative path of the module, which can be passed to renpy.open_file. (Previously, __file__ could be set to the absolute path of the module in some cases, and the relative path in others.)
It's now possible to use the renpy.get_renderer_info function to get information about the user's GPU and graphics driver.
Issues where Ren'Py could confuse one Live2D model for another have been fixed.
The Ukrainian translation has been updated.
Issues with meshes and mesh padding in Transforms have been fixed.
Ren'Py no longer generates GLSL variables containing __ in their names, which are banned by the GLSL specification. Ren'Py's shader parts still use __ for its Ren'Py's own purposes - these variables are converted before being passed to OpenGL.
The --warp command line option has been fixed.
Ren'Py no longer copies a uniform dictionary that is not being merged with another uniform dictionary.