A downloadable asset pack

Download NowName your own price

It all started with simple word counts for each character, and kind of escalated from there... 

This code snippet expands Lint's capabilities to show you detailed dialogue-related statistics for your visual novels:

Do you want to keep track of the precise word counts of your characters? 
Do you want to know how many lines and words are in your different .rpy files? 
Do you want to know which characters have how many words in which .rpy file?
Do you want to know how many choice options there are in your VN?

With the Ren'Py Word Counter+, you can subject yourself to information overload and get answers to all of these questions!

These statistics have all kinds of uses, such as:

  • Predicting the costs of voice acting, per character
  • Keeping track of your writing progress
  • Estimating the playtime of a new chapter
  • Noticing which characters you've neglected
    (or favored too much)
  • Comparing the lengths of different routes
  • Making sure you provide enough freedom of choice
  • And probably more!

How to use:

  1. Put wordcounter.rpy in your game folder
  2. Optionally adjust variables to disable unneeded statistics
  3. Select "Check Script (Lint)" from the Ren'Py Launcher


Character statistics:
 * sa has 1,744 blocks of dialogue, and 17,891 words.
 * ef has 1,148 blocks of dialogue, and 13,599 words.
 * di has 733 blocks of dialogue, and 9,058 words.
 * ab has 613 blocks of dialogue, and 6,990 words.
 * ash has 526 blocks of dialogue, and 6,368 words.
 * ma has 371 blocks of dialogue, and 4,717 words.
 * fo has 364 blocks of dialogue, and 4,386 words.
File statistics:
 * [common_1.rpy] contains 899 dialogue blocks and 11,178 words.
 * [common_2.rpy] contains 777 dialogue blocks and 10,227 words.
 * [common_3.rpy] contains 1,109 dialogue blocks and 13,988 words.
 * [escape/bedroom.rpy] contains 246 dialogue blocks and 2,483 words.
 * [prologue.rpy] contains 191 dialogue blocks and 2,486 words.
Detailed File statistics:
[common_1.rpy] contains 899 dialogue blocks and 11,178 words:
 * ef has 155 blocks of dialogue, and 1,930 words.
 * sa and re have 145 blocks of dialogue, and 1,662 and 1,932 words each.
 * fo has 42 blocks of dialogue, and 545 words.
[common_2.rpy] contains 777 dialogue blocks and 10,227 words:
 * sa has 68 blocks of dialogue, and 752 words.
 * re has 60 blocks of dialogue, and 643 words.
 * ef has 55 blocks of dialogue, and 581 words.
Menu statistics: 
The game has 38 menus, with a total of 90 possible choices,
for an average of 2.37 choices per menu.

If you have any questions or additional feature requests, feel free to comment below!


  • 2022.09.16: Added requested feature: Menu and choice options counter.
  • 2022.09.09: Added ability to batch equivalent characters and count them as one, as well as entirely hide certain characters from the statistics.
  • 2022.08.16: Release!
Rated 5.0 out of 5 stars
(11 total ratings)
Made withRen'Py
TagsRen'Py, sourcecode, Tutorial
Code licenseMIT License
Asset licenseCreative Commons Zero v1.0 Universal
Average sessionA few seconds


Download NowName your own price

Click download now to get access to the following files:

wordcounter.rpy 6 kB


Log in with itch.io to leave a comment.


This seems way fricking easier than the method I've chosen for myself.

I'm glad it could be of use! Just curious, but what was your method?

Fucking Google Drive and deleting anything that wasn't dialogue/monologue lolol

Hahaha, that was my old approach too, before I got fed up with it and decided to make this tool!

(1 edit) (+1)

Thanks for this! A feature request would be to see how many choices are in the script. (Ex. There are a total of 3 choices, with a total of 11 choice options.) <3


That's a great idea! I'm not sure if I'll actually find a way to do that, but I can definitely try.


Getting the amount of choices should be easy(ish) by counting the "menu:" commands. Getting the # of choice options might be a bit more difficult, but should still be possible.

(1 edit) (+1)

You're right, that turned out to be no issue at all.

Both the number of menus and choices should be available now. Thanks for the suggestion!