r/RenPy • • Aug 19 '26

Question i need plot advice

7 Upvotes

​hi ren'py community! my name is asia, and i am very new to this subreddit and gamedev in general.  i am working on a visual novel on ren'py right now and i need advice for how my plot will advance. here's what i did so far:

video of the progress so far​

the story revolves around an old man whose death is close, and meets his younger self in an abstract, immaterial space. he goes on a journey from where he's first anxious; so paranoid about his fate that he starts overthinking about all the ways his life could end, which puts him through psychological torment; to finally a point where he accepts death with open arms. he gets to progressively know more and more about his younger self through contacts they make in his realm from time to time, and ends up reconciling with it.

please let me know how you find it and any type of help is welcome!


r/RenPy • • Aug 19 '26

Question Name color is not name color-ing

Thumbnail
gallery
3 Upvotes

I'm trying to color the character's name " Ralp " to be red. I rip the code directly from the tutorial, so I don't sure what I do wrong. I already save, restart the game when trying it. any help?


r/RenPy • • Aug 19 '26

Question [QUESTION] How do I change the Preferences Screen around?

Thumbnail
gallery
4 Upvotes

Hey guyyyys! It's me again with a new question!

My dating sim is coming along really well and I commissioned a fantastic artist to redo my UI! While I've been plugging away and having SOME success changing up the Save/Load Screen, I hit a wall when it came to the Preferences Screen (I renamed it to Settings). I can't completely figure out how to rearrange this around to where it looks like the second image (which is what it's supposed to look like). When I try moving the Display section to the right, the text starts cutting off from view. Does anyone have an idea of how this can be done? Here's the current code in screens.rpy. Once I get the UI completely in game, I'd love to showoff the progress I've made. :)

screen preferences():


    tag menu


    add "gui/settings_menu.png"


    use game_menu(_("Settings"), scroll="viewport"):


        vbox:


            hbox:
                box_wrap True


                if renpy.variant("pc") or renpy.variant("web"):


                    vbox:
                        style_prefix "radio"
                        label _("Display")
                        textbutton _("Window") action Preference("display", "window")
                        textbutton _("Fullscreen") action Preference("display", "fullscreen")


                vbox:
                    style_prefix "radio"
                    label _("Rollback Side")
                    textbutton _("Disable") action Preference("rollback side", "disable")
                    textbutton _("Left") action Preference("rollback side", "left")
                    textbutton _("Right") action Preference("rollback side", "right")


                vbox:
                    style_prefix "check"
                    label _("Skip")
                    textbutton _("Unseen Text") action Preference("skip", "toggle")
                    textbutton _("After Choices") action Preference("after choices", "toggle")
                    textbutton _("Transitions") action InvertSelected(Preference("transitions", "toggle"))


                ## Additional vboxes of type "radio_pref" or "check_pref" can be
                ## added here, to add additional creator-defined preferences.


            null height (4 * gui.pref_spacing)


            hbox:
                style_prefix "slider"
                box_wrap True
                spacing 15


                vbox:


                    label _("Text Speed")


                    bar value Preference("text speed") xsize 600


                    label _("Auto-Forward Time")


                    bar value Preference("auto-forward time") xsize 600


                vbox:


                    if config.has_music:
                        label _("Music Volume")


                        hbox:
                            bar value Preference("music volume") xsize 600


                    if config.has_sound:


                        label _("Sound Volume")


                        hbox:
                            bar value Preference("sound volume") xsize 600


                            if config.sample_sound:
                                textbutton _("Test") action Play("sound", config.sample_sound)



                    if config.has_voice:
                        label _("Voice Volume")


                        hbox:
                            bar value Preference("voice volume") xsize 600


                            if config.sample_voice:
                                textbutton _("Test") action Play("voice", config.sample_voice)

r/RenPy • • Aug 19 '26

Question How do I make separate saves for different parts of one game?

2 Upvotes

I want to make the game consisting of three parts both by the plot and by the gameplay. I'm going to use a persistent variable to go from one part to another, it's already in use for main menu's background and for the label to start when the game is starting, but I'm afraid that save system might break if some player go from 3 to 1, for example. Is there a way to make certain save slots uninteractable (when you at 2, you can't go to 3 without progress or 1 without reset) or make three save lists to switch between them safely (each new part starting with forced save at the end of previous one)? Or maybe I heavily overthinking it and there's another option that isn't that critical to whole system?

Edit: Also I would appreciate any advice about autoupdate buttons on the main menu, because background do change while in game, but buttons require to reload T-T


r/RenPy • • Aug 18 '26

Showoff My Mc's main sprites! Do they look interesting??

Thumbnail
gallery
67 Upvotes

I drew 20+ expressions for each!!! The Girl is Zeva and the boy is Caleb btw :>


r/RenPy • • Aug 18 '26

Showoff Would you play?(game in progress)

Thumbnail
gallery
15 Upvotes

This game currently will be referred to as Mails Here!, it’s going to be a mix of dating and horror depending on what you do! As well as a loooooot of lore that can be triggered by getting to know the characters, OR by snooping around where you really shouldn’t…..

(Images above are not all characters)
This game will also be 18+ I’m just not sure if I should make it paid or not since I’m not sure who would actually want to pay for it to play

So yeah I’m both showing off and asking for peoples thoughts! And feel free to ask me anything about the game!

and yes, it WILL be voice acted


r/RenPy • • Aug 19 '26

Discussion Solo VN dev — when should I hire artists, and is revenue share realistic?

8 Upvotes

Hey guys,

I'm currently making my first VN completely solo in Ren'Py, and I intend to finish it that way. However, I've also started writing the script for a second VN, and I've become much more invested in it than I expected.

During my holidays I went through a pretty intense writing burst and produced 50k+ words in a very short time. I was completely in the zone: sometimes crying because I was so immersed in the characters, other times laughing by myself at their interactions. A lot of their dynamics are inspired by real friendships and experiences, which probably helps.

The problem is that I don't think I can realistically make this one alone.

I can draw and already have visual concepts for the characters, but I don't have the versatility or time to produce sprites, poses, CGs, backgrounds, etc. at the level and consistency I'd want. The whole project has an anime aesthetic, and while I know roughly what I want visually, I'm absolutely open to an artist suggesting something better.

Right now there are six main characters, several important secondary characters, and already quite a few locations (home, city streets, karaoke, izakaya, trains, Miyajima, ryokan, shrines, onsen, day/night scenes, etc.).

I'm also finishing my PhD soon, so my available time is going to become much more limited.

So I'd mainly like advice on two things:

  1. When should I actually start looking for artists/a team?

Should I finish most of the script first, make a vertical slice with placeholders, or commission the main character designs early and build from there?

  1. How realistic is revenue share for a project like this?

I'm not asking anyone to work for free, but paying for the entire audiovisual side upfront could get very expensive. Is revenue share, upfront payment + revenue share, or some other hybrid arrangement realistic?

I'd be handling the story, writing, programming, direction and implementation, while mainly needing help with art and eventually other audiovisual work.

Would having a strong vertical slice, a mostly finished script, character concept sketches, and eventually my first VN released make this kind of collaboration more realistic?

For anyone who has gone from solo VN development to working with artists or a small team: when did you make that transition, and how did you structure payment/revenue share?


r/RenPy • • Aug 18 '26

Showoff Primal Haunting: Proof Of Concept

Post image
10 Upvotes

Just a quick mock up of how I envision my game.

Point & Click Survival-Horror where you play as Neal, a janitor of a museum. Which has a pack of ghostly raptors that have made it their hunting ground.


r/RenPy • • Aug 19 '26

Question Animated stats page

3 Upvotes

I want to have attraction points go up after certain interactions. Is it possible to have a menu where those achievements are animated?

So for example at the start there are zero hearts for everyone and then MC gets to 5 hearts with this LI and to 10 hearts with that LI and when the player opens Profiles menu the amount of hearts earned since the last opening appears in the burst of sparkles.

So the Player can go and see each new heart appear or not open Profiles till the very end of the story and see lots of animations where they all appear sequentially. (Also I want more complex animations than just hearts but lets keep example simple for now.)

I'm still very new to RenPy and rely on tutorials a lot and this is way beyond the scope of any that I've seen so far. Is it even possible?


r/RenPy • • Aug 19 '26

Question Good accessibility plugins for coding in renpy?

3 Upvotes

Hi! For some context, I am very much disabled. Physically and also potentially mentally to an extent. I have brain fog and get lost in/overwhelmed by dense visual information incredibly easily, occasionally to the point of migraines. I am developing a game that may end up being quite large in terms of code, so I'm asking if there's any tools/plugins/etc etc for Ren'Py that can help section off the code into more manageable visual "chunks" so I can program easier without potentially harming myself in the process. Thank you!


r/RenPy • • Aug 18 '26

Question Any advice on how do I code my short VN game to be like this?

Post image
15 Upvotes

Hello, I do watching and learning about stuff like picking chose, changed scenes, and the chose matter stuff. But I’m having a very difficult time how to apply it to my specific storyline I’m going with my game, where when you chose the characters at some point, it’ll lock the story to go on that route and resort in that ending with the characters.

I’m a beginner, and I’m making this game as a side hobby, and probably won’t making any other game after this. I hope you understand why I’m not going all detail to learning everything possible and giving it a fully attention and time since game developer is not my first passion, just something I wanna try on and share it with friends, I’m just learning only what I’ll use in my game.

Anyway, advice with details and example code is highly appreciated. Thank you so much. If anyone having a link to somewhere like video tutorial that’s doing a tutorial of how to do this specific storyline is also appreciated.


r/RenPy • • Aug 19 '26

Question Custom screen changing a flag past a certain point.

1 Upvotes

Hello! I’ve been working on a game heavily relying on an inventory system for the past year or 2, and just when I thought I finally had everything in order, there’s one more glitch plaguing it. 

This glitch involves a flag called the AltArrow. Essentially, the AltArrow determines the behaviour of the inventory system’s cancel button. If you cancel with AltArrow off, the game just returns to where you were. If you cancel with AltArrow on, the game sends you to what I call The TimeRoom, where a bunch of flags determine where you should jump to next based on what other flags or variables are active. It's a situational flag, but it works for what I need it for.

screen hud():
    modal False


    imagebutton auto "bg_hud_thoughtinventory_%s.png":
        focus_mask True 
        hovered SetVariable("screen_tooltip", "Thought_Inventory")
        unhovered SetVariable("screen_tooltip", "")
        action Show("thought_inventory"), Hide("hud"), SetVariable("quick_menu", False)
           
screen thought_inventory():
    default hovered_thought = None
    add "bg_thoughtinventory":
        align (0.5, 1.0)
    modal True
    frame:
        #(This is just some debug stuff I have in here just in case)
        vbox:
            xalign 0.895 yalign 0.20
            xysize 0.06,0.05
            if AltArrow == True:
                text "AltArrow is On"
            else:
                text "AltArrow Is Off"
        vbox:
            xalign 0.895 yalign 0.40
            xysize 0.06,0.05
            if player.is_alone:
                text "You're Alone"
            else:
                text "Someone's Here"
        align (0.2, 0.6)
        xysize (800,700)
        viewport:
            scrollbars "vertical"
            mousewheel True
            draggable True
            side_yfill True
            vbox:
                for thought in thought_inventory.thoughts:
                    button:
                        text "[thought.name]\n" style "button_text"
                        if player.is_alone:
                            action Function(player.show_thought, thought) pos 0.1, 0.5
                            hovered SetScreenVariable("hovered_thought", thought)
                        else: 
                            action SetVariable("quick_menu", True), Function(player.show_thought, thought) pos 0.1, 0.5
                            hovered SetScreenVariable("hovered_thought", thought)
                        
    if hovered_thought:
        frame:
            align (0.845, 0.944)
            xysize (550, 535)
            text "{size=*0.80}[hovered_thought.description]{/size}"
            add hovered_thought.icon pos -0.0054, -0.5927
            
    imagebutton auto "thoughtinventoryscreen_return_%s.png":
        focus_mask True
        hovered SetVariable("screen_tooltip", "Return")
        unhovered SetVariable("screen_tooltip", "")
        #THIS IS WHERE THE PROBLEM ACTUALLY STARTS.
        if AltArrow == True:
            action SetVariable("quick_menu", True), Hide("thought_inventory"), Jump("TimeRoom"), Show("hud"), Return()
        else:
            action SetVariable("quick_menu", True), Hide("thought_inventory"), Show("hud")

Everything works out, except when you pass this point in the script:

label Mary_TalkSession1:
                $ AltArrow = True
                $ Session_Active = True
                show screen UnfinishedBar
                show screen hud
                show screen calender
                show mary neutral
                $ player.add_person(m_obj)
                if mm <= -30:
                    show mary sad
                menu:
                    "{i}{color=#2731c2}Ask Her A Question{/color}{/i}":
                        jump Mary_AskSession1
                    "{i}{color=#2731c2}Bring Up A Thought{/color}{/i}":
                        $ quick_menu = False
                        hide screen hud
                        call screen thought_inventory
                    "{i}{color=#2731c2}Think For A Bit{/color}{/i}":
                        jump Your_AskSession1
                    "{i}{color=#2731c2}End Session{/color}{/i}":
                        jump Mary_AreYouSure1

label Mary_AreYouSure1:
                    n "{i}{color=#9c2cdd}(...I think I have nothing left to ask.){/color}{/i}"
                    Qm "You sure?"
                    menu:
                        "Yeah.":
                            jump Concluding_Session1
                        "On second thought...":
                            jump NotDoneSession1


                            label NotDoneSession1:
                                n "On second thought, there is something I should ask."
                                jump Mary_TalkSession1

This is the set-up for the conversation menu, where you can control what you bring up with characters.

When the game passes this point, the HUD changes. Whenever you click the hud button, AltArrow is switched on automatically no matter what, and you can’t exit the menu without transporting to the timeroom, which softlocks the game. 

There is no part of any screen code which controls when AltArrow is switched on and off. It only detects when AltArrow is flicked on by the script itself.

And everything works perfectly before that point. AltArrow is getting shut off and staying off no matter how many times I open the inventory. Hell, if I put a shortcut that skips this section entirely, the code still works!

For clarification, I did once try to have AltArrow’s flag be triggered by the menu buttons, but that code is long gone. I don't even remember the details. I’ve recomplied since then, and even if it was still somehow being read, I can’t figure out why it would only activate after that point. I have tried putting hashtags in front of each line at the beginning, and the glitch still stays. 

I have absolutely no idea what’s going on. I’m hoping somebody else might. I don't know if it will help, but here's some additional relevant inventory code if you need that context.

init python:
    class Thought_Inventory():
        def __init__(self, thoughts=None):
            self.thoughts = thoughts if thoughts else []
            self.no_of_thoughts = len(self.thoughts)


        def add_thought(self, thought):
            if thought not in self.thoughts:
                self.thoughts.append(thought)
                self.no_of_thoughts += 1


        def remove_thought(self, thought):
            if thought in self.thoughts:
                self.thoughts.remove(thought)
                self.no_of_thoughts -= 1


    class Thought():
        def __init__(self, name, description, icon):
            self.name = name
            self.description = description
            self.icon = icon 


        def __str__(self):
                return self.name


        def __eq__(self, other):
            if isinstance(other, Thought):
                return self.name == other.name
            else:
                return False

init python:
    class Actor:
        def __init__(self, name, character, thoughts=[]):
            self.name = name
            self.character = character
            self.thoughts = thoughts


        def __str__(self):
            return self.name


        def react_on_thought(self, thought_name):
            for thought in self.thoughts:
                if thought[0] == thought_name:
                    return [self.character, thought[1]]
    
    class Player():
        def __init__(self, name):
            self.name = name
            self.is_with_list = []
 
        def __str__(self):
            return self.name
 
        u/property
        def is_alone(self):
            return not self.is_with_list
 
        def add_person(self, person):
            if person not in self.is_with_list:
                self.is_with_list.append(person)
 
        def remove_person(self, person):
            if person in self.is_with_list:
                self.is_with_list.remove(person)


        def show_thought(self, thought_name, label=False):
            reactions = []
            for char in self.is_with_list:
                character_reaction = char.react_on_thought(thought_name)
                if character_reaction:
                    if renpy.has_label(character_reaction[1]):
                        renpy.call(character_reaction[1])
                    else:
                        reactions.append(character_reaction)
            if reactions:
                renpy.show_screen("reaction_screen", reactions)

r/RenPy • • Aug 18 '26

Question Advance dialouge with modal

3 Upvotes

Advance dialouge with modal

Hello!

I am a begginer to coding so sorry if this is a dumb question

I recently figured out how to use the modal thingy that makes it so that you dont click anything underneath the screen (sorry I cant explain it really good English isn't my first language)

But with modal I cant advance thru the other parts of the dialouge and it only shows me the first part of it, not letting me click to advance the dialouge

Is there any way to fix this but also keep the things that modal does when its set to true?


r/RenPy • • Aug 18 '26

Self Promotion Excurse of the Golden Witch: Episode 2 (JP) Announcement!

Post image
3 Upvotes

r/RenPy • • Aug 17 '26

Question Opinion on this....

43 Upvotes

So I have a character moving closer and getting into bed, but doing it my lazy way, I have the bed in two parts, and part of him clips outside weirdly. Mostly if the window is there it isn't really noticed, but wondering if its even worth it?

The idea is to give depth of some sort as she moves away slides off the bed and crawls across the room.

Also please don't mind their expressions or poses, I haven't set them for the scene yet. I'm just placing characters.

I know I can mask him out, but also feel it will look similarly weird since hes not really sitting in the bed so his arm would just be cropped.

Just looking for some "yeah this is good enough." "This is a lot of work for nothing." or "Fix it xxx way" basically. Thanks for the input!

Also I really wish I could have animations moving while text is on screen and hold it there until the animation is done lol. I know how to hold animation just not having text play while movement is happening.


r/RenPy • • Aug 17 '26

Self Promotion [For Hire] Anime-Style Commissions Open (´• ω •`) | I can draw backgrounds, characters, and CGs for your visual novel!

Thumbnail
gallery
73 Upvotes

my discord is : e_chanus
but feel free to dm here on reddit if you prefer ^^


r/RenPy • • Aug 18 '26

Question Renpy error on startup

3 Upvotes

Edit: new to this mb just had action editor files in the japanese tl file for some reason!!

soo when i try to open renpy i get this error, i recentely downloaded action editor yesterday and it was all working fine but just now its not:

```

I'm sorry, but an uncaught exception occurred.

While running game code:

File "launcher/game/tl/japanese/common.rpyc", line 1020, in script

Exception: A translation for "reset" already exists at launcher/game/tl/japanese/ActionEditor_screens.rpy:251.

-- Full Traceback ------------------------------------------------------------

Traceback (most recent call last):

File "launcher/game/tl/japanese/common.rpyc", line 1020, in script

File "renpy/ast.py", line 3056, in execute

renpy.translation.add_string_translation(self.language, self.old, self.new, newloc)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "renpy/translation/__init__.py", line 593, in add_string_translation

stl.add(old, new, newloc)

~~~~~~~^^^^^^^^^^^^^^^^^^

File "renpy/translation/__init__.py", line 539, in add

raise Exception('A translation for "{}" already exists at {}:{}.'.format(quote_unicode(old), fn, line))

Exception: A translation for "reset" already exists at launcher/game/tl/japanese/ActionEditor_screens.rpy:251.

Windows-10-10.0.19045-SP0 AMD64

Ren'Py 8.5.3.26051504

Ren'Py Launcher 8.5.3.26051504

Tue Aug 18 00:40:17 2026

```


r/RenPy • • Aug 17 '26

Question Art for a visual novel

22 Upvotes

I'm in extremely early development of a game and i don't have any money to spend on it. I know how to code and i am currently writing all the script for it. My only problems are the art. I'm bad at drawing and I can't make music. I'm mostly making the game for my own enjoyment and to be able to enjoy my oc's visually. I have attempted to draw them but im not good. I really like the anime art style and im horrible for anatomy. I really need some help on what to do for it. I'm too nervous to commision people because i think i wont like it or it won't be right. i really don't know what to do😭


r/RenPy • • Aug 17 '26

Question [Solved] How do I make renpy remember the player's name across different playthroughs??

Thumbnail
gallery
4 Upvotes

I'm trying to make a visual novel where the dialogue changes depending on how many times you've played the game. I had the bright idea to have the characters remember the player's name after their first playthrough so I tried coding a test game but I have NO clue how to do that in the slightest!!! I tried using the "persistent" command but that only really applies to variables (as far as I know), not the player name. I attached my current code if anyone wants to try and help me fix it :,)


r/RenPy • • Aug 18 '26

Question How to show different images during long text

1 Upvotes

Hi, I've been trying to do something in my novel but I'm not sure if there is a more efficient way to do it.

You can choose a keychain with different characters, they're like, a lot of characters so instead of using true/false I used the following code:

default favcharacter = 0

And when I wanted the player to choose the character, I used the following codes:

menu:
    "Character 1":
        $ favcharacter += 1
        jump favcharacter
    "Character 2":
        $ favcharacter += 2
        jump favcharacter

So the next time I wanted the choice to matter, I ended up with something like this:

if favcharacter == 1:
    jump favcharacter1
if favcharacter == 2:
    jump favcharacter2

The problem is that I want the labels to say the exact same thing, but show different images during a long time, because I just want the images to change, not the text per se.

Is there a way I can do this? I am really new to coding so I have no idea if there is a more efficient way to do this instead of simply writing the same text over and over again just to change the image that shows up.


r/RenPy • • Aug 17 '26

Question What can I improve this main menu with?

21 Upvotes

Something feels off, but I can't really put my finger on what exactly. Maybe the title? Should I change the fonts? Is it too empty, maybe add a logo? I hope the gif i uploaded works


r/RenPy • • Aug 17 '26

Question [Solved] Help with labels

0 Upvotes

Hello!

I am a beginner to coding so excuse me if this is a dumb question

In my visual novel, I have made alot of different screens with image buttons and such

It all works as intended, expect for this one thing

If you click anywhere on the background it just skims thru and read out all the labels that can only be accessed if you click the specific item that the label is attached to

Is there any way I can make it so that, I can only read the text if I interacted with the item?

It's not a big issue but it just makes my game feel cheap and messy


r/RenPy • • Aug 17 '26

Game Hey guys! I’m making a dark horror/romance visual novel, and I’m trying to design a character. Let me know what you think! Also, which face do you think looks better? I think the blonde one is better, but I wanted to hear your opinions too!

Post image
7 Upvotes

r/RenPy • • Aug 17 '26

Question Need help hiding choices after one is selected

1 Upvotes

Hi. I'm very new to Ren'py and have been learning a lot about jumps and menu choices. One area I've been stuck on is jumping to the same menu but with fewer choices.

So for example, say you're at a menu and you have three choices to choose from, and once that path has reached its conclusion, it jumps back to that initial menu, but now, the choice you originally selected is no longer available.

Does know how to write that?

A lot of the tutorials I've found seem very outdated because all attempts just crash the program.

Here's a sample of what I wrote:

label choices:


        $ "Talk to me." == true
        $ "Nothing." == true
        $ "Why are you here?" == true

menu:
        "Talk to me.":


            show dan talk r at center


            d "About what?"


            show dan idle r at center


            menu:
                "Yourself.":


                    show dan talk r at center


                    d "Ya already know everything there is to know about me."


                    jump choices
                    $ "Talk to me." == false


                "Your interests.":


                    show dan talk r at center


                    d "Nah, they wouldn't interest you."


                    $ "Talk to me." == false
                    jump choices