Ren'Py Is there a WAY to make "gui.advname_font_color" in the file *gui.rpy* of a Ren'py game change based on the character that is speaking (alignment too)?

Apr 9, 2021
95
74
I tricked YOU...actually THERE ARE two!!! So... that's me again (hFIcwooKGrUnui1Tg1CZ)! I know what you're thinking, I haven't been in touch for a while AND I'm really sorry for that but LIFE happened. But let's not digress HERE... since you're here essentially for the question and that's it!

[DISCLAIMER improperly used : Obviously without the developer's predisposition I am going to ask THOSE questions ↓]

INTRODUCTION: I have Deliverance on Steam the Ren'Py version of the game is → 7.4.8.1895. I want to include, with a certain type of syntax, multiple colors so that each time the main character speaks it has a type of color (same thing with other minor characters).

1) Is it possible to do it by modifying only the "gui.rpy" with ADDING more line or a more "global" (so TOUCHNG many folders and files) effort MUST be done inserting, for example if not already available, the varibles relative to every single character that appears and then modify the color one by one ?

2) And can I also make them closer (dialog text & name label) by modifying some specific value here too or by INSERTING some particular entries to the gui.rpy ONLY (down below in the screenshot)?

It's not BASIC until someone clearly states it so don't limit yourself hahahah I won't hold it against you! Thanks a lot in advance for the answer, have a nice day ahead of you!

atom_XwKbeqIzQ5.png

ONE LAST THING: Maybeeeee should I look ONLY a little harder in the DOCUMENTATION in your opinion?

 
Last edited:

Meaning Less

Engaged Member
Sep 13, 2016
3,540
7,167
When you define a renpy you can pass color and what_color to them.

This should change their name and text color respectively.
 

MissFortune

I Was Once, Possibly, Maybe, Perhaps… A Harem King
Respected User
Game Developer
Aug 17, 2019
5,278
8,523
Just to add to Meaning Less said, it basically looks something like this:
Code:
define abbreviatednamehere = Character("actual name", color="#colorhere")
So, used practically:
Code:
define a = Character("Ashley", color="#ebdc38")
I've not seen the code for Deliverance nor have I played it, so the dev may or may not have already done the above somewhere in it.

Now, if there's a custom name input in the code, you'll find something like this early in the script:
Code:
$ player_name = ""

    $ player_name = renpy.input("What's her/your name? {color=#808080}/color}")
    $ player_name = player_name.strip()
    if player_name == "":
        $ player_name = "Alexis/Name"
The color code shown here above is for the dialogue box ("What's her/your name" will be the color of shown code). So, if you run into that, you'll do something like this:
Code:
define mc/anme = Character("[player_name]", color="#ebdc38")

As for your second question, you can you can manually adjust the textbox and dialogue itself in the gui.rpy, I believe. Check line 120 or so in the "gui.rpy", and you'll find options for Dialogue there. You'll find these:
define gui.dialogue_xpos = 402
define gui.dialogue_ypos = 90

Name positions should be around 110 or so:
define gui.name_xpos = 300
define gui.name_ypos = 10
 
Apr 9, 2021
95
74
---
Just to add to Meaning Less said, it basically looks something like this:
Code:
define abbreviatednamehere = Character("actual name", color="#colorhere")
So, used practically:
Code:
define a = Character("Ashley", color="#ebdc38")
I've not seen the code for Deliverance nor have I played it, so the dev may or may not have already done the above somewhere in it. Now, if there's a custom name input in the code, you'll find something like this early in the script:
Code:
$ player_name = ""

    $ player_name = renpy.input("What's her/your name? {color=#808080}/color}")
    $ player_name = player_name.strip()
    if player_name == "":
        $ player_name = "Alexis/Name"
The color code shown here above is for the dialogue box ("What's her/your name" will be the color of shown code). So, if you run into that, you'll do something like this:
Code:
define mc/anme = Character("[player_name]", color="#ebdc38")
As for your second question, you can you can manually adjust the textbox and dialogue itself in the gui.rpy, I believe. Check line 120 or so in the "gui.rpy", and you'll find options for Dialogue there. You'll find these:

~ define gui.dialogue_xpos = 402
~ define gui.dialogue_ypos = 90

Name positions should be around 110 or so:

~ define gui.name_xpos = 300
~ define gui.name_ypos = 10
---

I have done a very thorough search and followed your very kind and super appropriate advice but even though these are the values to be changed if I change them NOTHING happens ... any ideas? MissFortune

By the way thanks to I can easily search phrases or words inside the files in a specific folder of the GAME (so no sweat for me) through the advanced search and the only two FILE that contain the precise wording that you have indicated are these you see in the first screenshot (reporting that the y_outline.rpy cannot be the one)! As opposed, in the second you can clearly see the entries, am I missing something?

1° screenshot ↓

1652211620494.png

2° screenshot ↓

1827082_1652206653937.png
 
Last edited:

Meaning Less

Engaged Member
Sep 13, 2016
3,540
7,167
I have done a very thorough search and followed your very kind and super appropriate advice but even though these are the values to be changed if I change them NOTHING happens ... any ideas?
This dev created another class that overwrites the default behavior of those values.

It is called screenADV.rpy:
Try changing line 55 to something like ypos 70 and the name will be closer to the text.
 
  • Like
Reactions: MissFortune
Apr 9, 2021
95
74
This dev created another class that overwrites the default behavior of those values. It is called screenADV.rpy!

Try changing line 55 to something like ypos 70 and the name will be closer to the text.
Ahhhhh these developers... why create an additional class if you already have the predispositions? I'm not a developer so I guess that's the reason I don't seem to understand! In case I would also have the option to go back to the "rudiment" by commenting where needed. But I also really would like to tweak as little as possible and in THAT be able to CLARIFY in primis my procedures, am I making sense right now?

However... can you confirm that the underlined areas are indeed the affected ones? I'm trying to figure out how to implement the same things we've said to each other HERE then in further situations of possible problems, is THIS all I need to know?

Could you direct me to some type of tutorial or proper documentation about all the possible "cases"? You would be a great help to me!

1652214917350.png

And so I really wonder...will THIS be enough to BEGIN to know about these commands specifically? →
 
Last edited:

Meaning Less

Engaged Member
Sep 13, 2016
3,540
7,167
Can you confirm that the underlined areas are indeed the affected ones? I'm trying to figure out how to implement the same things we've said to each other HERE then in further situations of possible problems, is THIS all I need to know?
Yes it is the ypos of the namebox, it should move it around in the vertical axis, worked here.
Could you direct me to some type of tutorial or proper documentation about all the possible "cases"? Really valuable!
I'm not sure there is aside from the official .

Common sense is a good starting point, if something doesn't work it probably means something else is being used.
Since every developer can just write whatever they feel like the possibilities are endless really, the only way to figure out every case would be to read the code and to have an idea of what you are looking for.
 
Apr 9, 2021
95
74
Yes it is the ypos of the namebox, it should move it around in the vertical axis, worked here.
I confirm that the modification is successful so the areas highlighted in the screenshots ARE the ones that can be "actioned" for Deliverance, you learn something new every day!
I'm not sure there is aside from the official . Common sense is a good starting point, if something doesn't work it probably means something else is being used. Since every developer can just write whatever they feel like the possibilities are endless really, the only way to figure out every case would be to read the code and to have an idea of what you are looking for.
My idea is to write up some kind of glossary for the various terminologies, which I will obviously have to keep up to date. In point of fact, it usually comes down to the developer's discretion and likes of HOW the code will be actually written so I'll have to, I think, include several versions and methods. Definitely common sense is a great and effective way to self-districate in the CODE but some times I feel the fatigue, you know what I'm saying?

---
It gets better with time I guess, I will finish by thanking you for your contribution and for what I LEARNED through the help you PROVIDE me Meaning Less, MissFortune, have a nice day ahead of you!
---
 
Last edited: