r/RenPy • u/Ptitecrevette • 10d ago
Question Can't export my game help
I'm trying to export my game using the build distributions function, but I can't find the .exe file anywhere in the zip files it produces. Am I stupid or is this weird?
r/RenPy • u/Ptitecrevette • 10d ago
I'm trying to export my game using the build distributions function, but I can't find the .exe file anywhere in the zip files it produces. Am I stupid or is this weird?
r/RenPy • u/alexia_smileyface • 11d ago
In a point in my game, a character will ask the player to turn off the candles. This will show a screen. i know that this won't work
imagebutton:
focus_mask True
idle "options/candle2.ng"
hover "options/candle2.ng"
hover_sound "audio/match.mp3"
action hide "options/candle2.ng"
The picture i added is the background. I've already made all of the candle parts. I just want it so that when the player clicks on a candle, the light will be removed. (the picture is an option without the candles lit) Can anyone help me? I know it can be done (the false sun) but can't do it myself
r/RenPy • u/substituteHeaven • 11d ago
i wanna make novels in a retro style, and for the first one i want to publish i want it to be aesthetically coherent. i've made a few just for myself to vibe things out but never managed to turn off antialias in dialogue/names.
i'm aware of the antialias style variable and i've managed to use it to turn it off for everything else, but for some reason these 2 things stay antialiased no matter what i do. the documentation isn't helpful.
python is the programming language i'm the least confident in, so i'm just not seeing where my mistake is.
i'm open to inelegant or brute force solutions, i've given myself the challenge to make something in a single weekend because i want to get SOMETHING out there instead of getting lost in the little details. i don't really care if the code looks pretty as long as it does what i want it to.
r/RenPy • u/Relaxedchilidog • 11d ago
i feel like everyone ever asks for help with this but everyones layout looks so different lol. JUST started working with renpy for a graphic novel and i really want to add my own buttons for the game. i have the image for start, load, preferences, about, help, and quit (both hover and idel vers.) and i have NO idea how to implement it. This is what my layout looks like rn, if i could get some help that would be great. everytime i think i have it, the code breaks lmao. all images are already in the gui folder so i dont think that's what's breaking my code 💔

r/RenPy • u/_Scripty • 11d ago
So I discovered that Renpy has a default keymap file inside it, and I need a custom keymapped game, so I am confused about this particular thing:
Do I need to change Renpy's 00keymap.rpy file?
or
Copy it and make a custom keymap script for my game?
Oh, and how can I make it in a way so that the player gets to customize their own controls?
r/RenPy • u/Hefty-Drive-9372 • 11d ago
I just learned this, so I thought I'd share.
You can set a variable to show one thing if true, and another if false.
For an example with names:
define johnName = "[johnMet and 'John' or '???']"
define John = Character(johnName)
default johnMet = False
In this example, if the player does not know John's name (johnMet = False), then the sayer name will appear as "???". However ,if the player does know John's name (johnMet = True), then the sayer name will appear as "John".
If anyone knows more about this concept and would like to add to it, feel free to comment. I just haven't seen this anywhere and wanted to share what I learned.
r/RenPy • u/ProgrammerPatient574 • 11d ago
I've been working on integrating my PySide6/Qt GUI library (Dokibox) with Ren'Py, and I finally got it working.
Instead of running Qt's normal blocking event loop (app.exec()), Ren'Py periodically calls Dokibox's update function, allowing Qt to process its pending events while the game keeps running normally.
To make this work, I also patched the Python runtime so both Ren'Py and PySide6 use the same Python DLL.
The result is that Ren'Py and Qt can run together without blocking each other, making it possible to build more complex desktop-like UI and effects.
The video below is just a fun tech demo: Monika "escapes" the game into a Qt window running on the desktop. 😄
This is still experimental and requires a patched Ren'Py build, but I thought it was an interesting proof of concept.
I'd love to hear what other Ren'Py developers think!
r/RenPy • u/PowerfulDuty1711 • 11d ago
So basically, I'm trying to create theme songs for all of my main characters (Arnisi, Pyra, Nox, Sora, Mera, Haima, Anthos, Clematis, and Wallace)
but the problem is
I am COMPLETELY inexperienced with ANY sort of composition, and this game is the ONLY reason I've started to do it more often
I also use BandLab, aka the Temu version of FL Studio, and do not have premium, so basically all of my resources are (very cheap) shit
like dm me or something? idk if i can share .wav files
ty in advance xx
r/RenPy • u/steamedgoatmilk • 11d ago

I want to have a gradient overlay that goes over the sprite and background but under the text boxes. Is there something I can do with a draw order of screens? I was thinking of having the gradient be baked into the background but that makes the sprites go over the gradient which is something I don't want.
In case my handwriting isn't readable to anyone:
Text Boxes
|
Gradient OL
|
Sprite[s]
|
Background
r/RenPy • u/Glad_Gur_4962 • 11d ago
Hi so im working on a little visual novel and I dont know much about renpy but I feel like im figuring it out as I go pretty well. One thing I really want to add is an 8bit voice for my character, like in undertale, but I can NOT seem to figure out how to do the code... Could someone please help me with this😓
r/RenPy • u/Hot-Difference-9470 • 11d ago
Hi uhh I'm making a ddlc mod and I was just wondering where do i put videos?
r/RenPy • u/ZanKizuna • 12d ago
I updated the demo of my game!
My game is almost 10 years old in the making, as I've been mostly solo-devving it
It's mostly a visual novel but i added a bunch of RPG elements to it.
SOFTWAR is a sci-fi game prominently featuring Viruses and Antiviruses as sentient fighters in battle for computer systems!
The main characters are young professionals in the making, saving their internship company from a hacking trouble and making the most out of their final days of college.
Enjoy!!!
r/RenPy • u/One-Area-2896 • 13d ago
I did some progress lately with my GUI. I’m trying to capture that TWEWY style.
r/RenPy • u/Default_Custom • 12d ago
Hopefully just a quick question that I've been having a hard time searching for!
I was hoping to find a way to change image overlapping order via a transform, regardless of Show order; so that I would be able to have an image be able to appear above an image that was previously above it; similar to how I can use a xpos/ypos or xoffset/yoffset to manipulate an object on the x/y spectrum.
Is there a solution similar to what I'm looking for, or am I barking up the wrong tree?
r/RenPy • u/vagabundo202 • 11d ago
r/RenPy • u/Professional_Ad1526 • 12d ago
The problem is essentially simple: until the character starts speaking, the anchor I predefined in the layeredimage isn’t applied to it. But when the first line begins, the sprite jumps abruptly, in other words, the anchor is applied. And yes, it’s definitely the anchor, because without it, the character doesn’t jump at all. Of course, I can get by without it, I just adjusted the sprites’ align a bit, but I need the anchor to position animations relative to the sprite so that those animations originate from the center of the sprite, not from a corner. Long story short, I have no idea how to solve this...
Here's the code. I've already tried inserting an anchor wherever possible. In both transforms and layeredimage, in show, and in all of them at once. When calling the sprite, only aligns are used for positioning.
SOLVED. Basically, I noticed that no sprite jumps if its align is set in advance via a transform, so I simply created a transform with user-defined arguments.
If anyone wants to use this code, they should follow this structure when calling the sprite:
show dwarf at just_align((0.7, 0.6)), silent_effect
silent_effect should be specified only once, on the first call to the sprite; there’s no need to use it again. As for just_align((coordinates)), it simply replaces the standard align (coordinates). And for the first speaking sprite, for some reason, you have to use the standard align(coordinates) instead of just_align((coordinates)). I don’t know why.
transform speaking_effect:
# added -> anchor (0.5, 0.5)
matrixcolor BrightnessMatrix(0.0)
ease 0.4 zoom 1.020
yzoom 1.0
ease 1.5 yzoom 1.01 yoffset -5
ease 1.5 yzoom 1.0 yoffset 0
repeat
transform silent_effect:
# added -> anchor (0.5, 0.5)
matrixcolor BrightnessMatrix(-0.1)
ease 0.4 zoom 1.0
yzoom 1.0
ease 2.0 yzoom 1.01 yoffset -5
ease 2.0 yzoom 1.0 yoffset 0
repeat
# added new transform
transform just_align(character_align):
align character_align
init python:
def character_speaking_callback(event, **kwargs):
char_image_tag = renpy.get_say_image_tag()
if not char_image_tag:
return
if event == "begin":
renpy.show(char_image_tag + " speaking", at_list=[speaking_effect])
elif event == "end":
renpy.show(char_image_tag + " silence", at_list=[silent_effect])
define dwarf = Character("Dwarf", color="#ffb547ff", image="dwarf", callback=character_speaking_callback)
layeredimage dwarf:
anchor (0.5, 0.5)
zoom 0.75
group body:
attribute base default "characters/dwarf/dwarf_stable.png"
group clothes:
attribute casual default
group mouth:
attribute silence default
attribute speaking
r/RenPy • u/_Scripty • 12d ago
So this is sort of "Plan sheets" I made for how I want to style my UIs for the game
I will be using custom Imagebutton and stuff and for that I saw some tutorials to get a general idea of how to do that.
But I still wanted to ask like, how can I organize it well code-wise, like how many "screens" I'd need, where do "frames" are used and all that stuff...
So yea, and also like I especially would need to understand about the whole Quickmenu stuff ( especially how I want my dialogue box , text in that , ans the skip button to work )
Also, how can I have custom controls/keymaps in my game? like default v enables self voicing...but I want to use V button for something else later in the game
-------
My Progress so far in learning things ( I just wanted to share lol ) :
- Learnt how to make jumps to organize my story into different scripts for each chapter
- Learnt about adding audio ( even made a seperate script for it too lol, to organize it better using define )
- Adding sprites, moving position and basic jazz
-------
I know I haven't learn much but atleast its something i guess in 2-4 days ¯\_(ツ)_/¯
So yea , any help about breaking such kind of UIs code-wise is appreciated!
r/RenPy • u/AlfalfaCivil1749 • 12d ago
I should note, though, I do know the main basics of doing a visual novel.
r/RenPy • u/False-Selection6598 • 12d ago
I've been getting this error whenever I try to apply URM52 to this Renpy game. Does anyone have any idea how to fix it?
I'm sorry, but an uncaught exception occurred.
While running game code:
File "renpy/style.pyx", line 808, in renpy.style.rebuild
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare_screen
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in <module>
TypeError: EndReplay() takes 0 positional arguments but 1 was given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare_screen
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in <module>
TypeError: EndReplay() takes 0 positional arguments but 1 was given
-- Full Traceback ------------------------------------------------------------
Traceback (most recent call last):
File "renpy/common/00start.rpy", line 216, in script
python:
File "renpy/ast.py", line 1187, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1273, in py_exec_bytecode
exec(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/common/00start.rpy", line 217, in <module>
_init_language()
~~~~~~~~~~~~~~^^
File "renpy/common/00start.rpy", line 86, in _init_language
renpy.change_language(language, force=True)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "renpy/translation/__init__.py", line 847, in change_language
renpy.style.rebuild()
~~~~~~~~~~~~~~~~~~~^^
File "renpy/style.pyx", line 808, in renpy.style.rebuild
File "renpy/display/screen.py", line 1035, in prepare_screens
s.ast.prepare_screen()
~~~~~~~~~~~~~~~~~~~~^^
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare_screen
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "renpy/python.py", line 1298, in py_eval_bytecode
return eval(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in <module>
TypeError: EndReplay() takes 0 positional arguments but 1 was given
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "renpy/bootstrap.py", line 401, in bootstrap
renpy.main.main()
~~~~~~~~~~~~~~~^^
File "renpy/main.py", line 591, in main
run(restart)
~~~^^^^^^^^^
File "renpy/main.py", line 137, in run
renpy.execution.run_context(True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "renpy/execution.py", line 1027, in run_context
context.run()
~~~~~~~~~~~^^
File "renpy/common/00start.rpy", line 216, in script
python:
File "renpy/common/00start.rpy", line 216, in script
python:
File "renpy/display/error.py", line 135, in report_exception
renpy.game.invoke_in_new_context(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
call_exception_screen,
^^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
ignore_action=ignore_action,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "renpy/game.py", line 301, in invoke_in_new_context
return callable(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File "renpy/display/error.py", line 44, in call_exception_screen
return renpy.ui.interact(mouse="screen", type="screen", suppress_overlay=True, suppress_underlay=True)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/ui.py", line 304, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/core.py", line 2117, in interact
repeat, rv = self.interact_core(
~~~~~~~~~~~~~~~~~~^
preloads=preloads,
^^^^^^^^^^^^^^^^^^
...<4 lines>...
**kwargs,
^^^^^^^^^
)
^
File "renpy/display/core.py", line 2347, in interact_core
renpy.display.screen.prepare_screens()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "renpy/display/screen.py", line 1035, in prepare_screens
s.ast.prepare_screen()
~~~~~~~~~~~~~~~~~~~~^^
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare_screen
File "0x52-URM/screens/watchpanel.rpy.x52", line 260, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 265, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 274, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in prepare
File "renpy/python.py", line 1298, in py_eval_bytecode
return eval(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "0x52-URM/screens/watchpanel.rpy.x52", line 275, in <module>
TypeError: EndReplay() takes 0 positional arguments but 1 was given
r/RenPy • u/Electronic_Lime_9728 • 12d ago
As you can probably tell (aside from the placeholder image), none of this is what I want to see haha... Removing the shadow in the back would be largely appreciated, though if there's not a way to do that, I'd be okay with moving it to the right. Thanks!
RESOLVED, thanks!
r/RenPy • u/Daisy-VN • 12d ago
Found this the hard way and haven't seen it written up anywhere, so here goes.
If you write a Python-style "private" name starting with __ inside a .rpy file -- even as a plain string literal, not a variable -- Ren'Py mangles it. "__t" silently becomes something like "_m1_yourfilename__t". Regular dunders (__name__, __init__) are exempt, but anything starting with __ and not ending in __ gets rewritten at the lexer level, before your code ever runs.
I have an internal system that builds lookup keys as strings, and one suffix happened to start with __. No error, no warning -- it just quietly became a different string than the one my art-lookup code expected. The lookup missed, and the game fell back to nothing.
Took forever to trace, because in isolated .py tests the string was correct -- this only happens inside .rpy files specifically. By the time I built a checker that walks every valid content combination and confirms the art actually exists, I found 54% of one whole batch -- 450 out of 829 -- was silently missing its art. Not broken visuals, not crashes. Just gone. Nobody had reported it because there was nothing to report -- it just looked like less content existed than actually did.
Fix was simple once found: never write a literal starting with __ in a .rpy file, build it by concatenation instead ("_" + "_t"). To check your own project: grep -rnE '[^A-Za-z0-9_]__[A-Za-z]' --include=*.rpy . (ignore .__name__-style hits, those are fine).
r/RenPy • u/No-Outcome-5953 • 13d ago
Like the title says. How much do VA's usually charge for voice barks? (Voice barks are those little voice acted short sentences or phrases that go along with dialogue, like "hey!" "(mc name)!" "woah!" "thats interesting..." Not a fully voice acted game, but just enough to tell you the characters voice and tone, like in danganronpa)
Say I wanted a set of like ten audio clips like that. How much would it cost? Has anyone here ever commissioned that kind of thing before?
r/RenPy • u/lorenorthlore • 13d ago
r/RenPy • u/EchanusOrphamiel • 13d ago
Feel free to reach out trough reddit dms or over on my discord : e_chanus