A few testers noticed that when you click to advance text in our Renpy game while the text is still writing, it immediately goes to the next dialogue instead of displaying all the text (which is the default functionality). After debugging, I found out the problem was because I had set config.say_layer to a custom layer. This is very easy to reproduce:
Create a new renpy project (I'm using Ren'Py 6.99.11.1749). In the script.rpy file, add this bit of python code:
Code: Select all
init python:
config.layers.insert(1, 'window')
config.say_layer = "window"
Then run the game with the text speed set to slow and click before the text finishes appearing. It will skip to the next dialogue instead of displaying the full text. If you comment out those three lines of code and reload, it will work as expected.
The reason I needed the dialogue box in a different layer is that I wanted to have some displayables on top of the dialogue box. However, if I put the displaybles on top of the screens layer, then it is on top of all screens (including the game menu!)
EDIT:
For those curious, changing the code to this:
Code: Select all
init python:
config.layers.insert(2, 'window')
config.say_layer = "window"
Works, as it puts the window layer above the transient layer. I can then have layers between window and screens.