
Speech Pauses for Ren'Py
A downloadable Plugin
Would you like to give your visual novel dialogue a more natural flow by adding subtle pauses a speaker would make?
But are you tired or afraid of your script looking like this?
"What?!{w=0.3} No,{w=0.1} that's not what I meant—{w=0.3} I promise!"
This plugin automatically scans for every comma and period in your visual novel, and adds the necessary pauses, while keeping your script nice and clean:
"What?! No, that's not what I meant— I promise!"
Define preset pause lengths once, and this plugin will take care of the rest!
Screenshots are from my current main project, Artificial Selection!
Features
- 100% plug-and-play
- Flexible customization options
- Accounts for possible exceptions
- Fully automatic, with no extra work for you
- Keeps your script nice and clean
- Sample code for your preferences screen
- Support for multiple languages
How to Use
- Plop this file into your game's script folder
- Adjust some values, if needed
- Optional: Use speech_pauses_screen.rpy as a reference
- Enjoy!
Goals
If this plugin reaches $20 in donations, I'll add a code snippet for additional buttons for your preferences screen, letting your players adjust the pauses to their liking!
GOAL MET! Thank you so much!
↓ Got any additional feature requests or ideas?
↓ Feel free to comment below!
Updated | 14 days ago |
Status | Released |
Category | Assets |
Rating | Rated 5.0 out of 5 stars (20 total ratings) |
Author | KigyoDev |
Made with | Ren'Py |
Tags | Ren'Py, sourcecode, Tutorial |
Code license | MIT License |
Download
Click download now to get access to the following files:
Development log
- Relative text speed16 days ago
- Support for more languages added!30 days ago
- Added Preferences Sample Code!31 days ago
- Speech Pauses for Ren'Py released!31 days ago
Comments
Log in with itch.io to leave a comment.
USING THIS, it's so easyyyy!!! great stuff thank you!!!
This is genuinely such a game changer, this is exactly what I've needed, thank you!
Easy to understand and simple to edit! Thank you for this fantastic tool, extremely helpful. Was fearing having to do this myself, but lifts a huge weight off my shoulders. Thanks so much for putting this together and sharing!
Excellent work! The code is well-organized and easy to read ✨ If you're up for it, I'd love to see a version that uses {cps*=mult} instead of {w}! This solves the issue someone mentioned where you have to click multiple times to dismiss a line, and it can adapt well do different text speeds. A toggle or line that turns dialogue pauses off if preferences.text_cps == 0 (aka max speed) might also work well in that case. Thanks for making this!
Thank you Fen!
That's a very promising idea, and I'll try to finetune it a bit to make it work!
worked immediately out of the box, awesome work! thank you!
is it possible to change the settings so when you click to skip text, instead of just skipping to the next 'section' after a comma/punctuation it shows the full line of text?
Works as advertised, easy to use, 10/10! :D
Oh, this is lovely. Does exactly what it says on the tin. Perfectly.
ADORE THIS PLUGIN! Will 100% be using this for future projects. It's such a pain to try and make dialogue sound natural with pauses manually. Thank you for making this!
this is really cool! also really easy to understand the code with all your comments.
This is beautiful and very useful! I would suggest making a way to add preset set of pauses so we can have different speech patterns for different characters (though your current code is already clear enough to modify).
Thanks a lot!
Thank you for the suggestion!
Let me make sure I understand what you mean: For example, a certain character who pauses twice as long after each sentence?
This unfortunately would not work with the current code, since it makes use of the "config.say_menu_text_filter" callback, which purely filters dialogue text and has no idea who is saying it.
Therefore, I don't think such granular control would be possible without some ugly workarounds that would defy the simplicity of this plugin, but feel free to correct me if I got this wrong!
Yeah, that’s what I’m thinking. I thought I could modify the function to take in variables, but then I retraced the script again and found about the text filter.
I may muck around to see if I can get it working with the ugly workarounds just because I have some free time in my hands, but I do like the simplicity of this plugin so I totally understand that it’s not going to be possible in your future plan for the code :D
Thanks a lot, it’s really plug-and-play!
Thank you as well, and I wish you good luck in finding a solution! :D
One approach could be to consistently add a “password” to a character’s lines so the filter can recognize who it belongs to and then handle the remaining logic based on that. Though this would definitely make the script less pretty to look at…
If you want some help with it, I'm open to try this too. Maybe we can come up some solution together.
This is a good send, thanks!
I love this plugin! Easy to understand, easy to use and great customization!
Though, It's played great in English, but it doesn't do the same for Chinese symbols. I know this plugin is not designed for other languages, but I was just wondering if there are any plans for that? Thank you so much!!
Thank you for bringing that up, non-Latin scripts are definitely a major missing feature right now — sorry about that!
Though I can definitely think of a solution. If you don’t mind, could you share various “comma-equivalent” and “period-equivalent” characters a Chinese game would use? I’ll then add those to the next update!
Of course!! Thank you so much for considering it! Here are some common Chinese symbols:
I have modified the custom part before, the Chinese symbols will play the correct role in English sentences, but it does not seem to take into account chinese characters or sentences! I guess that might be the problem.
Thanks again for all your hard work in making this plugin!! It really helped me a lot!(*^▽^*)
I just published an update that hopefully resolves this issue! (You can read more about it here.)
Thank you for your help in making this tool better for everyone!
It really works!! These pauses make the text feel more vibrant, as if the characters are really talking o(╥ ╥)o
I can't believe you did it so quickly. It's really impressive and efficient. Thank you, Kigyo! ! ! This plugin was a great surprise to my project!! I believe it will help many people as it has helped me (〃'▽'〃)
You’re very welcome, I’m glad it works as intended now! :D
add a rap battle mode. the ability to speed up pauses for players who want to complete the game faster
Pause adjustment depending on the length of the sentence. The longer the sentence, the longer the pause after it, so that the player has time to comprehend the text
Dynamic pause depending on the emotional coloring of the text
If the text uses exclamation marks or emotional words, the pause can be shorter or longer depending on the mood.
Pause adjustment for different characters
Each character can have their own style of speech, and pauses can vary depending on who is speaking
Pauses depending on the type of text
For example, pauses in dialogues can be shorter than in descriptions or internal monologues
Pauses for flashback scenes
Memories or flashbacks can have longer pauses to create an atmosphere
"Real time" mode
Pauses can depend on the time of day in the game. For example, pauses can be longer at night to create an atmosphere.
of course, a lot can be done with the classic w=... but as options for improvement that can be added.
This is the Juice. Thank you
Everything I've always dreamed of...
*YOINK* Experimenting right away! :D