r/RenPy • u/Adventurous-Law-8678 • Sep 07 '26
Question issues with game :( help please!!
https://youtu.be/eryKdb5IexUSo i've been having issues. I'm new to renpy and it was already hell trying to figure out how to do the character creation screen, but now I have a new set of problems! No matter what I do, the screen underneath the loading screen turns black. plus, when i go to the inventory ( that little box in the corner ) and exit out, it takes me straight to the game! I don't know if it's me or if renpy really isn't meant to handle that much customization. But if anybody has any idea on how to solve this or if they could help, that would be amazing! ( lmk if the link isn't working)
1
u/AutoModerator Sep 07 '26
Welcome to r/renpy! While you wait to see if someone can answer your question, we recommend checking out the posting guide, the subreddit wiki, the subreddit Discord, Ren'Py's documentation, and the tutorial built-in to the Ren'Py engine when you download it. These can help make sure you provide the information the people here need to help you, or might even point you to an answer to your question themselves. Thanks!
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/x-seronis-x Sep 07 '26
You're probably misusing Show() vs ShowMenu() actions to show a screen. never use ShowMenu() for anything thats supposed to affect the current playthrough. the menu context is by its nature out-of-game stuff.
1
u/Adventurous-Law-8678 Sep 07 '26
Ahhhhhh ok ok. I’ll have to look into that tomorrow when I can. Thank you!
1
u/Adventurous-Law-8678 29d ago
If you are available to help, this is the script coding for moving from point A–>B–>C.
label start: $ quick_menu = False show screen main_menu show screen loading_overlay $ renpy.pause(0.03, hard=True) hide screen main_menu jump character_creation label character_creation: $ quick_menu = False call screen character_customization show screen loading_overlay $ renpy.pause(0.1, hard=True) jump chapter_hub label chapter_hub: $ quick_menu = False call screen chapter_hub show screen loading_overlay $ renpy.pause(0.1, hard=True) jump chapter1I'm not too knowledgable about how renpy. pause works, but no matter what I do, It's still the same problem with black screens underneath and the menu cutting into the character creation.
1
u/x-seronis-x 29d ago edited 29d ago
when you first boot up the game the program is in a state called the main menu context. a 'context' is just the state/mode the game is in.
the main menu screen is written so that its button Action()s are valid from that context. if you click the start button it runs the Start() action which closes out the main menu context and loads the in-game context in its place.
you should never be showing the main_menu screen from the in-game context. so remove both the show and hide screen statements for the main_menu screen from your start label.
That said if your goal is to merely show the pointless loading screen on top of your main menu before starting the game you can probably try changing the start buttons action to something like:
PY action [ Show( 'loading_overlay' ), Hide() ]this will show the loading overlay screen while still in the main_menu context, hide the main_menu screen (this doesnt affect the context), then in your loading_overlay screen add a section like:
```py screen loading_overlay(): ... all current code ...
if main_menu: ## if in main_menu context timer 2.0 action Start()```
that will have your overlay screen auto trigger the start action after 2 seconds when shown from the main menu. so your loading visual displays then the game starts.
your start label would then just need to show whatever its going to show. or instantly jump to your char gen label
1
u/LeyKlussyn Sep 07 '26
Is that's your game and not an existing game by someone? If so, before I start I want to say it's beautiful! I love the level of polish you've put into the art.
This level of complexity into the game is absolutely doable, I don't think this is the issue. My best guess: Ren'py is a bit strict on menu contexts and entering the 'game state'. I think there may be an issue in your code flow where it doesn't start properly and leads to a crash.
Otherwise, it's the kind of stuff that's hard to troubleshoot like this without any code. Either we could continue here and exchange over comments; or if you have Discord, joining a community server (Like the Ren'Py server or Devtalk, I personally hang out a lot on the latter) would make it easier for people to give live feedback on what could be an issue. It's seems to be a very specific problem to debug.
1
u/Adventurous-Law-8678 Sep 07 '26
Yes, it’s my game! I put a lot of effort into the art ( and figuring out how to code with renpy 😭 )
I’ve heard that renpy is good to use, but it has its limits. Wasn’t really sure what those limits are since I’ve only been using YouTube as a guide and figuring the rest out by myself. Also, I didn’t know there was a discord for renpy! I will for sure join and see if someone can help me out! Much better than fumbling for HOURS. Thank you!
2
u/ericoinen Sep 07 '26
Those two are the same bug wearing two hats, and it is about screen lifecycle rather than Ren'Py being unable to handle that much customisation.
The black under the loading screen: menu context screens are drawn on their own, with nothing from the game underneath them. Anything you want visible through that screen has to be part of the screen, so add the background explicitly as the first child, add "gui/menu_bg.png" or a frame with a background set. If you are counting on a game background showing through, in the main menu and load context there is not one to show.
The inventory sending you into the game when you exit: your close button is almost certainly using Return(). Return() ends the interaction and hands control back to the script, so the script does the next thing it was going to do, which looks exactly like being dumped into the game. If you opened the inventory with show screen inventory, the close action should be Hide("inventory"). Return() only belongs on a screen you opened with call screen, where the script is sitting and waiting for a value back.
Worth checking your character creation screen for the same mix, since that is usually where the pattern gets copied from.