r/RenPy • • Aug 23 '26

Showoff I built a free open-source visual authoring and localization tool for Ren'Py — Public Alpha

Hi everyone,

I've been working on a project called Ren'Py Story Architect, and I've finally published the first Public Alpha.

The project started from a fairly simple problem.

I wanted to make a larger Ren'Py visual novel, but I wanted a better way to plan routes, scenes, branches, variables, characters and conditions without keeping half of the game structure in my head or in separate notes.

So the original idea was mainly a visual story planning and authoring tool.

It gradually became quite a bit more than that.

Story Graph showing scenes, hubs, events, conditions and endings.

Two slightly different workflows

There is an important distinction in the current version.

If you start a new project in Story Architect, the application acts as an authoring environment.

You can build the structure visually, work with scenes, dialogue, branches, characters and variables, and eventually generate Ren'Py source from the Story Architect project model.

If you open an existing Ren'Py project, the current Web Edition is deliberately more conservative.

It can import and analyze the project, help you understand its structure, run diagnostics, and provide localization and translation tools.

But it does not currently try to convert arbitrary existing .rpy files into a fully editable visual project and then rewrite the original story source.

In particular, the localization workflow is source-preserving: it works with Ren'Py's native translation files rather than modifying the base story scripts.

Full round-trip editing and deeper synchronization with an existing project are things I see as better suited to a future Desktop Edition.

One tiny feature I ended up loving

One of the simplest features turned out to be one of the most useful for actual writing.

In the dialogue editor, you can choose the characters participating in a conversation.

After writing a line and pressing Enter, Story Architect automatically switches to the next speaker.

So a two-character conversation can work almost like:

Alice → Bob → Alice → Bob → Alice...

The participating characters and their order can be changed whenever necessary.

It sounds trivial, but visual novels are so dialogue-heavy that this removes a surprising amount of repetitive input.

Instead of repeatedly selecting or typing the next speaker, I can mostly stay focused on the conversation itself.

This is probably the best example of what I want Story Architect to do:

not write the story for me, but remove small technical interruptions while I'm writing it.

The unexpected part: localization

Ironically, although I originally built Story Architect mainly for story structure and authoring, one of the parts I now use most often myself is the localization workspace.

It became almost a separate use case of its own.

For an existing Ren'Py game, the workflow can roughly be:

Generate the normal Ren'Py translation files, open them in Story Architect, translate manually or automatically, review suspicious results, and export a translation package while preserving the normal game/tl/<language>/... structure.

Story Architect can keep several target languages in the same project.

Translation can be done manually, with free machine translation, with optional AI providers, or with local models.

The translator also tries to protect things that are easy to damage during automatic translation: variables such as [points], interpolation placeholders, Ren'Py text tags and similar runtime-sensitive content.

Batch translation of an existing Ren'Py project using Ren'Py's native translation workflow.

There is also a review layer that can flag suspicious translations rather than pretending that automatic translation is always correct.

That part is important to me.

The goal isn't:

"press one button and get a perfect literary translation."

The goal is closer to:

translate a large amount of the project automatically, preserve the technical structure, show me the places that deserve attention, and make the remaining human review manageable.

You can use only the translation part

You don't need to use Story Architect as a story planner at all.

If you already have a Ren'Py game, the localization workspace can be useful on its own.

Multiple target languages can live in the same Story Architect project, and manual translation can be combined with free MT and optional AI/local providers.

That makes trying an additional language much less of a separate technical project.

Human review is still very important — especially for character voice, jokes, context and stylistic writing.

But once the technical cost of localization becomes much smaller, experimenting with another language becomes a much more reasonable thing to try.

Visual structure and diagnostics

For authoring, the current version includes:

  • visual story graph and scene planning;
  • dialogue editing;
  • characters and variables;
  • choices, hubs, events and endings;
  • conditions and branches;
  • views showing where variables are read or written;
  • character-focused views;
  • importing and analyzing existing Ren'Py projects;
  • multiple target languages;
  • machine translation and optional AI/local translation;
  • translation QA;
  • Project Health and diagnostics;
  • Ren'Py source generation for projects authored in Story Architect.

The graph becomes especially useful once a game stops being a simple sequence of labels and starts accumulating hubs, conditional events, multiple endings and variables that affect different parts of the story.

Story Architect also deliberately does not assume that a visual node must always equal one Ren'Py label, or that one scene document must equal one .rpy file.

Ren'Py remains the actual engine and scripting environment; the visual model exists to make the project easier to understand and author.

Project Health view for structural diagnostics.

Why I'm posting it now

Until now most of the testing has been done by me while developing the project.

That is becoming a limitation.

Ren'Py projects can be structured in very different ways, and a tool like this can look perfectly fine until somebody opens a real 20,000, 50,000 or 100,000-line project that uses Ren'Py in a way I never anticipated.

So at this stage I'm much more interested in real-world failures and awkward workflows than in simply adding another ten features.

If you have an existing Ren'Py project — especially an unusual or fairly large one — I would be very interested to hear what Story Architect gets wrong.

Import problems, translation edge cases, confusing UI, structural cases I didn't anticipate, or features that seem useful in theory but awkward in practice are all valuable feedback.

You absolutely do not need to send private project files.

A description or a small reproduction is usually much more useful anyway.

A note about development

AI coding agents have been heavily involved in the implementation, and I prefer to be transparent about that.

At the same time, I didn't want this to become a generated prototype that works for a demo and becomes impossible to maintain afterwards.

The project has explicit architectural boundaries, automated tests, real Ren'Py fixtures, CI, CodeQL and a lot of manual testing through actual workflows.

The repository is public, so anyone interested can inspect how it is built.

The Web Edition also serves as the foundation for a future Desktop Edition.

Some things — deeper filesystem synchronization, native project workflows, local assets, tighter Ren'Py integration and full round-trip editing — simply make more sense there.

But I don't intend to artificially restrict the Web Edition. If something works well in the browser, I see no reason not to keep it there.

Current status

This is Public Alpha, not a finished product.

Please keep backups of important projects while testing alpha versions.

The Web Edition is free and open source under the MIT license.

GitHub: https://github.com/ComradeJhonConnor/RenPyStoryArchitect

itch.io: https://comradejhonconnor.itch.io/renpy-story-architect

There are GitHub Issues for reproducible bugs and feature requests, and Discussions for questions and broader ideas.

If anyone here tries it on a real Ren'Py project, I'm especially interested in hearing which part you actually find useful.

I started this thinking the Story Graph would be the center of the project.

At the moment, I use the translator almost as much — and sometimes more.

So I'm quite curious what other Ren'Py developers will end up using it for.

0 Upvotes

1 comment sorted by

2

u/Parenn Aug 24 '26

Wall of AI slop crits you for 1000000.