[go: up one dir, main page]

Ren'Py Description Menus

I've always wished character profiles were built into Ren'py, so have a quick plugin to add it in!

There are 4 premade layouts with each containing 8 character pages. All you need to do on your end is fill in what the default variables say for it to show up on your menu! Take a peek into the sample game if you need an example of how to change the variables mid-game as well. 

This image shows the difference between each preset pack!

To add this into your project you need to:

  1. Take the .rpy script out of the folder and throw it into your 'game' folder.
  2. Place the images into your 'gui' folder! 
  3. Add the line "show screen onscreenmenubutton" in your script.rpy after the start label.
  4. Open the script and fill your character's information to the default variables!

Features

  • Everything is a variable so you can change it during the story.
  • Buttons and backgrounds are images (Assets included)
  • Tons of script comments to help you along the way!

If you have questions, requests, or errors, please comment them! Thank you!

StatusReleased
CategoryAssets
Release date 83 days ago
Rating
Rated 5.0 out of 5 stars
(2 total ratings)
AuthorRev
Made withRen'Py
TagsAsset Pack, Ren'Py, Royalty Free
Code licenseMIT License
Asset licenseCreative Commons Zero v1.0 Universal

Download

Download NowName your own price

Click download now to get access to the following files:

PACK A 1.4 MB
PACK B 1.6 MB
PACK C 1.4 MB
PACK D 1.4 MB
Sample Game Files 8.4 MB
Aldriix's Menu Code Edit 29 kB

Comments

Log in with itch.io to leave a comment.

Hello ! First, thanks for this code, it's really cool !

I'm using Pack A and I wanted to know, is there a way to "hide" the characters (even if it's just changing the name for NO DATA and disabling the option to check the menu) until something happen (like, the MC meet the character for the first time) ?

I'm kinda new with ren'py so excuse my question if the answer's way easier than I think, and thanks for your help !

(+1)

First you want to make a variable for whether you met the character. You would add code like this in the area where the variables are defined:

You should always leave a character set to true so the menu isn't empty! This will determine whether a character shows up in the menu, so when you're writing the script you can add the line  $ metcharacter2 = True to make them show up! Alternatively you can make it False to hide the character again.

Then you need to set up the list inside of each menu. Just slap them into some if statements!

The list is different for each screen, so ensure you make this change on each screen so everything is consistent.  This should be ready and working after that!

But remember there's always the option to just make the menu appear later on in the game after people are established too. You don't have to add the line "show screen onscreenmenubutton" at the very start of the script! I've always liked the idea of setting the name as "?" until you meet the character too! If something is unclear please follow up, good luck!

(+1)

Oh my, thank you so much for taking the time to lay out everything like this, it's so clear and easy now ! I did exactly this and it works perfectly, thank you !

I decided to put the "show screen onscreenmenubutton" after the introduction rather than at the start of the script and used your method to hide away the characters until we've meet them ! 

Thank you again for your time and kind answer, I really appreciate it ! Have a great day !

oooo i love this!!! a couple questions, though (I'm using Pack B for context):  

  • how would i remove the column with the image so the text spans across the whole frame?
  • is there perhaps a way to make it scroll upon overflow?
(1 edit)

Yes yes the column part is a very simple change, the way I have it is that the portrait and the description are within an hbox, which displays them next to each other, you just delete the hbox and the portrait line of code to remove the icon, and you also need to delete the line that constrains the xsize of the description so it will naturally fill the box! The overflow scrolling is something I haven't done much before, but basically you just add the text inside of a frame and add the properties draggable and scrollwheel!

In example, each character profile has a line that says #layout starts and #layout ends, between these you can paste this code:

 vbox:

                    spacing 10

                    frame:

                        background gui.selected_color

                        padding (10, 10)

                        label "{color=#000}{size=50}[character1]{/size}"

                    label "{color=[gui.accent_color]}{size=25}[character1title]{/color}"

                    frame:

                        ysize scrollframeheight

                        has viewport:

                            draggable True
                            mousewheel True

                        label "{color=#fff}[character1description]"

                vbox:

                    frame:

                        background gui.selected_color
                        padding (10, 10)

                        textbutton "Return" action Return() xalign 0.5 #You can uncenter the return button by removing "xalign 0.5"

                    xalign 0.5

And that should get you where you're trying to go! I made a new layout code and posted it on the download page for you if you want to pop that in and give it a try, it'll save you the effort of renaming all the stuff and whatnot!

Let me know if you come across any errors or if something doesn't make enough sense, good luck!

(+1)

OH WAIT THATS AWESOME i cant try it out now but i will do so first thing tomorrow !! thank you so much :D

this is like exactly what i needed :0 one last question- is there any way the name section can scroll if you need more characters?

It would be the same process we use to make the description scroll! All you need to do is put the characters inside a frame and add the scroll+drag properties!

I'll show some pictures of my code so you can see what to change! You must make this change for every separate character screen, so you'll likely need to copy+paste it in each!

frame:

                    ysize scrollframeheight

                    has viewport:

                        draggable True
                        mousewheel True

                        vbox:

                            textbutton "[character1]" action ShowMenu("character1") xalign 0.5

                            textbutton "[character2]" action ShowMenu("character2") xalign 0.5

                            textbutton "[character3]" action ShowMenu("character3") xalign 0.5

                            textbutton "[character4]" action ShowMenu("character4") xalign 0.5

                            textbutton "[character5]" action ShowMenu("character5") xalign 0.5

                            textbutton "[character6]" action ShowMenu("character6") xalign 0.5

                            textbutton "[character7]" action ShowMenu("character7") xalign 0.5

                            textbutton "[character8]" action ShowMenu("character8") xalign 0.5


Be cautious the indentations match if you paste it directly in!

Also the frame's border bothers me, so you can add this line of code to remove it if you'd like.

Good luck!!!!!

(+1)

ur like so sick and awesome for this holy shit ty.... im normally so good at coding i swear but the scrolling vexed me lmao

(+1)

Anytime! :D

(+1)

THANKS!

(+2)

Looks cool >:)

(+2)

Oh this is so cool! Will def have to try this out at some point!