Ren'Py Text Analyzer
A VS Code extension that provides detailed writing statistics for your Ren'Py projects. It tracks word counts, character breakdowns, keyword frequency, pacing estimates, and more. Works on individual files and entire projects.

Quick Start
- Open any
.rpy file in VS Code.
- The Ren'Py Analyzer panel will appear in the Activity Bar (left panel by default). Click the extension icon to see live stats for the current file.
- To analyze your whole project, open the Command Palette (
Ctrl+Shift+P / Cmd+Shift+P), type Ren'Py Analyzer: Analyze Entire Ren'Py Project, and press Enter. A Markdown report will open automatically.

Differences from Ren'Py Lint
Cases where this extension's counts may differ from Ren'Py Lint's:
- Em dashes: words joined by
— are counted as two words here, one in Lint.
extend statements: this extension merges extend text with the preceding dialogue line; Lint counts them separately.
- Menu choices: included in counts here; excluded by Lint.
- Filtering: this extension applies configurable filters, which will generally produce a lower number than Lint's raw count.
- Block content:
screen, style, and transform blocks are excluded by default here.
Known Limitations
renpy.say() / say() / e() calls are supported when using direct variable names, None, or simple string literals as arguments. Complex expressions (f-strings, concatenations, other function calls) are not parsed.
- Dialogue generated through complex runtime Python logic that doesn't use recognizable
say statements may not be captured.
- In the single-file tree view, character name resolution only works if the
Character(...) definition is in the currently open file. The project-wide analysis handles this properly.
Configuration
Access settings through File > Preferences > Settings and search for "Ren'Py Analyzer", or right-click the extension in the Extensions list and select "Settings".
Notable options:
- Word count filtering: stopwords, character names, text tags, interpolation, custom word lists
- Dialogue parsing: custom narration keywords, how simple quotes and
narrator are classified, whether screen/transform/style block content is excluded
- Keyword list: whether stopwords appear in the list, maximum keywords shown
- View options: toggle Narration/Thoughts in overall counts, enable/disable sentiment scores, exclude specific speaker tags from analysis entirely
- CodeLens: enable or disable word counts above
label definitions
- Time estimates: custom WPM for reading vs. speaking
- Project analysis: folder names or glob patterns to exclude from the project-wide scan
Feedback
If your script structure produces unexpected results — misattributed dialogue, wrong counts, characters not resolving — feel free to reach out.
- Discord: collynnyy
- Email: coltosocial@gmail.com
Support
Developed in spare time. If it's useful to you:

| |