EnginesGuidesFAQPatreonDiscordDownload
Sign in
RuneTranslate · translate games from Japanese and 30+ languages
EnginesGuidesCompareImage textSave editorCheat ModeFAQDownloadChangelogTrustpilotPatreonDiscordYouTubePrivacyTermsContact
All posts
tyranobuilder · tutorial · engine

How to translate a TyranoBuilder / TyranoScript game to English

Jun 9, 2026·5 min read

Translate TyranoBuilder / TyranoScript visual novels with RuneTranslate — extracting data/scenario/*.ks scripts, masking KAG tags, translating character display names, and exporting a playable HTML5 or Electron build.

TyranoBuilder and the underlying TyranoScript engine power a large catalogue of indie Japanese visual novels — the web-tech (HTML5 / JavaScript) alternative to Kirikiri and Ren'Py, shipped either as standalone HTML5 folders or Electron-wrapped executables. Its scenarios use the same KAG-style .ks syntax as Kirikiri, so the text is easy to reach once you know where it lives. This guide walks through translating a TyranoBuilder game end-to-end with RuneTranslate, including the part most tools miss: character display names.

What you need

  • RuneTranslate for Windows— free, every engine and provider unlocked.
  • A TyranoBuilder game: a standalone HTML5 folder (loose data/ and tyrano/ directories) or an Electron build (a resources/app.asar holding tyrano/tyrano.js and data/scenario/*.ks). RuneTranslate detects both.
  • A target language — English, Spanish, French, German, Chinese, and 30+ more.
  • One provider. Visual novels are dialogue-heavy, so an LLM (OpenAI / Anthropic) or DeepL reads best; free Google Translate works out of the box.

Step 1: Open the game folder

Launch RuneTranslate, click New project, and point it at the game directory (or the folder containing the .exe for Electron builds). Detection recognises TyranoBuilder from its tyrano/ runtime plus data/scenario/ scripts; for Electron builds it reads the app.asar directly, so you never unpack anything. Your original game is never modified.

Step 2: How strings get extracted

RuneTranslate pulls translatable text from everywhere TyranoBuilder stores it:

  • Scenario scripts — every data/scenario/**/*.ks file, including _preview.ks and the system/_*.ks mirrors that encrypted builds rely on.
  • UI and config — tyrano/lang.js and data/system/Config.tjs.
  • Character display names— the speaker labels shown above dialogue (next section).

KAG inline tags — [r] line breaks, [p] click-waits, [改ページ] page breaks, [font color=...], and JP-named tags — are masked behind numeric [[U#]] placeholders before anything reaches the provider, then restored on export, so formatting survives intact. Binary or encrypted .ks files are detected via a UTF-8 sniff and never overwritten.

Step 3: Character names — the Tyrano-specific bit

Scenarios often address a speaker with an inline shorthand like [yuki] — a character ID, not display text. RuneTranslate never rewrites those references (that would break the engine's character lookup and crash the scene). Instead it translates the display name and injects a proper [chara_new name=... jname=...] entry into data/system/chara_define.ks on export. The name shown on screen is translated; the ID the script uses stays untouched.

Step 4: Translate and review

Pick a provider and run. An LLM (OpenAI / Anthropic) reads best for character voice; DeepL is fast and clean for narration; free Google Translate covers menus. Glossary your cast and recurring terms first so names render identically across every route — see Glossary 101. Every line lands in the editor beside its source; edit inline (saves on blur or Ctrl+Enter), use find & replace, or run the optional AI refiner for a context-aware second pass. The free tier is modestly throttled on speed — roughly half the paid throughput on AI providers — with identical output quality.

Step 5: Export a playable build

Click Export. For standalone HTML5 games, RuneTranslate writes the translated .ks scripts, lang.js, config, and the injected chara_define.ks into a copy of the game. For Electron builds it repacks a modified app.asar. Either way you get a full, runnable copy in the location you choose — launch it and it plays in your target language.

Known limitations

  • Encrypted .ks files (detected as non-UTF-8) are left untouched, so scenarios in an encrypted build won't translate.
  • Image text (logos, hand-drawn UI, CG captions) is outside machine-translation scope.
  • Custom plugins that build dialogue at runtime may need a quick hand-fix in the editor.

Why this is easier than the old way

The manual route meant unpacking the app.asar, finding every .ks file (including the easy-to-miss system mirrors), translating around the KAG tags by hand, working out the character-name injection, then re-packing the asar without corrupting it. RuneTranslate folds the whole chain into a few clicks, with the editor open so you control the wording.

See the TyranoBuilder engine page for the full feature list, read the Kirikiri guide for the related KAG engine, or download RuneTranslate and try it on a real game.

Related reading
01

How to translate a game’s .po and .mo files (gettext)

gettextpomoenginetutorialAug 4, 2026 · 7 min
Read →
02

How to translate Godot games to English

godotenginetutorialJun 17, 2026 · 6 min
Read →
03

How to translate a Ren’Py game to English (full walkthrough)

renpytutorialengineJun 9, 2026 · 6 min
Read →

Ready to try RuneTranslate?

Free tier unlocks every engine + every translation provider. Supporter ($3.99/mo) unlocks full speed.

Download for Windows