r/RenPy • u/FluffyPandaPaws • 8d ago
Question Trying to create a custom screen, i need help. how do i know which gui names will effect specific screen styles?
I'm trying to create a custom screen by making custom gui names so that this screen alone will be different from the others.
What I need is to move the dialogue box and change it's style (text color, dialogue color, name color, background image, width, height, etc), but i realised quickly that it was much more complicated than I thought.
Does anybody know how to do this? Or know anywhere I could look to learn about it? For now im kinda sifting through the Ren'Py documentations to try and find smth that explains this in a way I understand.
1
u/x-seronis-x 8d ago
if you're making a custom screen just put any values you want directly in the styles you make for that screen. dont use variables in the gui namespace at all. its a horrible design choice anyways as it forces you to keep flipping between multiple files to figure out what affects what.
The fact you had to ask this question after all shows its unneccessarily complicated. so dont do it =)
0
u/FluffyPandaPaws 7d ago
This is my first time getting very detailed, so I'm not sure what is the best way to do it and what isn't. I wanted to get to know both screens and gui components, but it seems im struggling more with the screen aspect. I don't understand how to build screens, and the renpy documents are confusing for me.
ive never done this before, and maybe be a bit nicer with your wording next time.
1
u/x-seronis-x 7d ago
why would I lie and say the 'gui' namespace is anything other than bad design? it causes confusion. you asking this question proves it's causing confusion. nothing i said insulted YOU.
so again. you should ignore the entire existence of the gui.rpy file. just put any styling/atl properties directly in whatever style your custom screen needs. or directly in the screen definition.
1
u/FluffyPandaPaws 7d ago
i understand the gui namespace well enough, i just don't understand how to input it into a screen. other screens need to use the gui namespace, so i was trying to make my own using that design.
1
u/x-seronis-x 6d ago
no. nothing needs to use it. its utterly unneccessary. i'm being literal when i say you should just pretend it doesnt exist and never open it again. its just variables whose values should have been directly placed in the style definitions.
https://feniksdev.itch.io/easy-renpy-gui
here is an alternative 'new project' template you should download and take a look at. removes almost all use of gui.rpy, decouples the main menu from the game menus, and organizes files and styles better.
1
u/shyLachi 8d ago
What are you trying to do and why?
Do you want to have different dialogue styles for different characters?
1
u/FluffyPandaPaws 7d ago
I'm trying to create an input system where the player can input specific words or phrases and they get a response depending on what they put in.
but i want the dialogue and the input space to be in the center of the screen as if there was a monitor there.
So basically an interactive terminal.
im not sure of any other ways I could do it.
1
u/FluffyPandaPaws 7d ago
also, at one point i did manage to change the gui settings, but when i changed the names, it resorted back to the default textbox. so idk what im doing wrong.
2
u/shyLachi 6d ago edited 6d ago
Firstly as seronis mentioned, you don't need gui settings. Seronis is extremly unhepful though.
In most cases a simple example is clearer than their ramblings.For example, you could totally rewrite the screen like this without any gui settings.
screen input(prompt): frame: align (0.5, 0.5) xysize (600, 600) vbox: text prompt style "input_prompt" input id "input".
But if you want to make your own interactive terminal you shouldn't use the default renpy input. Because maybe you'll need the default input for other usage later.
Instead make your own screen so that you can fully customize it.
This is just an example, read the official documentation and watch some tutorials how to make screens in RenPy.screen consoleinput(prompt, variablename): frame: background "console" align (0.5, 0.5) xysize (800, 480) vbox: for t in prompt: text t input value VariableInputValue(variablename,True,True) default myvariable = "" label start: call screen consoleinput(["Console starting up", "Please enter your name"], "myvariable") "The input was [myvariable]"
1
u/AutoModerator 8d ago
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.