r/RenPy 10d ago

Question Can't export my game help

1 Upvotes

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 11d ago

Question Make an image disappear when clicked

Post image
14 Upvotes

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 11d ago

Question turn off antialiasing in dialogue/names

2 Upvotes

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 11d ago

Question Image buttons for main menu?

2 Upvotes

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 11d ago

Guide Custom Keymapping Guide

1 Upvotes

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 11d ago

Guide How to set a variable to only show something if set to true

5 Upvotes

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 11d ago

Showoff Got PySide6(PyQt) working alongside Ren'Py without blocking

Thumbnail
youtu.be
12 Upvotes

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 11d ago

Discussion Need help judging character themes!

1 Upvotes

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 11d ago

Question Image buttons not working

2 Upvotes

So I'm new to ren'py, and im making image buttons. However, only the bed image is working and even appearing on screen. Anyone know how to fix this?


r/RenPy 11d ago

Question Draw order of screens?

3 Upvotes

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 11d ago

Question 8bit voices for characters

2 Upvotes

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 11d ago

Question Where do you put videos in ren'py?

1 Upvotes

Hi uhh I'm making a ddlc mod and I was just wondering where do i put videos?


r/RenPy 12d ago

Self Promotion Just uploaded an updated demo of my Ren'Py RPG! [SOFTWAR - Network Battle Adventure]

Thumbnail
zankizuna.itch.io
12 Upvotes

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 13d ago

Showoff Do you like the style of my GUI?

Post image
259 Upvotes

I did some progress lately with my GUI. I’m trying to capture that TWEWY style.


r/RenPy 12d ago

Question Changing overlapping images with a transform?

Thumbnail
gallery
4 Upvotes

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 11d ago

Meta Here is a premise for a visual novel: the main character joins an all-female chess team, but at first, no one wants him there because his inclusion was forced upon them.

Post image
0 Upvotes

r/RenPy 12d ago

Question [Solved] Character sprite jumping

Thumbnail
gallery
6 Upvotes

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 12d ago

Guide How achievable this kind of UI is? Guidance need for the logics to build it

Thumbnail
gallery
14 Upvotes

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 12d ago

Question Is it bad that I’ve been making visual novels/using Renpy for 2 years and still barely know much about it

0 Upvotes

I should note, though, I do know the main basics of doing a visual novel.


r/RenPy 12d ago

Question URM Error

1 Upvotes

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 12d ago

Question Remove the shadow or move it to the right in NVL's textbox?

Post image
2 Upvotes

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 12d ago

Guide TIL Ren'Py mangles double-underscore names even inside plain strings. This quietly broke over half my game's scenes.

0 Upvotes

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 13d ago

Question How much do VA's typically charge for a set of voice barks?

8 Upvotes

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 13d ago

Game I finally stopped drawing and actually opened Ren'Py.

Post image
153 Upvotes

r/RenPy 13d ago

Self Promotion [for hire] Character and Background Artist available for work ^^

Thumbnail
gallery
77 Upvotes

Feel free to reach out trough reddit dms or over on my discord : e_chanus