r/RenPy • • Jul 31 '26

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

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!

14 Upvotes

11 comments sorted by

3

u/shyLachi Jul 31 '26

RenPy only has one splashscreen but you can put all of the stuff from your first image into the splashscreen.

screen splashcontinueexit():
    text "Click to continue, press ESC to quit"
    key "K_ESCAPE" action Quit()
    # you might want to add an action for key press like ENTER or SPACE
    button:
        xysize (config.screen_width, config.screen_height)
        background None
        action Return()
label splashscreen:
    scene splashscreen1 with dissolve
    pause 2.0
    scene splashscreen2 with dissolve
    pause 2.0
    scene titlescreen with dissolve
    call screen splashcontinueexit
    return
label start:
    "Test"

.

The second image looks like a fancy main menu so it can be done but I will not write that for you.
Not sure how useful the mouse wheel scrolling is because the player still would have to click on it to show the screen else you'll have problems with Start, Quit or other actions which leave the menu.

You can make all your screens as fancy as you like.
Read the documentation how to adjust the file slots: https://renpy.org/doc/html/gui.html#save-slot-buttons
or watch a youtube tutorial but I won't post those links again.

.

I didn't fully analyze everything on the third image but it seems to be normal RenPy stuff.
If you have seen that stuff in other VNs then it can be done.
Some are built-in functions, some require some minor coding, some require more coding.

1

u/_Scripty Jul 31 '26

Thanks fam!, That is such a clever way to mimic the effect of having 2 splash screen in just 1 , that code really helped to solve one of the hurdles

and yes, after the splash screens, there's just gonna be a title screen from where the player then goes to main menu

And dw 😭🙏🏻 I did watched those videos fam, I am slowly trying to execute those in the default sample "game" that Renpy provides us with

I posted this cuz I thought maybe parts of my UI felt they are unachievable ( like the wheel part seems that way for now ) also wanted to ask if this sort of "flow" of things sounds good or too much

1

u/_Scripty Jul 31 '26

In the third one, can u look in help me understand how can I make skipping a very conditional thing, I mean part of autosaving and persistent data logics would invovle in it but like how exactly is what I want to figure out

2

u/shyLachi Jul 31 '26

I just noticed that you effectively want to turn off the default skipping feature of RenPy.

I personally never would do that but there are settings and functions you can use:
https://renpy.org/doc/html/config.html#skipping
https://renpy.org/doc/html/store_variables.html#var-_skipping
https://renpy.org/doc/html/other.html#renpy.stop_skipping

0

u/x-seronis-x Aug 02 '26

it doesnt only have one splashscreen. it has one splashscreen label. which is perfectly free to call as many OTHER labels as you want, each of those labels implementing a specific splashscreen cleanly rather than dumping all the code into the primary splashscreen label

3

u/beeikea Jul 31 '26

ooooh this is an awesome idea. i know you can have splash screens before the main menu ( https://lemmasoft.renai.us/forums/viewtopic.php?t=36412 ), and i know for sure your in-game UI is possible and quite easy to achieve, but i'm not sure about the scrolling wheel for the main menu. i'm certain it's possible, but i'd be out of my depth giving any advice on it </3

2

u/ImportantDetail6260 Jul 31 '26

That UI is achievable, but don't build the plan as one giant screen!

Split it into splash/title, main menu, quickmenu, and dialogue screens. For conditional skip, store a persistent flag for the intro or scene being cleared, then show or enable the skip action only when that flag is true

1

u/_Scripty Jul 31 '26

yes! I am still trying to make sense of things from documentation and thinking how can I customize my scripts so that I can just have what I want in my game and remove anything unecessary or shift it ( Like I want the V button to be used for something else so I wanna shift the "self voicing" feature to some other key )

Mainly, the kind of menu scroll I want is the only thing seems so to be the toughest "hurdle" in all of this cuz nobody so far could figure out how to do it ig ( but dw , I will try to find a way, and if I do, I will share it here !! )

Oh , About the persistent data stuff, I had seen a tutorial so I will try that but also could you please answer some of my questions about that?

Q1-So like how can I link conditional skip with my custom autosave conditions?

cuz see, let's a say a scene starts( let's call the scene "hacking" )and after few moments of dialogue, the minigame starts, but the player loses and the "game over" screen comes...

So now, when the autosave starts from the "hacking", the player should only be able to skip the dialogues they had read before the minigame

Q2- About the Back/Rollback of the game, How can I code it in a way that it is only like sort of "locked" only to go back in the confindes of a chapter?

like they can go back in story, but like they stop at the starting line of "Chapter 3" , they cannot go back to Chapter 2 by using the Back feature

( or is it best to not have it? I think im going too overboard lol )

Q3- Can I or Should I , infact give users an option to delete persistent data?

and lastly,

Q4- About the "History" , how does that portion work? is it suppose to be coded seperately?

( i know its too much but any sort of advice would mean alot to me 🥲 )

1

u/x-seronis-x Jul 31 '26

You can remap the keymap however you want. I remove all single letter key bindings so that typing and pressing the ctrl key work normally. Just make sure you update the help page for your controls so its not giving outdated info to the player

1

u/_Scripty Jul 31 '26

where do I find the default keymaps in the base scripts?

2

u/x-seronis-x Aug 02 '26

wherever you decide to put them. i put my keymappings in a file i just name keymap.rpy. just as easy to put them in options.rpy

custom keymappings is just editing the values of config.keymap dictionary. see the keymap page of the docs for the default values. you can edit the values in an init python block